Distributed Object Technology Papers


     Adapting Publish/Subscribe Middleware to Achieve Gnutella-like Functionality
     A Design Framework for Internet-Scale Event Observation and Notification Systems
     Language-Based Support for Metadata
     Multilanguage Interoperability in Distributed Systems: Experience Report
     Q: A Multi-lingual Interprocess Communications System
     ARPC: Augmented Remote Procedure Call System


Adapting Publish/Subscribe Middleware to Achieve Gnutella-like Functionality

Dennis Heimbigner

Gnutella represents a new wave of peer-to-peer applications providing distributed discovery and sharing of resources across the Internet. Gnutella is distinguished by its support for anonymity and by its decentralized architecture. The current Gnutella architecture and protocol have numerous flaws with respect to efficiency, anonymity, and vulnerability to malicious actions. An alternative design is described that provides Gnutella-like functionality but removes or mitigates many of Gnutella's flaws. This design, referred to as Query/Advertise (Q/A) is based upon a scalable publish/subscribe middleware system called Sienab. A prototype implementation of Q/A is described. The relative benefits of this approach are discussed, and a number of open research problems are identified with respect to Q/A systems.

2001 ACM Symposium on Applied Computing (SAC 2001): Special Track on Coordination Models, Languages and Applications (to appear), 11-14 March 2001, Las Vegas, NV.

Also available as Technical Report CU-CS-909-00, Department of Computer Science, University of Colorado, September 1, 2000.

Retrieve publication as PDF.


A Design Framework for Internet-Scale Event Observation and Notification

D.S. Rosenblum and A.L. Wolf

There is increasing interest in having software systems execute and interoperate over the Internet. Execution and interoperation at this scale imply a degree of loose coupling and heterogeneity among the components from which such systems will be built. One common architectural style for distributed, loosely-coupled, heterogeneous software systems is a structure based on event generation, observation and notification. The technology to support this approach is well-developed for local area networks, but it is ill-suited to networks on the scale of the Internet. Hence, new technologies are needed to support the construction of large-scale, event-based software systems for the Internet. We have begun to design a new facility for event observation and notification that better serves the needs of Internet-scale applications. In this paper we present results from our first step in this design process, in which we defined a framework that captures many of the relevant design dimensions. Our framework comprises seven models-an object model, an event model, a naming model, an observation model, a time model, a notification model, and a resource model. The paper discusses each of these models in detail and illustrates them using an example involving an update to a Web page. The paper also evaluates three existing technologies with respect to the seven models.

6th European Software Engineering Conference (held jointly with SIGSOFT '97, Foundations of Software Engineering), Lecture Notes in Computer Science 1301, Springer, Berlin, 1997, pages 344-360.

Retrieve publication as PDF, or gzip compressed Postscript.


Language-Based Support for Metadata

J. Doppke, D. Heimbigner, and A.L. Wolf

Metadata is spreading beyond its historical application area, database management systems, to areas such as distributed object programming, large-grained parallel scientific computation, and large-scale continuously running systems. We therefore see significant benefits in moving from the current ad hoc, application-specific mechanisms to a unifying and generalizing metadata model.

Our goal is to develop packages and tools to support the development and use of metadata. Our approach is to exploit the power of language-processing technology to capture the range of metadata complexities conveniently and uniformly. In essence, we are creating a generic ``metamodel'' representation scheme that can be specialized to particular metadata applications. We have built a prototype, called CRIME, that demonstrates our ideas in the application area of distributed object technology.

First IEEE Metadata Conference, Silver Spring, Maryland, April 1996.

Retrieve publication as gzip compressed Postscript.


Multilanguage Interoperability in Distributed Systems: Experience Report

M. Maybee, D. Heimbigner, and L.J. Osterweil

The Q system provides interoperability support for multilingual, heterogeneous component-based software systems. Initial development of Q began in 1988, and was driven by the very pragmatic need for a communication mechanism between a client program written in Ada and a server written in C. The initial design was driven by language features present in C, but not in Ada, or vice-versa. In time our needs and aspirations grew and Q evolved to support other languages, such as C++, Lisp, Prolog, Java, and Tcl. As a result of pervasive usage by the Arcadia SDE research project, usage levels and modes of the Q system grew and so more emphasis was placed upon portability, reliability, and performance. In that context we identified specific ways in which programming language support systems can directly impede effective interoperability. This necessitated extensive changes to both our conceptual model and our implementation of the Q system. We also discovered the need to support modes of interoperability far more complex than the usual client-server. The continued evolution of Q has allowed the architecture of Arcadia software to become highly distributed and component-based, exploiting components written in a variety of languages. In addition to becoming an Arcadia project mainstay, Q has also been made available to over 100 other sites, and it is currently in use in a variety of other projects. This paper summarizes key points that have been learned from this considerable base of experience.

Proceedings of the 18th International Conference on Software Engineering, Berlin, Germany, March 1996.

Retrieve publication as Postscript.


Q: A Multi-lingual Interproces Communication System

M. Maybee and D. Heimbigner

Q is a software bus system used as part of the ARPA sponsored Arcadia project. Q provides both remote procedure call (RPC) and message-passing semantics as a layer above Unix sockets. It uses the Open Network Computing (ONC) industrial standard. Q supports several important capabilities:

Additionally Q provides a set of matched C and Ada interfaces designed to support interprocess communication between these two languages. Certain of these adaptations were necessitated by the lack of key C language features in the Ada language. Additional features were inspired by language features present in the Ada language which are not commonly found in C language implementations. Q defines an interprocess communication model common to both languages, and a type space common to both languages.

Technical Report CU-ARCADIA-101-93, Department of Computer Science, University of Colorado, August 1993.

Retrieve publication as Postscript.


ARPC: Augmented Remote Procedure Call System, Version 402.3f

D. Heimbigner

Arpc (pronounced ``arp-cee'') is an extension to the publically available Open Network Computing (ONC) Remote Procedure Call system version 4.0. Arpc provides a number of new capabilities not available in the normal ONC RPC packages.

Technical Report CU-ARCADIA-100-93, Department of Computer Science, University of Colorado, August 1993.

Retrieve publication as Postscript.


SERL Home ©1998 Software Engineering Research Laboratory (SERL)
Last updated: 02-14-98