1.) Introduction
2.) Evolution of Software Integration methods
3.) Integration based on TCP/IP Sockets
RPC Remote Process Call
Object Request Broker
First introduced to object-oriented programming paradigm in software integration. It extends the concept of objects in the „distant objects”.
Distant objects communicate with each other
Known implementations: Corba and Java-RMI
Marshalling/Unmarshalling concepts appear. Platform independent serialization of the transferred parameters (or data)
Language independent interface description methods with Corba IDL (interface definition language)
Initial concept of Service Registry.
Despite its antiquity is still supported in the modern application servers (like JBoss, IBM Websphere)
Messaging systems
Messaging systems are asynchronous parallel systems
In the background there is socket communication as well
The system is asynchronous because we should not wait for the answer, execution flow is continuous, non-blocking.
Each function call creates a message on the „Message Queue”. Message processing is alway parallel in a different process.
This indirect method facilitated the loose coupling of different systems.
Guaranteed message delivery is feasible, because of the intermediate message queue.
Synchronous function calls can be simulated with a second message queue.
Web services
XML (eXtendible Markup Language) based communication, which combine the advantages of RMI, CORBA, Messaging.
Messages and responses are text messages in XML format.
Advantage: communication can be followed easily, because data streams are not binary.
Disadvantage: XML processing is more resource intensive than binary data processing.
Interface description is in XML format as well. WSDL (Web Service Definition Language), is programming language, platform independent.
UDDI (Universal Description, Discovery and Intergration) It is a registry for discovery, describe services.
SOAP (Simple Object Access Protocol) is applied for data transmission.
Enterprise Service Bus (ESB)
The Web services are not effectively solve the interconnection of heterogeneous systems.
Not resolve the communication protocol deviations, i.e. during communication, the protocol offered by the service is different than the protocol used by the client.
Protocol and message transformation is also possible
message routing – based on context and content
QoS (Quality of Service) – performance, security, reliability
data enrichment – information extension with automatic extra data
EAI Requirements
EAI (Enterprise Application Integration) covers every part of an enterprise system including business processes, architecture, hardware, software.
Business Process Integration (BPI). It is very important for a corporation to specify the processes involved in the interchange of enterprise information. „This allows organizations to streamline operations, reduce costs and improve responsiveness to customer demands.” This can include process management, process modeling and workflow. Here, we involve the combination of tasks, procedures, organizations,required input and output information, and tools needed for each step in a business process.
Application Integration: Here, the goal is to „bring data or a function from one application together with that of another application that together provide near real-time integration.” This can include, business-to-business integration, customer relationship management (CRM) systems which can be integrated with a company's backend applications, web integration, and building web sites that interact with multiple business systems.
Data Integration: If we want the above two integrations to succeed, we must also integrate the data involved. Its location must be identified, recorded, and a metadata model must be built (a master guide for various data stores). Now, data can be shared or distributed across database systems, providing it is in a standard format such as COM+/DCOM, CORBA, EDI, JavaRMI, and XML.
Platform Integration: Finally, the separate needs of the heterogeneous network must be integrated. Platform Integration deals with the processes and tools that are required to allow these systems to communicate, both optimally and securely, so data can be passed through different applications without difficulty.