Indigo - Under the Hood
I was pretty interested by Indigo even before I arrived at TechED, Enterprise Services (COM+ by any other names) is a tried and tested technology but its not user-friendly or flexible and in the SOA of today (and the future), it just won't cut the mustard.
Therefore a lot rests on Indigo in the Microsoft world and this was confirmed when Steve Swartz, the architect of Indigo @ Microsoft said that all "future products" that interacted using messages (as most will in the future) will use Indigo - Biztalk, ADO.NET, Business Server etc
Its go to be right!!
Therefore I decided to go to an "Internals" session, with the Architect of Indigo and Clemens Vasters, a regular presenter at TechED and Indigo expert.
To summarise, it looks good - very good, the Model is extensible and both Declarative and Programmatic. You can get to its workings if you want, if you don't, you use "descriptions" to declaratively use built in configurations that do the work for you.
Basically it consists of
- Messaging Layer
- Service Model Layer
- Descriptions
The Message layer is a CLR representation of the CLR Infoset, although it doesn't have to be, you can write your own encoder/decoder and represent the message however you want. Binary for speed - no problem.
Its based on a "stacked" architecture, where "Channels" can be stacked upon one-another, passing the data to the next one in line for processing until ultimately it reaches a "Transport" Channel that can pass or receive data across the wire. Out of the box components are provided (SOAP Channels, HTTP Channels for example), but you can write your own as well
Transport out of the box is for HTTP, TCP, NamedPipes and MSMQ but again you can write youir own
A "Dual Channel" provider is available that supports Full-Duplex transmission on a single-threaded protocol - neat!
Protocol Channels
=============
You can have a channel for both HTTP and Reliable Messaging (WS-*), where the channel implementation provides session information and guarentees the delivery of the message using its own messages that your app never sees!
IIS and its WAS (Activation Service) is being extended to cope with not only HTTP services but Indigo based services, and wake on activation. This will be extended for IIS in Longhorn
Type Proxy Channels provide the Service Model Layer, with a dispatcher at the server
Descriptions provide an out of the box description that unify the different service model elements such as code, config, metadata etc
Its pretty in-depth but very exciting. Somethign we should be getting ready for!
0 Comments:
Post a Comment
<< Home