What is WebSphere MQ transport for SOAP?

WebSphere MQ transport for SOAP allows you to send SOAP formatted messages, used in conjunction with Web services, over WebSphere MQ.

It is implemented for either Apache Axis or Microsoft(R) .NET host environments. Axis is available on UNIX or Windows platforms, and .NET on Windows only.

WebSphere MQ transport for SOAP allows interoperation with WebSphere Application Server and CICS(R).

Figure 1 illustrates how WebSphere MQ transport for SOAP fits into a Web service design. This diagram shows a process where a client application calls a target Web service and obtains a response from the service.

Figure 1. Overview of WebSphere MQ transport for SOAP
The client application has a SOAP layer, as does the target service. The SOAP layers may communicate either by HTTP or WebSphere MQ transport for SOAP. If they use HTTP, an HTTP server is needed at the target end. If they use WebSphere MQ transport for SOAP, there is a WebSphere MQ SOAP sender at the client end, a WebSphere MQ SOAP listener at the target end and the sender and listener are joined by a WebSphere MQ transport layer.

First consider the case where HTTP is being used as a transport between the client application and target web service (labelled "1" in Figure 1). The client passes the details of the required call to the SOAP layer, which prepares a request for invocation of the service as a SOAP formatted request. This request is dispatched to the server system, where an HTTP server receives the request and passes it through the SOAP layer for decoding and invocation of the service. The response message is processed synchronously by the service, and must be handled synchronously by the client.

WebSphere MQ transport for SOAP (labelled "2" in Figure 1) provides an alternative transport to HTTP. The advantages of using SOAP/WebSphere MQ over SOAP/HTTP include options for:

For HTTP the URI is of the format http://address:[port]/function, for example http://localhost:7080/MyRequest. This would direct the request to the same machine where the application is running (localhost), using port 7080, and the server can select which application is to receive the data based on the MyRequest data.

For SOAP/WebSphere MQ, the URI is of the format jms:/queue?name=value&name=value.... This is fully described in Specifying the URI.

Apache Axis client applications must be written in Java(TM). Microsoft .NET client applications must be written in C#, Visual Basic, or other .NET common language runtime (CLR) languages. The target services must be written in Java if using Axis, and in any .NET CLR language if using Microsoft .NET. It is possible to use Axis clients with .NET services, or .NET clients with Axis services, but see Interoperability.