<strong>Shadowfax</strong> is an interesting set of “Reference Solution” that is being worked on by the PAG group at Microsoft. I think this would be a very important piece in the whole SOA (Service Oriented Architecture) space, with getting bits out the door in a quick and reusable fashion. Basically this is a similar implementation of Indigo in todays technologies (i.e. those that are currently shipping such as .NET). This “unifies” the four messaging options you have today:

  1. Web Services
  2. Remoting
  3. MSMQ
  4. DCOM

Per Microsoft here are the goals for this are:

  1. Enable separation between stable service interfaces and possibly volatile and unreliable Service Dispatching (Without the framework one would have to think about how to expose the service first. With the framework one can build a service first and then think about how to expose it.)
  2. Make it possible for developers to keep aspect-like logic, for example monitoring or auditing logic, separate from Service Dispatching logic.
  3. Provide a single, consistent mode of handling service requests regardless of the transport transport on which they came.
  4. Help developers build robust services that can be accessed by client applications through multiple transports.

This is how is translates to Architecture speak:

  1. Provide support for sending service request and receiving service responses over multiple transports (such as Web Services or message queue transport)
  2. Provide multiple, configurable means of dispatching Service Dispatchings.
  3. Provide multiple, configurable means of passing requests to and receiving responses form Service Dispatchings.
  4. Provide configurable means of “inserting” aspect-like logic into request and response flow.
  5. Provide simple means of integration with BizTalk orchestration

And the constraints within which this has to operate are:

  • The architecture must be logically consistent with the future direction of relevant Microsoft products (Indigo and BizTalk in particular).
  • The implementation should use the .NET Framework. To be deployed, the architecture must only require the Windows platform with the .NET Framework distributable installed.
  • The development and modifications of the framework should be done with VS 2003 Enterprise Version.

Again, I think this would be quite a significant advantage before Indigo ships. I just started playing with this, so look out for more details on this in the next few weeks.