Introduction to IBM MQ
You can use IBM® MQ to enable applications to communicate at different times and in many diverse computing environments.
What is IBM MQ ?
IBM MQ can transport any type of data as messages, enabling businesses to build flexible, reusable architectures such as service-oriented architecture (SOA) environments. It works with a broad range of computing platforms, applications, web services and communications protocols for security-rich message delivery. IBM MQ provides a communications layer for visibility and control of the flow of messages and data inside and outside your organization.
IBM MQ provides:
- Versatile messaging integration from mainframe to mobile that provides a single, robust messaging backbone for dynamic heterogeneous environments.
- Message delivery with security-rich features that produce auditable results.
- High-performance message transport to deliver data with improved speed and reliability.
- Administrative features that simplify messaging management and reduce time spent using complex tools.
- Open standards development tools that support extensibility and business growth.
An application has a choice of programming interfaces, and programming languages to connect to IBM MQ.
IBM MQ is messaging and queuing middleware, with several modes of operation: point-to-point ; publish/subscribe ; file transfer . Applications can publish messages to many subscribers over multicast.
- Messaging
- Programs communicate by sending each other data in messages rather than by calling each other directly.
- Queuing
- Messages are placed on queues, so that programs can run independently of each other, at different speeds and times, in different locations, and without having a direct connection between them.
- Point-to-point
- Applications send messages to a queue, or to a list of queues. The sender must know the name of the destination, but not where it is.
- Publish/subscribe
- Applications publish a message on a topic, such as the result of a game played by a team. IBM MQ sends copies of the message to applications that subscribe to the results topic. They receive the message with the results of games played by the team. The publisher does not know the names of subscribers, or where they are.
- Multicast
- Multicast is an efficient form of publish/subscribe messaging that scales to many subscribers. It transfers the effort of sending a copy of a publication to each subscriber from IBM MQ to the network. Once a path for the publication is established between the publisher and subscriber, IBM MQ is not involved in forwarding the publication.
- File transfer
- Files are transferred in messages. IBM MQ Managed File Transfer manages the transfer of files and the administration to set up automated transfers and log the results. You can integrate the file transfer with other file transfer systems, with IBM MQ messaging, and the web.
- Telemetry
- IBM MQ Telemetry provides an IBM MQ Telemetry
Transport (MQTT) server that extends your IBM MQ environment to the
Internet of Things
- that is, the numerous mobile, web and M2M devices and applications that sit at the edge of the network. Through IBM MQ Telemetry your back-office systems can make use of, and respond to, the messages coming from those devices and applications. To minimize the disruption to your existing messaging environment, the telemetry server can communicate across other protocols as well as MQTT. For example, your server can be configured to talk MQTT externally, and JMS internally.
What can it do for me?
IBM MQ provides a universal messaging backbone with robust connectivity for flexible and reliable messaging for applications and the integration of existing IT assets using a service-oriented architecture (SOA).
- IBM MQ sends and receives data between your applications, and over networks.
- Message delivery is assured and decoupled from the application. Assured, because IBM MQ exchanges messages transactionally, and decoupled, because applications do not have to check that messages they sent are delivered safely.
- You can secure message delivery between queue managers with SSL/TLS.
- With Advanced Message Security (AMS), you can encrypt and sign messages between being put by one application and retrieved by another.
- Application programmers do not need to have communications programming knowledge.
How do I use it?
There are several different ways of using IBM MQ, for example you can:
- Create and manage IBM MQ with the MQ Explorer GUI or by running commands from a command window or application.
- Program applications to send and receive messages by calling one of the programming interfaces. Programming interfaces are provided for different languages, and include the standard JMS programming interface, and classes for the Windows communication foundation.
- Send and receive IBM MQ messages from browsers with the HTTP protocol.
How does it work?
Here is a brief overview of how IBM MQ works.
If you are new to using IBM MQ, see also Getting started with IBM MQ in the Scenarios section of this documentation.
- An administrator creates and starts a queue manager with commands. Subsequently, the queue manager is usually started automatically when the operating system boots. Applications, and other queue managers can then connect to it to send and receive messages.
- An application or administrator creates a queue or a topic. Queues and topics are objects that are owned and stored by a queue manager.
- When your application wants to transfer data to another application, it puts the data into a message. It puts the message onto a queue, or publishes the message to a topic. There are three main ways that the message can be retrieved:
- A point-to-point application connected to the same queue manager retrieves the message from the same queue.
- For example, an application puts messages on a queue as way of storing temporary or persistent data. A second example is an application that shares data with another application that is running in a different process.
- A point-to-point application connected to another queue manager retrieves the same message from a different queue.
- Applications communicate with each other by exchanging messages on queues. The main use of IBM MQ is to send or exchange messages. One application puts a message on a queue on one computer, and another application gets the same message from another queue on a different computer. The queue managers on the two computers work together to transfer the message from the first queue to the second queue. The applications do not communicate with each other, the queue managers do.
- A subscriber application connected to any queue manager retrieves messages on common topics.
- A publisher application creates a message and publishes it to a topic on one computer. Any number of subscriber applications subscribe to the same topic on different computers. IBM MQ delivers the publication to queues that belong to the queue managers the subscribers are connected to. The subscribers retrieve the message from the queues.
- IBM MQ channels connect one queue manager to another over a network. You can create MQ channels yourself, or a queue manager in a cluster of queue managers creates MQ channels when they are needed.
- On z/OS®, you can configure multiple queue managers to share queues on the coupling facility. Applications connected to different queue managers can get and put messages to and from the same queues.
- You can have many queues and topics on one queue manager.
- You can have more than one queue manager on one computer.
- An application can run on the same computer as the queue manager, or on a different one. If it runs on the same computer, it is an IBM MQ server application. If it runs on a different computer, it is an IBM MQ client application. Whether it is IBM MQ client or server makes almost no difference to the application. You can build a client/server application with IBM MQ clients or servers.
What tools and resources come with IBM MQ ?
IBM MQ provides the following tools and resources:
- Control commands, which are run from the command line. You create, start, and stop queue managers with the control commands. You also run IBM MQ administrative and problem determination programs with the control commands.
- IBM MQ script commands (MQSC), which are run by an interpreter. Create queues and topics, configure, and administer IBM MQ with the commands. Edit the commands in a file, and pass the file to the runmqsc program to interpret them. You can also run the interpreter on one queue manager, which sends the commands to a different computer to administer a different queue manager.
- The Programmable Command Format (PCF) commands, which you call in your own applications to administer IBM MQ. The PCF commands have the same capability as the script commands, but they are easier to program.
- Sample programs.
- On Windows and Linux® x86 and x86-64 platforms, you can use the following utilities:
- The MQ Explorer. You can use the MQ Explorer to administer and configure the entire network. The explorer does the same administrative tasks as the script commands, but is much easier to use interactively.
- The Postcard application to demonstrate messaging and verify your installation.
- Tutorials.