Chapter 6. EIS integration using Java Message Service 125
???? Guaranteed message delivery
When network systems are up and running, MOM delivers messages from
the senders to the receivers as part of reliable messaging characteristics.
However, network failure may occur or applications that need to be shut down
because of unpredictable failure or regular system maintenance. In
recognition of these situations, MOM provides guaranteed message delivery
which ensures that the intended message consumers receive messages as
soon as network connections are established and the receiving application
issues a request for sent messages.
???? Transaction support
MOM supports transactions and is also tightly integrated with transaction
services. When transaction services are present, they can participate in a
MOM transaction.
???? One time, in-order delivery
MOM can guarantee that each message is delivered once and only once and
that messages are received in the order that they are sent.
???? Message routing services
These services allow the client application to send the message to their
destination using least-cost routing. The administrator needs to define only
the cost of each route, and MOM automatically calculates the most
economical path for the message. Moreover, this routing is capable of
eliminating single points of failure. Thus, MOM can reroute around network
problems.
???? Notification services
Even though MOM allows messages to be sent asynchronously to free up the
client application, in some instances, the sending application might want to be
notified whether the message was received successfully. So, MOM also
allows the sender to review responses, let another application handle them,
or just completely ignore them. For example, a request-reply mechanism can
be employed by the sender to receive notification from the receiver.
???? Scalability
In a MOM system, system scalability can be addressed relative to anticipated
messages volume and desired processing throughput. However, this
approach only applies to situations where messages can be processed in any
order and not first-in-first-out fashion. So, as the number of message
producers increases, processing capacity can be increased by adding more
message consumers that monitor the message destination. This approach
provides flexibility in operational design to allocate adequate hardware
capacity accordingly to processing needs.