---
title: "9.1 General"
chapter: "9 Collaboration"
source: "OMG BPMN 2.0.2 — formal/2013-12-09"
pages: "107-110"
---

> 9 Collaboration · páginas 107-110 · [índice](../README.md)


<a id="sec-9-1"></a>
## 9.1 General


**NOTE:** The contents of this clause are REQUIRED for **BPMN Choreography Modeling Conformance**, **BPMN Process Modeling Conformance**, or for **BPMN Complete Conformance**. However, this clause is NOT REQUIRED for **BPMN Process Execution Conformance** or **BPMN BPEL Process Execution Conformance**. For more information about **BPMN** conformance types, see page 1. The Collaboration package contains classes that are used for modeling **Collaborations**, which is a collection of *Participants* shown as **Pools**, their interactions as shown by **Message Flows**, and MAY include **Processes** within the **Pools** and/or **Choreographies** between the **Pools** (see Figure 9.1). A **Choreography** is an extended type of **Collaboration**. When a **Collaboration** is defined it is contained in Definitions.


<a id="fig-9-1"></a>
![Figure 9.1 – Classes in the Collaboration package](../figures/fig-9-1.png)

*Figure 9.1 – Classes in the Collaboration package* (p. 108)


The **Collaboration** element inherits the attributes and model associations of BaseElement (see Table 8.5) through its relationship to RootElement. Table 9.1 presents the additional attributes and model associations for the **Collaboration** element.


<a id="tab-9-1"></a>
**Table 9.1 – Collaboration Attributes and Model Associations**

| Attribute Name | Description/Usage |
| --- | --- |
| **name**: string | Name is a text description of the **Collaboration**. |
| **choreographyRef**: Choreography [0..*] | The **choreographyRef** model association defines the **Choreographies** that can be shown between the Pools of the **Collaboration.** A **Choreography** specifies a business contract (or the order in which messages will be exchanged) between interacting *Participants*. See page 315 for more details on **Choreography**. The participantAssociations (see below) are used to map the *Participants* of the **Choreography** to the *Participants* of the **Collaboration**. The MessageFlowAssociations (see below) are used to map the **Message Flows** of the **Choreography** to the **Message Flows** of the **Collaboration**. The conversationAssociations (see below) are used to map the **Conversations** of the **Choreography** to the **Conversations** of the **Collaboration**. Note that this attribute is not applicable for **Choreography** or GlobalConversation which are a subtypes of **Collaboration**. Thus, a **Choreography** cannot reference another **Choreography**. |
| **correlationKeys**: CorrelationKey [0..*] | This association specifies used to associate **Messages** CorrelationKeys to a particular **Collaboration**. |
| **conversationAssociations**: ConversationAssociation [0..*] | This attribute provides a list of mappings from the **Conversations** of a referenced **Collaboration** to the **Conversations** of another **Collaboration**. It is used when: • When a **Choreography** is referenced by a **Collaboration**. |
| **conversations:** ConversationNode [0..*] | The model aggregation relationship allows a conversations **Collaboration** to contain **Conversation** elements, in order to group **Message Flows** of the **Collaboration** and associate *correlation* information, as is REQUIRED for the *definitional* **Collaboration** of a **Process** model. The **Conversation** elements will be visualized if the **Collaboration** is a **Collaboration**, but not for a **Choreography**. |
| **conversationLinks:** ConversationLink [0..*] | This provides the **Conversation Links** that are used in the **Collaboration**. |
| **artifacts:** Artifact [0..*] | This attribute provides the list of Artifacts that are contained within the **Collaboration**. |
| **participants**: Participant [0..*] | This provides the list of *Participants* that are used in the **Collaboration**. *Participants* are visualized as **Pools** in a **Collaboration** and as **Participant Bands** in **Choreography Activities** in a **Choreography**. |
| **participantAssociations**: ParticipantAssociations [0..*] | This attribute provides a list of mappings from the *Participants* of a referenced **Collaboration** to the *Participants* of another **Collaboration**. It is used in the following situations • When a **Choreography** is referenced by the **Collaboration**. • When a *definitional* **Collaboration** for a **Process** is referenced through a **Call Activity** (and mapped to *definitional* **Collaboration** of the calling **Process**). |
| **messageFlow**: Message Flow | This provides the list of **Message Flows** that are used in the **Collaboration**. |
| [0..*] | **Message Flows** are visualized in **Collaboration** (as dashed line) and hidden in **Choreography**. |
| **messageFlowAssociations**: Message Flow Association [0..*] | This attribute provides a list of mappings for the **Message Flows** of the **Collaboration** to **Message Flows** of a referenced model. It is used in the following situation: • When a **Choreography** is referenced by a **Collaboration**. This allows the "wiring up" of the **Collaboration Message Flows** to the appropriate **Choreography Activities**. |
| **IsClosed**: boolean = false | A boolean value specifying whether **Message Flows** not modeled in the **Collaboration** can occur when the **Collaboration** is carried out. • If the value is *true*, they MAY NOT occur. • If the value is *false*, they MAY occur. |


A set of **Messages Flow** of a particular **Collaboration** MAY belong to a **Conversation**. A **Conversation** is a set of **Message Flows** that share a particular purpose (i.e., they all relate to the handling of a single order - see page 123 for more information about **Conversations**).

