- From: Miles Sabin <miles@milessabin.com>
- Date: Fri, 31 Jan 2003 18:50:43 +0000
- To: public-ws-chor@w3.org
Assaf Arkin wrote,
> I never thought of it that way, but you are absolutely right!
>
> You could say that a file stream or a datagram are processes that are
> passed by name from one process (isolate) to another process
> (isolate). And of course an isolate process could be passed by name
> to another isolate process.
At the risk of cluttering this list with OT postings ...
You could, but it's actually IsolateMessages containing Links that are
the real manifestation of mobility. I prefer to think of the other I/O
types as being closer to capabilities (tho' I'd agree that there are a
lot of connections between mobility and capabilities).
Here's a Link example ... we have a manager isolate which controls
access to a resource-providing isolate. Clients request a link to the
resource isolate from the manager, then communicate with the resource
via that link,
// In the client
Link returnLink = Link.newLink(manager, Isolate.currentIsolate());
IsolateMessage request =
IsolateMessage.newCompositeMessage(
new IsolateMessage[] {
IsolateMessage.newIsolateMessage(Isolate.currentIsolate())
IsolateMessage.newLinkMessage(returnLink) });
linkToManager.send(request);
Link accessLink = returnLink.receive().getLink();
// now communicate with resource via accessLink ...
// In the manager
IsolateMessage[] request = linkFromClient.receive().getComposite();
Isolate client = request[0].getIsolate();
Link returnLink = request[1].getLink();
Link accessLink = Link.newLink(client, resource);
IsolateMessage accessLinkMsg =
IsolateMessage.newLinkMessage(clientLinkToResource);
linkToResource.send(accessLink);
returnLink.send(accessLink);
// In the resource
Link accessLink = managerLink.receive().getLink();
// now communicate with the client via accessLink
If you've done much with Pi, this should seem fairly familiar.
Cheers,
Miles
Received on Friday, 31 January 2003 13:51:15 UTC