- •1 Scope
- •1.1 General
- •2 Conformance
- •2.1 General
- •2.2 Process Modeling Conformance
- •2.2.1 BPMN Process Types
- •2.2.2 BPMN Process Elements
- •Descriptive Conformance Sub-Class
- •Analytic Conformance Sub-Class
- •Common Executable Conformance Sub-Class
- •2.2.3 Visual Appearance
- •2.2.4 Structural Conformance
- •2.2.5 Process Semantics
- •2.2.6 Attributes and Model Associations
- •2.2.7 Extended and Optional Elements
- •2.2.8 Visual Interchange
- •2.3 Process Execution Conformance
- •2.3.1 Execution Semantics
- •2.3.2 Import of Process Diagrams
- •2.4 BPEL Process Execution Conformance
- •2.5 Choreography Modeling Conformance
- •2.5.1 BPMN Choreography Types
- •2.5.2 BPMN Choreography Elements
- •2.5.3 Visual Appearance
- •2.5.4 Choreography Semantics
- •2.5.5 Visual Interchange
- •2.6 Summary of BPMN Conformance Types
- •3 Normative References
- •3.1 General
- •3.2 Normative
- •3.3 Non-Normative
- •Activity Service
- •BPEL4People
- •Business Process Definition Metamodel
- •Business Process Modeling
- •Business Transaction Protocol
- •Dublin Core Meta Data
- •ebXML BPSS
- •Open Nested Transactions
- •SOAP 1.2
- •UDDI
- •WfMC Glossary
- •Web Services Transaction
- •Workflow Patterns
- •WSBPEL
- •WS-Coordination
- •WSDL
- •WS-HumanTask
- •XML 1.0 (Second Edition)
- •XML-Namespaces
- •XML-Schema
- •XPath
- •XPDL
- •4 Terms and Definitions
- •5 Symbols
- •6 Additional Information
- •6.1 Conventions
- •6.1.1 Typographical and Linguistic Conventions and Style
- •6.1.2 Abbreviations
- •6.2 Structure of this Document
- •6.3 Acknowledgments
- •Submitting Organizations
- •Supporting Organizations
- •Special Acknowledgments
- •7 Overview
- •7.1 General
- •7.2 BPMN Scope
- •7.2.1 Uses of BPMN
- •Private (Internal) Business Processes
- •Public Processes
- •Collaborations
- •Choreographies
- •Conversations
- •Diagram Point of View
- •Understanding the Behavior of Diagrams
- •7.3 BPMN Elements
- •7.3.1 Basic BPMN Modeling Elements
- •7.3.2 Extended BPMN Modeling Elements
- •7.4 BPMN Diagram Types
- •7.5 Use of Text, Color, Size, and Lines in a Diagram
- •7.6 Flow Object Connection Rules
- •7.6.1 Sequence Flow Connections Rules
- •7.6.2 Message Flow Connection Rules
- •7.7 BPMN Extensibility
- •7.8 BPMN Example
- •8 BPMN Core Structure
- •8.1 General
- •8.2 Infrastructure
- •8.2.1 Definitions
- •8.2.2 Import
- •8.2.3 Infrastructure Package XML Schemas
- •8.3 Foundation
- •8.3.1 Base Element
- •8.3.2 Documentation
- •8.3.3 Extensibility
- •Extension
- •ExtensionDefinition
- •ExtensionAttributeDefinition
- •ExtensionAttributeValue
- •Extensibility XML Schemas
- •XML Example
- •8.3.4 External Relationships
- •8.3.5 Root Element
- •8.3.6 Foundation Package XML Schemas
- •8.4 Common Elements
- •8.4.1 Artifacts
- •Common Artifact Definitions
- •Artifact Sequence Flow Connections
- •Artifact Message Flow Connections
- •Association
- •Group
- •Category
- •Text Annotation
- •XML Schema for Artifacts
- •8.4.2 Correlation
- •CorrelationKey
- •Key-based Correlation
- •Context-based Correlation
- •XML Schema for Correlation
- •8.4.3 Error
- •8.4.4 Escalation
- •8.4.5 Events
- •8.4.6 Expressions
- •Expression
- •Formal Expression
- •8.4.7 Flow Element
- •8.4.8 Flow Elements Container
- •8.4.9 Gateways
- •8.4.10 Item Definition
- •8.4.11 Message
- •8.4.12 Resources
- •8.4.13 Sequence Flow
- •Flow Node
- •8.4.14 Common Package XML Schemas
- •8.5 Services
- •8.5.1 Interface
- •8.5.2 EndPoint
- •8.5.3 Operation
- •8.5.4 Service Package XML Schemas
- •9 Collaboration
- •9.1 General
- •9.2 Basic Collaboration Concepts
- •9.2.1 Use of BPMN Common Elements
- •9.3 Pool and Participant
- •9.3.1 Participants
- •PartnerEntity
- •PartnerRole
- •Participant Multiplicity
- •ParticipantAssociation
- •9.3.2 Lanes
- •9.4 Message Flow
- •9.4.1 Interaction Node
- •9.4.2 Message Flow Associations
- •9.5 Conversations
- •9.5.1 Conversation Node
- •9.5.2 Conversation
- •9.5.3 Sub-Conversation
- •9.5.4 Call Conversation
- •9.5.5 Global Conversation
- •9.5.6 Conversation Link
- •9.5.7 Conversation Association
- •9.5.8 Correlations
- •9.6 Process within Collaboration
- •9.7 Choreography within Collaboration
- •9.8 Collaboration Package XML Schemas
- •10 Process
- •10.1 General
- •10.2 Basic Process Concepts
- •10.2.1 Types of BPMN Processes
- •10.2.2 Use of BPMN Common Elements
- •10.3 Activities
- •Sequence Flow Connections
- •Message Flow Connections
- •10.3.1 Resource Assignment
- •Resource Role
- •Expression Assignment
- •Parameterized Resource Assignment
- •10.3.2 Performer
- •10.3.3 Tasks
- •Service Task
- •Send Task
- •Receive Task
- •User Task
- •Manual Task
- •Business Rule
- •Script Task
- •10.3.4 Human Interactions
- •Notation
- •Manual Task
- •User Task
- •Rendering of User Tasks
- •Human Performers
- •Potential Owners
- •XML Schema for Human Interactions
- •Examples
- •10.3.5 Sub-Processes
- •Embedded Sub-Process (Sub-Process)
- •Reusable Sub-Process (Call Activity)
- •Event Sub-Process
- •Transaction
- •Ad-Hoc Sub-Process
- •10.3.6 Call Activity
- •Callable Element
- •10.3.7 Global Task
- •Types of Global Task
- •10.3.8 Loop Characteristics
- •Standard Loop Characteristics
- •Multi-Instance Characteristics
- •Complex Behavior Definition
- •10.3.9 XML Schema for Activities
- •10.4 Items and Data
- •10.4.1 Data Modeling
- •Item-Aware Elements
- •Data Objects
- •DataObject
- •States
- •Data Objects representing a Collection of Data
- •Visual representations of Data Objects
- •Lifecycle and Accessibility
- •Data Stores
- •Properties
- •Lifecycle and Accessibility
- •Data Inputs and Outputs
- •Data Input
- •States
- •Data Output
- •States
- •Service Task Mapping
- •Send Task Mapping
- •Receive Task Mapping
- •User Task Mapping
- •Call Activity Mapping
- •Script Task Mapping
- •Events
- •InputSet
- •OutputSet
- •Data Associations
- •DataAssociation
- •Assignment
- •DataInputAssociation
- •DataOutputAssociation
- •Data Objects associated with a Sequence Flow
- •10.4.2 Execution Semantics for Data
- •Execution Semantics for DataAssociation
- •10.4.3 Usage of Data in XPath Expressions
- •Access to BPMN Data Objects
- •Access to BPMN Data Input and Data Output
- •Access to BPMN Properties
- •For BPMN Instance Attributes
- •10.4.4 XML Schema for Data
- •10.5 Events
- •10.5.1 Concepts
- •Data Modeling and Events
- •Common Event attributes
- •Common Catch Event attributes
- •Common Throw Event Attributes
- •Implicit Throw Event
- •10.5.2 Start Event
- •Start Event Triggers
- •Start Events for Top-level Processes
- •Start Events for Sub-Processes
- •Start Events for Event Sub-Processes
- •Attributes for Start Events
- •Sequence Flow Connections
- •Message Flow Connections
- •10.5.3 End Event
- •End Event Results
- •Sequence Flow Connections
- •Message Flow Connections
- •10.5.4 Intermediate Event
- •Intermediate Event Triggers
- •Intermediate Events in Normal Flow
- •Intermediate Events Attached to an Activity Boundary
- •Attributes for Boundary Events
- •Activity Boundary Connections
- •Sequence Flow Connections
- •Message Flow Connections
- •10.5.5 Event Definitions
- •Event Definition Metamodel
- •Cancel Event
- •Compensation Event
- •Conditional Event
- •Error Event
- •Escalation Event Definition
- •Link Event Definition
- •Message Event Definition
- •Multiple Event
- •None Event
- •Parallel Multiple Event
- •Signal Event
- •Terminate Event
- •Timer Event
- •10.5.6 Handling Events
- •Handling Start Events
- •Handling Events within normal Sequence Flow (Intermediate Events)
- •Handling Events attached to an Activity (Intermediate boundary Events and Event Sub-Processes)
- •Interrupting Event Handlers (Error, Escalation, Message, Signal, Timer, Conditional, Multiple, and Parallel Multiple)
- •Non-interrupting Event Handlers (Escalation, Message, Signal, Timer, Conditional, Multiple, and Parallel Multiple)
- •Handling End Events
- •10.5.7 Scopes
- •10.5.8 Events Package XML Schemas
- •10.6 Gateways
- •10.6.1 Sequence Flow Considerations
- •10.6.2 Exclusive Gateway
- •10.6.3 Inclusive Gateway
- •10.6.4 Parallel Gateway
- •10.6.5 Complex Gateway
- •10.6.6 Event-Based Gateway
- •10.6.7 Gateway Package XML Schemas
- •10.7 Compensation
- •10.7.1 Compensation Handler
- •10.7.2 Compensation Triggering
- •10.7.3 Relationship between Error Handling and Compensation
- •10.8 Lanes
- •10.9 Process Instances, Unmodeled Activities, and Public Processes
- •10.10 Auditing
- •10.11 Monitoring
- •10.12 Process Package XML Schemas
- •11 Choreography
- •11.1 General
- •11.2 Basic Choreography Concepts
- •11.3 Data
- •11.4 Use of BPMN Common Elements
- •11.4.1 Sequence Flow
- •11.4.2 Artifacts
- •11.5 Choreography Activities
- •11.5.1 Choreography Task
- •11.5.2 Sub-Choreography
- •The Parent Sub-Choreography (Expanded)
- •11.5.3 Call Choreography
- •11.5.4 Global Choreography Task
- •11.5.5 Looping Activities
- •11.5.6 The Sequencing of Activities
- •11.6 Events
- •11.6.1 Start Events
- •11.6.2 Intermediate Events
- •11.6.3 End Events
- •11.7 Gateways
- •11.7.1 Exclusive Gateway
- •11.7.2 Event-Based Gateway
- •11.7.3 Inclusive Gateway
- •11.7.4 Parallel Gateway
- •11.7.5 Complex Gateway
- •11.7.6 Chaining Gateways
- •11.8 Choreography within Collaboration
- •11.8.1 Participants
- •11.8.2 Swimlanes
- •Choreography Task in Combined View
- •Sub-Choreography in Combined View
- •11.9 XML Schema for Choreography
- •12 BPMN Notation and Diagrams
- •12.1 BPMN Diagram Interchange (BPMN DI)
- •12.1.1 Scope
- •12.1.2 Diagram Definition and Interchange
- •12.1.3 How to Read this Clause
- •12.2 BPMN Diagram Interchange (DI) Meta-model
- •12.2.1 Overview
- •12.2.2 Abstract Syntax
- •12.2.3 Classifier Descriptions
- •12.2.4 Complete BPMN DI XML Schema
- •12.3 Notational Depiction Library and Abstract Element Resolutions
- •12.3.1 Labels
- •12.3.2 BPMNShape
- •Markers for Activities
- •Tasks [BPMNShape]
- •Collapsed Sub-Processes [BPMNShape]
- •Expanded Sub-Processes [BPMNShape]
- •Collapsed Ad Hoc Sub-Processes [BPMNShape]
- •Expanded Ad Hoc Sub-Processes [BPMNShape]
- •Collapsed Transactions [BPMNShape]
- •Expanded Transactions [BPMNShape]
- •Collapsed Event Sub-Processes [BPMNShape]
- •Expanded Event Sub-Processes [BPMNShape]
- •Call Activities (Calling a Global Task) [BPMNShape]
- •Collapsed Call Activities (Calling a Process) [BPMNShape]
- •Expanded Call Activities (Calling a Process) [BPMNShape]
- •Data [BPMNShape]
- •Events [BPMNShape]
- •Gateways [BPMNShape]
- •Artifacts [BPMNShape]
- •Lanes [BPMNShape]
- •Pools [BPMNShape]
- •Choreography Tasks [BPMNShape]
- •Collapsed Sub-Choreographies [BPMNShape]
- •Expanded Sub-Choreographies [BPMNShape]
- •Call Choreographies (Calling a Global Choreography Task) [BPMNShape]
- •Collapsed Call Choreographies (Calling a Choreography) [BPMNShape]
- •Expanded Call Choreographies (Calling a Choreography) [BPMNShape]
- •Choreography Participant Bands [BPMNShape]
- •Conversations [BPMNShape]
- •12.3.3 BPMNEdge
- •Connecting Objects [BPMNEdge]
- •12.4 Example(s)
- •12.4.1 Depicting Content in a Sub-Process
- •Expanded Sub-Process
- •Expanded Sub-Process with Start and End Events on Border
- •Collapsed Sub-Process
- •12.4.2 Multiple Lanes and Nested Lanes
- •12.4.3 Vertical Collaboration
- •12.4.4 Conversation
- •12.4.5 Choreography
- •13 BPMN Execution Semantics
- •13.1 General
- •13.2 Process Instantiation and Termination
- •13.3 Activities
- •13.3.1 Sequence Flow Considerations
- •13.3.2 Activity
- •13.3.3 Task
- •13.3.4 Sub-Process/Call Activity
- •13.3.5 Ad-Hoc Sub-Process
- •Operational semantics
- •13.3.6 Loop Activity
- •13.3.7 Multiple Instances Activity
- •13.4 Gateways
- •13.4.1 Parallel Gateway (Fork and Join)
- •13.4.2 Exclusive Gateway (Exclusive Decision (data-based) and Exclusive Merge)
- •13.4.3 Inclusive Gateway (Inclusive Decision and Inclusive Merge)
- •13.4.4 Event-based Gateway (Exclusive Decision (event-based))
- •13.4.5 Complex Gateway (related to Complex Condition and Complex Merge)
- •13.5 Events
- •13.5.1 Start Events
- •13.5.2 Intermediate Events
- •13.5.3 Intermediate Boundary Events
- •13.5.4 Event Sub-Processes
- •Operational semantics
- •13.5.5 Compensation
- •Compensation Handler
- •Compensation Triggering
- •Relationship between Error Handling and Compensation
- •Operational Semantics
- •13.5.6 End Events
- •Process level end events
- •Sub-process level end events
- •14 Mapping BPMN Models to WS-BPEL
- •14.1 General
- •14.2 Basic BPMN-BPEL Mapping
- •14.2.1 Process
- •14.2.2 Activities
- •Common Activity Mappings
- •Task Mappings
- •Service Task
- •Receive Task
- •Send Task
- •Abstract Task
- •Service Package
- •Message
- •Interface and Operation
- •Conversations and Correlation
- •Sub-Process Mappings
- •Mapping of Event Sub-Processes
- •Activity Loop Mapping
- •Standard Loops
- •Dealing with LoopMaximum
- •Multi-Instance Activities
- •14.2.3 Events
- •Start Event Mappings
- •Message Start Events
- •Error Start Events
- •Compensation Start Events
- •Intermediate Event Mappings (Non-boundary)
- •Message Intermediate Events (Non-boundary)
- •Timer Intermediate Events (Non-boundary)
- •Compensation Intermediate Events (Non-boundary)
- •End Event Mappings
- •None End Events
- •Message End Events
- •Error End Events
- •Compensation End Events
- •Terminate End Events
- •Boundary Intermediate Events
- •Message Boundary Events
- •Error Boundary Events
- •Compensation Boundary Events
- •Multiple Boundary Events, and Boundary Events with Loops
- •14.2.4 Gateways and Sequence Flows
- •Exclusive (Data-based) Decision Pattern
- •Exclusive (Event-based) Decision Pattern
- •Inclusive Decision Pattern
- •Parallel Pattern
- •Sequence Pattern
- •Structured Loop Patterns
- •Handling Loops in Sequence Flows
- •14.2.5 Handling Data
- •Data Objects
- •Properties
- •Input and Output Sets
- •Data Associations
- •Expressions
- •Assignments
- •14.3 Extended BPMN-BPEL Mapping
- •14.3.1 End Events
- •14.3.2 Loop/Switch Combinations From a Gateway
- •14.3.3 Interleaved Loops
- •14.3.4 Infinite Loops
- •14.3.5 BPMN Elements that Span Multiple WSBPEL Sub-Elements
- •15 Exchange Formats
- •15.1 Interchanging Incomplete Models
- •15.2 Machine Readable Files
- •15.3.1 Document Structure
- •15.3.2 References within the BPMN XSD
- •15.5 XSLT Transformation between XSD and XMI
- •B.1 Scope
- •B.2 Architecture
- •B.3 Diagram Common
- •B.3.1 Overview
- •B.3.2 Abstract Syntax
- •B.3.3 Classifier Descriptions
- •B.4 Diagram Interchange
- •B.4.1 Overview
- •B.4.2 Abstract Syntax
- •B.4.3 Classifier Descriptions
11 Choreography
11.1 General
NOTE: The content of this clause is REQUIRED for BPMN Choreography Modeling Conformance or for BPMN Complete Conformance. However, this clause is NOT REQUIRED for BPMN Process Modeling Conformance, BPMN Process Execution Conformance, or BPMN BPEL Process Execution Conformance. For more information about BPMN conformance types, see page 1.
A Choreography is a type of process, but differs in purpose and behavior from a standard BPMN Process. A standard Process, or an Orchestration Process (see page 143), is more familiar to most process modelers and defines the flow of Activities of a specific PartnerEntity or organization. In contrast, Choreography formalizes the way business Participants coordinate their interactions. The focus is not on orchestrations of the work performed within these Participants, but rather on the exchange of information (Messages) between these Participants.
Another way to look at Choreography is to view it as a type of business contract between two or more organizations.
This entails Message (document) exchanges in an orderly fashion: e.g., first a retailer sends a purchase order request to a supplier; next the supplier either confirms or rejects intention to investigate the order; then supplier proceeds to investigate stock for line-items and seeks outside suppliers if necessary; accordingly the supplier sends a confirmation or rejection back; during this period the retailer can send requests to vary the order, etc.
Message exchanges between partners go beyond simple request-response interactions into multi-cast, contingent requests, competing receives, streaming, and other service interaction patterns (REF for SIP). Moreover, they cluster around distinct scenarios such as: creation of sales orders; assignment of carriers of shipments involving different sales orders; managing the “red tape” of crossing customs and quarantine; processing payment and investigating exceptions. A Choreography is a definition of expected behavior, basically a procedural business contract, between interacting Participants (see page 111 for more information on Participants). It brings Message exchanges and their logical relation as Conversations into view. This allows partners to plan their Business Processes for inter-operation without introducing conflicts. An example of a conflict could arise if a retailer was allowed to send a variation on a purchase order immediately after sending the initial request. The Message exchange sequences in Choreography models need to be reflected in the orchestration Processes of participants. A Choreography model makes it possible to derive the Process interfaces of each partner’s Process (REF: Decker & Weske, 2007).
To leverage the familiarity of flow charting types of Process models, BPMN Choreographies also have “activities” that are ordered by Sequence Flows. These “activities” consist of one or more interactions between Participants. These interactions are often described as being message exchange patterns (MEPs). A MEP is the atomic unit (“Activity”) of a Choreography.
Some MEPs involve a single Message (e.g., a “Customer” requests an “Order” from a “Supplier”). Other MEPs will involve two Messages in a request and response format (e.g., a “Supplier” request a “Credit Rating” from a “Financial Institution,” who then returns the “Credit Rating” to the “Supplier”). There can be even more complex MEPs that involve error Messages, for example.
A single MEP can be defined as a BPMN Choreography Task (see page 323). Thus, a Choreography defines the order in which Choreography Tasks occur. Sub-Choreographies allow the composition/decomposition of
Choreographies.
Business Process Model and Notation (BPMN), v2.0.2 |
315 |
Choreographies are designed in BPMN to allow stand-alone, scalable models of these Participant interactions. However, since BPMN provides other Business Process modeling views, Choreographies are designed to fit within BPMN Collaboration diagrams to display the relationship between the Choreography and Orchestration Processes thus expanding BPMN 1.2 capabilities (see page 107 for more information on Collaborations, and page 361 for Choreographies within Collaborations).
Figure 11.1 displays the metamodel of the key BPMN elements that contribute to Choreography modeling. The sub clauses of this clause will describe the characteristics of these elements and how they are used in a Choreography.
Figure 11.1 – The Choreography metamodel
The Choreography element inherits the attributes and model associations of Collaboration (see Table 9.1) and of FlowElementContainer (see Table 8.45), but does not have any additional attributes or model associations.
NOTE: The Collaboration attribute choreographyRef is not applicable to Choreography.
316 |
Business Process Model and Notation (BPMN), v2.0.2 |
11.2 Basic Choreography Concepts
A key to understanding Choreographies and how they are used in BPMN is their relationship to Pools (see page 111 for more information on Pools). Choreographies exist outside of or in between Pools. A Process, within a Pool, represents the work of a specific PartnerEntity (e.g., “FedEx”), often substituted by a PartnerRole (e.g., “Shipper”) when a PartnerEntity is not identified and can be decided later. The PartnerEntity/PartnerRole is called a Participant in BPMN. Pools are the graphical representation of Participants. A Choreography, on the other hand, is a different kind of process. A Choreography defines the sequence of interactions between Participants. Thus, a Choreography does not exist in a single Pool, it is not the purview of a single Participant. Each step in the Choreography involves two or more Participants (these steps are called Choreography Activities, see below). This means that the Choreography, in BPMN terms, is defined outside of any particular Pool.
The key question that needs to be continually asked during the development of a Choreography is “what information do the Participants in the Choreography have?” Basically, each Participant can only understand the status of the Choreography through observable behavior of the other Participants; which are the Messages that have been sent and received. If there are only two Participants in the Choreography, then it is very simple; both Participants will be aware of who is responsible for sending the next Message. However, if there are more than two Participants, then the modeler needs to be careful to sequence the Choreography Activities in such a way that the Participants know when they are responsible for initiating the interactions.
Figure 11.2 presents a sample Choreography. The details of Choreography behavior and elements will be described in the sub clause below.
|
The bands display the names of the |
|
Participants (Roles/Entities) |
Message |
Additional Participants can be added on |
additional bands (for Sub-Processes) |
I want to see |
I feel sick |
|
I need my |
the Doctor |
|
medicine |
|
|
|
||
Patient |
Patient |
Patient |
Patient |
Doctor |
Handle |
Handle |
Handle |
Request |
Symptoms |
Prescription |
Medicine |
Dr. Office |
Dr. Office |
Dr. Office |
Dr. Office |
Go see the Doctor
Pickup your medicine, then leave
The Message is shaded, so it is not the initiating Message
Here is your medicine
The unshaded Participant is the initiator of the Activity
Figure 11.2 – An example of a Choreography
To illustrate the correspondence between Collaboration and Choreography, consider an example from logistics. Figure 11.3 shows a Collaboration where the Pools are expanded to reveal orchestration details per participant (for Shipper, Retailer etc.). Message Flows connect the elements in the different Pools related to different participants, indicating Message exchanges. For example, a Planned Order Variations Message is sent by the Supplier to the Retailer; the corresponding send and receive have been modeled using regular BPMN messaging Activities. Also, a
Business Process Model and Notation (BPMN), v2.0.2 |
317 |
number of Messages of the same type being sent. For example, a Messages can be sent from the Retailer to the Supplier, indicated the actual elements for sending/receiving inside the multi-instances
number of Retailer Order and Delivery Variations by respective multi-instances constructs (for brevity, construct have been omitted).
Shipper
Receive |
Send |
Message |
Message |
Consignee |
Receive |
Send |
Receive |
Send |
Message |
Message |
Message |
Message |
|
|
|
|
|
|
Shipment |
|
Proposed |
Delivery |
Proposed |
|
Confirma- |
|
|
|
Plan |
|
|
|
|||||
|
|
Plan |
Plan & Cost |
|
tion |
|
|||
|
Variation |
|
Plan & Cost |
|
|
||||
|
|
Variation |
Variation |
|
Received |
|
|||
|
|
|
Variation |
|
|
||||
|
|
|
|
|
|
|
|
||
|
|
|
Send |
Receive |
|
|
|
|
|
|
|
|
Message |
Message |
|
|
|
|
|
Supplier |
Send |
Receive |
Receive |
|
|
Send |
Receive |
Receive |
Send |
Message |
Message |
Message |
|
|
Message |
Message |
Message |
Message |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Send |
Receive |
|
|
|
|
|
|
|
|
Message |
Message |
|
|
|
Planned |
Order & |
Deliver |
Updated PO |
PO & |
Confirma- |
PO & |
Finalized |
|
Order |
Delivery |
Checkpoint |
& Delivery |
Delivery |
tion of |
Delivery |
||
Schedule |
||||||||
Variations |
Variations |
Request |
Schedule |
Modifications |
Schedule |
Schedule |
||
|
Retailer |
Receive |
Send |
Send |
Receive |
Send |
Send |
Receive |
Send |
Receive |
Message |
Message |
Message |
Message |
Message |
Message |
Message |
Message |
Message |
|
|
|
|
|
|
|
|
|
|
Figure 11.3 – A Collaboration diagram logistics example
The scenario modeled in Figure 11.3 entails shipment planning for the next supply replenishment variations: the Supplier confirms all previously accepted variations for delivery with the Retailer; the Retailer sends back a number of further possible variations; the Supplier requests to the Shipper and Consignee possible changes in delivery; accordingly, the Retailer interacts with the Consignee and Supplier for final confirmations.
A problem with model interconnections for complex Choreographies is that they are vulnerable to errors. Interconnections might not be sequenced correctly, since the logic of Message exchanges is considered from each partner at a time. This in turn leads to deadlocks. For example, consider the PartnerRole of Retailer in Figure 11.3 and assume that, by error, the order of Confirmation Delivery Schedule and Retailer Confirmation received (far right) were swapped. This would result in a deadlock since both Retailer and Consignee would wait for the other to send a Message. Deadlocks in general, however, are not that obvious and might be difficult to recognize in a Collaboration.
Figure 11.4 shows the Choreography corresponding to the Collaboration of Figure 11.3.
318 |
Business Process Model and Notation (BPMN), v2.0.2 |