You are on page 1of 47

Date: June 2010

BPMN 2.0 by Example


Version 1.0 (non-normative) ____________________________________________________
OMG Document Number: dtc/2010-0 -02 !tandard document "#$: %ttp://&&&.om'.or'/(pec/BPMN/2.0/example(/PD) *((oc+ated )+le: %ttp://&&&.om'.or'/(pec/BPMN/2.0/example(/,-P

____________________________________________________

Copyright 2010, camunda services GmbH Copyright 2010, IBM Corp. Copyright 2010, b!ect Management Group, Inc. Copyright 2010, "#$ Group Copyright 2010, %$" $G Copyright 2010, &risotech, Inc.

'%( ) %"(CI)IC$&I # * &(+M%, C #,I&I #% - # &IC(%


&he materia. in this document detai.s an b!ect Management Group speci/ication in accordance 0ith the terms, conditions and notices set /orth be.o0. &his document does not represent a commitment to imp.ement any portion o/ this speci/ication in any company1s products. &he in/ormation contained in this document is sub!ect to change 0ithout notice.

2IC(#%(%
&he companies .isted above have granted to the b!ect Management Group, Inc. 3 MG4 a none5c.usive, roya.ty* /ree, paid up, 0or.d0ide .icense to copy and distribute this document and to modi/y this document and distribute copies o/ the modi/ied version. (ach o/ the copyright ho.ders .isted above has agreed that no person sha.. be deemed to have in/ringed the copyright in the inc.uded materia. o/ any such copyright ho.der by reason o/ having used the speci/ication set /orth herein or having con/ormed any computer so/t0are to the speci/ication. %ub!ect to a.. o/ the terms and conditions be.o0, the o0ners o/ the copyright in this speci/ication hereby grant you a /u..y*paid up, non*e5c.usive, nontrans/erab.e, perpetua., 0or.d0ide .icense 30ithout the right to sub.icense4, to use this speci/ication to create and distribute so/t0are and specia. purpose speci/ications that are based upon this speci/ication, and to use, copy, and distribute this speci/ication as provided under the Copyright $ct6 provided that7 314 both the copyright notice identi/ied above and this permission notice appear on any copies o/ this speci/ication6 324 the use o/ the speci/ications is /or in/ormationa. purposes and 0i.. not be copied or posted on any net0or8 computer or broadcast in any media and 0i.. not be other0ise reso.d or trans/erred /or commercia. purposes6 and 394 no modi/ications are made to this speci/ication. &his .imited permission automatica..y terminates 0ithout notice i/ you breach any o/ these terms or conditions. 'pon termination, you 0i.. destroy immediate.y any copies o/ the speci/ications in your possession or contro..

"$&(#&%
&he attention o/ adopters is directed to the possibi.ity that comp.iance 0ith or adoption o/ MG speci/ications may re:uire use o/ an invention covered by patent rights. MG sha.. not be responsib.e /or identi/ying patents /or 0hich a .icense may be re:uired by any MG speci/ication, or /or conducting .ega. in:uiries into the .ega. va.idity or scope o/ those patents that are brought to its attention. MG speci/ications are prospective and advisory on.y. "rospective users are responsib.e /or protecting themse.ves against .iabi.ity /or in/ringement o/ patents.

G(#(+$2 '%( +(%&+IC&I #%


$ny unauthori;ed use o/ this speci/ication may vio.ate copyright .a0s, trademar8 .a0s, and communications regu.ations and statutes. &his document contains in/ormation 0hich is protected by copyright. $.. +ights +eserved. #o part o/ this 0or8 covered by copyright herein may be reproduced or used in any /orm or by any means**graphic, e.ectronic, or mechanica., inc.uding photocopying, recording, taping, or in/ormation storage and retrieva. systems** 0ithout permission o/ the copyright o0ner.

,I%C2$IM(+ ) <$++$#&=

<HI2( &HI% "'B2IC$&I # I% B(2I(>(, & B( $CC'+$&(, I& I% "+ >I,(, ?$% I%? $#, M$= C #&$I# (++ +% + MI%"+I#&%. &H( B@(C& M$#$G(M(#& G+ '" $#, &H( C M"$#I(% 2I%&(, $B >( M$A( # <$++$#&= ) $#= AI#,, (B"+(%% + IM"2I(,, <I&H +(G$+, & &HI% "'B2IC$&I #, I#C2',I#G B'& # & 2IMI&(, & $#= <$++$#&= ) &I&2( + <#(+%HI", IM"2I(, <$++$#&= ) M(+CH$#&$BI2I&= + <$++$#&= ) )I&#(%% ) + $ "$+&IC'2$+ "'+" %( + '%(. I# # (>(#& %H$22 &H( B@(C& M$#$G(M(#& G+ '" + $#= ) &H( C M"$#I(% 2I%&(, $B >( B( 2I$B2( ) + (++ +% C #&$I#(, H(+(I# + ) + ,I+(C&, I#,I+(C&, I#CI,(#&$2, %"(CI$2, C #%(C'(#&I$2, +(2I$#C( + C >(+ ,$M$G(%, I#C2',I#G 2 %% ) "+ )I&%, +(>(#'(, ,$&$ + '%(, I#C'++(, B= $#= '%(+ + $#= &HI+, "$+&= I# C ##(C&I # <I&H &H( )'+#I%HI#G, "(+) +M$#C(, + '%( ) &HI% M$&(+I$2, (>(# I) $,>I%(, ) &H( " %%IBI2I&= ) %'CH ,$M$G(%. &he entire ris8 as to the :ua.ity and per/ormance o/ so/t0are deve.oped using this speci/ication is borne by you. &his disc.aimer o/ 0arranty constitutes an essentia. part o/ the .icense granted to you to use this speci/ication.

+(%&+IC&(, +IGH&% 2(G(#,


'se, dup.ication or disc.osure by the '.%. Government is sub!ect to the restrictions set /orth in subparagraph 3c4 314 3ii4 o/ &he +ights in &echnica. ,ata and Computer %o/t0are C.ause at ,)$+% 2D2.22E*E019 or in subparagraph 3c4 314 and 324 o/ the Commercia. Computer %o/t0are * +estricted +ights c.auses at FG C.).+. D2.22E*1H or as speci/ied in FG C.).+. 22E*E202*2 o/ the ,o, ).$.+. %upp.ement and its successors, or as speci/ied in FG C.).+. 12.212 o/ the )edera. $c:uisition +egu.ations and its successors, as app.icab.e. &he speci/ication copyright o0ners are as indicated above and may be contacted through the b!ect Management Group, 1F0 Aendric8 %treet, #eedham, M$ 02FHF, '.%.$. &+$,(M$+A% M,$I, Mode. ,riven $rchitectureI, 'M2I, 'M2 Cube .ogoI, MG 2ogoI, C +B$I and BMII are registered trademar8s o/ the b!ect Management Group, Inc., and b!ect Management GroupJ, MGJ , 'ni/ied Mode.ing 2anguageJ, Mode. ,riven $rchitecture 2ogoJ, Mode. ,riven $rchitecture ,iagramJ, C +B$ .ogosJ, BMI 2ogoJ, C<MJ, C<M 2ogoJ, II "J , M )J , MG Inter/ace ,e/inition 2anguage 3I,24J , and MG %ysM2J are trademar8s o/ the b!ect Management Group. $.. other products or company names mentioned are used /or identi/ication purposes on.y, and may be trademar8s o/ their respective o0ners. C M"2I$#C( &he copyright ho.ders .isted above ac8no0.edge that the b!ect Management Group 3acting itse./ or through its designees4 is and sha.. at a.. times be the so.e entity that may authori;e deve.opers, supp.iers and se..ers o/ computer so/t0are to use certi/ication mar8s, trademar8s or other specia. designations to indicate comp.iance 0ith these materia.s. %o/t0are deve.oped under the terms o/ this .icense may c.aim comp.iance or con/ormance 0ith this speci/ication i/ and on.y i/ the so/t0are comp.iance is o/ a nature /u..y matching the app.icab.e comp.iance points as stated in the speci/ication. %o/t0are deve.oped on.y partia..y matching the app.icab.e comp.iance points may c.aim on.y that the so/t0are 0as based on this speci/ication, but may not c.aim comp.iance or con/ormance 0ith this speci/ication. In the event that testing suites are imp.emented or approved by b!ect Management Group, Inc., so/t0are deve.oped using this speci/ication may c.aim comp.iance or con/ormance 0ith the speci/ication on.y i/ the so/t0are satis/actori.y comp.etes the testing suites.

OMGs Issue Reporting Procedure


$.. MG speci/ications are sub!ect to continuous revie0 and improvement. $s part o/ this process 0e encourage readers to report any ambiguities, inconsistencies, or inaccuracies they may /ind by comp.eting the Issue +eporting )orm .isted on the main 0eb page http7KK000.omg.org, under ,ocuments, +eport a BugKIssue 3http7KK000.omg.orgKtechno.ogyKagreement.4

.able o/ 0ontent(
1 Scope.......................................................................................1 2 Conformance........................................................................... 1 3 Normative References.............................................................1 4 Additional Information..............................................................2
4.1 C an!es to Adopted "#$ Specifications........................................................ 2 4.2 Ac%no&led!ements........................................................................................... 2

' Small ()amples introducin! Core Concepts...........................3


'.1 S ipment *rocess of a +ard&are Retailer........................................................3 '.2 , e *i--a Colla.oration.................................................................................... 4 '.3 "rder /ulfillment and *rocurement...................................................................'

0 Incident mana!ement.............................................................. 1
0.1 +i! level model for 2uic% understandin! ......................................................... 1 0.2 3etailed Colla.oration and C oreo!rap 4........................................................5 0.3 +uman6driven vs. s4stem6driven control flo&s ............................................... 11

7 #odels and 3ia!rams............................................................15


7.1 8ane and *ool................................................................................................. 15
7.1.1 8ane......................................................................................................................... 15 7.1.2 *ool......................................................................................................................... 20

7.2 Su. *rocess and Call Activit4......................................................................... 21


7.2.1 ()panded Su. *rocess ()ample............................................................................ 21 7.2.2 Collapsed Su. *rocess ()ample............................................................................. 22 7.2.3 Call Activit4 ()ample............................................................................................... 23

1 No.el *ri-e ()ample............................................................. 2'


1.1 , e No.el *ri-e *rocess Scenario.................................................................2' 1.2 , e No.el *ri-e *rocess 3ia!ram..................................................................20

5 ,ravel 9oo%in! ()ample........................................................27


5.1 , e ,ravel 9oo%in! Scenario..........................................................................27 5.2 , e ,ravel 9oo%in! 3ia!ram.......................................................................... 21
9*#N 2.0 .4 ()ample: ;ersion 1.0 i

10 ()amples from 3ia!ram Interc an!e C apter....................25


10.1 ()panded Su. *rocess ()ample..................................................................25 10.2 Collapsed Su. *rocess ()ample..................................................................25
10.2.1 *rocess 3ia!ram................................................................................................... 25 10.2.2 Su. *rocess 3ia!ram............................................................................................ 25

10.3 #ultiple 8anes and Nested 8anes ()ample ..................................................25 10.4 ;ertical Colla.oration ()ample.....................................................................30 10.' Conversation ()ample..................................................................................30 10.0 C oreo!rap 4 ()ample.................................................................................30

11 Correlation ()ample ........................................................... 31 12 (6#ail ;otin! ()ample........................................................ 3'


12.1 , e /irst Su.6*rocess ..................................................................................37 12.2 , e Second Su.6*rocess ............................................................................ 31 12.3 , e (nd of t e *rocess ................................................................................31

Anne) A< =#8 Seriali-ations for all presented #odels..........35

++

9*#N 2.0 .4 ()ample: ;ersion 1.0

Pre/ace
MG )ounded in 1HGH, the b!ect Management Group, Inc. 3 MG4 is an open membership, not*/or*pro/it computer industry standards consortium that produces and maintains computer industry speci/ications /or interoperab.e, portab.e, and reusab.e enterprise app.ications in distributed, heterogeneous environments. Membership inc.udes In/ormation &echno.ogy vendors, end users, government agencies, and academia. MG member companies 0rite, adopt, and maintain its speci/ications /o..o0ing a mature, open process. MGLs speci/ications imp.ement the Mode. ,riven $rchitectureI 3M,$I4, ma5imi;ing + I through a /u..*.i/ecyc.e approach to enterprise integration that covers mu.tip.e operating systems, programming .anguages, midd.e0are and net0or8ing in/rastructures, and so/t0are deve.opment environments. MGLs speci/ications inc.ude7 'M2I 3'ni/ied Mode.ing 2anguageJ46 C +B$I 3Common b!ect +e:uest Bro8er $rchitecture46 C<MJ 3Common <arehouse Metamode.46 and industry*speci/ic standards /or do;ens o/ vertica. mar8ets. More in/ormation on the MG is avai.ab.e at http7KK000.omg.orgK.

OMG !pec+/+cat+on(
$s noted, MG speci/ications address midd.e0are, mode.ing and vertica. domain /rame0or8s. $ %peci/ications Cata.og is avai.ab.e /rom the MG 0ebsite at7 http://www.omg.org/technology/documents/spec_catalog.htm %peci/ications 0ithin the Cata.og are organi;ed by the /o..o0ing categories7

OMG Model+n' !pec+/+cat+on(


'M2 M ) BMI C<M "ro/i.e speci/ications

OMG M+ddle&are !pec+/+cat+on(


C +B$KII " I,2K2anguage Mappings %pecia.i;ed C +B$ speci/ications C +B$ Component Mode. 3CCM4

Plat/orm !pec+/+c Model and -nter/ace !pec+/+cat+on(


C +B$services C +B$/aci.ities MG ,omain speci/ications MG (mbedded Inte..igence speci/ications MG %ecurity speci/ications

$.. o/ MGLs /orma. speci/ications may be do0n.oaded 0ithout charge /rom our 0ebsite. 3"roducts imp.ementing MG speci/ications are avai.ab.e /rom individua. supp.iers.4 Copies o/ speci/ications, avai.ab.e in "ost%cript and ",) /ormat,
9*#N 2.0 .4 ()ample: ;ersion 1.0 iii

may be obtained /rom the %peci/ications Cata.og cited above or by contacting the b!ect Management Group, Inc. at7 OMG Headquarters 140 Kendrick Street Building A, Suite 300 Needham, MA 02494 USA Tel: +1-781-444-0404 Fax: +1-781-444-0320 Email: pubs@omg.org Certain MG speci/ications are a.so avai.ab.e as I% standards. ".ease consu.t http://www.iso.org

.ypo'rap%+cal 0on1ent+on(
&he type sty.es sho0n be.o0 are used in this document to distinguish programming statements /rom ordinary (ng.ish. Ho0ever, these conventions are not used in tab.es or section headings 0here no distinction is necessary. Times/Times New Roman - 10 pt.: Standard body text 2el1et+ca/*r+al - 10 pt. Bold: OMG Interface Definition Language (OMG IDL) and syntax elements. Courier - 10 pt. Bold: Programming language elements. +elvetica>Arial 6 10 pt: Exceptions

NOTE: &erms that appear in ita.ics are de/ined in the g.ossary. Ita.ic te5t a.so represents the name o/ a document, speci/ication, or other pub.ication.

+1

9*#N 2.0 .4 ()ample: ;ersion 1.0

!cope

&his document provides a number o/ BPMN 2.0 e5amp.es, 0hich are non*e5ecutab.e BPMN 2.0 mode.s con/orming to the "rocess Mode.ing Con/ormance c.ass as de/ined in the the MG speci/ication Business Process Model and Notation (BPMN) Version 2.0. It is a non*normative document and its main goa. is to assist in interpreting and imp.ementing various aspects o/ the BPMN 2.0 speci/ication. &he e5amp.es are provided in /orm o/ Colla oration diagrams, Process diagrams, and C!oreograp!" diagrams as 0e.. as machine*readab.e /i.es using the #$tensi le Mar%up &anguage ('M&).

0on/ormance

$s this is a non*normative document, an imp.ementation, 0hich c.aims con/ormance to any o/ the con/ormance c.asses de/ined in section 2 o/ the BPMN 2.0 speci/ication, is # & +(C'I+(, to comp.y to statements made in this document. )urthermore, i/ there are any inconsistencies bet0een the BPMN 2.0 speci/ication and this document, the statements o/ the BPMN 2.0 speci/ication a.0ays have precedence.

Normat+1e #e/erence(

&he /o..o0ing normative documents contain provisions 0hich, through re/erence in this te5t, constitute provisions o/ this speci/ication. )or dated re/erences, subse:uent amendments to, or revisions o/, any o/ these pub.ications do not app.y. Bu(+ne(( Proce(( Model and Notat+on 4BPMN5 6er(+on 2.0 MG, May 2010 http7KK000.omg.orgKspecKB"M#K2.0

#)0-2117 Aey 0ords /or use in +)Cs to Indicate +e:uirement 2eve.s, %. Bradner, I(&) +)C 211H, March 1HHE http7KK000.iet/.orgKr/cKr/c211H.t5t

9*#N 2.0 .4 ()ample: ;ersion 1.0

8
8.1

*dd+t+onal -n/ormat+on
0%an'e( to *dopted OMG !pec+/+cat+on(

I/ there are any inconsistencies bet0een the BPMN 2.0 speci/ication and this document, the statements o/ the BPMN 2.0 speci/ication are considered to be correct.

8.2

*c9no&led'ement(
camunda services GmbH IBM Corp. "#$ Group %$" $G &risotech, Inc.

&he /o..o0ing companies contributed to the content o/ this document7

&he /o..o0ing persons 0ere members o/ the core teams that contributed to the content o/ this document7 @ohn Bu..es 3"#$ Group4 @a8ob )reund 3camunda services GmbH4 ,enis GagnM 3&risotech, Inc.4 )a.8o Menge 3camunda services GmbH4 Matthias A.oppmann 3IBM Corp.4 %!ir #i!ssen 3"#$ Group4 Gerardo #avarro*%uare; 3camunda services GmbH4 Ivana &ric8ovic 3%$" $G4 %tephen $. <hite 3IBM Corp.4

In addition, the /o..o0ing persons contributed va.uab.e ideas and /eedbac8 that improved the content and the :ua.ity o/ this document7 @oram Barre; 3$./resco4 Mariano Benite; 3 rac.e4 Conrad Boc8 3#I%&4 @ohn Ha.. 3Mode. %ystems4 Bernd +Nc8er 3camunda services GmbH4

9*#N 2.0 .4 ()ample: ;ersion 1.0

Small Examples introducing Core Concepts

&his chapter introduces the core concepts o/ process mode.ing 0ith B"M#. <e 0i.. not e5p.ain every sing.e symbo. you can /ind in the diagrams, but sho0 ho0 process mode.ing in B"M# is basica..y done, ho0 0e can use poo.s and message /.o0s /or e5p.icit.y mode.ing co..aborations bet0een participants, and ho0 0e can 3de*4compose process mode.s 0ith sub*processes and ca.. activities. &hose e5amp.es do not contain e5ecutab.e process mode.s, but represent process mode.s /ocusing on organi;ationa. aspects o/ business processes.

:.1
8o!istics #ana!er

!%+pment Proce(( o/ a 2ard&are #eta+ler

e)tra insurance re2uired

,a%e out e)tra insurance

C ec% if e)tra insurance is necessar4 +ard&are Retailer

Al&a4s

/ill in a *ost la.el

Cler%

Normal *ost 3ecide if normal post or special s ipment #ode of deliver4 Re2uest 2uotes from carriers Assi!n a carrier @ prepare paper&or%

Special Carrier

$oods to s ip

?are ouse ?or%er

*ac%a!e !oods Insurance is included in carrier service

Add paper&or% and move pac%a!e to pic% area

$oods availa.le for pic%

)+'ure :.1: !%+pment Proce(( o/ a %ard&are reta+ler

In )igure D.1 you can /ind the preparing steps a hard0are retai.er has to /u./i.. be/ore the ordered goods can actua..y be shipped to the customer. In this e5amp.e, 0e used on.y one poo. and di//erent .anes /or the peop.e invo.ved in this process, 0hich automatica..y means that 0e b.an8 out the communication bet0een those peop.e7 <e !ust assume that they are communicating 0ith each other someho0. I/ 0e had a process engine driving this process, that engine 0ou.d assign user tas8s and there/ore be responsib.e /or the communication bet0een those peop.e. I/ 0e do not have such a process engine, but 0ant to mode. the communication bet0een the peop.e invo.ved e5p.icit.y, 0e 0ou.d have to use a co..aboration diagram as in the ne5t chapter. &he p.ain start event Ogoods to shipP indicates that this preparation shou.d be done no0. +ight a/ter the instantiation o/ the process, there are t0o things done in para..e., as the para..e. gate0ay indicates7 <hi.e the c.er8 has to decide 0hether this is a norma. posta. or a specia. shipment 30e do not de/ine the criteria ho0 to decide this inside the process mode.4, the 0arehouse 0or8er can a.ready start pac8aging the goods. &his c.er81s tas8, 0hich is /o..o0ed by the e5c.usive gate0ay Omode o/ de.iveryP, is a good e5amp.e /or c.ari/ying the recommended usage o/ a gate0ay7 &he gate0ay is not responsib.e /or the decision 0hether this is a specia. or a posta. shipment. Instead, this decision is underta8en in the activity be/ore. &he gate0ay on.y 0or8s as a router, 0hich is based on the resu.t o/ the previous tas8, and provides a.ternative paths. $ tas8 represents an actua. unit o/ 0or8, 0hi.e a gate0ay is on.y routing the se:uence /.o0. &his gate0ay is ca..ed Oe5c.usiveP, because on.y one o/ the /o..o0ing t0o branches can be traversed7 I/ 0e need a specia. shipment, the c.er8 re:uests :uotes /rom di//erent carriers, then assigns a carrier and prepares the paper0or8. But i/ a norma. post shipment is /ine, the c.er8 needs to chec8 i/ an e5tra insurance is necessary. I/ that e5tra insurance is
9*#N 2.0 .4 ()ample: ;ersion 1.0 3

re:uired, the .ogistics manager has to ta8e out that insurance. In any case, the c.er8 has to /i.. in a posta. .abe. /or the shipment. )or this scenario, the sho0n inc.usive gate0ay is he.p/u., because 0e can sho0 that one branch is a.0ays ta8en, 0hi.e the other one on.y i/ the e5tra insurance is re:uired, but I) it is ta8en, this can happen in para..e. to the /irst branch. Because o/ this para..e.ism, 0e need the synchroni;ing inc.usive gate0ay right behind O)i.. in a "ost .abe.P and O&a8e out e5tra insuranceP. In this scenario, the inc.usive gate0ay 0i.. a.0ays 0ait /or O)i.. in a "ost .abe.P to be comp.eted, because that is a.0ays started. I/ an e5tra insurance 0as re:uired, the inc.usive gate0ay 0i.. a.so 0ait /or O&a8e out e5tra insuranceP to be /inished. )urthermore, 0e a.so need the synchroni;ing para..e. gate0ay be/ore the .ast tas8 Oadd paper0or8 and move pac8age to pic8 areaP, because 0e 0ant to ma8e sure that everything has been /u./i..ed be/ore the .ast tas8 is e5ecuted.

:.2

.%e P+;;a 0ollaborat+on


pi--a received Select a pi--a "rder a pi--a *a4 t e pi--a (at t e pi--a +un!er satisfied

*i--a Customer

+un!r4 for pi--a

As% for t e pi--a 00 minutes

pi--a order

cler%

Calm customer "rder received A& ere is m4 pi--aBC

receipt

*i--a vendor

pi--a c ef

pi--a mone4 9a%e t e pi--a

deliver4 .o4

3eliver t e pi--a

Receive pa4ment

)+'ure :.2: Order+n' and del+1er+n' p+;;a

&his e5amp.e is about Business*&o*Business*Co..aboration. Because 0e 0ant to mode. the interaction bet0een a pi;;a customer and the vendor e5p.icit.y, 0e have c.assi/ied them as OparticipantsP, there/ore providing them 0ith dedicated poo.s. ".ease note that there is no de/au.t semantics in this type o/ mode.ing, 0hich means you can mode. co..aboration diagrams to sho0 the interaction bet0een business partners, but a.so ;oom into one company, mode.ing the interaction bet0een di//erent departments, teams or even sing.e 0or8ers and so/t0are systems in co..aboration diagrams. It is tota..y up to the purpose o/ the mode. and there/ore a decision the mode.er has to ma8e, 0hether a co..aboration diagram 0ith di//erent poo.s is use/u., or 0hether one shou.d stic8 to one poo. 0ith di//erent .anes, as sho0n in the previous chapter. I/ 0e step through the diagram, 0e shou.d start 0ith the pi;;a customer, 0ho has noticed her stomach gro0.ing. &he customer there/ore se.ects a pi;;a and orders it. $/ter that, the customer 0aits /or the pi;;a to be de.ivered. &he event based gate0ay a/ter the tas8 Oorder a pi;;aP indicates that the customer actua..y 0aits /or t0o di//erent events that cou.d happen ne5t7 (ither the pi;;a is de.ivered, as indicated 0ith the /o..o0ing message event, or there is no de.ivery /or Q0
8 9*#N 2.0 .4 ()ample: ;ersion 1.0

minutes, i.e., a/ter one hour the customer s8ips 0aiting and ca..s the vendor, as8ing /or the pi;;a. <e no0 assume that the c.er8 promises the pi;;a to be de.ivered soon, and the customers 0aits /or the pi;;a again, as8ing again a/ter the ne5t Q0 minutes, and so on. 2et1s have a c.oser .oo8 at the vendor process no0. It is triggered by the order o/ the customer, as sho0n 0ith the message start event and the message /.o0 going /rom Oorder a pi;;aP to that event. $/ter ba8ing the pi;;a, the de.ivery boy 0i.. de.iver the pi;;a and receive the payment, 0hich inc.udes giving a receipt to the customer. In this e5amp.e, 0e use message ob!ects not on.y /or in/ormationa. ob!ects, as the pi;;a order, but a.so /or physica. ob!ects, .i8e the pi;;a or the money. <e can do this, because those physica. ob!ects actua..y act as in/ormationa. ob!ects inherent.y7 <hen the pi;;a arrives at the customer1s door, she 0i.. recogni;e this arriva. and there/ore 8no0 that the pi;;a has arrived, 0hich is e5act.y the purpose o/ the accordant message event in the customer1s poo.. / course, 0e can on.y use the mode. in that 0ay because this e5amp.e is not meant to be e5ecuted by a process engine.

:.3

Order )ul/+llment and Procurement


Article availa.le C ec% availa.ilit4 4es S ip article /inancial settlement *a4ment received

"rder received no *rocurement

undelivera.le

8ate deliver4 Inform customer Customer informed

Inform customer

Remove article from calato!ue Article removed

)+'ure :.3: Order )ul/+llment

&his order /u./i..ment process starts a/ter receiving an order message and continues to chec8 0hether the ordered artic.e is avai.ab.e or not. $n avai.ab.e artic.e is shipped to the customer /o..o0ed by a /inancia. sett.ement, 0hich is a co..apsed sub*process in this diagram. In case that an artic.e is not avai.ab.e, it has to be procured by ca..ing the procurement sub* process. ".ease note that the shape o/ this co..apsed sub*process is thic8.y bordered 0hich means that it is a ca.. activity. It is .i8e a 0rapper /or a g.oba..y de/ined tas8 or, .i8e in this case, sub*process. $nother characteristic o/ the procurement sub*process are the t0o attached events. By using attached events it is possib.e to hand.e events that can spontaneous.y occur during the e5ecution o/ a tas8 or sub*process. &hereby 0e have to distinguish bet0een interrupting and non*interrupting attached events. Both o/ them catch and hand.e the occurring events, but on.y the non*interrupting type 3here it is the esca.ation event O.ate de.iveryP4 does not abort the activity it is attached to. <hen the interrupting event type triggers, the e5ecution o/ the current activity stops immediate.y.

9*#N 2.0 .4 ()ample: ;ersion 1.0

*rocurement Stoc% level .elo& minimum undelivera.le Article procured

Remove article from catalo!ue Article removed

)+'ure :.8: !toc9 ma+ntenance proce((

&he process /or the stoc8 maintenance is triggered by a conditiona. start event. It means that the process is instantiated in case that the condition became true, so in this e5amp.e 0hen the stoc8 .eve. goes be.o0 a certain minimum. In order to increase the stoc8 .eve. an artic.e has to be procured. &here/ore 0e use the same "rocurement process as in the order /u./i..ment and re/er to it by the ca.. activity ?"rocurement?, indicated by the thic8 border. %imi.ar to the order /u./i..ment process this process hand.es the error e5ception by removing the artic.e /rom the cata.og. But in this stoc8 maintenance process there appears to be no need /or the hand.ing o/ a ?.ate de.ivery? esca.ation event. &hat1s 0hy it is .e/t out and not hand.ed. I/ the procurement sub*process /inishes norma..y, the stoc8 .eve. is above minimum and the %toc8 Maintenance process ends 0ith the end event Oartic.e procuredP.
article received E F 2 da4s "rder from supplier Article procured

C ec% availa.ilit4 &it supplier

3elivera.leB D 2 da4s 8ate deliver4

no undelivera.le

)+'ure :.:: Procurement (ub-proce((

<e no0 ;oom into the g.oba. sub*process OprocurementP that is used by both order /u./i..ment and stoc8 maintenance. Because this is a sub*process, the start event is p.ain, indicating that this process is not triggered by any e5terna. event but the re/erencing top*.eve.*process. &he /irst tas8 in this sub*process is the chec8 0hether the artic.e to procured is avai.ab.e at the supp.ier. I/ not, this sub* process 0i.. thro0 the Onot de.iverab.eP*e5ception that is caught by both order /u./i..ment and stoc8 maintenance, as 0e a.ready discussed. In case that the de.ivery in the "rocurement process .asts more than 2 days an esca.ation event is thro0n by the sub* process te..ing the re/erencing top*.eve.*process that the de.ivery 0i.. be .ate. %imi.ar to the error event, the esca.ation event has a.so an esca.ationCode 0hich is necessary /or the connection bet0een thro0ing and catching esca.ation events. Contrary to the thro0ing error event, current.y active threads are neither terminated nor a//ected by the thro0ing
9*#N 2.0 .4 ()ample: ;ersion 1.0

intermediate esca.ation event. )urthermore, the "rocurement process continues its e5ecution by 0aiting /or the de.ivery. But the thro0n event is hand.ed by the nearest parent activity 0ith an attached intermediate esca.ation event 0hich has the same esca.ationCode as the thro0n esca.ation event. In the order /u./i..ment process, the ?.ate de.ivery? esca.ation event attached to the "rocurement sub*process catches the thro0n ?.ate de.ivery? event. But no0, the event is a non* interrupting event. Because o/ that a ne0 to8en is produced, /o..o0s the path o/ the esca.ation hand.ing and triggers the tas8 that in/orms the customer that the ordered artic.e 0i.. be shipped .ater. <hen the procurement sub*process /inishes, the rder )u./i..ment process continues 0ith the shipment o/ the artic.e and the /inancia. sett.ement.

9*#N 2.0 .4 ()ample: ;ersion 1.0

<

Incident management

In this chapter 0e 0ant to sho0 the di//erent perspectives you can ta8e on the same business process, using B"M#. In the /irst step 0e 0i.. provide a rather simp.e, easy to read diagram that sho0s an incident process /rom a high .eve. point o/ vie0. 2ater on 0e re/ine this mode. by moving /rom orchestration to co..aboration and choreography. In the .ast step 0e ta8e the organi;ationa. co..aboration and imagine ho0 a process engine cou.d drive part o/ the process by user tas8 assignments. &he main purpose o/ this chapter is to demonstrate ho0 you can use B"M# /or creating simp.e and rather abstract diagrams, but a.so detai.ed vie0s on human co..aboration and /ina..y /or technica. speci/ications /or process e5ecution.

.1
;I* customer

2+'% le1el model /or =u+c9 under(tand+n'

Account #ana!er

can andle m4selfB andle 2uestion 2uestion received No Ges ()plain solution

/inis edB 1st level support +andle 1st level issue Ges

Soft&are Compan4

no

2nd level support

HnsureB +andle 2nd level issue Ges No

Soft&are development

Sometimes opinion of development is needed

*rovide feed.ac%

)+'ure .1: -nc+dent mana'ement /rom %+'% le1el po+nt o/ 1+e&

&he sho0n incident management process o/ a so/t0are manu/acturer is triggered by a customer re:uesting he.p /rom her account manager because o/ a prob.em in the purchased product. )irst o/ a.., the account manager shou.d try to hand.e that re:uest on his o0n and e5p.ain the so.ution to the customer, i/ possib.e. I/ not, the account manager 0i.. hand over the issue to a 1st .eve. support agent, 0ho 0i.. hand over to 2nd .eve. support, i/ necessary. &he 2nd .eve. support agent shou.d /igure out i/ the customer can /i5 the prob.em on her o0n, but i/ the agent is not sure about this he can a.so as8 a so/t0are deve.oper /or his opinion. In any case, at the end the account manager 0i.. e5p.ain the so.ution to the customer. &his diagram is rea..y simp.e and someho0 a Ohappy pathP, because 0e assume that 0e a.0ays /ind a so.ution 0e can /ina..y e5p.ain to the customer. &he mode. .ac8s a.. detai.s o/ co..aboration bet0een the invo.ved emp.oyees, and the abstract tas8s indicate that 0e do not have any in/ormation about 0hether the process or parts o/ it are e5ecutab.e by a
> 9*#N 2.0 .4 ()ample: ;ersion 1.0

process engine. &his diagram is use/u., i/ you 0ant to scope the process, get a basic understanding o/ the /.o0, and ta.8 about the main steps, but not i/ you 0ant to dig into the detai.s /or discussing process improvements or even so/t0are driven support o/ the process.

.2
;I* customer

Deta+led 0ollaborat+on and 0%oreo'rap%y

Ie4 account mana!er

4es Ans&er received $et pro.lem description Customer as a pro.lem Can andle It m4selfB no As% 1st level support

()plain solution

ResultB 1st 8evel Support A!ent +andle 1st level issue issue 2nd level issue As% 2nd level support Issue resolved *rovide feed.ac% for account mana!er

Ans&er recevied

HnsureB 2nd level support a!ent +andle 2nd level issue ,ic%et received 4es no

ResultB Issue resolved *rovide feed.ac% for 1st level support

Ans&er received As% developer

/i) in Ne)t release

Sometimes opinion of development is needed

Insert into product .ac%lo!

Some issues cannot !et fi)ed ri! t no& .ut s ould .e fi)ed in ne)t release

Soft&are developer

()amine pro.lem Re2uest from support

*rovide feed.ac% for 2nd level support

)+'ure .2: -nc+dent Mana'ement a( deta+led collaborat+on

<e can ta8e a c.oser .oo8 at the ping*pong*game o/ account manager, support agents and so/t0are deve.oper by s0itching /rom a sing.e*poo.*mode. to a co..aboration diagram, as sho0n above. <e can no0 see some more detai.s about the particu.ar processes each participant /u./i..s, e.g., the dia.ogue bet0een the account manager and the customer /or c.ari/ying the customer1s prob.em, or the /act that the 2nd .eve. support agent 0i.. insert a re:uest /or a /eature in the
9*#N 2.0 .4 ()ample: ;ersion 1.0 7

product bac8.og, i/ the current re.ease o/ the so/t0are product cannot cover the customer1s demand satis/actori.y. <e have a.so speci/ied each tas8 as manua., 0hich means that 0e sti.. thin8 o/ the processes as comp.ete.y human*driven 0ith no process engine invo.ved. &his cou.d hypothetica..y be the $s*Is*state o/ the incident management be/ore the introduction o/ a process engine. &he ne5t step cou.d be to de/ine 0hether 0e 0ant to drive the comp.ete co..aboration by a process engine, or on.y parts o/ it. But be/ore 0e discuss that matter, 0e can have a .oo8 at an other 0ay o/ mode.ing such a ping*pong*game, the choreography diagram sho0n be.o0. &his diagram on.y sho0s the tas8s that are dedicated to the communication bet0een the di//erent process participants, hiding a.. interna. steps, e.g., the tas8 that inserts a ne0 entry into the product bac8.og. #ote that the diagrams sho0n in )igure Q.1 and Q.2 have no /orma. connection bet0een each other, 0hereas the )igure Q.2 and Q.9 have the e5act same semantic mode. behind them and !ust provide di//erent vie0s on it. %ee a.so $nne5 $ /or an BM2 seria.i;ation o/ the under.ying semantic mode..
pro.lem ans&ers

;I* customer Customer +as a *ro.lem Ie4 Account #ana!er

;I* customer $et pro.lem description Ie4 Account #ana!er

Can andle m4selfB 4es issue

;I* customer ()plain solution Ie4 Account #ana!er

2uestions

no

Ie4 Account #ana!er As% 1st level support 1st level support a!ent

ResultB Issue resolved 2nd level issue issue

Ie4 account mana!er *rovide feed.ac% for account mana!er 1st level support a!ent

solution

1st level support a!ent As% 2nd level support 2nd level support a!ent

HnsureB no 4es issue

1st level support a!ent *rovide feed.ac% for 1st level support 2nd level support a!ent

feed.ac%

2nd level support a!ent As% developer Soft&are developer

2nd level support a!ent *rovide feed.ac% for 2nd level support Soft&are developer

feed.ac%

feed.ac%

)+'ure .3: -nc+dent Mana'ement a( c%oreo'rap%y

10

9*#N 2.0 .4 ()ample: ;ersion 1.0

.3
;I* customer

2uman-dr+1en 1(. (y(tem-dr+1en control /lo&(

Ie4 account mana!er

4es Ans&er received $et pro.lem description Customer as a pro.lem Can andle m4selfB no Send mail to support s4stem

()plain solution

1st level support

ResultB "pen tic%et Issue received edit 1st level tic%et 2nd level issue Issue resolved Send mail to account mana!er

Close tic%et

,rou.le ,ic%et S4stem

ResultB edit 2nd level tic%et 2nd level support Issue resolved

/i) in Ne)t release

Insert issue into product .ac%lo!

1st 8evel Support A!ent

HnsureB 2nd level support a!ent Classif4 tic%et ,ic%et received +andle 1st level issue 3ocument 1st level result +andle 2nd level issue ,ic%et received 4es no 3ocument 2nd level result

Sometimes opinion of development is needed

As% developer

Soft&are developer

()amine pro.lem Re2uest from support

*rovide feed.ac% for 2nd level support

)+'ure .8: -nc+dent Mana'ement &+t% %uman-dr+1en and (y(tem-dr+1en pool(

I/ 0e imagine 0e are rea.i;ing a pro!ect /or automating the incident management process, 0e cou.d no0 decide 0hich parts o/ it shou.d be actua..y e5ecuted in a process engine, and 0hich parts shou.d remain human*driven. In this scenario 0e decided that the account manager shou.d not be bothered 0ith 0eb /orms or tas8 .ists, he shou.d !ust send an emai. i/ he 0ants to report a customer1s prob.em, and receive an emai. 0hen the process has comp.eted. &he same idea app.ies /or the so/t0are deve.oper7 2et us assume the 2nd .eve. support agent sits in the same room as the deve.opers. Maybe it is more e//icient i/ the support agent !ust 0a.8s over to the deve.oper and ta.8s about the issue, rather than p.aying some time consuming ping*pong*game 0ith tas8 assignments. &here/ore, 0e 0ant to 8eep this part o/ the incident management human driven as 0e..7 no process engine driving the co..aboration bet0een 2nd .eve. support and so/t0are deve.opers. But
9*#N 2.0 .4 ()ample: ;ersion 1.0 11

0e do 0ant the assignment o/ tic8ets to 1st and 2nd .eve. support agents by a troub.e tic8et system, 0hich no0 ta8es the ro.e o/ the process engine and there/ore is mode.ed in a dedicated poo.. &hat system can actua..y receive and parse emai.s sent by the account manager and opens a tic8et /or it. I/ the 1st .eve. support agent decides that this is a 2nd .eve. issue, he does so by documenting his decision and comp.eting the assigned tas8 Oedit 1 st .eve. tic8etP. &he troub.e tic8et system then routes the tic8et to the 2nd .eve. support agent. <hen that agent has /inished, he maybe dec.ared the issue to be /i5ed in the ne5t so/t0are re.ease. &hen the troub.e tic8et system ma8es a service ca.. on the product bac8.og system, a ne0 /eature 0e have introduced 0ith our process engine7 &he entry does not have to be inserted manua..y any more. In the end, the troub.e tic8et system 0i.. send an emai. to the account manager, containing the resu.ts o/ the incident management, and c.ose the tic8et. &he account manager can then e5p.ain the so.ution to the customer based on the in/ormation in the tic8et. / course, this 0ay o/ mode.ing both human*driven and system*driven contro. /.o0s in one diagram is !ust a proposa., that shou.d give an idea o/ use/u. mode.ing approaches based on co..aboration diagrams. It shou.d demonstrate ho0 B"M# cou.d support Business*I&*$.ignment in process mode.ing7 <e can hand over the mode.ed process engine poo. to an actua. process engine /or e5ecution, 0hi.e 0e can sho0 the other poo.s separate.y to our process participants, the support agents or the account manager, and discuss their invo.vement in the co..aboration based on those simp.i/ied vie0s on the same, consistent co..aboration mode.. &his gives us the opportunity to ta.8 0ith both Business peop.e and I& peop.e about the same process mode., 0ithout overburdening business peop.e 0ith too comp.e5 diagrams or I& peop.e 0ith too inaccurate process mode.s.

;I* customer

Ie4 account mana!er

4es Ans&er received $et pro.lem description Customer as a pro.lem Can andle m4selfB no Send mail to support s4stem

()plain solution

)+'ure .:: .%+( rat%er (+mple d+a'ram +( all &e %a1e to (%o& to t%e account mana'er

,rou.le ,ic%et S4stem

12

9*#N 2.0 .4 ()ample: ;ersion 1.0

1st level support

ResultB "pen tic%et Issue received edit 1st level tic%et 2nd level issue Issue resolved Send mail to account mana!er

Close tic%et

,rou.le ,ic%et S4stem

ResultB edit 2nd level tic%et 2nd level support Issue resolved

/i) in Ne)t release

Insert issue into product .ac%lo!

)+'ure . : .%+( +( t%e only part o/ t%e &%ole collaborat+on &e &+ll execute +n a proce(( en'+ne

)+'ure .<: ?M$ (er+al+;at+on /or proce(( en'+ne pool.

9*#N 2.0 .4 ()ample: ;ersion 1.0

13

.able .1: Proce(( en'+ne pool enr+c%ed &+t% execut+on deta+l(. .%+( +( &%at a proce(( en'+ne &ould execute.
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <definitions name="Incident Management" id="_98a0678d9e194de9b3d9284886c3" targetNamespace=" tt!"##$%&.cam'nda.c%m#m%de(#98a0678d9e194de9b3d9284886c3" xmlns:tns=" tt!"##$%&.cam'nda.c%m#m%de(#98a0678d9e194de9b3d9284886c3" xmlns=" tt!"##))).%mg.%*g#s!ec#+,M-#20100524#MO./0" xmlns:bpmndi=" tt!"##))).%mg.%*g#s!ec#+,M-#20100524#.I" xmlns:di=" tt!"##))).%mg.%*g#s!ec#..#20100524#.I" xmlns:dc=" tt!"##))).%mg.%*g#s!ec#..#20100524#.1" xmlns:xsi=" tt!"##))).)3.%*g#2001#2M0Sc ema-instance" xmlns:java=" tt!"##3c!.%*g#en#3s*#detai(4id5270" typeLanguage=" tt!"##3c!.%*g#en#3s*#detai(4id5270" expressionLanguage=" tt!"##))).3c!.%*g#en#3s*#detai(4id5245"> <!-ava !" # is used as type language for t$e model %$ereas t$e ava &nified "xpression Language serves as language for "xpressions' --> <collaboration id="11275940773964"> <participant name="6*%'b(e 6ic7et System" process(ef="tns"89,-1-1" id="_1-1" )> <)collaboration> <process is"xecutable="t*'e" id="89,-1-1"> <io!pecification> <data*nput item!ubject(ef="tns"Iss'eItem" id="Iss'e.ataIn!'tO$,*%cess" )> <input!et> <data*nput(efs>*ssue+ata*nput,f-rocess<)data*nput(efs> <)input!et> <output!et><)output!et> <)io!pecification> <!-.$is Lane !et partitions t$e /lo% Nodes of t$e -rocess according to t$e (esources t$at are responsible for t$em' 0o%ever1 t$is does not affect t$e actual assignment of (esources to 2ctivities as meaning of t$e Lanes is up to t$e modeler and not specified in 3-4N' --> <lane!et id="(s_1-1"> <lane name="1st (e:e( s'!!%*t" partition"lement(ef="tns"9i*st0e:e(S'!!%*t;es%'*ce" id="_1-9"> <flo%Node(ef>56-67<)flo%Node(ef> <flo%Node(ef>56-8#<)flo%Node(ef> <flo%Node(ef>56-99<)flo%Node(ef> <flo%Node(ef>56-68:<)flo%Node(ef> <flo%Node(ef>56-6;<<)flo%Node(ef> <flo%Node(ef>56-8<6<)flo%Node(ef> <flo%Node(ef>56-79#<)flo%Node(ef> <)lane> <lane name="2nd (e:e( s'!!%*t" partition"lement(ef="tns"Sec%nd0e:e(S'!!%*t;es%'*ce" id="_1-11"> <flo%Node(ef>56-8;8<)flo%Node(ef> <flo%Node(ef>56-7<7<)flo%Node(ef> <flo%Node(ef>56-78;<)flo%Node(ef> <)lane> <)lane!et> <start"vent name="Iss'e *ecei:ed" id="_1-13"> <data,utput item!ubject(ef="tns"Iss'eItem" id="Iss'e.ataO't!'tO$Sta*t/:ent" )> <data,utput2ssociation> <source(ef>*ssue+ata,utput,f!tart"vent<)source(ef> <target(ef>*ssue+ata*nput,f-rocess<)target(ef> <)data,utput2ssociation> <message"vent+efinition message(ef="tns"Iss'eMessage" )>

18

9*#N 2.0 .4 ()ample: ;ersion 1.0

<)start"vent> <se=uence/lo% source(ef="_1-13" target(ef="_1-26" id="_1-390" )> <!-.$is script tas> uses t$e ?roovy programming language to create a +ata ,bject and fill it %it$ data of t$e *tem received in t$e 4essage t$at started t$e -rocess' --> <script.as> name="O!en tic7et" script/ormat="te&t#&-g*%%:y" id="_1-26"> <io!pecification> <data*nput item!ubject(ef="tns"Iss'eItem" id="Iss'e.ataIn!'tO$Sc*i!t6as7" )> <data,utput item!ubject(ef="tns"6ic7etItem" id="6ic7et.ataO't!'tO$Sc*i!t6as7")> <input!et> <data*nput(efs>*ssue+ata*nput,f!cript.as><)data*nput(efs> <)input!et> <output!et> <data,utput(efs>.ic>et+ata,utput,f!cript.as><)data,utput(efs> <)output!et> <)io!pecification> <data*nput2ssociation> <source(ef>*ssue+ata*nput,f-rocess<)source(ef> <target(ef>*ssue+ata*nput,f!cript.as><)target(ef> <)data*nput2ssociation> <data,utput2ssociation> <source(ef>.ic>et+ata,utput,f!cript.as><)source(ef> <target(ef>.ic>et+ata,bject<)target(ef> <)data,utput2ssociation> <script><!@A+2.2@ issue(eport = get+ata*nputBC*ssue+ata*nput,f!cript.as>CD tic>et = ne% .rouble.ic>etBD tic>et'set+ate = ne% +ateBD tic>et'set!tate = C,penC tic>et'set(eporter = issue(eport'get2ut$orBD tic>et'set+esctiption = issue(eport'get.extBD set+ata,utputBC.ic>et+ata,utput,f!cript.as>C1 tic>etD EE><)script> <)script.as>> <data,bject id="6ic7et.ataOb3ect" item!ubject(ef="tns"6ic7etItem" )> <se=uence/lo% source(ef="_1-26" target(ef="_1-77" id="_1-392" )> <user.as> name="edit 1st (e:e( tic7et" id="_1-77"> <io!pecification> <data*nput item!ubject(ef="tns"6ic7etItem" id="6ic7et.ataIn!'tO$_1-77" )> <data,utput item!ubject(ef="tns"6ic7etItem" id="6ic7et.ataO't!'tO$_1-77" )> <input!et> <data*nput(efs>.ic>et+ata*nput,f56-99<)data*nput(efs> <)input!et> <output!et> <data,utput(efs>.ic>et+ata,utput,f56-99<)data,utput(efs> <)output!et> <)io!pecification> <data*nput2ssociation> <source(ef>.ic>et+ata,bject<)source(ef> <target(ef>.ic>et+ata*nput,f56-99<)target(ef> <)data*nput2ssociation> <data,utput2ssociation> <source(ef>.ic>et+ata,utput,f56-99<)source(ef> <target(ef>.ic>et+ata,bject<)target(ef> <)data,utput2ssociation> <potential,%ner> <resource(ef>tns:/irstLevel!upport(esource<)resource(ef>

9*#N 2.0 .4 ()ample: ;ersion 1.0

1:

<)potential,%ner> <)user.as>> <se=uence/lo% source(ef="_1-77" target(ef="_1-128" id="_1-394" )> <exclusive?ate%ay name=";es'(t4" gate%ay+irection=".i:e*ging" id="_1-128" )> <se=uence/lo% source(ef="_1-128" target(ef="_1-252" name="2nd (e:e( iss'e" id="_1-402"> <condition"xpression xsi:type="t9%*ma(/&!*essi%n"> FGget+ata,bjectBC.ic>et+ata,bjectCD'status == C,penCH <)condition"xpression> <)se=uence/lo%> <se=uence/lo% source(ef="_1-128" target(ef="_1-150" name="Iss'e *es%(:ed" id="_1-396"> <condition"xpression xsi:type="t9%*ma(/&!*essi%n"> FGget+ata,bjectBC.ic>et+ata,bjectCD'status == C(esolvedCH <)condition"xpression> <)se=uence/lo%> <user.as> name="edit 2nd (e:e( tic7et" id="_1-252"> <io!pecification> <data*nput item!ubject(ef="tns"6ic7etItem" id="6ic7et.ataIn!'tO$_1-252" )> <data,utput item!ubject(ef="tns"6ic7etItem" id="6ic7et.ataO't!'tO$_1-252" )> <input!et> <data*nput(efs>.ic>et+ata*nput,f56-8;8<)data*nput(efs> <)input!et> <output!et> <data,utput(efs>.ic>et+ata,utput,f56-8;8<)data,utput(efs> <)output!et> <)io!pecification> <data*nput2ssociation> <source(ef>.ic>et+ata,bject<)source(ef> <target(ef>.ic>et+ata*nput,f56-8;8<)target(ef> <)data*nput2ssociation> <data,utput2ssociation> <source(ef>.ic>et+ata,utput,f56-8;8<)source(ef> <target(ef>.ic>et+ata,bject<)target(ef> <)data,utput2ssociation> <potential,%ner> <resource(ef>tns:!econdLevel!upport(esource<)resource(ef> <)potential,%ner> <)user.as>> <se=uence/lo% source(ef="_1-252" target(ef="_1-303" id="_1-404" )> <exclusive?ate%ay name=";es'(t4" gate%ay+irection=".i:e*ging" id="_1-303" )> <se=uence/lo% source(ef="_1-303" target(ef="_1-325" name="9i& in -e&t *e(ease" id="_1-410"> <condition"xpression xsi:type="t9%*ma(/&!*essi%n"> FGget+ata,bjectBC.ic>et+ata,bjectCD'status == C+eferredCH <)condition"xpression> <)se=uence/lo%> <se=uence/lo% source(ef="_1-303" target(ef="_1-150" name="Iss'e *es%(:ed" id="_1-406"> <condition"xpression xsi:type="t9%*ma(/&!*essi%n"> FGget+ata,bjectBC.ic>et+ata,bjectCD'status == C(esolvedCH <)condition"xpression> <)se=uence/lo%> <service.as> name="Inse*t iss'e int% !*%d'ct bac7(%g" operation(ef="tns"add6ic7etO!e*ati%n" id="_1-325"> <io!pecification>

9*#N 2.0 .4 ()ample: ;ersion 1.0

<data*nput item!ubject(ef="tns"6ic7etItem" id="6ic7et.ataIn!'tO$_1-325" )> <input!et> <data*nput(efs>.ic>et+ata*nput,f56-78;<)data*nput(efs> <)input!et> <output!et )> <)io!pecification> <data*nput2ssociation> <source(ef>.ic>et+ata,bject<)source(ef> <target(ef>.ic>et+ata*nput,f56-78;<)target(ef> <)data*nput2ssociation> <)service.as>> <se=uence/lo% source(ef="_1-325" target(ef="_1-150" id="_1-408" )> <send.as> name="Send mai( t% acc%'nt manage*" message(ef="tns"<ns)e*Message" operation(ef="tns"sendMai(6%Iss'e;e!%*te*O!e*ati%n" id="_1-150"> <io!pecification> <data*nput item!ubject(ef="tns"<ns)e*Item" id="<ns)e*.ataIn!'tO$Send6as7" )> <input!et> <data*nput(efs>2ns%er+ata*nput,f!end.as><)data*nput(efs> <)input!et> <output!et )> <)io!pecification> <data*nput2ssociation> <source(ef>.ic>et+ata,bject<)source(ef> <target(ef>2ns%er+ata*nput,f!end.as><)target(ef> <assignment> <from>FGget+ata,bjectBC.ic>et+ata,bjectCD'reporterH<)from> <to>FGget+ata*nputBC2ns%er+ata*nput,f!end.as>CD'recipient<)to> <)assignment> <assignment> <from> 2 tic>et $as been created for your issue1 %$ic$ is no% in status FGget+ata,bjectBC.ic>et+ata,bjectCD'statusH' <)from> <to>FGget+ata*nputBC2ns%er+ata*nput,f!end.as>CD'bodyH<)to> <)assignment> <)data*nput2ssociation> <)send.as>> <se=uence/lo% source(ef="_1-150" target(ef="_1-201" id="_1-398" )> <script.as> name="1(%se tic7et" script/ormat="te&t#&-g*%%:y" id="_1-201"> <io!pecification> <data*nput item!ubject(ef="tns"6ic7etItem" id="6ic7et.ataIn!'tO$_1-398" )> <input!et> <data*nput(efs>.ic>et+ata*nput,f56-7I:<)data*nput(efs> <)input!et> <output!et )> <)io!pecification> <data*nput2ssociation> <source(ef>.ic>et+ata,bject<)source(ef> <target(ef>.ic>et+ata*nput,f56-7I:<)target(ef> <)data*nput2ssociation> <script><!@A+2.2@ tic>et = get+ata*nputBC.ic>et+ata*nput,f56-7I:CD tic>et'closeBD EE><)script> <)script.as>> <se=uence/lo% source(ef="_1-201" target(ef="_1-376" id="_1-400" )> <end"vent id="_1-376" )> <)process>

9*#N 2.0 .4 ()ample: ;ersion 1.0

1<

<resource id="9i*st0e:e(S'!!%*t;es%'*ce" name="1st 0e:e( S'!!%*t" )> <resource id="Sec%nd0e:e(S'!!%*t;es%'*ce" name="2nd 0e:e( S'!!%*t" )> <interface name=",*%d'ct +ac7(%g Inte*$ace" implementation(ef="3a:a"c%m.cam'nda.e&am!(es.incidentmanagement.,*%d'ct+ac7(%g"> <operation name="add6ic7etO!e*ati%n" implementation(ef="add6ic7et" id5"add6ic7etO!e*ati%n"> <in4essage(ef>tns:2dd.ic>et4essage<)in4essage(ef> <)operation> <)interface> <interface name="Mai( Inte*$ace" implementation(ef="3a:a"c%m.cam'nda.e&am!(es.incidentmanagement.Mai("> <operation name="sendMai(6%Iss'e;e!%*te*O!e*ati%n" im!(ementati%n;e$5"sendMai(" id5"sendMai(6%Iss'e;e!%*te*O!e*ati%n"> <in4essage(ef>tns:2ns%er4essage<)in4essage(ef> <)operation> <)interface> <message id="Iss'eMessage" name="Iss'e Message" item(ef="tns"Iss'eItem" )> <message id="<dd6ic7etMessage" name="add6ic7et Message" item(ef="tns"6ic7etItem" )> <message id="<ns)e*Message" name="<ns)e* Message" item(ef="tns"<ns)e*Item" )> <item+efinition id="Iss'eItem" isAollection="$a(se" itemJind="In$%*mati%n" structure(ef="c%m.cam'nda.e&am!(es.incidentmanagement.Iss'e;e!%*t" )> <item+efinition id="6ic7etItem" isAollection="$a(se" itemJind="In$%*mati%n" structure(ef="c%m.cam'nda.e&am!(es.incidentmanagement.6*%'b(e6ic7et" )> <item+efinition id="<ns)e*Item" isAollection="$a(se" itemJind="In$%*mati%n" structure(ef="c%m.cam'nda.e&am!(es.incidentmanagement.<ns)e*" )> <)definitions>

1>

9*#N 2.0 .4 ()ample: ;ersion 1.0

Models and Diagrams

&he purpose o/ this chapter is to demonstrate via e5amp.es some o/ the interre.ations bet0een mode.s and diagrams. <e e5p.ore ho0 di//erent B"M# diagrams o/ the same scenario .ead to di//erent seria.i;ations o/ the mode.. &he process scenario used in the e5amp.es /rom this chapter is inspired /rom /igure 10.2F o/ the B"M# 2.0 %peci/ication document.

<.1
<.1.1

$ane and Pool


$ane

In this section, 0e e5p.ore the use o/ .anes and poo.s in a B"M# diagram and their corresponding seria.i;ations.

$ process can be depicted in a "rocess ,iagram 0ith or 0ithout .anes. Both these depictions .ead to one process in the mode. and one diagram o/ that process. &he main di//erence in the t0o seria.i;ations is that one does not have a 2aneset 0ith a .ane in it, 0hi.e the other does.

"rder +andlin! Approved Juotation +andlin! Approve "rder Revie& "rder

S ippin! +andlin!

9*#N 2.0 .4 ()ample: ;ersion 1.0

17

"rder +andlin! Approved 9u4er Juotation +andlin! Approve "rder Revie& "rder

S ippin! +andlin!

<.1.2

Pool

"oo.s are on.y present in Co..aboration ,iagrams 3Co..aborations, Choreographies, Conversations4. &hus, 0hen depicting the same scenario using a poo., 0e are producing a Co..aboration ,iagram. &he introduction o/ a poo. in our depiction imp.ies that 0e are producing a Co..aboration ,iagram. In /act, this is a diagram o/ an incomp.ete Co..aboration, as a Co..aboration shou.d be bet0een t0o or more participants.

20

9*#N 2.0 .4 ()ample: ;ersion 1.0

"rder +andlin! Approved Juotation +andlin! Approve "rder Revie& "rder

9u4er

S ippin! +andlin!

<.2

!ub Proce(( and 0all *ct+1+ty

In this section, 0e e5p.ore the use o/ %ub "rocesses 3e5panded and co..apsed4 a.ong 0ith Ca.. $ctivities and sho0 ho0 their content can be depicted in separate diagrams.

<.2.1

Expanded !ub Proce(( Example

In this e5amp.e our O rder "rocessP is depicted 0ith an e5panded O$pprove rderP %ub "rocess. &he activities 0ithin the O$pprove rderP %ub "rocess are part o/ the parent process. &his is a sing.e process depicted in a sing.e diagram.

9*#N 2.0 .4 ()ample: ;ersion 1.0

21

Approver "rder "rder +andlin! Approved Juotation +andlin! Approve Customer Approve *roduct Revie& "rder

S ippin! +andlin!

<.2.2

0ollap(ed !ub Proce(( Example

In this e5amp.e our O rder "rocessP is depicted 0ith a co..apsed O$pprove rderP %ub "rocess.

"rder +andlin! Approved Juotation +andlin! Approve "rder Revie& "rder

S ippin! +andlin!

<hi.e the content 3or detai.s4 o/ the O$pprove rderP %ub "rocess is depicted on a separate diagram.
22 9*#N 2.0 .4 ()ample: ;ersion 1.0

Approve Customer

Approve *roduct

&his is a sing.e process depicted into t0o diagrams7 one diagram /or the parent process and one diagram /or the sub process. #ote that both e5panded and co..apsed depictions are visua. variations o/ the same sing.e O rder "rocessP.

<.2.3

0all *ct+1+ty Example

In this e5amp.e our O rder "rocessP is depicted 0ith a co..apsed Ca.. $ctivity O$pprove rderP. &his diagram is :uite di//erent than the previous e5amp.e, as here 0e are introducing the notion o/ "rocess re*use. In this case, the O$pprove rderP is not a %ub "rocess o/ O rder "rocessP but separate independent process that is ca..ed 3re*used4 0ithin the O rder "rocessP.

9*#N 2.0 .4 ()ample: ;ersion 1.0

23

"rder +andlin! Approved Juotation +andlin! Approve "rder Revie& "rder

S ippin! +andlin!

&he O$pprove rderP "rocess


Approve Customer Approve *roduct

<e thus have t0o processes each in their o0n diagrams 32 processes, 2 diagrams4

28

9*#N 2.0 .4 ()ample: ;ersion 1.0

8
>.1

Nobel Prize Example


.%e Nobel Pr+;e Proce(( !cenar+o

&he se.ection o/ a #obe. "ri;e 2aureate is a .engthy and care/u..y e5ecuted process. &he processes s.ight.y di//er /or each o/ the si5 pri;es6 the resu.ts are the same /or each o/ the si5 categories. )o..o0ing is the description /or the #obe. "ri;e in Medicine. &he main actors in the processes /or #omination, %e.ection and $ccepting and +eceiving the a0ard are the7 R R R R R #obe. Committee /or Medicine, #ominators, %pecia..y appointed e5perts, #obe. $ssemb.y and #obe. 2aureates.

(ach year in %eptember, in the year preceding the year the "ri;e is a0arded, around 9000 invitations or con/identia. nomination /orms are sent out by the #obe. Committee /or Medicine to se.ected #ominators. &he #ominators are given the opportunity to nominate one or more #ominees. &he comp.eted /orms must be made avai.ab.e to the #obe. Committee /or Medicine /or the se.ection o/ the pre.iminary candidates. &he #obe. Committee /or Medicine per/orms a /irst screening and se.ects the pre.iminary candidates. )o..o0ing this se.ection, the #obe. Committee /or Medicine may re:uest the assistance o/ e5perts. I/ so, it sends the .ist 0ith the pre.iminary candidates to these specia..y appointed e5perts 0ith the re:uest to assess the pre.iminary candidatesL 0or8. )rom this, the recommended /ina. candidate .aureates and associated recommended /ina. 0or8s are se.ected and the #obe. Committee /or Medicine 0rites the reports 0ith recommendations. &he #obe. Committee /or Medicine submits the report 0ith recommendations to the #obe. $ssemb.y. &his report contains the .ist o/ /ina. candidates and associated 0or8s. &he #obe. $ssemb.y chooses the #obe. 2aureates in Medicine and associated through a ma!ority vote and the names o/ the #obe. 2aureates and associated 0or8s are announced. &he #obe. $ssemb.y meets t0ice /or this se.ection. In the /irst meeting o/ the #obe. $ssemb.y the report is discussed. In the second meeting the #obe. 2aureates in Medicine and associated 0or8s are chosen. &he #obe. "ri;e $0ard Ceremony is he.d in %toc8ho.m.

9*#N 2.0 .4 ()ample: ;ersion 1.0

2:

>.2

No.el Committee for #edicine

Nominator

Nomination /ormKsL Sent

Assessments Completed

No.el Assem.l4

Send Nominee Completed /ormKsL ()pert

2
Report &it Recommendations No Screen @ Select *reliminar4 Candidates Ges ()pert Assistance Re2uiredB 3etermine Need for ()pert Assistance Select /inal Candidates and t eir &or%s Send 8ist of Selected *reliminar4 Candidates Collect Candidates ?or% Assessment Reports
?rite Recommendations Report Su.mit Report &it Recommendations

Around 3000 invitations> confidential nomination forms are sent to selected Nominators

Send Nomination /orm

Collect Completed /orms

+old No.el *ri-e A&ard Ceremon4

Septem.er Gear n61

Nominators Assessment Nomination /orm

Completed Nomination /orms *reliminar4 Candidates 8ist of Candidates to .e Assessed

Candidates Assessments Report &it Recommendations

.%e Nobel Pr+;e Proce(( D+a'ram

Nomination Invitation

Identif4 *otential NomineeKsL Assess Candidates ?or%

Send Candidates Assessment Report

3iscuss Nominations K#eetin! 1L

Select 8aureates K#eetin! 2L

Announce No.el *ri-e 8aureates Announcement #ade Announcement

Nominator ma4 nominate one or more Nominees

9*#N 2.0 .4 ()ample: ;ersion 1.0

A selected ()pert is as%ed to assess t e &or% of t e *reliminar4 Candidates in t e list

No.el *ri-e 8aureate

!ra"el #oo$ing Example


&he purpose o/ this chapter is to provide an e5amp.e o/ in*.ine event hand.ing via event sub*process constructs. &he process scenario is inspired /rom /igure 10.100 o/ the B"M# 2.0 %peci/ication document.

7.1

.%e .ra1el Boo9+n' !cenar+o

&he &rave. $gency receives a trave. reservation re:uest, inc.uding air.ine transportation and hote. reservation, /rom a C.ient. )o..o0ing research and eva.uation o/ both /.ightsL and hote. roomsL avai.abi.ity, se.ected a.ternatives are pac8aged and o//ered to the C.ient. &he C.ient has 2F hours to either se.ect a proposed a.ternative or cance. the re:uest. In case o/ a cance..ation, or a/ter this de.ay, the $gency updates the C.ient record to re/.ect the re:uest cance..ation and the C.ient is noti/ied. <hen a se.ection is made, the C.ient is as8ed to provide the Credit Card in/ormation. $gain, the C.ient has 2F hours to provide this in/ormation or the re:uest is cance.ed via the same activities stated be/ore 3update and noti/ication4. Having received the Credit Card in/ormation, the boo8ing activities ta8e p.ace7 &he /.ight and the hote. room are boo8ed. Measures are ta8en to insure reservations reversa.s i/ prob.ems occur in the boo8ing and payment activities. &he C.ient is a.so entit.ed to provide the $gency 0ith Credit Card In/ormation modi/ications be/ore the boo8ing is comp.eted. %uch in/ormation 0i.. be saved in its record. I/ an error arises during the boo8ing activities, the /.ight and hote. room reservations are reversed and the C.ient record is updated. &he boo8ing is tried again as .ong as the boo8ing retry .imit is not e5ceeded. )o..o0ing success/u. boo8ing the +eservations are charged on the C.ientLs Credit Card and the process stops /o..o0ing success/u. con/irmation. I/ an error occurs during this activity the /.ight and hote. room reservation are reversed. &he C.ient is as8ed again /or the Credit Card In/ormation and the boo8ing is tried again as .ong as the payment processing retry .imit is not e5ceeded. In both cases, /o..o0ing the error, 0hen the retry .imit is e5ceeded, the C.ient is noti/ied and the process stops.

9*#N 2.0 .4 ()ample: ;ersion 1.0

2<

7.2

2>
9oo%in! 9oo% /li! t Notif4 Customer to Start A!ain /li! t Cancel /li! t Reservation Completed 24 ours 9oo% +otel +otel Cancel +otel Re2uest Cancelled 24 +ours Hpdate Credit Card Information Hpdate Credit Card Info Retr4 8imit ()ceededB Ges +andle Compensation Hpdate Customer Record 9oo%in! /li! t +otel 9oo%in! No Notif4 Customer Invalid Credit Card C ar!e Credit Card 9oo%in! Successfull4 Completed *ac%a!e /li! ts and +otel Rooms for Customer Revie& Cancel Re2uest *resent /li! ts and +otel Rooms Alternatives to Customer Hpdate Customer Record KRe2uest CancelledL Re2uest Credit Card Information from Customer Customer ma%e Selection 9oo%in! Not Completed +andle 9oo%in! (rror Retr4 8imit ()ceededB /li! t 9oo%in! (rror 1 +otel Ges 9oo%in! (rror 2 9oo%in! (rror 2 No Notif4 Customer /ailed 9oo%in!

Searc /li! ts .ased on Customer Re2uest

(valuate /li! ts &it in Customer Criteria

.%e .ra1el Boo9+n' D+a'ram

Receive Customer /li! t and +otel Room Reservation Re2uest

Searc +otel Rooms .ased on Customer Re2uest

(valuate +otel Rooms &it in Customer Criteria

9*#N 2.0 .4 ()ample: ;ersion 1.0

%&

Examples 'rom Diagram Interc(ange C(apter


&he purpose o/ this chapter is to provide a subset o/ the diagrams used into the #otation and ,iagrams chapter o/ the B"M# 2.0 speci/ication a.ong 0ith their seria.i;ations. &he comp.ete seria.i;ations o/ the herein provided diagrams can be /ound in the accompanying machine*readab.e /i.es.

10.1

Expanded !ub Proce(( Example


Su.*rocess

a Start(vent Su.*rocessStart

Activit4

c Su.*rocess(nd

d (nd(vent

10.2
10.2.1

0ollap(ed !ub Proce(( Example


Proce(( D+a'ram
a Start(vent Su.*rocess d (nd(vent

10.2.2

!ub Proce(( D+a'ram


. Su.*rocessStart Activit4 c Su.*rocess(nd

10.3

Mult+ple $ane( and Ne(ted $ane( Example


8ane 1 #anual ,as%

8ane 2 6 1

Su. *rocess

8ane 2

. 8ane 2 6 2 Hser ,as% 3ocument c

9*#N 2.0 .4 ()ample: ;ersion 1.0

27

10.8

6ert+cal 0ollaborat+on Example


*ool A 8ane 1 8ane 2 *ool 9

Sendin!

Receivin!

10.:

0on1er(at+on Example
*articipant 1 *articipant 2

a Conversation 1

e f

#essa!e annotation Conversation 2 d

10.

0%oreo'rap%y Example
*articipant 1 *articipant 1 *articipant 1

a Start(vent

*articipant 3 C, 1

C, 2

SC *articipant 2

d (nd(vent

*articipant 2

*articipant 2

*articipant 3

30

9*#N 2.0 .4 ()ample: ;ersion 1.0

%%

Correlation Example

&his e5amp.e i..ustrates the usage o/ t0o concepts, name.y corre.ations and de/initiona. co..aborations. It introduces a co..aboration bet0een three participants * %e..er, Buyer and %hipper * and the %e..er process that interacts 0ith the t0o other participants. &he %e..erCo..ab co..aboration is de/ined as de/initiona. co..aboration /or the %e..er process, as it speci/ies a.. "articipants the "rocess interacts 0ith. It is used to derive 0hich individua. service, %end &as8 or +eceive &as8, is connected to 0hich "articipant through Message ).o0 and associated corre.ation in/ormation. Moreover, this e5amp.e i..ustrates de/inition o/ 8ey*based corre.ations. %ee $nne5 $ /or the according BM2 %chema and <%,2 description.
<?xml version="1.0" encoding="=69-8"?> <definitions id="de$" targetNamespace=" tt!"##))).e&am!(e.%*g#,*%cesses#se((e*,*%cess" typeLanguage=" tt!"##))).)3.%*g#2001#2M0Sc ema" expressionLanguage=" tt!"##))).)3.%*g#1999#2,at " xmlns=" tt!"##))).%mg.%*g#s!ec#+,M-#20100524#MO./0" xmlns:xsi=" tt!"##))).)3.%*g#2001#2M0Sc ema-instance" xmlns:xsd=" tt!"##))).)3.%*g#2001#2M0Sc ema" xmlns:my+ata=" tt!"##))).e&am!(e.%*g#Messages" xmlns:tns=" tt!"##))).e&am!(e.%*g#,*%cesses#se((e*,*%cess" > <!-!tructures and 4essages --> <import import.ype=" tt!"##))).)3.%*g#2001#2M0Sc ema" location=".ata.e$initi%ns.&sd" namespace=" tt!"##))).e&am!(e.%*g#Messages")> <import import.ype=" tt!"##sc emas.&m(s%a!.%*g#)sd(#" location="Inte*$aces.)sd(" namespace=" tt!"##))).e&am!(e.%*g#Messages")> <item+efinition id="item;9>Message" structure(ef="my.ata"*$?;e?'est"> <!-- !ingle part message --> <)item+efinition> <item+efinition id="item>'%teMessage" structure(ef="my.ata"*$?;es!%nse"> <!-- !ingle part message --> <)item+efinition> <item+efinition id="item9a'(tMessage" structure(ef="my.ata"*$?9a'(t"> <!-- !ingle part message --> <)item+efinition> <item+efinition id="itemO*de*;e?'est" structure(ef="my.ata"%*de*;e?'est"> <!-- 4ulti part message --> <)item+efinition> <item+efinition id="itemO*de*;es!%nse" structure(ef="my.ata"%*de*;es!%nse"> <!-- 4ulti part message --> <)item+efinition> <item+efinition id="itemS i!!ing;e?'est" structure(ef="my.ata"s i!!ing;e?'est"> <!-- 4ulti part message --> <)item+efinition> <item+efinition id="itemS i!!ing;es!%nse" structure(ef="my.ata"s i!!ing;es!%nse"> <!-- 4ulti part message --> <)item+efinition> <message <message <message <message <message <message <message id="msg;9>" name=";9> Message" item(ef="tns"item;9>Message")> id="msg>'%te" name=">'%te Message" item(ef="tns"item>'%teMessage")> id="msg9a'(t" name="9a'(t Message" item(ef="tns"item9a'(tMessage")> id="msgO*de*.ata" name="O*de* .ata Message" item(ef="tns"itemO*de*;e?'est")> id="msgO*de*1%n$i*mati%n" name="O*de* 1%n$i*mati%n Message" item(ef="tns"itemO*de*;es!%nse")> id="msgS i!!ing.ata" name="S i!!ing .ata Message" item(ef="tns"itemS i!!ing;e?'est")> id="msgS i!!ing1%n$i*mati%n" name="S i!!ing 1%n$i*mati%n Message" item(ef="tns"itemS i!!ing;es!%nse")>

<partner"ntity id="t eSe((e*" name="6 e Se((e*"> <participant(ef>tns:seller<)participant(ef> <)partner"ntity> <partner(ole id="a+'ye*" name="< +'ye*"> <participant(ef>tns:buyer<)participant(ef> <)partner(ole> <partner(ole id="aS i!!e*" name="< S i!!e*"> <participant(ef>tns:s$ipper<)participant(ef> <)partner(ole> <correlation-roperty id="!*%!>'%teI." name=",*%!e*ty >'%te I." type="&sd"st*ing"> <correlation-roperty(etrieval"xpression message(ef="tns"msg;9>"> <message-at$>)re=uest)=uote*+<)message-at$>

9*#N 2.0 .4 ()ample: ;ersion 1.0

31

<)correlation-roperty(etrieval"xpression> <correlation-roperty(etrieval"xpression message(ef="tns"msg>'%te"> <message-at$>)response)=uote*+<)message-at$> <)correlation-roperty(etrieval"xpression> <correlation-roperty(etrieval"xpression message(ef="tns"msg9a'(t"> <message-at$>)fault)=uote*+<)message-at$> <)correlation-roperty(etrieval"xpression> <correlation-roperty(etrieval"xpression message(ef="tns"msgO*de*.ata"> <message-at$>)priceKuotation(ef<)message-at$> <)correlation-roperty(etrieval"xpression> <)correlation-roperty> <correlation-roperty id="!*%!1'st%me*I." name=",*%!e*ty 1'st%me* I." type="&sd"st*ing"> <correlation-roperty(etrieval"xpression message(ef="tns"msgO*de*.ata"> <message-at$>)customer)id<)message-at$> <)correlation-roperty(etrieval"xpression> <correlation-roperty(etrieval"xpression message(ef="tns"msgO*de*1%n$i*mati%n"> <message-at$>)customer*+<)message-at$> <)correlation-roperty(etrieval"xpression> <)correlation-roperty> <correlation-roperty id="!*%!O*de*I." name=",*%!e*ty O*de* I." type="&sd"st*ing"> <correlation-roperty(etrieval"xpression message(ef="tns"msgO*de*.ata"> <message-at$>)order)order*+<)message-at$> <)correlation-roperty(etrieval"xpression> <correlation-roperty(etrieval"xpression message(ef="tns"msgO*de*1%n$i*mati%n"> <message-at$>)order)order*+<)message-at$> <)correlation-roperty(etrieval"xpression> <correlation-roperty(etrieval"xpression message(ef="tns"msgS i!!ing.ata"> <message-at$>)order)order*+<)message-at$> <)correlation-roperty(etrieval"xpression> <correlation-roperty(etrieval"xpression message(ef="tns"msgS i!!ing1%n$i*mati%n"> <message-at$>)order)order*+<)message-at$> <)correlation-roperty(etrieval"xpression> <)correlation-roperty> <collaboration id="se((e*1%((ab"> <participant id="se((e*" name="Se((e*" process(ef="tns"se((e*,*%cess"> <interface(ef>tns:seller!ervice*nterface<)interface(ef> <)participant> <participant id="b'ye*" name="+'ye*")> <participant id="s i!!e*" name="S i!!e*"> <interface(ef>tns:s$ipper!ervice*nterface<)interface(ef> <)participant> <message/lo% id="m$1" message(ef="tns"msg;9>" source(ef="tns"b'ye*" target(ef="tns"*ecei:e>'%te;e?'est")> <message/lo% id="m$2" message(ef="tns"msg>'%te" source(ef="tns"send>'%te" target(ef="tns"b'ye*")> <message/lo% id="m$3" message(ef="tns"msg9a'(t" source(ef="tns"send9a'(t" target(ef="tns"b'ye*")> <message/lo% id="m$4" message(ef="tns"msgO*de*.ata" source(ef="tns"b'ye*" target(ef="tns"*ecei:eO*de*;e?'est")> <message/lo% id="m$5" message(ef="tns"msgO*de*1%n$i*mati%n" source(ef="tns"sendO*de*;es!%nse" target(ef="tns"b'ye*")> <message/lo% id="m$6" message(ef="tns"msgS i!!ing.ata" source(ef="tns"sendS i!!ing;e?'est" target(ef="tns"s i!!e*")> <message/lo% id="m$7" message(ef="tns"msgS i!!ing1%n$i*mati%n" source(ef="tns"s i!!e*" target(ef="tns"*ecei:eS i!!ing1%n$i*mati%n")> <!-Aonversations --> <conversation id="c%n:e*sati%n>'%te;e?'est"> <message/lo%(ef>tns:mf6<)message/lo%(ef> <message/lo%(ef>tns:mf8<)message/lo%(ef> <message/lo%(ef>tns:mf7<)message/lo%(ef> <message/lo%(ef>tns:mfL<)message/lo%(ef> <correlationJey id="c%**e(>'%te" name=">'%te 1%**e(ati%n @ey"> <correlation-roperty(ef>tns:propKuote*+<)correlation-roperty(ef> <)correlationJey> <)conversation> <conversation id="c%n:e*sati%nO*de*Aand(ing"> <message/lo%(ef>tns:mfL<)message/lo%(ef> <message/lo%(ef>tns:mf;<)message/lo%(ef> <correlationJey id="c%**e(O*de*" name="O*de* 1%**e(ati%n @ey"> <correlation-roperty(ef>tns:propAustomer*+<)correlation-roperty(ef> <correlation-roperty(ef>tns:prop,rder*+<)correlation-roperty(ef> <)correlationJey> <)conversation> <conversation id="c%n:e*sati%nS i!ment;e?'est"> <message/lo%(ef>tns:mf#<)message/lo%(ef> <message/lo%(ef>tns:mf9<)message/lo%(ef> <correlationJey id="c%**e(S i!ment" name="S i!ment 1%**e(ati%n @ey"> <correlation-roperty(ef>tns:prop,rder*+<)correlation-roperty(ef> <)correlationJey> <)conversation> <)collaboration> <!-*nterfaces -->

32

9*#N 2.0 .4 ()ample: ;ersion 1.0

<!-- .$e interface of t$e !eller -rocess --> <interface id="se((e*Se*:iceInte*$ace" name="Se((e* Se*:ice Inte*$ace"> <operation id="*e?'est>'%teO!" name=";e?'est >'%te O!e*ati%n"> <in4essage(ef>tns:msg(/K<)in4essage(ef> <out4essage(ef>tns:msgKuote<)out4essage(ef> <error(ef>tns:msg/ault<)error(ef> <)operation> <operation id="%*de*O!" name="O*de* O!e*ati%n"> <in4essage(ef>tns:msg,rder+ata<)in4essage(ef> <out4essage(ef>tns:msg,rderAonfirmation<)out4essage(ef> <)operation> <)interface> <interface id="s i!!e*Se*:iceInte*$ace" name="S i!!e* Se*:ice Inte*$ace"> <operation id="*e?'estS i!!ingO!" name=";e?'est S i!!ing O!e*ati%n"> <in4essage(ef>tns:msg!$ipping+ata<)in4essage(ef> <out4essage(ef>tns:msg!$ippingAonfirmation<)out4essage(ef> <)operation> <)interface> <!--rocess +efinition -->

<process id="se((e*,*%cess" name="Se((e* !*%cess" definitionalAollaboration(ef="tns"se((e*1%((ab"> <!--(eceive =uote re=uest message from caller'--> <receive.as> id="*ecei:e>'%te;e?'est" name=";ecei:e >'%te ;e?'est" instantiate="t*'e" message(ef="tns"msg;9>" operation(ef="tns"*e?'est>'%teO!")> <se=uence/lo% target(ef="decisi%n1" source(ef="*ecei:e>'%te;e?'est")> <!--+ecide %$et$er =uote is available and can be returned1 or not' .$e actual processing logic is omitted from t$e example' --> <exclusive?ate%ay id="decisi%n1" gate%ay+irection="Mi&ed" default="n%>'%te")> <se=uence/lo% id="?'%te" target(ef="send>'%te" source(ef="decisi%n1"> <condition"xpression>Kuote available and o>ay'<)condition"xpression> <)se=uence/lo%> <se=uence/lo% id="n%>'%te" target(ef="send9a'(t" source(ef="decisi%n1")> <!-- (espond successful =uote bac> to caller' --> <send.as> id="send>'%te" name="Send >'%te" message(ef="tns"msg>'%te" operation(ef="tns"*e?'est>'%teO!")> <se=uence/lo% target(ef="e:ent8ait" source(ef="send>'%te")> <!-- .$is is a reply1 so use same service reference and operation as in associated receive' --> <send.as> id="send9a'(t" name="Send 9a'(t" message(ef="tns"msg9a'(t" operation(ef="tns"*e?'est>'%teO!")> <receive.as> id="*ecei:e-e)>'%te;e?'est" name=";ecei:e -e) >'%te" message(ef="tns"msg;9>" operation(ef="tns"*e?'est>'%teO!")> <se=uence/lo% target(ef="decisi%n1" source(ef="*ecei:e-e)>'%te;e?'est")> <!-- (espond error bac> to caller --> <se=uence/lo% target(ef="e:ent8ait" source(ef="send9a'(t")> <!-- Mait for anot$er =uote re=uest1 an order1 or a timeout --> <event3ased?ate%ay id="e:ent8ait" gate%ay+irection="Mi&ed")> <se=uence/lo% target(ef="*ecei:e-e)>'%te;e?'est" source(ef="e:ent8ait")> <se=uence/lo% target(ef="*ecei:eO*de*;e?'est" source(ef="e:ent8ait")> <se=uence/lo% target(ef="time%'t" source(ef="e:ent8ait")> <!-- .imeout and end --> <intermediateAatc$"vent id="time%'t"> <timer"vent+efinition> <time+ate>-+L$<)time+ate> <)timer"vent+efinition> <)intermediateAatc$"vent> <se=uence/lo% target(ef="end1" source(ef="time%'t")> <end"vent id="end1")> <!-- (eceive an order message--> <receive.as> id="*ecei:eO*de*;e?'est" name=";ecei:e O*de* ;e?'est" message(ef="tns"msgO*de*.ata" operation(ef="tns"%*de*O!" )> <se=uence/lo% target(ef="$%*7" source(ef="*ecei:eO*de*;e?'est")>

9*#N 2.0 .4 ()ample: ;ersion 1.0

33

<parallel?ate%ay id="$%*7" gate%ay+irection=".i:e*ging")> <se=uence/lo% target(ef="sendO*de*;es!%nse" source(ef="$%*7")> <se=uence/lo% target(ef="sendS i!!ing;e?'est" source(ef="$%*7")> <!-- !end order confirmation --> <send.as> id="sendO*de*;es!%nse" name="Send O*de* ;es!%nse" message(ef="tns"msgO*de*1%n$i*mati%n" operation(ef="tns"%*de*O!" )> <se=uence/lo% target(ef="3%in" source(ef="sendO*de*;es!%nse")> <!-- .rigger !$ipping --> <send.as> id="sendS i!!ing;e?'est" name="Send S i!!ing ;e?'est" message(ef="tns"msgS i!!ing.ata" operation(ef="tns"*e?'estS i!!ingO!")> <se=uence/lo% target(ef="*ecei:eS i!!ing1%n$i*mati%n" source(ef="sendS i!!ing;e?'est")> <!-- (eceive !$ipment Notification --> <receive.as> id="*ecei:eS i!!ing1%n$i*mati%n" name=";ecei:e S i!!ing 1%n$i*mati%n" message(ef="tns"msgS i!!ing1%n$i*mati%n" operation(ef="tns"*e?'estS i!!ingO!" )> <se=uence/lo% target(ef="3%in" source(ef="*ecei:eS i!!ing1%n$i*mati%n")> <parallel?ate%ay id="3%in" gate%ay+irection="1%n:e*ging")> <se=uence/lo% target(ef="end2" source(ef="3%in")> <end"vent id="end2")> <)process> <)definitions>

38

9*#N 2.0 .4 ()ample: ;ersion 1.0

12

E-Ma+l 6ot+n' Example

&his chapter 0i.. provide an e5amp.e o/ a business process mode.ed 0ith B"M#. &his e5amp.e 0as presented in the B"M# 1.0 speci/ication, but has been updated /or B"M# 2.0. &he process that 0i.. be described is a process used to he.p deve.op this notation. It is a process /or reso.ving issues through e*mai. votes 3see )igure4. &his "rocess is sma.., but /air.y comp.e5 and 0i.. provide e5amp.es /or many o/ the /eatures o/ B"M#, and it 0i.. he.p i..ustrate that B"M# can hand.e simp.e and unusua. business processes and sti.. be easi.y understandab.e /or readers o/ the ,iagram. &he sections be.o0 0i.. iso.ate segments o/ the "rocess and high.ight the mode.ing /eatures as the 0or8ings o/ the "rocess is described.

9*#N 2.0 .4 ()ample: ;ersion 1.0

3:

9*#N 2.0 .4 ()ample: ;ersion 1.0

;otin! #em.ers

3
Ges Collect ;otes Conference Call in ;otin! ?ee%B No ?ait until #onda4: 5 Am 7 3a4s , e *rocess &ill loop if t ere is no discussion of t e issues or sufficient solutions ?arnin! ,e)t Ges Issue 8ist MIn ;otin!N ?ait until , ursda4: 5am #oderate Conference Call 3iscussion C ec% Calendar for Conference Call 3ela4 0 da4s from Announcement Announce Issues for ;ote ?arnin! ,e)t (6mail ;ote 3eadline ?arnin! 3ela4 13 da4s Issue 8ist MRead4N Issue ;otes MAdOustedN Increment ,all4 Receive ;ote *ost Status on ?e. Site 2nd ,ime 3ela4 1 da4 (6mail discussion 3eadline ?arnin! (valuate 3iscussion *ro!ress #oderate (6 mail 3iscussion 14 3a4s Reduce to ,&o Solutions Conference Call in 3iscussion ?ee%B No No (6mail ;oters t at ave to C an!e ;otes Issue ;otes MAdOustedN Ges ?ait until , ursda4: 5 am #oderate Conference Call 3iscussion Issue 8ist MNot Read4N #em.er ;ote Issue ;otes Ges Issues &>o #aOorit4B *ost Results on ?e. Site *repare Results (6mail Results of ;ote 3eadline ?arnin! ;ote Issue ;otes M/inalN ;ote Results Ges 3id (nou! #em.ers ;oteB No ;ote Announcement +ave t e #em.ers .een &arnedB Ges No No Re6announce ;ote &it ?arnin! to ;otin! #em.ers 3eadline ?arnin! Reduce num.er of ;otin! #em.ers and Recalculate ;ote Issue ;otes M/inal 2N C an!e ;ote #essa!e ?arnin! ,e)t ;ote announcement &it ?arnin!

3iscussion C4cle

#oderate (6mail 3iscussion

Issue 8ist MInitialN

Are issues read4B

Revie& Issue 8ist

Ges

Announce Issues for 3iscussion

Issue 8ist MIn 3iscussionN

/rida4

No

C ec% Calendar for Conference Call

Conference Calls are ever4 t&o &ee%s

Issue ;otes M/inal 2N

Issue Announcement

&he "rocess has a point o/ vie0 that is /rom the perspective o/ the manager o/ the Issues 2ist and the discussion around this .ist. )rom that point o/ vie0, the voting members o/ the 0or8ing group are considered as e5terna. "articipants 0ho 0i.. be communicated 0ith by messages 3sho0n as Message ).o04. &he Issue 2ist Manager 0i.. revie0 the .ist and determine i/ there are any issues that are ready /or going through the discussion and voting cyc.e. &hen a ,ecision must be made. I/ there are no issues ready, then the "rocess is over /or that 0ee8**to be ta8en up again the /o..o0ing 0ee8. I/ there are issues ready, then the "rocess 0i.. continue 0ith the discussion cyc.e. &he O,iscussion Cyc.eP %ub*"rocess is the /irst activity a/ter the O$ny issues readySP ,ecision and this %ub*"rocess has t0o incoming %e:uence ).o0, one o/ 0hich originates /rom a do0nstream ,ecision and is thus part o/ a .oop. It is one o/ a set o/ /our 3F4 comp.e5 .oops that e5ist in the "rocess. &he contents o/ the O,iscussion Cyc.eP %ub* "rocess and the activities that /o..o0 0i.. be described be.o0.

12.1

.%e )+r(t !ub-Proce((

&he O,iscussion Cyc.eP %ub*"rocess starts 0ith a &as8 /or the Issue 2ist Manager to send an e*mai. to the 0or8ing group that a set o/ Issues are no0 open /or discussion through the 0or8ing groupLs message board. %ince this &as8 sends a message to an outside "articipant 3the 0or8ing group members4, an outgoing Message ).o0 is seen /rom the O,iscussion Cyc.eP %ub*"rocess to the O>oting MembersP "oo. in the )igure. Basica..y, the 0or8ing group 0i.. be discussing the issues /or one 0ee8 and proposing additiona. so.utions to the issues. $/ter the /irst &as8, three separate para..e. paths are /o..o0ed, 0hich are synchroni;ed do0nstream. &his is sho0n by the three outgoing %e:uence ).o0 /or that activity. &he top para..e. path in the /igure starts 0ith a .ong*running &as8, OModerate (*mai. ,iscussion,P that has a &imer Intermediate (vent attached to its boundary. &he OModerate (*Mai. ,iscussionP &as8 0i.. never actua..y be comp.eted norma..y in this mode., but 0i.. be interrupted by the &imer Intermediate (vent. &he midd.e para..e. path o/ the /or8 contains an Intermediate (vent and a &as8. $ &imer Intermediate (vent used in the midd.e o/ the "rocess /.o0 3not attached to the boundary o/ an activity4 0i.. cause a de.ay. &his de.ay is set to Q days. &he O(*Mai. ,iscussion ,ead.ine <arningP &as8 0i.. /o..o0. $gain, since this &as8 sends a message to an outside "articipant, an outgoing Message ).o0 is seen /rom the O,iscussion Cyc.eP %ub*"rocess to the O>oting MembersP "oo. in the )igure. &he bottom para..e. path o/ the /or8 contains more than one ob!ect, /irst o/ 0hich is &as8 0here the issue .ist manager chec8s the ca.endar to see i/ there is a con/erence ca.. this 0ee8. &he output o/ the &as8 0i.. be an update to the variab.e OConCa..P 3not seen4, 0hich 0i.. be true or /a.se. $/ter the &as8, an (5c.usive Gate0ay 0ith its t0o Gates /o..o0s. &he Ode/au.tP ).o0 connects direct.y to an merging (5c.usive Gate0ay. $ merging (5c.usive Gate0ay is used in this situation because the ne5t ob!ect is a !oining "ara..e. Gate0ay 3the diamond 0ith the cross in the center4 that is used to synchroni;e the three 394 para..e. paths. I/ the merging Gate0ay 0as not used and both %e:uence ).o0 connected to the "ara..e. Gate0ay, the "rocess 0ou.d have been stuc8 at the "ara..e. Gate0ay that 0ou.d 0ait /or a &o8en to arrive /rom each o/ the incoming %e:uence ).o0. &he O=esP %e:uence ).o0 0i.. have a condition that chec8s the va.ue o/ the OConCa..P variab.e 3set in the previous &as84 to see i/ there 0i.. be a con/erence ca.. during the 0ee8. I/ so, the &imer Intermediate (vent indicates de.ay, since a.. con/erence ca..s /or the 0or8ing group start at Ham ",& on &hursdays. &he &as8 /or moderating the con/erence ca.. /o..o0s the de.ay, 0hich is /o..o0ed by the merging Gate0ay. &he merging Gate0ay in bottom path, the OModerate (*mai. ,iscussionP &as8, and the O(*Mai. ,iscussion ,ead.ine <arningP &as8 a.. /.o0 into a synchroni;ing "ara..e. Gate0ay. &his Gate0ay 0aits /or a.. three paths to comp.ete be/ore the "rocess 0i.. continue to the ne5t &as8, O(va.uate ,iscussion "rogress.P &he Issue 2ist Manager 0i.. revie0 the status o/ the issues and the discussions during the past 0ee8 and decide i/ the discussions are over. &he O,iscussion verP variab.e 3not seen4 0i.. be set to &+'( or )$2%(, depending on this eva.uation. I/ the variab.e is set to )$2%(, then the 0ho.e %ub*"rocess 0i.. be repeated, since it has .ooping set and the .oop condition that 0i.. test the O,iscussion verP variab.e.

12.2

.%e !econd !ub-Proce((

&he OCo..ect >otesP %ub*"rocess is preceded by a &as8 /or the issue .ist manager to send out an e*mai. to announce to the 0or8ing group, and the voting members in particu.ar, 0hich .ets them 8no0 that the issues are no0 ready /or voting. %ince this &as8 sends a message to an outside "articipant 3the 0or8ing group members4, an outgoing Message ).o0 is seen /rom the O$nnounce IssuesP &as8 to the O>oting MembersP "oo. in the )igure above. &his &as8 is a.so a target /or one o/ the comp.e5 .oops in the "rocess.
9*#N 2.0 .4 ()ample: ;ersion 1.0 3<

&he OCo..ect >otesP %ub*"rocess /o..o0s the &as8, and is a.so a target o/ one o/ the .ooping %e:uence ).o0. &his %ub* "rocess is basica..y a set o/ three 394 para..e. paths that e5tend /rom the beginning to the end o/ the %ub*"rocess. In addition, there is a non*interrupting (vent %ub*"rocess that is used to receive the votes /rom the voting members as they come in. &he /irst branch o/ the /or8 .eads to a ,ecision that determines 0hether or not a con/erence ca.. 0i.. occur during the upcoming 0ee8, a/ter the <or8ing GroupLs schedu.e has been chec8ed. Basica..y, i/ there 0as a ca.. .ast 0ee8, then there 0i.. not be a ca.. this 0ee8 and vice versa. I/ there is no ca.., then there is a &imer Intermediate (vent that is set to 0ait unti. the ne5t Monday, then the path .oops bac8. &he appropriate variab.e that 0as updated in the O,iscussion Cyc.eP "rocess 0i.. be used again. &he second and third branches o/ the /or8s 0or8 the same 0ay as the simi.ar activities in the O,iscussion Cyc.eP %ub* "rocess, e5cept that it 0i.. .ast t0o 0ee8s. Ho0ever, since the branches .ead to an (nd (vent instead o/ a "ara..e. Gate0ay, a merging (5c.usive Gate0ay is not needed 3the necessary synchroni;ation 0i.. be done by the (nd (vent4. &he (vent %ub*"rocess 0i.. accept votes /rom the voting members throughout the t0o 0ee8s that the OCo..ect >otesP %ub*"rocess runs. &he po.icy o/ the 0or8ing group is that voting members can vote more than once on an issue6 that is, they can change their mind as many times as they 0ant throughout the entire t0o 0ee8s. &he Message %tart (vent triggers the per/ormance o/ the (vent %ub*"rocess. It is o/ the non*interrupting type so that mu.tip.e votes can be co..ected during the t0o 0ee8s. $s part o/ this, an incoming Message ).o0 is seen /rom the O>oting MembersP "oo. to the O+eceive >oteP %tart (vent. <ithin the (vent %ub*"rocess are &0o &as8s that /o..o0 the start. )irst, a &as8 0i.. prepare a.. the voting resu.ts, then a &as8 0i.. send the resu.ts to the voting members.

12.3

.%e End o/ t%e Proce((

&he .ast section o/ the "rocess inc.udes a comp.e5 set o/ ,ecisions and .oops. )irst a set o/ &as8s 0i.. prepare the voting resu.ts, emai. them to the voting members, and post them on a 0eb site. &he /irst ,ecision, O,id (nough Members >oteS,P is necessary since t0o*thirds o/ the voting members are re:uired to approve any so.ution to an issue. I/ .ess than t0o*thirds o/ the voting members cast votes, 0hich sometimes happens, the issues canLt be reso.ved. &his ,ecision is /o..o0ed by another ,ecision /or both o/ its $.ternatives. &he O#oP $.ternative is /o..o0ed by the OHave the Members been <arnedSP ,ecision. I/ a voting member misses a vote, they are 0arned. I/ they miss a second vote, they .ose their status as a voting member and the voting percentages are reca.cu.ate through a &as8 3O+educe number o/ >oting Members and +eca.cu.ate >oteP4. I/ they havenLt yet been 0arned, then a 0arning is sent and the voting cyc.e is repeated. I/ a.. issues are reso.ved, then the "rocess is done. I/ not, then another ,ecision is re:uired. &he voting is given t0o chances be/ore it goes bac8 to another cyc.e o/ discussion. &he /irst time 0i.. see a reduction o/ the number o/ so.utions to the t0o most popu.ar based on the vote 3more i/ there are ties4. %ome voting members 0i.. have to change their votes !ust because their se.ected so.ution is no .onger va.id. &hese t0o activities are p.aced in a %ub*"rocess to sho0 ho0 a %ub*"rocess 0ithout %tart and (nd (vents can be used to create a simp.e set o/ para..e. activities. In/orma..y, this is ca..ed a Opara..e. bo5.P It is not a specia. ob!ect, but another use o/ %ub*"rocesses. )or simp.e situations, it can be used to sho0 a set o/ para..e. activities 0ithout the e5tra c.utter o/ a .ot o/ %e:uence ).o0. In actua.ity, these t0o &as8s cannot actua..y be done in para..e., but they are mode.ed this 0ay to high.ight the optiona. use o/ %tart and (nd (vents. $/ter the para..e. bo5, the /.o0 .oops bac8 to the OCo..ect >otesP %ub*"rocess. I/ there a.ready has been t0o cyc.es o/ voting, then the process ).o0 bac8 to the O,ecision Cyc.eP %ub*"rocess.

3>

9*#N 2.0 .4 ()ample: ;ersion 1.0

*nnex *: ?M$ !er+al+;at+on( /or all pre(ented Model(


KinformativeL

*.1 Mac%+ne-readable ?M$ !er+al+;at+on(


&he BM2 seria.i;ations /or a.. mode.s are provided in machine*readab.e /orm as a separate ;ip /i.e, 0hich has the MG ,ocument #umber dtcK2010*0Q*09 and is avai.ab.e /or do0n.oad at http7KK000.omg.orgKspecKB"M#K2.0Ke5amp.esKTI".

9*#N 2.0 .4 ()ample: ;ersion 1.0

37

You might also like