Choreography
The Choreography of a Business Collaboration describes the ordering and transitions
between Business Transactions or sub collaborations within a Business Collaboration.
Or,
A Choreography is an ordering of Business Activities within a Business Collaboration
Example
 UML tool this could be represented with a UML activity diagram.
 Choreography can be specified visually with notations such as the BPMN.
 Choreography can be specified in ebBP schema using activity diagram.
 activity diagram: start state, completion state, activities, Forks, Joins, decisions,
transitions between activities, and guards on the transitions.
Definitions
Key Semantics of a Choreography
Purpose of a Choreography:
is to specify which BTA, Complex Business Transaction Activity and/or
Collaboration Activity should (are expected to) happen.
The specification of choreography definition and the Business Transaction protocol
defines unambiguously which business message (Document Envelope or Business
Signal) is expected by any of the parties.
The choreography is specified in terms of Business States, and transitions between those
Business States.
 When a transition is validated, it does not mean that the target Business Activity
would start immediately. Instead, it means that the Business Activity is “enabled” and
the initiating party MAY now send the request whenever appropriate,
 provided that, it remains within the TimeToPerform of the Binary (Business)
Collaboration.
 It is merely the execution of the backend systems, which instruct the BSI to send or
receive messages that advance the state of a collaboration.
 There is no execution engine associated to the collaboration itself.
Key Semantics of a Choreography
Key Semantics of a Choreography
 The Business Collaboration is either in the state of performing a given Business
Activity (or multiple concurrent Business Activities) or waiting to start a Business
Activity, unless it has reached a completion state.
 Once a Business Activity completes a transition from this Business Activity, it
navigates to another Business Activity.
 A business message initiates a Business Collaboration or advances its state.
 There are a number of auxiliary types of States that facilitate the
choreographing of Business Activities.
 These include a Start state, a Completion state (which comes in a Success
and Failure flavor) as well as a series of gateways:
• a Fork gateway, a Join gateway and a Decision gateway.
 There are two types of Fork gateway: OR and XOR
Key Semantics of a Choreography
Key Semantics of a Choreography
XOR Fork
 An XOR Fork means that only one Business State of the Fork will be
allowed to be reached, although all transitions to Business States are
possible at the start.
 Once one of the outgoing transitions attached to the Fork gateway get
activated, all the other transitions becomes invalid (e.g. a BTA starts).
Key Semantics of a Choreography
OR Fork
 An OR value mean that one or more Business Activity pointed to by a transition
coming from the Fork might be initiated.
 Several paths are possible although when and which become active is unknown.
 These Business Activities MAY occur in parallel.
 Note that it is not important to specify the order in which Condition Expression on a
transition coming from a Fork will be evaluated.
 It is merely the order in which the request of the Business Transaction Activities
arrive that determines the order in which the Condition Expression need to be
evaluated.
Key Semantics of a Choreography
Decision
 A Decision differs from a Fork in the sense that a Decision selects only one of the
possible transitions, and the other(s) is/are automatically disabled.
 An XOR Fork may be designed to operate like a Decision, but a Decision cannot
be an XOR Fork.
 A Fork has a TimeToPerform element, where the duration MAY be specified.
 At the end of this time interval, the state of the Binary (Business)
Collaboration will automatically be moved to its corresponding Join.
 This feature MAY be used in cases where the Business Activities are
optional.
 (e.g. Cancel Purchase Order and Change Purchase Order BTA) could
be defined as part of a Fork/Join control block.
Key Semantics of a Choreography
 If any given BTA within the Fork/Join pair has not reached its
