exemplified in java business integration
TRANSCRIPT
Enterprise Integration PatternsExemplified in Java Business Integration
Part I - Introduction
Christoph Hartmann
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
2
“There is no simple answer for enterprise
integration.”
Hohpe et al. Enterprise Integration Patterns, 2004, p. 4
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
3
Agenda
■ 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
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
4
Fundamental and Integration Challenges
■ 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
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
5
Integration Styles
■ File transfer
■ Shared database
Application A Application BShared Data
Exp
ort
Imp
ort
Application A Application B Application C
Shared Data
DBMS
DBMS Client DBMS Client DBMS Client
R R
R
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
6
Integration Styles
■ Remote procedure invocation
■ Messaging
Application A Application B Application C
REvent
REvent
REvent
Message Bus
Application A Application B
Stu
b
Ske
leto
n
R
Function
R
Result
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
7
Messaging
■ 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
Create
message
Send
message
Deliver
message
Receive
message
Process
message
Sending
Application
Receiving
ApplicationChannel
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
8
Service-oriented Architecture
■ Key concepts
□ Application front-end
□ Service
□ Service repository
□ Service bus
□ Message
■ Characteristics
□ Reusable
□ Synchronously callable
□ Asynchronously callable
□ Shared enterprise wide
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
9
Enterprise Service Bus
“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
■ ESB provides an implementation infrastructure for SOA based applications
■ Standard based integration platform
□ Often called “integration network”
Client
Service 1 Service 2 Service 3 Service 4
Message Bus
R
R
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
10
Thanks for your attention.
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
11
Bibliography
■ 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 PatternsExemplified in Java Business Integration
Part II - Introduction
Christoph Hartmann
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
13
Agenda
■ 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
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
14
Design Patterns - Definition
“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.
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
15
Design Patterns
■ 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
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
16
Java Business Integration
■ 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
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
17
JBI Architecture
JBI Instance
Normalized Message Router (NMR)
JBI
Component
Manager
JBI Components
Client
Binding
Component
Service
EngineService
Engine
Message
Buffer
JBI Artifacts
Message Exchange Message Exchange
FTP
Service
Consumer
Delivery
Channel
Bound
Message
Message
Exchange
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
18
Message Exchange (Request-Response)
Normalized
Message
Router (NMR)
ClientBinding
Component
Service
Engine
Message
ExchangeMessage
ExchangeFTP
Provider (SE)Consumer (BC)
Convert BM and initialize an
in-out message exchange
NMR
Accept message exchange and
determine service provider
Send message exchange Forward message
Accept message exchange and
denormalize message
Recieve, compute & response
message
Add response message to
message exchange
Recieve message exchange
and determine consumerRecieve response message
Client
Create bound message
Send bound message (BM)
Recieve response message
Enterprise Integration PatternsExemplified in Java Business Integration
Part II - Analysis
Christoph Hartmann
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
20
Agenda
■ 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
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
21
Analysis - Client
ClientBinding
Component
Message
ExchangeFTP
C
Client Logic
D
MessageExchange
Normalized Message
Message Context
Message Content
(XML)
Status
Information
e.g. for
transaction
Attachments
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
22
Analysis – Normalized Message Router
Normalized
Message
Router (NMR)
Service
Engine
Message
Exchange
Binding
Component
Message
Exchange
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
23
Analysis – Service Engine
Service
Engine
D
Service Logic
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
24
Conclusion
■ 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
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
25
Bibliography
■ 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
Subject-specific English for Software Systems Engineering | Christoph Hartmann 15.02.2007
26
Thanks for your attention.