When a BPMN collaboration has many participants each with their own
processRef, is it good practice to write each participants' process as
a separate BPMN file that is imported in a top level BPMN file that
contains the collaboration element?
It seems like a good practice since each process and teh collaboration
are in their own targetNamespace, thus minimizing chance of id
conflicts. It also makes the individual processes more manageable and
conducive to be authored by separate individuals.
Here is the summary of what I am thinking:
-Each participant's BPMN process SHOULD be described in a separate
-The BPMN collaboration between the participants' processes SHOULD be
defined by a separate BPMN file
-Each process BPMN file and the collaboration BPMN file SHOULD have
distinctly separate namespaces
-The collaboration BPMN SHOULD import the process BPMN files using an
importType of “http://www.omg.org/spec/BPMN/20100524/MODEL
Does this modular make sense compared to a single monolithic BPMN file
that has it all as exemplified by the examples package published by
BPMN team ( http://www.omgwiki.org/bpmn2.0-ftf/doku.php?id=public:sub-teams:examples
If such a modular approach is good, then I am unsure how to deal with
messageDefinition and itemDefinition elements that are used in
multiple processes and the messageFlows elements in the collaboration.
Where should these be defined? Should these be in a separate BPMN file
that is imported by all the other BPMN files?
Thanks for sharing best practices in writing modular BPMN.