The J2EE v .NET ‘split’ is nothing to do with Web services
Don't spread it around, but this is where practically the whole industry agrees...
The biggest single problem with Web services has been confusion and misunderstanding. So I was unhappy to read your recent article Industry split over web services platform. While containing lots of good information, it seemed to be based on a fundamentally mistaken view of what Web services is all about.
The headline neatly sums up that mistaken view, with its simplistic assumption that the industry is "split" because some organizations are basing their Web services on J2EE, while others prefer .Net. But the whole raison d'etre of Web services is to allow people to go on using whichever platforms are most suitable for particular purposes, without forgoing the possibility of interoperation between them. Far from the industry being "split" over the question of whether to base Web services on J2EE or .Net, Web services constitutes one of the very few areas of unanimous agreement.
Market consolidation can go only so far without seriously damaging the interests of computer users. There is a lot to be said for diversity, too. Transport analogies are hackneyed, but can sometimes help to show how simple an issue really is. Imagine for a moment that you set out to drive somewhere, and find that all the vehicles on the road are BMWs! Little two-seater "Smart BMWs" parking where there doesn't seem to be enough space, regular BMWs rushing to meetings, sleek sports BMWs that get four miles to the gallon... and huge, 20-ton BMWs trucking goods or carrying loads of people around the country. But all the BMWs basically the same shape and layout as a conventional saloon car. That would be pretty dumb, wouldn't it? An articulated lorry, a tanker or a long-distance coach is designed in a very different way from a saloon car, for the simple reason that they all have very different tasks to perform. Yet they all share the same road.
Similarly - and please note that this is only a very rough analogy - the world needs big, expensive, highly-optimised mainframes, supercomputers, low-cost Linux boxes, Macintoshes and, last but not least, uncounted millions of small, hidden embedded computers, as well as run-of-the-mill Windows PCs. Trying to do the job of a mainframe with PCs has been likened to harnessing scores of chickens to pull a carriage - a project that might have inspired a Peter Cook sketch, but otherwise quite unpromising.
So why not look at things the other way round, and start by assuming that there will always be diversity in the world of computers? People are just not going to agree on hardware, operating systems, programming languages, databases, middleware and lots of other things. Given that fact, doesn't it make sense to devise a lowest-common-denominator technique for virtually any computer to communicate with any other? This is the authentic Web services vision, and the only reason it stands a chance of succeeding is that the whole IT industry has agreed on it. Sure, there are splits here and there, but they are mostly over implementation details. Should Web services work like traditional remote procedure calls (RPC style) or should they follow the pattern of exchanging messages (document style)? Which workflow language is most appropriate? How should security be tackled? But the amazing thing is that, for the first time in living memory, all the leading players are choosing to cooperate both within and outside standards bodies. IBM and Microsoft, for Pete's sake, have spent the last two years issuing joint statements about how they (both of them) think various technical issues should be dealt with. SOAP, WSDL, UDDI, WS-Inspection, WS-Security, WS-Coordination, WS-Transactions, BPEL4WS... the list goes on and on.
The big two, and their many partners and hangers-on, even got so worried that the various specifications might not fit together perfectly that they actually set up a new forum specifically to iron out the practical difficulties. That is how the Web Services Interoperability Organization, WS-I, got started. Its president and chairman, Tom Glover, works for IBM; and its secretary, Christopher Kurt, works for Microsoft. Membership has surged way past the 100 mark, including not only most of the leading software vendors but also companies like AT&T, Daimler Chrysler, Eastman Kodak, Fidelity Investments, Nokia and Procter & Gamble.
This is how WS-I sums up its purpose in life:
'WS-I was formed specifically for the creation, promotion, or support of Generic Protocols for Interoperable exchange of messages between services. Generic Protocols are protocols that are independent of any specific action indicated by the message beyond actions necessary for the secure, reliable, or efficient delivery of messages; "Interoperable" means suitable for and capable of being implemented in a neutral manner on multiple operating systems and in multiple programming languages.'
"Interoperable" also means suitable for and capable of being implemented in a neutral manner on J2EE and .Net. If everyone was ever going to settle for using nothing but Windows, they could all interoperate using COM+ or .Net Remoting. Or if we all agreed to standardise on J2EE, all we would need would be RMI and JMS. Actually, CORBA would have done the trick across all platforms, but it was "politically" unacceptable - meaning that Microsoft (among others) was so committed to talking it down that a U-turn would have involved too much loss of face. The Web services initiative could turn out to be IT's Project Apollo, in that it aims to open up a whole new application space that has hitherto been largely inaccessible. That space comprises fast, smooth, reliable automated interoperation between disparate computer systems, even those that belong to different corporate networks. Like Apollo, it will be a long job, because a set of wholly new technical problems needs to be solved - and before they can be solved, they have to be identified. But success is likely in the long term, simply because everyone has joined forces in the common cause.
Just as hostile nations understand the need for shared diplomatic conventions, the IT industry's gorillas realise that they stand to gain from cooperation in certain limited areas. The only practical reason for IBM's and Microsoft's unprecedented collaboration on Web services is that they both see more business and greater profit from expanding the total size of the market than from fighting each other, dog-in-the-manger style, for every last crumb of today's smaller cake.
Tom Welsh is Editor of Cutter Consortium's Web Services Strategies