Additional Patterns
Additional Patterns
Isolated Systems
Integration Challenges
Loose Coupling
Coupling = Measure of dependencies between
applications:
Technology Dependency
Location Dependency
Temporal Dependency
Data Format Dependency
740
System
System
RPC-Integration
Message-Oriented Middleware
Channels are separate
from applications
Channels are
asynchronous & reliable
Data is exchanged in
self-contained messages
System
A
Remove location
dependencies
Remove temporal
dependencies
Remove data format
dependencies
Channel
System
B
Message
Thinking Asynchronously
Order Mgmt
Web Site
Shipping
Inventory
New Order
Order Mgmt
Web Site
Shipping
Inventory
New Order
Confirm
New Order
Confirm
Idle
New Order
Confirm
Confirm
Synchronous
Asynchronous
70ies
80ies
90ies
00s
7
EAI Suites
TIBCO, WebMethods, SeeBeyond, Vitria, ...
HOT
HOT
Message-Oriented Integration
1. Transport messages
Application
Application
Application
Application
Application
Application
Application
Application
2. Design messages
3. Route the message to
the proper destination
4. Transform the message
to the required format
5. Produce and consume
messages
6. Manage and Test the
System
Application
Application
Application
Application
Integration Patterns
1. Transport messages
Channel Patterns
2. Design messages
Message Patterns
Routing Patterns
Transformation Patterns
Endpoint Patterns
Management Patterns
Application
Application
10
Request
Provider
Request Channel
Reply Channel
Reply
Multiple Consumers
Requests
Requests
Provider
Request Channel
Consumer
Consumer
11
Reply Channel 1
Consumer
Consumer
22
??
Reply Channel 2
Replies
12
Reply
Channel 2
Provider
Request Channel
Consumer
Consumer
11
Reply Channel 1
Consumer
Consumer
22
Replies
Reply Channel 2
Consumer
Consumer
Provider
Provider 22
Reply Channel
Service 1
(slow)
Request 1
Request 2
Reply 2
Reply 1
Service 2
(fast)
Messages can be
processed by different
consumers
Competing Consumers
(load balancing)
Content-Based Router
15
Pattern: Correlation
Message
Identifier
Consumer
1
Provider
Provider 11
2
Request Channel
Correlate
Request &
Reply
Provider
Provider 22
Response Channel
Correlation
Identifier
16
Message
Router
Gadget
Inventory
17
New
Order
Splitter
Order
Item 1
Order Order
Item 2 Item 3
Message
Router
18
Aggregator
Validated
Order
Completeness Condition
When are we ready to publish the result message?
Wait for all
Time out (absolute, incremental)
First best
Aggregation Algorithm
How do we combine the received messages into a
single result message?
Single best answer
Condense data (e.g., average)
20
Auction
Vendor
Vendor B
B
Request
For Quote
Best
Quote
Vendor
Vendor A
A
Quote
Vendor
Vendor C
C
Aggregator
21
Vendor
Vendor A
A
Quote
Vendor
Vendor B
B
New
Order
Splitter
Validated Aggregator
Order
Quote Request
for each item
Best Quote
for each item
Vendor
Vendor C
C
Aggregator
22
Example Continued
Only vendors on the preferred vendor list get to
bid on an item.
Recipient
List
Vendor
Vendor A
A
Enricher
New
Order
Splitter
Validated Aggregator
Order
Quote Request
for each item
Best Quote
for each item
Quote
Vendor
Vendor B
B
Vendor
Vendor C
C
Preferred
Vendor List
Aggregator
23
In Summary
Visual and verbal language to describe
integration solutions
Combine patterns to describe larger solutions
No fancy tools whiteboard or PowerPoint
No vendor jargon
Not a precise specification language
(e.g., see OMG UML Profile for EAI)
Resources
Book (late October):
Enterprise Integration Patterns
Addison-Wesley, 0-321-20068-3
Contact
Gregor Hohpe
[email protected]
Web Site
http://www.eaipatterns.com
Pattern catalog
Bibliography, related papers
[email protected]
www.thoughtworks.com
25