The many faces of Indigo

Sometimes getting away from the keyboard can really help you get your thoughts in order. I just got back from NYC, where I spent a long weekend with my family. I left the laptop at home (my 9 month old seems to occupy all my vacation time ;-), but I still had time to think about Indigo and how it will fit into and change the Web services world.

Just before I left, I read David's Indigo intro piece on the MSDN Longhorn site. It lays out the basics and, among other things, talks about the different types of channels that an endpoint can use, including:

  1. BasicProfileHttpBinding
  2. BasicProfileHttpsBinding
  3. WsHttpBinding
  4. WsDualHttpBinding
  5. NetTcpBinding
  6. NetNamedPipeBinding
  7. NetMsmqBinding

My first reaction to this list is that Indigo is making it really clear which of “My 3 Web Service Stacks” you are using when you pick a given channel. If you are using either 1 or 2, you can be reached by anyone who speaks SOAP and WSDL. When you use 3 you can be reached by anyone who speaks WS-* (or an overlapping subset of the specs that Indigo speaks). When you use 4 you can talk to anyone who understands that pattern (I'm pretty sure BEA has an equivalent feature). When you use 5, 6 or 7 you can reach anyone using Indigo (or any other tool that replicates the behavior of Indigo).

My second reaction is to wonder whether developers will see a distinction between using Indigo and using Web services. If you build an endpoint that uses an Indigo-only named pipe or TCP binding and supports multiple stateful service instances, you're doing something closer to DCOM or .NET Remoting than to Web services. What you're doing may be “service oriented” (whatever that actually means), but is it Web services? And if it's not, will the fact that Indigo is using the same APIs to do very different things with very different implications going to help or hurt people?

One thing is clear, there is going to be a cottage industry of people who offer advice on which features of Indigo you should use to achieve a given goal. I'll probably be one of them. ;-)


Posted Feb 16 2005, 08:07 AM by tim-ewald

Comments

Aaron Weiker wrote re: The many faces of Indigo
on 02-16-2005 8:09 AM
It seems that 1-4 can be thought of as "Web Services" meanwhile 5-7 can be thought of as "Remoting+". Only this time we get to use attributes to identify how we want to communicate.
Service Station, by Aaron Skonnard wrote Indigo sightings
on 02-16-2005 1:59 PM
Marlon Smith wrote re: The many faces of Indigo
on 02-17-2005 6:06 AM
What really needs to be made clear is when, why and how to expose the same service with multiple bindings.
Dion Hinchcliffe's Blog - Musings and Ruminations wrote Indigo: Bigger, Safer, Mature Service-Oriented Architecture
on 02-17-2005 7:04 PM
Dion Hinchcliffe's Blog - Musings and Ruminations wrote Indigo: Bigger, Safer, Mature Service-Oriented Architecture
on 02-17-2005 7:08 PM
Hartmut's Box wrote The many faces of Indigo
on 02-18-2005 1:00 AM
Tim Ewald is commenting on Indigo again. “What you’re doing may be ?service oriented? (whatever that actually means), but is it Web services? And if it’s not, will the fact that Indigo is using the same APIs to do very...
Marlon Smith wrote re: The many faces of Indigo
on 02-25-2005 6:52 AM
This stuff is too easy to understand, please post more about Indigo. There are thousands of .Net developers waiting to consume anything about Indigo.

Don and friends have made this too simple! :-)

Add a Comment

(required)  
(optional)
(required)  
Remember Me?