SOA has significantly influenced the direction of Enterprise Integration. Many enterprise technologies such as BPEL, BPM, Business Rules, etc, enable Service-driven methodologies for enterprise integration. This chapter identifies SOA’s influences and usage and primarily concentrates on the integration architectures.
What is Enterprise Integration?
Many definitions of Enterprise Integration exist. According to Gartner, it is the “unrestricted sharing of data and business processes among any connected applications or data sources in the enterprise.” This is the simplest and the best definition of Enterprise Integration. It succinctly defines the core function of EI and draws connections between its past, present, and future.
The modern form of Enterprise Integration, Service-driven Application Integration is based on SOA. First described by Gartner (1996), Service Oriented Architecture (SOA) is a style of software architecture that is modular, distributed and loosely coupled. SOA-style applications use business components that are designed to be reusable across applications and enterprise boundaries. These components are invoked through Services that are based on well-defined interface definitions, and are independent of the underlying hardware and software platforms, as well as development language (Gartner, 1996). Service-driven Application Integration uses SOA approaches to enable integration across the enterprise.
Considering the key differences between the Enterprise Integration and SOA definitions above, one can see the emphasis on integration with EI and reuse with SOA. Therein lays the core development in the maturation process of integration techniques – from basic application and data integration, to better componentized, reusable, and specialized code fragments.
Charles Darwin described human evolution from single cell organisms to the complex, intricate life forms we are today. Integration evolution can be described in similar terms. It started out as simple point-to-point communication and evolved into the complex Service-driven architecture style as shown in Figure 1.
Figure 1. Evolution of enterprise integration
Enterprise Application Integration (EAI), the first structured integration technique, became popular in the late 1980s, early 1990s. IT environments had matured to the point where multiple systems performed various critical functions and needed to be integrated with each other. The days of monolithic mainframe applications were over. Shared responsibilities and the ever-maturing landscape of development tools, vendors, and technologies forced companies to think about integration.
Niels Bohr once said “All ingenious is simple.” First integration techniques were simple but far from ingenious. They continue to be used today and still cause headaches for architects across the industry. These techniques were simple data replication approaches where data was copied from one system to another. While such approaches make sense in certain situations, they largely tend to cause problems, including duplication of data and related rules, increased storage costs, lack of real-time access, and higher support costs.
EAI products were designed to address these issues. They opted for a more real-time integration approach and quickly became popular. However, lack of standards and inability to easily switch between different EAI platforms became the downfall of classic EAI. Open standards transformed the integration world from EAI into Service-driven Application Integration.