|Researchers:||Yang Zhao, 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 the 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 Component Object Model (DCOM) offer object models and scalability, but the programming model is too liberal to analyze formal properties of a system.
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. We have also implemented a publish/subscribe type of message passing mechanism based on JINI, JavaSpaces and the CORBA Event Service. 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, 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.
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. 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. 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.
In this project, we will explore the concept of models of computation in distributed software systems. In particular, we extend the Ptolemy II infrastructure with CORBA compatibility and study the implications of Ptolemy component architecture, message passing mechanisms, and execution models.
Last updated 11/18/02