WebSphere MQ
WebSphere MQ provides a consistent application programming interface (API), called the Message Queue Interface (MQI), across all its supported platforms and programming environments to help make your programs portable. Along with providing this de facto standard interface, WebSphere MQ also fully implements the industry-standard Java™ interface — Java Message Service (JMS), Version 1.1 — including the publish-and-subscribe approach to directing flows of messages.
WebSphere Application Server also supports JMS. Although JMS doesn’t provide a standard for interoperability between messaging implementations, the messaging resources of WebSphere Application Server and WebSphere MQ interoperate seamlessly. As a result, you can combine these products to form an ESB to integrate hosted Java 2 Platform, Enterprise Edition (J2EE) applications with the rest of the enterprise.
MQSeries is used in a client/server or distributed environment. Programs belonging to an application can run in one workstation or in different machines on different platforms. Applications can easily be moved from one system or platform to another. The programs can be written in various programming languages, including Java. The same queuing mechanism is valid for all platforms, and so are the currently 13 APIs.
Since MQSeries communicates via queues it can be referred to as using indirect program-toprogram communication. The programmer cannot specify the name of the target application to which a message is sent. However, he or she can specify a target queue name; and each queue is associated with a program. An application can have one or more “input” queues and may have several “output” queues containing information for other servers to be processed, or for responses for the client that initiated the transaction.
The programmer does not have to worry about the target program being busy or not available. He or she isn’t even concerned about the server being down or having no connection to it. The programmer sends messages to a queue that is associated with an application; and the application may or may not be available at the time of the request. MQSeries takes care of the transport to the target application and even starts it, if necessary.
If the target program is not available, the messages stay in a queue and get processed later. The queue is either in the sending machine or in the target machine, depending whether the connection between the two systems can be established or not. Applications can be running all day long or they can be triggered, that is, automatically started when a message arrives or after a specified number of messages have arrived.