Professional Documents
Culture Documents
Enterprise Integration Patterns Flashcards: Remote Procedure Invocation
Enterprise Integration Patterns Flashcards: Remote Procedure Invocation
Integration
Patterns
Flashcards
Apache Camel is a
popular open source
integration framework
that makes it easy
for developers to
implement Enterprise
Integration Patterns.
http://camel.apache.org
Jboss.org/products/fuse
File Transfer
Shared Database
Remote
Procedure
Invocation
Application
Application
AA
EE
xx
pp
oo
rr
tt
Shared
Data
II
m
m
pp
oo
rr
tt
Application
Application
BB
Application
Application
AA
Application
Application
BB
Application
Application
C
C
Application
Application
AA
SS
tt
uu
bb
Function
Result
SS
kk
ee
ll
ee
tt
oo
nn
Application
Application
BB
Integrate applications by
having them store their data
in a single Shared Database,
and define the schema of
the database to handle all
the needs of the different
applications.
Messaging
Message Channel
Message
Application
Application
AA
Application
Application
BB
Shared
Data
Message
Channel
Application
Application
C
C
Application
Application
AA
Application
Application
C
C
Event
Event
Message Bus
Application
Application
BB
Sender
Application
Messaging
System
Receiver
Application
Message Bus
Message Router
Message
Translator
out u eue
Pipe
Decrypt
Decrypt
Incoming
Order
Pipe
Authenticate
Authenticate
Filter
Pipe
Filter
Pipe
De-Dupe
De-Dup
Translator
ueue
Filter
out u eue
Clean
Order
Message
Router
Incoming Message
Translated Message
Message Endpoint
Point-to-Point
Channel
Publish-Subscribe
Channel
Data
Message
Endpoint
Message
Channel
Message
Endpoint
Sender
Application
Data
Receiver
Application
Sender
Point-to-Point
Channel
Receiver
Address
Changed
Subscriber
Address
Changed
Subscriber
Address
Changed
Subscriber
A Point-to-Point Channel
ensures that only one receiver
consumes any given message.
The channel can have
multiple receivers that can
consume multiple messages
concurrently, but only one
of them can successfully
consume a particular
message.
Dead Letter
Channel
Guaranteed
Delivery
Message Bus
Publisher
Address
Changed
Publish-Subscribe
Channel
Delivery Fails
Sender
Sender
Message
Channel
Intended
Receiver
Disk
Computer 1
Reroute Delivery
Dead
Message
Dead Letter
Channel
Application
Receiver
Application
Disk
Computer 2
A Message Bus is a
combination of a Canonical
Data Model, a common
command set, and a
messaging infrastructure
to allow different systems
to communicate through a
shared set of interfaces.
Message
Bus
Application
Command
Message
C
Sender
Document
Message
Command
Message
Receiver
Sender
Event Message
E
Observer
Document
Message
Receiver
E
D = aPurchaseOrder
C = getLastTradePrice('DIS');
Subject
Event
Message
Observer
E
E = aPriceChangedEvent
Observer
Request-Reply
Return Address
Correlation
Identifier
Reply
Channel 1
Reply
Channel 2
Request
Channel
Requestor 1
Request
Replier
Correlation
Requests
Request
Channel
Requestor 2
Reply
Channel 1
Reply
Reply
Channel 2
Reply
Message ID
3
Requests
Request
Re l
Channel
Re l
Re l e
Content-Based
Router
Message Filter
Dynamic Router
Requestor
Replies
na
Widget
Inventory
New Order
Gadget
Inventory
Widget
Quote
Gadget Widget
Quote Quote
Message
Filter
Widget
Quote
Widget
Quote
Replier
Correlation ID
n ut Channel
Router
Message Router
ut ut Channel
ut ut Channel
ut ut Channel
C
C
Router
na
Rule ase
Control Channel
Recipient List
Splitter
Recipient Channel
Aggregator
AA
BB
New Order
C
C
Recipient List
Splitter
Order
Item 1
Order
Item 2
Order
Item 3
D
D
Aggregator
Inventory
Order
Resequencer
Composed
Message Processor
Scatter-Gather
Quote
Vendor
VendorAA
1
Broadcast
Quote Request
Resequencer
New Order
Composite
Message
Processor
Vendor
VendorBB
Vendor
VendorCC
Validated
Order
Routing Slip
Content Enricher
Content Filter
Best Quote
Aggregator
Enricher
Content Filter
Proc
Proc AA
A
C
Proc
Proc BB
Basic Message
Enriched Message
Message
Proc
Proc C
C
Route Message
According to Slip
Message
Resource
Claim Check
Check Luggage
Data Enricher
Message
w/Claim Check
Message
w/Data
Normalizer
Messaging
Gateway
Normalizer
Message
w/Data
Different Message
Formats
Common Format
Router
Datastore
Messaging
System
Messaging
Gateway
Translators
Messaging
Gateway
Application
Application
Messaging
Mapper
Transactional
Client
Polling Consumer
transaction
Messaging
Mapper
transaction
Sender
Business
Object
Messaging
Infrastructure
Transactional
Producer
Message
Sender
Message
Polling
Consumer
Transactional
Consumer
Receiver
Receiver
A Polling Consumer is an
object that an application
uses to receive messages by
explicitly requesting them.
When the application is ready
for another message, it polls
the consumer, which in turn
gets a message from the
messaging system and
returns it.
Event-Driven
Consumer
Competing
Consumers
Message
Dispatcher
1
Consumer
Performer
Sender
Message
Event-Driven
Consumer
Receiver
An Event-Driven Consumer is
an object that is invoked by
the messaging system when
a message arrives on the
consumers channel.
The consumer passes the
message to the application
through a callback in the
applications API.
Get the tool: jboss.org/products/fuse
3
Sender
2
Messages
2
Consumer
Receiver
3
Sender
2
Messages
2
Performer
Message
Dispatcher
Consumer
Receiver
Performer
Receiver
Selective
Consumer
Durable
Subscriber
Idempotent
Receiver
Network Failure
Specifying
Producer
Messages with
Selection Values
Selective
Consumer
Durable
Subscriber
Receiver
Sender
Receiver
Receiver
Message
Ack.
Publisher
Message
Ack.
Publish-Subscribe
Channel
Non-Durable
Subscriber
Receiver
Duplicate Message
Design a receiver to be an
Idempotent Receiver, one that
can safely receive the same
message multiple times.
Service Activator
Detour
Wire Tap
i re a
Request
Service
Source
Source
Detour
Destination
Destination
Source
Source
Destination
Destination
ontro
Reply
Requestor
Service
Activator
Replier
Message Store
Message Store
#10611447_V1_0313