In the past few years SOAP has emerged as one of the most widely used standards in distributed environments. Far beyond communicating with objects in remote locations, it also defines an extensible XML messaging framework to exchange XML messages between objects over the internet. According to its definition, SOAP can be used with a variety of transport protocols such as HTTP, TCP, SMTP and even MSMQ. XML Web Services can use SOAP to format the messages they send and receive.
The most popular implementations for the development of web services have been built on HTTP. In such an environment, however, it is very difficult to use many of the most attractive features of web services since they need the asynchronous communication mechanisms found in TCP, SMTP or MSMQ.
For this reason, any web services development technology should provide support so that the same logic of a web service might be used over different communication protocols. Specifically, in the .NET environment, some technologies like Web Services Enhancements (WSE) for Microsoft.NET and the recent codename Indigo have come out enabling the development of web services over a variety of communication protocols, including TCP and the others.
The WSE is an add-on to the .NET Framework. It provides additional web services support mostly for the various Web Services Architecture (WSA) specifications. This technology represents specific functionality that will increase web services potential. Based on standards, full interoperability is guaranteed among web services with high requirements.
Actually, WSE 2.0 provides support for specifications like WS-Policy, WS-Security Policy, and WS-Addressing, among others implemented on WSE 1.0. Additionally, WSE 2.0 offers a rich messaging API to develop web services over other transports like TCP and recently over SMTP. In this article we explain the XML messaging capabilities of WSE 2.0 and attempt to demonstrate how to use these features to build XML-based messaging applications.
Besides the traditional way of communicating through HTTP, WSE 2.0 provides additional communication protocols to interact either with web services, such as TCP and in-process (client and server running in the same process). The communication pattern is expressed by means of an URI that should correspond to the following syntax:
Protocol_sch represents the protocol used for the communication with the web service.
Port expresses the port to which messages should be sent.
Path represents the localization of the resources that make up the web services inside of a host.
An HTTP destination is represented by:
In the case of TCP,