A WS-Atomic Transaction (Webszolgáltatás Atomi Tranzakció) a Webszolgáltatás Tranzakciók (angolul Web Services Transactions) közé tartozik. A Web-Szolgáltatás Tranzakciók specifikációi olyan nagyvállalatok együttműködésével készültek, mint az IBM, a BEA és a Microsoft, valamint további iparági szereplők is részt vettek a fejlesztésben. A szabvány fő célja, hogy interoperábilis, megbízható tranzakciós mechanizmust biztosítson elosztott webszolgáltatások számára.

A Web-Szolgáltatás Tranzakciók jelenleg három fő működési egységre oszthatók: Webszolgáltatás Koordináció (WS-Coordination), Web-Szolgáltatás Atomi Tranzakció (WS-Atomic Transaction) és Webszolgáltatás Üzleti Aktivitás (WS-Business Activity). Ezek a komponensek egymásra épülve teszik lehetővé a különböző összetettségű üzleti folyamatok és tranzakciók kezelését.http://www.ibm.com/developerworks/library/specification/ws-tx/

Bevezetés

A Web-Szolgáltatás Atomi Tranzakció egy OASIS által elfogadott nyílt szabvány, amely rövid élettartamú, mindent vagy semmit (all-or-nothing) alapon működő, több szolgáltatást átfogó tranzakciók megvalósítását teszi lehetővé elosztott rendszerekben. A szabvány célja, hogy biztonságos és konzisztens tranzakciókezelést biztosítson különböző szolgáltatók között is, támogatva a heterogén környezeteket és a platformfüggetlenséget.

A specifikáció három protokollt definiál a működéséhez: végrehajtási (completion) felejtő két fázisú véglegesítési (volatile two-phase commit) tartós két fázisú véglegesítési (durable two-phase commit)

A fejlesztők ezek közül bármelyik protokollt vagy azok kombinációját alkalmazhatják a tranzakció megalkotásához, az adott üzleti igényeknek és az érintett erőforrások tulajdonságainak megfelelően. Ezek a protokollok lehetővé teszik a meglévő tranzakciókezelő rendszerek számára, hogy saját protokolljaikat becsomagolják, így különböző hardver- és szoftvergyártók termékei zökkenőmentesen együtt tudnak működni.

A Web-Szolgáltatás Atomi Tranzakció a Web-Szolgáltatás Koordinációra épül, amely definiálja az Aktivációs (Activation) és a Regisztrációs (Registration) szolgáltatásokat, valamint a CoordinationContext típust, amely a tranzakciók összefüggéseit és a résztvevők közötti információcserét biztosítja.http://docs.oasis-open.org/ws-tx/wstx-wsat-1.2-spec-os.pdfhttp://www.webforefront.com/about/danielrubio/articles/techtarget/transactions.html Az OASIS legfrissebb verziója (1.2) 2009-ben jelent meg, és továbbra is iparági szabványnak számít.

Működése

A WS-Atomic Transaction tranzakciók során három fő szerepkör különíthető el:

A kezdeményező (initiator) az a Web-szolgáltatás, amely elindítja a tranzakció véglegesítését vagy visszavonását, és koordinációs üzeneteket küld a koordinátornak az aktuális állapot alapján

A koordinátor (coordinator) egy központi komponens, amely az egész tranzakciós folyamatot irányítja, összegyűjti a résztvevők visszajelzéseit, és meghozza a végső döntést a tranzakció véglegesítéséről vagy visszavonásáról

A résztvevők (participants) azok a Web-szolgáltatások, amelyek tényleges műveleteket hajtanak végre a tranzakció során, például adatokat módosítanak, erőforrásokat foglalnak le vagy szabadítanak fel

Az Atomi Tranzakciók mindent vagy semmit elven működnek, vagyis a tranzakcióban részt vevő összes művelet vagy sikeresen végrehajtódik és véglegesítésre kerül, vagy minden változtatás visszavonásra kerül, hogy a rendszer konzisztens állapotban maradjon. Amikor egy résztvevő befejezi a feladatát, először csak előkészíti az eredményét (commit attempt), vagyis a módosítások még nem lesznek véglegesítve, és kívülről sem lesznek láthatóak. Amikor minden alkalmazás befejezte a feladatát, a kezdeményező értesíti a koordinátort, hogy értékelje ki a tranzakciót.

