IT533 - SOFTWARE ARCHITECTURES - CLASS 9
MESSAGE ORIENTED MIDDLEWARE
Message oriented middleware (MOM) is inherently loosly coupled,
Message queuing implements an indirect, connectionless, asynchronous
communication link between two or more processes.
A queue manager running on a separate sever manages the queues and
ensures that no matter what happens to the network, only one copy
of the message eventually arrives at the destination.
Note that although the process to process communication is
asynchronous, communication between a process and the queue manager
is usually implemented using a direct, synchronous communication link.
This means that if the network is down or the queue manager is down,
a process can not put messages into a queue or get messages from
There are a number of key difference between message queuing
and other types of middleware:
- Queues have names.
- Queues are independent of a process.
Thus, many processes can put messages into the same queue or
get messages from the same queue.
A process can also access multiple queues.
- If the network goes down or a destination goes down,
the messages can wait in the queue until the network comes up again.
- Queues can be stored on disk so that if the queue manager goes
down, the queue is not lost.
- The queue manager can co-operate with a transaction manager.
This means that if a transaction is started and a message is put
into a queue during the transaction which is later aborted,
then not only is the database rolled back, but the message
is taken out of the queue and not sent.
Most of the advantages were implied by the previous discussion.
The main advantages include:
- Provides reliable once-only delivery of messages.
- Processes communicate asynchronously with no direct connection
- Allows applications to run independently.
Some disadvantages of message queuing are:
- There is no interface definition language and no marshalling
and demarshalling of message contents.
It is up to the application developer to ensure that the sender
and receiver know the message format.
- Since clients do not block after a message is put into the
queue, clients can make requests faster than servers can respond
to the requests which can overload the system.
With synchronous middleware, the client is blocked until the
server responds so that an overload is not possible.
- MQSeries from IBM
- MSMQ from Microsoft
- Tuxedo/Q from BEA Systems
- Java Message Service
Prepared by David L. March -- Last Revised on May 26, 2003
COPYRIGHT © 2003 BY DAVID L. MARCH