It is easy to discount web services as yet another fad, but behind the hype surrounding this new way of letting computers talk to each other over the Internet lies a crucial question: who will provide the dominant software platform of the next generation of computing? Already, the battle lines are clearly drawn. On one side is Microsoft, with its .NET plan; on the other an array of rivals, including IBM, Oracle and Sun, touting a technology based on the Java programming language.
This week Microsoft took the battle a stage further, launching a set of tools to develop web services, plus a software framework to run them. This puts .NET on a par with its Java-based competitor (officially called Java 2 Platform Enterprise Edition, or J2EE), parts of which have been available since the late 1990s.
Driving this rivalry is the Internet, which has allowed computing to become increasingly distributed. Today, most advanced applications are accessed using a web browser and run on several machines tied together by the Internet. Web services take this concept further, using standards based on XML (short for Extensible Markup Language). In effect, they use the Internet to turn a network of machines into one huge distributed computer. In the long run, promoters hope, this will produce all kinds of new electronic offerings. One example could be a virtual travel agent that combines various providers’ web services for booking flights, ground transport, hotels and entertainment.
To do all this, providers need a sort of operating system that takes care of such things as access to databases and routing of messages. Java was originally conceived to break Microsoft’s lock on the PC desktop, but it has ended up being the platform of choice for web-based applications and is now moving to support web services. Microsoft created .NET in an effort to leapfrog its way back into the lead.
The origins of the two platforms help to explain their strengths and weaknesses. Having grown up in corporate computing, J2EE offers what IT managers want: it is reliable, secure and scalable. But it is behind in development tools and XML support. Microsoft has built .NET to make it easy to create web services and use XML. But it still has to prove that its platform is ready for heavy-duty corporate computing.
These differences will probably disappear over time, predicts Yefim Natis of Gartner Group, a consultancy. In one technical respect, however, the two platforms will differ for the foreseeable future. Applications for J2EE can be written only in Java, but they can run on any popular operating system. By contrast, .NET developers can use most languages (except Java), but their programs run only on the Windows operating system. Although there is now an open-source project called Mono, which aims to build a version of .NET that runs on Linux, the popular open-source operating system, industry analysts doubt that this will ever play a big role.