Upload
johan-aludden
View
3.419
Download
4
Tags:
Embed Size (px)
Citation preview
Enterprise Integration patterns
Johan AluddenTwitter: johanaludden
Mail: [email protected]: johanaludden.com/weblog
Integration styles
2
Integration styles• File transfer
2
Integration styles• File transfer• Shared Database
2
Integration styles• File transfer• Shared Database• Remote Procedure Invocation
2
Integration styles• File transfer• Shared Database• Remote Procedure Invocation• Messaging
2
Messaging
3
Messaging• Channels
3
Messaging• Channels• Messages
3
Producer Consumer
4
Producer Consumer• Many producers - Many Consumers
4
Producer Consumer• Many producers - Many Consumers• Message read once
4
Producer Consumer• Many producers - Many Consumers• Message read once• Load balancing
4
Producer Consumer• Many producers - Many Consumers• Message read once• Load balancing• Parallelization
4
Publish subscribe
5
Publish subscribe• Many Producers - Many Consumers
5
Publish subscribe• Many Producers - Many Consumers• Message read once per subscriber
5
Publish subscribe• Many Producers - Many Consumers• Message read once per subscriber• Broad casting
5
Publish subscribe• Many Producers - Many Consumers• Message read once per subscriber• Broad casting• Different processing
5
Channel Types• Producer Consumer• Publish Subscribe
6
Common Properties• Asynchronous• One Way Communication
Document Message
7
Document Message• Send information
7
Document Message• Send information• Receiver decides what to do
7
Document Message• Send information• Receiver decides what to do• Single unit of data
7
Command Message
8
Command Message• Send a command
8
Command Message• Send a command• Sender tells what to do
8
Command Message• Send a command• Sender tells what to do• Single Unit of Work
8
Message Types• Document message• Command message
9
Common Patterns
10
You want to send a request and get a reply
11
11
Sender Receiver
11
Sender ReceiverRequest
11
Sender ReceiverRequest
11
Sender Receiver
11
Sender Receiver
11
Sender Receiver
Reply
11
Sender Receiver
Reply
11
Sender Receiver
11
Sender Receiver
RequestID: 2
11
Sender Receiver
RequestID: 2
11
Sender Receiver
11
Sender Receiver
RequestID: 3
11
Sender Receiver
RequestID: 3
11
Sender Receiver
11
Sender Receiver
ReplyID: 3
11
Sender Receiver
ReplyID: 3
11
Sender Receiver
11
Sender Receiver
ReplyID: 2
11
Sender Receiver
ReplyID: 2
11
Sender Receiver
11
Request - Reply
Sender Receiver
11
One message with parts that can be handled individually
12
12
Sender Receiver
12
Sender Receiver
12
Sender Receiver
Message
Part 1
Part 2
12
Sender Receiver
Message
Part 1
Part 2
12
Sender Receiver
Part 1
Part 2
12
Sender Receiver
Part 1
Part 2
12
Sender Receiver
Part 1
Part 2
12
Splitter
Sender Receiver
Part 1
Part 2
12
Many Messages that needs to be handled together
13
13
Sender
13
Sender Receiver
13
Sender Receiver
13
Sender Receiver
Part 1
13
Sender Receiver
Part 1
Part 2
13
Sender Receiver
Part 1
Part 2
13
Sender ReceiverPart 1
Part 2
13
Sender ReceiverPart 1
Part 2
13
Sender Receiver
Message
Part 1
Part 2
13
Sender Receiver
Message
Part 1
Part 2
13
Aggregator
Sender Receiver
Message
Part 1
Part 2
13
You have one entry point for messages but they need to be
handled by different processes
14
14
Sender
Receiver 1
14
Receiver 2
Sender
Receiver 1
14
Receiver 2
Router
Sender
Receiver 1
14
Receiver 2
The sender and the receiver does not speak the same
language
15
15
Sender
15
Sender Receiver
15
Sender Receiver
15
Translator
Sender Receiver
15
You have messages that have the same semantic but
different formats
16
16
Sender 1
Receiver
16
Sender 2
Router
Sender 1
Receiver
16
Sender 2
Translator
Translator
Router
Normalizer
Sender 1
Receiver
16
Sender 2
Translator
Translator
You want to send the same message to many but to
handle the responses together
17
17
AggregatorSender 1 Receiver
17
Service 1
Service 2
Aggregator
Scatter Gather
Sender 1 Receiver
17
Service 1
Service 2
Pipes & Filter• Like Lego• Combine different patterns
18
Other Patterns• Resequencer• Routing slip
19
Links• Enterprise Integration Patterns site, http://www.eaipatterns.com/
• Book, http://www.amazon.com/Enterprise-Integration-Patterns-Designing-Deploying/dp/0321200683
20
Questions?
21