Workshop on Middleware

Session Summary

Distributed Objects and Procedures

Coordinator: Karen Sollins introductory slides

John Zinky, BBN -- View Slide Presentation
John Mallery, MIT -- View Slide Presentation

Scribe: Umesh Maheshwari and Ron Weiss

The session was aimed at a common interface between applications and the networked operating system that will adapt to future needs and live long. Some pertinent issues are:

The discussion centered on the first two of these.

John Zinky spoke about CORBA and a new system Quo. CORBA is a framework (specification) for glueing together separate components of a distributed system. CORBA allows the implementation of an abstract object to be split across clients and servers (the smart proxy model).

Quo combines the interface description language (IDL) of CORBA with a quality-of-service description language (QDL). It provides application handlers that adapt to system resources, utilization, and usage patterns. The Feb 1995 issue of IEEE Expert contains further information, among articles on other systems for collaborative planning.

John Mallery spoke on how to turn the information infrastructure into the knowledge infrastructure needed by the AI community. As Mallery put it, one needs to do this because one can no longer find things effectively in the existing infrastructure. In Mallery's vision, discovering knowledge is achieved by addressing the indexation problem through constraint-based name resolution, allowing buyers or other customers of resources and knowledge to find those products by identifying a variety of constraints about the desired entity. The constraints, in turn, are driven by assertions about the name somewhere in the network.

Mallery sees the information infrastructure on which this will be based as being built on a distributed object system that provides ternary links as first class objects. Mallery's links must be bi-directional and arbitrarily expressive. They must support pervasive symmetries and encoding and decoding of natural language. To do this, the three components of such a basic link are , such as a type, and two endpoints. Mallery also suggested, although not explicitly, that low level object identification and resolution must be provided in the information infrastructure. Mallery concluded with two stated requirements, ternary, first class links and the need for incremental evolution of services, in order to move from where we are now to where the AI community needs us to be.

The discussion after the talks focused on typing in common object models. One standard in this area is ODP (ISO Open Distributed Processing), which includes a common naming, architecture, basic services, and design methodology. Objects are typed so that clients are not responsible for interpretting them [Tolksdorf (Berlin)]. CORBA has type description servers that provide types as first class objects, but object types don't evolve [Zinky]. It was pointed out that there are alternatives to typing objects without chaos: Self is a class-less language based on prototyping, and Newton's Script language is another example [Spero (ITO)]. Some claimed that type standards had little meaning and more operational definitions of objects was required [Clark]. Types are there to represent protocols, which boil down to operational concepts [Janssen (Xerox)].

Another controversy arose about the use of wrappers. Some suggested using wrappers around existing programs to homogenize communication in a heterogeneous environment. Others claimed that wrappers were evil time hogs, and that the solution lies in enforcing uniform standards on all platforms, e.g., the network standard byte order [Touch (ISI)]. Somebody pointed out that the marshalling compilers, e.g. for X.400, were all bloated up, and that there was no need to provide a language when only specifying the encodings would suffice [Huitema (INRIA)].

Clark ended the session on the pessimistic note reminding the group that reusable components don't seem to be helping as promised.

Return to the Workshop on Middleware Homepage.