e-Ptolemy: A Distributed Framework for Software Systems

Researchers: Jie Liu, Xiaojun Liu, Sonia Sachs
Advisor:Edward A. Lee

A large number of embedded systems applications require the coordination of physically separated components. Distributing system components across a network can improve robustness of a system and simplify its architecture by allowing components to run concurrently and independently. It also facilities exploitation of the intrinsically parallel nature of specialized hardware, offering the promise of improved execution speed.

Traditional distributed computing is built on the client-server model, which lacks object-orientation and could be hard to scale up. Middleware technologies, like the Common Object Request Broker Architecture (CORBA) and the Distributed Common Object Model (DCOM) offer object models and scalability, but the programming model is too liberal to analyze formal properties of a system. In this project, we are exploring the concept of models of computation in distributed software systems. In particular, we extend the Ptolemy II infrastructure with CORBA compatibility and study the implication of Ptolemy component architecture, message passing mechanisms, and execution models.

At an early study, we have demonstrated importing a remote model as a component of a larger model, executing the model in a distributed fashion over a network. We have also implemented a publish/subscribe type of message passing mechanism based on JINI and JavaSpaces. Current work includes the definition of a clean interface for distributed components and their interaction, and the exploration of real-time issues under the framework.

In order to support distributed components, four distributed objects--- ports, receivers, parameters, and executable interfaces---were exported via CORBA. These objects together provide an abstraction of components in Ptolemy II. A remote (composite) actor is viewed as a service that can be accessed through these objects.

We identify three ways to distribute Ptolemy models: two user-defined mechanisms, and one automatic, load-balancing based distribution method. Under the centralized user-defined mechanism, users decide which Ptolemy actors are to be distributed to which remote hosts. This is specified by setting a parameter of an actor. Users then manually initiate the distributed models at the remote hosts. Under the shared user-defined mechanism, users may synchronously or asynchronously access a distributed model that is persistently stored in a shared model-base, collaborating on its construction. Synchronous collaboration is achieved by establishing or joining a modeling session in which users view and participate in building a shared model using a shared whiteboard paradigm. As a user starts a distributed model, its execution is automatically started in all remote hosts configured in the distribution. Under the automatic, load-balancing based mechanism, users are not required to decide on which components to run remotely; instead a run-time policy decides which components to distribute to which hosts, automatically scheduling them upon delivery.

A major application of this work is the open control platform (OCP), which we are developing collaboratively with Boeing. The OCP is a distributed component architecture for embedded control systems, particularly in the area of avionics.

Last updated 11/02/00