[kepler-dev] introduction & distributed ptolemy
Edward A Lee
eal at eecs.berkeley.edu
Sat Jun 12 07:44:56 PDT 2004
At 05:48 PM 6/11/2004 -0700, Tobin Fricke wrote:
>A basic question I have is, is there a defined network transport for
>Ptolemy relations? I expect that this question isn't really well-formed
>as I still have some reading to do on how relations actually work.
>Nonetheless, there is the question of, if we have different instances of
>Ptolemy talking to each other across the network, how are the data streams
>transmitted? In our case one option is to use the ORB as the stream
>transport, equipping each sub-model with ORB source and ORB sink
>components; and perhaps this could be done implicitly to automatically
>distribute a model across the network. But this line of thinking is
>strongly tied to the idea of data streams and may not be appropriate for
>the more general notion of relations in Ptolemy.
We have done quite a bit of experimentation with distributed
Ptolemy II models, but haven't completely settled on any one
approach... Most of the recent work in this area has been
done by Yang Zhao, whom I've cc'd for additional comments...
Here are some notes:
- A model can contain a component that is defined elsewhere
on the network, referenced at a URL. There is a demo
in the quick tour that runs a submodel that sits on our
- The Corba library provides a mechanism for transporting
tokens from one model to another using either push or
pull style interactions. The software is in the
ptolemy.actor.corba package, but there are currently
no good (easily run) demos, and documentation is sparse.
- The MobileModel actor accepts a model definition on an
input port and then executes that model. Yang has used
this with the Corba actors to build models where one
model constructs another model and sends it to another
machine on the network to execute.
- The JXTA library (ptolemy.actor.lib.jxta) uses Sun's
XML-based P2P mechanism. Yang has used this to construct
a distributed chat room application.
- The ptolemy.actor.lib.net has two actors DatagramReader
and DatagramWriter that provide low-level mechanisms for
models to communicate over the net. Three or four years
ago Win Williams used this to created a distributed model
where two computers on the net were connected to
motor controllers and users could "arm wrestle" over
the network ... when one of the users turned his motor,
the other motor would turn, and they could fight each
other, trying to turn the motors in opposite directions.
- Some years ago we also did some experimentation with
Sun's JINI P2P mechanism, but this has been largely
supplanted by JXTA.
- The security library (ptolemy.actor.lib.security)
provides encryption and decryption and authentication
based on digital signatures.
Most of these mechanisms have not been well packaged,
and we haven't worked out the "lifecycle management" issues
(how to start up a distributed model systematically, how
to manage network failures).
In my view, working out these issues is a top priority...
I would be delighted to work with you or anyone else on this...
Edward A. Lee, Professor
518 Cory Hall, UC Berkeley, Berkeley, CA 94720
phone: 510-642-0455, fax: 510-642-2739
eal at eecs.Berkeley.EDU, http://ptolemy.eecs.berkeley.edu/~eal
More information about the Kepler-dev