- From: Burdett, David <david.burdett@commerceone.com>
- Date: Thu, 26 Jun 2003 02:54:24 -0700
- To: "Champion, Mike" <Mike.Champion@SoftwareAG-USA.com>, www-ws-arcj@w3.org
- Cc: "WS Choreography (E-mail)" <public-ws-chor@w3.org>
- Message-ID: <C1E0143CD365A445A4417083BF6F42CC08391BC6@C1plenaexm07.commerceone.com>
Mike a few comments on your draft below. Note that these are my opinions rather than those of the WS-Chor group (who are getting a copy of this email). David -----Original Message----- From: Champion, Mike [mailto:Mike.Champion@SoftwareAG-USA.com] Sent: Wednesday, June 25, 2003 6:49 PM To: www-ws-arcj@w3.org Subject: Proposed text for Choreography concepts Compare with http://www.w3.org/TR/2003/WD-ws-arch-20030514/#choreography Executive summary: wordsmithed the draft text a bit to be more in line with recent discussions in the Choreography WG relating "choreography" to a shared global state machine rather than an execution language. Cross-checked language and issues here against the Choreography WG charter and various email-threads, notably: http://lists.w3.org/Archives/Public/www-ws-arch/2002Aug/0101.html http://lists.w3.org/Archives/Public/www-ws-arch/2002Aug/0191.html http://lists.w3.org/Archives/Public/www-ws-arch/2002Aug/0193.html http://lists.w3.org/Archives/Public/www-ws-arch/2002Oct/0205.html http://lists.w3.org/Archives/Public/www-ws-arch/2002Oct/0369.html http://lists.w3.org/Archives/Public/www-ws-arch/2003May/0033.html Issues: - Is the "shared state machine" definition too idiosyncratic and specific to the W3C WS-Chor WG? - Doe we want to wade into the swamp of defining "orchestration" or should we follow Martin's lead and simply ban the term :-) If so, does it mean "choreography implementation" or "sortof like choreography, but from a particular actor's point of view? See http://lists.w3.org/Archives/Public/www-ws-arch/2003May/0034.html - What's the relationship between Choreography and MEP? There was a sentiment at the WS-Chor F2F last week that a Choreography language should be able to model any MEP. XXX Choreography XXX.1 Definition A Choreography defines a shared state machine that describes interactions involving multiple web service invocations. <DB>As an alternative, I would suggest the following ... "A Choreography defines the sequence and conditions under which multiple cooperating independent web services exchange information in order to achieve some useful function." The rationale for this is as follows: 1. Using a "shared state machine" is actually an implementation decision of how you define a choreography. Although I think it likely that the WS-Chor group will use this approach it does not have to. Using the phrases like "sequence and conditions in which information is exchanged" is a more general statement of what must occur without requiring that a state machine is used to control the sequence in which they occur. 2. The term "interactions" needs definition if not defined elsewhere which is why I think that "exchange information" is a better term. 3. You might want to add a subsequent definition that defines an exchange of information as "Information is exchanged between services by following a Message Exchange Pattern or MEP". 4. The term "invocations" suggests that there is some process in control that is executing other processes which is what a process definition or a procedural language such as BPEL, Java, C++ does. What makes choreography different is that no single process is in control and therefore the processes that do take part are independent and have no option but to cooperate if they want to succeed. 5. The idea of a "acheiving a useful function" is needed to emphasize that you are trying to do more than just send a simple message. Instead you are trying to illustrate that there is some larger activity going on.</DB> XXX.2 Relationships to other elements A choreography is the pattern of possible interactions between a set of services A choreography may be expressed in a choreography description language XXX.3 Description SOAP and WSDL by themselves can describe only very simple Web services consisting of a single interaction between a consumer and provider pair. The SOAP Recommendation formally specifies only two MEPs, "Request-Response" and "SOAP Response." Web Services Choreography is the subject area describing web services interactions involving more than two parties and/or more than one operation. A choreography is model of th sequence of operations, states, and conditions which control how the interactions occur. Successfully following the pattern of interaction prescribed by a choreography should result in the completion of some useful function, for example: the placement of an order, information about its delivery and eventual payment, or putting the system into a well-defined error state. [ not sure about this: Defining the possible patterns of interactions between services does not itself construe a composite service; however, a composite service requires a definition in terms of the choreography of a set of services.] A choreography is not to be confused with orchestration. Orchestration is [option A: a technique for implementing a series of web service invocations described by a choreography, but is not the only such method.] [option B: defintion a series of web service invocations from a single single party's point of view (the conductor).] <DB>I think that an Orchestration defines a single party's perspective. Although the term "party" has a B2B feel about it. I also think it would be useful to also define Orchestration to avoid the confustion. The sort of definition I would suggest would be one such as "An orchestration defines the sequence and conditions in which one web service invokes other web services in order to realize some useful function". Note that this strictly a single service view.</DB> YYY Choreography Description Language <DB>The WS-Chor group seems to be using the term Choreography *Definition* language since you're really defining the choreography in the strict sense rather then explaining it which is what a description probably suggests.</DB> YYY.1 Definition A Choreography Description Language is a notation for describing a choreography. It may also permit the specification of a composite service in terms of component services. <DB>If you restrict choreography definitions to describing how independent services co-operate, then it can't define a composite service since service always belongs to just *one* party and choreographies must involve at least two. You can though, use an Orchestration definition (which is what languages like BPEL provide) to implement a composite service. A service can also co-operate with other independent services to deliver its functionality.</DB> YYY.2 Relationships to other elements A choreography Description Language describes the pattern of allowable interactions between a set of services <DB>Suggest "a set of *independent* services"</DB> A choreography Description Language may describe the life cycle of a service invocation <DB>I'm not sure what you mean by "life cycle" in this context.</DB> A choreography Description Language describes the conversations possible between service requesters and service providers. <DB>What does "conversations" mean in this context?</DB> YYY.3 Description A Choreography description language is a formal, machine-processable definition of a specific choreograpy. [Not sure about this: A choreography descripion language formally defines the message exchange pattern(s) used by a web service.] It permits the description of how Web services can be composed, how roles and associations in Web services can be established, and how the state, if any, of composed services is to be managed. <DB>See earlier comments about composition.</DB>
Received on Thursday, 26 June 2003 05:54:30 UTC