You may know that Microsoft WSE 2.0 has the ability to use other transports other than HTTP for Web Services. Supplied “in the box” are implementations of soap.tcp and soap.inproc. When speaking at recent events I’ve had a few people approach me and ask whether there is any interop story with these. Generally, there is not – these are unsupported implementations, and I don’t know of any other vendors that are actively looking at these implementations – but at the same time I thought it would be interesting to see if it could be done.
Here is an article and sample code that shows just that – an implementation of soap.tcp for Apache Axis that is interoperable with Microsoft WSE. The sample uses the WS-Addressing implementaton in WS-FX (an Apache project), frames Web service requests using DIME and sends them over a TCP socket to a service hosted using Microsoft WSE (and vice versa). This enables services in both .NET and Apache Axis to communicate using a soap.tcp implementation.
Disclaimer: This is obviously unsupported, and may well break with future versions of WSE (and possibly Axis and/or WS-FX), so although it’s a neat sample I don’t recommend it for anything other than seeing how this all works together. Thanks to Sarvashrestha Paliwal, Hrudaya Sruti, Parmod Pawar, Anurag Katre (of Tata Consulting Services) and Fumiaki Yoshimatsu (a Microsoft MVP, based in Japan) for helping me put this together.