There has been a lot of buzz and hype -- some factual, some not so well-founded -- surrounding the opportunities presented by service-oriented architectures (SOA) and its implementation as Web services. Analysts have predicted, pundits have professed, professors have lectured, companies have scurried to sell what they had, as SOA products -- often missing the point that SOA is not a product. It's about bridging the gap between business and IT through a set of business-aligned IT services using a set of design principles, patterns, and techniques.
Gartner has predicted that by 2008, more than 60 percent of enterprises will use SOA as a "guiding principle" when creating mission-critical applications and processes."
A huge demand exists for the development and implementation of SOAs. So if SOA is not just about the products and standards that help realize it, for example through Web services, then what additional elements do you need to realize a SOA? Service-oriented modeling requires additional activities and artifacts that are not found in traditional object-oriented analysis and design (OOAD).
Additional important considerations exist that need to be taken into account. For one thing, current OOAD methods do not address the three key elements of a SOA: services, flows, and components realizing services. You also need to be able to explicitly address the techniques and processes required for the identification, specification and realization of services, their flows and composition, as well as the enterprise-scale components needed to realize and ensure the quality of services required.
Second, a paradigm shift needs to occur, in order to appreciate the distinct requirements of the two key roles in a SOA: the service provider and service consumer. Third, applications assumed to be built for one enterprise or line of business must now aspire to be used in a supply chain and be exposed to business partners who might compose, combine, and encapsulate them into new applications. This is the notion of the service ecosystem.
This is a slight step up from just "distributed objects." It's about the value created through the network effect: for example, when parties leverage a combination of Amazon.com with Google's search services and combine them with eBay services to build their own hybrid solutions. Or when a travel agency reaches deep into an airline reservation system and coordinates it with a rental car agency and hotel chain, updating their records and sending the itinerary to your electronic organizer. Whatever the application, you need much more than just good tools and standards to successfully create a SOA. You need some prescriptive steps to support your SOA life cycle; techniques for the analysis, design, and realization of services, flows, and components. Therefore, for anyone interested in enterprise application development, it's crucial to understand the detailed steps involved in service-oriented modeling and architecture.