FREE hit counter and Internet traffic statistics from

Thursday, November 06, 2003

SAF Day - 2.2

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:

  • In VS .NET 1.1 write 56,296 lines of code

  • In Vs .NET with WSE write 27,321 lines of code

  • In VS .NET with Indigo write 3 lines of code

  • Here's an example of a web service using Indigo:
    [Reliability(Gurantees.ExactlyOnce | Guarantee.InOrder)]
    class HelloService

    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

  • Messages are soap but can be encoded as binary

  • Port is a location in network space, has one or more channels

  • Messages flow through a port via channels

  • Channels may add additional processing code (i.e. reliable messaging)

  • 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.

    No comments: