Busy. Please wait.
or

show password
Forgot Password?

Don't have an account?  Sign up 
or

Username is available taken
show password

why


Make sure to remember your password. If you forget it there is no way for StudyStack to send you a reset link. You would need to create a new account.
We do not share your email address with others. It is only used to allow you to reset your password. For details read our Privacy Policy and Terms of Service.


Already a StudyStack user? Log In

Reset Password
Enter the associated with your account, and we'll email you a link to reset your password.

Remove ads
Don't know
Know
remaining cards
Save
0:01
To flip the current card, click it or press the Spacebar key.  To move the current card to one of the three colored boxes, click on the box.  You may also press the UP ARROW key to move the card to the "Know" box, the DOWN ARROW key to move the card to the "Don't know" box, or the RIGHT ARROW key to move the card to the Remaining box.  You may also click on the card displayed in any of the three boxes to bring that card back to the center.

Pass complete!

"Know" box contains:
Time elapsed:
Retries:
restart all cards




share
Embed Code - If you would like this activity on your web page, copy the script below and paste it into your web page.

  Normal Size     Small Size show me how

Messaging Patterns

Best practices in using messaging

QuestionAnswer
Routing Slip (301) Attach a Routing Slip to each message, specifying the sequence of processing steps. Wrap each component with a special message router that reads the Routing Slip and routes the message to the next component in the list.
Composed Process Manager The Composed Message Processor splits the message up, routes the sub-messages to the appropriate destinations and re-aggregates the responses back into a single message.
Integration Styles 1) File Transfer 2) Shared DB 3) Remote Procedure Invocation 4) Messaging
Channel A virtual pipe that connect the sender to the receiver.
Message Atomic packet of data that can be transmitted on a channel.
Pipes and Filters Chained together processes between the sender and receiver.
Routing Alternative to pipes and filter
Transformation Changing formats between sender and receiver (like the Message Translator 85)
Endpoints The piece of code that knows both the application and the messaging system, bridging them together.
Messaging Endpoints (95) a client of the messaging system that the application can then use to send or receive messages.
Content Enricher (336) The Content Enricher uses information inside the incoming message (e.g. key fields) to retrieve data from an external source.
Scatter-Gather (297) Use a Scatter-Gather that broadcasts a message to multiple recipients and re-aggregates the responses back into a single message. Includes the Recipient List (249), the Publish-Subscribe (106), Aggregator (268), Normalizer (352)
Publish-Subscribe (106) delivers a copy of a particular event to each receiver.
Recipient List (249) Define a channel for each recipient. Then use a Recipient List to inspect an incoming message, determine the list of desired recipients, and forward the message to all channels associated with the recipients in the list.
Aggregator (268) Use a stateful filter, an Aggregator, to collect and store individual messages until a complete set of related messages has been received. Then, the Aggregator publishes a single message distilled from the individual messages.
Content-Based Router (230) to route each message to the correct recipient based on message content. Can take the form of the rule base and the recipient list combined.
Message Translator (85) Use a special filter, a Message Translator, between other filters or applications to translate one data format into another.
Normalizer (352) Use a Normalizer to route each message type through a custom Message Translator so that the resulting messages match a common format.
Message Channel (60) Connect the applications using a Message Channel, where one application writes information to the channel and the other one reads that information from the channel.
Pipes and Filters (70) Use the Pipes and Filters architectural style to divide a larger processing task into a sequence of smaller, independent processing steps (Filters) that are connected by channels (Pipes).
Message Filter (237) Use a special kind of Message Router, a Message Filter, to eliminate undesired messages from a channel based on a set of criteria.
Message Router (78) Insert a special filter, a Message Router, which consumes a Message from one Message Channel and republishes it to a different Message Channel channel depending on a set of conditions.
Control Bus (540) The Control Bus uses the same messaging mechanism used by the application data, but uses separate channels to transmit data that is relevant to the management of components involved in the message flow.
Data Type Channel (111) Use a separate Datatype Channel for each data type, so that all data on a particular channel is of the same type.
Selective Consumer (515) Make the consumer a Selective Consumer, one that filteres the messages delivered by its channel so that it only receives the ones that match its criteria.
Event-Driven Consumer (498) The application should use an Event-Driven Consumer, one that is automatically handed messages as they’re delivered on the channel.
Point-to-Point Channel (103) Send the message on a Point-to-Point Channel, which ensures that only one receiver will receive a particular message.
Polling Consumer (494) The application should use a Polling Consumer, one that explicitly makes a call when it wants to receive a message.
Message Bus (137) A Message Bus is a combination of a common data model, a common command set, and a messaging infrastructure to allow different systems to communicate through a shared set of interfaces.
Message Dispatcher (508) Create a Message Dispatcher on a channel that will consume messages from a channel and distribute them to performers.
Correlation Identifier (163) Each reply message should contain a Correlation Identifier, a unique identifier that indicates which request message this reply is for.
Massage Gateway Use a Messaging Gateway, a class than wraps messaging-specific method calls and exposes domain-specific methods to the application.
Dynamic Router (243) Use a Dynamic Router, a Router that can self-configure based on special configuration messages from participating destinations.
Competing Consumers (502) Competing Consumers are multiple consumers that are all created to receive messages from a single Point-to-Point Channel.
Routing Architectures 1) Pipes and Filters 2) Routing Slip 3) Process Manager
How to handle invalid messages 1) Invalid Message Channel 2) Dead letter channel 3) Guaranteed delivery
Invalid Message Channel (115) The receiver should move the improper message to an Invalid Message Channel, a special channel for messages that could not be processed by their receivers.
Dead Letter Channel (119) When a messaging system determines that it cannot or should not deliver a message, it may elect to move the message to a Dead Letter Channel.
Guaranteed Delivery (122) Use Guaranteed Delivery to make messages persistent so that they are not lost even if the messaging system crashes.
Channel Adapter (127) Use a Channel Adapter that can access the application's API or data and publish messages on a channel based on this data, and that likewise can receive messages and invoke functionality inside the application.
Message Bus () Structure the connecting middleware between these applications as a Message Bus that enables them to work together using messaging.
Messaging Bridge (133) Use a Messaging Bridge, a connection between messaging systems, to replicate messages between systems.
Canonical Data Model (355) Therefore, design a Canonical Data Model that is independent from any specific application. Require each application to produce and consume messages in this common format.
Message Types 1) Command 2) Document 3) Event
Message Expiration (176) Set the Message Expiration to specify a time limit how long the message is viable.
Message Sequence (170) Whenever a large set of data may need to be broken into message-size chunks, send the data as a Message Sequence and mark each message with sequence identification fields.
Format Indicator (180) Design a data format that includes a Format Indicator, so that the message specifies what format it is using.
Envelope Wrapper (330) Use a Envelope Wrapper to wrap application data inside an envelope that is compliant with the messaging infrastructure. Unwrap the message when it arrives at the destination.
Content Filter (342) Use a Content Filter to remove unimportant data items from a message leaving only important items.
Chaining Transformations 1) Data structures (entities) 2) Data types (field names, constrains) 3) Data representation (data formats as in XML/encryption compression) 4) Transport (HTTP, SOAP, JMS, TCP/IP)
Message Broker (322) Use a central Message Broker that can receive messages from multiple destinations, determine the correct destination and route the message to the correct channel.
Created by: timeakiss