service-oriented architecture
t
Inleiding in BPMN
Karakteristieken en mogelijkheden van de modelleringstaal
Bedrijfsprocessen kunnen beschreven worden aan de hand van de gestandaardiseerde grafische notatie ‘Business Process Modeling Notation’ (BPMN). De auteurs geven een overzicht van enkele karakteristieken en mogelijkheden van deze modelleringstaal, en geven daarbij een inleiding tot de belangrijkste grafische symbolen van BPMN.
informatie / april 2008
Manu De Backer en Carlos De Backer
32
De Business Process Modeling Notation (BPMN) is een gestandaardiseerde grafische notatie om bedrijfsprocessen te beschrijven. BPMN werd initieel ontwikkeld door het Business Process Management Initiative (BPMI) en werd op 6 februari 2006 door de Object Management Group (OMG) als standaard aanvaard. Hoewel er een officieuze versie 1.1 werd uitgebracht, is de huidige standaard nog steeds BPMN 1.0. Het probleem met versie 1.1 van de standaard is de incompatibiliteit met BPEL (Business Process Execution Language), wat een belangrijke beperking is. BPMN is vandaag zonder twijfel de standaard voor bedrijfsprocesmodellering en heeft deze status niet enkel te danken aan zijn adoptie door OMG, maar ook aan de grote belangstelling van tool builders. Van BPMN zijn momenteel al 44 implementaties beschikbaar. OMG bereidt nu een nieuwe versie van de standaard voor, BPMN 2.0. De verwachting is dat de finale specificatie van BPMN 2.0 voor het einde van 2008 klaar zal zijn. Ondernemingen die met BPMN starten, doen er goed aan erop te letten dat hun BPM-software compatibel is met BPMN 2.0 en BPEL 2.0. De voornaamste doelstellingen bij de ontwikkeling van BPMN waren (1) de ontwikkeling van een gestandaardiseerde (grafische) notatie, en (2) een gegarandeerde vertaling naar een formaat dat het bedrijfsproces uitvoerbaar maakt, zoals BPEL. De eerste doelstelling betekent dat
BPMN bruikbaar moet zijn voor alle stakeholders, dat wil zeggen bedrijfsmensen (de gebruikers van het proces), businessanalisten (die het proces gedetailleerd in kaart brengen) en softwareontwikkelaars die verantwoordelijk zijn voor de implementatie van het proces. Met de tweede doelstelling komen de ontwikkelaars tegemoet aan het feit dat een procesmodelleringsstandaard veel van zijn waarde verliest als de modellen niet direct uitvoerbaar zijn. Het zijn nu net de wijzigingen van BPMN 1.1 die ervoor zorgen dat de modellen niet meer direct kunnen worden vertaald naar BPEL, wat toch een serieuze beperking is. Het sterkste punt van BPMN is de beperkte scope. Met BPMN kunnen enkel bedrijfsprocessen worden gemodelleerd en geen andere modellen zoals datamodellen en klasse- of objectdiagrammen. Hiervoor verwijst OMG naar de diagrammen beschikbaar in UML (Unified Modeling Language). Bovendien ondersteunt BPMN niet alle aspecten van bedrijfsprocessen; het modelleren van data-aspecten bijvoorbeeld is maar beperkt ondersteund en wordt in BPMN behandeld als een artifact, wat zoveel betekent als ‘niet noodzakelijk’. Dit betekent geenszins dat de ontwikkelaars van BPMN het belang van data in bedrijfsprocessen minimaliseren, maar wel dat BPMN (beter) niet moet worden gebruikt om data-aspecten te modelleren. Het is nu enkel nog wachten tot OMG beslist om BPMN op te nemen in UML en de cirkel is rond.
Samenvatting Met de basisset van BPMN kunnen reeds ingewikkelde bedrijfsprocessen worden beschreven, maar een goede kennis van BPMN kan leiden tot beschrijvingen van zeer complexe modellen met exception handling, compensatieactiviteiten en transacties. De kracht van BPMN ligt niet in de basisfunctionaliteit maar in die aspecten waarin BPMN verschilt van andere modelleringstalen, namelijk het gebruik van events.
Bedrijfsprocessen kunnen worden gemodelleerd vanuit verschillende perspectieven: orkestratie en choreografie. Hoewel beide perspectieven een duidelijke maar verschillende betekenis hebben en een verschillend beeld op de processen bieden, worden ze in de praktijk vaak (foutief) door elkaar gebruikt. • Orkestratie. Een orkestratie of private process beschrijft een bedrijfsproces vanuit het standpunt van één onderneming waarbij alle activiteiten en sequence flows van het proces worden gemodelleerd. Omdat alle logica van het proces beschreven is, wordt dit ook wel een white-box pool genoemd. • Choreografie. Bij een choreografie ligt, in tegenstelling tot de orkestratie, de focus op de communicatie (message flow) tussen verschillende partners. Een choreografie beschrijft als het ware een protocol van berichten waaraan de partners moeten voldoen om te kunnen samenwerken. Een choreografie kan in BPMN twee vormen aannemen: abstracte processen en collaborations. Bij een abstract proces zullen enkel die activiteiten van het proces gemodelleerd worden die noodzakelijk zijn voor de communicatie tussen verschillende partijen. Het beschrijft de communicatie tussen een beperkt private process en een leeg partner process (black-box pool). Wanneer het partner process ook de activiteiten bevat die noodzakelijk zijn voor de communicatie (en dus niet leeg is), wordt het proces een collaboration genoemd. Het partner process wordt dan een grey-box pool genoemd. Aan het einde van dit artikel worden enkele voorbeelden gegeven die het verschil tussen deze typen aangeven.
BPMN in een notendop De ontwikkelaars van BPMN hadden twee conflicterende doelstellingen voor ogen. Eerst en vooral moest BPMN eenvoudig genoeg zijn zodat businessanalisten BPMN zouden gebruiken.
Anderzijds is daar de bijkomende eis dat BPMN voldoende expressief en formeel moest zijn zodat alle complexiteit van bedrijfsprocessen gemodelleerd kon worden, wat noodzakelijk was voor een automatische vertaling naar een uitvoerbaar formaat zoals BPEL. De ontwikkelaars zijn er wonderwel in geslaagd aan beide vereisten te voldoen door de volledige verzameling BPMN-elementen op te delen in twee groepen. De belangrijkste groep elementen, de basisset, bepaalt de look-and-feel van BPMN en is expressief genoeg voor het modelleren van eenvoudige processen. De uitgebreide groep, die ook de basisset bevat, is een hele verzameling elementen die noodzakelijk is voor het modelleren van complexe situaties en processen. Deze uitgebreide set grafische elementen wordt nog aangevuld door niet-grafische attributen die het mogelijk maken bijkomende informatie te modelleren die noodzakelijk is voor een automatische vertaling naar BPEL.
Basisset BPMN definieert een Business Process Diagram (BPD) waarin grafische elementen gebruikt worden die goed vergelijkbaar zijn met de traditionele symbolen van stroomschema’s (flowcharts). Zoals bij flowcharts wordt in een BPD een activiteit voorgesteld door een rechthoek en een beslissing door een ruit. De grafische symbolen binnen BPMN worden ingedeeld in vier categorieën: • Flow objects bepalen de stroom van de activiteiten die binnen het bedrijfsproces moeten worden uitgevoerd. • Connecting objects verbinden flow objects onderling met elkaar. Ze vormen de sequence flow van het proces. • Swimlanes worden gebruikt om activiteiten te groeperen teneinde functionele verantwoordelijkheden binnen een organisatie te beklemtonen. • Artifacts worden gebruikt om bijkomende informatie te verstrekken over een bepaalde activiteit of proces.
informatie / april 2008
BPMN-modellen
33
service-oriented architecture
t
informatie / april 2008
Flow objects BPMN maakt gebruik van slechts drie basiselementen om de stroom tussen activiteiten te beschrijven. Deze elementen zijn afgebeeld in figuur 1. De betekenis van deze objecten zou onmiddellijk duidelijk moeten zijn: • Event. Een event ofwel gebeurtenis wordt voorgesteld door een cirkel en verwijst naar een gebeurtenis die een invloed heeft op het bedrijfsproces. Er worden drie typen events gedefinieerd: start events (gewone cirkel), intermediate events (concentrische cirkels) en end events (cirkel met zwarte rand). Zoals de namen al doen vermoeden verwijzen start events naar gebeurtenissen die een proces doen opstarten, intermediate events naar gebeurtenissen die voorkomen tussen het begin en het einde van het proces, en end events naar het einde van het proces. • Activity. Een activity ofwel activiteit wordt voorgesteld door een rechthoek met afgeronde hoeken. Een activiteit is een generieke term die verwijst naar iets dat door de onderneming wordt uitgevoerd. Activiteiten worden opgesplitst in nietopdeelbare taken (tasks) en subprocessen (sub-processes). • Gateway. Een gateway wordt gebruikt om zowel de divergentie (opsplitsing) als de convergentie (samenvoeging) van de sequence flow aan te duiden. Het symbool verwijst dus naar een beslissingspunt maar wordt tevens gebruikt om een proces op te splitsen in verschillende paden (fork) en om paden terug samen te brengen (merge). Er zijn speciale symbolen om parallelle stromen (AND), exclusieve stromen (XOR) en inclusieve keuzes aan te duiden. Daarnaast wordt onderscheid gemaakt tussen data- en eventgebaseerde beslissingen.
34
Connecting objects Gebeurtenissen, activiteiten en gateways worden met elkaar verbonden door middel van ‘verbindingsobjecten’ (connecting objects). BPMN voorziet ook drie categorieën van verbindingen (zie figuur 2): • Sequence flow. Een volle lijn afgesloten door een volle pijl wordt gebruikt om de volgorde (de verbindingen) tussen flow objects te modelleren.
event start
intermediate
end
activity
task
sub-process
data-based XOR
event-based AND XOR
gateway
complex
Figuur 1. BPMN flow objects connection sequence flow
message flow
association
Figuur 2. BPMN connecting objects
• Message flow. Een stippellijn (strepen) afgesloten door een open pijl wordt gebruikt om de stroom van berichten tussen twee verschillende deelnemers aan het bedrijfsproces te modelleren. • Association. Een stippellijn (punten), al dan niet afgesloten door een gewone pijl, wordt gebruikt om verbanden te leggen tussen data, tekst et cetera en flow objects. Meestal wordt een associatie gebruikt om te verwijzen naar bijkomend commentaar dat in het diagram is opgenomen. Swimlanes Swimlanes worden gebruikt om activiteiten visueel op te splitsen in verschillende categorieën teneinde de nadruk te kunnen leggen op de taken van bepaalde afdelingen of op verantwoordelijkheden die aan bepaalde groepen en deelnemers worden toegekend. BPMN definieert twee soorten swimlanes (zie figuur 3): • Pool. Een pool verwijst naar een deelnemer (participant) in het bedrijfsproces. Een deelnemer kan verwijzen naar een andere belangrijke entiteit binnen dezelfde organisatie of naar een externe partner waarmee wordt gecommuniceerd. • Lane. Een lane is een onderverdeling van een pool met als doel de activiteiten binnen de pool te organiseren of om activiteiten binnen de pool in categorieën in te delen. Het verschil tussen pools en lanes in BPMN is groot. Pools zijn expliciet gedefinieerd, hebben een specifieke betekenis en leggen verschillende
gers maakt BPMN plots een heel stuk complexer. Bovendien kunnen niet alle triggers voorkomen bij alle typen events en mogen niet alle triggers op alle plaatsen in een process voorkomen. We gaan dieper in op het gebruik van de verschillende soorten events in combinatie met de meest voorkomende triggers.
lane
Figuur 3. BPMN swimlanes voorwaarden op aan het gebruik van sequence flows en message flows. Een sequence flow mag bijvoorbeeld nooit de grenzen van een pool overschrijden, en een message flow mag enkel worden gebruikt om activiteiten of events tussen verschillende pools te verbinden. Lanes daarentegen hebben geen andere betekenis dan het groeperen van activiteiten. Ze hebben enkel een decoratieve functie. Een sequence flow mag bijvoorbeeld wel de grenzen van een lane overschrijden, zolang die binnen dezelfde pool blijft. Artifacts Artifacts bieden de ontwerper de flexibiliteit om bijkomende informatie toe te voegen aan het model. Op dit ogenblik beschrijft BPMN drie soorten artifacts (zie figuur 4), maar de ontwerper kan zelf artifacts toevoegen. • Data object. Dataobjecten geven uitleg over de noodzaak om bepaalde data beschikbaar te stellen aan bepaalde activiteiten of geven een aanduiding van de data die door een bepaalde activiteit wordt gecreëerd. Het dataobject bevat een naam en een optionele toestandsaanduiding. • Group. Een group groepeert een aantal activiteiten met als doel de analyse of de documentatie te verduidelijken. • Annotation. Een annotation is een korte additionele tekstuele beschrijving toegevoegd aan een object in het diagram.
Fun met BPMN: events en triggers We gaan hier kort in op enkele geavanceerde onderwerpen van BPMN die enerzijds de complexiteit van BPMN aangeven en anderzijds BPMN onderscheiden van de andere modelleringstalen. In figuur 1 zijn de verschillende soorten events al beschreven. Events zijn het meest complexe onderdeel van BPMN en zijn vaak, in eerste instantie, moeilijk te vatten. Dit wordt veroorzaakt door het feit dat events kunnen worden gecombineerd met triggers. Een trigger geeft aan wat de oorzaak is van een event, zoals message, timer, error en compensation. De combinatie van de drie typen events en de tien verschillende event trig-
Start event Een start event geeft aan wanneer en hoe een process opgestart moet worden. Dit betekent dat telkens wanneer dit event zich voordoet, een nieuwe instantie van het proces wordt aangemaakt. Hoewel een start event in een procesmodel als optioneel wordt beschouwd, is het een best practice om in totaal één start event te hebben per proces, dus één start event per pool. Start events worden ook gebruikt om subprocessen op te starten en ook hier geldt de best practice van één start event per subproces om de leesbaarheid van het procesmodel niet in het gedrang te brengen. Het spreekt voor zich dat een start event geen inkomende sequence flows mag hebben, inkomende message flows zijn wel toegelaten. De meest voorkomende triggers specifiek voor start events zijn none, message, timer, rule en multiple. • None. De none trigger geeft geen specifieke informatie over het start event. De none trigger is ook de enige start trigger die wordt toegelaten om een subproces op te starten. • Message. Bij een message trigger wordt het proces opgestart wanneer een bericht ontvangen wordt. De semantiek van een message event is ruimer dan een gewoon bericht, het beschrijft ook een telefoongesprek, een serviceaanvraag of zelfs een API-oproep. • Timer. De timer trigger wordt gebruikt wanneer het proces op een specifieke datum of tijdstip moet starten. Ook wanneer een proces op regelmatige tijdstippen (bijvoorbeeld elke week) moet starten, wordt een timer trigger gebruikt. • Rule. De rule trigger beschrijft een situatie waarin het proces opstart als de condities van een regel
artifacts Description data object
group
Figuur 4. BPMN artifacts
annotation
informatie / april 2008
pool
lane
35
service-oriented architecture
t
start events & triggers
voldaan zijn. Denk bijvoorbeeld aan het opstarten van een bestelproces wanneer de voorraad van een product onder een bepaalde hoeveelheid duikt. • Multiple. De multiple trigger wordt gebruikt als verschillende triggers het opstarten van het proces kunnen veroorzaken.
End event Een end event geeft aan waar het proces ten einde loopt. Als er verschillende parallelle paden zijn in het proces, zal het proces pas eindigen als alle paden hun end event bereikt hebben. Hieruit volgt eveneens dat een proces meerdere end events mag hebben. Net zoals start events kunnen ook end events verschillende soorten triggers hebben. In dit geval betekent een trigger dat er op het einde van een proces een signaal wordt gegeven, zoals een message of een error. BPMN beschouwt end events als optioneel, maar het spreekt voor zich dat het gebruik van end events een best practice is. End events zijn verplicht als een start event in het proces aanwezig is. Het spreekt voor zich dat een end event geen uitgaande sequence flows mag hebben, message flows worden wel toegelaten. De meest voorkomende triggers specifiek voor de end events zijn none, message, error, cancel, compensation, multiple en terminate. • None. Bij een none trigger wordt er geen trigger gedefinieerd. De none trigger wordt ook gebruikt om subprocessen te beëindigen. • Message. Bij een message trigger wordt op het einde van het proces een message verstuurd naar een partner (een andere pool) in het proces. • Error. De error trigger geeft aan dat er in een subproces een error wordt gegenereerd die moet worden opgevangen door een intermediate error event. • Cancel. De cancel trigger (enkel bruikbaar in een transactie-subproces) is een speciale vorm van een error trigger en geeft weer dat een transactie moet worden beëindigd en wordt opgevangen door een intermediate cancel trigger. • Compensation. De compensation trigger geeft aan dat voor een specifieke activiteit een compensatie moet worden uitgevoerd wanneer een rollback wordt uitgevoerd.
none
timer
message
rule
multiple
Figuur 5. BPMN start events en triggers end events & triggers none
error
message
cancel
multiple compensate
terminate
Figuur 6. BPMN end events en triggers
• Multiple. De multiple trigger wordt gebruikt als er verschillende triggers moeten worden uitgevoerd na het beëindigen van het proces. • Terminate. De terminate trigger is een uitzondering. Wanneer een terminate wordt gebruikt, zal het proces onmiddellijk stoppen, ook als er nog parallelle paden actief zijn.
Intermediate events Het gebruik van start events en end events spreekt voor zich. De meest complexe vorm van events zijn de intermediate events. De betekenis van een intermediate event is afhankelijk van de plaatsing van dit event in het proces. Er zijn twee mogelijkheden: (1) in een sequence flow, en (2) verbonden aan een activiteit (task of sub-process).
informatie / april 2008
»De kracht van BPMN ligt in de events«
36
• Sequence flow. Wanneer een intermediate event in een sequence flow is gemodelleerd, betekent dit dat het proces zal stoppen en wachten tot de specifieke trigger zich voordoet, of het proces zal zelf het event genereren. Figuur 7 kan dan als volgt worden uitgelegd: na het versturen van de brief zal de medewerker 48 uur later de onderneming contacteren. • Verbonden aan een activiteit. Een intermediate event kan ook aan een activiteit worden gekoppeld. Dit betekent dat wanneer het event zich voordoet, het uitvoeren van de activiteit onmiddel-
ordervrewerking
De betekenis van een intermediate event is niet enkel afhankelijk van de plaatsing maar ook van de trigger die wordt gebruikt. Voor intermediate events zijn dit de meest voorkomende triggers: • None. Het gebruik van de none trigger is enkel toegelaten in de sequence flow van een proces. Het gebruik van none triggers bij intermediate events wordt afgeraden. • Message. De message trigger laat het proces wachten tot een message arriveert of zal de sequence flow veranderen wanneer een message aankomt tijdens de uitvoering van een activiteit. • Timer. Een timer trigger kan worden gebruikt als een vertragingselement wanneer deze voorkomt in de sequence flow van het proces. Anders kan hij de sequence flow wijzigen wanneer een bepaalde activiteit te lang duurt. • Error. De error trigger wordt gebruikt voor error handling. Als deze in de sequence flow van het proces aanwezig is, zal een error geworpen worden (throw). Als deze verbonden is aan een activiteit, wordt het opvangen (catch) van een error beschreven. • Cancel. De cancel trigger kan enkel gekoppeld worden aan een transactie-subproces (en dus niet in een normale sequence flow). Dit event wordt opgeroepen indien een cancel end event in het subproces werd bereikt. • Compensation. De compensation trigger wordt gebruikt voor het oproepen en opvangen van compensatieaanvragen. • Rule. De rule trigger wordt gebruikt voor exception handling en wordt geactiveerd wanneer aan specifieke condities voldaan is. • Multiple. De multiple trigger kan worden geactiveerd door verschillende event triggers.
>1000
48 uur
Figuur 7. BPMN intermediate events in sequence flow. Verwerk Dossier
Verwittig Seniormanager
3 uur
Figuur 8. BPMN intermediate events gekoppeld aan een activiteit intermediate events & triggers none
error
message
cancel
multiple compensate
timer
rule
Figuur 9. BPMN Intermediate events en triggers.
Enkele voorbeelden Enkele voorbeelden tonen het verschil aan tussen orkestratie en choreografie. Figuur 10 toont het interne (private) proces van een orderverwerking binnen een onderneming. Aangezien hier enkel gefocust wordt op de interne verwerking en niet op de communicatie met de klant, spreken we in dit geval van orkestratie. Figuur 11 is een voorbeeld van choreografie met een abstract proces (blackbox pool). De focus ligt duidelijk op de communicatieaspecten tussen beide partijen aangezien enkel die activiteiten in het proces aanwezig zijn die noodzakelijk zijn voor de communicatie. Figuur 12 is een voorbeeld van collaboration tussen twee private processen.
Senior-manager verwerkt order
Analyseer Order
Verwittig Onderneming
Verstuur Brief
Verstuur Producten
Produceer Order
Ontvang Order ≤1000
Junior verwerkt order
Figuur 10. Een private bedrijfsproces.
Archiveer Order Verstuur Factuur
Ontvang Betaling
informatie / april 2008
lijk wordt gestaakt en de uitgaande sequence flow van het event wordt gevolgd. Figuur 8 moet dus als volgt worden geïnterpreteerd: als de afhandeling van een dossier meer dan drie uur in beslag neemt, wordt een senior manager op de hoogte gebracht.
37
ordervrewerking
service-oriented architecture
t
BPMN is momenteel de belangrijkste modelleringstaal voor bedrijfsprocessen en gaat op een slimme wijze om met de twee belangrijkste voorwaarden voor succes: de taal moet voor iedereen bruikbaar zijn en er moet in een uitvoerbare variant voorzien worden. De kracht en complexiteit van BPMN zitten vooral in het uitvoerig gebruik van events waardoor men aan de hand van triggers complexe processen in een beperkt model kan vertalen. Enkele beperkingen, zoals het ontbreken van een standaard-XML-opslagformaat, moeten tegen het einde van dit jaar opgelost zijn met de nieuwe standaard BPMN 2.0.
ordervrewerking
Link www.bpmn.org
>1000
klant
Order
Verstuur Factuur
Factuur Producten
Ontvang Betaling
Betaling
Figuur 11. Een abstract bedrijfsproces. Prof. dr. Manu De Backer is als docent verbonden aan de Faculteit Toegepaste Economische Wetenschappen, Universiteit Antwerpen en als postdoctoraal onderzoeker aan de Faculteit Economie en Bedrijfswetenschappen, Katholieke Universiteit Leuven. E-mail:
[email protected].
Senior-manager verwerkt order
Verstuur Producten
Analyseer Order
Produceer Order
Ontvang Order
Order
Archiveer Order
Junior verwerkt order
Verstuur Factuur
Producten
Verstuur Order
Figuur 12. Een collaboration-bedrijfsproces.
informatie / april 2008
Ontvang Order
Prof. dr. Carlos De Backer is hoogleraar aan de Faculteit Toegepaste Economische Wetenschappen, Universiteit Antwerpen. E-mail: carlos.debacker @ua.ac.be.
≤1000
38
klant
Conclusie
Verstuur Producten
Factuur
Controleer Factuur
Ontvang Betaling
Betaling
Betaal Factuur