The Globe Project

Globe stands for Global Object Based Environment. The goal of this project is to design and implement a system that simplifies the construction of wide area distributed applications.

Introduction

Prior to the WWW, few people had any conception of a worldwide distributed system. To them, worldwide communication just meant setting up ad-hoc TCP connections over the Internet. The WWW introduced a unifying paradigm: the universe suddenly consisted of Web pages connected by hyperlinks.

In this research we are going further and looking at a much more powerful unifying paradigm: distributed shared objects. In our model, the universe consists of a vast number of shared objects, each of which has some associated methods. Authorized users of an object may invoke an object's methods. A method can return the contents of a Web page, but it can also accept an email or news message, look up a name in a worldwide distributed database, access a file or perform an arbitrary other action. This scheme thus provides a basis for unifying the WWW, email, news, AFS, DNS, etc. in a single elegant model.

Physically, objects are distributed, with active copies on multiple machines at the same time. Our objects use peer-to-peer communication: applications load (part of) the object implementation in their address space to participate in the distributed object. Users may contact any copy to have methods performed, but they know nothing about the internal structure and protocols used inside the object. This scheme allows different objects to use different algorithms for data partitioning, replication, consistency, and fault tolerance, in a way transparent to the users.

Objects have location-independent names and are constructed from a control subobject, a communications subobject, a replication subobject, a security subobject, and a semantics subobject that does the actual work. The first four are taken from libraries or are compiler generated from the semantics object. This approach makes it simple to automatically build distributed, replicated, secure, worldwide objects. All the user has to do is write the semantics object and specify which distribution, replication, and security libraries to bind to. The system does the rest.

See also the official Globe home page

Papers

An Architecture for A Scalable Wide Area Distributed Systems
abstract
Current wide area distributed systems fail to hide implementation aspects related to the distribution of information. Unfortunately, the solutions developed for local systems do not scale, so a different approach is needed. In this paper we present an architecture for distributed systems that scales to support a large number of users and objects. The architecture is based on the concept of distributed shared objects, which are used for sharing and exchanging information over wide area networks. Our architecture provides location and replication transparency, and offers the flexibility needed to cope with the heterogeneity inherent in wide area systems.

P Homburg, M. van Steen, and A.S. Tanenbaum. "An Architecture for a Scalable Wide Area Distributed System". Submitted for publication, October 1995.

Towards Object-based Wide Area Distributed Systems

abstract
In order to facilitate the construction of wide area distributed systems, it is necessary that we adopt a model that simplifies application development. In this position paper we advocate an object-based approach. Our approach allows for flexibility because many of the technical details of distribution, such as communication protocols, consistency rules, etc. can be hidden behind the objects' interfaces. In addition, we allow distributed objects to offer alternative implementations for an interface. A client may choose the most suitable implementation. We discuss the use of distributed objects as the means to this end, and compare our approach to existing ones.

M. van Steen, P. Homburg, L. van Doorn, A.S. Tanenbaum, and W. de Jonge. "Towards Object-based Wide Area Distributed Systems". In L.-F. Carbrera and M. Theimer, (eds.), Proceedings International Workshop on Object Orientation in Operating Systems, pp. 224-227, Lund, Sweden, August 1995.

An Object Model for Flexible Distributed Systems

abstract
Current distributed applications like E-mail, electronic news, distributed calendars, and network information browsers often have a complex structure. This is partly due to lack of suitable support from the underlying operating system, which is often too low level. At the same time, multi media applications, parallel programs, wide-area applications, and database systems have very different operating system demands. Although it is possible to put support for the above-mentioned systems in a single operating system kernel, this is generally undesirable from a software engineering point of view, as the resulting software may become unmanageable.

In this paper we describe a new model for constructing operating systems and applications in an integrated fashion. Compared to current approaches we provide high-level primitives for supporting distributed and parallel applications. We also provide the flexibility to configure both applications and kernels to only include the functionality that is actually used.

P. Homburg, L. van Doorn, M. van Steen, A.S. Tanenbaum, and W. de Jonge. "An Object Model for Flexible Distributed Systems". In Proceedings 1st Annual ASCI Conference, pp 69-78, Heijen, The Netherlands, May 1995.


A Related Project: Paramecium

Paramecium and Globe share a single model for local objects. Globe uses these objects to build distributed objects suitable for wide area communication. Paramecium offers objects on top of a small kernel optimized for parallel processing.

More information about Paramecium

Both Paramecium and Globe load new code at runtime. The following paper discusses some ways to download code securely.

Paramecium: An extensible object-based kernel


Sometimes maintained by Philip Homburg