We’ve just brought out a new SupportPac that allows access to WebSphere MQ using HTTP: MA0Y: IBM WebSphere MQ Bridge For HTTP.

There is no client involved here – just connect using whatever method you like Ajax, C++, Java, anything that can make a socket connection and send HTTP! This makes it the first zero-footprint client to WMQ.

We’ve defined a bunch of HTTP headers that encapsulate the message headers and the body of the message is sent as the HTTP body.

The support enables three of the standard HTTP verbs:

  • GET – browse (get with browse) the currently highest message on the queue.
  • DELETE – delete (destructive get) the currently highest message on the queue or topic.
  • POST – post (put) a message to the queue or topic.

We’ve tried to keep the uri as simple as possible. For example:

GET http://<myhost>/<my context-root> /msg/queue/MY.QUEUE
will get the next message from the queue “MY.QUEUE”

POST http://<myhost>/<my context-root>/msg/topic/MYTOPIC
will put the HTTP message to the topic “MYTOPIC”

The aim of this new client API is to allow you to do most basic operations. The function is currently a category two SupportPac – that means it’s on an as-is basis. We’ve done this so that we can get as much feedback as possible before we cast the API in stone.

The architecture is that you have your roll-your-own client connecting to a J2EE server where the MQ HTTP Bridge servlet is deployed. This servlet uses a JCA to connect to MQ. Security is in two parts. Part one is between the Client and the J2EE server – as this is just a servlet you use your own normal HTTP security. Part two is from the JCA to the Queue Manager for this the JCA has security configuration options.

We’ve supplied an easy to use demo which uses a pre-configured WebSphere Application Server Community Edition (WAS CE) which should allow you to see it in action within a few minutes!

We’re inviting feedback on the WebSphere MQ beta newsgroup, So, please download and tell us what you think!