Enterprise Integration Patterns Exemplified in Java Business Integration Part I - Introduction Christoph Hartmann
2 There is no simple answer for enterprise integration. Hohpe et al. Enterprise Integration Patterns, 2004, p. 4
Agenda 3 Part I - Introduction Fundamental Integration Challenges Integration Styles Service-oriented Architecture Enterprise Service Bus Part II - Introduction Design Patterns Java Business Integration Part III - Analysis Client Normalized Message Router Service Engine Conclusion
Fundamental and Integration Challenges 4 Networks are unreliable Networks are slow Any two applications are different Change is inevitable Software has to map the enterprise communication structure Complex implications Changes to legacy systems are not possible in most cases Only a few standards for integration exist (XML, XSL, Web Services) Enterprise Application Integration is a complex task
Integration Styles 5 File transfer Application A Export Shared Data Import Application B Shared database Application A Application B Application C DBMS Client DBMS Client DBMS Client R R DBMS R Shared Data
Integration Styles 6 Remote procedure invocation R Application A Stub Function R Result Skeleton Application B Messaging Application A Application B Application C Event R Event R Event R Message Bus
Messaging 7 Main steps: Create, Send, Deliver, Receive, Process Benefits of messaging Remote communication Variable timing Throttling Reliable communication Disconnected operation Mediation Thread management Platform/language integration Asynchronous communication Sending Application Create message Send message Channel Deliver message Receiving Application Process message Receive message
Service-oriented Architecture 8 Key concepts Application front-end Service Service repository Service bus Message Characteristics Reusable Synchronously callable Asynchronously callable Shared enterprise wide
Enterprise Service Bus 9 An Enterprise Service Bus provides a Service-oriented Architecture approach to building composite applications. open esb ESB combines Messaging Data transformation Reliable routing Web Services Client R R Message Bus Service 1 Service 2 Service 3 Service 4 ESB provides an implementation infrastructure for SOA based applications Standard based integration platform Often called integration network
10 Thanks for your attention.
Bibliography 11 Gregor Hohpe and Bobby Woolf, Enterprise Integration Patterns, Addison Wesley, 2004 David A. Chappell, Enterprise Service Bus. Theory in Practice, O Reilly, 2004 Eric Pulier and Hugh Taylor, Understanding Enterprise SOA, Manning Publications, 2006
Enterprise Integration Patterns Exemplified in Java Business Integration Part II - Introduction Christoph Hartmann
Agenda 13 Part I - Introduction Fundamental Integration Challenges Integration Styles Service-oriented Architecture Enterprise Service Bus Part II - Introduction Design Patterns Java Business Integration Part III - Analysis Client Normalized Message Router Service Engine Conclusion
Design Patterns - Definition 14 Each pattern describes a problem which occurs over and over again in our environment, and then describes a core of the solutions to that problem, in such a way that you can use that solution a million times over, without ever doing it the same way twice Alexander. et al. A Pattern Language. Oxford, 1977.
Design Patterns 15 Designers should reuse solutions that have worked in the past Patterns were not invented but they were discovered Patterns have four essential elements Pattern name Problem Solution Consequences Support the decision of design alternatives The pattern value consists in helping to communicate ideas to others
Java Business Integration 16 An open and flexible way to integrate applications Implementation of an Enterprise Service Bus Try to avoid problems that are known from classic Enterprise Application Integration (EAI) frameworks Specifies: Plug-in components Message Routing Component life cycle Component administration Component packaging Is based upon WSDL 2.0
17 JBI Architecture Service Consumer JBI Artifacts Client Bound Message Message Exchange JBI Instance FTP JBI Components JBI Component Manager Binding Component Message Exchange Service Service Engine Engine Message Exchange Message Buffer Delivery Channel Normalized Message Router (NMR)
Message Exchange (Request-Response) 18 Client FTP Binding Component Message Exchange Normalized Message Router (NMR) Message Exchange Service Engine Client Consumer (BC) NMR Provider (SE) Create bound message Convert BM and initialize an in-out message exchange Accept message exchange and determine service provider Accept message exchange and denormalize message Send bound message (BM) Send message exchange Forward message Recieve, compute & response message Recieve response message Recieve response message Recieve message exchange and determine consumer Add response message to message exchange
Enterprise Integration Patterns Exemplified in Java Business Integration Part II - Analysis Christoph Hartmann
Agenda 20 Part I - Introduction Fundamental Integration Challenges Integration Styles Service-oriented Architecture Enterprise Service Bus Part II - Introduction Design Patterns Java Business Integration Part III - Analysis Client Normalized Message Router Service Engine Conclusion
Analysis - Client 21 Client FTP Binding Component Message Exchange Client Logic C MessageExchange D Normalized Message Message Context Message Content (XML) Status Information e.g. for transaction Attachments
Analysis Normalized Message Router 22 Binding Component Message Exchange Normalized Message Router (NMR) Message Exchange Service Engine
Analysis Service Engine 23 Service Engine Service Logic D
Conclusion 24 Patterns can be discovered in real world scenarios Finding patterns can decrease development time Patterns improve the communicate with colleagues Only integration patterns were presented Other patterns are: OO patterns Enterprise application architecture patterns SOA pattern Granularity of patterns is questionable
Bibliography 25 Alexander. et al. A Pattern Language. Oxford, 1977. E. Gamma et al. Design Patterns Elements of Reusable Object- Orientated Software. Addison-Wesley, 1995. M. Fowler. Patterns of Enterprise Application Architecture. Addison-Wesley, 2002 G. Hohpe and B. Woolf. Enterprise Integration Patterns - Deigning, Building, and Deploying Messaging Solutions. Pearson Education, 2004. D. A. Chappell. Enterprise Service Bus - Theory in Practice. O Reilly, 2004. Ch. Hartmann. Einführung in Java Business Integration. Seminar Systemmodellierung, 2006. A. Sterkin. Teaching Design Patterns. JBI Specifiction JSR 208
26 Thanks for your attention.