Entry Date:
February 20, 1998

Programming Methodology Group (PMG)

Principal Investigator Barbara Liskov

Co-investigator Liuba Shrira

Project Website http://www.pmg.lcs.mit.edu/


The Programming Methodology group is focused on distributed computing. Specific challenges include making it easier for programmers to implement distributed applications, and supporting secure and convenient data- and code-sharing in distributed environments.

The current research is illustrated by Thor, an object-oriented database system. Thor provides users with a universe of objects that are stored reliably and are highly likely to be accessible when needed; to achieve these goals, object storage is replicated. Objects in the universe can be shared by client programs written in different programming languages; controlled sharing is provided via an access control mechanism.

Clients can locate objects either by navigation or through queries. Each object has an encapsulated state and a set of methods. Users can extend Thor by defining new object types and new implementations of these types; the definitions are given in a new object-oriented programming language called Theta. Clients interact with Thor by calling methods of objects; calls run inside Thor to ensure that the objects cannot be corrupted by misbehaving client programs, which might be implemented in languages with unsafe features (such as explicit pointer arithmetic). Thor is being installed on DEC Alphas connected by a local area network.

Other work includes Harp, a highly available file system that runs inside a network file server such as NFS; clients continue to use the file server as usual, but files are replicated at several server machines. If one machine crashes, the system is reconfigured on-the-fly and users still have access to their files. The replication technique used in Harp is also being used in Thor.

Future plans include the use of Thor as a basis for distributed implementation of applications. Such applications are now based on the client-server model, in which components explicitly exchange messages. We will soon conduct experiments to confirm our belief that practical distributed applications will become easier by using Thor as a "blackboard" on which clients write information, such as a request for a kind of service.