Free Newsletters

   All InfoWorld Newsletters
Real World SOA | David Linthicum » Understanding SOA Levels...Again

February 16, 2007 | Comments: (0)

Understanding SOA Levels...Again

As I have been doing client work recently I've come across the notion of "SOA Levels" more than once, as consulting and product organizations attempt to define the space for their customer and client base. One of the common patterns is the fact that many seem to be over simplifying SOA, in short defining this notion around components and not degrees of maturity. While components are important, a maturity model is much more important, considering that products will change over time, but architectural patterns have a tendency to remain constraint.

Just to recall, here is my take on things, as discussed a few years ago. I'm still going to say: "That's my story and I'm sticking to it."

Level 0 SOAs are SOAs that simply send SOAP messages from system to system. There is little notion of true services, but instead leverage Web services as an information integration mechanism. Hardly a SOA, but certainly a first step.

It's also important to note that you don't need Web services to create a SOA. This is true for all levels.

Level 1 SOAs are SOAs that also leverage everything in Level 0 but add the notion of a messaging/queuing system. Most ESBs are level 1 SOAs, leveraging a messaging environment that uses service interfaces, but really does not deal with true services (behavior), but instead moves information between entities as messages through queues.

While services are a part of Level 1 SOAs, it's really all about information and not about application behavior. For instance, while you do indeed invoke a service to push a message on queue and retrieve a message off a queue, it's really leverages services as a well defined interface and not accessing application functionality. Sometime SOA architects may attempt to abstract application behavior using an ESB, if that's the case you're moving up to level 4 (discussed below). However, doing this is typically much more trouble than it's worth. This is due to the fact that you're dealing with information-oriented integration technology which is merely attempting to deal with services/behavior...an unnatural act.

Level 2 SOAs are SOAs that leverage everything in Level 1, and add the element of transformation and routing. This means that the SOA is not only able to move information from source and target systems, leveraging service interfaces, but is also able to transform the data/schemas to account for the differences in application semantics. Moreover, by adding the element of intelligent routing, you’re able to route the information based on elements such as source, content, and logical operators in the SOA.

Level 3 SOAs are SOAs that leverage everything in Level 2, adding a common directory service. The directory provides a point of discover of processes, services, schemas, and such, allowing all those leveraging the SOA to locate and leverage assets such as services easily. Without directories, the notion of service reuse, the real reason for building a SOA won’t work. Directories are typically standards-based, including UDDI, LDAP, and sometimes more proprietary directories such as Active Directory.

Level 4 SOAs are SOAs that leverage everything in Level 3, adding the notion of brokering and managing true services. Here is where the brokering of application behavior comes into play. In other words, at this level we are not only about managing information movement, but the discovery and leveraging of true services.

At this level we have the capabilities to broker services between systems, allowing systems to both discover and leverage application behavior as if the functionality was local. This is the real goal of Web services, the ability to share services not having to worry about platform specific issues nor where the service are actually running.

What's important here is that we understand that the value is in the behavior, as well as the information bound to that behavior. This level of SOA is able to provide capabilities for discovery, access, and management. Most SOAs are built with level 4 capabilities in mind, but may workup from the lower levels. If you do that, make sure you are leveraging the right technology and standards that support all levels.

Finally, Level 5 SOAs are SOAs that leverage everything in Level 4, adding the notion of orchestration. Orchestration is key, providing the architect with the ability to leverage exposed services and information flows, creating in essence a "meta-application" above the existing processes and services to solve business problems.

Indeed, orchestration is really another complete layer on the stack, over and above more traditional application integration approaches we deal with at the lower levels. Thus, orchestration is the science and mechanism of managing the movement of information and the invocation of services in the correct and proper order to support the management and execution of common processes that exist in and between organizations and internal applications. Orchestration provides another layer of easily defined and centrally managed processes that exist on top of an existing processes, application services, and data within any set of applications.

The goal of this type of SOA is to define a mechanism to bind relevant processes that exist between internal and external systems in order to support the flow of information and logic between them, thus maximizing their mutual value. Moreover, we're looking to define a common, agreed-upon process that exists between many organizations and has visibility into any number of integrated systems, as well as being visible to any system that needs to leverage the common process model.


As services, and architectures that support them, become more of an asset within the enterprise, we need to begin learn how to categorize the patterns of the architectures, thus the SOA levels discussion in this blog. This both provides a better understanding of what is a true SOA, and also allows us to pick the right level to meet the needs of our business.


Posted by Dave Linthicum on February 16, 2007 05:12 AM


RATE THIS ARTICLE:





 

  •  
  • COMMENTS




Hi David,

Thank you for writing this article, and I enjoyed reading it. I have a few questions:

1) Regarding your definition of Levels 4 and 5, shouldn't Level 4 be characterized as the orchestration level, and Level 5 as the notion of brokering and managing the services? I would think that the service management layer would sit on top of the service orchestration layer...

2) I believe your definition of Level 2, as transformation and routing to account for application semantics, should be part of the orchestration layer. Is it not logical for the service orchestration layer to encapsulate these tasks?

3) As part of an SOA initiative in our organization, we plan on launching a Proof-Of-Concept project in a lab environment, that I would characterize as a Level 0 of SOA, according to your definitions in this article. This project, small in size and scope, has the twin goals of delivering instant results to management and building confidence in an SOA strategy. My question to you is should we be starting at a higher level of SOA, or do we stick with the current scope, given the business requirements?

Thank you for providing such wonderful insights into the world of SOA!

Daniel.

Posted by: Daniel Xi at February 16, 2007 01:14 PM

Hi David,

Thanks for presenting this fantastic article. It brought some insight for me into SOA.

It appears the goal of SOA is to create a real-time environment with such flexibility where a business process layer will not have to worry anymore how to achieve/implement the task at the application/software level, as the business process layer will have the capability/intelligence to 'generate' the application layer at 'run-time' by integrating the "common, agreed-upon processes" which have been made visible and orchestrate them to leverage the custom business needs.

To simplify, SOA objective appears to be something like:

1. Identify and create the Business Process (Enterprise/Business Analyst)

2. The business process finds the group of right candidates (exposed software modules) that will together achieve the goal of the business process (SOA engine). Thereupon, it builds the loosly coupled (virtually monolithic) software by integrating the exposed bunch of identified modules at the 'real time'. This software is what will help achieve the goal of the business process designed in step 1.

3. The Business process (SOA engine) orchestrates/coordinates the loosly coupled software to get the task done.

I would welcome and like to hear your comments on this.

Kind regards
Anuruddha



Posted by: Anuruddha at February 28, 2007 03:04 AM

Technology White Papers

 

InfoWorld Technology Marketplace

» Technology White Papers Library

Technology White Papers by Topic

Technology White Papers E-mail Alert

Find out when the latest white paper is available:
 
 
» BUY A LINK NOW

Sponsored Technology Links