Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Stardust/Enhancing and Embedding Stardust/Browser Modeler/BPMN Mapping"

(BPMN Import)
(Addendum (Transformation / Interpretation))
 
(38 intermediate revisions by the same user not shown)
Line 1: Line 1:
This page documents how Stardust relates to and supports BPMN 2.0 with respect to a) modeling support (browser modeler) and b) engine support (i.e. transformation of BPMN 2.0 XML into the Stardust object model).
+
This page documents how Stardust relates to and supports BPMN 2.0 with respect to a) modeling support (browser modeler) and b) engine support (i.e. transformation of BPMN 2.0 XML into the Stardust object model).  
  
 
The description targets the graphical BPMN elements as well as several supporting elements basically not visible in a process model.  
 
The description targets the graphical BPMN elements as well as several supporting elements basically not visible in a process model.  
  
The following aspects/items are provided for each (if applicable):
+
The following aspects/items are provided for each (if applicable):  
  
'''Spec:''' a hint on where to find a description in the BPMN 2.0 specification (i.e. class model and attributes/relations)
+
'''Spec:''' a hint on where to find a description in the BPMN 2.0 specification (i.e. class model and attributes/relations)  
  
'''BPMN Modelling Conformance Subclasses:''' the conformance subclasses to which the element belongs (cp. chapter 2 of the BPMN 2.0 specification)
+
'''BPMN Modelling Conformance Subclasses:''' the conformance subclasses to which the element belongs (cp. chapter 2 of the BPMN 2.0 specification)  
  
'''Modeler support:''' whether/how the browser modeler supports the corresponding element
+
'''Modeler support:''' whether/how the browser modeler supports the corresponding element  
  
'''Stardust Support: ''' extent of execution support / limitations.
+
'''Execution Support: ''' extent of execution support / limitations.  
  
'''Mapping Description:''' which stardust element or configuration/construct corresponds to the BPMN element (i.e. how to reach the intended behaviour or functionality)
+
'''Mapping Description:''' which stardust element or configuration/construct corresponds to the BPMN element (i.e. how to reach the intended behaviour or functionality)  
  
 
'''Transformation:''' current state of transformation  
 
'''Transformation:''' current state of transformation  
  
'''Testmodel(s):''' link(s) to BPMN XML testmodels (with Stardust extensions, if available) with corresponding elements
+
'''Testmodel(s):''' link(s) to BPMN XML testmodels (with Stardust extensions, if available) with corresponding elements  
  
 
'''see also:''' link(s) to related or supporting elements providing more  
 
'''see also:''' link(s) to related or supporting elements providing more  
  
'''Attributes:''' usage / mapping of BPMN element attributes. In general, only the element-specific attributes are considered (not inherited from upper classes).
+
'''Attributes:''' usage / mapping of BPMN element attributes. In general, only the element-specific attributes are considered (not inherited from upper classes).  
  
'''Related Elements:''' usage / mapping of BPMN element model associations  
+
'''Related Elements:''' usage / mapping of BPMN element model associations (types declared in square brackets)
  
'''Extension Elements/Attributes:''' extensions to BPMN for Stardust specific information and links to object model classes, if available (note '::<super>' is used to indicate a superclass)
+
'''Extension Elements/Attributes:''' extensions to BPMN for Stardust specific information and links to object model classes, if available (note '::&lt;super&gt;' is used to indicate a superclass)  
 
+
'''Specific types:''' list of more specific elements / subclasses not yet described separately
+
  
 +
'''Specific types:''' list of more specific elements / subclasses not yet described separately
  
 +
<br>
  
 
== <br>Callable Elements  ==
 
== <br>Callable Elements  ==
Line 37: Line 37:
 
'''Spec:''' OMG p.146f  
 
'''Spec:''' OMG p.146f  
  
'''Stardust Support: ''' full  
+
'''Execution Support: ''' full  
  
 
'''Mapping Description:''' BPMN processes correspond to processes in Stardust.  
 
'''Mapping Description:''' BPMN processes correspond to processes in Stardust.  
Line 45: Line 45:
 
'''Testmodel(s):''' e.g. [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/CollapsedSubprocess.bpmn CollapsedSubprocess.bpmn] (any testmodel contains at least one process).  
 
'''Testmodel(s):''' e.g. [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/CollapsedSubprocess.bpmn CollapsedSubprocess.bpmn] (any testmodel contains at least one process).  
  
