The path to SOA
by Dr. Bob Sutor, Director of WebSphere Infrastructure Software, IBM Corporation
I recently read through a large collection of analyst reports on "Service oriented architecture," or "SOA," that have been published in the last year. I was pleasantly surprised at the amount of agreement among these industry observers and their generally optimistic outlook for the uptake of this technology.
SOA is not really new-by some accounts dating back to the mid-1980s-but is starting to become practical across enterprise boundaries because of the rise of the Internet as a way of connecting together people and companies. Even though the name sounds very technical, it's the "big picture" behind the use of web services, the plumbing that's now being used to tie together companies with their customers, suppliers and partners.
In an SOA world, business tasks are accomplished by executing a series of "services," jobs that have well defined ways of talking to them and well-defined ways in which they talk back. It doesn't really matter how a particular service is implemented, as long as it responds in the expected way to your commands and offers the quality of service you require. This means that the service must be appropriately secure and reliable as well as fast enough. This makes SOA a near ideal technology to use in an IT environment where software and hardware from multiple vendors is deployed.
At IBM we've worked on SOA for many years and it's an important way we're enabling our customers to become on demand businesses. We've identified four stepping stones on the path to SOA nirvana and its full business benefits. Unlike most real paths, this is one where you can jump on at almost any point.
The first point of entry is to start making individual applications available as web services to multiple consumers via a middle tier web application server. I'm not precluding writing new web services here but this is an ideal entry point for those wishing to deploy an SOA with existing Java or COBOL enterprise applications, perhaps targeting customer retention or operational efficiency projects. You should work with multiple consumers here so that you correctly define the granularity of your services and you pay proper attention to keeping the services and the applications using them loosely coupled.
The second step involves have several services that are integrated together to accomplish a task or implement a business process. Here you start getting serious about modeling the process and choreographing the flow between the services, both inside and outside your organization, that implement the process. The choreography is essentially new business logic that you have created outside the boundaries of any one application, therefore making it easier to adjust as business conditions or strategy require. As part of this you will likely concern yourself with asynchronous services as well as compensation for sequences of actions that do not complete successfully. Your ability to manage the processes, services and their underlying implementations will start to become important here as well. This entry point is really "service oriented integration" and will probably affect a single department or a business unit such as a call center.
If you already have an EAI infrastructure, you will most like enter the SOA adoption path at the third stepping stone. At this point you are looking to use SOA consistently across your entire organization and want to leverage your existing enterprise messaging software investment. I want to stress here that proper SOA design followed by use of enterprise messaging and brokers constitutes a fully valid deployment of SOA. Web services give you as easy entry to SOA adoption, but they do not constitute the gamut of what service orientation means. Modeling is likely required at this level and integration with your portal for "people integration" will also probably happen here if you didn't already do this at the previous SOA adoption point.
The final step on the path is the one to which you aspire: being a flexible, responsive, on demand business that uses SOA to gain efficiencies, better utilization of software and information assets, and competitive differentiation. At this last level you'll be able to leverage your SOA infrastructure to effectively run, manage and modify your business processes and outsource them should it make business sense to do so.
You are probably already employing some SOA in your organization today. Accelerating your use of it will help you build, deploy, consume, manage and secure the services and processes that can make you a better and more nimble business.
Dr. Bob Sutor is director of WebSphere Infrastructure Software for IBM.
About Dr. Bob Sutor:
For more information:
- Looking for free research? Browse our comprehensive White Papers section by topic, author or keyword.
- Are you tired of technospeak? The Web Services Advisor column uses plain talk and avoids the hype.
- For insightful opinion and commentary from today's industry leaders, read our Guest Commentary columns.
- Hey Codeheads! Start benefiting from these time-saving XML Developer Tips and .NET Developer Tips.
- Visit our huge Best Web Links for Web Services collection for the freshest editor-selected resources.
- Visit Ask the Experts for answers to your Web services, SOAP, WSDL, XML, .NET, Java and EAI questions.
- Couldn't attend one of our Webcasts? Don't miss out. Visit our archive to watch at your own convenience.
- Choking on the alphabet soup of industry acronyms? Visit our helpful Glossary for the latest lingo.
- Discuss this article, voice your opinion or talk with your peers in the SearchWebServices Discussion Forums.