„Munkafolyamat minta” változatai közötti eltérés
[ellenőrzött változat] | [ellenőrzött változat] |
→Állapot alapú minták: Visszavonási minták |
→Visszavonási minták: Alternatív osztályozás |
||
52. sor: | 52. sor: | ||
Több bővítést javasoltak a fenti mintához. Többek között a minták megalkotói javasolták még a munkafolyamat adatmintákat, munkafolyamat erőforrásmintákat, munkafolyamat kivételkezelési mintákat és szolgáltatásintegrációs mintákat. |
Több bővítést javasoltak a fenti mintához. Többek között a minták megalkotói javasolták még a munkafolyamat adatmintákat, munkafolyamat erőforrásmintákat, munkafolyamat kivételkezelési mintákat és szolgáltatásintegrációs mintákat. |
||
==Alternatív osztályozás== |
|||
Egy alternatív osztályozás a következő: |
|||
*Független/készletező: a folyamatok egymástól függetlenek, egyiknek sincs szüksége másoktól származó adatokra. Például, ha több pénztár van, akkor a pénztárosoknak nem kell egymásra várniuk. |
|||
*Szekvenciális: a folyamatok sorba rendezhetők úgy, hogy mindegyik egy (vagy) előző befejezésére vár. Ekkor a korábbi komponens meghatározza a későbbi komponens előrehaladását. Erre példa a gyártási sor. |
|||
*Összefüggő/hálózati: a folyamatok között bonyolultabb összefüggések vannak, nem rendezhetők sorba függőségeik alapján. Ere példa egy projekt csapat, ahol az egyik tagnak várnia kell arra, hogy többen elvégezzenek egy feladatot, majd mások várnak arra, hogy ő végezzen el néhány feladatot. |
|||
==Jegyzetek== |
==Jegyzetek== |
A lap 2017. december 29., 19:27-kori változata
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ó aktivitásokat szinkronizál. Az aktivitások 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 aktivitások egy halmazából egy befejeződjön. Felteszi, hogy a halmazból csak egy aktivitás 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 aktivitás befejeződik. Ha a halmazból több aktivitás 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 aktivitás 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 aktivitás 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.
Visszavonási minták
- Aktivitás visszavonása: megállítja egy engedélyezett aktivitás végrehajtását.
- Case visszavonása: megállítja egy folyamat végrehajtását.
- Várakozás visszavonása: futtatható, de várakozó folyamat tovább futtatása.
A fenti minták használhatók arra, hogy kereskedelmi termékek funkcionalitását értékeljék ki, ami támogatja folyamatorientált alkalmazások fejlesztését. Használták különböző szabványok értékelésére, mint például BPEL, BPMN, UML aktivitási diagram és XPDL. Megjegyezték, hogy nem mindegyik minta releváns minden alkalmazási tartományban, így figyelni kell, hogy melyik mintához melyik környezetet és nyelvet választjuk.
Ezeket a mintákat használták kezdeti követelményként a YAWL (Yet Another Workflow Language) nyílt forrású munkafolyamat nyelv megtervezéséhez.
Több bővítést javasoltak a fenti mintához. Többek között a minták megalkotói javasolták még a munkafolyamat adatmintákat, munkafolyamat erőforrásmintákat, munkafolyamat kivételkezelési mintákat és szolgáltatásintegrációs mintákat.
Alternatív osztályozás
Egy alternatív osztályozás a következő:
- Független/készletező: a folyamatok egymástól függetlenek, egyiknek sincs szüksége másoktól származó adatokra. Például, ha több pénztár van, akkor a pénztárosoknak nem kell egymásra várniuk.
- Szekvenciális: a folyamatok sorba rendezhetők úgy, hogy mindegyik egy (vagy) előző befejezésére vár. Ekkor a korábbi komponens meghatározza a későbbi komponens előrehaladását. Erre példa a gyártási sor.
- Összefüggő/hálózati: a folyamatok között bonyolultabb összefüggések vannak, nem rendezhetők sorba függőségeik alapján. Ere példa egy projekt csapat, ahol az egyik tagnak várnia kell arra, hogy többen elvégezzenek egy feladatot, majd mások várnak arra, hogy ő végezzen el néhány feladatot.
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.