Scribble.orgCommunity Documentation
Each of the different types will be discussed further in the following sub-sections.
The properties of the channel type are:
Property | Description |
---|---|
Name | The name of the channel type |
Description | Longer descriptive text to explain the purpose of the type within the choreography |
Action | This property defines whether the channel type supports "request/response" or just "request" or just "response" messages |
Role Type | This property identifies the destination role type associated with the channel type - this role type is effectively the provider of the service |
Behavior | This field defines the optional behavior, within the identified role, that this channel type is associated with |
Reference Token | This field identifies the type of the service endpoint reference |
Usage | This field identifies the permitted usage pattern for the instances of this channel type - "once" means that only a single interaction can be performed on a channel instance, "unlimited" means that it can be used any number of times |
Property | Description |
---|---|
Name | The name of the channel type |
Description | Longer descriptive text to explain the purpose of the passed channel restrictions |
Action | This property defines whether the channel type can be passed within both a request/response, or only in either a request or a response |
Channel | The channel type being passed |
New | Whether the passed channel is being created, and the 'client' end of this new channel is being passed to enable the other end of the current channel instance to be able to 'callback' the participant sending the passed (newly created) channel instance |
Property | Description |
---|---|
Name | The name of the information type |
Description | Longer descriptive text to explain the purpose of the type within the choreography |
Element Name | Refers to an XML Schema element |
Type Name | Refers to an XML schema simple type, or a WSDL1.1 message type |
A Token is simply an alias for a piece of information of a particular type.
Property | Description |
---|---|
Description | Longer descriptive text to explain the purpose of the token locator |
Information Type | The information type that is being examined to retrieve the information associated with the token |
Part | If the information being examined to extract the token field is a WSDL1.1 message, then this optional part name can identify the appropriate part of a multipart message |
Query | The XPath expression used to extract the field from the source information |
Token | The token representing the data to be extracted |
The list of activities within the choreography description are described in this section.
Property | Description |
---|---|
Name | Short name for this component |
Description | Longer descriptive text to explain the purpose of the activity within the choreography |
Expression | The XPath expression representing the predicate |
The Conditional component is mapped onto the WS-CDL workunit activity. The syntax of a workunit is:
The finalization details are defined with the following properties:
Property | Description |
---|---|
Name | Short name to identify the finalize activity |
Description | Longer descriptive text to explain the purpose of the activity within the choreography |
Choreography | This property defines a reference to the enclosed choreography that is being finalized - and can be selected from a dropdown list |
Choreography Instance Id | This property is an optional XPath expression, and can be used to identify a specific instance of the choreography to be finalized, in cases where multiple instances of this choreography have been performed |
Finalizer | This property references the finalization handler that is to be used within the enclosing choreography |
The Interaction defines the following properties:
Property | Description |
---|---|
Name | A short name used to describe the interaction |
Description | Longer descriptive text to explain the purpose of the activity within the choreography |
Align | This is a boolean property that indicates whether the result of this interaction should be aligned at the communicating endpoints - i.e. they both agree that they have the same resulting state before the interaction completes |
Channel Variable | This is the reference to the variable that represents the channel instance on which to communicate |
Initiate | This is a boolean property that indicates whether this interaction is responsible for initiating the choreography |
Operation | The operation name, which should be valid for the receiving role type's behavior |
Relationship | The relationship type associated with this interaction |
Timeout "From" Role Type Record Details | Whenever a timeout occurs, the record details associated with this list will be performed at the 'from' role type |
Timeout "To" Role Type Record Details | Whenever a timeout occurs, the record details associated with this list will be performed at the 'to' role type |
Time To Complete | This field identifies the duration to wait for the interaction to complete, and if it does not complete during the specified time interval, then a timeout should occur |
Property | Description |
---|---|
Name | A short name used to describe the exchange |
Description | Longer descriptive text to explain the purpose of the activity within the choreography |
Action | This field identifies the direction of the message, whether it is a 'request' from the 'from role' to the 'to role', or a 'respond' message in the opposite direction, which may be a normal message or a fault |
Fault Name | This optional field identifies the name of the fault associated with this exchange |
Receive Cause Exception | This optional field is used to indicate the type associated with an exception that is raised at the receiving role, related to the direction of this exchange |
Receive Record Details | This field provides a list of 'Record Details', associated with the same interaction, that are triggered in the receiving role |
Receive Variable | This field identifies the optional variable that will contain the information received as part of the exchange |
Receive Variable Part | If a receive variable is specified that represents a WSDL1.1 multipart message, then this field can be used to specify the relevant part name |
Send Cause Exception | This optional field is used to indicate the type associated with an exception that is raised at the sending role, related to the direction of this exchange |
Send Record Details | This field provides a list of 'Record Details', associated with the same interaction, that are triggered in the sending role |
Send Variable | This field identifies the optional variable that contains the information being sent as part of the exchange |
Send Variable Part | If a send variable is specified that represents a WSDL1.1 multipart message, then this field can be used to specify the relevant part name |
Type | This field identifies the information type for the information being exchanged |
Property | Description |
---|---|
Name | A short name used to describe the exchange |
Description | Longer descriptive text to explain the purpose of the activity within the choreography |
Cause Exception | This optional property indicates the type of exception that will be raised on the occurance of this record |
Source Expression | This property defines the source XPath expression that will identify the value to be recorded. This field is mutually exclusive with the source variable field |
Source Variable | The source variable whose value will be copied into the target variable. If a source variable is defined, then the source expression field should not be specified (i.e. these fields are mutually exclusive) |
Source Variable Part | If a source variable is specified that represents a WSDL1.1 multipart message, then this field can be used to specify the relevant part name |
Target Variable | The target variable into which the copied value will be assigned |
Target Variable Part | If a target variable is specified that represents a WSDL1.1 multipart message, then this field can be used to specify the relevant part name |
When | This property identifies at what point the record statement should be performed in relation to the exchange it is associated with. It can have three values: before record before the exchange occurs, after record after the exchange occurs, or timeout record if a timeout occurs |
Property | Description |
---|---|
Description | Longer descriptive text to explain the purpose of the activity within the choreography |
Role Type | This field is optional - if specified, identifies the role at which this 'no action' should be handled |
The properties associated with the Perform activity are:
Property | Description |
---|---|
Description | Descriptive text to explain the purpose of the activity within the choreography |
Choreography | This property defines a reference to the choreography that is being performed - and can be selected from a dropdown list |
Choreography Instance Id | This property is an optional XPath expression, and can be used to identify a specific instance of the choreography to be performed, in cases where multiple instances of this choreography will be performed and later finalized |
Wait For Completion | This property determines whether the performing choreography should wait for the performed choreography to complete, before preceding to the next activity |
Property | Description |
---|---|
Name | Short name for this component |
Description | Longer descriptive text to explain the purpose of the activity within the choreography |
'This' Variable | This property defines the variable, within the performing choreography, that will be bound |
'Free' Variable | This property defines the variable, within the performed choreography, that will be bound |
Properties associated with this component
Property | Description |
---|---|
Description | Longer descriptive text to explain the purpose of the activity within the choreography - could be used to define the requirements for the implementation of the 'silent' action |
Role Type | This field is optional - if specified, identifies the role at which this silent action should be handled |
The semantics of the when component can be written as:
Properties associated with this component:
Property | Description |
---|---|
Name | Short name for this component |
Description | Longer descriptive text to explain the purpose of the activity within the choreography |
Expression | The XPath expression representing the predicate on which this 'when' component is synchronized |
Re-Evaluate Condition | The XPath expression to determine if the 'when' condition should be re-evaluated after the iteraction has completed |
The When component is mapped onto the WS-CDL workunit activity. The syntax of a workunit is:
The semantics of the while component can be represented using the following:
Properties associated with this component:
Property | Description |
---|---|
Name | Short name for this component |
Description | Longer descriptive text to explain the purpose of the activity within the choreography |
Expression | The XPath expression to determine if the repetition should occur |
Re-Evaluate Condition | The XPath expression to determine if the repetition condition should be re-evaluated after the iteraction has completed |
The While component is mapped onto the WS-CDL workunit activity. The syntax of a workunit is:
If you would like to read more information about XPath, then the specification can be found at: http://www.w3.org/TR/xpath.
This identity provides the primary key for the channel type. Only one instances of a channel type can have the same value for a particular identity. Only one primary identity can be associated with a channel type.
As each message exchanged on an instance of a channel type will generally not have the same (primary) key value as part of its data, we need to provide alternative identity fields that can be used in place of the primary identity. To ensure that an alternate identity is associated with the appropriate channel instance, it must first occur in a message that is associated with the channel instance due to the fact that it contains either the channel instance's primary identity, or another one of its alternate identities that had previously been associated with the channel instance.
The previous two identity types were concerned with correlating messages to a particular instance of the channel type. The derived identity type concerns establishing a correlation between channel instances, to ensure that are bound to the same choreography session. When the derived identity is specified on a channel type, it means that if a message is exchanged on an instance of that channel type, that contains the appropriate information for the derived identity, then the identity will be associated with the choreography session. It is then possible to define another Channel Type that has the same identity information, but being classified as the primary identity for this other Channel Type. When a new instance of this Channel Type is created, based on the identity value previously derived from the other channel instance, then this will automatically correlate the new channel instance to the same choreography session as the previous channel instance.
The association identity type is similar in purpose to the previous derived identity type, in that it is used to correlate channel instances to a choreography session. However the difference between these two identity types is that the derived identity type can be considered equivalent to a forward reference, and the association identity type can be considered equivalent to a backward reference. With an association identity, the initial channel type only defines its own identity information, and the subsequent channel type (that needs to be correlated to the initial channel type) provides the association identity element with the information necessary to map onto one of the primary or alternate identity values in the initial channel type.
The choreography has the following properties:
Property | Description |
---|---|
Name | Short name for the choreography |
Description | Longer descriptive text to explain the purpose of the choreography |
Completion Condition | The optional XPath expression used to determine when this choreography can be prematurely completed in a successful state |
Coordinated | When set to true, this property indicates that all participants involved in the choreography will be coordinated so that they all complete at the same time, and with the same status |
Isolation | When this boolean property is set to true, it means that modifications made within the scope of this choreography, to bound variables in the performing choreography, will not be made visible until this choreography has successfully been completed - it also means that the enclosing and sibling choreographies will block when accessing those variables, until the isolated choreography has completed |
Relationships | The optional list of relationship types that are associated with the choreography - if not defined, then the choreography will be implicitly associated with all relationship types |
Root | This boolean property identifies whether this is the root choreography - only one top level choreography can be declared as root, which identifies it as the entry point into the set of choreographies included in the CDL package |
The properties associated with a variable declaration are:
Property | Description |
---|---|
Name | The variable name |
Description | Longer descriptive text to explain the purpose of the activity within the choreography |
Free | When set to "true", specifies that the Variable must be bound to an equivalent (i.e. same type) variable within an enclosing choreography - this variable cannot be used in its own right without being bound |
Mutable | When set to "false", specifies that the Variable information cannot change once initialized |
Role Types | This property represents the optional list of role types associated with the variable - if no list is provided, then the variable will be declared at all roles associated with the choreography |
Silent | This property, if set to "true", indicates that the manipulation of the value associated with this variable is non-observable, i.e. it is modified within the internal implementation of the respective choreography participants |
Type | This property identifies the type of the variable - either an information type or channel type |