Tutorials
SOA Web ServicesLooking at current business needs, the IT environments in today's world need to be more flexible, and must quickly adapt to the constantly changing business requirements.
The applications running on heterogeneous environments must communicate and integrate seamlessly. IT environments have been evolving along the lines of business requirement evolution as illustrated in the following figure.
In the early years of computing, we had only monolithic applications running on stand-alone machines. From the monolithic systems of early '60s, the industry saw the development of structured, client/server, 3-tier, N-tier, distributed systems, and finally the service-oriented architectures of the modern age.
The service-oriented architectures attempt to meet today's business requirements. They are loosely coupled, location transparent, and protocol independent. SOA hides the underlying technology architectures from the service consumer. The service implementation may be on a Java EE (earlier J2EE) or .NET platform, or it may even be a legacy application running on an IBM mainframe. The service consumer need not know the platform on which the service is running; the service implementation is totally transparent to the consumer.

While implementing such complex systems based on SOA, the use of patterns plays an important role in success. Patterns provide the solutions to well-known problems solved by others over many years. Patterns at the code and architecture levels have been well documented, well accepted, and almost standardized. The patterns for creating Service-Oriented Architectures (SOA) are still evolving.
There are many who have identified and published their findings, but a standard catalog of these patterns is yet to come. In this chapter, we will look at the patterns documented by IBM for creating SOA applications.