A koordinátor ezután lekérdezi az összes résztvevőt, hogy történt-e hiba vagy minden sikeresen lefutott-e. Ha minden résztvevő sikeres futásról számol be, a koordinátor elindítja a véglegesítést, és az összes végrehajtott műveletet tartósítja. Ha bármelyik résztvevő hibát jelez, vagy nem válaszol, a koordinátor minden változtatást visszavon. Ez a folyamat garantálja, hogy a tranzakció eredménye konzisztens és egységes lesz minden érintett rendszerben.

A specifikáció implementálásához és az interoperabilitás biztosításához a következő XML névteret kell használni:

http://docs.oasis-open.org/ws-tx/wsat/2006/06

Definiált protokollok Végrehajtási (Completion) protokoll

A végrehajtási protokoll teszi lehetővé, hogy egy alkalmazás kezdeményezze a tranzakció véglegesítését vagy visszavonását. Miután a kezdeményező regisztrálja magát a végrehajtási protokollra, a koordinátor először a felejtő két fázisú véglegesítési protokollt alkalmazza, majd áttér a tartós két fázisú véglegesítésre, hogy minden erőforrás helyesen kezelje a tranzakció lezárását.

Egy kezdeményező, amely a végrehajtási protokollra regisztrált, a következő protokoll azonosítót kell használja:

A végrehajtási protokoll koordinátora az Atomi Tranzakció legfelső szintű koordinátora lesz.

Azok a koordinációs szolgáltatások, amelyek támogatják az Aktivációs szolgáltatást, egyúttal támogatják a Véglegesítési protokollt is.

A protokoll által használt üzenetek A koordinátor által fogadottak: Commit Az üzenet fogadását követően a koordinátor tudomásul veszi, hogy a kezdeményező befejezte a feladatát, és megkezdheti a tranzakció véglegesítését. Rollback Az üzenet fogadása után a koordinátor felismeri, hogy a kezdeményező nem tudta végrehajtani a feladatát, ezért a tranzakció visszavonását kezdeményezi. A kezdeményező által fogadottak: Committed Az üzenet fogadása után a kezdeményező arról értesül, hogy a koordinátor a tranzakció véglegesítése mellett döntött. Aborted Az üzenet fogadása után a kezdeményező tudomásul veszi, hogy a koordinátor a tranzakció visszavonása mellett döntött.

Két fázisú véglegesítési (Two-Phase Commit) protokoll

A két fázisú véglegesítési protokoll biztosítja, hogy a tranzakció véglegesítéséről vagy visszavonásáról minden résztvevő értesüljön, és konzisztens állapotban maradjon. Két fő változata létezik:

Felejtő két fázisú véglegesítési protokoll (Volatile Two-Phase Commit) Olyan erőforrások kezelésére szolgál, amelyek nem tartósak (például cache vagy memóriában tárolt adatok), és gyors, de nem feltétlenül megbízható tranzakciókezelést biztosít. Tartós két fázisú véglegesítési protokoll (Durable Two-Phase Commit) Olyan erőforrásokra alkalmazható, amelyek tartósan tárolnak adatokat (pl. adatbázis), és garantálják a hosszú távú konzisztenciát még hibák vagy újraindítás esetén is.

Felejtő két fázisú véglegesítési (Volatile Two-Phase Commit) protokoll

A végrehajtási protokoll Commit üzenetének fogadása után a gyökér koordinátor először minden, ehhez a protokollhoz regisztrált résztvevőt felkészít. Minden résztvevőnek válaszolnia kell, mielőtt a tartós két fázisú véglegesítési protokoll résztvevőinek felkészítése megkezdődhet. A tartós protokoll résztvevőinek előkészítése előtt még új résztvevők regisztrálhatnak a felejtő protokollhoz, de utána a koordinátor hibaüzenettel (Cannot Register Participant) elutasítja az új regisztrációkat.

