What is the difference between a Websphere Message Broker and a Queue Manager. I guess the queue manager puts messages in the queue, takes messages out of the queue, moves messages to backout queues etc. So what is the job of the broker?
Does it sit between the publisher and the Queue Manager or between the consumer and the Queue Manager?
Websphere MQ is a software which uses the AMQ(Asynchronous messaging protocol). You can achieve asynchronous messaging between your applications via Websphere MQ, which will make your infrastructure loosely coupled(Applications can keep working even though other applications are down in the infrastructure).
But the applications in your infrastructure may not be able to understand each others' message formats, and hence just sending the message to the target application may not be enough. You may require transformation
of the message.
You can do it by writing your own program using the Websphere MQ API. Your program should be able to do the below things:
- Pick message from a specific queue (using MQGET)
- Should be able to understand the message. That is say it's an XML message. Then your program must be able to parse the XML and read the data in it.
- After reading the input message you will make your output message based on the requirements.
- Then you will either publish the message or put the message in some specific queue(say TargetQ), so that the target application can get the message. Target application will then get the message either by issuing MQGET on the TargetQ or subscribing to the topic which was published from your application.
But writing your own program will take a lot of development time and effort and also may be a bit complex.
So, IBM provided its own software to do the job, which is "Websphere Message Broker".
WMB allows you to create programs very easily
and a lot faster
.
Appropriate nodes in WMB will do all above steps for you. In fact it provides lot many features than the above steps.
Websphere MQ still doesn't have an HTTP listener. But, a message broker does. It allows you to host web services
and have HTTP based flows etc that too in a secure way(Supports SSL).