e-Ptolemy: A Distributed Framework for Software Systems


Researchers: Yang Zhao, Xiaojun Liu
Advisor:Edward A. Lee

A large number of embedded systems applications require the coordination of physically separated components, or networked embedded sub-systems. Distributing system components across a network can improve the robustness of a system and simplify its architecture by allowing components to run concurrently and independently. It also facilities the 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 Component Object Model (DCOM) offer object models and scalability, but the programming model is too liberal to analyze formal properties of a system. Ptolemy II is system-level design environment that supports component-based heterogeneous modeling and design of concurrent, real-time, embedded systems. It provides a rich variety of well-defined models of computation that govern the interaction between components. In this project, we are interested in exploring the concept of models of computation in distributed software systems and study the implication of Ptolemy component architecture, message passing mechanisms and execution models.

As an early study, we have demonstrated importing a remote model as a component of a larger model and executing it in a distributed fashion over a network, and implemented a publish/subscribe type of message passing mechanism based on JINI, JavaSpaces and the CORBA Event Service.

In order to support distributed components, three distributed objects -- receivers, parameters, and executable interfaces -- were exported via CORBA. These objects are the basis of Ptolemy II support of models of computations that govern interacting components. Distributed Ptolemy II entities make use of these CORBA objects to pass messages and transfer execution control, obeying the model of computation defined by the director, regardless of their locations on the network.

A preliminary new domain (CI) has also been implemented in Ptolemy II to study the communication behavior, resource management and model partitioning among distributed components or sub-systems. By decoupling the communication behavior from the computation behavior of a component or sub-system, we can achieve higher modularity. We also hope it will facilitate exploitation of the relation between software architecture and communication protocols.

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. We also plan to formalize the CI domain and refine it with more features, such as time, priority, etc.

Last updated 11/18/02