IBM MQ classes for JMS architecture

IBM® MQ classes for JMS has a layered architecture that was first introduced at IBM WebSphere® MQ 7.0.

Before IBM WebSphere MQ 7.0, the implementation of IBM WebSphere MQ classes for JMS was entirely specific to IBM WebSphere MQ. Other IBM products that provided messaging systems also included JMS providers, but these JMS providers had little or nothing in common with the implementation of IBM MQ classes for JMS.

From IBM WebSphere MQ 7.0, IBM MQ classes for JMS has a layered architecture as shown in the diagram Figure 1. The topmost layer of code is a common layer that can be used by any IBM JMS provider. When an application calls a JMS method, any processing of the call that is not specific to a messaging system is performed by the common layer, which also provides a consistent response to the call. Any processing of the call that is specific to a messaging system is delegated to a lower layer. In the following diagram, the IBM MQ messaging provider is shown in the lower layer, together with two further messaging providers (Messaging provider A and Messaging provider B.)

Figure 1. The layered architecture for IBM JMS providers
This figure is described in the surrounding text.
A layered architecture fulfills following objectives:
  • To improve the consistency of behavior of the various IBM JMS providers
  • To make it easier to write a bridge application between two IBM messaging systems
  • To make it easier to port an application from one IBM JMS provider to another