BPEL

A Wikipédiából, a szabad enciklopédiából

BPEL azaz Business Process Execution Language, azaz üzleti folyamatok (modellezésének) végrehajt(hat)ó nyelve. XML alapú folyamatleíró nyílt szabvány az OASIS gondozásában. Elsősorban üzleti folyamatok leírására használatos, de egységessége és elterjedtsége miatt sokszor alkalmazzák általános folyamat-integrációs, vagy munkafolyamatok (workflow) leírását igénylő feladatokban is.

Maga a nyelv egy egyszerűbb programozási nyelv utasításkészletével rendelkezik, mely kiszolgálja a fent említett célokat: Változó kezelés, adatműveletek, külső folyamat és szolgáltatás hívások. Bár a nyelv végrehajtható, utasítás-készletének hiányosságai miatt önmagában nem alkalmas semmilyen konkrét feladat elvégzésére sem. Minden egyes BPEL aktivitás egy külső, kiegészítő nyelven elkészített parancs meghívásával jár. A kiegészítő nyelv leggyakrabban Java (programozási nyelv), de lehet más, magas szintű szkript-nyelv is.

BPEL-ben az XML központi szerepet játszik. XML maga a program- és modellezési nyelv, amely a folyamatokat írja le, XML-ben jelennek meg a benne lévő változók, melyeket XSL-lel is transzformálhatunk, XML a kommunikáció nyelve a folyamat és a szolgáltatások vagy más folyamatok között.

A BPEL nyelvet a Microsoft és az IBM definiálta és fejlesztette ki, a korábbi BPML (Business Process Modeling Language - Üzleti folyamatokat modellező nyelv) alapján.

Célok és tervezési szempontok[szerkesztés | forrásszöveg szerkesztése]

A BPEL elsősorban folyamatok magas-szintű állapot-átmeneteinek modellezésével foglalkozik. A nyelv az állapot-átmeneteket egy abstract process-re (absztrakt folyamatra) vonatkoztatva értelmezi. Az absztrakt folyamat azt írja le, hogy mikor van szükség üzenetek küldésére és fogadására, mi történjen (magas szinten), ha egy tranzakció nem sikerül, stb. A konkrét akciók v. aktivitások kódolása más, imperatív programnyelven történik, amelynek blokkjait a BPEL folyamat meg tudja hívni. A BPEL egyik alapvető tervezési szempontja az, hogy a magas szintű és alacsony szintű programozás (folyamat-leírás) más-más, az adott feladathoz jobban illeszkedő nyelven történjen.

A nyelv tervezésekor 10 alapvető célt tűztek ki:

  1. A modellezett (üzleti) folyamatok webszolgáltatásokon keresztül kommunikálnak a külvilággal. A web szolgáltatások WSDL 1.1 nyelven adottak, és a modellezett folyamatok is elérhetők WSDL 1.1 szolgáltatásokként. A kommunikáció olyan értelemben "absztrakt", hogy a hivatkozásokat nem konkrét port-okra, hanem portType-okra (port-típusokra) kell megadni.
  2. A folyamat-modellek reprezentációs nyelve a (szöveges) XML. A szabvány nem ad meg semmilyen konkrét grafikus megjelenítési formátumot, sem szabványos folyamat-tervezési módszertant.
  3. A nyelv definiál egy leképezést, amely segítségével a BPEL folyamatok webszolgáltatásokra képezhetők le, mind belsőleg (a futtatórendszerben), mind külsőleg (a külvilág számára megfigyelhető absztrakt állapotváltozókra). Egy BPEL folyamat egy önálló, autonóm egységet alkot, amely webszolgáltatásokon keresztül együtt képes működni hasonló társ-folyamataival (v. a külvilággal). A két felhasználási mód (belső, futtatórendszerbeli ill. külső, absztrakt nézet) megvalósításához eltérő kiterjesztések bevezetését lehetőleg kerülni kell. Amennyiben ezekre mégis szükség van, a leggondosabban kell tesztelni, hogy a folyamatok "külső" és "belső" viselkedése ne térjen el egymástól.
  4. A nyelv biztosít mind hierarchia- mind gráf alapú vezérlési struktúrákat, illetve gondoskodik arról, hogy ezeket - lehetőség szerint - tetszőlegesen lehessen együtt használni.
  5. A nyelv biztosítja azokat az egyszerű adat- (változó)-módosító funkciókat, amelyek az adat- és vezérlés-folyamatok definiálásához elengedhetetlenül szükségesek.
  6. A BPEL biztosítja a folyamatok példányosításának és a példányok egyedi azonosításának lehetőségét. Az azonosítókat a futtató rendszer használja az üzenetcsere során. A külső társrendszerek is definiálhatják a rájuk vonatkozó azonosítókat, és meg kell teremteni ezek változtatásának lehetőségét.
  7. A nyelv az alapvető életciklus (lifecycle)-műveleteket biztosítja (folyamat létrehozása és terminálása). További életciklus-műveletek (például felfüggesztés, továbbindítás) a nyelv későbbi verzióiban kerülnek majd definiálásra.
  8. Törekedni kell egy hosszú életciklusú tranzakciós modell megvalósítására, amely jól bevált megoldásokon alapul, például kompenzációs műveletek ill. az érvényességi kör behatárolása (scoping) a hibaesemények kezelésére. Az egyes folyamatok érvényességi (futás-) ideje akár nagyon hosszú is lehet, tehát az állapot-változók csupán memóriában tartása nem megfelelő.
  9. A folyamat-modellek (de)kompozíciója webszolgáltatás-alapon történik, az elemi folyamatok ill. azok kompozíciói webszolgáltatásokat valósítanak meg.
  10. Amennyire lehetéges, a BPEL (meglévő és tervezett) webszolgáltatás-szabványokra támaszkodik. A szolgáltatások megvalósításánál törekedni kell a modularitásra és a kompozíció lehetőségének biztosítására (magasabb szintű folyamatok építése meglévő BPEL rész-folyamatokból).

További információk[szerkesztés | forrásszöveg szerkesztése]