- From: Tony Fletcher <tony.fletcher@choreology.com>
- Date: Thu, 8 Jul 2004 17:50:09 +0100
- To: <public-ws-chor@w3.org>
- Message-ID: <001f01c4650b$a19c09a0$6701a8c0@corp.choreology.com>
Dear Colleagues, We (that is Bob and myself) urge this committee to recoil from inventing yet another transaction protocol. Our message has 4 points. The short version is: do nothing yet. (1). WS-CDL, as specified now, can require state alignment (align attribute on an interaction element), which requires a business transaction protocol. See excerpts below. (2). The required business transaction protocol has already been specified at least 6 times (and takes more than just specifying a set of messages and their choreography). (3). The 6 competing protocols will shake out soon enough for WS-CDL, and a good stopgap exists in the meantime (further more by using a declarative style, as for the align attribute, the CD language can stay above the arguments of exactly which transaction protocol to use while showing in a choreography description what is included in the transaction, what state is aligned and how the outcome effects the possible future evolution paths of the choreography). (4). The same transaction protocol used for state alignment will also handle more complex coordination requirements like the TWIST scenario and Finalization. And to answer some points made previously - yes one could indeed specify any transaction protocol or state alignment protocol in CDL and then use that to wrap the 'application protocol' exchanges, but you will notice that all of the transaction protocol specifications are documents a few pages long and include text (amongst other things)! This is for a good reason not just because folk like to show something for being at a standards meeting! To achieve interoperability and useful function the behaviour on message send and receive needs to be specified carefully as well as the message content and sequencing. In particularly the behaviour under communication and system failure conditions need to be specified. Again interoperability not just on the ability of peers to be able to send and receive messages (which can be done for any old message using CDL) but also on the correct behaviour of the implementation at each of the peer systems. So folk are going to have to choose which of the available application protocol and communication protocol (etc) specifications they are going implement and I am sorry to say I think that the WS-Choreography group just does not have enough clout to force that issue. More details for each point: (1). The following excerpts from WS-CDL Version 1.0 require a business transaction protocol, whether consciously intended or not: <excerpts> 2.5.2.2 Interaction Based Information Alignment In some Choreographies there may be a requirement that, at the end of an Interaction, the Roles in the Choreography have agreement of the outcome. [...] In WS-CDL an alignment Interaction MUST be explicitly used, in the cases where two interacting participants require the alignment of their States or their exchanged information between them...Their variable alignment comes from the fact that the requesting participant has to know that the accepting participant has received the message and the other way around, the accepting participant has to know that the requesting participant has sent the message before both of them progress. There is no intermediate variable, where one participant sends a message and then it proceeds independently or the other participant receives a message and then it proceeds independently. [...] 2.5.2.4 Interaction Life-line [...] An Interaction completes normally when the request and the response (if there is one) complete successfully. In this case the business documents and Channels exchanged during the request and the response (if there is one) result in the exchanged variable information being aligned between the two participants. An Interaction completes abnormally if the following faults occur: * The time-to-complete timeout identifies the timeframe within which an Interaction MUST complete. If this timeout occurs, after the Interaction was initiated but before it completed, then a fault is generated * A fault signals an exception condition during the management of a request or within a participant when accepting the request In these cases the variable information remain the same at the both Roles as if this Interaction had never occurred. </excerpts> The above excerpts declare requirements for an atomic business transaction protocol: all or nothing, uniform outcome for both participants. (2). You could hack something together than might work for limited purposes but why? The requirements are met by the Atomic variant of the OASIS Business Transaction Protocol (BTP) or the competitive specifications OASIS WS-CAF ACID and WS-Atomic Transaction. (3). All three of those business transaction protocols are essentially the same. From a protocol viewpoint, so are the Cohesive variant of BTP, WS-CAF Long Running Activity (LRA) and Business Process (BP), and WS-Business Activity. That makes six competing specifications which are all essentially the same thing. We think they will shake out to two, but the shakeout will take two years. In the meantime, if you need to use a transaction protocol, BTP is an approved and mature OASIS Committee Specification, moving swiftly to version 1.1, with at least three implementations including one open-source. (4). If you hack something together for state alignment, you will also need to hack something together for Finalization and also for coordinating more complex multi-party scenarios like TWIST. The same business transaction protocol can handle all of those use cases. We have a demo using BTP that's a lot like TWIST: <http://www.choreology.com/products/demo_securities.htm> http://www.choreology.com/products/demo_securities.htm To summarize: add transaction demarcation in a declarative fashion (Choreology have already contributed a proposal showing how to do this and plan to submit a revised proposal shortly. Let the business transaction protocols shake out and use the winner. Until then, there's BTP. Thanks, Tony Fletcher and Bob Haugen
Received on Thursday, 8 July 2004 17:41:06 UTC