BPMN 2.0 FTF Avatar
  1. OMG Issue

BPMN2 — Beta 1 Section 11 Conversation:

  • Key: BPMN2-117
  • Legacy Issue Number: 14654
  • Status: closed  
  • Source: BPM Advantage Consulting ( Dr. Stephen White)
  • Summary:

    Beta 1 Section 11 Conversation: The concepts of Conversation, Conversation Diagram, and Communication are too confusing. The distinctions between Conversation and Communication are not clear. It appears as though the Conversation is used for multiple concepts, including a diagram. This should be clarified.

  • Reported: BPMN 2.0b1 — Thu, 19 Nov 2009 05:00 GMT
  • Disposition: Resolved — BPMN 2.0
  • Disposition Summary:

    The proposal is to merge the Collaboration and Conversation diagrams.
    While the proposal is complicated it will:

    • Significantly simplify implementation by reducing the number of metamodel elements, metamodel complexity, and required text restriction
    • Provides a better alignment with another standard: SoaML
    • There would be no loss of current end-user functionality
      The Proposal includes:
      (a) Delete Chapter 11. It's contents will be moved to Chapter 9 as detailed below
      Modifications to Section 8
      (b) Section 8, page 39 (69 pdf), last paragraph: change "Choreography, Collaboration, and Conversation" to "Choreography, and Collaboration"
      (c) Figure 8.3, replace figure with new organization of Core elements (see Specification Convenience Document)
      (d) Section 8.3, page 55 (85 pdf), first sentence: change "Collaboration, Conversation, and Choreography" to "Collaboration, and Choreography"
      (f) Figure 8.8, replace figure with new organization of Artifact elements (see Specification Convenience Document)
      (g) Section 8.3.2, page 63 (93 pdf), replace first sentence with: "CallableElement is the abstract super class of all elements that have been defined outside of a Process,
      but which can be called (or reused), by a Call Activity, from within a Process."
      (h) Section 8.3.2, page 63 (93 pdf), add at the end of the first paragraph: "The BPMN elements that can be called by Call Activities (i.e., are Callable Elements) are:
      Process and GlobalTask (see Figure 8.17)."
      Figure 8.17, replace figure with new organization of Callable elements (see Specification Convenience Document)
      (j) Move Section 8.3.2 to a subsection of Section 10.2.6
      (k) Section 8.3.3, page 65 (95 pdf), change first sentence to: "The concept of Correlation facilitates the association of a Message to a Send Task or Receive Task,
      often in the context of a Conversation, which is also known as instance routing."
      (l) Section 8.3.3, page 65 (95 pdf), second sentence: change "Conversation, Choreography" to "Collaboration (Conversation), Choreography"
      (m) Figure 8.18, replace figure with new organization of Correlation elements (see Specification Convenience Document)
      Table 8.32, CorrelationKey: delete the row for the conversation attribute
      (o) Section 8.3.4, page 71 (101 pdf), replace first paragraph with "These elements are used to do mapping between two elements that both contain Conversation
      Nodes. The ConverstaqionAssociation provides the mechanism to match up the Conversation Nodes."
      (p) Section 8.3.4, page 71 (101 pdf), second paragraph, delete second sentence
      (q) Section 8.3.4, page 71 (101 pdf), replace first bullet on page with: "A Collaboration references a Choreography for inclusion between the Collaboration's Pools
      (Participants). The Conversation Nodes of the Choreography (the inner diagram) need to be mapped to the Conversation Nodes of the Collaboration (the outer
      diagram)."
      (r) Section 8.3.4, page 71 (101 pdf), delete second bullet on page
      (s) Figure 8.18, replace figure with new organization of Conversation elements (see Specification Convenience Document)
      (t) Table 8.42, page 72 (102 pdf), delete first row of table
      (u) Table 8.42, page 72 (102 pdf), replace first column of second row with: "innerConversationNodeRef: ConversationNode"
      (v) Table 8.42, page 72 (102 pdf), replace second column of second row with: "This attribute defines the Conversation Nodes of the referenced element (e.g., a
      Choreography to be used in a Collaboration) that will be mapped to the parent element (e.g., the Collaboration)."
      (w) Table 8.42, page 72 (102 pdf), replace first column of third row with: "outerConversationNodeRef: ConversationNode"
      Table 8.42, page 72 (102 pdf), replace second column of third row with: "This attribute defines the Conversation Nodes of the parent element (e.g., a
      Collaboration references a Choreography) that will be mapped to the referenced element (e.g., the Choreography)."
      Move Section 8.3.4 to Section 11 after Section 11.7. The Contents of Section 11 will be moved to Section 9 as described below.
      (z) Figure 8.24, replace figure with new organization of Flow Element Container elements (see Specification Convenience Document)
      (a2) Table 8.46: delete second row (artifacts attribute)
      (b2) Delete section 8.3.11, Interaction Specification. All Interaction Specification characters have been moved to Collaboration (Section 9 and detailed below)
      (c2) Section 8.3.14, page 87 (117 pdf), first paragraph (non-bullet): delete "(the view showing the Choreography Process Combined with Orchestration Processes)"
      from first sentence.
      (d2) Section 8.3.14, page 88 (118 pdf), first paragraph : Change "Choreography Task" to "Choreography"
      (e2) Figure 8.24, replace figure with new organization of Flow Element Container elements (see Specification Convenience Document)
      (f2) Section 8.3.14, Sub-Section Message Flow Association, page 90 (120 pdf), second paragraph: Delete second sentence
      (g2) Section 8.3.14, Sub-Section Message Flow Association, page 90 (120 pdf): Delete the second and third bullet on the page.
      (h2) Figure 8.39, replace figure with new organization of Message Flow Association elements (see Specification Convenience Document)
      (i2) Move Section 8.3.14 to Section 9 and make it Section 9.3
      (j2) Section 8.3.15, page 91 (121 pdf), second paragraph, second sentence: Change "InteractionSpecification" to "Collaboration"
      (k2) Section 8.3.15, page 91 (121 pdf), second paragraph, second sentence: Change "Collaboration, a Choreography, a Conversation, a Global Communication, or a
      GlobalChoreographyTask" to "Choreography, GlobalConversation, or GlobalChoreographyTask"
      (l2) Figure 8.40, replace figure with new organization of Participant elements (see Specification Convenience Document)
      (m2) Section 8.3.15, Sub-Section Participant Multiplicity, second paragraph: Change "Choreography" to "Collaboration"
      (n2) Section 8.3.15, Sub-Section Participant Association, second paragraph: Change "three (3)" to "four (4)"
      (o2) Section 8.3.15, Sub-Section Participant Association: replace the second bullet with the following: "A CallConversation references a Collaboration or
      GlobalConversation. Thus, the Participants of the Collaboration or GlobalConversation (the inner diagram) need to be mapped to the Participants referenced by the
      CallConversation (the outer element). Each CallConversation contains its own set of ParticipantAssociations."
      (p2) Section 8.3.15, Sub-Section Participant Association: replace the third bullet with the following: "A CallChoreography references a Choreography or
      GlobalChoreographyTask. Thus, the Participants of the Choreography or GlobalChoreographyTask (the inner diagram) need to be mapped to the Participants
      referenced by the CallChoreography (the outer element). Each CallChoreography contains its own set of ParticipantAssociations."
      (q2) Section 8.3.15, Sub-Section Participant Association: add a forth bullet with the following: "A CallActivity within a Process that has a definitional Collaboration
      references another Process that also has a definitional Collaboration. The Participants of the definitional Collaboration of the called Process (the inner diagram) need to
      be mapped to the Participants of the definitional Collaboration of the calling Process (the outer diagram)."
      (r2) Figure 8.43, replace figure with new organization of Participant Association elements (see Specification Convenience Document)
      (s2) Move Section 8.3.15 to Section 9 and make it Section 9.2.1
      (t2) Move Table 8.62 to Section 10.2.9
      (u2) Table 8.63, replace the "extension" section of the table with the following:
      "<xsd:extension base="tBaseElement">
      <xsd:sequence>
      <xsd:element name="innerConversationNodeRef" type="xsd:QName"/>
      <xsd:element name="outerConversationNodeRef" type="xsd:QName"/>
      </xsd:sequence>
      </xsd:extension>"
      (v2) Move Tables 8.63, 8.72, 8.73, 8.74, 8.75, 8.76, and 8.77 to Section 9.5 Collaboration Package XML Schemas
      Modifications to Section 7
      (w2) Section 7.1.1, Sub-Section Conversations, first paragraph, first sentence: change "The Conversation diagram is similar to a Collaboration diagram" to "The
      Conversation diagram is a particular usage of and an informal description of a Collaboration diagram"
      (x2) Section 7.1.1, Sub-Section Conversations, first paragraph, second sentence: change "Pools of a Conversation are not allowed to contain a Process and a
      Choreography is not allowed to be placed in between the Pools" to "Pools of a Conversation are usually do not contain a Process and a Choreography is usually not
      placed in between the Pools"
      (y2) Section 7.1.1, Sub-Section Conversations, second paragraph: change "Communication" to "Conversation"
      Modifications to Section 9
      (z2) Section 9, second paragraph: after the first sentence add the following sentence: "A Choreography is an extended type of Collaboration."
      (a3) Figure 9.1, replace figure with new organization of Collaboration elements (see Specification Convenience Document)
      (b3) Section 9, paragraph before Table 9.1: delete ", and InteractionSpecification (see Table 8.48)"
      (c3) Table 9.1: add row to top of table with "name: string [0..1]" in the first column and "The descriptive name of the Collaboration." in the second column.
      (d3) Table 9.1, choreographyRef attribute row: replace the second column with the following:
      "The choreographyRef model association defines a Choreography that is 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 327 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."
      (e3) Table 9.1: add row after ChoreographyRef attribute row with "correlationKey: CorrelationKey [0..*]" in the first column and "This association specifies
      correlationKeys used to associate Messages to a particular Collaboration." in the second column.
      (f3) Table 9.1, conversationAssociations attribute row: replace the second column with the following:
      "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."
      (g3) Table 9.1, conversations attribute row: replace "Conversation" with "ConversationNode"
      (h3) Table 9.1, conversations attribute row: replace the second column with the following:
      "The conversations model aggregation relationship allows a Collaboration to contain Conversation elements, in order to group Message Flow 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."
      (i3) Table 9.1: add row after artifacts attribute row with "participants: Participant [0..*]" in the first column and "This provides the list of Participants that are used in the
      Collaboration. Participants are visualized as Pools in Collaboration and as Participant Bands in Choreography Activities for Choreography." in the second column.
      (j3) Table 9.1, participantAssociations attribute row: replace the second column with the following:
      "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 a Collaboration.
      • When a definitional Collaboration for a Process is referenced through a CallActivity (and mapped to definitional Collaboration of the calling Process)."
      (l3) Table 9.1: add row after participantAssociations attribute row with "messageFlow: Message Flow [0..*]" in the first column and "This provides the list of Message
      Flow that are used in the Collaboration. Message Flow are visualized in Collaboration (as dashed line) and hidden in Choreography." in the second column.
      (m3) Table 9.1, messageFlowAssociations attribute row: replace the second column with the following:
      "This attribute provides a list of mappings for the Message Flow of the Collaboration to Message Flow of a referenced model. It is used in the following situations:
      • When a Choreography is referenced by a Collaboration. This allows the "wiring up" of the Collaboration Message Flow to the appropriate Choreography Activities."
      (n3) Section 9, after Table 9.1: split first paragraph into two paragraphs after the first sentence
      (o3) Section 9, after Table 9.1: replace the first sentence of the newly created paragraph (the second paragraph) with the following: "Correlations are the mechanism
      that is used to assign the Messages to the proper Process instance, and can be defined for the Message Flow that belong to a Conversation."
      (p3) Move the text from the newly created paragraph until the end of the section (stopping at Section 9.1) to a new section (to be created) and label that section "9.4.8
      Correlations"
      (q3) Section 9.2, first paragraph, first sentence: delete "or a Choreography"
      (r3) Section 9.3: Change title of section to "Process within Collaboration"
      (s3) Figure 9.8, replace figure with new organization of Choreography and Collaboration elements (see Specification Convenience Document)
      (t3) Table 9.2, Collaboration XML Schema: Change "<xsd:element ref="conversation"" to "<xsd:element ref="conversationNode""
      (u3) Table 9.2, Collaboration XML Schema: add the following to the <xsd:sequence> section:
      "<xsd:element ref="correlationKey" minOccurs="0" maxOccurs="unbounded"/>"
      Modifications to Section 10
      (v3) Figure 10.2, replace figure with new organization of Process detail elements (see Specification Convenience Document)
      (w3) Table 10.3: add row after laneSets attribute row with "artifacts: Artifact [0..*]" in the first column and "This attribute provides the list of Artifacts that are
      contained within the Process." in the second column.
      (x3) Figure 10.28, replace figure with new organization of Sub-Process elements (see Specification Convenience Document)
      (y3) Table 10.3: add row after triggeredByEvent attribute row with "artifacts: Artifact [0..*]" in the first column and "This attribute provides the list of Artifacts that are
      contained within the Sub-Process." in the second column.
      Modifications to Section 11
      (z3) Section 11: Replace "Communication" with "Conversation" throughout section
      (a4) Section 11: Replace "GlobalCommunication" with "GlobalConversation" throughout section
      (b4) Section 11: Replace "CommunicationLink" with "ConversationLink" throughout section
      (c4) Section 11: replace first paragraph with the following: "The Conversation diagram is a particular usage of and an informal description of a Collaboration diagram.
      In general, it is a simplified version of Collaboration, but Conversation diagrams do maintain all the features of a Collaboration."
      (d4)Section 11: replace first bullet in section with the following: "Conversation Node elements (Conversation, Sub-Conversation, and Call Conversation)"
      (e4) Section 11, first sentence after second bullet: replace sentence with the following: "A Conversation is a logical grouping of Message exchanges (Message Flow)
      that can share a Correlation."
      (f4) Section 11, first paragraph after Figure 11.1: add the following to the end of the paragraph: "Note that the diagram looks the same as a simple Collaboration
      diagram (as in Figure 9.3, above)."
      (g4) Section 11, second paragraph after Figure 11.2: add the following to the end of the sentence: ", but the Conversations are not visualized in a Choreography"
      (h4) Section 11, third paragraph after Figure 11.2, first sentence: replace "Choreography" with "Collaboration"
      (i4) Section 11: delete Figure 11.5 and the paragraph above it.
      (j4) Section 11: delete Table 11.1, the paragraph above it and the paragraph below it.
      (k4) Delete Section 11.1
      (l4) Section 11.2, first paragraph: replace "all elements that can appear in a Conversation diagram" with "all elements that comprise the Conversation elements of a
      Collaboration diagram"
      (m4) Section 11.2: add figure after first paragraph with the title: "Metamodel of ConversationNode Related Elements" (see Specification Convenience Document)
      (n4) Table 11.3: add row with "messageFlowRefs: MessageFlow [0..*]" in the first column and "A reference to all Message Flows (and consequently Messages)
      grouped by a Conversation element." in the second column.
      (o4) Table 11.3 : add row with "correlationKeys: CorrelationKey [0..*]" in the first column and "This is a list of the ConversationNode's correlationKeys, which are
      used to group Message Flows for the ConversationNode." in the second column.
      (p4) Section 11.3, first sentence: change "Conversation diagram" to "Conversation (Collaboration) diagram"
      (q4) Section 11.3. second sentence: replace "single" with "concept and/or a"
      (r4) Section 11.3, first paragraph before Table 11.4: Delete second sentence and add the following to the end of the first sentence: "but does not contain any additional
      attributes or model associations"
      (s4) Delete Table 11.4
      (t4) Section 11.4, first paragraph, first sentence: replace "parent Conversation" with "parent Collaboration"
      (u4) Section 11.4, first paragraph, second sentence: replace "within a Conversation" with "within a Collaboration"
      (v4) Table 11.5: replace the first column of the first row with the following: "conversationNodes: ConversationNode [0..*]"
      (w4) Table 11.5: replace the second column of the first row with the following: "The ConversationNodes model aggregation relationship allows a Sub-Conversation to
      contain other ConversationNodes, in order to group Message Flow of the Sub-Conversation and associate correlation information."
      (x4) Section 11.5, first sentence: change "in the Conversation" to " in the Conversation (Collaboration)"
      (y4) Section 11.5, second bullet: change "calls a Conversation" to "calls a Collaboration"
      (z4) Table 11.6, first row, first column: change "calledElementRef" to "calledCollaborationRef" and change "CallableElement" to "Collaboration"
      (a5) Table 11.6, first row: replace second column with the following:
      "The element to be called, which MAY be either a Collaboration or a GlobalConversation.
      The called element MUST NOT be a Choreography or a GlobalChoreographyTask (which are subtypes of Collaboration)"
      (b5) Section 11.5: add the following after Table 11.6: "Note - The ConversationNode attribute messageFlowRef doesn't apply to Call Conversations."
      (c5) Section 11.6, first sentence: Change "within any Conversation" to "within any Collaboration"
      (d5) Section 11.6: Replace the second paragraph with the following:
      "The GlobalConversation element inherits the attributes and model associations of Collaboration (see Table 8.48), but does not have any additional attributes or model
      associations.
      A GlobalConversation is a restricted type of Collaboration, it is an "empty Collaboration."
      [diamond bullet] A GlobalConversation MUST NOT contain any ConversationNodes.
      Since a GlobalConversation does not have any Flow Elements, it does not require MessageFlowAssociations, ParticipantFlowAssociations, or
      ConversationFlowAssociations or Artifacts. It is basically a set of Participants, Message Flows , and correlationKeys intended for reuse. Also, the Collaboration
      attribute choreographyRef is not applicable to GlobalConversation."
      (e5) Delete Table 11.7
      (f5) Move all tables in Section 11.8 (XML Schemas) to Section 9.5
      (g5) Move all remaining contents of Section 11 to Section 9.4 and name that section "Conversations"
      Modifications to Section 12
      (h5) Replace "Choreography Sub-Process" with "Sub-Choreography" throughout section
      (i5) Figure 12.1, replace figure with new organization of Choreography elements (see Specification Convenience Document)
      (j5) Section 12.1, first paragraph after Figure 12.1: replace "CallableElement" with "Collaboration"
      (k5) Section 12.1, first paragraph after Figure 12.1: Delete the second sentence and add the following to the end of the first sentence: ", but does not have any
      additional attributes or model associations.
      (l5) Delete Table 12.1
      (m5) Add the following paragraph to the end of the section (before Section 12.1): "Note - The Collaboration attribute choreographyRef is not applicable to
      Choreography."
      (n5) Section 12.3.1, page 313 (343 pdf), last bullet on page, first sentence: replace "the isClosed attribute of a Choreography" with "the isClosed attribute (from
      Collaboration)"
      (o5) Figure 12.6: replace figure with new organization of Choreography Activity elements (see Specification Convenience Document)
      (p5) Section 12.4.2, last paragraph in section (before Section 12.4.3): replace the second sentence with the following: "Table 12.X presents the additional model
      associations of the Sub-Choreography element"
      (q5) Section 12.4.2, after last paragraph in section: Add a table entitled "Sub-Choreography Model Associations" with one row, with "artifacts: Artifact [0..*]" in the
      first column and "This attribute provides the list of Artifacts that are contained within the Sub-Choreography." in the second column
      (r5) Replace "Call Choreography Activity" with "Call Choreography" throughout section
      (s5) Figure 12.27, replace figure with new organization of Call Choreography elements (see Specification Convenience Document)
      (t5) Table 12.4, first row, first column: change "calledElementRef" to "calledChoreographyRef" and change "CallableElement" to "Choreography"
      (u5) Table 12.4, first row, second column: delete second sentence of column
      (v5) Table 12.4, second row, second column: change "containing" to "referenced by"
      (w5) Section 12.4.4, second paragraph, first sentence: Change "CallableElement" to "Collaboration" and add the following to the end of the sentence: "through its
      relationship to Choreography"
      (x5) Section 12.4.4: add the following after Table 12.5:
      "A GlobalChoreographyTask is a restricted type of Choreography, it is an "empty Choreography."
      [diamond bullet] A GlobalChoreographyTask MUST NOT contain any Flow Elements.
      Since a GlobalChoreographyTask does not have any Flow Elements, it does not require MessageFlowAssociations, ParticipantFlowAssociations, or
      ConversationFlowAssociations or Artifacts. It is basically a set of Participants and Message Flows intended for reuse."
      (y5) Table 12.9: change "substitutionGroup="rootelement"" to "substitutionGroup="collaboration""
      (z5) Table 12.9: change "base="tCallableElement"" to "base="tCollaboration""
      (a6) Table 12.9: delete the following:
      "<xsd:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element ref="messageFlow" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element ref="participant" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element ref="conversation" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="conversationAssociation" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element ref="messageFlowAssociation" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element ref="participantAssociation" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:attribute name="isClosed" type="xsd:boolean" default="false"/>"
      (b6) Table 12.10: change "substitutionGroup="rootelement"" to "substitutionGroup="choreography""
      (c6) Table 12.10: change "base="tCallableElement"" to "base="tChoreography""
      (d6) Table 12.10: delete the following:
      "<xsd:sequence>
      <xsd:element ref="participant" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element ref="messageFlow" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence>"
      (e6) Table 12.13: change "calledElement" to "calledChoreographyRef"
      Disposition: Resolved
  • Updated: Fri, 6 Mar 2015 20:57 GMT