Message Oriented Middleware
|
Message Oriented Middleware is a category of inter-application communication software that relies on asynchronous message passing as opposed to a request/response metaphor.
Most message oriented middleware (MOM) is based around a message queue system, although there are implementations that rely on a broadcast or multicast messaging system.
Contents |
Advantages
The primary advantage of a message based communications protocol is the ability to store, route or transform the message as it is being delivered.
Storage
Most MOM systems provide a persistent storage to back up the message transfer medium. This means that it is not necessary for both the sender and receiver to be connected at the same time (asynchronous deliver). This is particularly useful when dealing with intermittent connections, such as unreliable networks or timed connections. It also means that should the receiver application fail for any reason, the senders can continue unaffected, as the messages they send will simply accumulate in the message store and will be processed when the receiver restarts.
Routing
Another important advantage of MOM is the ability to route messages within the middleware layer itself. Taking things a step further, it is possible to deliver a single message to more than one recipient (broadcast or multicast).
Transformation
There is no reason why, in a message based middleware system, the message received by the recipient need be exactly the same as that sent by the sender. Intelligence can be built into the MOM system itself to transform messages en-route to better meet the requirements of the sender.
In conjunction with the routing and broadcast/multicast facilities mentioned above, it now becomes possible for one application to send a message in its own native format, and for two or more other applications to each receive a copy of that message in their own native format.
In fact, many modern MOM systems provide sophisticated message transformation (mapping) tools that allow transformation of messages to be defined using a simple GUI drag and drop interface with no coding necessary.
Disadvantages
The primary disadvantage of message oriented middleware is that it requires an extra component in the architecture, the message transfer agent. As with any system, adding another component can lead to reductions in performance and reliability, and can also make the system as a whole more difficult and expensive to maintain.
In addition, many inter-application communications are synchronous by nature, with the sender specifically wanting to wait for a reply before continuing. Because message based communication is inherently asynchronous, it may not be a good fit in these situations. That said, most MOM systems have facilities to group a request and a response as a single pseudo-synchronous transaction.
Standards
One of the problems with message oriented middleware has been the lack of standards governing its use. All the major vendors have their own implementations, each with its own API and management tools.
The J2EE programming environment has defined a standard API, called JMS (Java Message Services) that most MOM vendors have implemented, and if developing in Java it should be reasonably easy to hide a particular MOM implementation. However, this solution is not available to users of other development languages..
MOM Products
- IBM Websphere MQ (MQSeries & MQSeries Integrator)
- Oracle Advanced Queueing (AQ)
- Microsoft Message Queueing (MSMQ)
- Tibco Rendezvous
- BEA Tuxedo
- Sonic Software's SonicMQ
- Coridan MantaRay (http://www.mantamq.org) (open source)
- ActiveMQ (open source)
- XmlBlaster (http://www.xmlblaster.org) an open-source Java MOM implementationde:Message Oriented Middleware