Indigo: The end of the rainbow
When it finally ships, the Longhorn release of Windows will include a number of interesting new technologies. But it is the technology currently code-named “Indigo” that stands out as the most important product for anyone who cares about how diverse systems are glued together. To understand Indigo, however, there are four points you need to get your mind around.
First, Indigo is the first major vendor attempt to create a platform for building explicitly service-oriented applications. Trying to distribute objects, with all of their programming language-inspired complexity, appears to have failed. Modeling remote interactions as services, a slightly simpler idea, looks like a better way to accomplish the goal of effective communication across application boundaries. Accordingly, Indigo requires developers to explicitly define which services an application exposes to the outside world. Rather than viewing everything as objects, an Indigo application draws a sharp line between what a particular class exposes to its object-oriented clients and what that class exposes to its service-oriented clients. Because these two boundaries are quite different, it makes sense to make these differences clear.
Second, Indigo supports the standard Web services technologies SOAP and WSDL, allowing Indigo-based applications to interoperate with software on non-Microsoft systems. The technology also implements WS-Security, WS-ReliableMessaging and WS-AtomicTransaction, which means that interoperation is not limited to just exchanging basic SOAP messages. Instead, applications built on Indigo can communicate securely, reliably and in a transaction-oriented manner with other software that supports these technologies. IBM, BEA and other vendors have signed on to these interoperability standards, and so the prospects for building truly useful multivendor environments have never looked better.
Third, Indigo rationalizes Microsoft’s complicated options for building distributed applications. In the .NET Framework today, for example, developers can build Web services using either ASP.NET’s ASMX technology or .NET Remoting. .NET Remoting also supports a more conventional distributed object approach, however, and neither it nor ASMX is especially well integrated with Enterprise Services, the Framework’s core technology for transactional applications.
In addition, asynchronous, message-oriented applications today use Microsoft Message Queue (MSMQ), which is largely independent of these other technologies.
Indigo unifies all of these diverse options into a single, service-oriented platform. Although its first release will probably have limited support for truly manageable message queuing, Indigo will effectively replace the current ASMX technology, .NET Remoting and Enterprise Services. Rather than tinker around the edges, Microsoft has chosen to re-think how a platform for distributed computing should look in the era of services.
Finally, Indigo is different from the other new Longhorn technologies in an important way: It will run on some older versions of Windows. The plan of record is to offer Indigo on Windows XP and Windows Server 2003, as well as on the Longhorn release of Windows. This is important because it means that Indigo-based applications can interoperate not just with those on non-Windows operating systems, but also with applications built on some older versions of Windows itself. For a technology meant to improve connections among applications, this is a good thing.
Like any new technology, moving to Indigo will not be without pain. Some existing developer skills and software will need upgrading, for example, and cross-vendor interoperability is likely to be complicated, at least for a while. And while no Indigo ship date has been announced, the fact that even an initial beta of the product has not yet appeared suggests that final availability is still years away. Still, Microsoft’s embrace of multivendor standards for Web services, coupled with its strong endorsement of a service-oriented approach, counts as progress. In a world that has both .NET and Java, the announcement of Indigo is an unassailably good thing.
For more Longhorn articles, go to ADT's Longhorn Page
David Chappell is principal at Chappell & Associates, an education and consulting firm focused on enterprise software technologies. He can be reached via E-mail at firstname.lastname@example.org.