BPEL of state transitions?
Rick van der LansDoor de komst van de service oriented architecture is de interesse voor business process modellering fors toegenomen. Zeker nu we met talen als BPEL (Business Process Execution Language) deze business processen formeel kunnen uitschrijven en er tools zijn waarmee we ze kunnen verwerken, de zogenaamde BPEL-engines. Maar is BPEL wel voor elke situatie ideaal?
De bouwstenen van BPEL (en ook van BPEL-achtige talen) zijn gebaseerd op de bouwstenen van klassieke, procedurele programmeertalen. We kunnen met BPEL bijvoorbeeld condities en lussen programmeren en we kunnen aan variabelen een waarde toekennen. Het effect is dat een BPEL-proces een serieel karakter heeft. In feite is het een stappenplan. Voer eerst stap één uit, dan stap twee, als de conditie waar is dan stap drie en anders stap vier. Uiteraard kunnen er zaken parallel uitgevoerd worden, maar het blijft een serieel stappenplan.Een stappenplan zal voor vele business processen meer dan geschikt zijn, maar niet voor alle! Wat gebeurt er bijvoorbeeld als ineens van dat seriële stappenplan wordt afgeweken? Wat als er ineens op dit proces wordt ingebroken? Als daar in het BPEL-model niet op geanticipeerd wordt, dan hebben we een probleem.
Er zijn situaties die zo event-driven van aard zijn dat het werken met seriële stappenplannen geen zin heeft. BPEL is dan niet de geschikte taal. Neem bijvoorbeeld het begrip vlucht van een fictieve vliegtuigmaatschappij genaamd HappyAir. Veronderstel dat HappyAir een vlucht inplant voor de komende zomer van Amsterdam naar San Francisco. Eerst zal een vliegtuigmodel, bijvoorbeeld een Boeing 777, aan de vlucht toegekend moeten worden. Dit is het eerste event dat op deze specifieke vlucht uitgevoerd wordt en daarmee de status van die vlucht verandert. Vervolgens kan het zijn dat er enkele piloten worden toegewezen en daarna een crew bestaande uit stewards en stewardessen. Dan worden er door klanten reserveringen voor de stoelen en voor vracht gemaakt. Dit zijn allemaal events die in een willekeurige volgorde aangeleverd worden en door HappyAir uitgevoerd moeten worden. Veronderstel dat om bepaalde redenen besloten wordt een ander vliegtuigmodel in te zetten. Alles verandert hierdoor. Bijvoorbeeld, andere piloten en een andere crew moet gekozen worden en passagiers zullen verplaatst moeten worden.
We kunnen hier wel een BPEL-model voor maken, maar een State Transition Diagram (STD) zal veel eenvoudiger en veel geschikter zijn. Het modelleren van deze event-driven omgeving voor een vlucht zal met een STD passender zijn. De mogelijke events die de status van een vlucht kunnen veranderen, worden dan geïnventariseerd en gedefinieerd. Deze events mogen dan op elk moment afgevuurd worden. Geen seriële, maar een event-driven status-georienteerde definitie.
Uiteraard vereist dit wel dat we engines hebben die in staat zijn deze STD's te verwerken. Laten we ze state transition diagram engines noemen. Dus wat een BPEL-engine is voor BPEL, dat is een STD-engine voor een STD. Sommige leveranciers, zoals IBM, ondersteunen momenteel naast BPEL een STD-engine. Het is wel interessant om te weten dat achter de schermen dit specifieke product van IBM elke STD omzet naar BPEL. Dus deze wordt uiteindelijk wel door de BPEL-engine verwerkt.
Het is niet dat BPEL geen nut heeft. Voor de wat meer seriële situaties is BPEL een prima optie. Maar ik denk dat we realistisch moeten zijn en de beperkingen van BPEL moeten accepteren en het daar moeten inzetten waar het geschikt is: in de niet event-driven omgevingen. In event-driven omgevingen zijn STD's echter aan te bevelen en vormen een verrijking van de service oriented architecture. Hopelijk zullen vele leveranciers van Enterprise Service Bussen deze niet-seriële toepassing aan hun producten toevoegen.
Rick F. van der Lans is onafhankelijk adviseur, een internationaal bekend spreker en auteur van diverse boeken, tevens gespecialiseerd in softwareontwikkeling, datawarehousing en internet.
10-02 Van Vliet: Zonder internet geen welvaart
06-02 De kijk van Van Eijk: Sleutels weg
01-02 Spoelstra spreekt: Het is helemaal geen crisis
27-01 Van Vliet: Geen e-bank, geen bonus!
23-01 De kijk van Van Eijk: Technologie is een risico
18-01 Spoelstra spreekt: Flut hackers
15-01 Van Vliet: Uit het web
02-01 De kijk van Van Eijk: Onvermijdelijke vooruitgang
28-12 Spoelstra spreekt: Het verschil
23-12 Van Vliet: Politie.nl kent geen cybercrime
10-02 Tester Four Oaks in Israëlische handen
10-02 Nieuwe software brengt Vitens in problemen
08-02 Nokia verplaatst smartphoneproductie naar India
08-02 'ICT-afdeling is te traag voor ontwikkeling apps'
06-02 Banometer: Topstart vacaturemarkt krijgt vervolg
06-02 Duitse PMCS.helpLine neemt Leidse MCH+ over
03-02 Siemens PLM Software introduceert Jack 7.1
03-02 Itemis betreedt Nederlandse markt via Warmer IT
01-02 Microsoft-partner Asapnet zet IT-University op
01-02 Kwaliteitscontroleur is nog geen testprofessional
|
|
Gemeenten en ICT besparingen
Sommige gemeenten wijzigen hun autonome ICT omgeving in een samenwerkingsverband met als doel het verlagen van ICT......

