Go backward to Distributed Objects and Components
Go up to Appendix: Technologies for Distributed Systems
Go forward to Collaborative Environments
Network computing systems (network runtime systems, network operating systems, metacomputing systems) attempt to provide the basic technology for utilizing computer networks for a common application. Among their basic functionality, they provide facilities for creating, locating, and communicating to processes in a network environment. In the following, we only consider systems intended for use in wide-area scales.
The Argonne National Laboratory Nexus is a portable library providing the multithreading, communication, and resource management facilities required to implement advanced languages, libraries, and applications in heterogeneous parallel and distributed computing environments [FKT94] [FKT97] [FKPT96] [Nex97]. Its interface provides multiple threads of control, dynamic processor acquisition, dynamic address space creation, a global memory model via interprocessor references, and asynchronous events. Its implementation supports multiple communication protocols and resource characterization mechanisms that allow automatic selection of optimal protocols. Fault tolerance or security issues are not yet addressed.
Nexus is intended for use by compiler writers and library developers, rather than application programmers. Several parallel languages and communication libraries have been implemented on top of Nexus. The 1995 Information Wide Area Year (I-WAY) experiment for high-performance distributed computing was based on the Nexus system [FGN+95] [IWA95]. The Argonne and CalTech joint Globus Project builds on Nexus mechanisms to develop a basic software infrastructure for computations that integrate geographically distributed computational and information resources [FK96] [Glo96].
Nexus has been developed over a period of few years and provides a stable implementation with a number of users, applications, and projects relying on it. Its focus however is more on providing "networked virtual supercomputers" than on distributed multi-user systems and thus lacks a certain integration with WWW-technologies.
The Caltech Infospheres Infrastructure (II) [Inf97] is a distributed system framework implemented in Java. It provides a generic object model and a variety of messaging models: asynchronous, synchronous, and remote method calls. The system (currently a beta release [Gro96]) is provided free-of-charge so that researchers and developers can develop lightweight distributed systems that can leverage open standards and the World Wide Web [CRS+96] [CS96] [CR97]. The II is being extended to support interoperability with other distributed system models and to utilize emerging standards in the Java domain.
The system is centered around the concept of "Djinns": each Djinn essentially consists of a set of mailboxes divided into inboxes and outboxes; the outboxes of a Djinn may be connected to an arbitrary number of inboxes of other Djinns and vice versa. Within a Djinn, one or more threads may execute by removing messages from inboxes, changing the internal state, and adding messages to outboxes. Djinns can be persistent and migrate and also encapsulate a variety of services (e.g. CORBA objects or databases); their main purpose is to provide well-defined interfaces for the composition into distributed systems.
A Djinn Master on every node is responsible for the instantiation of persistent Djinn; if a message is invoked on a non-activated Djinn, it finds the appropriate Djinn and brings it into live. A Djinn Generator allows the visual construction of Djinns by tables representing the Djinn states and Java code that describes the Djinn's action in each state. A Djinn Initiator allows the visual construction of sessions i.e. graphs whose nodes represent Djinns and whose edges represent the communication channels between Djinns. On the initiation of such a session, communication with the Djinn Masters takes place to bring the various Djinns into existence. Also mechanisms for providing meta-information about Djinns and querying for Djinns with certain properties are provided.
The Infospheres Infrastructure has been under development for a year or so with no complete documentation yet and hardly more than a few test applications available. However, its convincing design, its well-supported technological basis (Java) and its resulting portability make it certainly an attractive vehicle for future developments.
The ESPRIT funded project PageSpace aims at supporting networked applications which require interaction between distributed software components and active processing [CTV+96b] [Pag97]. It is based on Java-implemented agents embedded into Web pages that concurrently execute and interact with each other in a world-wide distributed environment.
For coordination between agents, various coordination styles are used: One is based on concept introduced by the programming model Linda [GC89] [Lin96] with agents communicating via a set of shared tuple spaces. The implementation of this concept is based on the system Jada, an implementation of the Linda as a Java class library [Jad96].
On top of this basic coordination model, it is intended to introduce two additional flavors of coordination styles: The first one is a rule-oriented style that allows declarative rules on coordination based on ideas of the system ShaDe [CCR96], a coordination language with spaces of objects whose state is transformed in form of rewriting rules. The second one is a service-oriented coordination style based on ideas of the coordination language Laura [Tol96] [Lau93] that manages a service space containg forms describing service offers, requests, and results. For this purpose, both ShaDe and Laura are going to be reimplemented in Java.
PageSpace is in some aspects similar to the Infospheres project, in particular in its reliance on Java and WWW-based technologies. Its characteristic distinction is however the use of Linda-like tuplespaces as the core communication mechanism and the vision of putting higher-level coordination models on top of it. The Linda approach however is today outside the mainstream of since efficient distributed implementation of associative matching mechanisms are difficult. Since the project is still in a rather preliminary state, the success of this approach is uncertain.
The Internet is also envisioned as a medium for mobile network agents i.e. programs that are programs that can be dispatched from one computer and transported to a remote computer for execution. Arriving at the remote computer, they present their credentials and obtain access to local services and data. The remote computer may also serve as a broker by bringing together agents with similar interests and compatible goals, thus providing a meeting place at which agents can interact.
IBM has developed the Aglets Workbench [CL96] [Agl97], a visual environment for building mobile agent applications in Java. The workbench consists of a framework for developing agile agents (aglets), an Agent Transfer Protocol (ATP) for their transfer, libraries for the support of typical communication/transportation patterns, a server for aglet management, and a launcher for dispatching Aglets from a WWW page.
Based on the Aglets Workbench and ATP, IBM has submitted a Mobile Agent Facility specification to the OMG as an attempt to create a standard for transferring agents between computers on the Internet. In addition to the mobile-agent specific components, it also contains data access components (JoDax and JDBC) and a visual builder component (Tazza) supporting the user in building mobile agent applications complete with data access back ends and visual front ends. The alpha version of the Aglets Workbench is freely available for Windows 95/NT systems (only).
The Legion Project [GWtLT97] [GW96] [Leg] at the University of Virginia aims at the development of a metasystem software providing a single coherent virtual machine that addresses issues as scalability, programming ease, fault tolerance, security, and site-autonomy. Users will have the illusion of a single desktop computer through which they can manipulate objects; Legion is responsible for supporting the abstraction presented to the user, transparently scheduling application components on processors and managing data migration, caching, and transfer. As a first prototype, in 1995 the Campus Wide Virtual Computer (CWVC) was released. Writing parallel applications is supported by a CWVC-aware variant of PVM, parallel C++, and Fortran wrappers. A release of the system for public use is expected in mid-1997.
Legion is an ambitious middleware project trying to address many different complex issues that arise in the design of distributed systems. The goals is to provide a integrated conceptual foundation on which to build applications. The system is not yet a reality; the current prototype software is not designed to evolve directly into a complete Legion implementation.