There was a mail configuration problem with the ptolemy-hackers list, so I'm forwarding a couple of bounced messages.
Rather than trying to merge them, I'm sending them in the order they were originally sent. -Christopher > Date: Mon, 14 Jun 2004 08:54:49 -0700 > To: Bertram Ludaescher <[EMAIL PROTECTED]> > From: "Edward A Lee" <[EMAIL PROTECTED]> > Subject: Re: [kepler-dev] introduction & distributed ptolemy > Cc: "Edward A Lee" <[EMAIL PROTECTED]>, Tobin Fricke <[EMAIL PROTECTED]>, > [EMAIL PROTECTED], > [EMAIL PROTECTED], yang <[EMAIL PROTECTED]> > In-Reply-To: <[EMAIL PROTECTED]> > References: <[EMAIL PROTECTED]> > <[EMAIL PROTECTED]> > <[EMAIL PROTECTED]> > Mime-Version: 1.0 > Content-Type: text/plain; charset="us-ascii"; format=flowed > > > A major potential pitfall in passing around references to data > instead of the data is the accidental introduction of nondeterminism. > We have to do this in a way that avoids this nondeterminism. > Consider for example a model that broadcasts the same reference > to two distinct destinations, and those destinations use the reference > to modify the data... Then, the order in which the destinations happen > to get to the data will change the results... > > One solution is to prohibit modification of the data (this is > why Ptolemy II tokens are immutable). But there are other > solutions. > > In Ptolemy Classic, this was handled using reference counts, which > automatically determine when it is necessary to copy the data. > But it's still a conservative approach. > > A third solution is to go with a different model of computation > that makes the ordering explicit. To me, this is the most interesting > one, and the one that effectively amounts to language design... > > Edward > > > At 08:01 AM 6/14/2004 -0700, Bertram Ludaescher wrote: > > >Indeed the problem of efficient data transfer between actors has come > >up several times before (including on kepler-dev I think). > > > >The problem we face e.g. as part of Roadnet (Tobin's current work) but > >also as part of data-intesnive workflows (SDM/SPA and other projects) > >is that actor communication should not involve physical token flow > >through the "master application" (the Ptolemy/Kepler "console" running > >on an "operator's" laptop say ..) but be directly between the actor > >processes. Ideally the ports of an actor should (or at least could) > >have multiple types: > >- the data type (including say XML Schema type), > >- the semantic type (e.g. a concept expression describing more formally > >what else might be known about the data flowing through the port) > >[[aside for Ferdinando: our "reductionist/separatist approach" does not > >preclude forever an integrated modeling solution - it's just bottom up > >to get sth useful soon/in finite time ;-]] > >- the event consumption/production type (useful for scheduling a la > >SDF) > >- the communication type (through the Ptolemy/Kepler client, directly > >via say FTP or HTTP) etc > > > >At some levels of modeling ones does explicitely hide such detail from > >the modeler/user but at other levels this might be a good way of > >overcoming some scalability issues (if you have terabyte data streams > >you want them to go directly where they need to) > > > >A related problem of web servies (as actors) is that they send results > >back to the caller (Kepler) and don't forward them to the subsequent > >actor making large data transfers virtually impossible.. > > > >A simple extension to the web service model (anyone knows whether > >that's already done???) would allow for data to include *references* > >so that a process would be able return to Kepler just a reference to > >the result data and that reference would be passed on to the consuming > >actor who then understands how to derefernce it. This simple > >extension seems to be an easy solution to what we called before the > >3rd party transfer problem: > > > >-->[Actor A] ---> [ Actor B] --> ... > > > >To stream large data set D from A to B w/o going through > >Ptolemy/Kepler one can simply send instead a handle &D and then B, > >upon receiving &D, understands and dereferenes it by calling the > >appropriate protocol (FTP/gridFTP, HTTP, SRB,...) > > > >Note that there are already explicit Kepler actors (SRBread/SRBwrite, > >gridFTP) for large data transfer. More elegant would it be to just > >send handles in the form, e.g., dereference(http://...<ref-to-D>..) > >Note that the special tag 'derefence' is needed since not every URL > >should be dereferenced (a URL can be perfectly valid data all by > >itself) > > > >It would be good if we could (a) define our extensions in line with > >web services extensions that deal with dereferencing message parts (if > >such exists) and (b) can work on a joint > >Kepler/Ptolemy/Roadnet/SEEK/SDM etc approach (in fact, Kepler is such > >a joint forum for co-designing this together..) > > > >Bertram > > > >PS Tobin: I recently met Kent and heard good news about ORB access in > >Kepler already. You can also check with Efrat at SDSC on 3rd party > >transfer issues while you're at SDSC.. > > > > >>>>> "EAL" == Edward A Lee <[EMAIL PROTECTED]> writes: > >EAL> > >EAL> 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. > >EAL> > >EAL> We have done quite a bit of experimentation with distributed > >EAL> Ptolemy II models, but haven't completely settled on any one > >EAL> approach... Most of the recent work in this area has been > >EAL> done by Yang Zhao, whom I've cc'd for additional comments... > >EAL> Here are some notes: > >EAL> > >EAL> - A model can contain a component that is defined elsewhere > >EAL> on the network, referenced at a URL. There is a demo > >EAL> in the quick tour that runs a submodel that sits on our > >EAL> web server. > >EAL> > >EAL> - The Corba library provides a mechanism for transporting > >EAL> tokens from one model to another using either push or > >EAL> pull style interactions. The software is in the > >EAL> ptolemy.actor.corba package, but there are currently > >EAL> no good (easily run) demos, and documentation is sparse. > >EAL> > >EAL> - The MobileModel actor accepts a model definition on an > >EAL> input port and then executes that model. Yang has used > >EAL> this with the Corba actors to build models where one > >EAL> model constructs another model and sends it to another > >EAL> machine on the network to execute. > >EAL> > >EAL> - The JXTA library (ptolemy.actor.lib.jxta) uses Sun's > >EAL> XML-based P2P mechanism. Yang has used this to construct > >EAL> a distributed chat room application. > >EAL> > >EAL> - The ptolemy.actor.lib.net has two actors DatagramReader > >EAL> and DatagramWriter that provide low-level mechanisms for > >EAL> models to communicate over the net. Three or four years > >EAL> ago Win Williams used this to created a distributed model > >EAL> where two computers on the net were connected to > >EAL> motor controllers and users could "arm wrestle" over > >EAL> the network ... when one of the users turned his motor, > >EAL> the other motor would turn, and they could fight each > >EAL> other, trying to turn the motors in opposite directions. > >EAL> > >EAL> - Some years ago we also did some experimentation with > >EAL> Sun's JINI P2P mechanism, but this has been largely > >EAL> supplanted by JXTA. > >EAL> > >EAL> - The security library (ptolemy.actor.lib.security) > >EAL> provides encryption and decryption and authentication > >EAL> based on digital signatures. > >EAL> > >EAL> Most of these mechanisms have not been well packaged, > >EAL> and we haven't worked out the "lifecycle management" issues > >EAL> (how to start up a distributed model systematically, how > >EAL> to manage network failures). > >EAL> > >EAL> In my view, working out these issues is a top priority... > >EAL> I would be delighted to work with you or anyone else on this... > >EAL> > >EAL> Edward > >EAL> > >EAL> > >EAL> > >EAL> > >EAL> > >EAL> ------------ > >EAL> Edward A. Lee, Professor > >EAL> 518 Cory Hall, UC Berkeley, Berkeley, CA 94720 > >EAL> phone: 510-642-0455, fax: 510-642-2739 > >EAL> [EMAIL PROTECTED], http://ptolemy.eecs.berkeley.edu/~eal > >EAL> > >EAL> _______________________________________________ > >EAL> kepler-dev mailing list > >EAL> [EMAIL PROTECTED] > >EAL> http://www.ecoinformatics.org/mailman/listinfo/kepler-dev > > ------------ > Edward A. Lee, Professor > 518 Cory Hall, UC Berkeley, Berkeley, CA 94720 > phone: 510-642-0455, fax: 510-642-2739 > [EMAIL PROTECTED], http://ptolemy.eecs.berkeley.edu/~eal ---------------------------------------------------------------------------- Posted to the ptolemy-hackers mailing list. Please send administrative mail for this list to: [EMAIL PROTECTED]