| By David Linthicum | Article Rating: |
|
| December 2, 2004 12:00 AM EST | Reads: |
21,453 |
As I work with corporate America, as well as the government, I'm finding that services-oriented architectures (SOAs) are like snowflakes - no two are alike. I'm also finding that everyone has their own definition of SOA, and I've seen everything from messaging systems to portals called an SOA.
So, who's right? I'm not sure I'm ready to declare somebody's architecture as non-SOA just yet;, however, there are some patterns that are emerging in terms of types of SOAs. I like to refer to these patterns as levels, since they have a tendency to move from the very primitive, or level 0, to the highly sophisticated, or level 5.
First, let me offer my definition of SOA, so we have a foundation of what is both correct and pure (tongue firmly in cheek).
In short, an SOA is a strategic framework of technology that allows all interesting systems, inside and outside of an organization, to expose and access well defined services, that may be furthermore abstracted to orchestration layers and composite applications.
Certainly not the only definition, but it is good enough for our discussion of SOA levels.
There is little notion of true services, but instead they leverage Web services as an information integration mechanism. Hardly an SOA, but certainly a first step.
It's also important to note that you don't need Web services to create an SOA. This is true for all levels.
Most ESBs are level 1 SOAs, leveraging a messaging environment that uses service interfaces, but really does not deal with true services (behavior), instead moving 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 really leverages services as a well-defined interface and not accessing application functionality. Sometimes 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 because you're dealing with information- oriented integration technology that is merely attempting to deal with services/behavior? an unnatural act.
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.
The directory provides a point of discovery 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 an SOA - won't work. Directories are typically standards-based, including UDDI, LDAP, and sometimes more proprietary directories such as Active Directory.
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 about the discovery and leveraging of true services.
At this level we have the ability 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, and the ability to share services not having to worry about platform-specific issues nor where the services 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 work up from the lower levels. If you do that, make sure you are leveraging the right technology and standards that support all levels.
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."Moreover, level 5 SOAs should support both the notion of persistence and user interactions. Persistence means that there should be some sort of data storage mechanism that's able to service all attached applications and services. The data persistence layer is exposed as a service. User interactions mean that a level 5 SOA needs to provide mechanisms allowing services to interact with users through traditional or rich client portals.
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 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.
Summary
As services, and architectures that support them, become more of an asset within the enterprise, we need to begin to learn how to categorize the patterns of the architectures, thus the SOA levels discussion in this column. This both provides a better understanding of what is a true SOA, and allows us to pick the right level to meet the needs of our business.
Published December 2, 2004 Reads 21,453
Copyright © 2004 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
About David Linthicum
David S. Linthicum (Dave) works for Booz Allen Hamilton in the Washington DC area, focusing on SOA and cloud computing. In addition, Dave is the Editor-in-Chief of SYS-CON's Virtualization Journal. Dave is an internationally known cloud computing and SOA expert. He is a sought-after consultant, speaker, and blogger. In his career, Dave has formed or enhanced many of the ideas behind modern distributed computing including EAI, B2B Application Integration, and SOA, approaches and technologies in wide use today. For the last 10 years, he has focused on the technology and strategies around cloud computing, including working with several cloud computing startups. His industry experience includes tenure as CTO and CEO of several successful software and cloud computing companies, and upper-level management positions in Fortune 500 companies. In addition, he was an associate professor of computer science for eight years, and continues to lecture at major technical colleges and universities, including University of Virginia and Arizona State University. He keynotes at many leading technology conferences, and has several well-read columns and blogs. Linthicum has authored 10 books, including the ground-breaking "Enterprise Application Integration" and "B2B Application Integration." You can reach him at david@bluemountainlabs.com. Or follow him on Twitter. Or view his profile on LinkedIn.
- Universal Middleware: What's Happening With OSGi and Why You Should Care
- An A to Z of Cloud Computing Companies in 2009
- SOA and eXtreme Transaction Processing (XTP)
- Ulitzer’s Amazing First 30 Days in Public Beta
- SYS-CON Announces Government IT Conference & Expo
- Why an Application Grid?
- 2nd International Cloud Computing Expo New York Photo Album
- "Government IT Expo" to Highlight Cloud Computing and SOA
- Building a Composite Application Using Multiple Web Services
- Commercial vs Federal Cloud Computing
- Universal Middleware: What's Happening With OSGi and Why You Should Care
- An A to Z of Cloud Computing Companies in 2009
- Blending Discovery, Governance, Security, and Management in SOA
- SOA and eXtreme Transaction Processing (XTP)
- Ulitzer’s Amazing First 30 Days in Public Beta
- Enterprise Mashups: The New Face of Your SOA
- SYS-CON Announces Government IT Conference & Expo
- Why an Application Grid?
- Web Application Management
- 2nd International Cloud Computing Expo New York Photo Album
- The i-Technology Right Stuff
- Get the Message
- Success, Arrogance, Rise and Fall
- i-Technology Viewpoint: Is Web 2.0 the Global SOA?
- i-Technology Viewpoint: Thinking Outside the VC Box
- ESB Myth Busters: 10 Enterprise Service Bus Myths Debunked
- i-Technology Viewpoint: When to Leave Your First IT Job
- SOA Web Services Edge Conference Coverage on SYS-CON.TV
- Five Reasons Why Web 2.0 Matters
- SYS-CON.TV's "SOA Web Services" and "Enterprise Open Source" Programs To Air in December







































