The Web's father and the Tell-Tale RPC

Tim Berners-Lee was working on a Remote Procedure Call (RPC) program at the CERN particle accelerator in the 1980s not too long before he set about inventing the World Wide Web. Over the years, his efforts have centered on guiding the growth of the Web, striving to add functions where needed and to keep it simple where possible. He has come to re-visit the RPC and notions of object computing in that quest.

Berners-Lee's attention has increasingly moved away from HTML presentation and browser issues toward XML, which has marked potential to cleverly handle data as it courses across the world's biggest distributed digital system. XML and RPCs can quickly cause the Web to take on the traits of conventional stateful computer systems. These were among the matters he discussed in a keynote at SDExpo/East 2001 in Boston at the end of August.

The Web's father told the audience of developers he wanted to discuss the notion of simplicity. At the same time, he intended to discuss Web services, the emerging computing paradigm that may well rely on an RPC of some kind—SOAP is one of the first to bat—to support XML-style systems. Berners-Lee said he would cover this matter because "there has been talk—people wondering if the idea of Web services is going to break the Web." He gave suggestions that indicate he thinks a poorly designed Web service mechanism could be hurtful.

When building this brave new world, mere hacking won't do. Web services should derive from judicious architectures. Keep it simple, said Berners-Lee.

"If we can keep Web services as simple as the Web, we'll have done well," he said. And he suggested designers be mindful of the essential elements in the Web's success.

As a counterpoint to simplicity, Berners-Lee described his and others' frustrations with the modern PC. One typically loads program after program on a machine, leaves some application programs unused for years, invokes one on one fateful day, and the machine hangs up. It likely may be invoking the now "uninvokable." Berners-Lee called the problem "bit rot"—it also may be described as "software rot" or "software decay." Perhaps a program encounters an "exceptional" condition and fails. Systems get bloated and crash, depending, said Berners-Lee, on "who breaks what assumptions" in intended program actions.

He inferred this could become common with Web services. And that things will break down so far deep in the bowels of the global system that finding the culprit code may be nigh on impossible.

The scenario conjured for this skeptical examiner is a vision of Edgar Allan Poe's The Tell-Tale Heart, in which a heart imagined ticking under a garret's floorboards drives a murderer to madness. Soon, if Web services like Microsoft's HailStorm—noted only because it is the most visible Web service example to date—hold sway, document changes will trigger events in disparate corners of the Internet. If software modules formed in combinations proliferate wildly—and that could be the path of Web services—this could be a real problem.

Applications may come out of the sky, get used once and get covered by strata upon strata of like services, waiting for the day when the gears grind noisily or the works gum up quietly. Can you say "Exchange Server back door" and multiply it by 100?

Web services rely on RPCs that are really a different computing model than the original Web's. At SDExpo, Berners-Lee joked that he put aside his RPC work in the old CERN days because he thought Sun Microsystems' or Apollo Computer's RPC would soon take over the world.

"Here we are again re-inventing our remote procedure call," he mused, noting that both computing paradigms—one based on RPCs or similar mechanisms, and one based on a no-side-effect browser that merely retrieves state—are important.

Somehow, to date, the Web has managed to survive a lot. It probably can weather a few strange RPCs carrying the banner of Web services. But thoughtful design and a nod of some kind to the Web's father probably wouldn't hurt.

About the Author

Jack Vaughan is former Editor-at-Large at Application Development Trends magazine.