Two proposal for clarifying isolation levels in WS-CDL

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 Monday, 8 November 2004 18:51:43 UTC