Review of WS-CDL

Hello,

Here are my comments from a review of the WS-Choreography Description
Language Version 1.0 (http://www.w3.org/TR/2004/WD-ws-cdl-10-20041217/).

 

The review comments are grouped under 2 categories:

A. Comments on the WS-CDL specification as a choreography spec

B. Comments of editorial nature

 

Please note that many of the comments under 'Point of clarity' are a
result of reading the specification from beginning to end and coming
across sections of text that became clear only after later sections.

 

Yin Leng

 

-----------------------------------

A. Comments in general

-----------------------------------

 

1. Section 2.1, 1st bullet, last sentence.

   Point of clarity

   "A Participant Type is grouping together those parts of the
observable behavior that must be implemented by the same logical entity
or organization"

   Up to this point, all the previous Types (Role Type, Relationship
Type) have been defined in terms of "a party" whereas the definition of
the Participant Type is in terms of a "logical entity or organization".
There is no explanation on the relationship between "a party" and a
"logical entity or organization".  This explanation of a "Participant
Type" needs to be related to "a party".

 

2. Section 2.2.3, 5th paragraph.

   Point of clarity

   "Each definition type has its own name scope."

   What is a "definition type"?

 

3. Section 2.2.3, 6th paragraph.

   Point of clarity

   "Names within a name scope MUST be unique within a WS-CDL document."

   Is the phrase "within a name scope" irrelevant since the uniqueness
scope is "within a WS-CDL document"?

   That is, should it be "Each definition type name MUST be unique
within a WS-CDL document."?

 

4. Section 2.2.4, Title

   Point of clarity

   Although the title, "Language Extensibility and Binding", talks about
"Binding", the content of section 2.2.4 is only about Extensibility.

 

5. Section 2.3.2, 2nd last paragraph.

   Information model

   <role type="qname" behavior="list of ncname"? />

   Why is the Role Type of relationshipType defined differently from
<roleType> of section 2.3.1?

   It seems cleaner and more consistent for the Role Type of
relationshipType to be defined similarly to <roleType> of section 2.3.1.
All the text around the <role> element talks about "Role Type" anyway.

 

6. Section 2.3.2, 2nd last paragraph.

   Point of clarity

   <role type="qname" behavior="list of ncname"? />

   What is the relationship between the type attribute of this <role>
element, and the name attribute of <roleType> of section 2.3.1?

   Need a statement clarifying the relationship explicitly.

 

7. Section 2.3.2, last paragraph, 1st sentence.

   Information model

   "Within each role element, the OPTIONAL attribute behavior identifies
the commitment of a party as an XML-Schema list of behavior types
belonging to this Role Type."

   If the list of behavior types are those "belonging to this Role
Type", is this where a <role> is defined?

   Or is this <role> not the definition, but a reference to a Role Type
defined by <roleType>?

   If it is the latter, how is this "list of behavior types" related to
the <behavior> element of <roleType>?

   Should this "list of behavior types" be constraint to be a subset of
the <behavior> elements of <roleType>?

 

8. Section 2.3.3, 3rd paragraph, 2nd sentence.

   Point of clarity

   <role type="qname" />+

   "Each Role Type is specified by the type attribute of the role
element"

   What is the relationship between this <role> element and the <role>
element of <relationshipType> of section 2.3.2?

   Need a statement clarifying the relationship explicitly rather than
just by example.

 

9. Section 2.3.3, 3rd paragraph, 2nd sentence.

   Point of clarity

   <role type="qname" />+

   "Each Role Type is specified by the type attribute of the role
element"

   What is the relationship between the type attribute of this <role>
element, and the name attribute of <roleType> of section 2.3.1?

   Need a statement clarifying the relationship explicitly rather than
just by example.

 

10. Section 2.3.3, 3rd paragraph, last sentence.

   Question on constraint

   "A specific Role Type MUST NOT be specified in more than one
participantType element."

   What is the reason for this restriction?

   It would be reasonable to expect an organization to be more than one
Participant Type, where these Participant Types have a common Role Type.

 

11. Section 2.3.4, 5th last paragraph.

   Missing descriptive text

   <role  type="qname"  behavior="ncname"? />

   "The element role is used to identify the Role Type of a party, being
the target of an information exchange, which is then used for statically
determining where and how to send or receive information to or into the
party."

   There is no descriptive text to explain the behavior attribute.

   Need a statement clarifying the purpose and value of the behavior
attribute.

 

12. Section 2.3.4, 4th last paragraph.

   Information model

   "The element reference is used for describing the reference type of a
party ..."

   What is the "reference type" of a party?

   Where is a "reference type" defined?

 

13  Section 2.3.4, 3rd last paragraph, last sentence.

   Information model

   "The identity and the different conversations are distinguished by a
set of Tokens as specified by the name attribute of the token element
within the identity element."

   Given just the token names of the <identity> element, how does one
distinguish between what is a name of an identity, and what is a name of
a conversation?

 

14. Section 2.3.4, 2nd last paragraph, 1st sentence.

   Question on constraint

   "If two or more Channel Types SHOULD point to Role Types that MUST be
implemented by the same logical entity or organization, then the
specified Role Types MUST belong to the same Participant Type."

   This restriction means that if channel type is present in an
organization, then only one participant type is allowed.

   What is the reason for this restriction?

   It would be reasonable to expect an organization to be more than one
Participant Type.

 

15. Section 2.4.2, 1st paragraph.

   Missing descriptive text on Information model

   There are only 3 bullets, when there are 4 types of Variables.
Missing description on Exception Capturing Variables (mentioned in 8th
last paragraph).

 

16. Section 2.4.3.1, 1st function, 1st sentence.

   Point of clarity

   "Returns the current time at the caller for the Role specified by
roleName ..."

   There is only one point in time that is current time for either the
caller or for the Role.

   Should the description be "Returns the current time for the Role
specified by roleName ..."?

   Alternatively, the function should be changed to

   

   xsd:time getCurrentTime() 

 

   Returns the current time at the caller. 

 

17. Section 2.4.3.1, 2nd function, 1st sentence.

   Point of clarity

   "Returns the current date at the caller for the Role specified by
roleName  ..."

   There is only one point in time that is current date for either the
caller or for the Role.

   Should the description be "Returns the current date for the Role
specified by roleName ..."?

   Alternatively, the function should be changed to

   

   xsd:time getCurrentDate() 

 

   Returns the current date at the caller. 

 

18. Section 2.4.3.1, 3rd function, 1st sentence.

   Point of clarity

   "Returns the current date and time at the caller for the Role
specified by roleName  ..."

   There is only one point in time that is current date and time for
either the caller or for the Role.

   Should the description be "Returns the current date and time for the
Role specified by roleName ..."?

   Alternatively, the function should be changed to

   

   xsd:time getCurrentDateTime() 

 

   Returns the current date and time at the caller. 

 

19. Section 2.4.3.1, 4th function, 1st sentence.

   Point of clarity

   "...the duration specified by elapsedTime at the caller for the Role
specified by roleName ..."

   Is the duration specified by the caller or by Role?

 

20. Section 2.4.3.1, 9th function, 1st sentence.

   Point of clarity

   "Returns "true" if within a Relationship specified by
relationshipName the Variable with name varName residing at the first
Role of the Relationship has aligned its information ..."

   What is the meaning or definition of alignment?

 

21. Section 2.4.3.1, 2nd last function, 1st sentence.

   Point of clarity

   "Combines expressions that include Variables ..."

   In what way are expressions combined?

   How is the combination of expresssions related to the "globalized
Trigger" (name of the function)?

   Where or what is the Trigger in relation to the parameters of this
function?

 

22. Section 2.5.2.3, 11th paragraph, 3rd bullet.

   Point of clarity

   "... then the Variable specified within the send element using the
variable attribute MUST be defined at the fromRole and the Variable
specified within the receive element using the variable attribute MUST
be defined at the toRole"

   How are these Variables defined at the fromRole and at the toRole?

   By the roleTypes attribute of <variable>?

   Need a statement clarifying the variable definitions and whether
Variable definitions without a Role Type (as explained in section 2.4.2,
2nd last paragraph) is permitted.

 

23. Section 2.5.2.3, 11th paragraph, 4th bullet.

   Point of clarity

   "... then the Variable specified within the send element using the
variable attribute MUST be defined at the toRole and the Variable
specified within the receive element using the variable attribute MUST
be defined at fromRole"

   How are these Variables defined at the toRole and at the fromRole?

   By the roleTypes attribute of <variable>?

   Need a statement clarifying the variable definitions and whether
Variable definitions without a Role Type (as explained in section 2.4.2,
2nd last paragraph) is permitted.

 

24. Section 3

   Incomplete

 

25. Section 8

   Incomplete

 

 

-----------------------------------

B. Comments of editorial nature

-----------------------------------

 

1. Section 1, 1st para, 1st sentence.

   Typographical error   

   Replace

   "organizations have being developing"

   with

   "organizations have been developing"

 

2. Section 1.5, 1st para, 1st sentence.

   Replace

   "A Choreography Description Language"

   with

   "The Choreography Description Language"

 

3. Section 2.1, 3rd bullet, 3rd sub-bullet, 1st sentence.

   Point of clarity

   Should the sentence

   "A Finalizer Block describes how to specify additional interactions
that ..."

   be changed to

   "A Finalizer Block specifies additional interactions that ..."?

 

4. Section 2.2.2, 2nd para, last sentence.

   Typographical error   

   Replace

   "... as well as semantic ;checks, ..."

   with

   "... as well as semantic checks, ..."

 

5. Section 2.2.2, 2nd para, last sentence.

   Replace

   "... such as unicity  ..."

   with

   "... such as uniqueness  ..."

 

6. Section 2.2.2, example code, <variable> element, role attribute.

   Typographical error   

   Replace

   role="randomRome"

   with

   role="randomRole"

 

7. Section 2.2.2, example code, 2nd <xi:include> element, xpointer
attribute.

   Missing closing "   

   Replace

   xpointer="xpointer(//choreography/variable[1]) 

   with

   xpointer="xpointer(//choreography/variable[1])"

 

8. Section 2.2.5, 1st para, 2nd sentence.

   Change font to courier   

   "description"

 

9. Section 2.2.5, 1st para, 3rd sentence.

   Point of clarity

   Replace

   "... of the description."

   with

   "... of the description sub-element."

 

10. Section 2.3.4, 3rd last paragraph, 1st sentence.

   Change font to courier   

   "identity"

 

11. Section 2.4.2, 5th last paragraph, 1st sentence.

   Change font to courier   

   "free"

 

12. Section 2.4.3.1, 1st function, 1st sentence.

   Typographical error   

   Replace

   ... about it,s own time 

   with

   ... about it's own time

 

13. Section 2.4.3.1, 2nd function, 1st sentence.

   Typographical error   

   Replace

   ... about it,s own date 

   with

   ... about it's own date

 

14. Section 2.4.3.1, 3rd function, 1st sentence.

   Typographical error   

   Replace

   ... about it,s own date/time 

   with

   ... about it's own date/time

 

15. Section 2.4.3.1, 4th function, 1st sentence.

   Typographical error   

   Replace

   Returns "true" if, (a) used in a guard ... 

   with

   Returns "true" if (a) used in a guard ...

 

16. Section 2.4.3.1, 4th function, 1st sentence.

   Grammar   

   Replace

   ... either the guard or the repetition condition were enabled  ... 

   with

   ... either the guard or the repetition condition was enabled  ...

 

17. Section 2.4.3.1, 5th function, 1st sentence.

   Typographical error   

   Replace

   Returns "true" if, (a) used in a guard ... 

   with

   Returns "true" if (a) used in a guard ...

 

18. Section 2.4.3.1, 5th function, 1st sentence.

   Grammar   

   Replace

   ... either the guard or the repetition condition were enabled  ... 

   with

   ... either the guard or the repetition condition was enabled  ...

 

19. Section 2.5.2.3, 10th paragraph, 1st bullet.

   Missing word "from" 

   Replace

   When the action attribute is set to "request", then the information
exchange happens fromRole to toRole 

   with

   When the action attribute is set to "request", then the information
exchange happens from fromRole to toRole

 

20. Section 2.5.2.3, 11th paragraph, 7th bullet.

   Change font to courier   

   "receive"

 

21. Section 2.5.2.3, 11th paragraph, 11th bullet, 1st sub-bullet.

   Change font to courier   

   "send"

 

22. Section 2.5.2.3, 11th paragraph, 11th bullet, 2nd sub-bullet.

   Change font to courier   

   "send"

 

23. Section 2.5.2.3, 12th paragraph, 1st sentence.

   Replace   

   "... or the deadline before an Interaction MUST complete."

   with

   "... or the deadline before which an Interaction MUST complete."

 

24. Section 2.5.2.3, 13th paragraph, 1st sentence.

   Replace   

   "The OPTIONAL element record is used ..."

   with

   "The OPTIONAL record element is used ..."

 

25. Section 2.5.2.3, 13th paragraph, 2nd bullet.

   Change font to courier   

   "source"

 

26. Section 2.5.2.3, 15th paragraph, 6th bullet.

   Change font to courier   

   "record"

 

 

27. Section 2.5.2.3, 15th paragraph, 7th bullet.

   Change font to courier   

   "record"

 

28. Section 2.5.2.3, 15th paragraph, 9th bullet.

   Change font to courier   

   "record"

 

29. Section 2.5.2.3, 15th paragraph, 9th bullet.

   Change font to courier   

   "record"

   Note two instances of "record" element in one sentence.

 

30. Section 2.5.2.3, 15th paragraph, 10th bullet, 2nd sub-bullet.

   Change font to courier   

   "record"

 

31. Section 2.5.3, 1st paragraph, 2nd bullet.

   Replace   

   "An "Order Placement" Choreography, where the "Buyer" Role places and
order ..."

   with

   "An "Order Placement" Choreography, where the "Buyer" Role places an
order ..."

 

------------------------------------------------------

 

 

Received on Wednesday, 19 January 2005 18:03:30 UTC