User Tools

Site Tools


Composition Modeler

Composition modeler is a tool to arbitrarily replace tasks of the frame model with the models in the component models. (It is an extension of collapsing/opening subprocesses because the additions can be full diagrams, e.g. collaboration models and are not restricted to be a single process).

Using the composition has the following steps:

  • Create the component models in BPMN modeler
    • Add labels to the elements that need to be connected in the composition modeler
  • Create the frame model in BPMN modeler
    • Add labels to the elements that need to be connected in the composition modeler
    • All data objects that are in any way global need to be on the frame model - e.g. the ones sent over the network or inputs-outputs of the process itself. All data objects that are used by more than one component model.
  • Open the frame model in the composition modeler
  • Link the component models to tasks in the frame model
    • Click on the task in the frame model in the composition modeler, select “Change model” in the right hand side panel (or reload if you want to use the same model but have updated the component after it was added to the frame)
    • Choose the right model from the file listing, click “Select”. Note that at the moment only the models owned by the logged in user can be selected. Hence, all used models should be copied to the user's account.
    • First match the pools and lanes of the component model with the pools of the frame model. We expect that the frame model contains all necessary pools and lanes.
    • Then the composition tool shows you which labels of the component model were matched to the elements of the frame model or already loaded components. The user can remove some of the connections by choosing to ignore them.
    • In order to use the composition modeler with BPMN leaks-when the user also has to specify which of the data objects are intended to be the same. We assume that the frame model contains all outputs and inputs that it has with the components. However, the labels may leave these connections ambiguous if some task has many inputs or outputs connected. Hence, there is a step to match the data of the component model with the data object of the frame model.
      • The tool lists the data objects connected with the task chosen on the frame model. The user has to select which of the component model data objects (chosen as inputs/outputs of the tasks that have the labels of these frame model data objects) are replaced by the elements of the frame model.
    • Final step of adding the model is removing unnecessary elements (e.g. the data objects matched in the previous step and the start/end events of the included model) from the composition. Later all elements of the component that are not removed will be copied to the merged model.
    • Save the settings for this component model (bottom of the right hand panel). Repeat for other components.
  • Save the frame model (save button in the top of the screen or Control+S).
  • Generate the composed model using “Merge all” button on the top of the right hand panel.
  • The merged model is created and loaded to viewer (the viewer background goes gray). Note that the composed model sometimes appears of the the default view (usually in the bottom). Also note that all the model elements are included to the right pools and lanes but otherwise the output model may have a scrambled layout.
    • you can take the merge back using “Revert merge”
    • you can toggle the merged and frame view using “Show/Hide merge results”
    • you can export the bpmn file using “Export merged model”
      • Useful for untangling the merged model
      • Importing model to Pleak: Go to the main file listing, choose “New model” and give it a suitable name. Then open this file from the file listing by clicking on its name. Opening an empty file gives you the choice to either import the file or start creating it in the modeler. Composed model can be untangled and modified as any regular model after importing. However, pay attention that if you drag some element in the middle of some sequence flow then it may be automatically connected to the middle of this sequence flow.


Labels are used to simplify creating connections. Clicking on a model element in the composition modeler opens the labels information. It is possible to add any number of labels and for each label the user has to choose whether the connection of this label is incoming to this model element or going out from the model element.

During the composition the labels with the same name but different direction can be joined to create new connections (data flow, message flow or sequence flow in the model). The right type or the connection is determined automatically based on the types and locations (same or different pool) of the elements that are connected.

BPMN leaks-when support

The composition tool supports BPMN leaks-when and automatically changes the scripts of the component models to reflect that some data from the component model is replaced by the data object in the frame model.

In order to maintain the condition that all data objects have unique names the composition tool renames all the data objects inside the component models by giving them a unique random prefix.

PE-BPMN support

There is limited support to correctly compose information of some PE-BPMN stereotypes. It currently supports symmetric encryption, attribute based encryption.

composition-modeler.txt · Last modified: 2020/03/26 13:22 by pullonen