F3 Flashcards
Message-oriented integration (MoSI)
Messages contain data and metadata
Three types of messages:
- Commands messages – a call to a function
– Document messages, e.g., order messages with details
– Event messages – e.g., checking availability to send message
Messaging supports both functional and data integration
fattar inte messaging
fattar inte messaging
Patterns helps to
– Understand the solutions better (i.e. through pattern’s structuring), and
– Standardize the solutions of different SI tools/vendors.
Core integration pattern groups for messaging:
- Message routing patterns – discuss different mechanisms to direct messages from a sender to the correct receiver.
- Message transformation patterns – change the content of the message due to
different needs of the sender and the receiver applications. The existing data may be removed, or changed, or replaced, or new data may be added. - Message management patterns – they facilitate complex messaging systems running by dealing with error conditions, performance bottlenecks, etc.
Pattern: Router
Problem: How to handle a situation in which business data (or function) is spread across multiple systems?
Motivation: in many enterprise integration scenarios more than one inventory system exists with each system being able to handle only specific items.
Solution: Use a Content-based Router to route each message to the correct message recipient based on the message’s content.
Related patterns: “Pipes and Filters”, “Sequencer”, “Aggregator”…
Pattern: Enricher
Problem: How do we communicate with another system if the message
originator does not have all the required data available?
Motivation: when sending messages from one system to another it is common for the target system to require more information than the source system can provide.
Solution: use Content Enricher to add data (computation / environment / another system) in order to augment a message with missing information.
Related patterns: “Content Filter”, etc.
Pattern: Message History
Problem: How can we effectively analyze and debug the flow of messages in a loosely coupled system?
Motivation: message recipient generally does not know nor care which application put the message on the channel. If we do not know which application published a message it is difficult to correct a problem with the message.
Solution: attach a Message History to the message, listing all applications that the message passed through since its origination.
Related patterns: “Control Bus”, “Message Header”, “Test message”…
Message-Oriented Middleware - MOM
in messaging the logic for integration is placed separately
MOM is configured with the queues that define the paths of communication between the integrated applications:
– A queue can connect 2 applications, or even more (publish-subscribe).
– MOM handles the sending and receiving of messages; it may even change messages.
– The main task is to move messages in a reliable fashion.
Messaging
In messaging, applications do not communicate with each other directly and do not have a dedicated communication link established between them - they communicate indirectly through a queue.W
What is a queue?
A queue (channel) behaves as a collection of messages that can be shared across multiple systems (applications).
Advantages Messaging/MOM
Reliability: MOM can guarantee the delivery of a message to the
destination system by persisting the message and continuously trying to complete the delivery.
Loose-coupling: MOM also solves the problem of integrating the
applications designed to run disconnected from the network.
Scalability: Due to a high decoupling of the source and destination applications, there is no problem of overloading the receiver. MOM delivers messages to the destination when it can process them. The sender is unaffected, because the messaging is asynchronous.
Disadvantages Messaging/MOM
-MOMs need to be understood, learnt; or even developed.
– Not the best choice when synchronous communication is desired.
– As with DO, the used middleware decreases the overall reliability of the integration between applications.