An Actor Oriented Framework for Distributed Software Systems

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

Distributed systems contain physically distributed software programs that execute asynchronously and communicate with each other over the network. Designing and implementing these systems can be complex due to the need for special care of coordination, remote interactions, arbitrary communication delays, configuration requirements, network dynamic changes and fault tolerance. This project provides a framework for visually specifying distributed systems based on actor models. It automatically handles the deployment based on some given configuration, sets up the distributed communication mechanism, and manages the coordination among the programs using some model of computation chosen by the designer.

In recent years, several middleware technologies, such as the Common Object Request Broker Architecture (CORBA) and the Distributed Component Object Model (DCOM), have been introduced. They are based on object-oriented APIs that offer a level of abstraction and facilitate distributed systems development. However, designers are still required to have specific knowledge about these technologies and need to manage concurency issues in the system by themselves. The computation logic is often tired up with the communication mechanism and it is difficult to port an application developed by one particular middleware technology to another.

On the other hand, a number of formal methods, such as actor models, process algebras, and petri-nets, have been quite thoroughly studied to model concurrency in distributed systems. Many tools, including Ptolemy II, have been developed to support system design based on formal foundations. However, issues like remote interaction, deployment, and life-cycle management have not been addressed.

In this project, we leverage the current Ptolemy II component model and execution model to provide a formal specification and run time environment. And we will add a suite of classes to manage the deployment and remote communication. Designers who use this tool can be freed from the communication details and concurrency management but focus on the computing logic part which is well encapsulated in the actor model. The runtime environment will provide guarantees on the behavior of the distributed systems, rather than having properties emerge as a by-product of a specific middleware implementation.

Security is also an important issue in distributed systems. We restrict our components (actors) to be only able to communicate with others by sending immutable data tokens. Each computer can specify a set of actors that are supported. Some programs can be statically analyzed for their buffer requirements and this information can be used in security management...

Last updated 11/01/04