'''see also:''' [[#BPMN callActivity|callActivity]]  
+
'''see also:''' [[#BPMN_callActivity|callActivity]]  
  
 
'''Related Elements'''  
 
'''Related Elements'''  
Line 57: Line 57:
 
*Interface: tbd
 
*Interface: tbd
  
 +
<br>
  
 
==== BPMN globalTask  ====
 
==== BPMN globalTask  ====
Line 64: Line 65:
 
'''BPMN Modelling Conformance Subclasses:''' -  
 
'''BPMN Modelling Conformance Subclasses:''' -  
  
'''Stardust Support: ''' partial  
+
'''Execution Support: ''' partial  
  
 
'''Mapping Description:''' BPMN Global Tasks are not directly available in Stardust, however, a process with a corresponding 'global task' can be generated.  
 
'''Mapping Description:''' BPMN Global Tasks are not directly available in Stardust, however, a process with a corresponding 'global task' can be generated.  
Line 70: Line 71:
 
'''Transformation:''' TODO  
 
'''Transformation:''' TODO  
  
Task call: see [[#BPMN callActivity|callActivity]]  
+
Task call: see [[#BPMN_callActivity|callActivity]]  
  
 
'''Related Elements'''  
 
'''Related Elements'''  
Line 80: Line 81:
 
'''Specific types'''  
 
'''Specific types'''  
  
*globalUserTask: see [[#BPMN userTask|userTask]]  
+
*globalUserTask: see [[#BPMN_userTask|userTask]]  
*globalManualTask: see [[#BPMN manualTask|manualTask]]  
+
*globalManualTask: see [[#BPMN_manualTask|manualTask]]  
*globalScriptTask: see [[#BPMN scriptTask|scriptTask]]  
+
*globalScriptTask: see [[#BPMN_scriptTask|scriptTask]]  
*globalBusinessRuleTask: see [[#BPMN businessRuleTask|businessRuleTask]]
+
*globalBusinessRuleTask: see [[#BPMN_businessRuleTask|businessRuleTask]]
 
+
  
 +
<br>
  
 
== Activities / Subprocesses  ==
 
== Activities / Subprocesses  ==
Line 95: Line 96:
 
**HibernateOnCreation
 
**HibernateOnCreation
  
 +
<br>
  
 
==== BPMN subProcess  ====
 
==== BPMN subProcess  ====
Line 102: Line 104:
 
'''BPMN Modelling Conformance Subclasses:''' Executable (expanded) / Descriptive / Analytic  
 
'''BPMN Modelling Conformance Subclasses:''' Executable (expanded) / Descriptive / Analytic  
  
'''Stardust Support: ''' partial (collapsed subprocesses)  
+
'''Execution Support: ''' partial (collapsed subprocesses)  
  
 
'''Mapping Description:''' BPMN Sub-Processes correspond to Stardust Sub-Processes. In Stardust, subprocess-activities call a process whilst BPMN subprocesses contain their process elements (i.e. they are flow element containers). However, by specifying the called process in stardust as 'synchronous with shared data', the behaviour and even data visibility are similar to BPMN.  
 
'''Mapping Description:''' BPMN Sub-Processes correspond to Stardust Sub-Processes. In Stardust, subprocess-activities call a process whilst BPMN subprocesses contain their process elements (i.e. they are flow element containers). However, by specifying the called process in stardust as 'synchronous with shared data', the behaviour and even data visibility are similar to BPMN.  
Line 117: Line 119:
 
*EventSubprocess: tbd
 
*EventSubprocess: tbd
  
 +
<br>
  
 
==== BPMN callActivity  ====
 
==== BPMN callActivity  ====
 
::Activity
 
  
 
'''Spec:''' OMG p.183f,  
 
'''Spec:''' OMG p.183f,  
Line 126: Line 127:
 
'''BPMN Modelling Conformance Subclasses:''' Executable / Descriptive / Analytic  
 
'''BPMN Modelling Conformance Subclasses:''' Executable / Descriptive / Analytic  
  
'''Stardust Support: ''' partial (no direct call of GlobalTask)  
+
'''Execution Support: ''' partial (no direct call of GlobalTask)  
  
'''Mapping Description:''' Call Activities correspond to the Stardust Subprocess Activity, whereas the configuration differs from a default Subprocess call (cp. BPMN [[#BPMN subProcess|Sub-Process]]) with respect to the data visibility (i.e. separate data).  
+
'''Mapping Description:''' Call Activities correspond to the Stardust Subprocess Activity, whereas the configuration differs from a default Subprocess call (cp. BPMN [[#BPMN_subProcess|Sub-Process]]) with respect to the data visibility (i.e. separate data).  
  
 
'''Transformation:''' todo  
 
'''Transformation:''' todo  
Line 146: Line 147:
 
*tbd (::StardustActivity)
 
*tbd (::StardustActivity)
  
 +
<br>
  
 
===== Process Call  =====
 
===== Process Call  =====
Line 151: Line 153:
 
'''Mapping Description:''' The Stardust Sub-process Activity synchronously calls a process with separate data (i.e. process parameters / input-/output-paths are used, mapped to BPMN Process DataInput/DataOutput elements).  
 
'''Mapping Description:''' The Stardust Sub-process Activity synchronously calls a process with separate data (i.e. process parameters / input-/output-paths are used, mapped to BPMN Process DataInput/DataOutput elements).  
  
'''Transformation:''' todo  
+
'''Transformation:''' todo<br>
 
+
  
 
===== GlobalTask Call  =====
 
===== GlobalTask Call  =====
  
'''Mapping Description:''' Global tasks are transformed to Stardust Processes containing an Activity that corresponds to the GlobalTask (see [[#BPMN globalTask|globalTask]]). The call then works similar to [[#BPMN Process_Call|Process Call]].  
+
'''Mapping Description:''' Global tasks are transformed to Stardust Processes containing an Activity that corresponds to the GlobalTask (see [[#BPMN_globalTask|globalTask]]). The call then works similar to [[#BPMN_Process_Call|Process Call]].  
  
 
'''Transformation:''' todo  
 
'''Transformation:''' todo  
  
 +
<br>
  
 
== Tasks  ==
 
== Tasks  ==
Line 169: Line 171:
 
'''BPMN Modelling Conformance Subclasses:''' Descriptive / Analytic  
 
'''BPMN Modelling Conformance Subclasses:''' Descriptive / Analytic  
  
'''Stardust Support: ''' full  
+
'''Execution Support: ''' full  
  
 
'''Mapping Description:''' BPMN unspecific task is not executable. It is mapped to a Route Activity in Stardust.  
 
'''Mapping Description:''' BPMN unspecific task is not executable. It is mapped to a Route Activity in Stardust.  
Line 177: Line 179:
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/AbstractTask.bpmn AbstractTask.bpmn]  
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/AbstractTask.bpmn AbstractTask.bpmn]  
  
 +
<br>
  
 
==== BPMN userTask  ====
 
==== BPMN userTask  ====
Line 184: Line 187:
 
'''BPMN Modelling Conformance Subclasses:''' Executable / Descriptive / Analytic  
 
'''BPMN Modelling Conformance Subclasses:''' Executable / Descriptive / Analytic  
  
'''Stardust Support: ''' full  
+
'''Execution Support: ''' full  
  
 
'''Mapping Description:''' BPMN user tasks correspond to Stardust Manual Activities or Interactive Activites respectively.  
 
'''Mapping Description:''' BPMN user tasks correspond to Stardust Manual Activities or Interactive Activites respectively.  
Line 204: Line 207:
  
 
*[http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustUserTaskType.java StardustUserTaskType] StardustUserTaskType (::StardustActivity)  
 
*[http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustUserTaskType.java StardustUserTaskType] StardustUserTaskType (::StardustActivity)  
**interactiveApplicationRef -&gt; BPMN Interface, see also [[#BPMN Interface|Interface]]
+
**interactiveApplicationRef -&gt; BPMN Interface, see also [[#BPMN_Interface|Interface]]
  
 +
<br>
  
 
==== BPMN serviceTask  ====
 
==== BPMN serviceTask  ====
Line 213: Line 217:
 
'''BPMN Modelling Conformance Subclasses:''' Executable / Descriptive / Analytic  
 
'''BPMN Modelling Conformance Subclasses:''' Executable / Descriptive / Analytic  
  
'''Stardust Support: ''' full (WebServices, Plain Java, Spring Beans, Transformation, Parsing, DMS Operation...)  
+
'''Execution Support: ''' full (WebServices, Plain Java, Spring Beans, Transformation, Parsing, DMS Operation...)  
  
 
'''Mapping Description:''' BPMN service tasks are mapped to Stardust (non-interactive) application tasks.  
 
'''Mapping Description:''' BPMN service tasks are mapped to Stardust (non-interactive) application tasks.  
Line 227: Line 231:
 
'''Related Elements'''  
 
'''Related Elements'''  
  
*operationRef [Operation]: used to identify the Interface holding the application details (see [[#BPMN Interface|Interface]])
+
*operationRef [Operation]: used to identify the Interface holding the application details (see [[#BPMN_Interface|Interface]])
  
 
'''Extension Elements/Attributes'''  
 
'''Extension Elements/Attributes'''  
Line 233: Line 237:
 
*[http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustServiceTaskType.java StardustServiceTaskType] (::StardustActivity, no further extensions)
 
*[http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustServiceTaskType.java StardustServiceTaskType] (::StardustActivity, no further extensions)
  
 +
<br>
  
 
==== BPMN sendTask  ====
 
==== BPMN sendTask  ====
  
'''Spec:''' OMG p.,
+
'''Spec:''' OMG p.159
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)
+
'''BPMN Modelling Conformance Subclasses:'''&nbsp;Analytic  
  
'''Stardust Support: ''' full/partial
+
'''Execution Support: ''' '''tbd'''
  
'''Mapping Description:'''  
+
'''Mapping Description: tbd'''  
  
'''Transformation:''' '''todo'''
+
'''Transformation:''' '''todo'''  
  
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
Line 254: Line 259:
 
'''Extension Elements/Attributes'''  
 
'''Extension Elements/Attributes'''  
  
 +
<br>
  
 
==== BPMN receiveTask  ====
 
==== BPMN receiveTask  ====
  
'''Spec:''' OMG p.,
+
'''Spec:''' OMG p.161
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)
+
'''BPMN Modelling Conformance Subclasses:'''&nbsp;Analytic  
  
'''Stardust Support: ''' full/partial
+
'''Execution Support: ''' '''tbd'''
  
'''Mapping Description:'''  
+
'''Mapping Description: tbd'''  
  
'''Transformation:''' '''todo'''
+
'''Transformation:''' '''todo'''  
  
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
Line 275: Line 281:
 
'''Extension Elements/Attributes'''  
 
'''Extension Elements/Attributes'''  
  
 +
<br>
  
 
==== BPMN businessRulesTask  ====
 
==== BPMN businessRulesTask  ====
  
'''Spec:''' OMG p.,
+
'''Spec:''' OMG p.164
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)  
+
'''BPMN Modelling Conformance Subclasses:'''&nbsp;- (full)  
  
'''Stardust Support: ''' full/partial
+
'''Execution Support:&nbsp;tbd'''  
  
'''Mapping Description:'''  
+
'''Mapping Description: tbd'''  
  
'''Transformation:''' '''todo'''
+
'''Transformation:''' '''todo'''  
  
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
Line 294: Line 301:
 
'''Related Elements'''  
 
'''Related Elements'''  
  
'''Extension Elements/Attributes'''  
+
'''Extension Elements/Attributes'''<br>
 
+
 
+
  
 +
<br>
  
 
==== BPMN scriptTask  ====
 
==== BPMN scriptTask  ====
  
'''Spec:''' OMG p.,
+
'''Spec:''' OMG p.165&nbsp;
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)  
+
'''BPMN Modelling Conformance Subclasses:''' - (full)  
  
'''Stardust Support: ''' full/partial
+
'''Execution Support: ''' '''tbd'''
  
'''Mapping Description:'''  
+
'''Mapping Description: tbd'''  
  
'''Transformation:''' '''todo'''
+
'''Transformation:''' '''todo'''  
  
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
Line 317: Line 323:
 
'''Related Elements'''  
 
'''Related Elements'''  
  
'''Extension Elements/Attributes'''  
+
'''Extension Elements/Attributes'''<br>
 
+
 
+
  
 +
<br>
  
 
== Services  ==
 
== Services  ==
Line 330: Line 335:
 
'''BPMN Modelling Conformance Subclasses:''' -  
 
'''BPMN Modelling Conformance Subclasses:''' -  
  
'''Stardust Support: ''' based on extensions  
+
'''Execution Support: ''' based on extensions  
  
 
'''Mapping Description:''' "An Interface defines a set of operations that are implemented by Services" (OMG p.104). Therefore the Interface element is used as container (see extension element ''StardustInterfaceType'' below) for the Stardust application specification. As Stardust has a variable concept for different kinds of applications (including a concept of 'accesspoints' e.g. exceeding the interface exposed by WSDL operations), the extension bases on the internal Stardust Object model.  
 
'''Mapping Description:''' "An Interface defines a set of operations that are implemented by Services" (OMG p.104). Therefore the Interface element is used as container (see extension element ''StardustInterfaceType'' below) for the Stardust application specification. As Stardust has a variable concept for different kinds of applications (including a concept of 'accesspoints' e.g. exceeding the interface exposed by WSDL operations), the extension bases on the internal Stardust Object model.  
Line 354: Line 359:
 
**[http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustTriggerType.java StardustTriggerType] (::org.eclipse.stardust.model.xpdl.carnot.TriggerType)
 
**[http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustTriggerType.java StardustTriggerType] (::org.eclipse.stardust.model.xpdl.carnot.TriggerType)
  
 +
<br>
  
 
==== BPMN Endpoint  ====
 
==== BPMN Endpoint  ====
Line 359: Line 365:
 
'''Spec:''' OMG p.105,  
 
'''Spec:''' OMG p.105,  
  
'''BPMN Modelling Conformance Subclasses:''' -
+
'''BPMN Modelling Conformance Subclasses:''' -  
  
'''Stardust Support: ''' no
+
'''Execution Support: ''' no  
  
'''Mapping Description:''' ''Endpoint'' is an extensionpoint for service addresses related to BPMN participants. There is no correspondance in Stardust. The service addressing is contained in the application configuration (see [[#BPMN Interface|Interface]] extension).
+
'''Mapping Description:''' ''Endpoint'' is an extensionpoint for service addresses related to BPMN participants. There is no correspondance in Stardust. The service addressing is contained in the application configuration (see [[#BPMN_Interface|Interface]] extension).  
  
'''Transformation:''' N/A
+
'''Transformation:''' N/A  
  
'''Testmodel(s):''' N/A
+
'''Testmodel(s):''' N/A  
  
'''Attributes''' none (in addition to baseElement)
+
'''Attributes''' none (in addition to baseElement)  
  
'''Related Elements''' none (in addition to baseElement)
+
'''Related Elements''' none (in addition to baseElement)<br>  
 
+
<br>
+
  
 +
<br>
  
 
== Data  ==
 
== Data  ==
Line 382: Line 387:
 
'''Spec:''' OMG p.205  
 
'''Spec:''' OMG p.205  
  
'''BPMN Modelling Conformance Subclasses:''' Executable / Descriptive / Analytic
+
'''BPMN Modelling Conformance Subclasses:''' Executable / Descriptive / Analytic  
  
'''Stardust Support: ''' full
+
'''Execution Support: ''' full  
  
'''Mapping Description:''' Corresponds to Data in Stardust. Depending on the configuration, the data visibility may increase the scope as defined by BPMN (e.g. it may be globally visible to other processes).
+
'''Mapping Description:''' Corresponds to Data in Stardust. Depending on the configuration, the data visibility may increase the scope as defined by BPMN (e.g. it may be globally visible to other processes).  
  
 
'''Transformation:''' available  
 
'''Transformation:''' available  
  
'''Testmodel(s):''' Dataflow (structured type): [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/DataObjectFlow.bpmn DataObjectFlow.bpmn],  
+
'''Testmodel(s):''' Dataflow (structured type): [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/DataObjectFlow.bpmn DataObjectFlow.bpmn], Dataflow (primitive types): [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/SimpleTypeDataFlow.bpmn SimpleTypeDataFlow.bpmn]  
Dataflow (primitive types): [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/SimpleTypeDataFlow.bpmn SimpleTypeDataFlow.bpmn]
+
  
'''see also:''' [[#BPMN Item Aware Element|Item Aware Element]], [[#BPMN Item Definition|Item Definition]], [[#BPMN Import|Import]]
+
'''see also:''' [[#BPMN_Item_Aware_Element|Item Aware Element]], [[#BPMN_Item_Definition|Item Definition]], [[#BPMN_Import|Import]]  
  
 
'''Attributes'''  
 
'''Attributes'''  
 +
 
*isCollection: tbd
 
*isCollection: tbd
  
'''Related Elements''' none (see [[#BPMN Item Aware Element|Item Aware Element]])
+
'''Related Elements''' none (see [[#BPMN_Item_Aware_Element|Item Aware Element]])  
  
'''Extension Elements/Attributes''' none
+
'''Extension Elements/Attributes''' none  
 +
 
 +
<br>
  
 
==== BPMN dataAssociation  ====
 
==== BPMN dataAssociation  ====
  
'''Spec:''' OMG p.,
+
'''Spec:''' OMG p.221
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)
+
'''BPMN Modelling Conformance Subclasses:''' Executable / Descriptive / Analytic  
  
'''Stardust Support: ''' full/partial  
+
'''Execution Support: ''' partial (no transformation)
  
'''Mapping Description:'''  
+
'''Mapping Description:''' Stardust defines dataflows through input and outputs of activities (data mapping). In addition, these mappings have a data-path to map the source (part) with the target (part). Thus, data associations are interpreted as such mappings, using the associations's assignment for data paths (and application paths).
  
 
'''Transformation:''' available  
 
'''Transformation:''' available  
  
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
+
'''Testmodel(s):''' Basic Dataflows: [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/DataObjectFlow.bpmn DataObjectFlow.bpmn] and [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/SimpleTypeDataFlow.bpmn SimpleTypeDataFlow.bpmn], Dataflows with application access-points/application paths: [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ServiceTaskWebServiceApp.bpmn ServiceTaskWebServiceApp.bpmn] and [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/UserTaskWebApp.bpmn UserTaskWebApp.bpmn]  
  
'''Attributes'''  
+
'''Attributes''' none (::baseElement)
  
 
'''Related Elements'''  
 
'''Related Elements'''  
  
'''Extension Elements/Attributes'''
+
*transformation[Expression]: data path, if no assignment is defined
 +
*assignment[Assignment]: depending on the association direction (input/output) the assignment-from/to are mapped to data path or application path
 +
*sourceRef[ItemAwareElement]: data object (not used for dataOutputAssociations, as the data mapping belongs to the activity whilst BPMN has a data input element on the activity)
 +
*targetRef[ItemAwareElement]: data object (not used for dataInputAssociations, as the data mapping belongs to the activity whilst BPMN has a data input element on the activity)
 +
 
 +
'''Extension Elements/Attributes''' none (see [[#BPMN_Assignment|Assignment]])
  
 +
<br>
  
 +
==== BPMN Assignment  ====
 +
 +
'''Spec:''' OMG p.223
 +
 +
'''BPMN Modelling Conformance Subclasses:''' -
 +
 +
'''Execution Support: ''' partial (limited to data-/application-path expressions, not any kind of expression)
 +
 +
'''Mapping Description:''' part of data flow (see [[#BPMN_dataAssociation|dataAssociation]])
 +
 +
'''Extension Elements/Attributes'''
 +
 +
*Attribute ApplicationAccessPointRef (references an application access point of stardust)
 +
 +
<br>
  
 
==== BPMN Item Aware Element  ====
 
==== BPMN Item Aware Element  ====
  
'''Spec:''' OMG p.203
+
'''Spec:''' OMG p.203  
  
 
'''Related Elements'''  
 
'''Related Elements'''  
*itemSubjectRef[ItemDefinition]: Stardust Data types (structured types, primitive data etc.)
 
*dataState[DataState]: tbd
 
  
'''Extension Elements/Attributes:''' none
+
*itemSubjectRef[ItemDefinition]: Stardust Data types (structured types, primitive data etc.)
 +
*dataState[DataState]: tbd
  
 +
'''Extension Elements/Attributes:''' none
  
 +
<br>
  
 
==== BPMN Item Definition  ====
 
==== BPMN Item Definition  ====
  
'''Spec:''' OMG p.92
+
'''Spec:''' OMG p.92  
  
 
'''Related Elements'''  
 
'''Related Elements'''  
itemKind[ItemKind]: not used, 'Information' assumed
 
structureRef: structured type definition /  mapping of XML simple type to privitive type
 
import[Import]: XML Schema import (containing the structured types)
 
isCollection: tbd
 
  
'''Extension Elements/Attributes:''' none
+
*itemKind[ItemKind]: not used, 'Information' assumed
 +
*structureRef: structured type definition / mapping of XML simple type to privitive type
 +
*import[Import]: XML Schema import (containing the structured types)
 +
*isCollection: tbd
  
== Gateways ==
+
'''Extension Elements/Attributes:''' none
 +
 
 +
<br>
 +
 
 +
== Gateways ==
  
 
==== BPMN exclusiveGateway  ====
 
==== BPMN exclusiveGateway  ====
  
'''Spec:''' OMG p.,
+
'''Spec:''' OMG p.290
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)
+
'''BPMN Modelling Conformance Subclasses:''' Executable / Descriptive / Analytic  
  
'''Stardust Support: ''' full/partial
+
'''Execution Support: ''' full  
  
'''Mapping Description:'''  
+
'''Mapping Description:''' diverging exclusive Gateways correspond to XOR Splits, converging ones to XOR Joins. Mixed gateways and multiple gateways in a sequence are handled using route activities.
  
 
'''Transformation:''' available  
 
'''Transformation:''' available  
  
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
+
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/XORGatewaysSingle.bpmn XORGatewaysSingle.bpmn] [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/MixedGateway.bpmn MixedGateway.bpmn] [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/SequentialMixedGateway.bpmn SequentialMixedGateway.bpmn]  
  
'''Attributes'''  
+
'''Attributes''' none (::Gateway)
  
 
'''Related Elements'''  
 
'''Related Elements'''  
  
'''Extension Elements/Attributes'''  
+
*default[SequenceFlow]: relates to the 'otherwise' condition of Stardust sequence flows (transitions)
 +
 
 +
'''Extension Elements/Attributes''' none
  
 +
<br>
  
 
==== BPMN parallelGateway  ====
 
==== BPMN parallelGateway  ====
  
'''Spec:''' OMG p.,
+
'''Spec:''' OMG p.290
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)
+
'''BPMN Modelling Conformance Subclasses:''' Executable / Descriptive / Analytic  
  
'''Stardust Support: ''' full/partial
+
'''Execution Support: ''' full  
  
'''Mapping Description:'''  
+
'''Mapping Description:''' diverging parallel Gateways correspond to AND Splits, converging ones to AND Joins. Mixed gateways and multiple gateways in a sequence are handled using route activities.
  
 
'''Transformation:''' available  
 
'''Transformation:''' available  
  
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
+
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ParallelGatewaysSingle.bpmn ParallelGatewaysSingle.bpmn], (combined with conditional flows: [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/IntegrateSequentialJoinGatewaysAndConditionalSequence.bpmn combined])
  
'''Attributes'''  
+
'''Attributes''' none (::Gateway)
 
+
'''Related Elements'''
+
 
+
'''Extension Elements/Attributes'''
+
  
 +
'''Related Elements''' none (::Gateway)
  
 +
'''Extension Elements/Attributes''' none
  
 +
<br>
  
 
==== BPMN inclusiveGateway  ====
 
==== BPMN inclusiveGateway  ====
  
'''Spec:''' OMG p.,
+
'''Spec:''' OMG p. 292
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)
+
'''BPMN Modelling Conformance Subclasses:''' Analytic  
  
'''Stardust Support: '''partial (converging only)
+
'''Execution Support: '''partial (diverging only)  
  
'''Mapping Description:'''  
+
'''Mapping Description:''' Stardust supports conditions on AND splits, thus this behaves like inclusive gateways. However, the synchronisation is not supported.
  
'''Transformation:'''&nbsp;'''todo'''
+
'''Transformation:'''&nbsp;'''N/A'''  
  
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]
+
'''Testmodel(s):''' N/A
  
'''Attributes'''  
+
'''Attributes''' none (::Gateway)
  
 
'''Related Elements'''  
 
'''Related Elements'''  
  
'''Extension Elements/Attributes'''
+
*default[SequenceFlow]
  
 +
'''Extension Elements/Attributes''' none
 +
 +
<br>
  
 
==== BPMN eventBasedGateway  ====
 
==== BPMN eventBasedGateway  ====
  
'''Spec:''' OMG p.,
+
'''Spec:''' OMG p.297
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)
+
'''BPMN Modelling Conformance Subclasses:''' Executable / Analytic  
  
'''Stardust Support: ''' NO - REQUIRES CORE EXTENSION
+
'''Execution Support: ''' NO - REQUIRES CORE EXTENSION  
  
'''Mapping Description:'''
+
<br>
  
'''Transformation:''' '''todo'''
+
==== BPMN complexGateway  ====
  
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]
+
'''Spec:''' OMG p.295
  
'''Attributes'''  
+
'''BPMN Modelling Conformance Subclasses:''' (full)
  
'''Related Elements'''  
+
'''Execution Support: ''' NO - REQUIRES CORE EXTENSION
  
'''Extension Elements/Attributes'''
+
<br>
 
+
 
+
== Sequence Flows ==
+
  
 +
== Sequence Flows  ==
  
 
==== BPMN sequenceFlow  ====
 
==== BPMN sequenceFlow  ====
  
'''Spec:''' OMG p.,
+
'''Spec:''' OMG p.97f.
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)
+
'''BPMN Modelling Conformance Subclasses:''' Executable / Descriptive / Analytic  
  
'''Stardust Support: ''' full
+
'''Execution Support: ''' full (expressions based on javascript)
  
'''Mapping Description:'''  
+
'''Mapping Description:''' Sequence flows basically are transitions in Stardust. To reach the behaviour specified by BPMN, certain cases have to be distinguished: conditional sequence flows and uncontrolled flows. These are addressed in the following two sections.
  
 
'''Transformation:''' available  
 
'''Transformation:''' available  
  
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
+
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/Sequence.bpmn Sequence.bpmn]  
  
 
'''Attributes'''  
 
'''Attributes'''  
 +
 +
*isImmediate: N/A
  
 
'''Related Elements'''  
 
'''Related Elements'''  
 +
 +
*SourceRef[FlowNode]: From (activity)
 +
*TargetRef[FlowNode]: To (activity)
 +
*conditionExpression[Expression]: Stardust condition (javascript)
  
 
'''Extension Elements/Attributes'''  
 
'''Extension Elements/Attributes'''  
  
 +
*todo: forkOnTraversal
  
 +
<br>
  
 +
===== unconditional flow  =====
  
==== unconditional SequenceFlow  ====
+
'''Spec:''' OMG p.36/38 (and others)
  
'''Spec:''' OMG p.,
+
'''BPMN Modelling Conformance Subclasses:''' Executable / Descriptive / Analytic
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)
+
'''Execution Support: ''' full
  
'''Stardust Support: ''' full
+
'''Mapping Description:''' Besides single sequence flows, BPMN defines the behaviour of forking and merging sequences (without using Gateways) as parallel (fork) and exclusive (merge). Thus, these constructs correspond to AND splits and XOR joins in Stardust respectively.
 
+
'''Mapping Description:'''  
+
  
 
'''Transformation:''' available  
 
'''Transformation:''' available  
  
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
+
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/UncontrolledFlow.bpmn UncontrolledFlow.bpmn]  
  
'''Attributes'''
+
<br>
  
'''Related Elements'''
+
===== conditional flow  =====
  
'''Extension Elements/Attributes'''  
+
'''Spec:''' OMG p. 427, 35f.
  
 +
'''BPMN Modelling Conformance Subclasses:''' Executable / Descriptive / Analytic
  
 +
'''Execution Support: ''' full
  
'''uncontrolled Flow'''
+
'''Mapping Description:''' All transitions may have conditions in Stardust, thus there is a direct corresponance. Besides the graphical difference (diamond / slash marker), in BPMN conditional / default sequence flows are rather thought of to define alternative paths. Thus, in Stardust further flow control is required (i.e. join/split configuration). Basically, the combination of conditional and default sequence flows from an activity can be represented with a AND split and transitions with conditions (or 'OTHERWISE' for default sequences). If the combination also contains unconditional sequence flows, a parallel flow (unconditional AND-Split) is required, followed by another AND-Split with conditional/default flows (thus requiring a route activity in between). A minor difference regarding attributes is, that the default flow is defined on the FlowNode in BPMN, whilst in Stardust this information is on the transition element.
 
+
'''Spec:''' OMG p.,  
+
 
+
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)  
+
 
+
'''Stardust Support: ''' full
+
 
+
'''Mapping Description:'''
+
  
 
'''Transformation:''' available  
 
'''Transformation:''' available  
  
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]
+
'''Testmodel(s):'''  
  
'''Attributes'''
+
*[http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ConditionalSequenceWithDefault.bpmn ConditionalSequenceWithDefault.bpmn]
 +
*[http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ConditionalSequenceWithDefaultAndUnconditional.bpmn ConditionalSequenceWithDefaultAndUnconditional.bpmn]
 +
*[http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/IntegratedConditionalSequenceAndGates.bpmn IntegratedConditionalSequenceAndGates.bpmn]
 +
*[http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/IntegrateSequentialJoinGatewaysAndConditionalSequence.bpmn SequentialJoinGatewaysAndConditionalSequence.bpmn]
  
'''Related Elements'''
+
<br>
  
'''Extension Elements/Attributes'''
+
== Start Events  ==
  
 +
'''General limitations''' on start events: Stardust only supports a single entry point into a process (i.e. only one activity without incoming sequence flows or a single start trigger).
  
 +
==== BPMN startEvent (None)  ====
  
 +
'''Spec:''' OMG p.240f
  
==== conditionalSequenceFlow  ====
+
'''BPMN Modelling Conformance Subclasses:''' Executable / Descriptive / Analytic
  
'''Spec:''' OMG p.,
+
'''Execution Support: ''' full
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)
+
'''Mapping Description:''' Stardust uses an unspecific start event only as visual element but offers a 'manual trigger', that is not available in BPMN. Therefore, the BPMN 'none' start event is extended with a performer attribute, allowing to indicate a manual start for process execution in Stardust.
 
+
'''Stardust Support: ''' full
+
 
+
'''Mapping Description:'''  
+
  
 
'''Transformation:''' available  
 
'''Transformation:''' available  
  
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
+
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/StartEventNone.bpmn StartEventNone.bpmn]  
  
 
'''Attributes'''  
 
'''Attributes'''  
 +
 +
*isInterrupting: tbd
 +
*from&nbsp;::catchEvent
 +
**parallelMultiple: tbd
  
 
'''Related Elements'''  
 
'''Related Elements'''  
 +
 +
*from&nbsp;::catchEvent
 +
**eventDefinitionRefs[EventDefinition]: N/A ('none' startEvent)
 +
**dataOutputAssociation[DataOutputAssociation]: N/A (for 'none')
 +
**dataOutputs[DataOutput]: N/A (for 'none')
 +
**outputSet[OutputSet]: N/A (for 'none')
  
 
'''Extension Elements/Attributes'''  
 
'''Extension Elements/Attributes'''  
  
 +
*[http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustStartEventType.java StardustStartEventType.java] allows for any generic Stardust attribute type, containing an 'engine:participant' value for manual start events.
  
 +
<br>
  
 +
==== BPMN timerStartEvent  ====
  
==== defaultSequenceFlow  ====
+
'''Spec:''' OMG p.240f
  
'''Spec:''' OMG p.,
+
'''BPMN Modelling Conformance Subclasses:''' Descriptive / Analytic
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)
+
'''Execution Support: ''' full
  
'''Stardust Support: ''' full
+
'''Mapping Description:''' The timer start event directly corresponds to the Timer Trigger in Stardust.
 
+
'''Mapping Description:'''  
+
  
 
'''Transformation:''' available  
 
'''Transformation:''' available  
  
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
+
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/StartEventTimer.bpmn StartEventTimer.bpmn]  
 
+
'''Attributes'''
+
  
 
'''Related Elements'''  
 
'''Related Elements'''  
 +
 +
*TimerEventDefinition:
 +
**timeCycle[Expression]:ISO-8601 format for recurring time interval representations - mapped to 'periodicity'
 +
**timeDate[Expression]: ISO-8601 format for date and time representations - mapped to 'startTime'
 +
**timeDuration[Expression]: N/A for start event
  
 
'''Extension Elements/Attributes'''  
 
'''Extension Elements/Attributes'''  
  
 +
*TimerEventDefinition:stopTime
  
 +
<br>
  
 +
==== BPMN messageStartEvent  ====
  
== Start Events ==
+
'''Spec:''' OMG p.234f, 271 (MessageEventDefinition)
  
==== BPMN startEvent (None)  ====
+
'''BPMN Modelling Conformance Subclasses:'''&nbsp;Executable / Descriptive / Analytic
  
'''Spec:''' OMG p.,  
+
'''Execution Support: ''' full (JMS, E-Mail)
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)
+
'''Mapping Description:''' Depending on the Operation referred to in the MessageEventDefinition, the messageStartEvent is mapped to a Stardust JMS trigger or an E-Mail trigger.
  
'''Stardust Support: ''' full
+
'''Transformation:''' partially (JMS, missing trigger type definition)
  
'''Mapping Description:'''  
+
'''Testmodel(s):''' Message events (start, intermediate, end): [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/MessageEvents.bpmn MessageEvents.bpmn]
  
'''Transformation:''' available
+
'''Attributes'''  
  
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]
+
*isInterrupting: tbd
 
+
*from&nbsp;::catchEvent
'''Attributes'''
+
**parallelMultiple: tbd
  
 
'''Related Elements'''  
 
'''Related Elements'''  
  
'''Extension Elements/Attributes'''
+
*from&nbsp;::catchEvent
 +
**eventDefinitionRefs[EventDefinition]: single definition supported (details below)
 +
**dataOutputAssociation[DataOutputAssociation]: see [[#BPMN_dataAssociation|DataAssociation]]
 +
**dataOutputs[DataOutput]: not used see [[#Data|Data]]
 +
**outputSet[OutputSet]: not used see [[#Data|Data]]
  
 +
'''MessageEventDefinition'''
  
==== BPMN timerStartEvent  ====
+
*messageRef[Message]: N/A
 +
*operationRef[Operation]: points to an operation contained in an [[#BPMN_Interface|Interface]] that holds the [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustTriggerType.java StardustTriggerType]
  
'''Spec:''' OMG p.,
+
'''Extension Elements/Attributes:'''  
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)  
+
*None for StartEvent / MessageEventDefinition
 +
*Attribute parameterMappingOid on Assignment (of DataOutputAssociation)
  
'''Stardust Support: ''' full
+
<br>
  
'''Mapping Description:'''
+
== Intermediate Events  ==
  
'''Transformation:''' available
+
Stardust originally does not have explicit (independent) intermediate event elements. Hovever, some event handling can be defined for activities and some (service-) activity configurations behave similar to certain BPMN events.
  
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]
+
<br>
  
'''Attributes'''
+
==== BPMN catching messageIntermediate Event  ====
  
'''Related Elements'''  
+
'''Spec:''' OMG p.234ff. 271 (MessageEventDefinition)
  
'''Extension Elements/Attributes'''  
+
'''BPMN Modelling Conformance Subclasses:''' Executable / Analytic
  
 +
'''Execution Support: ''' full (JMS)
  
==== BPMN messageStartEvent  ====
+
'''Mapping Description:''' As a BPMN (catching) message event basically waits until a message arrives, this behaviour corresponds to a Stardust service activity with a JMS application
  
'''Spec:''' OMG p.,
+
'''Transformation:''' available (JMS)
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)
+
'''Testmodel(s):''' Message events (start, intermediate, end): [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/MessageEvents.bpmn MessageEvents.bpmn]
  
'''Stardust Support: ''' full (JMS, E-Mail)
+
'''Attributes'''  
  
'''Mapping Description:'''
+
*from&nbsp;::catchEvent
 +
**parallelMultiple: tbd
  
'''Transformation:''' available
+
'''Related Elements'''  
  
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
+
*from&nbsp;::catchEvent
 +
**eventDefinitionRefs[EventDefinition]: single definition supported (details below)  
 +
**dataOutputAssociation[DataOutputAssociation]: see [[#BPMN_dataAssociation|DataAssociation]]
 +
**dataOutputs[DataOutput]: not used see [[#Data|Data]]
 +
**outputSet[OutputSet]: not used see [[#Data|Data]]
  
'''Attributes'''  
+
'''MessageEventDefinition:'''  
  
'''Related Elements'''
+
*messageRef[Message]: N/A
 +
*operationRef[Operation]: points to an operation contained in an [[#BPMN_Interface|Interface]] that holds the [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustApplicationType.java StardustApplicationType.java]
  
 
'''Extension Elements/Attributes'''  
 
'''Extension Elements/Attributes'''  
  
 +
<br>
  
== Intermediate Events ==
+
==== BPMN throwing messageIntermediateEvent  ====
  
==== BPMN Catching message Intermediate Event  ====
+
'''Spec:''' OMG p.234ff. 271 (MessageEventDefinition)
  
'''Spec:''' OMG p.,
+
'''BPMN Modelling Conformance Subclasses:''' Executable / Analytic
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)  
+
'''Execution Support: ''' full (JMS, E-Mail)  
  
'''Stardust Support: ''' full (JMS)
+
'''Mapping Description:''' As a BPMN (throwing) message event basically sends a message when a token arrives, this behaviour corresponds to a Stardust service activity with a JMS application. Similarly, an E-Mail may be sent.
  
'''Mapping Description:'''  
+
'''Transformation:''' available (JMS)
  
'''Transformation:''' available (JMS)
+
'''Testmodel(s):''' Message events (start, intermediate, end): [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/MessageEvents.bpmn MessageEvents.bpmn]  
 
+
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
+
  
 
'''Attributes'''  
 
'''Attributes'''  
 +
 +
*isInterrupting: tbd
 +
*from&nbsp;::throwEvent
 +
**parallelMultiple: tbd
  
 
'''Related Elements'''  
 
'''Related Elements'''  
  
'''Extension Elements/Attributes'''
+
*from&nbsp;::throwEvent
 +
**eventDefinitionRefs[EventDefinition]: single definition supported (details below)
 +
**dataInputAssociation[DataInputAssociation]: see [[#BPMN_dataAssociation|DataAssociation]]
 +
**dataInputs[DataInput]: not used see [[#Data|Data]]
 +
**inputSet[InputSet]: not used see [[#Data|Data]]
  
 +
'''MessageEventDefinition:'''
  
==== BPMN Throwing message Intermediate Event  ====
+
*messageRef[Message]: N/A
 +
*operationRef[Operation]: points to an operation contained in an [[#BPMN_Interface|Interface]] that holds the [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustApplicationType.java StardustApplicationType.java]
  
'''Spec:''' OMG p.,
+
'''Extension Elements/Attributes''' <br>
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)
+
<br>
  
'''Stardust Support: ''' full (JMS, E-Mail)
+
==== BPMN Catching timer Intermediate Event  ====
  
'''Mapping Description:'''  
+
'''Spec:''' OMG p. 234, 274
  
'''Transformation:''' available (JMS)
+
'''BPMN Modelling Conformance Subclasses:''' Executable / Analytic
  
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]
+
'''Execution Support: ''' full
  
'''Attributes'''  
+
'''Mapping Description:''' An intermediate timer event delays the flow according to a given value (timeDate, timeCycle, timeValue). In Stardust, this behaviour is reached with a Timer event handler bound to a (Route) Activity which is hibernated when bound and completed when the timer event occurs.
  
'''Related Elements'''  
+
'''Transformation:''' available for timeDuration. A BPMN extension could enable variable dates based on workflow data.
  
'''Extension Elements/Attributes'''  
+
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/CatchingIntermediateTimerEvent.bpmn CatchingIntermediateTimerEvent.bpmn]
  
 +
'''Attributes'''
  
==== BPMN Catching timer Intermediate Event  ====
+
*from&nbsp;::catchEvent
 +
**parallelMultiple: tbd
  
'''Spec:''' OMG p.,
+
'''Related Elements'''  
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)  
+
*from&nbsp;::catchEvent
 +
**eventDefinitionRefs[EventDefinition]: single definition supported (details below)  
 +
**dataOutputAssociation[DataOutputAssociation]: see [[#BPMN_dataAssociation|DataAssociation]]
 +
**dataOutputs[DataOutput]: not used see [[#Data|Data]]
 +
**outputSet[OutputSet]: not used see [[#Data|Data]]
  
'''Stardust Support: ''' full/partial
+
'''TimerEventDefinition:'''  
  
'''Mapping Description:'''
+
*messageRef[Message]: N/A
 +
*operationRef[Operation]: points to an operation contained in an [[#BPMN_Interface|Interface]] that holds the [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustApplicationType.java StardustApplicationType.java]
  
'''Transformation:''' todo
+
*TimerEventDefinition:  
 +
**timeCycle[Expression]:ISO-8601 format for recurring time interval representations - mapped to period
 +
**timeDuration[Expression]: ISO-8601 format for time interval representations - mapped to period
 +
**timeDate[Expression]: N/A for intermediate event
  
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]
+
'''Extension Elements/Attributes'''  
  
'''Attributes'''
+
none
 
+
'''Related Elements'''
+
 
+
'''Extension Elements/Attributes'''
+
  
 +
<br>
  
 
==== BPMN Boundary error Intermediate Event  ====
 
==== BPMN Boundary error Intermediate Event  ====
Line 789: Line 874:
 
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)  
 
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)  
  
'''Stardust Support: ''' full/partial  
+
'''Execution Support: ''' full/partial  
  
 
'''Mapping Description:'''  
 
'''Mapping Description:'''  
  
'''Transformation:''' todo
+
'''Transformation:''' todo  
  
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
Line 803: Line 888:
 
'''Extension Elements/Attributes'''  
 
'''Extension Elements/Attributes'''  
  
 +
<br>
  
== End Events==
+
== End Events ==
  
 
==== BPMN endEvent (None)  ====
 
==== BPMN endEvent (None)  ====
  
'''Spec:''' OMG p.,
+
'''Spec:''' OMG p.234ff
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)
+
'''BPMN Modelling Conformance Subclasses:'''&nbsp;Executable / Descriptive / Analytic  
  
'''Stardust Support: ''' no (only graphical)
+
'''Execution Support: ''' no (only graphical)  
  
'''Mapping Description:'''  
+
'''Mapping Description: '''End event symbol.
  
'''Transformation:''' N/A
+
'''Transformation:''' N/A  
  
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
  
'''Attributes'''  
+
'''Attributes N/A'''  
  
'''Related Elements'''  
+
'''Related Elements N/A'''  
  
'''Extension Elements/Attributes'''  
+
'''Extension Elements/Attributes N/A'''  
  
 +
<br>
  
 
==== BPMN messageEndEvent  ====
 
==== BPMN messageEndEvent  ====
  
'''Spec:''' OMG p.,
+
'''Spec:''' OMG p.234ff. 271 (MessageEventDefinition)
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)
+
'''BPMN Modelling Conformance Subclasses:''' Executable / Descriptive / Analytic  
  
'''Stardust Support: ''' full (JMS, E-Mail)
+
'''Execution Support: ''' full (JMS, E-Mail)  
  
'''Mapping Description:'''  
+
'''Mapping Description:''' As a BPMN message end event basically sends a message at the end of a process, this behaviour corresponds to a Stardust service activity with a sending JMS application at the end of a process. Similarly, an E-Mail may be sent.
  
'''Transformation:''' available (JMS)
+
'''Transformation:''' available (JMS)  
  
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
+
'''Testmodel(s):''' Message events (start, intermediate, end): [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/MessageEvents.bpmn MessageEvents.bpmn]  
  
 
'''Attributes'''  
 
'''Attributes'''  
 +
 +
*isInterrupting: tbd
 +
*from&nbsp;::throwEvent
 +
**parallelMultiple: tbd
  
 
'''Related Elements'''  
 
'''Related Elements'''  
  
'''Extension Elements/Attributes'''
+
*from&nbsp;::throwEvent
 +
**eventDefinitionRefs[EventDefinition]: single definition supported (details below)
 +
**dataInputAssociation[DataInputAssociation]: see [[#BPMN_dataAssociation|DataAssociation]]
 +
**dataInputs[DataInput]: not used see [[#Data|Data]]
 +
**inputSet[InputSet]: not used see [[#Data|Data]]
  
 +
'''MessageEventDefinition:'''
 +
 +
*messageRef[Message]: N/A
 +
*operationRef[Operation]: points to an operation contained in an [[#BPMN_Interface|Interface]] that holds the [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustApplicationType.java StardustApplicationType.java]
 +
 +
'''Extension Elements/Attributes''' none
 +
 +
<br>
  
 
==== BPMN terminateEndEvent  ====
 
==== BPMN terminateEndEvent  ====
  
'''Spec:''' OMG p.,
+
'''Spec:''' OMG p. 273
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)
+
'''BPMN Modelling Conformance Subclasses:'''&nbsp;Executable / Descriptive / Analytic  
  
'''Stardust Support: ''' full/partial
+
'''Execution Support: ''' '''tbd'''
  
'''Mapping Description: '''tbd
+
'''Mapping Description: ''''''tbd'''
  
'''Transformation:''' todo
+
'''Transformation:''' '''todo'''
  
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
Line 868: Line 971:
 
'''Extension Elements/Attributes'''  
 
'''Extension Elements/Attributes'''  
  
 +
<br>
  
 
== Resources  ==
 
== Resources  ==
Line 873: Line 977:
 
==== BPMN Resource  ====
 
==== BPMN Resource  ====
  
'''Spec:''' OMG p.,
+
'''Spec:''' OMG p.95f
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)
+
'''BPMN Modelling Conformance Subclasses:'''&nbsp;Executable / full
  
'''Stardust Support: ''' full/partial
+
'''Execution Support:''' full  
  
'''Mapping Description:'''
+
'''Mapping Description: '''Resources are mapped to participants in Stardust (i.e.&nbsp;roles, organisations, conditional performer).
  
'''Transformation:''' available (roles/organisations/conditional performer)
+
'''Transformation:'''&nbsp;partially available (roles, organisations, conditional performer)  
  
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
+
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/UserTask.bpmn UserTask.bpmn]  
  
 
'''Attributes'''  
 
'''Attributes'''  
 +
 +
*name
  
 
'''Related Elements'''  
 
'''Related Elements'''  
 +
 +
*resourceParameters[ResourceParameter]: N/A
  
 
'''Extension Elements/Attributes'''  
 
'''Extension Elements/Attributes'''  
  
 +
*[http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustResourceType.java StardustResourceType]: Stardust Participant specification
 +
 +
<br> <br>
  
 
==== BPMN ResourceRole  ====
 
==== BPMN ResourceRole  ====
  
'''Spec:''' OMG p.,
+
'''Spec:''' OMG p. 154
  
 
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)  
 
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)  
  
'''Stardust Support: ''' full/partial  
+
'''Execution Support: ''' partial (no owner / only performer)
  
'''Mapping Description:'''  
+
'''Mapping Description:''' ResourceRoles of activities are mapped to Stardust participants, if the resource role is of type 'Performer' or a subclass of that
  
'''Transformation:''' available (performer)
+
'''Transformation:''' available (performer)  
  
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
Line 910: Line 1,021:
 
'''Related Elements'''  
 
'''Related Elements'''  
  
'''Extension Elements/Attributes'''
+
*resourceRef[Resource]: reference to the resource which is mapped to a Stardust participant, if the resource role is 'Performer'  
 +
*resourceAssignmentExpression[ResourceAssignmentExpression]: N/A
 +
*resourceParameterBindings[ResourceParameterBinding]: N/A
  
 +
'''Extension Elements/Attributes''' none
  
===== Performer  =====
+
'''Specific Types''' (not differentiated in Stardust mapping)
  
'''Spec:''' OMG p.,
+
*Performer
 +
*Human Performer
 +
*Potential Owner
  
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)
+
<br>
 
+
'''Stardust Support: ''' full/partial
+
 
+
'''Mapping Description:'''
+
 
+
'''Transformation:''' available
+
 
+
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]
+
 
+
'''Attributes'''
+
 
+
'''Related Elements'''
+
 
+
'''Extension Elements/Attributes'''
+
 
+
 
+
===== Human Performer  =====
+
 
+
===== Potential Owner  =====
+
  
 
== Processes Collaboration  ==
 
== Processes Collaboration  ==
Line 946: Line 1,043:
 
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)  
 
'''BPMN Modelling Conformance Subclasses:''' (Executable / Descriptive / Analytic)  
  
'''Stardust Support: ''' full/partial  
+
'''Execution Support: ''' full/partial  
  
 
'''Mapping Description:'''  
 
'''Mapping Description:'''  
  
'''Transformation:''' todo
+
'''Transformation:''' todo  
  
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
 
'''Testmodel(s):''' [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ .bpmn .bpmn]  
Line 960: Line 1,057:
 
'''Extension Elements/Attributes'''  
 
'''Extension Elements/Attributes'''  
  
 +
<br>
  
 
==== BPMN Lanes  ====
 
==== BPMN Lanes  ====
  
==Foundation==
 
==== BPMN baseElement====
 
  
'''Attributes'''
+
 
 +
== Foundation  ==
 +
 
 +
==== BPMN baseElement  ====
 +
 
 +
'''Attributes'''  
 +
 
 
*id: generally mapped to Stardust element-id.
 
*id: generally mapped to Stardust element-id.
  
'''Related Elements'''
+
'''Related Elements'''  
*documentation [Documentation]: See [[#BPMN Documentation|Documentation]].
+
 
*extensionDefinitions: Not used, as the transformation relies on XML Schema based interchange.
+
*documentation [Documentation]: See [[#BPMN_Documentation|Documentation]].  
 +
*extensionDefinitions: Not used, as the transformation relies on XML Schema based interchange.  
 
*extensionValues: Not used, as the transformation relies on XML Schema based interchange.
 
*extensionValues: Not used, as the transformation relies on XML Schema based interchange.
  
 +
<br>
  
==== BPMN Documentation====
+
==== BPMN Documentation ====
  
'''Mapping description:''' The content of documentations is used as description of Stardust elements. As BPMN foresees multiple documentations for most elements, the text is concatenated.
+
'''Mapping description:''' The content of documentations is used as description of Stardust elements. As BPMN foresees multiple documentations for most elements, the text is concatenated.  
 +
 
 +
'''Attributes'''
  
'''Attributes'''
+
*text: Stardust description.  
*text: Stardust description.
+
 
*textFormat: not used (only plain text supported).
 
*textFormat: not used (only plain text supported).
  
 +
<br>
  
====Common attributes====
+
==== Common attributes ====
  
In addition to ''id'' and ''documentation'' (from baseElement), most elements have a ''name'' attribute (not 'globally' inherited) which is also available for Stardust elements.
+
In addition to ''id'' and ''documentation'' (from baseElement), most elements have a ''name'' attribute (not 'globally' inherited) which is also available for Stardust elements.  
  
 +
<br>
  
==Infrastructure==
+
== Infrastructure ==
  
====BPMN Definitions====
+
==== BPMN Definitions ====
  
'''Mapping Description:''' The root element of the BPMN Document corresponds to a Stardust Model. It may contain several processes, data structures, imports etc.
+
'''Mapping Description:''' The root element of the BPMN Document corresponds to a Stardust Model. It may contain several processes, data structures, imports etc.  
  
 
'''Transformation:''' available  
 
'''Transformation:''' available  
  
'''Attributes'''
+
'''Attributes'''  
*targetNamespace: not transformed (XML specific).
+
 
 +
*targetNamespace: not transformed (XML specific).  
 
*expressionLanguage: not used (supported expression languages are declared in specific [[#expression|expression]] elements) - tbd  
 
*expressionLanguage: not used (supported expression languages are declared in specific [[#expression|expression]] elements) - tbd  
*typeLanguage: not used (default = XML Schema is supported)
+
*typeLanguage: not used (default = XML Schema is supported)  
*exporter: unused (may be set for export)
+
*exporter: unused (may be set for export)  
 
*exporterVersion: unused (may be set for export)
 
*exporterVersion: unused (may be set for export)
  
'''Related Elements'''
+
'''Related Elements'''  
*relationships: tbd
+
 
*imports: XML Schema and WSDL imports supported, further: tbd.
+
*relationships: tbd  
*rootElements: for modelling
+
*imports: XML Schema and WSDL imports supported, further: tbd.  
*diagrams: for modelling
+
*rootElements: for modelling  
 +
*diagrams: for modelling  
 
*extensions: unused (relies on XSD based extensions)
 
*extensions: unused (relies on XSD based extensions)
  
 +
<br> '''Extension Elements/Attributes'''
  
'''Extension Elements/Attributes'''
+
*attributeGroup ModelAttributes (see [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2/model/StardustBPMN20.xsd StardustBPMN20.xsd])  
*attributeGroup ModelAttributes (see [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2/model/StardustBPMN20.xsd StardustBPMN20.xsd])
+
**oid  
**oid
+
**modelOID  
**modelOID
+
**author  
**author
+
**created  
**created
+
**carnotVersion  
**carnotVersion
+
 
**vendor
 
**vendor
  
 +
<br>
  
 
+
==== BPMN Import ====
====BPMN Import====
+
  
 
'''Spec:''' OMG p.53f  
 
'''Spec:''' OMG p.53f  
Line 1,031: Line 1,140:
 
'''Modeler support:'''  
 
'''Modeler support:'''  
  
'''Stardust Support: ''' full (XML Schema and WSDL imports)
+
'''Execution Support: ''' full (XML Schema and WSDL imports)  
  
'''Mapping Description:''' Stardust data structure import (type declaration)
+
'''Mapping Description:''' Stardust data structure import (type declaration)  
  
'''Transformation:''' available
+
'''Transformation:''' available  
 +
 
 +
'''Testmodel(s):''' see [[#BPMN_dataObject|dataObject]]
  
'''Testmodel(s):''' see [[#BPMN dataObject|dataObject]]
+
'''Attributes:''' usage / mapping of BPMN element attributes
  
'''Attributes:''' usage / mapping of BPMN element attributes
 
 
*importType: declarative  
 
*importType: declarative  
*location: external reference of type declaration
+
*location: external reference of type declaration  
 
*namespace: namespace of external reference
 
*namespace: namespace of external reference
  
'''Extension Elements/Attributes:''' extensions to BPMN for Stardust specific information and links to object model classes, if available (note '::<super>' is used to indicate a superclass)
+
'''Extension Elements/Attributes:''' extensions to BPMN for Stardust specific information and links to object model classes, if available (note '::&lt;super&gt;' is used to indicate a superclass)  
  
'''Specific types:''' list of more specific elements / subclasses not yet described separately
+
'''Specific types:''' list of more specific elements / subclasses not yet described separately  
 +
 
 +
<br>
 +
== Addendum (Transformation / Interpretation) ==
 +
The following sections discuss cases which are not distinctly attributed to a certain model element but rather to the process behaviour or topology.
 +
 
 +
=== Process Start ===
 +
Stardust does not include Start- or EndEvents as part of the process flow (i.e. process triggers are not connected by sequence flows/transitions). The actual process start (entry point) is the first (and only) activity without incoming transitions. Consequently, the following cases require specific considerations with respect to the transformation/execution.
 +
 
 +
==== Parallel Activities (e.g. parallel box) ====
 +
In BPMN a process may have several activities without incoming sequence flows, meaning that they are all started in parallel, when the process is instantiated.
 +
 
 +
If (and only if) there is no BPMN StartEvent but multiple activities without incoming sequence flows (i.e. parallel box), a route activity with a parallel split is inserted as process start (cp. [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ParallelBox.bpmn ParallelBox.bpmn]).
 +
 
 +
A route activity as process entry point is also introduced, when a BPMN Start Event (none) forks into a parallel flow (cp. [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/ParallelSplitStart.bpmn ParallelSplitStart.bpmn]).
 +
 
 +
==== Backloops ====
 +
If a flow loops back to the first activity, there is ‘no process start’ anymore. In this case, the transformation introduces a route activity at the beginning of the process (between the start trigger, if there is one, and the first activity), cp. [http://git.eclipse.org/c/stardust/org.eclipse.stardust.ide.git/tree/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/BackloopToStart.bpmn BackloopToStart.bpmn].
 +
 
 +
If the BPMN Process does not contain a StartEvent, the same rule (to determine the process entry point(s)) basically applies to a BPMN Process, thus, backloops are not dealt with separately.
 +
 
 +
 
 +
<br>
  
 
== Supporting Classes (Common Executable Conformance Sub-Class)  ==
 
== Supporting Classes (Common Executable Conformance Sub-Class)  ==
 +
  
 
'''Spec.:''' cp. OMG p.7  
 
'''Spec.:''' cp. OMG p.7  
Line 1,054: Line 1,187:
 
*StandardLoopCharacteristics (id, loopCondition): Stardust Loop (While|Repeat with Loop Condition) (Todo)  
 
*StandardLoopCharacteristics (id, loopCondition): Stardust Loop (While|Repeat with Loop Condition) (Todo)  
 
*MultiInstanceLoopCharacteristics (id, isSequential, loopDataInput, inputDataItem): no direct support - tbd  
 
*MultiInstanceLoopCharacteristics (id, isSequential, loopDataInput, inputDataItem): no direct support - tbd  
*Rendering: not used (cp. [[#BPMN userTask|userTask]])  
+
*Rendering: not used (cp. [[#BPMN_userTask|userTask]])  
*Resource (id, name): Performer (see [[#BPMN userTask|userTask]] and [[#BPMN Resource|Resource]])), further resources: tbd  
+
*Resource (id, name): Performer (see [[#BPMN_userTask|userTask]] and [[#BPMN_Resource|Resource]])), further resources: tbd  
*ResourceRole (id, resourceRef, resourceAssignmentExpression): Performer (see [[#BPMN userTask|userTask]] and [[#BPMN resourceRole|ResourceRoles]]))  
+
*ResourceRole (id, resourceRef, resourceAssignmentExpression): Performer (see [[#BPMN_userTask|userTask]] and [[#BPMN_resourceRole|ResourceRoles]]))  
 
*InputOutputSpecification (id, dataInputs, dataOutputs): Task Data Flow (see [[#Data|Data]])  
 
*InputOutputSpecification (id, dataInputs, dataOutputs): Task Data Flow (see [[#Data|Data]])  
 
*DataInput (id, name, isCollection, itemSubjectRef): Data Flow (see [[#Data|Data]])  
 
*DataInput (id, name, isCollection, itemSubjectRef): Data Flow (see [[#Data|Data]])  
 
*DataOutput (id, name, isCollection, itemSubjectRef): Data Flow (see [[#Data|Data]])  
 
*DataOutput (id, name, isCollection, itemSubjectRef): Data Flow (see [[#Data|Data]])  
 
*ItemDefinition (id, structure or import) [XSD Complex Type structure]: Data Flow (see [[#Data|Data]])  
 
*ItemDefinition (id, structure or import) [XSD Complex Type structure]: Data Flow (see [[#Data|Data]])  
*Operation (id, name, inMessageRef, outMessageRef, errorRefs): Applications / Interactive Applications (see [[#BPMN serviceTask|serviceTask]], [[#BPMN userTask|userTask]], (Message-) [[#Events|Events]])  
+
*Operation (id, name, inMessageRef, outMessageRef, errorRefs): Applications / Interactive Applications (see [[#BPMN_serviceTask|serviceTask]], [[#BPMN_userTask|userTask]], (Message-) [[#Events|Events]])  
 
*Message (id, name, structureRef): not used for execution.  
 
*Message (id, name, structureRef): not used for execution.  
 
*Error (id, structureRef): tbd  
 
*Error (id, structureRef): tbd  
*Assignment (id, from, to): used for Stardust DataMapping (Application Tasks / Interactive Tasks), ParameterMapping (Triggers) (see [[#BPMN dataAssociation|dataAssociation]]  
+
*Assignment (id, from, to): used for Stardust DataMapping (Application Tasks / Interactive Tasks), ParameterMapping (Triggers) (see [[#BPMN_dataAssociation|dataAssociation]]  
*MessageEventDefinition (id, messageRef, operationRef): operationRef only (see (Message-) [[#BPMN Events|Events]]  
+
*MessageEventDefinition (id, messageRef, operationRef): operationRef only (see (Message-) [[#BPMN_Events|Events]]  
 
*TerminateEventDefinition (id): tbd  
 
*TerminateEventDefinition (id): tbd  
*TimerEventDefinition (id, timeDate): timeDate plus timeCycle plus stopTime extension (see [[#BPMN timerStartEvent|timerStartEvent])
+
*TimerEventDefinition (id, timeDate): timeDate plus timeCycle plus stopTime extension (see [[#BPMN timerStartEvent|timerStartEvent]])
  
 +
<br>
  
 
== References  ==
 
== References  ==
  
 
OMG2011: Business Process Model and Notation (BPMN), Version 2.0, formal/2011-01-03, available from http://www.omg.org/spec/BPMN/2.0/ Notice: The pages referred to primarily indicate where attributes and the object model are described. Further information about specific elements (e.g. execution semantics etc.) may be found elsewhere in the specification.
 
OMG2011: Business Process Model and Notation (BPMN), Version 2.0, formal/2011-01-03, available from http://www.omg.org/spec/BPMN/2.0/ Notice: The pages referred to primarily indicate where attributes and the object model are described. Further information about specific elements (e.g. execution semantics etc.) may be found elsewhere in the specification.

Latest revision as of 06:55, 1 December 2012

This page documents how Stardust relates to and supports BPMN 2.0 with respect to a) modeling support (browser modeler) and b) engine support (i.e. transformation of BPMN 2.0 XML into the Stardust object model).

The description targets the graphical BPMN elements as well as several supporting elements basically not visible in a process model.

The following aspects/items are provided for each (if applicable):

Spec: a hint on where to find a description in the BPMN 2.0 specification (i.e. class model and attributes/relations)

BPMN Modelling Conformance Subclasses: the conformance subclasses to which the element belongs (cp. chapter 2 of the BPMN 2.0 specification)

Modeler support: whether/how the browser modeler supports the corresponding element

Execution Support: extent of execution support / limitations.

Mapping Description: which stardust element or configuration/construct corresponds to the BPMN element (i.e. how to reach the intended behaviour or functionality)

Transformation: current state of transformation

Testmodel(s): link(s) to BPMN XML testmodels (with Stardust extensions, if available) with corresponding elements

see also: link(s) to related or supporting elements providing more

Attributes: usage / mapping of BPMN element attributes. In general, only the element-specific attributes are considered (not inherited from upper classes).

Related Elements: usage / mapping of BPMN element model associations (types declared in square brackets)

Extension Elements/Attributes: extensions to BPMN for Stardust specific information and links to object model classes, if available (note '::<super>' is used to indicate a superclass)

Specific types: list of more specific elements / subclasses not yet described separately


Contents


Callable Elements

BPMN process

Spec: OMG p.146f

Execution Support: full

Mapping Description: BPMN processes correspond to processes in Stardust.

Transformation: partial (related elements missing)

Testmodel(s): e.g. CollapsedSubprocess.bpmn (any testmodel contains at least one process).

see also: callActivity

Related Elements

  • Auditing: tbd
  • Monitoring: tbd
  • Property: Stardust Variable (Data)
  • Resource role: tbd
  • Artifact: tbd
  • CorrelationSubscription: tbd
  • Interface: tbd


BPMN globalTask

Spec: OMG p.187f

BPMN Modelling Conformance Subclasses: -

Execution Support: partial

Mapping Description: BPMN Global Tasks are not directly available in Stardust, however, a process with a corresponding 'global task' can be generated.

Transformation: TODO

Task call: see callActivity

Related Elements

  • Property: Stardust Variable (Data)
  • Resource role: tbd
  • Interface: tbd

Specific types


Activities / Subprocesses

Common Activity Extensions (Subprocess, Task etc.):


BPMN subProcess

Spec: OMG p.173f

BPMN Modelling Conformance Subclasses: Executable (expanded) / Descriptive / Analytic

Execution Support: partial (collapsed subprocesses)

Mapping Description: BPMN Sub-Processes correspond to Stardust Sub-Processes. In Stardust, subprocess-activities call a process whilst BPMN subprocesses contain their process elements (i.e. they are flow element containers). However, by specifying the called process in stardust as 'synchronous with shared data', the behaviour and even data visibility are similar to BPMN.

Transformation: available

Testmodel(s): CollapsedSubprocess.bpmn

Related Elements

Specific types

  • AdHocSubprocess: tbd
  • EventSubprocess: tbd


BPMN callActivity

Spec: OMG p.183f,

BPMN Modelling Conformance Subclasses: Executable / Descriptive / Analytic

Execution Support: partial (no direct call of GlobalTask)

Mapping Description: Call Activities correspond to the Stardust Subprocess Activity, whereas the configuration differs from a default Subprocess call (cp. BPMN Sub-Process) with respect to the data visibility (i.e. separate data).

Transformation: todo

Testmodel(s): todo .bpmn .bpmn

Attributes

  • none

Related Elements

  • calledElement [CallableElement]

Extension Elements/Attributes

  • tbd (::StardustActivity)


Process Call

Mapping Description: The Stardust Sub-process Activity synchronously calls a process with separate data (i.e. process parameters / input-/output-paths are used, mapped to BPMN Process DataInput/DataOutput elements).

Transformation: todo

GlobalTask Call

Mapping Description: Global tasks are transformed to Stardust Processes containing an Activity that corresponds to the GlobalTask (see globalTask). The call then works similar to Process Call.

Transformation: todo


Tasks

BPMN Task (Abstract / None)

Spec: OMG p.156f

BPMN Modelling Conformance Subclasses: Descriptive / Analytic

Execution Support: full

Mapping Description: BPMN unspecific task is not executable. It is mapped to a Route Activity in Stardust.

Transformation: available

Testmodel(s): AbstractTask.bpmn


BPMN userTask

Spec: OMG p.163,

BPMN Modelling Conformance Subclasses: Executable / Descriptive / Analytic

Execution Support: full

Mapping Description: BPMN user tasks correspond to Stardust Manual Activities or Interactive Activites respectively.

Transformation: available

Testmodel(s): Stardust Manual Activity (with performers): UserTask.bpmn, Stardust Interactive Task: UserTaskWebApp.bpmn

Attributes

  • implementation: Manual Activity=“##unspecified", JSP=http://java.sun.com/JSP/Page, JSF=http://java.sun.com/jsf, JFC= http://java.sun.com/jfc

Related Elements

  • resources [ResourceRole]: Stardust Participant (if ResourceRole type Performer). See also Resources
  • Rendering: not used (see extension)

Extension Elements/Attributes


BPMN serviceTask

Spec: OMG p.158f,

BPMN Modelling Conformance Subclasses: Executable / Descriptive / Analytic

Execution Support: full (WebServices, Plain Java, Spring Beans, Transformation, Parsing, DMS Operation...)

Mapping Description: BPMN service tasks are mapped to Stardust (non-interactive) application tasks.

Transformation: available

Testmodel(s): Webservice call: ServiceTaskWebServiceApp.bpmn

Attributes

  • implementation: ("##unspecified"), "#WebService", tbd: url's specifying the implementation type. Not used for execution.

Related Elements

  • operationRef [Operation]: used to identify the Interface holding the application details (see Interface)

Extension Elements/Attributes


BPMN sendTask

Spec: OMG p.159

BPMN Modelling Conformance Subclasses: Analytic

Execution Support: tbd

Mapping Description: tbd

Transformation: todo

Testmodel(s): .bpmn .bpmn

Attributes

Related Elements

Extension Elements/Attributes


BPMN receiveTask

Spec: OMG p.161

BPMN Modelling Conformance Subclasses: Analytic

Execution Support: tbd

Mapping Description: tbd

Transformation: todo

Testmodel(s): .bpmn .bpmn

Attributes

Related Elements

Extension Elements/Attributes


BPMN businessRulesTask

Spec: OMG p.164

BPMN Modelling Conformance Subclasses: - (full)

Execution Support: tbd

Mapping Description: tbd

Transformation: todo

Testmodel(s): .bpmn .bpmn

Attributes

Related Elements

Extension Elements/Attributes


BPMN scriptTask

Spec: OMG p.165 

BPMN Modelling Conformance Subclasses: - (full)

Execution Support: tbd

Mapping Description: tbd

Transformation: todo

Testmodel(s): .bpmn .bpmn

Attributes

Related Elements

Extension Elements/Attributes


Services

BPMN Interface

Spec: OMG p.104f,

BPMN Modelling Conformance Subclasses: -

Execution Support: based on extensions

Mapping Description: "An Interface defines a set of operations that are implemented by Services" (OMG p.104). Therefore the Interface element is used as container (see extension element StardustInterfaceType below) for the Stardust application specification. As Stardust has a variable concept for different kinds of applications (including a concept of 'accesspoints' e.g. exceeding the interface exposed by WSDL operations), the extension bases on the internal Stardust Object model.

Transformation: available

Testmodel(s): WebService Task: ServiceTaskWebServiceApp.bpmn, Interactive UserTask: UserTaskWebApp.bpmn, Message Events MessageEvents.bpmn

Attributes

  • name: Application Name

Related Elements

  • operations [Operation]: only used to reference from Activities
  • callableElements[CallableElement]: not used
  • implementationRef [Element]: dummy usage - references the nested extension element (StardustApplicationType)

Extension Elements/Attributes


BPMN Endpoint

Spec: OMG p.105,

BPMN Modelling Conformance Subclasses: -

Execution Support: no

Mapping Description: Endpoint is an extensionpoint for service addresses related to BPMN participants. There is no correspondance in Stardust. The service addressing is contained in the application configuration (see Interface extension).

Transformation: N/A

Testmodel(s): N/A

Attributes none (in addition to baseElement)

Related Elements none (in addition to baseElement)


Data

BPMN dataObject

Spec: OMG p.205

BPMN Modelling Conformance Subclasses: Executable / Descriptive / Analytic

Execution Support: full

Mapping Description: Corresponds to Data in Stardust. Depending on the configuration, the data visibility may increase the scope as defined by BPMN (e.g. it may be globally visible to other processes).

Transformation: available

Testmodel(s): Dataflow (structured type): DataObjectFlow.bpmn, Dataflow (primitive types): SimpleTypeDataFlow.bpmn

see also: Item Aware Element, Item Definition, Import

Attributes

  • isCollection: tbd

Related Elements none (see Item Aware Element)

Extension Elements/Attributes none


BPMN dataAssociation

Spec: OMG p.221

BPMN Modelling Conformance Subclasses: Executable / Descriptive / Analytic

Execution Support: partial (no transformation)

Mapping Description: Stardust defines dataflows through input and outputs of activities (data mapping). In addition, these mappings have a data-path to map the source (part) with the target (part). Thus, data associations are interpreted as such mappings, using the associations's assignment for data paths (and application paths).

Transformation: available

Testmodel(s): Basic Dataflows: DataObjectFlow.bpmn and SimpleTypeDataFlow.bpmn, Dataflows with application access-points/application paths: ServiceTaskWebServiceApp.bpmn and UserTaskWebApp.bpmn

Attributes none (::baseElement)

Related Elements

  • transformation[Expression]: data path, if no assignment is defined
  • assignment[Assignment]: depending on the association direction (input/output) the assignment-from/to are mapped to data path or application path
  • sourceRef[ItemAwareElement]: data object (not used for dataOutputAssociations, as the data mapping belongs to the activity whilst BPMN has a data input element on the activity)
  • targetRef[ItemAwareElement]: data object (not used for dataInputAssociations, as the data mapping belongs to the activity whilst BPMN has a data input element on the activity)

Extension Elements/Attributes none (see Assignment)


BPMN Assignment

Spec: OMG p.223

BPMN Modelling Conformance Subclasses: -

Execution Support: partial (limited to data-/application-path expressions, not any kind of expression)

Mapping Description: part of data flow (see dataAssociation)

Extension Elements/Attributes

  • Attribute ApplicationAccessPointRef (references an application access point of stardust)


BPMN Item Aware Element

Spec: OMG p.203

Related Elements

  • itemSubjectRef[ItemDefinition]: Stardust Data types (structured types, primitive data etc.)
  • dataState[DataState]: tbd

Extension Elements/Attributes: none


BPMN Item Definition

Spec: OMG p.92

Related Elements

  • itemKind[ItemKind]: not used, 'Information' assumed
  • structureRef: structured type definition / mapping of XML simple type to privitive type
  • import[Import]: XML Schema import (containing the structured types)
  • isCollection: tbd

Extension Elements/Attributes: none


Gateways

BPMN exclusiveGateway

Spec: OMG p.290

BPMN Modelling Conformance Subclasses: Executable / Descriptive / Analytic

Execution Support: full

Mapping Description: diverging exclusive Gateways correspond to XOR Splits, converging ones to XOR Joins. Mixed gateways and multiple gateways in a sequence are handled using route activities.

Transformation: available

Testmodel(s): XORGatewaysSingle.bpmn MixedGateway.bpmn SequentialMixedGateway.bpmn

Attributes none (::Gateway)

Related Elements

  • default[SequenceFlow]: relates to the 'otherwise' condition of Stardust sequence flows (transitions)

Extension Elements/Attributes none


BPMN parallelGateway

Spec: OMG p.290

BPMN Modelling Conformance Subclasses: Executable / Descriptive / Analytic

Execution Support: full

Mapping Description: diverging parallel Gateways correspond to AND Splits, converging ones to AND Joins. Mixed gateways and multiple gateways in a sequence are handled using route activities.

Transformation: available

Testmodel(s): ParallelGatewaysSingle.bpmn, (combined with conditional flows: combined)

Attributes none (::Gateway)

Related Elements none (::Gateway)

Extension Elements/Attributes none


BPMN inclusiveGateway

Spec: OMG p. 292

BPMN Modelling Conformance Subclasses: Analytic

Execution Support: partial (diverging only)

Mapping Description: Stardust supports conditions on AND splits, thus this behaves like inclusive gateways. However, the synchronisation is not supported.

Transformation: N/A

Testmodel(s): N/A

Attributes none (::Gateway)

Related Elements

  • default[SequenceFlow]

Extension Elements/Attributes none


BPMN eventBasedGateway

Spec: OMG p.297

BPMN Modelling Conformance Subclasses: Executable / Analytic

Execution Support: NO - REQUIRES CORE EXTENSION


BPMN complexGateway

Spec: OMG p.295

BPMN Modelling Conformance Subclasses: (full)

Execution Support: NO - REQUIRES CORE EXTENSION


Sequence Flows

BPMN sequenceFlow

Spec: OMG p.97f.

BPMN Modelling Conformance Subclasses: Executable / Descriptive / Analytic

Execution Support: full (expressions based on javascript)

Mapping Description: Sequence flows basically are transitions in Stardust. To reach the behaviour specified by BPMN, certain cases have to be distinguished: conditional sequence flows and uncontrolled flows. These are addressed in the following two sections.

Transformation: available

Testmodel(s): Sequence.bpmn

Attributes

  • isImmediate: N/A

Related Elements

  • SourceRef[FlowNode]: From (activity)
  • TargetRef[FlowNode]: To (activity)
  • conditionExpression[Expression]: Stardust condition (javascript)

Extension Elements/Attributes

  • todo: forkOnTraversal


unconditional flow

Spec: OMG p.36/38 (and others)

BPMN Modelling Conformance Subclasses: Executable / Descriptive / Analytic

Execution Support: full

Mapping Description: Besides single sequence flows, BPMN defines the behaviour of forking and merging sequences (without using Gateways) as parallel (fork) and exclusive (merge). Thus, these constructs correspond to AND splits and XOR joins in Stardust respectively.

Transformation: available

Testmodel(s): UncontrolledFlow.bpmn


conditional flow

Spec: OMG p. 427, 35f.

BPMN Modelling Conformance Subclasses: Executable / Descriptive / Analytic

Execution Support: full

Mapping Description: All transitions may have conditions in Stardust, thus there is a direct corresponance. Besides the graphical difference (diamond / slash marker), in BPMN conditional / default sequence flows are rather thought of to define alternative paths. Thus, in Stardust further flow control is required (i.e. join/split configuration). Basically, the combination of conditional and default sequence flows from an activity can be represented with a AND split and transitions with conditions (or 'OTHERWISE' for default sequences). If the combination also contains unconditional sequence flows, a parallel flow (unconditional AND-Split) is required, followed by another AND-Split with conditional/default flows (thus requiring a route activity in between). A minor difference regarding attributes is, that the default flow is defined on the FlowNode in BPMN, whilst in Stardust this information is on the transition element.

Transformation: available

Testmodel(s):


Start Events

General limitations on start events: Stardust only supports a single entry point into a process (i.e. only one activity without incoming sequence flows or a single start trigger).

BPMN startEvent (None)

Spec: OMG p.240f

BPMN Modelling Conformance Subclasses: Executable / Descriptive / Analytic

Execution Support: full

Mapping Description: Stardust uses an unspecific start event only as visual element but offers a 'manual trigger', that is not available in BPMN. Therefore, the BPMN 'none' start event is extended with a performer attribute, allowing to indicate a manual start for process execution in Stardust.

Transformation: available

Testmodel(s): StartEventNone.bpmn

Attributes

  • isInterrupting: tbd
  • from ::catchEvent
    • parallelMultiple: tbd

Related Elements

  • from ::catchEvent
    • eventDefinitionRefs[EventDefinition]: N/A ('none' startEvent)
    • dataOutputAssociation[DataOutputAssociation]: N/A (for 'none')
    • dataOutputs[DataOutput]: N/A (for 'none')
    • outputSet[OutputSet]: N/A (for 'none')

Extension Elements/Attributes

  • StardustStartEventType.java allows for any generic Stardust attribute type, containing an 'engine:participant' value for manual start events.


BPMN timerStartEvent

Spec: OMG p.240f

BPMN Modelling Conformance Subclasses: Descriptive / Analytic

Execution Support: full

Mapping Description: The timer start event directly corresponds to the Timer Trigger in Stardust.

Transformation: available

Testmodel(s): StartEventTimer.bpmn

Related Elements

  • TimerEventDefinition:
    • timeCycle[Expression]:ISO-8601 format for recurring time interval representations - mapped to 'periodicity'
    • timeDate[Expression]: ISO-8601 format for date and time representations - mapped to 'startTime'
    • timeDuration[Expression]: N/A for start event

Extension Elements/Attributes

  • TimerEventDefinition:stopTime


BPMN messageStartEvent

Spec: OMG p.234f, 271 (MessageEventDefinition)

BPMN Modelling Conformance Subclasses: Executable / Descriptive / Analytic

Execution Support: full (JMS, E-Mail)

Mapping Description: Depending on the Operation referred to in the MessageEventDefinition, the messageStartEvent is mapped to a Stardust JMS trigger or an E-Mail trigger.

Transformation: partially (JMS, missing trigger type definition)

Testmodel(s): Message events (start, intermediate, end): MessageEvents.bpmn

Attributes

  • isInterrupting: tbd
  • from ::catchEvent
    • parallelMultiple: tbd

Related Elements

  • from ::catchEvent
    • eventDefinitionRefs[EventDefinition]: single definition supported (details below)
    • dataOutputAssociation[DataOutputAssociation]: see DataAssociation
    • dataOutputs[DataOutput]: not used see Data
    • outputSet[OutputSet]: not used see Data

MessageEventDefinition

Extension Elements/Attributes:

  • None for StartEvent / MessageEventDefinition
  • Attribute parameterMappingOid on Assignment (of DataOutputAssociation)


Intermediate Events

Stardust originally does not have explicit (independent) intermediate event elements. Hovever, some event handling can be defined for activities and some (service-) activity configurations behave similar to certain BPMN events.


BPMN catching messageIntermediate Event

Spec: OMG p.234ff. 271 (MessageEventDefinition)

BPMN Modelling Conformance Subclasses: Executable / Analytic

Execution Support: full (JMS)

Mapping Description: As a BPMN (catching) message event basically waits until a message arrives, this behaviour corresponds to a Stardust service activity with a JMS application

Transformation: available (JMS)

Testmodel(s): Message events (start, intermediate, end): MessageEvents.bpmn

Attributes

  • from ::catchEvent
    • parallelMultiple: tbd

Related Elements

  • from ::catchEvent
    • eventDefinitionRefs[EventDefinition]: single definition supported (details below)
    • dataOutputAssociation[DataOutputAssociation]: see DataAssociation
    • dataOutputs[DataOutput]: not used see Data
    • outputSet[OutputSet]: not used see Data

MessageEventDefinition:

Extension Elements/Attributes


BPMN throwing messageIntermediateEvent

Spec: OMG p.234ff. 271 (MessageEventDefinition)

BPMN Modelling Conformance Subclasses: Executable / Analytic

Execution Support: full (JMS, E-Mail)

Mapping Description: As a BPMN (throwing) message event basically sends a message when a token arrives, this behaviour corresponds to a Stardust service activity with a JMS application. Similarly, an E-Mail may be sent.

Transformation: available (JMS)

Testmodel(s): Message events (start, intermediate, end): MessageEvents.bpmn

Attributes

  • isInterrupting: tbd
  • from ::throwEvent
    • parallelMultiple: tbd

Related Elements

  • from ::throwEvent
    • eventDefinitionRefs[EventDefinition]: single definition supported (details below)
    • dataInputAssociation[DataInputAssociation]: see DataAssociation
    • dataInputs[DataInput]: not used see Data
    • inputSet[InputSet]: not used see Data

MessageEventDefinition:

Extension Elements/Attributes


BPMN Catching timer Intermediate Event

Spec: OMG p. 234, 274

BPMN Modelling Conformance Subclasses: Executable / Analytic

Execution Support: full

Mapping Description: An intermediate timer event delays the flow according to a given value (timeDate, timeCycle, timeValue). In Stardust, this behaviour is reached with a Timer event handler bound to a (Route) Activity which is hibernated when bound and completed when the timer event occurs.

Transformation: available for timeDuration. A BPMN extension could enable variable dates based on workflow data.

Testmodel(s): CatchingIntermediateTimerEvent.bpmn

Attributes

  • from ::catchEvent
    • parallelMultiple: tbd

Related Elements

  • from ::catchEvent
    • eventDefinitionRefs[EventDefinition]: single definition supported (details below)
    • dataOutputAssociation[DataOutputAssociation]: see DataAssociation
    • dataOutputs[DataOutput]: not used see Data
    • outputSet[OutputSet]: not used see Data

TimerEventDefinition:

  • TimerEventDefinition:
    • timeCycle[Expression]:ISO-8601 format for recurring time interval representations - mapped to period
    • timeDuration[Expression]: ISO-8601 format for time interval representations - mapped to period
    • timeDate[Expression]: N/A for intermediate event

Extension Elements/Attributes

none


BPMN Boundary error Intermediate Event

Spec: OMG p.,

BPMN Modelling Conformance Subclasses: (Executable / Descriptive / Analytic)

Execution Support: full/partial

Mapping Description:

Transformation: todo

Testmodel(s): .bpmn .bpmn

Attributes

Related Elements

Extension Elements/Attributes


End Events

BPMN endEvent (None)

Spec: OMG p.234ff

BPMN Modelling Conformance Subclasses: Executable / Descriptive / Analytic

Execution Support: no (only graphical)

Mapping Description: End event symbol.

Transformation: N/A

Testmodel(s): .bpmn .bpmn

Attributes N/A

Related Elements N/A

Extension Elements/Attributes N/A


BPMN messageEndEvent

Spec: OMG p.234ff. 271 (MessageEventDefinition)

BPMN Modelling Conformance Subclasses: Executable / Descriptive / Analytic

Execution Support: full (JMS, E-Mail)

Mapping Description: As a BPMN message end event basically sends a message at the end of a process, this behaviour corresponds to a Stardust service activity with a sending JMS application at the end of a process. Similarly, an E-Mail may be sent.

Transformation: available (JMS)

Testmodel(s): Message events (start, intermediate, end): MessageEvents.bpmn

Attributes

  • isInterrupting: tbd
  • from ::throwEvent
    • parallelMultiple: tbd

Related Elements

  • from ::throwEvent
    • eventDefinitionRefs[EventDefinition]: single definition supported (details below)
    • dataInputAssociation[DataInputAssociation]: see DataAssociation
    • dataInputs[DataInput]: not used see Data
    • inputSet[InputSet]: not used see Data

MessageEventDefinition:

Extension Elements/Attributes none


BPMN terminateEndEvent

Spec: OMG p. 273

BPMN Modelling Conformance Subclasses: Executable / Descriptive / Analytic

Execution Support: tbd

'Mapping Description: 'tbd

Transformation: todo

Testmodel(s): .bpmn .bpmn

Attributes

Related Elements

Extension Elements/Attributes


Resources

BPMN Resource

Spec: OMG p.95f

BPMN Modelling Conformance Subclasses: Executable / full

Execution Support: full

Mapping Description: Resources are mapped to participants in Stardust (i.e. roles, organisations, conditional performer).

Transformation: partially available (roles, organisations, conditional performer)

Testmodel(s): UserTask.bpmn

Attributes

  • name

Related Elements

  • resourceParameters[ResourceParameter]: N/A

Extension Elements/Attributes



BPMN ResourceRole

Spec: OMG p. 154

BPMN Modelling Conformance Subclasses: (Executable / Descriptive / Analytic)

Execution Support: partial (no owner / only performer)

Mapping Description: ResourceRoles of activities are mapped to Stardust participants, if the resource role is of type 'Performer' or a subclass of that

Transformation: available (performer)

Testmodel(s): .bpmn .bpmn

Attributes

Related Elements

  • resourceRef[Resource]: reference to the resource which is mapped to a Stardust participant, if the resource role is 'Performer'
  • resourceAssignmentExpression[ResourceAssignmentExpression]: N/A
  • resourceParameterBindings[ResourceParameterBinding]: N/A

Extension Elements/Attributes none

Specific Types (not differentiated in Stardust mapping)

  • Performer
  • Human Performer
  • Potential Owner


Processes Collaboration

BPMN Participant

Spec: OMG p.,

BPMN Modelling Conformance Subclasses: (Executable / Descriptive / Analytic)

Execution Support: full/partial

Mapping Description:

Transformation: todo

Testmodel(s): .bpmn .bpmn

Attributes

Related Elements

Extension Elements/Attributes


BPMN Lanes

Foundation

BPMN baseElement

Attributes

  • id: generally mapped to Stardust element-id.

Related Elements

  • documentation [Documentation]: See Documentation.
  • extensionDefinitions: Not used, as the transformation relies on XML Schema based interchange.
  • extensionValues: Not used, as the transformation relies on XML Schema based interchange.


BPMN Documentation

Mapping description: The content of documentations is used as description of Stardust elements. As BPMN foresees multiple documentations for most elements, the text is concatenated.

Attributes

  • text: Stardust description.
  • textFormat: not used (only plain text supported).


Common attributes

In addition to id and documentation (from baseElement), most elements have a name attribute (not 'globally' inherited) which is also available for Stardust elements.


Infrastructure

BPMN Definitions

Mapping Description: The root element of the BPMN Document corresponds to a Stardust Model. It may contain several processes, data structures, imports etc.

Transformation: available

Attributes

  • targetNamespace: not transformed (XML specific).
  • expressionLanguage: not used (supported expression languages are declared in specific expression elements) - tbd
  • typeLanguage: not used (default = XML Schema is supported)
  • exporter: unused (may be set for export)
  • exporterVersion: unused (may be set for export)

Related Elements

  • relationships: tbd
  • imports: XML Schema and WSDL imports supported, further: tbd.
  • rootElements: for modelling
  • diagrams: for modelling
  • extensions: unused (relies on XSD based extensions)


Extension Elements/Attributes

  • attributeGroup ModelAttributes (see StardustBPMN20.xsd)
    • oid
    • modelOID
    • author
    • created
    • carnotVersion
    • vendor


BPMN Import

Spec: OMG p.53f

BPMN Modelling Conformance Subclasses:

Modeler support:

Execution Support: full (XML Schema and WSDL imports)

Mapping Description: Stardust data structure import (type declaration)

Transformation: available

Testmodel(s): see dataObject

Attributes: usage / mapping of BPMN element attributes

  • importType: declarative
  • location: external reference of type declaration
  • namespace: namespace of external reference

Extension Elements/Attributes: extensions to BPMN for Stardust specific information and links to object model classes, if available (note '::<super>' is used to indicate a superclass)

Specific types: list of more specific elements / subclasses not yet described separately


Addendum (Transformation / Interpretation)

The following sections discuss cases which are not distinctly attributed to a certain model element but rather to the process behaviour or topology.

Process Start

Stardust does not include Start- or EndEvents as part of the process flow (i.e. process triggers are not connected by sequence flows/transitions). The actual process start (entry point) is the first (and only) activity without incoming transitions. Consequently, the following cases require specific considerations with respect to the transformation/execution.

Parallel Activities (e.g. parallel box)

In BPMN a process may have several activities without incoming sequence flows, meaning that they are all started in parallel, when the process is instantiated.

If (and only if) there is no BPMN StartEvent but multiple activities without incoming sequence flows (i.e. parallel box), a route activity with a parallel split is inserted as process start (cp. ParallelBox.bpmn).

A route activity as process entry point is also introduced, when a BPMN Start Event (none) forks into a parallel flow (cp. ParallelSplitStart.bpmn).

Backloops

If a flow loops back to the first activity, there is ‘no process start’ anymore. In this case, the transformation introduces a route activity at the beginning of the process (between the start trigger, if there is one, and the first activity), cp. BackloopToStart.bpmn.

If the BPMN Process does not contain a StartEvent, the same rule (to determine the process entry point(s)) basically applies to a BPMN Process, thus, backloops are not dealt with separately.



Supporting Classes (Common Executable Conformance Sub-Class)

Spec.: cp. OMG p.7

  • StandardLoopCharacteristics (id, loopCondition): Stardust Loop (While|Repeat with Loop Condition) (Todo)
  • MultiInstanceLoopCharacteristics (id, isSequential, loopDataInput, inputDataItem): no direct support - tbd
  • Rendering: not used (cp. userTask)
  • Resource (id, name): Performer (see userTask and Resource)), further resources: tbd
  • ResourceRole (id, resourceRef, resourceAssignmentExpression): Performer (see userTask and ResourceRoles))
  • InputOutputSpecification (id, dataInputs, dataOutputs): Task Data Flow (see Data)
  • DataInput (id, name, isCollection, itemSubjectRef): Data Flow (see Data)
  • DataOutput (id, name, isCollection, itemSubjectRef): Data Flow (see Data)
  • ItemDefinition (id, structure or import) [XSD Complex Type structure]: Data Flow (see Data)
  • Operation (id, name, inMessageRef, outMessageRef, errorRefs): Applications / Interactive Applications (see serviceTask, userTask, (Message-) Events)
  • Message (id, name, structureRef): not used for execution.
  • Error (id, structureRef): tbd
  • Assignment (id, from, to): used for Stardust DataMapping (Application Tasks / Interactive Tasks), ParameterMapping (Triggers) (see dataAssociation
  • MessageEventDefinition (id, messageRef, operationRef): operationRef only (see (Message-) Events
  • TerminateEventDefinition (id): tbd
  • TimerEventDefinition (id, timeDate): timeDate plus timeCycle plus stopTime extension (see timerStartEvent)


References

OMG2011: Business Process Model and Notation (BPMN), Version 2.0, formal/2011-01-03, available from http://www.omg.org/spec/BPMN/2.0/ Notice: The pages referred to primarily indicate where attributes and the object model are described. Further information about specific elements (e.g. execution semantics etc.) may be found elsewhere in the specification.

Back to the top