What's In it for Me:
Position paper for the W3C/OMG Workshop on Distributed Objects and Mobile Code

Matthew Fuchs, PhD
Walt Disney Imagineering
1401 Flower St.
P.O.Box 25020
Glendale, CA 91221-5020


Attempts are being made to use the World Wide Web infrastructure for social interactions well beyond its original purpose of information display. Electronic commerce is the most obvious, but others are on their way, such as interorganizational workflow. These are inherently reciprocal relationships which do not fit into the Web's client/server architecture. Each party needs to be able to apply local intelligence to their side of these relations, implying a move to a peer-to-peer architecture and the integration of Web-based information with local applications. My browser must defend my interests. Mobility and interface definition languages (of which CORBA IDL is just one) have an important role to play here.

When I developed Dreme, a dialect of Scheme with distributed lexical scoping and all objects mobile in the Internet, I foresaw an environment of independent nodes belonging to different organizations, where an arriving object could not assume unfettered access to an familiar environment. Developing distributed, mobile applications in Dreme, even multiuser ones, was straightforward so long as I could ignore heterogeneity. The current generation of Java tools has been developed to also ignore it. Development of Dreme stopped when I began to take the problem seriously.

The enormity of a peer-to-peer Web, and the variety of interactions within, require nodes with scalable intelligence. In other words, when first faced with new information/objects/interactions, my browser may know nothing. However the sender will be able to provide some basic semantics, such as how to display information (assuming a common GUI API). If this event recurs, my browser will already have some intelligence about it, and I will be able to develop more intelligence (such as integrating the receipt of new information with updating my local databse) either through internal development or purchase over the Web.

My recent work has been on developing this scalable intelligence. An important aspect is developing neutral information formats to respect the different needs of participants. For example, a request might be either displayed to a user, or automatically processed by a local agent from a database. I have been examining the use of SGML as a carrier for this information - like IDL it is designed as an interchange language, and has the added advantage of being upwardly compatible with HTML - although simpler alternatives are possible.

This approach will lead to a flurry of little domain-specific languages, many of which will eventually die out as we move to a small number of broad standards with dialects for local variants. Essential to the approach is determining the "minimum" Web which can support this without overconstraining the eventual evolution.

Some more information on this approach is available from my home page.