- From: Gary Brown <gary@enigmatec.net>
- Date: Thu, 4 Nov 2004 12:07:44 -0000
- To: "WS-Choreography List" <public-ws-chor@w3.org>
The issue I have with the current text, which I believe is also an issue in your proposed new text, is that a locking mechanism would be required to prevent enclosed choreographies overwriting variables being modified within an isolation level of "dirty-read" or "immediately-visible". The approach used in other parts of the spec may be more appropriate - e.g. in assignment, if the activity does not complete successfully, then any changes made to variables during that activity will not be made visible - however, there is no locking mechanism to prevent concurrent activities from also attempting to set the same variables. Therefore possibly a choreography should also only support two modes - changes are either immediately applied or await the successful completion of the choreography. This would avoid any need to support a locking mechanism, and would ensure consistency in the way changes are applied (and become visible) across the CDL specification. Regards Gary ----- Original Message ----- From: "Steve Ross-Talbot" <steve@enigmatec.net> To: "WS-Choreography List" <public-ws-chor@w3.org> Sent: Tuesday, November 02, 2004 8:13 PM Subject: Proposal on isolation levels in WS-CDL > > Gary, > > enclosed is my proposal for isolation levels. > > The specification today says: > > "The optional isolation attribute specifies when a variable information > that is defined in an enclosing and changed within an enclosed > Choreography is visible to its enclosing and sibling Choreographies: > > · When isolation is set to "dirty-write", the variable information can be > immediately overwritten by actions in other Choreographies > > · When isolation is set to "dirty-read", the variable information is > immediately visible to other Choreographies > > When isolation is set to "serializable", the variable information is > visible to other Choreographies only after this Choreography has ended > successfully" > > The first point I want to make is that the text itself is most unclear as > to what the visible scope is for a variable given it's isolation level. > The second point I want to make is that it is unclear as to what the > purpose of isolation levels really is. > > How can we resolve this? We can do it in one of two ways. The first way is > to clarify the text so that the purpose and semantics of the isolation > levels is made clearer (Proposal One) and the second (Proposal Two) > assumes a particular use of isolation levels which, if accepted, could be > simplified into visible scopes. > > *** Proposal One *** > Retain isolation levels but replace the existing text (above) with the > following: > > "The purpose of the the isolation attribute is to define the visible scope > of a variable. That is it describes when changes to > a variable defined within the enclosing choreography are visible to > enclosed choreographies. In this context an enclosing choreography is > defined as the out-most defined choreography relative to the enclosed > choreography. An enclosing choreography is the one in which the variable > is defined. An enclosed choreography is a choreography that is enclosed by > the enclosed choreography such that it changes a variable defined in the > enclosing choreography. A sibling choreography is an enclosed choreography > that has a common outer-choreography that is shared with the other > enclosing choreographies such that the variable is not changed but may be > accessed. > > The optional isolation attribute specifies when a variable information > that is defined in an enclosing and changed within an enclosed > Choreography is visible to its enclosing and sibling Choreographies: > > · When isolation is set to "dirty-write", the variable information can be > immediately overwritten by actions in other enclosed choreographies. > > · When isolation is set to "dirty-read", the variable information is > immediately visible to other enclosed and sibling choroegraphies but > cannot be over written. > > When isolation is set to "serializable", the variable information is > visible to other enclosed and sibiling only after the enclosed > choreography changing the variable has ended successfully. If the optional > isolation attribute is not present then variable information defined > within in either and enclosing, sibling or enclosed choreographies > defaults to serializable". > > > *** Proposal Two *** > Remove isolation levels and add the following scope attribute to variable > definitions with the enclosed text: > > Replace "isolation" with "visible-scope". > Replace "dirty-write" with "immediately-available" > Replace "dirty-read" with "immediately-visible" > Replace "serializable" with "locally-available" > > Replace the modified text above with: > "The purpose of the the visible-scope attribute is to define the visible > scope of a variable. That is it describes when changes to > a variable defined within the enclosing choreography are visible to > enclosed choreographies. In this context an enclosing choreography is > defined as the out-most defined choreography relative to the enclosed > choreography. An enclosing choreography is the one in which the variable > is defined. An enclosed choreography is a choreography that is enclosed by > the enclosed choreography such that it changes a variable defined in the > enclosing choreography. A sibling choreography is an enclosed choreography > that has a common outer-choreography that is shared with the other > enclosing choreographies such that the variable is not changed but may be > accessed. > > The optional visible-scope attribute specifies when a variable information > that is defined in an enclosing and changed within an enclosed > Choreography is visible to its enclosing and sibling Choreographies: > > · When visible-scope is set to "immediately-available", the variable > information can be immediately overwritten by actions in other enclosed > choreographies. > > · When visible-scope is set to "immediately-visible", the variable > information is immediately visible to other enclosed and sibling > choroegraphies but cannot be over written. > > · When visible-scope is set to "locally-available", the variable > information is visible to other enclosed and sibiling only after the > enclosed choreography changing the variable has ended successfully, hence > changes to the variable are "locally available" and not available outside > of the choreography that made the changes until that choreography > completes successfully. > > If the optional visible-scope attribute is not present then variable > information defined within in either and enclosing, sibling or enclosed > choreographies defaults to "locally-available". > >
Received on Thursday, 4 November 2004 12:08:01 UTC