description <http://ua.be/sdo2l/description/artifacts/Paralels_pm#> as Paralels_pm {

  uses <http://ua.be/sdo2l/vocabulary/formalisms/pm#> as pm
  uses <http://ua.be/sdo2l/vocabulary/formalisms/object_diagram#> as object_diagram
  extends <http://ua.be/sdo2l/description/artifacts/MyPM_2_pm#> as MyPM_2_pm

  instance model : pm:Model [
    object_diagram:hasName "Paralels_pm"
  ]

  instance initial : pm:Initial [
  	pm:hasName "Start Parallel Process"
    object_diagram:inModel model
    pm:ctrlTo splitter
  ]

  instance splitter : pm:ForkJoin [
    object_diagram:inModel model
    pm:ctrlTo invoking_1_input
    pm:ctrlTo invoking_2_input
  ]

  instance invoking_1_input : pm:CtrlInputPort [
    pm:hasName "cin_1"
    pm:ofActivity invoking_1
    object_diagram:inModel model
  ]

  instance invoking_1 : pm:InvokingActivity [
    pm:hasName "Invoke_MyPM_1"
    pm:invokesPM MyPM_2_pm:model
    object_diagram:inModel model
  ]

  instance invoking_1_output : pm:CtrlOutputPort [
    pm:hasName "cout_1"
    pm:ofActivity invoking_1
    object_diagram:inModel model
    pm:ctrlTo joiner
  ]

  instance invoking_2_input : pm:CtrlInputPort [
    pm:hasName "cin_2"
    pm:ofActivity invoking_2
    object_diagram:inModel model
  ]

  instance invoking_2 : pm:InvokingActivity [
    pm:hasName "Invoke_MyPM_2"
    pm:invokesPM MyPM_2_pm:model
    object_diagram:inModel model
  ]

  instance invoking_2_output : pm:CtrlOutputPort [
    pm:hasName "cout_2"
    pm:ofActivity invoking_2
    object_diagram:inModel model
    pm:ctrlTo joiner
  ]

  instance joiner : pm:ForkJoin [
    object_diagram:inModel model
    pm:ctrlTo final
  ]

  instance final : pm:Final [
  	pm:hasName "End Parallel Process"
    object_diagram:inModel model
  ]
  
  relation instance ctrl_initial_split : pm:CtrlFlow [
    from initial
    to splitter
    object_diagram:inModel model
  ]

  relation instance ctrl_split_invoke1 : pm:CtrlFlow [
    from splitter
    to invoking_1_input
    object_diagram:inModel model
  ]

  relation instance ctrl_split_invoke2 : pm:CtrlFlow [
    from splitter
    to invoking_2_input
    object_diagram:inModel model
  ]

  relation instance ctrl_invoke1_join : pm:CtrlFlow [
    from invoking_1_output
    to joiner
    object_diagram:inModel model
  ]

  relation instance ctrl_invoke2_join : pm:CtrlFlow [
    from invoking_2_output
    to joiner
    object_diagram:inModel model
  ]

  relation instance ctrl_join_final : pm:CtrlFlow [
    from joiner
    to final
    object_diagram:inModel model
  ]
}