- From: Bijan Parsia <bparsia@isr.umd.edu>
- Date: Fri, 19 Sep 2003 10:30:15 -0400
- To: agarwal@aifb.uni-karlsruhe.de
- Cc: www-ws <www-ws@w3.org>
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