Messaging and MOM

Even though computing technologies have evolved from dumb-terminal-based computing systems with small green screens to complex distributed enterprise systems, the most elementary purpose of these apps remains the same—to enable the exchange of data between different pieces of computing software. Message-oriented middleware (MOM) is typically a piece of software that sits between communicating parties and provides the infrastructure responsible for handling disparate dependencies between them, such as operating systems, hardware, and communication protocols. It enables participants involved in the data exchange to focus on the app domain rather than on the mechanics of how the communication takes place.

A MOM exposes its facilities using an API that defines how distributed apps should use the underlying MOM to communicate with each other. MOM can be thought of as the postal service of messaging technology. People write a letter (the message), include the from/to address details on the envelope (the headers), and drop it in the mailbox, which acts as the standard interface for the post office (the API). The postal service (MOM) takes care of picking up the message, sorting the address details, and transporting it to the mailbox of the addressee (the receiver). The mail (message) is passed between parties (apps) via the postal service (MOM) in a manner that does not block the sender of that message from doing other work—that is, the sender can allow the postal service (MOM) to ensure that the message arrives without waiting for a response from the receiver (Screenshot).

Java Click To expand
Screenshot: MOM

In general, messaging refers to the act of sending metadata or information about the message and the message content itself, using one or more MOMs, between apps typically located on the periphery of the enterprise. These MOM-based messaging solutions can be architected in three broad topologies:

The advantages of such a topology are numerous and allow messaging parties to be added and removed on the fly, without breaking other communication paths or affecting other parties. The disadvantages include increased network overhead, the single point of failure, performance of the hub (it has to do extra work in acting like the post office to sort mail), and possibly increased latency.

The advantages of a decentralized approach are that the MOM functionality, such as security, transactions, and persistence, is distributed between servers. The disadvantage is that parties are a little more tightly coupled. In the centralized topology, since only a single MOM and its API are used, issues of interoperability are limited. In the decentralized approach, if the parties use different vendor MOMs or even different versions of the same MOM, numerous interoperability issues could arise.

In all the topologies discussed above, MOMs play a significant role by

MOM-based messaging solutions are typically a good fit for five broad app categories: