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.
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:
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. Az OASIS legfrissebb verziója (1.2) 2009-ben jelent meg, és továbbra is iparági szabványnak számít.
A WS-Atomic Transaction tranzakciók során három fő szerepkör különíthető el:
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:
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 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:
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[halott link]
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[halott link]
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.