Re: Process instantiation puzzle

An aside: I conclude from Drew's lack of response that I can declare 
victory :)

On Friday, September 19, 2003, at 02:38  AM, Sudhir Agarwal wrote:
[snip]
>> 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.

I disagree. It depends on 1) what services the process occurances 
actually get instantiated to, and 2) how the service provider 
implements the advertized semantics.

Someone, somewhere, has to care about 1. Someone, sometimes, other than 
the provider, might care about 2 but it may typically be the case that 
she can't know anything and needn't be bothered by the fact.

I am, of course, assuming that the semantics of these various 
alternative Drew puts forth all respect the semantics of the 
description under which P was selected. Indeed, if P was abstract, I 
can see P's occurences being bound to services from *two different 
providers*.


> 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).

Seems like a wildly faulty assumption to me? Unless you mean that it 
doesn't matter which way you assume?

> 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.

Huh? They could all use the same clock. Why couldn't they?

> 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.
[snip]

 From the composite process POV, there's certianly some sense in which 
we regard it as such (different process occurances). But I don't see 
why we have to percolate this down.

Take a simpler example. I do a series of GETs on an URI. I have NO CLUE 
whether I'm getting a single web server, something out of a farm, 
something from an intermediate cache or proxy. Nor do I care. Nor 
should I, in most cases.

I certianly can *build* some of these distinctions in, perhaps, but the 
possibility of don't know, don't care needs to be preserved, and is 
probably the default.

So this is how I understand the Service Oriented Architecture model.

Cheers,
Bijan Parsia.

Received on Friday, 19 September 2003 10:27:16 UTC