YAWL
YAWL ( Yet Another Workflow Language ) är ett arbetsflödesspråk baserat på arbetsflödesmönster . Det stöds av ett mjukvarusystem som inkluderar en exekveringsmotor, en grafisk redigerare och en arbetslisthanterare. Den är tillgänglig som öppen källkod under LGPL -licensen.
Implementeringar på produktionsnivå av YAWL inkluderar distribution av first:utility och first:telecom i Storbritannien för att automatisera frontend-tjänsteprocesser, och av den australiska film-tv- och radioskolan för att koordinera filminspelningsprocesser. Den har också använts för undervisning på mer än 20 universitet.
Funktioner
- Omfattande stöd för arbetsflödesmönstren.
- Stöd för avancerade resursallokeringspolicyer , inklusive fyraögonprincip och kedjad utförande.
- Stöd för dynamisk anpassning av arbetsflödesmodeller genom begreppet worklets .
- Sofistikerade funktioner för validering av arbetsflödesmodeller (t.ex. detektering av dödläge vid designtillfället).
- XML-baserad modell för datadefinition och manipulation baserad på XML Schema , XPath och XQuery .
- XML-baserade gränssnitt för övervakning och kontroll av arbetsflödesinstanser och för åtkomst av exekveringsloggar.
- XML-baserade plug-in gränssnitt för att ansluta tredjeparts webbtjänster med systemet, inklusive tredjeparts arbetslistor/uppgiftshanterare.
- Automatiserad formulärgenerering från XML-schema.
Historia
Språket och dess stödsystem utvecklades ursprungligen av forskare vid Eindhoven University of Technology och Queensland University of Technology . Därefter har flera organisationer som InterContinental Hotels Group , first:telecom och ATOS Worldline bidragit till initiativet.
De ursprungliga drivrutinerna bakom YAWL skulle definiera ett arbetsflödesspråk som skulle stödja alla (eller de flesta) arbetsflödesmönster och som skulle ha en formell semantik. Efter att ha observerat att Petri-nät var nära att stödja de flesta av arbetsflödesmönstren, beslutade designerna av YAWL att ta Petri-nät som utgångspunkt och att utöka denna formalism med tre huvudkonstruktioner, nämligen or-join, annulleringsuppsättningar och multi-instansaktiviteter . Dessa tre koncept syftar till att stödja fem av arbetsflödesmönstren som inte direkt stöddes i Petri-nät, nämligen synkronisering av sammanfogning , diskriminator , N-out-of-M join , multiple instans utan a priori runtime-kunskap och cancel case .
Dessutom lägger YAWL till några syntaktiska element till Petri-nät för att intuitivt fånga andra arbetsflödesmönster som enkelt val (xor-split), enkel sammanfogning (xor-join) och multipelval (eller-split). Under utformningen av språket visade det sig att några av tilläggen som lades till Petri-nät var svåra eller till och med omöjliga att koda om till vanliga Petri-nät. Som ett resultat definieras den ursprungliga formella semantiken för YAWL som ett märkt övergångssystem och inte i termer av petrinät. Det faktum att YAWL är baserat på formell semantik har möjliggjort implementering av flera tekniker för att analysera YAWL-processer. I synnerhet innehåller YAWL-systemet ett statiskt analysverktyg som kallas WofYAWL.
YAWL vs. BPEL
YAWL ses ibland som ett alternativ till BPEL [ av vem? ] . En stor fördel med BPEL är att det drivs av en standardiseringskommitté som stöds av flera IT-branschens aktörer. Som ett resultat stöds BPEL av ett betydande antal verktyg (både proprietära och öppen källkod) medan YAWL har en enda implementering för närvarande. Flera forskare har också fångat den formella semantiken för delmängder av BPEL i termer av olika formalismer, inklusive Petrinet , processalgebra och finita tillståndsmaskin . Detta har banat väg för utvecklingen av statiska analysverktyg för BPEL som kan konkurrera med de statiska analysmöjligheterna som tillhandahålls av YAWL-systemet.
Å andra sidan har det noterats [ av vem? ] att standard BPEL misslyckas med att stödja mänskliga uppgifter, det vill säga uppgifter som tilldelas mänskliga aktörer och som kräver att dessa aktörer genomför åtgärder, eventuellt involverade en fysisk prestation. Ett antal BPEL-motorer tillhandahåller redan tillägg till BPEL för mänskliga uppgifter, men dessa tillägg är ännu inte standardiserade. Däremot tillhandahåller YAWL ett enhetligt gränssnitt för arbetslisttjänster baserat på webbtjänststandarder . Detta gränssnitt låter utvecklare bygga sin egen arbetslistatjänst för att stödja mänskliga uppgifter enligt deras behov. Dessutom kommer YAWL-systemet med en standardarbetslistatjänst som stöder flera typer av mänsklig uppgiftsfördelning och hantering. En annan fördel med YAWL är dess stöd för arbetsflödesmönster, även om gapet mellan YAWL och BPEL i detta avseende kan minskas av nya konstruktioner som ingår i BPEL version 2.0.
Se även
- Affärsprocessledning
- Cameleon (programmeringsspråk)
- Data flöde
- Petri nät
- Programmeringsspråk
- Visuell programmering