Fwd: Re: Process instantiation puzzle

sorry, i forgot to set the mailing list in the cc.

Sudhir

Forwarded message 1

  • From: Sudhir Agarwal <agarwal@aifb.uni-karlsruhe.de>
  • Date: Fri, 19 Sep 2003 08:13:15 +0200
  • Subject: Re: Process instantiation puzzle
  • To: Drew McDermott <drew.mcdermott@yale.edu>
  • Message-Id: <200309190813.15329.agarwal@aifb.uni-karlsruhe.de>
On Thursday 18 September 2003 20:40, Drew McDermott wrote:
> There's a theory of processes in DAML-S that has a lot of support;
> I'll call it the Majority Position because it seems to be, modulo
> various reservations.
>
> The theory goes like this: processes have inputs and outputs.  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: 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.
>
> What exactly are P1 and P2?  Is each a fresh invocation of the P
> process?  Is there a worldwide P process that everyone communicates
> with (e.g., an atomic clock sitting in Geneva).  Or does the
> invocation P1 create an entity that C talks to when P2 occurs?  How
> are these different possibilities to be indicated?
>

in my opinion, it depends on, who is controlling the execution of C. In case 
the execution of C is centrally controlled, for example by the provider of C, 
then one can assume a global clock (clock of C's provider). If the execution 
is distributed, that is each participant (provider of component services) 
executes "his" part of the run independently of other participants, then one 
should assume each participant having a local clock and no global clock. In 
this case, each participant works sequentially (total order), whereas the 
whole run is executed concurrently (partial order).

Spontaneously i would say that each invocation of P is a different 
instantiation. This certainly makes sense, and this is how it is done in 
workflow systems. I dont understand, what the other case should mean. What do 
you mean by the entity that the first invocation of P creates? Is it an 
instance of P? 

> If P is just a subroutine, the answers are clear.  P1 and P2 are
> independent invocations that create fresh processes each time.  How
> does an espouser of the Majority Position answer?

-- 
Dipl.-Inform. Sudhir Agarwal
Institute for Applied Informatics and Formal Description Methods (AIFB),
University of Karlsruhe (TH), Germany.
Phone: +49 (0)721 608 6817
Email: agarwal@aifb.uni-karlsruhe.de
Web: http://www.aifb.uni-kalsruhe.de/WBS

Received on Friday, 19 September 2003 02:40:18 UTC