completion state, the BSI will generate a corresponding timeout
exception.
 The TimeToPerform duration of a Fork MUST be greater than (or
equal to) any TimeToPerform duration of its Business Activities.
Key Semantics of a Choreography
Via the AND-Join (by default, the Join is an AND-Join), the
waitForAll attribute (waitForAll='true’) of the Join MUST indicate
that all transitions coming into the Join MUST be executed for
the collaboration to reach the Join state that reflects the state
movement.
Key Semantics of a Choreography
 When the waitForAll parameter is set to false, it is an OR-Join.
 If one or more Business Activities complete, the OR-Join
(waitForAll='false') completes.
 For an OR-Join (where waitForAll='false'), the BSI will generate a
timeout exception if an OR-Join is reached while a Business
Activity has not reached its completion state.
Key Semantics of a Choreography
 The semantics of Fork and Join are such that for instance a Fork
MAY be defined without a corresponding Join. In this case, the
TimeToPerform element MUST NOT be used.
 It MUST only be used in the case where all outgoing transitions
from the Fork have incoming transitions to the Join.
Key Semantics of a Choreography
Key Semantics of a Choreography
 For XOR or OR Fork, this does not rule out different joins pertaining to states
emerging from a Fork or Forks.
 This allows a split in processing between a group all of which must be done and one
where at least one (or more) is sufficient for the transition.
 As bounded by Fork semantics, multiple joins may be allowed for a fork (multiple
dependencies exist)
Key Semantics of a Choreography
The behavior of Forks
over Joins may be
handled by monitoring
capabilities (for example,
detection via static
analysis).
TimeToPerform Table
Forks and joins are useful particularly when activities between parties may be
optional.
e.g. in retail or manufacturing/production cases,
 order status may or may not occur.
 However, when it does occur, the order response and status are important
to the involved parties.
 In another case between a Producer and a subcontractor, the order status, a
disposition change and response, and other integration changes may or may
not occur.
 In both cases, these optional business transactions may be modeled as forks
between the related business transactions.
Key Semantics of a Choreography
 Transitions can originate from Business Transaction Activities, Complex
Transaction Activities or Collaboration Activities within a Business
Collaboration.
 Guards MAY gate transitions.
Key Semantics of a Choreography
 Guards refer to the status of the Activity from which the transition originates.
 The guard values include:
ProtocolSuccess,
AnyProtocolFailure,
RequestReceiptFailure,
RequestAcceptanceFailure,
ResponseReceiptFailure,
Key Semantics of a Choreography
ResponseAcceptanceFailure,
SignalTimeOut,
ResponseTimeOut,
Failure,
BusinessSuccess,
BusinessFailure and Success.
Variables and Condition Expressions
Use of Variables and Condition Expressions
 Transitions MAY also have a Condition Expression element.
 Condition expression MAY depend on variables.
 Variables are named information elements that are available to
bind concepts across Business Transaction.
 Variables serve to make the semantics clear in a condition
expression.
 There are two types of variables:
- Simple: BTA and a Business Document
- Complex:
Use of Variables and Condition Expressions
Simple Variable Complex Variable
 cannot reference another variable
 is implemented with the XPath language
and extract values from a given Business
Document.
 BTA is executed multiple times.
 contains complex expressions, which can
reference other variables.
 is specified with XSLT to enables the
passing of variables as an input to the
XSLT execution
 Variables MAY provide the capability to redefine timing expectations
during the product lifecycle.
 Variables allow abstract elements used in conditional statements as
well as external specifications (e.g. business agreements) to link to
Business Document contents.
e.g. variables may be used to apply context to a particular business transaction and
the roles involved.
 The capability to bind semantic information raises visibility to what
drives the execution of the Business Collaboration.
Use of Variables and Condition Expressions
Variables
 Each Variable represents an abstract information element, and is defined by
XPath executed on a Business Document instance.
 Once defined a variable MAY be used in any conditional statement as a node-list
in the condition XPath.
 e.g if two variables are defined:
Variables
Use of Variables and Condition Expressions
<Variable name="PO Accepted" nameID="H7YIUSOP“
businessTransactionActivityRef="ID122A39C23“ businessDocumentRef="ID1012">
<ConditionExpression expressionLanguage="XPath1" expression="//POAck[@status=’Reject’]"/>
</Variable>
 The implementation of the collaboration engine MAY compute
these variables whenever a document they are defined on is
processed.
 Each occurrence of the variable would be maintained, and the
entire list of occurrences of each passed as a node list to any
component evaluating a condition statement.
Variables
Use of Variables and Condition Expressions
These variables could be made externally available for use,
such as for a business agreement.
Control of multiple instances will be handled in implementation.
Variables
Use of Variables and Condition Expressions
Use of Variables and Condition Expressions
 A ConditionExpression element MAY be associated to a variable, which can be
either Boolean or Decimal. When the variable is of decimal type, it is casted as
“true” when it is greater than zero and to “false” otherwise.
 ConditionExpression has an optional language attribute, which specifies in which
language the predicate is written.
 One such expression language is a DocumentEnvelope (expressionLanguage
of ExpressionLanguageType), which allows specifying the exchange of a
particular response document type, by the Business Transaction Activity from
which the transition initiates
Condition Expressions
Use of Variables and Condition Expressions
Condition Expressions
ExpressionLanguageType
 is simply defined as the nameID of a DocumentEnvelope.
 was known in preceding ebXML BPSS versions as the
DocumentEnvelopeNotation.
 An XPath expression MAY involve the content of any
DocumentEnvelope received prior to the transition within the scope
of the current Binary (Business) Collaboration instance
Use of Variables and Condition Expressions
Condition Expressions
 XPath expression MAY involve the content of any DocumentEnvelope received prior to
the transition within the scope of the current Binary (Business) Collaboration instance.
 XPath may operate on the result of rendering EDI into XML per ISO/DIS20625. When the
DocumentEnvelope of ExpressionLanguageType is used for an expression, the nameID of
the DocumentEnvelope SHOULD be used.
 XPath SHOULD be and XSLT (Extensible Stylesheet Language Transformation) MAY be
used, particularly when multiple condition expressions and variables are used.
 Currently or in the future, other technologies may also support the use of condition
expressions and variables include XQuery (W3C), OASIS CAM or others.
The Success and Failure elements represent
completion states
 The FromLink element ensures that a transition to a completion state MAY
be guarded by a conditionGuard.
 The Success or Failure of the collaboration does not affect the Success or
Failure of the individual BTAs, which comprise the Business Collaboration.
 The nature of the commitments is not changed when the collaboration ends
in a specific state.
 The Success or Failure of a collaboration is rather an indication, which MAY
be reported on, or acted upon to initiate other collaborations.
The Success and Failure elements represent completion states
 If several completion states are specified within a collaboration definition, the
Business Collaboration run-time instance state is “complete” as soon as one of the
completion state is reached.
 It is the responsibility of the designer to ensure that all completion states are
mutually exclusive and that once one of them is reached there are no further open
Activities.
 The BSI MUST reject all further messages associated to a collaboration instance
as soon as a completion state is reached.
The Success and Failure elements represent completion states
Here is the same Binary (Business) Collaboration as used before, with choreography.
There is a transition between the two, a start and two possible outcomes of this
collaboration, Success and Failure:
<BusinessCollaboration name="Firm Order" nameID="ID122A38D93">
<Role name="buyer" nameID="ID122A38DA3"/>
<Role name="seller" nameID="ID122A38DA5"/>
<Role name="creditauthority" nameID="ID122A38DA7"/>
<TimeToPerform duration="P1D"/>
<Start name="ID876F38OP5" nameID="ID876F38OP5">
<ToLink toBusinessStateRef="ID122A39C23"/>
</Start>
Sample syntax
<BusinessTransactionActivity name="Place Order" nameID="ID122A39C23"
businessTransactionRef="ID110" hasLegalIntent="true">
<TimeToPerform duration="PT4H"/>
<Performs currentRoleRef="ID122A38DA3" performsRoleRef="ID122A3E833"/>
<Performs currentRoleRef="ID122A38DA5" performsRoleRef="ID122A3E863"/>
</BusinessTransactionActivity>
<BusinessTransactionActivity name="Check Credit" nameID="ID122A39D24"
businessTransactionRef=" ID122A3DD33" hasLegalIntent="true">
<TimeToPerform duration="PT4H"/>
<Performs currentRoleRef="ID122A38DA5" performsRoleRef="CCinitiator1"/>
<Performs currentRoleRef="ID122A38DA7" performsRoleRef="CCresponder1"/>
</BusinessTransactionActivity>
Sample syntax
<Success name="Success" nameID="D2JSK99AK"/>
<Failure name="Failure" nameID="DK9726AJ"/>
<Decision>
<FromLink fromBusinessStateRef="ID122A39C23"/>
<ToLink toBusinessStateRef="ID122A39D24">
<ConditionExpression expressionLanguage="ConditionGuardValue" expression="Success"/>
</ToLink>
<ToLink toBusinessStateRef="DK9726AJ">
<ConditionExpression expressionLanguage="ConditionGuardValue" expression="Failure"/>
</ToLink>
</Decision>
Sample syntax
<Decision>
<FromLink fromBusinessStateRef="ID122A39D24"/>
<ToLink toBusinessStateRef="D2JSK99AK">
<ConditionExpression expressionLanguage="ConditionGuardValue"
expression="Success"/>
</ToLink>
<ToLink toBusinessStateRef="DK9726AJ">
<ConditionExpression expressionLanguage="ConditionGuardValue"
expression="Failure"/>
</ToLink>
</Decision>
</BusinessCollaboration>
Sample syntax
The completion states of this Business Collaboration definition are mutually exclusive.
Optionally the transition with the ConditionExpression could be expressed using variables
based on an XPath predicate:
Sample syntax
<Variable name="PO Accepted" nameID="H7YIUSOP" businessTransactionActivityRef="ID122A39C23"
businessDocumentRef="ID1012">
<ConditionExpression expressionLanguage="XPath1" expression="//POAck[@status=’Reject’]"/>
</Variable>
…
<Decision name="Decision10" nameID="IDDecision10">
<FromLink fromBusinessStateRef="ID122A39C23"/>
<ToLink toBusinessStateRef="ID122A39D24" >
<ConditionExpression expressionLanguage="XPath1” expression="PO Accepted" />
</ToLink>
<ToLink toBusinessStateRef="DK9726AJ" >
<ConditionExpression expressionLanguage="ConditionGuardValue" expression="Failure"/>
</ToLink>
</Decision>
Core Business Transaction Semantics
 ebXML concept of a Business Transaction and the semantics behind it are
central to predictable, enforceable commerce.
 ebXML is expected that any BSI will be capable of managing a transaction
according to these semantics.
 ebXML Business Transaction semantics, i.e. the rules and configuration
parameters required for BSI software components to predictably and
deterministically implement
 ebXML Business Transactions, allows you to specify electronic commerce
transactions that provide
Core Business Transaction Semantics
Interaction
Predictability
clear roles, precise transaction scope, understood time bounds, succinct
business information semantics, and unambiguous determination of Success
or Failure. Each party can compute without ambiguity, transaction status is
independently.
Ability to shared
(expectations
between parties)
ability to specify that Business Transactions MAY be agreed to show intent of
the parties.
Non-repudiation MAY specify the keeping of artifacts to aid in legal enforceability.
Authorization
Security
MAY be specified to require authorization of parties performing roles.
Document Security
MAY be specified to be authorized, authenticated, confidential, tamper
detectable.
Reliability ability to specify reliable delivery of Business Documents and signals.
 The condition expression and variable functions allow assignment
of the TimeToPerform value through the process lifecycle to enable
late binding.
 The TimeToPerform element MAY specify a duration and a type
(for example, the value MAY be specified at design time).
 More requirements will be gathered to further understand the
definition, use and other scenarios where variables may apply.
Summary
Reference

More Related Content

PDF
Presentation of CHOReVOLUTION Studio, EclipseCon Europe 2017
PPTX
IAB203.1.2015-Week-3_nc.pptx
PPTX
ME2011 presentation by Cortes Cornax
PDF
Business Process Management Training session 2
PDF
CHOReVOLUTION Studio: a framework for Realizing Choreography-based Distribute...
 
PDF
From Site to System (specifically, business process management systems)
PDF
Bpmn2 0 poster_en
PPT
Delivering Process-Driven, Dynamic Applications
Presentation of CHOReVOLUTION Studio, EclipseCon Europe 2017
IAB203.1.2015-Week-3_nc.pptx
ME2011 presentation by Cortes Cornax
Business Process Management Training session 2
CHOReVOLUTION Studio: a framework for Realizing Choreography-based Distribute...
 
From Site to System (specifically, business process management systems)
Bpmn2 0 poster_en
Delivering Process-Driven, Dynamic Applications

Similar to 6.pptx (20)

PPT
Delivering Process-Driven, Dynamic Applications
PDF
Bpmn tutorial
PPT
Desynchronizable Choreographies
PPTX
Lecture3-ProcessModeling1_Lecture3-ProcessModeling1.pptx
PPTX
Interaction Choreography Models in BPEL:Choreographies on the Enterprise Serv...
PPT
Emerging solutions demystifying_r12_financials-5-28_webcast
PPTX
bpmEdge - Enterprise Process Automation Ecosystem
PDF
CHOReVOLUTION Technical introduction
PDF
Bpmn Poster
PPTX
UiPath Studio Web workshop series - Day 1
PDF
Enabling Ad-hoc Business Process Adaptations through Event-driven Task Decoup...
PDF
ATAED2016 Montali - Marrying data and processes: from model to event data ana...
PDF
The process approach (and business process management)
PDF
Business Process Management session 3
PDF
On the Model-driven Synthesis of Evolvable Service Choreographies [AKSAS@ECSA...
PPTX
Create and Maintain Negotiation Documents
PDF
Socialize your ERP, and collaborate with him!
PDF
CHOReVOLUTION Studio Demo at EclipseCon Europe 2016
PDF
Orchestration vs Choreography - A Guide To Composing Your Monolith
PDF
Delivering Process-Driven, Dynamic Applications
Bpmn tutorial
Desynchronizable Choreographies
Lecture3-ProcessModeling1_Lecture3-ProcessModeling1.pptx
Interaction Choreography Models in BPEL:Choreographies on the Enterprise Serv...
Emerging solutions demystifying_r12_financials-5-28_webcast
bpmEdge - Enterprise Process Automation Ecosystem
CHOReVOLUTION Technical introduction
Bpmn Poster
UiPath Studio Web workshop series - Day 1
Enabling Ad-hoc Business Process Adaptations through Event-driven Task Decoup...
ATAED2016 Montali - Marrying data and processes: from model to event data ana...
The process approach (and business process management)
Business Process Management session 3
On the Model-driven Synthesis of Evolvable Service Choreographies [AKSAS@ECSA...
Create and Maintain Negotiation Documents
Socialize your ERP, and collaborate with him!
CHOReVOLUTION Studio Demo at EclipseCon Europe 2016
Orchestration vs Choreography - A Guide To Composing Your Monolith
Ad

More from ssuser0d0f881 (20)

PPTX
introduction to doplomatic_basics_infromation.pptx
PPT
نظرية بياجيه وتطبيقاتها التربوية ( النظرية البنائية )
PPT
BK 1 Unit 5 to 8 Present Simple Do Does.ppt
PPTX
Traditional-Based Learning Vs Program-Based Learning.pptx
PPTX
Information and documentation, Records management, Concepts and principles.pptx
PPTX
Service-oriented architecture (SOA) is a method of software development that ...
PPTX
PRECISE SPECIFICATION OF BUSINESS DECISIONS AND BUSINESS RULES
PPTX
BPM IMPROVMENT &IMPLIMENTATION &MONITORI-Mcenter.pptx
PDF
المعايير الدولية في مجال إدارة الوثائق والرقمنة.pdf
PPTX
ch6-part1.pptx
PPTX
ch05-part1.pptx
PPTX
ch04-part1.pptx
PPTX
ch03-part2.pptx
PPTX
ch03-part1.pptx
PPTX
ch02-part1.pptx
PDF
protect your data.pdf
PPTX
BPMN (28).pptx
PPTX
2018Lecture12.pptx
PPTX
FBPM2-Chapter10-ProcessImplementationExecutableModels.pptx
PPTX
BPM13-29-08-13-Tutorial-Process-Automation_Part-I.pptx
introduction to doplomatic_basics_infromation.pptx
نظرية بياجيه وتطبيقاتها التربوية ( النظرية البنائية )
BK 1 Unit 5 to 8 Present Simple Do Does.ppt
Traditional-Based Learning Vs Program-Based Learning.pptx
Information and documentation, Records management, Concepts and principles.pptx
Service-oriented architecture (SOA) is a method of software development that ...
PRECISE SPECIFICATION OF BUSINESS DECISIONS AND BUSINESS RULES
BPM IMPROVMENT &IMPLIMENTATION &MONITORI-Mcenter.pptx
المعايير الدولية في مجال إدارة الوثائق والرقمنة.pdf
ch6-part1.pptx
ch05-part1.pptx
ch04-part1.pptx
ch03-part2.pptx
ch03-part1.pptx
ch02-part1.pptx
protect your data.pdf
BPMN (28).pptx
2018Lecture12.pptx
FBPM2-Chapter10-ProcessImplementationExecutableModels.pptx
BPM13-29-08-13-Tutorial-Process-Automation_Part-I.pptx
Ad

Recently uploaded (20)

PPTX
Integrated Management of Neonatal and Childhood Illnesses (IMNCI) – Unit IV |...
PDF
Literature_Review_methods_ BRACU_MKT426 course material
PDF
The TKT Course. Modules 1, 2, 3.for self study
PPTX
2025 High Blood Pressure Guideline Slide Set.pptx
PDF
Myanmar Dental Journal, The Journal of the Myanmar Dental Association (2013).pdf
PDF
Mucosal Drug Delivery system_NDDS_BPHARMACY__SEM VII_PCI Syllabus.pdf
PDF
Myanmar Dental Journal, The Journal of the Myanmar Dental Association (2015).pdf
PDF
Journal of Dental Science - UDMY (2021).pdf
PDF
LIFE & LIVING TRILOGY - PART - (2) THE PURPOSE OF LIFE.pdf
PPTX
pharmaceutics-1unit-1-221214121936-550b56aa.pptx
PDF
Disorder of Endocrine system (1).pdfyyhyyyy
PDF
0520_Scheme_of_Work_(for_examination_from_2021).pdf
PDF
Compact First Student's Book Cambridge Official
PDF
LIFE & LIVING TRILOGY- PART (1) WHO ARE WE.pdf
PDF
M.Tech in Aerospace Engineering | BIT Mesra
PDF
African Communication Research: A review
PDF
LIFE & LIVING TRILOGY - PART (3) REALITY & MYSTERY.pdf
PDF
Horaris_Grups_25-26_Definitiu_15_07_25.pdf
PPTX
Climate Change and Its Global Impact.pptx
PDF
Journal of Dental Science - UDMY (2020).pdf
Integrated Management of Neonatal and Childhood Illnesses (IMNCI) – Unit IV |...
Literature_Review_methods_ BRACU_MKT426 course material
The TKT Course. Modules 1, 2, 3.for self study
2025 High Blood Pressure Guideline Slide Set.pptx
Myanmar Dental Journal, The Journal of the Myanmar Dental Association (2013).pdf
Mucosal Drug Delivery system_NDDS_BPHARMACY__SEM VII_PCI Syllabus.pdf
Myanmar Dental Journal, The Journal of the Myanmar Dental Association (2015).pdf
Journal of Dental Science - UDMY (2021).pdf
LIFE & LIVING TRILOGY - PART - (2) THE PURPOSE OF LIFE.pdf
pharmaceutics-1unit-1-221214121936-550b56aa.pptx
Disorder of Endocrine system (1).pdfyyhyyyy
0520_Scheme_of_Work_(for_examination_from_2021).pdf
Compact First Student's Book Cambridge Official
LIFE & LIVING TRILOGY- PART (1) WHO ARE WE.pdf
M.Tech in Aerospace Engineering | BIT Mesra
African Communication Research: A review
LIFE & LIVING TRILOGY - PART (3) REALITY & MYSTERY.pdf
Horaris_Grups_25-26_Definitiu_15_07_25.pdf
Climate Change and Its Global Impact.pptx
Journal of Dental Science - UDMY (2020).pdf

6.pptx

  • 2. The Choreography of a Business Collaboration describes the ordering and transitions between Business Transactions or sub collaborations within a Business Collaboration. Or, A Choreography is an ordering of Business Activities within a Business Collaboration Example  UML tool this could be represented with a UML activity diagram.  Choreography can be specified visually with notations such as the BPMN.  Choreography can be specified in ebBP schema using activity diagram.  activity diagram: start state, completion state, activities, Forks, Joins, decisions, transitions between activities, and guards on the transitions. Definitions
  • 3. Key Semantics of a Choreography Purpose of a Choreography: is to specify which BTA, Complex Business Transaction Activity and/or Collaboration Activity should (are expected to) happen. The specification of choreography definition and the Business Transaction protocol defines unambiguously which business message (Document Envelope or Business Signal) is expected by any of the parties.
  • 4. The choreography is specified in terms of Business States, and transitions between those Business States.  When a transition is validated, it does not mean that the target Business Activity would start immediately. Instead, it means that the Business Activity is “enabled” and the initiating party MAY now send the request whenever appropriate,  provided that, it remains within the TimeToPerform of the Binary (Business) Collaboration.  It is merely the execution of the backend systems, which instruct the BSI to send or receive messages that advance the state of a collaboration.  There is no execution engine associated to the collaboration itself. Key Semantics of a Choreography
  • 5. Key Semantics of a Choreography  The Business Collaboration is either in the state of performing a given Business Activity (or multiple concurrent Business Activities) or waiting to start a Business Activity, unless it has reached a completion state.  Once a Business Activity completes a transition from this Business Activity, it navigates to another Business Activity.  A business message initiates a Business Collaboration or advances its state.
  • 6.  There are a number of auxiliary types of States that facilitate the choreographing of Business Activities.  These include a Start state, a Completion state (which comes in a Success and Failure flavor) as well as a series of gateways: • a Fork gateway, a Join gateway and a Decision gateway.  There are two types of Fork gateway: OR and XOR Key Semantics of a Choreography
  • 7. Key Semantics of a Choreography XOR Fork  An XOR Fork means that only one Business State of the Fork will be allowed to be reached, although all transitions to Business States are possible at the start.  Once one of the outgoing transitions attached to the Fork gateway get activated, all the other transitions becomes invalid (e.g. a BTA starts).
  • 8. Key Semantics of a Choreography OR Fork  An OR value mean that one or more Business Activity pointed to by a transition coming from the Fork might be initiated.  Several paths are possible although when and which become active is unknown.  These Business Activities MAY occur in parallel.  Note that it is not important to specify the order in which Condition Expression on a transition coming from a Fork will be evaluated.  It is merely the order in which the request of the Business Transaction Activities arrive that determines the order in which the Condition Expression need to be evaluated.
  • 9. Key Semantics of a Choreography Decision  A Decision differs from a Fork in the sense that a Decision selects only one of the possible transitions, and the other(s) is/are automatically disabled.  An XOR Fork may be designed to operate like a Decision, but a Decision cannot be an XOR Fork.
  • 10.  A Fork has a TimeToPerform element, where the duration MAY be specified.  At the end of this time interval, the state of the Binary (Business) Collaboration will automatically be moved to its corresponding Join.  This feature MAY be used in cases where the Business Activities are optional.  (e.g. Cancel Purchase Order and Change Purchase Order BTA) could be defined as part of a Fork/Join control block. Key Semantics of a Choreography
  • 11.  If any given BTA within the Fork/Join pair has not reached its completion state, the BSI will generate a corresponding timeout exception.  The TimeToPerform duration of a Fork MUST be greater than (or equal to) any TimeToPerform duration of its Business Activities. Key Semantics of a Choreography
  • 12. Via the AND-Join (by default, the Join is an AND-Join), the waitForAll attribute (waitForAll='true’) of the Join MUST indicate that all transitions coming into the Join MUST be executed for the collaboration to reach the Join state that reflects the state movement. Key Semantics of a Choreography
  • 13.  When the waitForAll parameter is set to false, it is an OR-Join.  If one or more Business Activities complete, the OR-Join (waitForAll='false') completes.  For an OR-Join (where waitForAll='false'), the BSI will generate a timeout exception if an OR-Join is reached while a Business Activity has not reached its completion state. Key Semantics of a Choreography
  • 14.  The semantics of Fork and Join are such that for instance a Fork MAY be defined without a corresponding Join. In this case, the TimeToPerform element MUST NOT be used.  It MUST only be used in the case where all outgoing transitions from the Fork have incoming transitions to the Join. Key Semantics of a Choreography
  • 15. Key Semantics of a Choreography  For XOR or OR Fork, this does not rule out different joins pertaining to states emerging from a Fork or Forks.  This allows a split in processing between a group all of which must be done and one where at least one (or more) is sufficient for the transition.  As bounded by Fork semantics, multiple joins may be allowed for a fork (multiple dependencies exist)
  • 16. Key Semantics of a Choreography The behavior of Forks over Joins may be handled by monitoring capabilities (for example, detection via static analysis). TimeToPerform Table
  • 17. Forks and joins are useful particularly when activities between parties may be optional. e.g. in retail or manufacturing/production cases,  order status may or may not occur.  However, when it does occur, the order response and status are important to the involved parties.  In another case between a Producer and a subcontractor, the order status, a disposition change and response, and other integration changes may or may not occur.  In both cases, these optional business transactions may be modeled as forks between the related business transactions. Key Semantics of a Choreography
  • 18.  Transitions can originate from Business Transaction Activities, Complex Transaction Activities or Collaboration Activities within a Business Collaboration.  Guards MAY gate transitions. Key Semantics of a Choreography
  • 19.  Guards refer to the status of the Activity from which the transition originates.  The guard values include: ProtocolSuccess, AnyProtocolFailure, RequestReceiptFailure, RequestAcceptanceFailure, ResponseReceiptFailure, Key Semantics of a Choreography ResponseAcceptanceFailure, SignalTimeOut, ResponseTimeOut, Failure, BusinessSuccess, BusinessFailure and Success.
  • 20. Variables and Condition Expressions
  • 21. Use of Variables and Condition Expressions  Transitions MAY also have a Condition Expression element.  Condition expression MAY depend on variables.  Variables are named information elements that are available to bind concepts across Business Transaction.  Variables serve to make the semantics clear in a condition expression.  There are two types of variables: - Simple: BTA and a Business Document - Complex:
  • 22. Use of Variables and Condition Expressions Simple Variable Complex Variable  cannot reference another variable  is implemented with the XPath language and extract values from a given Business Document.  BTA is executed multiple times.  contains complex expressions, which can reference other variables.  is specified with XSLT to enables the passing of variables as an input to the XSLT execution
  • 23.  Variables MAY provide the capability to redefine timing expectations during the product lifecycle.  Variables allow abstract elements used in conditional statements as well as external specifications (e.g. business agreements) to link to Business Document contents. e.g. variables may be used to apply context to a particular business transaction and the roles involved.  The capability to bind semantic information raises visibility to what drives the execution of the Business Collaboration. Use of Variables and Condition Expressions Variables
  • 24.  Each Variable represents an abstract information element, and is defined by XPath executed on a Business Document instance.  Once defined a variable MAY be used in any conditional statement as a node-list in the condition XPath.  e.g if two variables are defined: Variables Use of Variables and Condition Expressions <Variable name="PO Accepted" nameID="H7YIUSOP“ businessTransactionActivityRef="ID122A39C23“ businessDocumentRef="ID1012"> <ConditionExpression expressionLanguage="XPath1" expression="//POAck[@status=’Reject’]"/> </Variable>
  • 25.  The implementation of the collaboration engine MAY compute these variables whenever a document they are defined on is processed.  Each occurrence of the variable would be maintained, and the entire list of occurrences of each passed as a node list to any component evaluating a condition statement. Variables Use of Variables and Condition Expressions
  • 26. These variables could be made externally available for use, such as for a business agreement. Control of multiple instances will be handled in implementation. Variables Use of Variables and Condition Expressions
  • 27. Use of Variables and Condition Expressions  A ConditionExpression element MAY be associated to a variable, which can be either Boolean or Decimal. When the variable is of decimal type, it is casted as “true” when it is greater than zero and to “false” otherwise.  ConditionExpression has an optional language attribute, which specifies in which language the predicate is written.  One such expression language is a DocumentEnvelope (expressionLanguage of ExpressionLanguageType), which allows specifying the exchange of a particular response document type, by the Business Transaction Activity from which the transition initiates Condition Expressions
  • 28. Use of Variables and Condition Expressions Condition Expressions ExpressionLanguageType  is simply defined as the nameID of a DocumentEnvelope.  was known in preceding ebXML BPSS versions as the DocumentEnvelopeNotation.  An XPath expression MAY involve the content of any DocumentEnvelope received prior to the transition within the scope of the current Binary (Business) Collaboration instance
  • 29. Use of Variables and Condition Expressions Condition Expressions  XPath expression MAY involve the content of any DocumentEnvelope received prior to the transition within the scope of the current Binary (Business) Collaboration instance.  XPath may operate on the result of rendering EDI into XML per ISO/DIS20625. When the DocumentEnvelope of ExpressionLanguageType is used for an expression, the nameID of the DocumentEnvelope SHOULD be used.  XPath SHOULD be and XSLT (Extensible Stylesheet Language Transformation) MAY be used, particularly when multiple condition expressions and variables are used.  Currently or in the future, other technologies may also support the use of condition expressions and variables include XQuery (W3C), OASIS CAM or others.
  • 30. The Success and Failure elements represent completion states
  • 31.  The FromLink element ensures that a transition to a completion state MAY be guarded by a conditionGuard.  The Success or Failure of the collaboration does not affect the Success or Failure of the individual BTAs, which comprise the Business Collaboration.  The nature of the commitments is not changed when the collaboration ends in a specific state.  The Success or Failure of a collaboration is rather an indication, which MAY be reported on, or acted upon to initiate other collaborations. The Success and Failure elements represent completion states
  • 32.  If several completion states are specified within a collaboration definition, the Business Collaboration run-time instance state is “complete” as soon as one of the completion state is reached.  It is the responsibility of the designer to ensure that all completion states are mutually exclusive and that once one of them is reached there are no further open Activities.  The BSI MUST reject all further messages associated to a collaboration instance as soon as a completion state is reached. The Success and Failure elements represent completion states
  • 33. Here is the same Binary (Business) Collaboration as used before, with choreography. There is a transition between the two, a start and two possible outcomes of this collaboration, Success and Failure: <BusinessCollaboration name="Firm Order" nameID="ID122A38D93"> <Role name="buyer" nameID="ID122A38DA3"/> <Role name="seller" nameID="ID122A38DA5"/> <Role name="creditauthority" nameID="ID122A38DA7"/> <TimeToPerform duration="P1D"/> <Start name="ID876F38OP5" nameID="ID876F38OP5"> <ToLink toBusinessStateRef="ID122A39C23"/> </Start> Sample syntax
  • 34. <BusinessTransactionActivity name="Place Order" nameID="ID122A39C23" businessTransactionRef="ID110" hasLegalIntent="true"> <TimeToPerform duration="PT4H"/> <Performs currentRoleRef="ID122A38DA3" performsRoleRef="ID122A3E833"/> <Performs currentRoleRef="ID122A38DA5" performsRoleRef="ID122A3E863"/> </BusinessTransactionActivity> <BusinessTransactionActivity name="Check Credit" nameID="ID122A39D24" businessTransactionRef=" ID122A3DD33" hasLegalIntent="true"> <TimeToPerform duration="PT4H"/> <Performs currentRoleRef="ID122A38DA5" performsRoleRef="CCinitiator1"/> <Performs currentRoleRef="ID122A38DA7" performsRoleRef="CCresponder1"/> </BusinessTransactionActivity> Sample syntax
  • 35. <Success name="Success" nameID="D2JSK99AK"/> <Failure name="Failure" nameID="DK9726AJ"/> <Decision> <FromLink fromBusinessStateRef="ID122A39C23"/> <ToLink toBusinessStateRef="ID122A39D24"> <ConditionExpression expressionLanguage="ConditionGuardValue" expression="Success"/> </ToLink> <ToLink toBusinessStateRef="DK9726AJ"> <ConditionExpression expressionLanguage="ConditionGuardValue" expression="Failure"/> </ToLink> </Decision> Sample syntax
  • 36. <Decision> <FromLink fromBusinessStateRef="ID122A39D24"/> <ToLink toBusinessStateRef="D2JSK99AK"> <ConditionExpression expressionLanguage="ConditionGuardValue" expression="Success"/> </ToLink> <ToLink toBusinessStateRef="DK9726AJ"> <ConditionExpression expressionLanguage="ConditionGuardValue" expression="Failure"/> </ToLink> </Decision> </BusinessCollaboration> Sample syntax
  • 37. The completion states of this Business Collaboration definition are mutually exclusive. Optionally the transition with the ConditionExpression could be expressed using variables based on an XPath predicate: Sample syntax <Variable name="PO Accepted" nameID="H7YIUSOP" businessTransactionActivityRef="ID122A39C23" businessDocumentRef="ID1012"> <ConditionExpression expressionLanguage="XPath1" expression="//POAck[@status=’Reject’]"/> </Variable> … <Decision name="Decision10" nameID="IDDecision10"> <FromLink fromBusinessStateRef="ID122A39C23"/> <ToLink toBusinessStateRef="ID122A39D24" > <ConditionExpression expressionLanguage="XPath1” expression="PO Accepted" /> </ToLink> <ToLink toBusinessStateRef="DK9726AJ" > <ConditionExpression expressionLanguage="ConditionGuardValue" expression="Failure"/> </ToLink> </Decision>
  • 38. Core Business Transaction Semantics  ebXML concept of a Business Transaction and the semantics behind it are central to predictable, enforceable commerce.  ebXML is expected that any BSI will be capable of managing a transaction according to these semantics.  ebXML Business Transaction semantics, i.e. the rules and configuration parameters required for BSI software components to predictably and deterministically implement  ebXML Business Transactions, allows you to specify electronic commerce transactions that provide
  • 39. Core Business Transaction Semantics Interaction Predictability clear roles, precise transaction scope, understood time bounds, succinct business information semantics, and unambiguous determination of Success or Failure. Each party can compute without ambiguity, transaction status is independently. Ability to shared (expectations between parties) ability to specify that Business Transactions MAY be agreed to show intent of the parties. Non-repudiation MAY specify the keeping of artifacts to aid in legal enforceability. Authorization Security MAY be specified to require authorization of parties performing roles. Document Security MAY be specified to be authorized, authenticated, confidential, tamper detectable. Reliability ability to specify reliable delivery of Business Documents and signals.
  • 40.  The condition expression and variable functions allow assignment of the TimeToPerform value through the process lifecycle to enable late binding.  The TimeToPerform element MAY specify a duration and a type (for example, the value MAY be specified at design time).  More requirements will be gathered to further understand the definition, use and other scenarios where variables may apply. Summary