Darren makes some good comments which I agree with on temporal decoupling and the use of messaging (MOM) to loosely couple systems and components.
Temporal Decoupling [Pushing the envelope]
As well as temporal decoupling and being loosely coupled, the use of MOM can also lead to an efficient SEDA style architecture using asynchronous processing of messages, rather than less effcient blocking RPCs.
The disadvantages Darren quotes (extra network hop and system administration) can actually be considered advantages too. :-)
By using a message broker in between producers and consumers, you can optimise your network communication (e.g. optimising the use of sockets, networks, WAN traffic etc) rather than every producer connecting to every single consumer. Also the message broker can act as a load balancer to implement efficient message distribution through your network. Some MOMs even implement throttling to slow down fast producers to avoid flooding your network.
Also using a MOM means that you can monitor the MOM to determine the health of the system. e.g. you can monitor queue depths, throughput rates, monitor subscriptions, consumption and production rates to monitor your systems and components. So most MOMs can also act as an extra system management tool.
For me one of the best things to come out of all this Web Services hype is the focus on XML-based messaging.
5:18:15 PM
|