Problem solve Get help with specific problems with your technologies, process and projects.

Separating SOAP message construction from message transport

My enterprise has a need to send requests across a reliable transport, and I'd like to use SOAP envelopes. The problem is that the generated client code that comes from vendor tools (e.g. Visual Studio, BEA WebLogic Workshop) are all tightly coupled to an HTTP transport, and that makes it extremely difficult to extract the SOAP message for sending across another transport. Are there code libraries out besides the big vendors code that have properly separated SOAP message construction from message transport? I should add that these will be document-literal encodings, so I'm really just looking for something that will let me write code like:
URL wsdl = "http://.../foo.wsdl";
XMLDocument body; // created elsewhere
SoapMessage msg = new SoapMessage(wsdl, body);
Most Web Services Platforms (WSPs) support multiple transport protocols. In fact, many support a flexible plug-in transport framework that dynamically selects the transport protocol at runtime based on WSDL or configuration information. In particular, most Java WSPs support JMS protocols.Products that support a plug-in transport framework include Apache Axis, Cape Clear, IONA Artix, Novell exteNd, Oracle 10g, Systinet WASP and webMethods Glue. (and I'm sure there are others)

But the industry hasn't defined standards that enable interoperability when using protocols other than HTTP. And in particular, .NET doesn't support JMS protocols.

This is the primary reason why the industry is defining reliability standards for Web services. These standards will enable reliable messaging without requiring utilization of a third-party reliable messaging service -- the SOAP runtime will supply built-in store and forward capabilities. There are two active efforts underway:

- OASIS WS-Reliability ( http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrm)
- BEA/IBM/Microsft/Tibco WS-ReliableMessaging ( ftp://www6.software.ibm.com/software/developer/library/ws-reliablemessaging200403.pdf)
Both specifications were recently updated. OASIS WS-Reliability was just voted as a Committee Draft -- the last stage before becoming a formal OASIS Standard.

Now -- as for products...

I expect that Oracle and Sun will eventually release products that support WS-Reliability. Meanwhile BEA, IBM, Microsoft, and Tibco will release products that support WS-ReliableMessaging. At some point in the future, we'd all like to see these specifications converge, but for now, you need to pick one.

I understand that Cape Clear and Systinet already have implementations of both specifications.

Another alternative is to use a Web services management (WSM) product that supports reliability. These products intercept the HTTP messages and tunnel them in a reliable messaging protocol. Take a look at Flamenco Networks, Infravio and Blue Titan.

Dig Deeper on Topics Archive

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.