Authors:
Nickolaos Kavantzas (Oracle)
Ashwini Surpur (Oracle)
Version:
V1.0 (date: Oct 17th 2003)
Charter Constraints
D-CR-001
All specified choreography descriptions MUST be compatible with WSDL 1.2.
BurdettML - NA
The spec defines an abstract choreography. A separate binding is required to map to WSDL
OracleCDL - Met
The spec is a WSDL 1.2 based language
Sep 16th Comment
Our Comment
D-CR-014
A choreography SHOULD not be bound to any specific implementation.
BurdettML Met
The spec defines an abstract choreography and so is implementation independent
OracleCDL Met
The abstract part is separate from binding part. So is implementation independent.
Sep 16th Comment Wordsmithing "Implementation"
Our Comment -
Interoperability
D-CR-010
A choreography MAY provide an extensible binding mechanism such that choreographies could be bound to diverse technologies.
BurdettML NA
The spec defines an abstract choreography. However it is designed to be used with a binding mechanism but does not define one
OracleCDL Met
The spec though focuses on WSDL, it is abstract enough to allow binding to different technologies.
Sep 16th Comment Wordsmithing needed (binding mechanism, diverse technology)
Our Comment Is this is the case, then what is the meaning of MUST be compatible with WSDL 1.2(conflicting?)
D-CR-023
A choreography definition language MUST NOT be restricted to any single implementation.
BurdettML - Met
The spec defines an abstract choreography and so is implementation independent
OracleCDL Met
Abstract enough.
Sep 16th Comment Wordsmithing
Our Comment - duplicate of 14
Management & Provisioning
D-CR-004
It MUST be possible to query the state of a choreography.
BurdettML - Not Met
The spec specifies the states that may exist when performing a choreography but does not specify how to query them.
OracleCDL Not Met
Sep 16th Comment - Further discussion; contentious
Our Comment Who must query the state? The peers? Why? I must know what state I am in, right?
D-CR-052
It MUST be possible to manage choreographies and their relationships and the messages exchanged between them.
BurdettML - Don't know. What is meant by "manage" in this context.
OracleCDL - Ditto
Sep 16th Comment Clarification
Our Comment - Ditto
D-CR-053
It MUST be possible to observe the state of a choreography as it occurs in time.
BurdettML Not Met
The spec specifies the states that may exist when performing a choreography but does not specify how to observe them.
OracleCDL Not Met
Sep 16th Comment Wordsmithing
Our Comment Who must be able to observe the state? How is it different from issue 004?
D-CR-056
It MUST be possible to create "limited global views" of a choreography, where not all interactions are presented
BurdettML - Not Met
The spec allows choreographies to be extended but does not define how to create restricted views.
OracleCDL Partially Met
We have compositions which allow a Business Analyst to compose the choreographies such that a limited view is possible.
Sep 16th Comment Reclassify (Composition)
Our Comment Are we corrected assuming compositions allow limited global view to be presented if properly designed?
D-CR-013
A choreography MUST support for a specific observer role.
BurdettML Not Met
There is no separate observer role
OracleCDL - Ditto
Sep 16th Comment Delete; Implementation
Our Comment - Ditto
D-CR-016
A choreography MUST provide a global model for presenting its interactions from the point of view of all the parties and not from the point of view of just one party.
BurdettML Met
Fully supported.
OracleCDL - Met
Sep 16th Comment Reclassify("Charter Constraint")
Our Comment -
D-CR-020
It MUST be possible and practicable to store instances of use of choreographies in a repository, and to be a able to search for such instances and to retrieve them.
BurdettML Not Met
The spec defines an abstract choreography and does describe or define *instances* of choreographies or how to manage or use them.
OracleCDL Not Met
Sep 16th Comment Delete; implementation feature not part of the language
Our Comment - Ditto
Exception Handling
D-CR-005
A choreography MUST provide exception handling that allows propagation of errors.
BurdettML Partially Met
The spec allows definitions of states that are error states but does not define how those states are propagated.
OracleCDL Met
Exception handling and propagation across choreography boundaries is defined.
Sep 16th Comment Wordsmithing
Our Comment -
D-CR-009
A choreography MUST provide the ability to transition to a distinct state when a timeout occurs.
BurdettML Partially Met
The spec would allow the specification choreographies with states that corresponded to a timeout.
OracleCDL - Partially Met
Interaction timeouts are supported. Choreography timeout is not specified.
Sep 16th Comment Clarification
Our Comment Ditto
D-CR-018
A choreography SHOULD define a standardized way to recover from catastrophic failure.
BurdettML Not Met
Although a choreography could be defined that
allowedattempts at a recovery
from a catastrophic failure.
OracleCDL Partially Met
Forward and backward recovery is defined. But we do not specify catastrophic failures explicitly.
Sep 16th Comment Clarification; Leave till later
Our Comment - Ditto
D-CR-026
A choreography MUST support robust exception handling.
BurdettML - Not Met
Although there has been some discussion on the list on how it could be extended to do this.
OracleCDL - Met
Sep 16th Comment Clarify in conjunction with CR-005
Our Comment - Ditto
D-CR-027
Error/fault handling and compensation features MUST to be able to be expressed in the choreography definition language.
BurdettML Met
The spec allows states to be defined that
correspond to errors or faults. The existence of these states allows the
definition of the compensation interactions and messages required.
OracleCDL Met
It is an extension of 005 and/or 026.
Sep 16th Comment Clarification("Do we need to distinguish")
Our Comment - Ditto
D-CR-030
A choreography MUST be able to distinguish error and regular state transitions, and to describe unhandled exceptions.
BurdettML Partially Met
Only Met in the sense that semantic
definitions associated with a state can identify them as regular or error.
There is no attribute that identifies this.
OracleCDL Met on part a, Partially Met on part b of the requirement
Normal states are distinguished from exception states.
No implicit exception handling mentioned in the doc.
Sep 16th Comment Clarification on unhandled exceptions
Our Comment - Ditto
D-CR-031
A choreography MUST support an exception condition for Delivery Failure - The message was sent but was (probably) not received.
BurdettML Partially Met
Only Met in the sense that semantic definitions associated with a state can identify them as regular or error. There is no attribute that identifies this.
OracleCDL Partially Met
Ditto
Sep 16th Comment Duplication candidate
Our Comment
D-CR-032
It MUST be possible to manage exceptions between choreographies, and to include exception handling information in dependency management.
BurdettML - Don't know. What is meant by "exceptions between choreographies" in this context?
OracleCDL - Met
Sep 16th Comment Clarification on propagation
Our Comment Clarification or duplicate
D-CR-033
A choreography MUST provide support for defining behavior of the system, when valid error/exception messages arrive for choreography instances after their completion (or before their initiation).
BurdettML Met
The spec would allow the definition of a
condition where a message was received after the instance was complete.
Interactions/messages could then be defined that would follow.
OracleCDL Not Applicable
Sep 16th Comment Deletion
Our Comment - Deletion. Implementation issue.
D-CR-043
It MUST be possible to differentiate errors (unknown and fatal) and exceptions (known and potentially recoverable) in the context of choreography.
BurdettML Met
Exceptions and errors are defined as a state and a state is completely flexible in its definition and meaning.
OracleCDL Met
State is flexible enough to cover these aspects
Sep 16th Comment Deletion; Further Discussion
Our Comment Errors are programming concept. Exceptions are language concept. Why should the language care about errors?
D-CR-061
A choreography MUST provide the ability to transition to a predefined state when an exception occurs.
BurdettML Met
The spec would allow the definition of a choreography that transitioned to a state when an exception occurred.
OracleCDL Met
Sep 16th Comment Duplicate
Our Comment Duplicate of 26, Handling exception means transitioning to a distinct state right?
D-CR-064
If a process detects that a choreography is not being followed correctly, then the process SHOULD be able to use the choreography definition to identify exactly what went wrong.
BurdettML Met
The spec is designed so that the choreography definition can be used for this purpose
OracleCDL Met
Sep 16th Comment Reclassify to Management and mild word smithing
Our Comment - Reclassify to Management and mild word smithing
D-CR-065
A choreography definition language MUST support the following exception: message format error -the components of the message were not validly constructed.
BurdettML Met
The spec allows the specification of a state that corresponds to this.
OracleCDL Met
Sep 16th Comment Deletion candidate
Our Comment Implementation detail or should we define standard Exceptions in the language?
D-CR-066
A choreography definition language MUST support the following exception: message Content structure error.
BurdettML Met
See response to D-CR-065
OracleCDL Met
Sep 16th Comment Deletion candidate
Our Comment Implementation detail or should we define standard Exceptions in the language?
D-CR-067
A choreography definition language SHOULD support exceptions whereby a given service component could be sent at any point in the transaction.
BurdettML Met
The spec is completely flexible in terms of the conditions that apply when sending any message.
OracleCDL Met
Sep 16th Comment Clarification (We don't understand any of these)
Our Comment Ditto
D-CR-068
Exception types MUST be limited to the ones that will be used in the choreography definition language.
BurdettML - Partially Met
Different exception types can be defined as states. However, standard exception types are not defined.
OracleCDL Partially Met
Different exception types can be defined as states. However, standard exception types are not defined.
Sep 16th Comment Deletion candidate
Our Comment Clarification
D-CR-069
It MUST be possible to model different states for termination of the choreography (e.g. failure and success).
BurdettML Met
Although the semantic definitions are used to identify which present failure and which success.
OracleCDL Met
Sep 16th Comment Duplication candidate
Our Comment
D-CR-070
A choreography definition language MUST support the following exception: transmission error -message not sent.
BurdettML Met
See response to D-CR-065
OracleCDL Met
Sep 16th Comment Deletion candidate
Our Comment Implementation detail or should we define standard Exceptions in the language?
Messaging and Protocols
D-CR-002
A choreography MUST be independent of message formats.
BurdettML Met
Fully supported.
OracleCDL Met
Sep 16th Comment Wordsmith (Chor vs CDL)
Our Comment Ditto
D-CR-007
A choreography SHOULD express the types of messages a participant may send, and the types of messages/responses the participant should anticipate receiving from the other participant(s) (including time-outs) based on the apparent state of the exchange.
BurdettML Met
Fully supported.
OracleCDL Met
Sep 16th Comment Wordsmith (Must, apparent state of the exchange)
Our Comment
D-CR-011
A choreography SHOULD describe exchanges of information that change the state of the process.
BurdettML Met
Fully supported.
OracleCDL Met
If the term process state means only observable state, then we support this.
Sep 16th Comment Duplication (merge with 007)
Our Comment We believe that manipulation of non-observable state MUST not be supported in a choreography language.
D-CR-029
A choreography MUST support some standard taxonomy of messages, such as a business messages, generic error reporting messages and acknowledgement messages.
BurdettML - Not Met
There is no taxonomy of message types as all messages are treated equally although all the different types of messages could be defined.
OracleCDL Not met
Sep 16th Comment Deletion candidate
Our Comment Should be deleted
D-CR-035
It MUST be possible to model message flows that repeat, based on information within the messages (for instance, the contract negotiation protocol).
BurdettML Met
Looping of messages is possible
OracleCDL Met.
Sep 16th Comment Further discussion
Our Comment
D-CR-039
It MUST be possible to describe a sequence of communications among choreographies.
BurdettML Met
Sequences of messages can be defined
OracleCDL Met
Sep 16th Comment Deletion candidate; Clarification (among chor) and duplicate
Our Comment
D-CR-051
A choreography definition language MUST provide a construct that describes the sending of a single message.
BurdettML Met
A choreography consisting of a single message could be defined
OracleCDL Met
A choreography block can be defined with a single react activity (that has no guard) and within the react there is a single interact activity.
Sep 16th Comment Deletion Candidate
Our Comment Deletion Candidate
D-CR-055
It SHOULD be possible to define a choreography the uses a callback mechanism.
BurdettML - Not Met
There is no direct support for call back although it could be included in a binding of a choreography to an implementation
OracleCDL Met
The use of channel state and channel passing between participants allows a callback to be supported.
Sep 16th Comment Wordsmithing
Our Comment This is the fundamental requirement of a Choreograpgy Language.
D-CR-060
It MUST be possible to define choreography without having to specify the contents of the messages being used.
BurdettML Met
Fully supported using Message Families.
OracleCDL Met
Fully supported using DocumentType.
Sep 16th Comment Duplicate
Our Comment
Interfaces
D-CR-015
A choreography MUST provide the ability to have prose associated with it to enable its behaviour to be explained.
BurdettML Met
Many different parts of the choreography can have text in multiple languages defined to describe the semantics.
OracleCDL Met
Many different language elements, within Oracles WS-CDL proposal, can have documentation text and semantics may be defined as specified by the proposal.
Sep 16th Comment
Our Comment
D-CR-044
A choreography MUST enable information hiding.
BurdettML - Don't know. What is "information hiding" in this context?
OracleCDL Don't know. What is "information hiding" in this context?
Sep 16th Comment Wordsmith (Information hiding vs Segmentation)
Our Comment Wordsmith (Information hiding vs Segmentation)
Transaction
D-CR-017
A choreography SHOULD enable a agreement or agreement(s) that provides the business context of the choreography definition.
BurdettML - Partially Met
Business context could be included in the definition of a state that triggers the processing of the different parts of the choreography.
OracleCDL Partially Met
Any context could be included in the definition of a state.
Sep 16th Comment Candidate for deletion; Reclassify
Our Comment What is a business context?
D-CR-037
It MUST be possible to describe a behavior recursively.
BurdettML - Not Met
There is no composition facility defined.
OracleCDL Met
Sep 16th Comment Reclassify ("Composition"); Wordsmith (What not how)
Our Comment
D-CR-038
It MUST be possible to describe conditional behaviour for a choreography.
BurdettML Met
Using the "precondition" on each interaction
OracleCDL Met
Using a react activity with a guard.
Sep 16th Comment Further Discussion; Reclassify ("Composition"); Wordsmith (What not how)
Our Comment
D-CR-048
It MUST be possible to describe a choreography in terms of its messaging behaviour.
BurdettML Met
The spec defines messaging behaviour.
OracleCDL Met
The proposal defines a messaging behaviour atop of a Web Services message exchange pattern.
Sep 16th Comment Duplicate
Our Comment MEPS(one way request and request/response] should be bare minimum that CDL should support.
D-CR-057
It MUST be possible to define multi-party interaction.
BurdettML Met
There can be any number of roles specified, each of which can be mapped to a different party.
OracleCDL Met
There can be any number of roles specified, each role can be mapped to a different participant.
Sep 16th Comment Reclassify
Our Comment
D-CR-058
It MUST be possible for a choreography to modify its behaviour based on its operational context.
BurdettML Met
This can be Met by defining the semantics associated with states.
OracleCDL Met
This can be Met by defining the semantics associated with state variables.
Sep 16th Comment Deletion candidate
Our Comment What is operational context v/s business context?
D-CR-059
It MUST be possible to describe negotiation between web services participating in a choreography, where the result of a transaction may depend on repeated iterations of an ask/answer cycle.
BurdettML Met
A choreography with these characteristics could be defined
OracleCDL Met
A choreography with these characteristics could be defined
Sep 16th Comment Clarification (of use case)
Our Comment
Composition
D-CR-003
A choreography MAY have run time changes which allow the actual participants to vary.
BurdettML - Partially Met
The spec only defines an abstract choreography. A binding could probably created that allowed this type of behavior.
OracleCDL Met
Using channel instantiation.
Sep 16th Comment
Our Comment Instantiation of a role is a requirement for CDL.
D-CR-006
It MUST be possible to describe choreographies as a composition of other choreographies.
BurdettML - Not Met. There is no composition capability.
OracleCDL Met
Sep 16th Comment Duplication (KL: important requirement)
Our Comment
D-CR-019
It MUST be possible to make a choreography C2 dependent on another choreography C1 such that you can only create a new instance of C2 after a related instance of C1 has been completed.
BurdettML Met
You can specify that the following of one choreography is dependent on the following of an earlier one.
OracleCDL Met
We can use guards in react in one choreography to depend on a state that another choreography has populated
Sep 16th Comment
Our Comment
D-CR-024
It MUST be possible to dynamically determine the participants in a choreography at runtime.
BurdettML - Partially Met
The spec only defines an abstract choreography. A binding could probably created that allowed this type of behavior.
OracleCDL Met
Sep 16th Comment Duplicate with 003; Leave in
Our Comment Duplicate with 003
D-CR-034
Choreographies MUST be composable into a hierarchy.
BurdettML - Not Met. There is no composition capability.
OracleCDL Met
Sep 16th Comment duplicate? About composition of Choreographies - clarify heirarchy in this req
Our Comment Ditto
D-CR-036
Choreographies SHOULD be able to call other choreographies in a hierarchical fashion.
BurdettML - Not Met
There is no composition capability.
OracleCDL Met
Sep 16th Comment Clarification: Dynamic whereas 34 is static design time? But seem to be related - agreed needs clarification
Our Comment
D-CR-040
It MUST be possible to describe parallel composition of services.
BurdettML - Not Met
There is no composition capability.
OracleCDL Met
Sep 16th Comment Clarification
Our Comment Ditto
D-CR-041
It MUST be possible to model events that are strictly related in time, as well as those that are unrelated in time - i.e. parallelism or partial ordering.
BurdettML Met
Messages can occur in parallel or partially ordered.
OracleCDL Met
Fully supported Using the react construct, interact activities can be un-ordered or partially ordered of fully ordered. Ability to guard on a state at one role or on aligned state at 2 roles within a relationship.
Sep 16th Comment Clarification
Our Comment Ditto.
D-CR-042
A choreography MAY have run time changes which allow the behaviour of the actual choreography to vary based on state.
BurdettML Met
The spec defines states that can be used to control the choreography being followed
OracleCDL Met
Using the react construct with a guard condition.
Sep 16th Comment Clarification: Not understood - major clarification required
Our Comment Duplicate of 38
D-CR-047
It MUST be possible to define a new choreography by "extending" an existing one.
BurdettML Met
The spec defines how to extend a choreography.
OracleCDL Met
Composition allows modeling this concept.
Sep 16th Comment Reclassify("Reuse")
Our Comment
D-CR-054
A choreography SHOULD express the composition of participant web services into a new service.
BurdettML - Not Met
The spec defines an abstract choreography - a binding to a web service would be
OracleCDL Not Met
Sep 16th Comment Delete
Our Comment We do not believe that the composition should result into a new web service.
D-CR-062
It MUST be possible to dynamically add sub-choreographies to a "running" choreography.
BurdettML Not Met
However I think this is a "business
process" rather than a choreography problem
OracleCDL Not Met
Sep 16th Comment Remit to a V2
Our Comment - Clarification
Testing and Validation
D-CR-008
An implementation of a process that is following a choreography MUST be able to verify that the choreography is being followed correctly as specified in the choreography definition.
BurdettML Met
The definitions produced according to the
spec are designed to be used so that checking that a choreography is being
followed correctly is possible.
OracleCDL Met
Sep 16th Comment Duplication; Wordsmithing ("needs to mention viewpoint")
Our Comment clarification/duplicate of 64?
D-CR-049
It MUST be possible to validate a choreography definition for correct behaviour at the time it is designed.
BurdettML Don't know.
This can only be done by a review process. There problem is that in order to do this you already need a definition of "correct behavior" however "correct behavior is what the choreography definition is supposed to define.
OracleCDL - Ditto
Sep 16th Comment Remit to a V2
Our Comment - Delete
D-CR-050
It MUST be possible to validate a choreography definition for correct behaviour at the time it is in operation.
BurdettML Met
The spec is defined to support this.
OracleCDL Met
Duplicate of 64 and 8
Sep 16th Comment Duplication: Wrong way around also a duplicate
Our Comment - Ditto
Ease of Use
D-CR-012
A choreography MUST be uniquely named.
BurdettML Met
Each choreography definition is given a URI.
OracleCDL - Met
Sep 16th Comment Reclassify - semantics
Our Comment -
Support for Semantics
D-CR-025
There SHOULD be a distinction between a "participant" and a "role", where the participants might be dynamic but the roles need not be required to realize this.
BurdettML Not Met
The spec just defines roles. Participants could be defined in the binding.
OracleCDL Met
Role and Channels are supported.
Our Comment