Munkafolyamat minta
A munkafolyamat minták a számítógép-programozásban programtervezési mintái. A munkafolyamat minták specifikusak a rekurrens problémákra, és munkafolyamat alkalmazások fejlesztésére, illetve szélesebb körben folyamatorientált alkalmazások számára adnak megoldási javaslatot.
Fogalma
A munkafolyamat minták a gazdaságos fejlesztéshez tartoznak. Használatuknak követniük kell a karbantartás stratégiáinak egyszerűsítését, és a modellezés munkájának csökkentését. A munkafolyamat valós időben megy végbe. A vezérlés mechanizmusának a munka szokásos ütemét kell támogatnia. A minták alkalmazásának következménye a munkafolyamat lassulása.
A munkafolyamat mintákat láncokként aggeregálni lehet, és az indulás és a befejezés feltételeit explicit definiálni kell.
A munkafolyamat mintákat különböző környezetben használják, tehát a használati feltételeket explicit definiálni kell, és sorrendben kell bemutatni a félreértések elkerülése érdekében.
Van der Aalst osztályozása
A munkafolyamat mintákat Wil van der Aalst és társai gyűjtötték össze.[1] Cikkük Workflow Patterns címmel 2003-ban jelent meg,[2] habár már 2000-2002-ben is kiadtak néhány mintát. Ez a gyűjtemény a folyamatorientált alkalmazásfejlesztés egyik aspektusára fókuszál, ami a vezérlésfolyamban levő függőségeket írja le, ami a munkafolyamatok között áll fenn. Ezeket a mintákat a következő kategóriákba osztják be:
- Alapvető vezérlési minták
- Fejlettebb elágaztató és szinkronizációs minták
- Szerkezeti minták
- Többszörös példányok
- Állapot alapú minták
- Visszavonási minták
Alapvető vezérlési minták
- Szekvencia: két vagy több aktivitás végrehajtása egymás után
- Párhuzamos hasítás: aktivitások párhuzamos vagy tetszőleges sorrendű végrehajtása
- Szinkronizáció: párhuzamosan futó folyamatokat szinkronizál. A folyamatok bevárják egymást. Barrier szinkronizációként is ismert.
- Kizárólagos választás: több alternatív végrehajtás közül választ egyet a meglevő adatok alapján.
- Egyszerű összefésülés: egy folyamat arra vár, hogy folyamatok egy halmazából egy befejeződjön. Felteszi, hogy a halmazból csak egy folyamat fog lefutni. Ez a minta adódhat kizárólagos vagy késleltetett választásból, amiről majd később írunk.
- Terminálás: adott esemény bekövetkezésekor vagy állapotváltozáskor terminálja a végrehajtást.
Fejlettebb elágaztató és szinkronizációs minták
- Többszörös választás: folyamatok egy halmazából kiválaszt néhányat, amik párhuzamosan futnak le.
- Feltételes választás: állapotfeltétel alapján választ több közül egy végrehajtási utat.
- Szinkronizáló összeolvasztás: több végrehajtási út összeolvasztása és ezek szinkronizálása, ha több van kiválasztva. Ha egy kiválasztott van, akkor egyszerű összeolvasztást csinál.
- Többszörös összeolvasztás: továbbhaladás előtt megvárja, amíg egy halmazból egy folyamat befejeződik. Ha a halmazból több folyamat is fut, akkor mindig tüzel, ha egy befejeződik.
- Diszkriminátor: továbbhaladás előtt megvárja, amíg egy halmazból egy folyamat befejeződik. Csak az első befejeződésekor jelez.
- N az M-ből join: ugyanaz, mint a diszkriminátor, de paraméterként megadható, hány folyamat befejezésére várjon.
Szerkezeti minták
- Tetszőleges választású ciklus: nincsenek szerkezeti korlátozások a folyamatvezérlési modell ciklusának típusaira.
- Implicit terminálás: terminálja egy folyamat egy példányát, ha már nincs semmi ilyen feladata.
Többszörös példányok
- Többszörös példányok szinkronizáció nélkül: létrehozza egy aktivitás több példányát, de nem szinkronizálja őket.
- Többszörös példányok előre ismert tervezés idejű tudással: létrehozza egy aktivitás több példányát és szinkronizálja őket, ha számuk tervezési időben ismert.
- Többszörös példányok előre ismert futás idejű tudással: létrehozza egy aktivitás több példányát és szinkronizálja őket, ha számuk ismert a futási idő egy pillanatában.
Többszörös példányok előre ismert tudás nélkül: létrehozza egy aktivitás több példányát és szinkronizálja őket, ha számuk előre nem ismert, és például egy WHILE ciklusból derül ki.
Állapot alapú minták
- Késleltetett választás: alternatív folyamatok közül választ egyet egy esemény hatására, és nem az adatok alapján.
- Összefésült párhuzamos routolás: több aktivitást valamilyen sorrendben hajt végre. A sorrendet az erőforrások rendelkezésre állása szabhatja meg. Egyszerre csak egy folyamat futhat.
- Mérföldkő: egy aktivitás nem hajtható többé végre a mérföldkő elérése után.
Jegyzetek
- ↑ http://www.workflowpatterns.com
- ↑ Wil van Der Aalst, Arthur H.M. Hofstede, Bartek Kiepuszewski, and Alistair P. Barros (2003). "Workflow Patterns". In: Distributed and Parallel Databases 14 (1): pp. 5--51. doi:10.1023/A:1022883727209.