[bparsia@isr.umd.edu: Re: Process instantiation puzzle]

With Bijan's permission, I'm forwarding his response to my puzzle.
I've deleted or replaced a couple of phrases for reasons that will
remain unstated.

                                             -- Drew


------- Start of forwarded message -------
Date: Thu, 18 Sep 2003 12:16:35 -0400
Subject: Re: Process instantiation puzzle
Content-Type: text/plain; charset=US-ASCII; format=flowed
X-PH: V4.4@mr3
Cc: daml-process@bbn.com
To: Drew McDermott <drew.mcdermott@yale.edu>
From: Bijan Parsia <bparsia@isr.umd.edu>
In-Reply-To: <200309181420.h8IEK6H22737@pantheon-po03.its.yale.edu>
Content-Transfer-Encoding: 7bit
X-YaleITSMailFilter: Version 1.1d (attachment(s) not renamed)

On Thursday, September 18, 2003, at 10:20  AM, Drew McDermott wrote:

>
<elision>

> The theory goes like this: processes have inputs and
> outputs.

In and out parameters, whatever.

>   Where these come from and where they go is not part of the
> definition of the process.  In particular, if a composite process
> C contains an invocation of process P, there's no way to know just by
> looking at the definition of C whether P is to be executed by the same
> interpreter (or "enactor") as the one executing C.
>
> Puzzle:

Yay, a puzzle.

>  Suppose C sends a message to P two or more times, at least on
> some runs, e.g.:
>
>    C = (seq (P) (if Q then ... else (P)))
>
> I've suppressed the actual dataflow, but assume that C is sending data
> to P and getting some back.  With respect to a run of C in which Q is
> false after C interacts with (P), let P1 be that first interaction,
> and P2 be the second.

Fine.

> What exactly are P1 and P2?

Don't know, and don't care.

> Is each a fresh invocation of the P
> process?

Don't know and don't care *and* am comfy with that.

> Is there a worldwide P process that everyone communicates
> with (e.g., an atomic clock sitting in Geneva).

Could be.

>  Or does the
> invocation P1 create an entity that C talks to when P2 occurs?

Could be.

>  How
> are these different possibilities to be indicated?

At the binding level, to *some* degree. But even then, my understanding 
of the point of Web services is that what happens behind the interface 
is none of my business.

> If P is just a subroutine, the answers are clear.

Not at all. Inlined or not (for example).

>  P1 and P2 are
> independent invocations that create fresh processes each time.

Is fresh memory allocation part of that? What if you are using a 
flyweight pattern and recycle your objects?

>  How
> does an espouser of the [Majority] Position answer?

I answer, Don't know and don't care and don't have to.

Cheers,
Bijan "The Positionater" Parsia.
------- End of forwarded message -------

Received on Thursday, 18 September 2003 14:45:01 UTC