Enterprise Application Integration Walter Moerkerken Ilona Wilmont Integratie Software Systemen 8 mei 2006
Today’s topics Evolution of software architecture Evolution of software architecture Middleware and EAI Middleware and EAI Message Brokers Message Brokers EAI with message brokers EAI with message brokers Publish/subscribe model of interaction Publish/subscribe model of interaction History Workflow Management systems History Workflow Management systems WfMs`s WfMs`s WfMs als programmeertaal WfMs als programmeertaal Conclusions Conclusions
Evolution of software architecture
Information system design Presentation layer Presentation layer - communication with other entities Application logic layer Application logic layer - actual operation Resource management layer Resource management layer - data to work with
Architectural design Information systems are composed of several layers, or tiers. Information systems are composed of several layers, or tiers. One-tier architectures One-tier architectures Two-tier architectures Two-tier architectures Three-tier architectures Three-tier architectures N-tier architectures N-tier architectures
Middleware and EAI
Middleware Interaction between applications across heterogeneous platforms Interaction between applications across heterogeneous platforms Solution to integrating set of servers and applications under a common service interface Solution to integrating set of servers and applications under a common service interface Basic infrastucture behind distributed information system Basic infrastucture behind distributed information system
Enterprise Application Integration Extends middleware capabilities to cope with application integration Extends middleware capabilities to cope with application integration Uses application logic layers of different middleware systems as building blocks Uses application logic layers of different middleware systems as building blocks
The supply chain Customer request Customer request - Querying company Order processing Order processing - Analysis and verification purchase order - Scheduling manufacturing of goods Order fulfillment Order fulfillment - Delivery to customer - Delivery to customer - Financial issues
Difficulties Different operating system Different operating system Support for different interfaces and functionality Support for different interfaces and functionality Different data format Different data format Different security requirements Different security requirements Different infrastructure and interaction protocols Different infrastructure and interaction protocols
Message Brokers
Traditional MOM Point-to-point links Point-to-point links No support for routing logic No support for routing logic No support for heterogeneity No support for heterogeneity Sender identifies receiver Sender identifies receiver Complexity increases as more applications are added to the system Complexity increases as more applications are added to the system
Message Brokers Enhanced MOM-systems Enhanced MOM-systems Distribution of messages Distribution of messages Provides flexibility in routing Provides flexibility in routing Filtering of messages Filtering of messages Processing of messages Processing of messages Adapters for uniform data format Adapters for uniform data format Routing logic moved to middleware Routing logic moved to middleware
Routing logic Based on sender’s identity, message type or message content Based on sender’s identity, message type or message content Rule-based language Rule-based language Message broker level Message broker level Queue level Queue level
MOM vs. Message Brokers
Message Broker Problems No tools provided for debugging and maintenance No tools provided for debugging and maintenance Performance decreases if application- specific rules are executed at each delivery Performance decreases if application- specific rules are executed at each delivery Inability to handle large messages Inability to handle large messages
EAI with message brokers
EAI platform components Adapters Adapters – map heterogeneous data formats into common format Message broker Message broker – facilitates interaction among back-end systems
Advantages of message brokers Lower development cost Lower development cost Lower opportunity costs Lower opportunity costs Lower maintenance effort Lower maintenance effort
Publish/subscribe interaction model
Publish/subscribe overview Sender publishes message to middleware Sender publishes message to middleware Receivers subscribe with middleware to register their interest Receivers subscribe with middleware to register their interest
Decoupling Time Time – not actively participating in event at the same time Space Space – no references to each other Synchronisation Synchronisation – asynchronous publication and notification
Types of publish/subscribe Topic-based Topic-based Content-based Content-based Type-based Type-based
Topic-based publish/subscribe Earliest scheme, based on topics Earliest scheme, based on topics Identified by keywords Identified by keywords Represented as strings Represented as strings Improvement: hierarchical addressing Improvement: hierarchical addressing –SupplyChain.newPO Static scheme with limited expressive power Static scheme with limited expressive power
Content-based publish/subscribe Based on content of message Based on content of message Attributes Attributes Meta-data associated with message Meta-data associated with message Subscribe using subscription language Subscribe using subscription language Specify filters for valid events Specify filters for valid events –type = “newPO” AND quantity = “1200”
Type-based publish/subscribe Only a suggestion Only a suggestion Filtering messages according to type Filtering messages according to type Message kind linked to message type Message kind linked to message type Closer integration of language and middleware Closer integration of language and middleware
Workflow Management Systems
Geschiedenis Geschiedenis Wat is een workflow? Wat is een workflow? Uitvoering van een workflow Uitvoering van een workflow Workflow als programmeertaal Workflow als programmeertaal Workflows met andere Middleware Workflows met andere Middleware Voordelen/Nadelen Voordelen/Nadelen
Geschiedenis WfMs`s in chronologische volgorde WfMs`s in chronologische volgorde –Administrative workflows –Production workflows WfMs`s vs. EAI tools WfMs`s vs. EAI tools –Heterogeniteit –Logica definitie Perfecte combinatie Perfecte combinatie
Workflow Management Systems Geschiedenis Geschiedenis Wat is een workflow? Wat is een workflow? Uitvoering van een workflow Uitvoering van een workflow Workflow als programmeertaal Workflow als programmeertaal Workflows met andere Middleware Workflows met andere Middleware Voordelen/Nadelen Voordelen/Nadelen
Wat is een workflow? Workflow proces: Workflow proces: –Work Nodes –Routing Nodes –Start & Completion Nodes –Workflow instantie
Workflow Management Systems Geschiedenis Geschiedenis Wat is een workflow? Wat is een workflow? Uitvoering van een workflow Uitvoering van een workflow Workflow als programmeertaal Workflow als programmeertaal Workflows met andere Middleware Workflows met andere Middleware Voordelen/Nadelen Voordelen/Nadelen
Uitvoering van een Workflow Workflow Engine
Workflow Management Systems Geschiedenis Geschiedenis Wat is een workflow? Wat is een workflow? Uitvoering van een workflow Uitvoering van een workflow Workflow als programmeertaal Workflow als programmeertaal Workflows met andere Middleware Workflows met andere Middleware Voordelen/Nadelen Voordelen/Nadelen
Workflow als programmeertaal Variabelen Variabelen Uitvoerder van de procedure Uitvoerder van de procedure Resource regels Resource regels Afhandeling van fouten is anders Afhandeling van fouten is anders –Forward Recovery –Backward Recovery –Exception-handling Languages –Deadlines
Workflow Management Systems Geschiedenis Geschiedenis Wat is een workflow? Wat is een workflow? Uitvoering van een workflow Uitvoering van een workflow Workflow als programmeertaal Workflow als programmeertaal Workflows met andere Middleware Workflows met andere Middleware Voordelen/Nadelen Voordelen/Nadelen
Workflow met andere middleware
Workflow Management Systems Geschiedenis Geschiedenis Wat is een workflow? Wat is een workflow? Uitvoering van een workflow Uitvoering van een workflow Workflow als programmeertaal Workflow als programmeertaal Workflows met andere Middleware Workflows met andere Middleware Voordelen/Nadelen Voordelen/Nadelen
Voordelen/Nadelen Voordelen: Snel procesontwerp Snel procesontwerp Foutenafhandeling Foutenafhandeling Makkelijk te ondersteunen Makkelijk te ondersteunenNadelen: Een overvloed aan workflows Een overvloed aan workflows Dure software licenties Dure software licenties Complexe installatie en operatie Complexe installatie en operatie Lange ontwikkelingsfase Lange ontwikkelingsfase
Conclusies Message broker & Workflow in EAI: Message broker Message broker Workflow modegevoelig Workflow modegevoelig –Lijmen van verschillende systemen –Bieden (nog) niet wat men verwachtte Samenvoeging Samenvoeging Waarom zoekt men nog wel naar iets anders? Waarom zoekt men nog wel naar iets anders?