Toward a Pattern Language for Service-Oriented Architecture and Integration (Part I)
08/28/2005
By Ali Arsanjani, Ph.D., Chief Architect, SOA and Web Services Center of Excellence, IBM
As the IT industry matures, we will witness the emergence of more and more successful designs and implementations of Service-Oriented Architectures (SOA). We will also encounter challenges that appear to be recurring in slightly different forms but fundamentally have the same underlying problems. We also tend to repeat solutions with slight variations. To address this, the following patterns have arisen in the context of projects involving Service-Oriented Architecture (SOA) and Service-Oriented Integration (SOI). These projects have focused on the migration, modeling, design, and implementation of Service-Oriented Architecture and in the loosely-coupled integration enabled through services, which is termed Service-Oriented Integration. In this series, we will share these patterns and experiences related to their use. We will provide guidance on how to use them in combination to help solve commonly encountered problems in the migration, modeling, design, and implementation of SOA and SOI.
It becomes increasingly important to understand that a single SOA solution is seldom the right fit. Rather, SOA solutions should be tailored to the approach and level of maturity of the organization to ensure a smoother path to adoption and success. There are four levels of adoption of SOA, which are identified and explained in Table 1 below.
Companies are at different levels of maturity in the adoption and incorporation of Service-Oriented Architectures (SOA). Some are just beginning to explore the world of SOA using its technology instantiation: Web services. They are wrapping legacy functionality and exposing it for invocation for third-parties, clients, and business partners. This gets them into the game: they ramp up the development team, start the process of changing the corporate culture to better support SOA, and take the first steps in the exploration of new technologies and the business capabilities that may be impacted. This is level one.
Level two of SOA adoption is when the initial testing of Web services has been successfully overcome and now the organization is beginning to integrate systems and applications using services. This is a step beyond Enterprise Application Integration (EAI). As proprietary protocols, glue code, and point-to-point connections give way to more open, standards-based protocols and interaction based on service descriptions that each system externalizes, we step into the realm of Service-Oriented Integration (SOI). In this world, the enterprise service bus reigns supreme: a mechanism for mediation, routing, and transformation of service invocations irrespective of the target service provider. It helps overcome many of the shortcomings associated with point-to-point connections.