A felejtő címzett nem garantáltan kap visszajelzést a tranzakció végső eredményéről, mivel ezek az erőforrások nem tárolnak tartós információt.

A felejtő két fázisú véglegesítési protokollhoz regisztrált résztvevőknek a következő protokoll azonosítót kell használniuk:

http://docs.oasis-open.org/ws-tx/wsat/2006/06/Volatile2PC

Tartós két fázisú véglegesítési (Durable Two-Phase Commit) protokoll

A felejtő protokoll résztvevőinek sikeres előkészítése után a koordinátor megkezdi a tartós két fázisú véglegesítési protokollhoz regisztrált résztvevők előkészítését. Ezeknek a résztvevőknek Prepared vagy ReadOnly válasszal kell reagálniuk, mielőtt a Commit üzenet elküldése megtörténik, és a tranzakció véglegesen lezárul.

A tartós két fázisú véglegesítési protokollhoz regisztrált résztvevőknek a következő protokoll azonosítót kell használniuk:

http://docs.oasis-open.org/ws-tx/wsat/2006/06/Durable2PC

A két fázisú véglegesítési protokollok által használt üzenetek A résztvevők által fogadottak: Prepare A fogadó résztvevő az első fázisba lép, és döntési üzenetet küld a tranzakció eredményéről. Az aktív résztvevőnek erre az üzenetre Aborted, Prepared vagy ReadOnly üzenettel kell válaszolnia. Ha a résztvevő nem ismeri a tranzakciót, Aborted üzenettel válaszol. Ha már korábban válaszolt, ugyanazt a választ ismétli meg. Rollback A fogadó résztvevő tudja, hogy a tranzakció visszavonásra került. A nem véglegesítő (Committing) résztvevőnek Aborted üzenettel kell válaszolnia, és célszerű törölnie minden tranzakcióval kapcsolatos adatot. Ha a résztvevő nem ismeri a tranzakciót, Aborted üzenettel válaszol. Commit A fogadó résztvevő tudja, hogy véglegesítenie kell a tranzakciót. Ez az üzenet csak az első fázis után küldhető, amennyiben a résztvevő a véglegesítésre szavazott. Ha a résztvevő nem ismeri a tranzakciót, Committed üzenettel válaszol. A koordinátor által fogadottak: Prepared A koordinátor tudja, hogy az adott résztvevő felkészült, és a tranzakció végrehajtására szavazott. ReadOnly A koordinátor tudja, hogy az adott résztvevő a tranzakció végrehajtására szavazott, de elfelejtette a tranzakciót, így a második fázisban már nem vesz részt. Aborted A koordinátor tudja, hogy az adott résztvevő visszavonta és elfelejtette a tranzakciót. Committed A koordinátor tudja, hogy az adott résztvevő véglegesítette és elfelejtette a tranzakciót.

Megjegyzések

Egy résztvevő több protokollhoz is regisztrálva lehet, így rugalmasan alkalmazkodhat a különböző tranzakciós igényekhez és erőforrásokhoz.

A protokoll elemek különböző kiterjesztési pontokat kínálnak, amelyek azonban nem lehetnek ellentétesek a szülő vagy tulajdonos elem szemantikájával. Ha egy fogadó nem ismeri fel a kiterjesztést, ajánlott figyelmen kívül hagynia, hogy a rendszer működése zavartalan maradjon.

Kiemelten ajánlott a szolgáltatások közötti kommunikáció biztonságának biztosítása a WS-Security specifikációban leírt hitelesítési és titkosítási mechanizmusok alkalmazásával, különösen érzékeny vagy üzletileg kritikus tranzakciók esetén.

A WS-Atomic Transaction szabványt napjainkban széles körben alkalmazzák nagyvállalati rendszerekben, elosztott adatbázis-műveletek, pénzügyi és logisztikai folyamatok, valamint felhőalapú szolgáltatások esetén is, ahol a megbízhatóság és a konzisztencia kulcsfontosságú követelmény.

Jegyzetek

Kategória:Webszolgáltatások