- From: Steve Ross-Talbot <steve@enigmatec.net>
- Date: Tue, 2 Nov 2004 20:13:43 +0000
- To: WS-Choreography List <public-ws-chor@w3.org>
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 Wednesday, 3 November 2004 08:13:07 UTC