• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Enterprise Application Integration Technologies

Enterprise Application Integration Technologies



Overview of Enterprise Application Integration Technologies. ...

Overview of Enterprise Application Integration Technologies.
Enterprise Application Integration, or EAI in short, aims at integrating different applications into an IT application landscape. Traditionally, EAI was understood as using the same communication infrastructure by all applications without service-orientation in mind. This meant that the benefits of a shared infrastructure were limited while driving up costs through additional integration platforms.
Service Oriented Architectures (SOA) brought a new paradigm by decomposing applications into reusable and shareable services. Service orientation requires careful design of services. A hierarchic scheme of services may help to define a suitable service decomposition.
While SOA is technically based on big web service technologies, namely SOAP, WSDL and BPEL, WOA or Web Oriented Architecture stands for the lightweight service paradigm. WOA makes use of REST-based technologies like JSON and HTTP.
In many cases, an Enterprise Service Bus (ESB) is used as an infrastructure element to achieve the technical integration of the services. The ESB core functions like message routing, filtering and transformation provide the mediation services required to integrate heterogeneous application landscapes.



Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    Enterprise Application Integration Technologies Enterprise Application Integration Technologies Presentation Transcript

    • Enterprise Application Integration indigoo.com • Contents 1. EAI versus SOA versus ESB 2. EAI 3. SOA 4. ESB 5. N-tier enterprise architecture 6. WS-BPEL 7. WOA © Peter R. Egli 2014 1/15 Rev. 1.50
    • indigoo.com Enterprise Application Integration 1. EAI versus SOA versus ESB (1/3) What is EAI (Enterprise Application Integration)? EAI aims at integrating different enterprise applications. Thus EAI is a goal for enterprise architectures. What is SOA: SOA is an architectural pattern that aims at concentrating common (business) functionality into distinct services and exposing these on endpoints. Thus SOA is a means or architectural pattern to achieve EAI. What is ESB? ESB is an infrastructure component to facilitate SOA (ESB = messaging backbone) and EAI. Architectural pattern for SOA EAI Infrastructure component for ESB © Peter R. Egli 2014 2/15 Rev. 1.50
    • indigoo.com Enterprise Application Integration 1. EAI versus SOA versus ESB (2/3) Traditional EAI architectures before SOA: Client A No direct access between client and server allowed Client B Client C Client D Client E Security ESB (mediation middleware) Transaction Transformation CORBA ERP DCOM CRM RMI SCM HTTP PDM xyz Other No direct access between Servers allowed Integration of applications (common middleware infrastructure through ESB). Inefficient for compound services (services calling other services have to pass through the central EAI middleware (ESB) with security checks and transformations for each call). Limited reuse of services due to hidden endpoints (classical C/S architecture). ERP: Enterprise Resource Planning CRM: Customer Relationship Management SCM: Supply Chain Management PDM: Product Data Management © Peter R. Egli 2014 CORBA: Common Object Request Broker Architecture DCOM: Distributed COM RMI: Remote Method Invocation 3/15 Rev. 1.50
    • indigoo.com Enterprise Application Integration 1. EAI versus SOA versus ESB (3/3) The solution for EAI with SOA:  Common functionality is exposed as services.  Endpoints (services) are exposed to be freely called by anyone.  Services may call other services, clients may call services ("liberation" of endpoints).  Services form a service grid with exposed application service endpoints and centralized infrastructure service endpoints. Transaction ESB Security Logging S0 © Peter R. Egli 2014 S1 S2 S3 4/15 Rev. 1.50
    • indigoo.com Enterprise Application Integration 2. EAI (1/3) What is EAI? EAI is a business need or goal to integrate and couple diverse applications in an enterprise / organization. The benefits of EAI are:  Share information between applications (basically connect the different DBs) and keep data consistent.  Potentially reduce the technology landscape, reduce heterogeneity (standard interfaces of services mandate the use of standards, applications have less freedom to choose from different DBs, OSs, middlewares etc.).  Faster and easier deployment of a new / updated application (interfaces for the integration are defined, middleware technologies are in place). Traditional IT landscape: n*(n-1)/2 application interface connections. EAI architecture: Central communication backbone. with standard interfaces. Messaging backbone © Peter R. Egli 2014 5/15 Rev. 1.50
    • indigoo.com Enterprise Application Integration 2. EAI (2/3) Typical EAI topologies: 1. Hub and spoke:  EAI system is at the center (hub), interaction with applications via adaptors (=spokes). 2. Bus:  EAI system is a bus.  Distributed message-oriented communication. App. App. App. App. Adaptor App. Adaptor Adaptor App. Hub (msg. Broker) Messaging backbone App. Adaptor Adaptor Adaptor App. App. App. App. Adaptor © Peter R. Egli 2014 6/15 Rev. 1.50
    • Enterprise Application Integration indigoo.com 2. EAI (3/3) EAI building blocks: EAI can be accomplished in different ways. Most did not prove scalable (e.g. integration at DB level). Use of a centralized broker emerged as the best solution to the integration problem (scalability). This best practice has the following building blocks: 1. Centralized broker:  Handles security, access and communication.  ESB 2. Data model:  Common data model based on a standard data structure. XML has become the de-facto standard. 3. Adaptor / connector:  Adaptors / connectors connect applications to the central broker. 4. System model:  Defines the interface including API and data flow to a component that connects to the central broker. Allows other applications to interact with this component in a standardized way. © Peter R. Egli 2014 7/15 Rev. 1.50
    • indigoo.com Enterprise Application Integration 3. SOA (1/3) SOA aims to extract common (service) functionality from different applications and expose it on a service endpoint. In the basic SOA pattern, service consumer, provider and registry are separated into different entities. The service registry helps decoupling service consumer and provider so that the consumer does not need to know the location of the provider. The service registry is an optional entity. In smaller deployments running a service registry may be 'overkill'. Service registry 1. Register (publish) 2. Find Service consumer © Peter R. Egli 2014 3. Bind Service provider 8/15 Rev. 1.50
    • Enterprise Application Integration indigoo.com 3. SOA (2/3) Services can be exposed at different levels / granularity: Finding the right granularity is crucial for a successful SOA. A layering as follows may help in defining / decomposing the service landscape. Users Granularity Applications Workflow services Business services Component services Applications invoke workflow services. Conversational workflow services have a state. Example: Expense processing service. Standard: WS-BPEL Orchestrates component services into a single business level process. Example: Submit an expense report. Simple atomic action on a resource; action does not depend on any other service / component. Example: Simple access to a DB table. Enterprise resources © Peter R. Egli 2014 9/15 Rev. 1.50
    • indigoo.com Enterprise Application Integration 3. SOA (3/3) Standards are crucial for SOAs. These standards may be layered as follows: Semantic standards ebXML, XML/EDIFACT, HL7 CDA, SWIFT etc. Service orchestration (WS-BPEL) Service discovery (UDDI, JAXR) Infrastructure standards Service invocation, messaging (SOAP, WS-I / WS-*) Security Transactions Management Service description (WSDL, WADL) XML (infoset, namespace, schema) Network protocol (HTTP, SMTP) ebXML: XML/EDIFACT: HL7 CDA: WS-BPEL: SWIFT: Electronic business XML XML for Electronic Data Interchange for Administration, Commerce and Transport Health Level 7 XML format WS Business Process Engineering Language Societiy for Worldwide Interbank Financial Telecommunication © Peter R. Egli 2014 Supporting standards 10/15 Rev. 1.50
    • Enterprise Application Integration indigoo.com 4. ESB Enterprise Service Bus is an infrastructure to facilitate SOA. ESB is basically a messaging backbone / broker which provides the following functions: Category Functions Invocation Support for synchronous and asynchronous transport protocols, service mapping (locating and binding). Routing Addressability, static/deterministic routing, content-based routing, rules-based routing, policybased routing. Mediation Adapters, protocol transformation, service mapping. Messaging Message-processing, message transformation and message enhancement. Process choreography Implementation of complex business processes. Service orchestration Coordination of multiple implementation services exposed as a single, aggregate service. Complex event processing Event-interpretation, correlation, pattern-matching. Other quality of service Security (encryption and signing), reliable delivery, transaction management. Management Monitoring, audit, logging, metering, admin console, BAM. Source: http://en.wikipedia.org/wiki/Enterprise_service_bus Examples: Mule IBM WebSphere ESB Microsoft BizTalk server © Peter R. Egli 2014 11/15 Rev. 1.50
    • indigoo.com Enterprise Application Integration 5. N-tier enterprise architecture "Best practice" for "horizontal" decomposition of an application: 3-tier.  Separation of concerns (user interface, business logic and data handling) improves maintainability and extensibility. Presentation tier: User interfaces Web browsers HTML, Javascript GUI clients C++, C#, Java © Peter R. Egli 2014 Middle tier: Business logic Web Server Data tier: Data sources / sinks Databases Middleware Server Legacy Systems 12/15 Rev. 1.50
    • Enterprise Application Integration indigoo.com 6. WS-BPEL (1/2) What is WS-BPEL (Web Services Business Process Execution Language)? WS-BPEL is a language to define business processes based on web services. BPEL binds (web) services together to form larger complex business services. Thus BPEL is kind of a business programming language. BPEL provides: a. Control flow (branch, loop, parallel). b. Asynchronous correlation. c. Transaction support. For writing business programs, the following components are necessary: 1. Programming logic (provided by BPEL). 2. Data types (provided by the XSD of a web service). 3. Input / output (provided by WSDL that defines the web service messages). WS-BPEL versus BPEL4WS: BPEL4WS: Original standards by BEA, IBM, MS, SAP and Siebel. WS-BPEL: Successor to BPEL4WS defined by OASIS (name to comply with WS-* scheme). WS-BPEL and BPMN (Business Process Modelling Notation): BPMN defines the (graphical) notation for business process elements while WS-BPEL defines an XML-based business process description language. © Peter R. Egli 2014 13/15 Rev. 1.50
    • Enterprise Application Integration indigoo.com 6. WS-BPEL (2/2) BPEL hello world example: <?xml version="1.0" encoding="UTF-8"?> <process xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:print="http://www.eclipse.org/tptp/choreography/2004/engine/Print" <!--Hello World - my first ever BPEL program --> <import importType="http://schemas.xmlsoap.org/wsdl/" location="../../test_bucket/service_libraries/tptp_EnginePrinterPort.wsdl" namespace="http://www.eclipse.org/tptp/choreography/2004/engine/Print" /> <partnerLinks> <partnerLink name="printService" partnerLinkType="print:printLink" partnerRole="printService"/> </partnerLinks> <variables> <variable name="hello_world" messageType="print:PrintMessage" /> </variables> <assign> <copy> <from><literal>Hello World</literal></from> <to>.value</to> </copy> </assign> <invoke partnerLink="printService" operation="print" inputVariable="hello_world" /> </process> Source: http://www.eclipse.org/tptp/platform/documents/design/choreography_html/tutorials/wsbpel_tut.html © Peter R. Egli 2014 14/15 Rev. 1.50
    • indigoo.com Enterprise Application Integration 7. WOA Web Oriented Architecture is a concept that extends or simplifies SOA through the use of REST and POX (Plain Old XML). WOA / REST is simply another (simpler?!) approach to SOA. Features / Richness SOA WS-* BPEL WSDL SOAP WOA REST JSON JMS HTTP RMI Complexity Source: http://www.zdnet.com/blog/hinchcliffe/the-soa-with-reach-web-oriented-architecture/27 POX: Plain Old XML (like POJO, but with XML) JSON: Javascript Object Notation (more compact alternative to XML) BPEL: Business Process Execution Language © Peter R. Egli 2014 15/15 Rev. 1.50