Workshop on Middleware

Session Summary

WWW Revisited

Coordinator: Mike Schwartz

Speakers: Bill Janssen (Xerox PARC), Mic Bowman (Transarc), Peter Steenkiste (CMU), and Rich Salz (OSF)

Scribe: Umesh Maheshwari and Ron Weiss


Given the number of problems with the Web (inadequate caching, modest support for interoperation, lack of a local computational model, hardwired links, etc.), there are a number of themes that might be covered in a "Web Revisited" session. The initial session abstract was as follows:

The WWW provides a simple model for extensions and interoperation, based on HTML, HTTP, forms, and server-side ("cgi") programs for interpreting client requests. In this session we will take a cross-cutting look at middleware services, asking what architecture is needed to allow much more flexible and manageable interconnection of networked information technologies than can be achieved with the current Web. Depending on participant's interests, we may explore several different possible directions. For example, what sorts of interfaces, binding mechanisms, wrappers, and description languages must exist in order to allow highly extensible, manageable operation? What is the role of object invocation mechanisms like CORBA, DCE, and Java, and what pieces are missing from the architectures those systems define? What can be done to allow component technologies to be assembled as easily and reliably as one can currently plug together components in a high fidelity sound system?

However, by the time the session began, it turned out that the previous session had already discussed some of these issues. Therefore, the discussion wandered away from this theme. The discussion considered the needs for richer communication models and adaptable applications, and discussed multiple systems, each of which proposes to be a general solution.

Below, we briefly summarize of each of the invited talks, and then summarize the ensuing discussion.


Mic Bowman (Transarc) gave the first talk, in which he discussed the "mapping" problem (binding information consumers and producers, based on indexing, catalogues, selective dissemination of information, etc.) Bowman noted the importance of an intermediary, which is probably a person but might also be a program. A key notion is that experts contribute organization, classification, and evaluation of data. He noted the tradeoff between uniformity and simplicity, and discussed means of dealing with heterogeneous syntax as well as semantics. He commented on the needs for common metadata representations, verifiable series of actions, common query representations, mappings between heterogeneous protocols (e.g., SSL vs s-http), and hooks for other functionality. He also noted that many of the issues being raised in the Internet arise because of the shift in community and motivation, from "good networking practice" to "making money". (This, for example, accounts for the fact that many commercial sites purposefully subvert caching in the Web, to make sure that they can maximize "hit counts").

Bill Janssen (Xerox PARC) discussed the motivation and current state of the Inter-Language Unification (ILU) system. The vision involves interoperation of actions in a distributed object environment. In this environment, interactions are structured according to their protocols, and relationships structured by a typing structure. He pointed out that supporting this vision required addressing various heterogeneity problems, including those concerning languages, address spaces, APIs, and compatibility with legacy systems. ILU focuses on interfaces in a way that is naturally expressible from many programming languages. The investigators have worked to support more real world needs than CORBA (e.g., 64 bit numbers) while leaving out features they felt were dangerous (e.g., type ANY). The implementation emphasizes efficiency, with features such as as batching, streaming, and threads.

Rich Salz (OSF) talked about the use of OSF/DCE as a middleware system. He pointed out that the common text-based request-recall protocols used by Internet services have problems that DCE avoids because it has a full-fledged RPC system. For example, textual protocols require transfer encodings (such as ISO/BER) that are inefficient, they support limited network interactions (e.g., they can't be used for callbacks), they require low-level (telnet-based) debugging, and they can have reliability problems. On a different note, he suggested that heavy server loads can be accommodated by more powerful hardware, and that middleware is a software issue. He also pointed out the need for a good security and naming infrastructure, and advised against ignoring commercial offerings.

Peter Steenkiste (CMU) discussed network-sensitive distributed computing. The idea here is that the lower network layers should provide information that allow applications to adapt to changing conditions -- e.g., to widely varying bandwidth availability. The research issues involve providing this functionality in a way that allows for portable applications, and that can support adjustments in multiple dimensions (types of traffic, types of data, etc.) for complex applications.


Motivated by Steenkiste's talk as well as some discussions in earlier sessions, the group-wide discussion focused primarily on the appropriate level at which network traffic adaptation should occur. No clear consensus was reached about this issue. Some participants argued that application writers generally don't want to worry about network adaptation, and that network-layer problems such as congestion avoidance are sufficiently difficult that they should be implemented carefully once at the lower layers, and shared by the applications. Some argued that adaptation should be handled by middleware, along with higher-level functionality like transactions.

Part of the discussion concerned what it meant for an application to adapt. For example, Eudora sorts messages based on priority, but it was pointed out that this is really an implicit style of adaptation: rather than being programmed with explicit parameters concerning available bandwidth, etc., Eudora simply transmits the most important messages first, so that if a user interrupts the transmission the important messages will have been received.

At this point, the discussion moved to the topic of RPC protocols. It was pointed out that the multi-roundtrip RPC implementation used by Eudora and other client-server applications is very inefficient, and that a streaming protocol would be better. This observation is another example of the fact that the Internet is "outgrowing" the simple network conversation model supported by RPC/TCP, and that future Internet applications demand more powerful protocol support. (An earlier example of the need for more powerful communication paradigms arose in the caching session, in which it was suggested that multicast be used for distributing cache data rather than relying on individual receiver initiated requests.) The discussion also touched on support available for more sophisticated communication paradigms in some of the developing communication systems, including DCE, CORBA, Java, and the design nearing completion in the IETF's HTTP-NG working group.

The session ended with a couple of more general observations, noting that:

Return to the Workshop on Middleware Homepage.