This afternoon's keynote was about Indigo, the communication infrastructure in the Longhorn release of Windows that was unveiled at PDC. The SDK can be found on the longhorn site. The plan is that WSE v2 and the Indigo Beta in will be released in 2004.
The data point that caught my eye was the following: To code a demo that integrated web services with IBM WebSphere using advanced protocols the Microsoft team had to do the following:
Here's an example of a web service using Indigo:
[Reliability(Gurantees.ExactlyOnce | Guarantee.InOrder)]
Note that all of the infrastructure code is abstracted in attributes and that there is a difference between a simple web service and a Service as defined in Indigo.
All the implementation details are driven through policy configured in configuration settings. Policy can specify multiple settings (i.e. security for different clients). Policy is retrieved from a remote service in a secure fashion and then cached and referenced when a call is made.
In Indigo behavior is WSDL, structure is XSD, and policy is WS-Policy and the services execute asynchronously but may explicitly synchronize. They all require explicit credentials for all communications.
One of the most interesting items is that Indigo scales down to within an app using an interprocess communication channel and can also be used for peer to peer apps as well.
Some of the Indigo terminology:
Connector: messages, services, ports, channels
Indigo also includes a [RemoteObject] attribute which is very similar to .NET Remoting.
The presenter then showed an example of an app that uses Indigo that Merck is working on. This is the same app they showed at the PDC.