My main track on the PDC will be Indigo. What Indigo exactly is, is officialy a mystery but I do have an idea I use as a working hypothesis. To me Indigo is a way to route (xml-based) messages through any (inter-)network, where the hops from network node to network node and the means of transport used are just a property of the message itself. This theory has been fed by Keith Ballinger's msdn tv talk on WSE 2.0 and the session list for the PDC. As a preparation to the PDC I am now studying the WSE "technology preview".
In the current asp.net you can build webservices which are always hosted by IIS and where the invocation of a webservice by a consumer boils down to making a (remote) procedure call. In WSE you can not only use HTTP but also TCP to access a web (soap) service. Hosting a service which can be accessed over TCP is far simpler (and faster). You don't need (to configure) IIIS. Instead of the webservice baseclass, you use the soapservice base-class. An attribute publishes the method
public class MyDocService : SoapService
{
[SoapMethod(MyDocCenter.ActionSend)]
public void SendDoc(MyDocument doc)
{
// Implementation here
}
}
Register the method as being accessible, like this :
SoapReceivers.Add(new Uri(string.Format("soap.tcp://{0}/MySoapBox", System.Net.Dns.GetHostName())), new MyDocService());
And now everybody can send messages to your method using the TCP protocol. The most promising thing in this approach is that the protocol to use is a parameter to the listener started. In WSE 2 you can choose between tcp and http, in Indigo I expect message queues (and maybe smtp/pop) to be a possible choice as well. In the consumer is an interesting point as well. A consumer inherits from the SoapClient base class. This class has two methods two send the soap-message, SendRequestResponse and SendOneWay, pushing the metaphor of "making a call" to "sending a message".
In the current asp.net the consumer of the service has to know the endpoint address of the machine who is going to service the request. WSE introduces routing. A web service router receives requests from consumers and can route these request to another address which will service it. This routing is quite basic, the request can only be routed to an endpoint which provides the service. To keep up the networking analogy I would call this a web-services-switch. But the potential of all of this is gigantic. Imagine a real router which can route a message to another router and switches transport protocols as needed. In what I think (hope) will be Indigo we don't have to care to much about this and can fully concentrate on the content of the messages. In a month we'll all know more, for the moment I will browse some more in the WSE stuff, I don't think that will hurt.
blog on,
Peter
>
Posted
Wed, Oct 1 2003 8:11 AM
by
pvanooijen