Essentials of SOA, Web Services and ESB in the Integration context – Part I
Service-oriented architecture (SOA) is an approach of defining flexible integration architectures based on the concept of a service. SOA brings the benefits of loose coupling and encapsulation to integration at an enterprise level. Using SOA aims at enabling an organization to implement changing business processes quickly and also to make extensive reuse of components.
Services are the building blocks to SOA. Services can be invoked independently by service consumers to process simple functions, or can be a collection of functions to form a process. The key aspects of services are:
- Encapsulate reusable business functions (e.g., Get Customer details, Update customer payments etc.); The importance of reusability cannot be stressed enough in an integration context. Every effort should be made to create functions that are reusable across different consumers (not necessarily service oriented) and avoid building specific point-to-point integrations.
- Are defined by explicit, implementation-independent interfaces. Implementation independent interfaces allow the systems to change their implementation (say the underlying database or even the platform in which the system runs) without affecting other systems. A service contract – is an explicit interface definition – that binds the service producer and the service consumer(s).
- Are invoked through communication protocols that stress location transparency and interoperability. While the service is defined once through a service interface, there could be multiple implementations with different access protocols for the same service. Multiple implementation protocols allow reuse of service from multiple channels as well as heterogeneous systems (running in different platforms).
While SOA is quite useful within the enterprise, the real need for SOA is when it comes to integration with the external world – B2B, B2C etc. And this is where “Web Services” fits in. Web service is one of the key methods of enabling SOA.