Issue 14784: Define "Pool" (bpmn2-rtf) Source: Model Driven Solutions (Mr. Cory B. Casanave, cory-c(at)modeldriven.com) Nature: Enhancement Severity: Significant Summary: The term "pool" is used extensively in the specification yet the definition seems inconsistent and not tied to the meta model. Sometimes a pool seems to be the role of a participant in a process context. In other cases it seems to be the essential container of a process. It seems to be a graphical element but shows up on ends of associations and in definitions of the semantics. The term "pool" does not seem to have any semantic relevance to process. Examples: • While a normal Process exists within a Pool, a Choreography exists between Pools (or Participants). • A Pool is the graphical representation of a Participant in a Collaboration (see page 235). It is also acts as a "swimlane" and a graphical container for partitioning a set of Activities from other Pools, usually in the context of B2B situations. • Nor can Sequence Flow cross a Pool boundary. • For message exchanges between pools, Conversations are used to group several Message Flow • A Participant is a specific business entity (e.g., a company) or a more general business role (e.g., a buyer, seller, or manufacturer) responsible for the execution of the Process enclosed in a Pool. The semantics behind of pool should be clarified and the spec should not use graphical elements to define semantics. Resolution: > The term "pool" is used extensively in the specification yet the definition seems inconsistent and not tied to the meta model. > It seems to be a graphical element but shows up on ends of associations and in definitions of the semantics. The term "pool" > does not seem to have any semantic relevance to process. The second paragraph of the Collaborations section explains that Pools are a notation for Participants. As a notation, they don't have a semantics by themselves, this is specified for Participant. Sometimes the term Pool is used interchangably with Participant, but this is in the informal way of referring to elements by their notation. One option might be to replace all uses of Pool with Participant. The relationship between participants and processes are the subject of issue 14709. > Sometimes a pool seems to be the role of a participant in a process context. In other cases it seems to be the essential container of a > process. This is the subject of issue 14774. > While a normal Process exists within a Pool, a Choreography exists between Pools (or Participants). > Nor can Sequence Flow cross a Pool boundary. > A Pool is the graphical representation of a Participant in a Collaboration (see page 235). It is also acts as a "swimlane" and a > graphical container for partitioning a set of Activities from other Pools, usually in the context of B2B situations. This is is currently a design decision taken in BPMN, that processes and interactions are separate. Can discuss more in RTF. > For message exchanges between pools, Conversations are used to group several Message Flow This follows from pools being a notation for participants in interactions. > A Participant is a specific business entity (e.g., a company) or a more general business role (e.g., a buyer, seller, or manufacturer) > responsible for the execution of the Process enclosed in a Pool. This is done with PartnerEntities or PartnerRoles linked to Participants. Participants can share the same PartnerEntity or PartnerRole. The issue is deferred for more discussion in RTF, in conjunction with issues 14709 Disposition: Deferred Revised Text: Actions taken: November 23, 2009: received issue Discussion: Comments: From: bruce created: Fri, 5 Dec 2008 18:49:53 -0600 (CST) I agree w/Cory. Pool has fundamental semantics, unlike Lane which is purely notational. Sequence flow from start to end constrained within a pool. Message flow must connect two pools. A pool can contain at most one process (not counting subprocess activities within that process). Etc. For some reason BPMN refuses to say a pool is a container for a process. Instead it says a pool is a visual expression of a "participant" - role or entity - even though behind-the-firewall collaborations between pools representing the exact same role or entity are not uncommon. They are separate pools not because they represent different participants but because of their independent lifetime and cardinality. From: mariano.benitez created: Mon, 29 Dec 2008 13:29:47 -0600 (CST) Also in the XSD schema the conversation element has a unbounded reference to a "pool" element. The MM do not mention Pool, but it is defined in the XSD. From: bruce created: Tue, 27 Jan 2009 18:28:26 -0600 (CST) The MM element for pool should be process. A BPD (sorry, "collaboration diagram") with two collaborating processes representing the exact same role or business entity contains two pools interacting via message flows. Pool is a visual element, process is the MM element. The pool always exists but sometimes is invisible. So it is a Zen visual element. From: wstephe created: Tue, 27 Jan 2009 18:47:25 -0600 (CST) I don' think that a Process is the same as a Pool. For one, a Process can appear in more than one Pool. For example, WalMart could play two Roles in a Collaboration, occupying two Pools. Those two Pools could have different Processes, but those two Pools could actually use the same Process (if the Modeler chooses). The Pool, which we have been equating to Participant lately, may or may not reference (contain) a Process. From: mariano.benitez created: Fri, 30 Jan 2009 07:53:06 -0600 (CST) Steve, In your example: Could you describe how the MM would look like in both cases (same process in both pools and different processes)? Probably I don't fully understand Collaboration, but how does a sequence flow whose target is a pool woud relate to the real process? From: bruce created: Fri, 30 Jan 2009 12:04:01 -0600 (CST) Steve's example is enlightening, because it shows the problem is lack of clarity on what is a "process." To me, his example describes two processes, not one. A BPMN process is an orchestration, a continuous flow of control from start to end events via sequence flow. A "business process" may indeed have more than one BPMN process, perhaps even performed by the same participant (WalMart), acting in same role (or different roles) in multiple pools. The reason they are separate processes/pools is that 1) they have independent lifetimes; 2) they may have independent cardinality. In BPEL no one has trouble with this distinction. A business process is very often composed of multiple BPEL processes. Why is this not a single BPEL process? For many of the same reasons as in BPMN. The BPMN spec explicitly says a process is not a "thing" but a collection of things. I don't think this is consistent with BPMN 2.0 MM. If we can agree that a BPMN process is a thing, then I think the pool question will be simpler to resolve. End of Annotations:===== ol" ##Source: Model Driven (Cory Casanave, corycasanave@modeldriven.org) ##Original Issue: http://www.osoa.org/jira/browse/BPMN-241 ##Original Info: (Severity: Significant - Nature: Enhancement) The term "pool" is used extensively in the specification yet the definition seems inconsistent and not tied to the meta model. Sometimes a pool seems to be the role of a participant in a process context. In other cases it seems to be the essential container of a process. It seems to be a graphical element but shows up on ends of associations and in definitions of the semantics. The term "pool" does not seem to have any semantic relevance to process. Examples: â While a normal Process exists within a Pool, a Choreography exists between Pools (or Participants). â A Pool is the graphical representation of a Participant in a Collaboration (see page 235). It is also acts as a "swimlane" and a graphical container for partitioning a set of Activities from other Pools, usually in the context of B2B situations. â Nor can Sequence Flow cross a Pool boundary. â For message exchanges between pools, Conversations are used to group several Message Flow â A Participant is a specific business entity (e.g., a company) or a more general business role (e.g., a buyer, seller, or manufacturer) responsible for the execution of the Process enclosed in a Pool. The semantics behind of pool should be clarified and the spec should not use graphical elements to define semantics. Comments: From: bruce created: Fri, 5 Dec 2008 18:49:53 -0600 (CST) I agree w/Cory. Pool has fundamental semantics, unlike Lane which is purely notational. Sequence flow from start to end constrained within a pool. Message flow must connect two pools. A pool can contain at most one process (not counting subprocess activities within that process). Etc. For some reason BPMN refuses to say a pool is a container for a process. Instead it says a pool is a visual expression of a "participant" - role or entity - even though behind-the-firewall collaborations between pools representing the exact same role or entity are not uncommon. They are separate pools not because they represent different participants but because of their independent lifetime and cardinality. From: mariano.benitez created: Mon, 29 Dec 2008 13:29:47 -0600 (CST) Also in the XSD schema the conversation element has a unbounded reference to a "pool" element. The MM do not mention Pool, but it is defined in the XSD. From: bruce created: Tue, 27 Jan 2009 18:28:26 -0600 (CST) The MM element for pool should be process. A BPD (sorry, "collaboration diagram") with two collaborating processes representing the exact same role or business entity contains two pools interacting via message flows. Pool is a visual element, process is the MM element. The pool always exists but sometimes is invisible. So it is a Zen visual element. From: wstephe created: Tue, 27 Jan 2009 18:47:25 -0600 (CST) I don' think that a Process is the same as a Pool. For one, a Process can appear in more than one Pool. For example, WalMart could play two Roles in a Collaboration, occupying two Pools. Those two Pools could have different Processes, but those two Pools could actually use the same Process (if the Modeler chooses). The Pool, which we have been equating to Participant lately, may or may not reference (contain) a Process. From: mariano.benitez created: Fri, 30 Jan 2009 07:53:06 -0600 (CST) Steve, In your example: Could you describe how the MM would look like in both cases (same process in both pools and different processes)? Probably I don't fully understand Collaboration, but how does a sequence flow whose target is a pool woud relate to the real process? From: bruce created: Fri, 30 Jan 2009 12:04:01 -0600 (CST) Steve's example is enlightening, because it shows the problem is lack of clarity on what is a "process." To me, his example describes two processes, not one. A BPMN process is an orchestration, a continuous flow of control from start to end events via sequence flow. A "business process" may indeed have more than one BPMN process, perhaps even performed by the same participant (WalMart), acting in same role (or different roles) in multiple pools. The reason they are separate processes/pools is that 1) they have independent lifetimes; 2) they may have independent cardinality. In BPEL no one has trouble with this distinction. A business process is very often composed of multiple BPEL processes. Why is this not a single BPEL process? For many of the same reasons as in BPMN. The BPMN spec explicitly says a process is not a "thing" but a collection of things. I don't think this is consistent with BPMN 2.0 MM. If we can agree that a BPMN process is a thing, then I think the pool question will be simpler to resolve.