Is Oracle Workflow overbodig geworden sinds BPEL?
December 2005 - Met de introductie van BPEL lijkt Oracle Workflow (OWF) overbodig te worden. Niet voor niets stopt Oracle de ontwikkeling van een Java versie van Oracle Workflow (OW4J). Zowel met OWF als BPEL kunnen workflows gemodelleerd en deployed worden. BPEL is echter hot omdat deze op webservices gebaseerde tool past in een SOA architectuur. In dit whitebook worden de features van Oracle Workflow 2.6 kort toegelicht. Daarnaast kijken we naar de mogelijkheden om gedistribueerde workflows te modelleren met het nieuwe Business Event System.
Oracle Workflow is al geruime tijd op de markt. Ondanks het feit dat met eenvoudig klikken en slepen al snel een workflowproces gebouwd kan worden, is de standalone tool in Nederland in Nederland onterecht nooit populair geworden. In en rondom Oracle Applications speelt OWF echter wel een belangrijke rol (bijvoorbeeld bij het maken van een inkooporder). In dit whitebook bespreken we de mogelijkheden van de nieuwste OWF2.6 versie aan de hand van de belangrijkste componenten.
Workflow Builder
Met deze grafische C++ tool kunnen activities en events (inclusief bijbehorende foutafhandeling tot een samenhangend bedrijfsproces gesmeed worden. Door gebruik te maken van standaardcomponenten uit de workflow library is vrij snel een complexe workflow op te tuigen. Omdat mensen zich terecht moeilijk in een keurslijf laten drukken is vaak nog flink wat maatwerk nodig om de flow flexibel te maken. Aan elke schakel in het proces kan een pl/sql procedure gehangen worden om de flow te sturen, extra gegevens op te halen, validaties uit te voeren of uitzonderingen te detecteren en af te handelen.

De workflow is modulair op te bouwen, zodat het totale proces in Builder overzichtelijk blijft en ingezoomd kan worden op deelprocessen die in het totaalplaatje als een enkele activiteit worden weergegeven. Stukjes workflow kunnen worden opgeslagen voor hergebruik.
OWF is vooral bedoeld voor asynchrone workflows waarbij de flow onderbroken wordt door time-outs of interactie met de eindgebruiker. Voor ononderbroken synchrone flows is OWF echter ook het overwegen waard omdat je de grafische weergave, flexibiliteit en standaard meegeleverde beheertools er gratis bij krijgt.
De workflow kan eenvoudig gewijzigd worden. Lopende processen worden afgehandeld met de oude versie en zodra een nieuw proces wordt opgestart gebeurt dit op basis van het nieuwe schema. Flows kunnen zowel in de database als in een ASCII file (*.wft) worden opgeslagen. Migratie tussen databases is dus een koud kunstje.
Workflow Engine
De engine is niet meer dan wat pl/sql tabellen en packages op de database server. Het hart van de engine is een package om de uitkomst van een activiteit vast te stellen en vervolgactiviteiten te starten. De status van een actief proces wordt opgeslagen in tabellen. Na afloop verhuist deze informatie naar historie tabellen. De engine kan realtime getriggerd worden door een bepaald event of door tussenkomst van een eindgebruiker. Het is echter gebruikelijker om de workload te spreiden over een of meerdere background engines. Deze background engine is niets anders dan een periodieke job die een tweede package aanroept, wat bepaalt wanneer welke API uit het eerste package gebruikt moet worden. Voor het berichtenverkeer regelt de engine ook de communicatie met de notification mailer. Elke actie van de engine is vanuit PL/SQL te triggeren. In de meeste gevallen kan dit ook via een Java API.
Notification Mailer
Met PL/SQL packages en een Java notification mailer die volledig onafhankelijk van de engine op de applicatieserver draaien kunnen gebruikers zonder toegang tot Oracle Workflow berichten ontvangen en beantwoorden. De berichten zijn te ontvangen als plain text mail of html mail al dan niet met het bericht in een aparte bijlage. De e-mail templates zelf worden in het WF schema van de database opgeslagen. In de templates zijn variabelen opgenomen die runtime gevuld worden. Naast e-mail zijn de berichten te benaderen met een URL in een browser of, wanneer de gebruiker toegang heeft tot Oracle, met een form (bijvoorbeeld in Oracle Applications). Wanneer een gebruiker bijvoorbeeld een inkooporder goedkeurt stuurt de mailer een bericht naar de workflow engine, waarmee de activiteit afgerond is.
Workflow Monitor
De workflow monitor is een verzameling webpagina’s om de workflow te beheren. De status van elk proces met het bijbehorende berichtenverkeer kan hier opgevraagd worden. Met de juiste privileges kan de beheerder ook handmatig ingrijpen of tijdelijke doorstuurregels instellen, wanneer een van de gebruikers op vakantie is.
De meeste webpagina’s zijn inmiddels ook beschikbaar binnen het nieuwe op het Applications Framework gebaseerde user interface (zie onderstaand schermprintjes).


Business Event System
Het business event system (BES) is nieuw in WF2.6. In deze repository worden externe applicaties en communicatie agents geregistreerd. Bedrijfsprocessen kunnen hier als (groepen van) business events geregistreerd worden, waarop externe applicaties zich kunnen abonneren. Deze events kunnen daarna als een event activity in het workflow schema worden opgenomen. Workflow kan dus ingezet worden voor point-to-point messaging, of als berichten- of datahub. Standaard wordt gebruik gemaakt van Oracle Advanced Queuing (AQ) om events tussen verschillende systemen uit te wisselen, maar er kan ook worden aangesloten op andere messaging systemen. Uiteraard kan het ook op AQ gebaseerde InterConnect ook als berichtenengine gebruikt worden. Door het concept van business events kunnen flows applicaties overspannen. De informatie die aan het event gekoppeld is kan dan worden meegestuurd als xml, waarbij onderweg nog transformaties kunnen plaatsvinden en de flow gestuurd kan worden op de inhoud van een XML document.
Integratie met BPEL
Indien de business events als een webservice gepubliceerd worden zijn ze ook op te nemen binnen een BPEL procesflow. Op deze manier kunnen bestaande workflows aan BPEL gekoppeld worden, zonder dat workflows opnieuw gemodelleerd hoeven te worden in BPEL.
Conclusie
Oracle Workflow kan op verschillende manieren ingezet worden. Dit hangt vooral af van de noodzaak de workflow te distribueren over meerdere externe applicaties. Bij een nieuwe implementatie van een gedistribueerde workflow is BPEL de meest logische keuze. Indien een bedrijf echter al een workflow geïmplementeerd heeft of applicaties integreert via InterConnect ligt het gebruik van het BES meer voor de hand. Bestaande workflows zijn ook te integreren met BPEL flows, waarbij wel rekening gehouden moet worden met een nog niet complete set aan Java API’s die soms te weinig informatie retourneren. Indien de workflow beperkt blijft tot de eigen applicatie blinkt een klassieke workflow implementatie uit door eenvoud. In Oracle Applications blijft workflow een centrale rol spelen, die waarschijnlijk pas met de introductie van Oracle Fusion zal verdrongen worden door BPEL.
Literatuur
- Oracle Workflow op OTN
- Getting Started with the Oracle Workflow 2.6 Business Event System
- Workflow API reference
Over de auteur
Paul Theeuwen werkt sinds 9 jaar als software ontwikkelaar met Oracle tools en is gespecialiseerd in het vertalen van bedrijfsprocessen in integratie- en business intelligence en Oracle Apps oplossingen.

Reacties
Nieuwe reactie inzenden