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.
The reason for this divergence is less technical than philosophical, according to Mike Gilpin of Giga, another IT consultancy. Although Java was originally developed by Sun, the technology today is practically an open standard, collectively maintained by the software firms that sell products based on it. Microsoft, on the other hand, controls .NET, although the company insists that its platform supports open standards better than any other.
Those in the Java camp say this is a fundamental difference. Because Java is a standard, customers have a choice of J2EE products and can switch between them without being forced to rewrite their applications completely (which will keep vendors responsive and prices in check). Not so, counters Microsoft. Switching from one J2EE vendor to another, it says, is often as costly as switching from J2EE to .NET. Customers would thus be better off picking a platform controlled by one firm than technology designed by committee.
At this point, it is anybody’s guess how this platform battle will play out. Optimists predict that whichever platform is deemed the more open will win, because big corporate customers, in particular, no longer want to be locked into one vendor. Pessimists worry that, if the courts let it, Microsoft will abuse its Windows monopoly to dominate the platform for web services as it already dominates PCs.
The outcome will probably be somewhere in between. Even if Microsoft is contained by antitrust remedies, .NET is likely to reign supreme on the PC—but not in the entire consumer market. Java has taken hold in set-top boxes and mobile phones, which now outnumber PCs. In the corporate market J2EE will probably dominate. But many small businesses will choose .NET because they want to spend less, and still find it simpler to get everything from one vendor.
This market structure would still provide healthy competition—if only J2EE and .NET could connect easily. Such interoperability is not yet possible, but things appear to be moving in the right direction. On February 7th IBM, Microsoft and others announced the creation of the Web Services Interoperability Organisation, which will develop tools to test whether vendors comply with XML standards.
Yet the risk remains that one of these companies will try to dominate the world of web services. In fact, many fear that Microsoft’s Passport web-authentication utility, combined with its .NET myServices, a set of basic web services, will one day become a monopoly like Windows. That is why Sun and dozens of other firms have created the Liberty Alliance project, to develop an open alternative to Passport.
All this may sound like business as usual, but at stake is nothing less than how the digital world of tomorrow will be organised. If web services take off, they will form a giant array of electronic offerings that will permeate every aspect of modern life. Which is why these offerings should ideally be based on open standards, rather than on the dictatorship, however benevolent, of a single company.
Copyright © 2002 The Economist Newspaper and The Economist Group. All rights reserved.