Three SOA Benefits realized in the CSA
Before we cover real benefits, proper context must be given to what an SOA (Service Oriented Architecture) is, and is not. An SOA is not a technology, it’s a design philosophy that must be understood and applied. Generally speaking, SOAs follow a few basic design principles:
- Separation of business logic from presentation logic
- Separation of business logic into independent modules
- Encapsulation of modular functionality in a well-defined service interface
Implementing SOAs (using the design principles above), involves a number of additional attributes that are sometimes ignored, but ‘discovered’ at deploy time, or worse, sometime thereafter. In practice, SOAs contain service consumers, (applications, programs, systems, etc. that invoke the services or the business functions), in order to perform a task that has been required by the business. These consuming entities do so by calling the service interface over a network. And, that’s just the tip of the iceberg, for example the services need to be ‘serviced’ by an application framework in order to add benefit to a user (see my blogs entitled “Composite Service Orchestration vs. Composite Application Orchestration”, and “More on Orchestration”), which is required in order to ensure completeness of a user experience. Further, in order to connect service consumers with providers, messaging infrastructure or plumbing is required. Also, underlying data needs adaptability, normalization and consistency. Finally, composite solutions under development require the whole infrastructure to be present and accounted for so developers can enjoy a common environment to depend upon as well as contribute to.
Possibly without you knowing it, I’ve just sneaked passed you the SunGard CSA Levels, (see blog entitled “Why are there CSA Levels?”), which address service virtualization, user interface, data/messaging and developer reference. The CSA focuses on standardizing SOA implementation tactics, some of which are ignored in failed SOA implementations. As SunGard is an application software provider, it’s even more important that infrastructure be well understood, solid and common.
Ok, so what are the benefits of SOAs to the CSA? With the understanding that there are infrastructural details in play (as mentioned above), and under the context of the SOA design principles, here are three of the benefits:
Benefit #1 “Distributed Development = Quality software”:
There is a clear architectural partitioning in SOAs, which make it possible to have disparate development teams, (with possibly different skill sets), implement and maintain in parallel both consumers of services as well as the service implementations themselves. This is immensely beneficial to SunGard as we have acquired well over a hundred companies, we continue to operate over 60 business units managing hundreds of products, each with their own product and development teams. The ability to develop quality software while preserving distributed diversity is cool!
Benefit #2 “Phases are not only OK, but they are now part of the system”:
Both service consumers and service implementations or contributions can be deployed incrementally, meaning a new consumer requires only a relatively small number of services to be available. This is huge for SunGard. I mentioned the phrase “Composite Solutions” above, which is our vision of how SunGard delivers its very large breadth of application componentry to the market in a cohesive manner. Because SunGard continues to grow and continues to develop new and improved application components, Composite Solutions are never really ‘done’. We continue to add and enhance each offering, custom tailored to the customer’s needs, which is a good thing, because our customers needs continually change, or better said, they are never really ‘done’. We consider the key to agility as the technical ability to orchestrate composite solutions quickly. So, phases are not only possible, they are literally part of the whole process, infrastructure, solution, etc…
Benefit #3 “Common efforts, common services”:
Service implementations can be consolidated, made common and reused across multiple service consumers. In most cases, developing a new application means designing only its presentation logic as a consumer of pre-existing services. SunGard derives benefits from common services by consolidating efforts that would have otherwise been redundant. Common services provide SunGard and it’s customers with flexibility and adaptability, faster time to deployment and lower development costs.