Enterprise integration often involves passing messages among hundreds of distinct components in a sophisticated manner. To help streamline communication processes across these distinct systems, put in place a standard messaging format and protocol in the form of a design pattern. But which one?
Gregor Hohpe and Bobby Woolf, authors of the book Enterprise Integration Patterns created a catalog of 65 design patterns specifically for component integration via messages. Hohpe and Woolf divided these messaging patterns into several categories, but two -- channel patterns and message construction patterns -- are particularly important to understand for enterprise architects managing large-scale systems.
Channel patterns define how messages get transported across a message channel. Two applications can interact with each other by sending data through some channel that sits between the two endpoints. Selecting the proper channel depends on factors such as the type of data the apps are transmitting and the number of receivers.
One important channel pattern is a messaging bus, which provides a connective middleware structure across all applications. This pattern enables multiple applications to work together in a decoupled fashion, which means you can easily add or remove them without affecting the other applications. This concept is similar to the communication bus in a computer system, which acts as the backbone of the interactions among the CPU, memory and other peripherals.
Message construction patterns
Message construction patterns describe the data format, intent and content of the messages traveling across the system.
Applications can exchange a piece of data by wrapping it in a message. Construction of a message involves several considerations, including the intent of the message, the expected response time, the size of the message and the time sensitivity of delivery.
An event message is an important example of a message construction pattern, as it exhibits how to send reliable and asynchronous event notifications between applications. To announce any event, the user can create an event object, wrap it in the message and send it to the desired channel.
Source: Tech Target
Author: Twain Taylor