Ugrás a tartalomhoz

Munkafolyamat minta

A Wikipédiából, a szabad enciklopédiából
A lap korábbi változatát látod, amilyen Szalakóta (vitalap | szerkesztései) 2017. december 29., 19:02-kor történt szerkesztése után volt. Ez a változat jelentősen eltérhet az aktuális változattól. (Többszörös példányok: Állapot alapú minták)

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

  1. http://www.workflowpatterns.com
  2. 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.