| Workflow gerelateerde standaarden |
4.3 Workflow standaardenOm bedrijfsprocessen te ondersteunen is het niet voldoende om alleen het uitwisselen van boodschappen te ondersteunen met standaarden en protocollen. Bedrijfsprocessen zijn vaak langer-lopende processen waarbij niet met een simpele request-response boodschap kan worden volstaan. Daarnaast zijn er standaarden nodig voor de uitwisseling tussen modelleer-tool en workflow engine, op het gebied van audit-gegevens en alle andere interfaces die beschreven zijn in het referentiemodel van de WfMC.
Figuur 4.2 – relatie workflow en webservice standaarden
Workflow richt zich traditioneel op processen binnen een bedrijf, de inzichten die daarvoor ontwikkeld zijn kunnen echter ook gebruikt worden voor het standaardiseren van web services. Er vindt op dit moment veel onderzoek plaats naar de toepassing van web services ter ondersteuning van lang lopende processen tussen bedrijven. Het gaat dan met name om de choreografie van web services. Hiermee kunnen processen die over de bedrijfsgrenzen heengaan geautomatiseerd worden.
De standaarden kunnen in twee categorieën worden ingedeeld. Allereerst zijn er standaarden die zich richten op de interne procesdefinitie en -uitvoer, daarnaast zijn er standaarden die zich richten op de procesdefinitie en –uitvoer tussen twee bedrijven (B2B). Al deze services moeten samengebracht worden tot betekenisvolle processen. Voor het coördineren van de verschillende processen zijn coördinatie talen ontwikkeld. Op een hoger niveau zijn er ook standaard notaties nodig om managers en modelleurs eenvoudiger met elkaar te kunnen laten praten.
Figuur 4.3 – Functie van verschillende standaarden In figuur 4.3 komt echter niet de proces-uitvoer duidelijk naar voren. Het WfMC heeft een overzicht ontwikkeld waarbij, naast de interne en externe procesdefinitie, ook de interne en externe proces uitvoer is opgenomen.
Figuur 4.4 – relatie workflow standaarden naar defintie en uitvoer
Figuur 4.4 onderscheidt in kolommen de definitie (zowel intern als extern) en de uitvoer (tevens intern en extern). Het diagram kan echter ook van boven naar beneden worden gelezen. Bovenaan staan de standaarden voor de notatie en onderaan staan de specifieke standaarden voor de implementatie.
In de interne proces definitie kolom staan standaarden die gebruikt worden voor het modelleren en ontwerpen. Deze standaarden zijn niet afhankelijk van andere standaarden. Het gebruik van standaarden is vooral gericht op de integratie van verschillende applicaties, bijvoorbeeld de uitvoer van een procesdefinitie naar een uitvoer omgeving. De kolom voor de externe proces definitie is essentieel voor het mogelijk maken van samenwerking. Dit definieert de toegestane operaties binnen een bedrijfsproces. Met name op het gebied van choreografie bestaat er veel overlap tussen de standaarden. Externe proces uitvoer geeft aan welke standaarden nodig zijn ter ondersteuning van samenwerking tussen verschillende processen. Bovenaan staan de standaarden die van toepassing zijn voor ontdekking, met daaronder specifieke standaarden om samenwerking mogelijk te maken. Interne proces uitvoer standaarden bieden raamwerken om de uitvoer mogelijk te maken. 4.3.1 Proces notatieEr bestaan twee algemene modelleer notaties die gebruikt kunnen worden als grafische weergave die eenvoudiger te begrijpen is voor alle betrokkenen.
UML (Unified Modeling Language) is een grafische taal voor het visualiseren, specificeren, maken en documenteren van afgeleiden van software systemen. UML als taal kan op verschillende manieren gebruikt worden om een bepaalde ontwikkelmethode te ondersteunen. UML definieert verschillende domeinen: · Use Case model, voor het omschrijven van de grens tussen systeem en gebruikers. Komt in zeker opzicht overeen met eisen. · Interactie of Communicatie model, beschrijft hoe objecten in het systeem met elkaar samenwerken. · Status/Dynamisch model, waarin door middel van statusdiagrammen de status of condities die klassen kunnen aannemen worden beschreven. Activiteitendiagrammen beschrijven de werkstromen van het systeem · Logisch of Klasse model, beschrijft de klassen en objecten waaruit het systeem bestaat · Componenten model, beschrijft de software (en soms hardware) waaruit het systeem bestaat. · Deployment model, beschrijft de fysieke architectuur en de uitrol van componenten op die hardware. Dumas en Hofstede [13] hebben onderzoek gedaan naar de geschiktheid van activiteitendiagrammen voor het modelleren van workflows. Zij concluderen dat UML enkele sterke en zwakke punten heeft, waarbij ze hopen dat deze zwakke punten zullen worden opgelost in een uitgebreide versie van UML voor workflow definities. In UML 2.0 zijn enkele zwakheden opgelost en is het mogelijk complexe activiteiten te specificeren op basis van de facto standaarden zoals BPEL4WS.
BPMN (Business Process Modeling Notation) is ontwikkeld door het BPMI. De BPMN 1.0 specificatie stamt van mei 2004. Het doel van het ontwikkelen van BPMN was om tot een eenvoudig leesbare notatie te komen die door zowel procesmodelleurs, technici verantwoordelijk voor de implementatie en medewerkers die te maken hebben met het managen van de processen. Hiertoe wordt gebruik gemaakt van een grafische representatie van de bedrijfsprocessen in een zogenaamd Business Process Diagram (BPD). De standaard geeft ook aan hoe deze grafische weergave op uitvoerbare definitietalen zoals BPEL4WS kan worden uitgevoerd, deze mapping is in de huidige versie van BPMN nog niet geheel gerealiseerd.
White [25] vergelijkt BPMN en UML 2.0 activiteiten diagrammen op basis van de ondersteuning voor workflow patronen. Hij concludeert dat beide notaties gebruikt kunnen worden om de meeste patronen te modelleren. UML 2.0 heeft echter geen goede ondersteuning voor het ‘Interleaved Parallel Routing’ patroon. Het feit dat de twee notaties zulke vergelijkbare resultaten geven is een indicatie dat de notaties niet veel verschillen. Deze verschillen vallen te verklaren wanneer gekeken wordt naar de doelgroep. BPMN werd ontwikkeld voor mensen in bedrijven, UML is gestart als standaard voor de ontwikkeling van software. De mogelijkheid bestaat dat beide standaarden in de toekomst naar elkaar zullen groeien. 4.3.2 Interne proces definitieProces definitie talen maken het (in theorie) mogelijk dat modellen die in modelleer tool A gemaakt zijn, in Workflow Management Systeem B gebruikt kunnen worden. In de praktijk blijkt dit helaas tegen te vallen. Er bestaan veel verschillende talen die geheel of gedeeltelijk hetzelfde doen, doordat veel bedrijven vast willen houden aan hun eigen standaard. In dit hoofdstuk zal desondanks een overzicht gegeven worden van de belangrijkste standaarden.
XPDL (XML Process Definition Language) is ontwikkeld door de WfMC als een gemeenschappelijk formaat voor de uitwisseling tussen modelleer-tools en workflow run-time systemen. De XPDL standaard spreekt over “workflow definitions”, een duidelijke verwijzing naar de afkomst. Aangezien de verschillende modelleer-tools veel verschillen qua ondersteunde operaties, is het lastig om een gezamelijke basis te ontdekken. XPDL definieert een minimum-verzameling van constructies waaraan voldaan moet worden. Een interessante vraag is of XPDL gebruikt kan worden om bedrijfsprocessen te modelleren. Volgens ebpml.org is dit niet het geval, omdat XPDL alleen gefocussed is op traditionele Workflow systemen. Zo ontbreekt de semantiek voor samenwerking, partners, transacties, uitzonderingen en andere bouwstenen voor bedrijfsprocessen. Dit wordt ten dele opgelost door XPDL 2.0, maar die is op dit moment nog in ontwikkeling.
BPML (Business Process Modeling Language) is een meta-taal voor het modelleren van bedrijfsprocessen. De standaard is ontwikkeld door de non-profit organisatie BPMI en bereikte versie 1.0 in 2002. BPMI heeft zich tot doel gesteld om het gebruik en de ontwikkeling van BPML te promoten. Het claimt een superset te zijn van XLang (Microsoft) en WSFL (IBM). Dit wordt in twijfel getrokken door ebpml.org [14]. WSFL is namelijk een dusdanig verschillende aanpak, dat het niet triviaal is om WSFL om te zetten in BPML. Om een e-Business proces mogelijk te maken tussen twee bedrijven, zijn drie onderdelen nodig: een publieke interface en twee implementaties (elk bedrijf heeft zijn eigen interne implementatie). Voor de publieke interface bestaan protocollen zoals ebXML, RosettaNet en BizTalk. BPML is een taal waarin de eigen implementatie kan worden vastgelegd. Deze taal moet vervolgens worden uitgevoerd op een platform dat BPML ondersteunt. BPMI heeft hiervoor BPQL ontwikkeld. BPML heeft echter aan belang ingeboet met de komst van BPEL4WS. Deze laatste standaard krijgt op dit moment de meeste aandacht van de industrie.
BPEL4WS (Business Process Execution Language for Web Services) is door BEA, IBM en Microsoft ontwikkeld om IBMs WSFL en Microsofts XLang te vervangen en wordt ook wel aangeduid met WS-BPEL, BPELWS of BPEL. BPEL4WS is gebaseerd op XML Schema, SOAP en WSDL. Door gebruik te maken van deze standaarden wordt een open systeem gemaakt dat geschikt is voor toepassingen op Internet. BPEL4WS is aanvankelijk ontwikkeld als orchestratie taal, de reikwijdte is echter uitgebreid met nieuwere versies. Het kan gezien worden als een uitvoer taal of als een formaat ter uitwisseling.
Shapiro [23] biedt een gedetailleerde vergelijking van XPDL, BPML en BPEL4WS. Zowel BPML als BPEL4W richten zich op het definiëren van webservices, terwijl XPDL gericht is op de distributie van werk. In vergelijking met BPML heeft BPEL4WS een betere expressiviteit en is het completer volgens Dubray [12]. BPEL4WS en BPML bieden geen ondersteuning voor de bron-dimensie. Dit beperkt de modellen tot situaties waarin alleen volledig geautomatiseerde processen voorkomen, waarin elke activiteit gerealiseerd wordt door software of waar de service die de activiteit implementeert zelf met gebruikers kan omgaan. BPEL4WS kan wel externe service aanbieders modelleren, maar de organisatiestructuur is geen onderdeel van de specificaties. Dit duidt erop dat de talen meer gericht zijn op systeemintegratie dan op workflow. Wanneer dit wordt toegepast op workflows, betekent dit dat de audit-gegevens geen onderscheid kunnen maken tussen technische en menselijke hulpbronnen. 4.3.3 Externe proces definitieDeze standaarden richten zich met name op de procesdefinitie tussen twee partners in een proces.
WSCL (Web Services Conversation Language) De WSCL specificatie geeft een definitie voor gesprekken tussen twee partijen via webservices. WSCL is ontwikkeld door Hewlett-Packard, maar is in 2002 bij het W3C ingediend om als standaard te worden opgenomen. De nadruk ligt op het modelleren van de volgorde van interacties van een interface. Om een gesprek mogelijk te maken, moet niet alleen besloten worden welke informatie uitgewisseld wordt, maar ook het protocol dat gebruikt wordt en de locatie van de service. WSCL definieert de XML documenten die uitgewisseld worden, en de toegestane volgorde waarin deze documenten uitgewisseld worden. WSCL gesprekken kunnen in XML Schema worden vastgelegd. Dit is echter niet voldoende om een gesprek op bedrijfsniveau te definiëren. Met de specificatie kunnen alleen abstracte interfaces gedefinieerd worden. Hoe deze geinstantieerd moeten worden laat de standaard open, hoewel er wel een voorbeeld wordt gegeven waarbij WSCL gecombineerd wordt met WSDL.
WSCI (Web Service Choreography Interface) is een op XML gebaseerde taal die de gebruikt wordt om de stroom berichten tussen webservices te beschrijven. Deze standaard is door Sun, BEA, SAP en Intalio ontwikkeld. WSCI beschrijft alleen de interface van de webservice, het gedrag dat de buitenwereld dus ziet. De standaard beschrijft niet het onderliggende proces van het uitwisselen van berichten, of de definitie van het interne gedrag van de webservice. WSCI beschrijft de interactie tussen WSDL operaties. Elke WSCI activiteit is een WSDL operatie. WSCI ondersteunt eenvoudige activiteiten. Met kan een eenvoudige request/response boodschap gedefinieerd worden. Met kunnen externe services worden aangeroepen. Ook gestructureerde activiteiten zoals sequentiële, parallelle en conditionele iteratie worden ondersteund. Daarnaast biedt WSCI ondersteuning voor bedrijfstransacties en foutafhandeling. Zo worden alle transacties bijvoorbeeld ongedaan gemaakt wanneer een fout optreedt. In vergelijking met WSCL biedt WSCI meer functionaliteit. WSCI wordt gebruikt in combinatie met BPML. De buitenwereld ziet dus wat beschreven wordt met WSCI, hiertoe wordt veel van de BPML taal hergebruikt. WSCI wordt opgevolgd door WS-CDL (S-Choreogaphy Definition Language). Deze specificatie is nog in ontwikkeling en de planning is dat begin 2005 een uiteindelijke versie gereed is.[1]
BPSS (Business Process Specification Schema) is door ebXML ontwikkeld. Gesticht door OASIS en UN/CEFACT, is ebXML (Electronic Business using eXtensible Markup Language) een modulaire verzameling van specificaties met als doel bedrijven handel te laten drijven over Internet. BPSS is een algemeen raamwerk voor samenwerking tussen bedrijfsprocessen. Dit kan tussen twee partijen onderling of tussen verschillende partijen zijn. De BPSS 1.01 standaard is goedgekeurd in mei 2001. Deze versie behandelt alleen de samenwerking tussen twee partijen onderling. Hiertoe wordt gebruik gemaakt van UML activiteiten diagrammen om de control flow van transacties te definiëren. Er is geen expliciete ondersteuning voor de uitwisseling van data tussen transacties. Het doel van BPSS is om een brug te vormen tussen e-business proces modelleren en de specificatie van e-business software componenten.
Wf-XML (Workflow-XML) is door de WfMC ontwikkeld en in 1999 is een eerste versie van de Wf-XML specificatie vrijgegeven. Systemen op basis van deze specificatie doen veel meer dan alleen het routeren van documenten. De standaard maakt gebruik van SOAP om automatisering van het volledige proces mogelijk te maken. Door gebruik te maken van deze standaard kunnen partners in een keten hun processen aan elkaar knopen tot één groot geautomatiseerd proces. De doelstellingen van Wf-XML zijn om verschillende modellen van samenwerking te ondersteunen, zowel synchroon als asynchroon. Tevens ondersteuning voor zowel individuele als groepen operaties waarbij het onafhankelijk blijft van de implementatie. Wf-XML wordt gebruikt als workflow compositie taal voor XPDL, maar de messages waarmee gecommuniceerd wordt, verschillen van BPML en BPEL4WS.
BPEL4WS doet naast standaard voor interne proces definitie ook dienst als compositie taal. Door middel van Business protocols worden processen omschreven die voor alle partijen in een proces zichtbaar zijn, zonder het interne gedrag te tonen. Met BPEL4WS kunnen bedrijfsprocessen die over een netwerk lopen formeel beschreven worden. Deze standaard gaat niet over het beschikbaar maken van services, maar over het koppelen van al de verschillende services om tot een samenhangend proces te komen.
BML (Business Modelling Language) is een proces modelleer taal dat in een proces diagram de status van een proces vastlegt en wat verwerkt wordt gedurende de overgangen tussen statussen. Tijdens transities kunnen berichten worden uitgewisseld. Voor elk proces diagram is er een aantal instanties die bij het uitvoeren worden gemaakt. Deze proces instanties worden onafhankelijk van elkaar uitgevoerd, maar kunnen met elkaar communiceren door middel van het uitwisselen van berichten. Elk proces heeft een wachtrij voor inkomende berichten. Transities beginnen wanneer een bericht wordt verwerkt of wanneer een timer verloopt. 4.3.4 Externe proces uitvoerCPA/CPP (Collaboration Protocol Agreement / Collaboration Protocol Profile). Om informatie uit te wisselen tussen twee partijen, moeten de partijen weten hoe ze zullen samenwerken, welke technieken ze gebruiken en hoe berichten worden verzonden en ontvangen. Een CPA en CPP samen vormt een overeenkomst die twee partijen aangaan. Het CPA beschrijft waartoe twee partijen in staat moeten zijn om elektronisch zaken te doen. Het doel van een CPA is om de interne werking te verbergen en de externe partij een specificatie op een hoger niveau te bieden die eenvoudiger door mensen begrepen kan worden. Het CPP beschrijft de grenzen waarbinnen de partijen elektronisch zaken kunnen doen. Een bedrijf kan zichzelf, of onderdelen, beschrijven in een CPP. Hiermee kunnen anderen vervolgens geschikte partners vinden.
RosettaNet PIP (Partner Interface Processes) is een XML specificatie waarin bedrijfsprocessen tussen handelspartners zijn gedefinieerd. Het definieert niet alleen wat een valide document is, maar ook het bedrijfsproces dat bij de uitwisseling van de documenten hoort. RosettaNet’s PIPs zijn opgedeeld in zeven groepen van kernprocessen. Een voorbeeld is bijvoorbeeld het PIP 2B (Product Change Notification). Dit definieert de XML structuur van een “notification”-document, de stappen om te communiceren over dat document met partners en hoe de partners kunnen reageren. Interne proces uitvoerWfMC IF5 (Workflow Management Coalition Interface5 = Audit Data Specification) geeft aan welke informatie verzameld moet worden tijdens het verloop van een workflow proces. Deze informatie wordt dan toegankelijk gemaakt voor analyse en wordt Common Workflow Audit Data (CWAD) genoemd. Tijdens het initialiseren en uitvoeren van een proces instantie, vinden meerdere interessante gebeurtenissen plaats. Door deze informatie gestandaardiseerd vast te leggen, is het eenvoudiger mogelijk voor bedrijven om na te gaan wat gebeurd is in een bedrijfsproces. Deze informatie kan voor analyse en statusinformatie gebruikt worden.
BPQL (Business Process Query Language) is een interface naar zowel een Workflow systeem als een proces-opslag. Voor Workflow systemen betekent dit dat analyses gemaakt kunnen worden door de status op te vragen van processen. Deze Interface is gebaseerd op SOAP. Voor de proces-opslag betekent deze standaard een beter beheer van de procesmodellen in de opslag. Hierbij wordt gebruik gemaakt van WebDAV. Wanneer van BPQL gebruik gemaakt wordt, kunnen de procesmodellen in de opslag ontsloten worden door gebruik te maken van UDDI voor procesregistratie, adverteren en ontdekken.
WfMC WAPI (WfMC workflow application programming interface) is een specificatie van een standaard interface voor WFMS. Hierdoor kunnen functies van WFMS op een consistente manier worden benaderd door andere applicaties. Wanneer twee WFMS bijvoorbeeld WfMC WAPI ondersteunen, kan volstaan worden met één grafische interface. De functionaliteit kan onderverdeeld worden in WAPI Connectie, Workflow Definitie, Proces Controle, Activiteit Controle, Proces Status, Activiteit Status, Werklijst en Administratie functies. Er bestaat een referentie implementatie in C en de huidige specificatie is stabiel. Er zijn enkele producten die de WAPI hebben geimplementeerd, maar de meeste producten vertrouwen op leverancier specifieke APIs die beter afgestemd zijn op de infrastructuur en meer functionaliteit bieden. 4.4 Vergelijking van standaardenNiet alle standaarden zijn hier genoemd, maar het moge duidelijk zijn dat de grote hoeveelheid aan, deels overlappende, standaarden zeer verwarrend werkt. Er zijn twee verschillende zienswijzen die fundamenteel verschillen: uitvoerbare bedrijfsprocessen of plaats gebaseerde workflow management systemen. Plaats gebaseerde WFMS’en zijn gebaseerd op plaatsen en activiteiten. De workflow engine berekent de overgang van de ene plaats naar de andere. Uitvoerbare bedrijfsprocessen zoals BPEL4WS zijn gebaseerd op de definitie van reacties op inkomende berichten. Een verzameling van die reacties wordt dan gezien als een bedrijfsproces. In dit opzicht kan BPEL4WS gezien worden als aanvullend, omdat het reageren op inkomende berichten uitgevoerd kan worden als transitie tussen twee plaatsen. Uitvoerbare bedrijfsprocessen hebben als probleem dat aan de hand van het bericht besloten moet worden tot welk proces het bericht behoort. In een WFMS worden gewoonlijk unieke identificaties gemaakt voor elke proces instantie. Deze id’s kunnen vervolgens gebruikt worden bij aanroepen naar de engine. Tenslotte is een groot verschil dat WFMS een centraal API hebben, terwijl uitvoerbare bedrijfsprocessen veel meer gedistribueerd zijn doordat elk proces als een service wordt aangeboden.
4.4.1 Overzicht Proces Modelleer talenMichael zur Muehlen [20] geeft een overzicht van standaarden voor proces modelleren. Het is opvallend dat bijna alle proces standaarden zich richten op een tekstuele weergave van de workflow modellen.
Tabel 4.1 – overzicht standaarden proces modelleren
Alleen XPDL en UML zijn gericht op Workflows, de andere standaarden zijn bedoeld voor gebruik met uitvoerbare bedrijfsprocessen (BPML), of webservices (BPEL4WS, WSCI, WSCL en BPSS). 4.4.2 Expressiviteit talenOm te onderzoeken of de verschillende definitie talen geschikt zijn voor het modelleren van workflow processen, zijn deze talen vergeleken op ondersteuning voor de eerder genoemde Workflow en Communicatie Patronen.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
