XA

XA (z anglického  extended architecture [1] , X / Open XA ) je specifikace distribuovaných transakcí , která definuje principy pro společnou účast transakčních zdrojů na transakci v distribuovaném výpočetním prostředí . Poprvé byl popsán v roce 1992 a je de facto implementačním standardem ve správcích distribuovaných transakcí a relačních databázích .

Transakce XA  je distribuovaná transakce prováděná pod kontrolou systému, který odpovídá specifikaci XA.

Historie

Na počátku 90. let existovalo několik různých standardů pro distribuované transakce, například TPF, používaný v americkém civilním letectví a v roce 2010 [2] , CISC, VMS a další. Jeden z nich, IBM's SNA, se do té doby stal de facto standardem. Vlivem tohoto standardu a standardu LU6.2 vytvořila ISO několik nových standardů [3] :

Hlavní nevýhodou těchto standardů byl nedostatek API , takže specifikovaly, jak by měli transakční manažeři interagovat, ale neposkytly pravidla pro psaní přenosných aplikací.

X/Open tento problém vyřešil poskytnutím modelu distribuovaných transakcí a zároveň specifikací procedurálního rozhraní pro interakci účastníků transakce (CLI), specifikace XA.

Model

XA používá model distribuovaných transakcí, který se skládá ze tří komponent:

  1. Aplikační program (AP) – Program, který určuje, ze kterých částí by se měla transakce skládat, které správce zdrojů (RM) použít atd. Ve skutečnosti je zde popsána obchodní logika.
  2. Distributed Transaction Manager (TM) – také známý jako koordinátor, koordinuje práci RM a rozhoduje, zda transakci potvrdit nebo vrátit zpět pomocí dvoufázového potvrzovacího protokolu ( anglicky  Two-phase commit protocol ).
  3. RM jako DBMS se používají k ukládání informací.

Přestože model obsahuje tři komponenty, specifikace XA definuje pouze interakci mezi manažery zdrojů a transakcí.

Specifikace XA rozděluje transakce na lokální a globální. Místní transakce jsou nejjednodušším typem transakcí, ve kterých aplikační program přistupuje pouze k jednomu DBMS a určuje, kdy transakci potvrdit nebo vrátit zpět. To znamená, že v nich je role TM přidělena AP. Globální (distribuované) transakce jsou složitějším případem, kdy rozhodnutí o provedení změn či rollbacku padá na bedra koordinátora, aplikační program určuje pouze hranice transakcí. Transakční manažer rozdělí jednu globální transakci do několika lokálně prováděných větví ( angl.  branch ) a po úspěšném potvrzení na každé z větví potvrdí celou globální transakci a jinak se vrátí zpět.

Specifikace navíc podporuje vnořené transakce , které jsou užitečné například pro protokolování .

XA+

Specifikace XA+ , vydaná v roce 1994, také definuje transakce distribuované napříč aplikacemi. V XA + se objeví další účastník transakce - Communication Resource Manager (CRM), který je zodpovědný za koordinaci mezi několika manažery distribuovaných transakcí, v tomto modelu je zodpovědný za nové větve transakce, které naopak obsahují několik dalších poboček a také pro generování ID transakcí.

Standardy založené na XA

Ačkoli XA specifikuje API pouze pro jazyk C, existují implementace v jiných programovacích jazycích.

Java Transaction API  je implementace XA pro platformu J2EE , poprvé vydaná v roce 1999. V .Net Frameworku se podpora distribuovaných transakcí objevila až ve verzi 2.0, kromě XA implementace distribuovaných transakcí .NET podporuje OLE [4] .

XA a OTS

Specifikace Object Management Group pro Object Transaction Service z roku 1991 zavádí do CORBA transakční schopnost . Vzhledem k tomu, že specifikace nerozděluje účastníky transakce na RM a TM, pouze na klienta a server, je možné používat XA a OTS v jedné klient-server aplikaci. Pokud navíc jeden z RM nepodporuje XA, ale podporuje OTS, pak je tento bundle jediným možným řešením problému distribuovaných transakcí v takovém prostředí.

Kombinace XA a OTS se používá v Java EE, kde obalem nad OTS je Java Transaction Service a Java Transaction API zase odděluje JTS od AP.

Poznámky

  1. Oracle FAQ: Co znamená XA . Získáno 22. 8. 2015. Archivováno z originálu 24. 9. 2015.
  2. Viz Zpracování transakcí: Koncepce a techniky, část 1.5
  3. Viz Zpracování transakcí: Koncepce a techniky, část 2.7.4
  4. INFO: Připojení se nemusí účastnit transakcí MTS/COM+, když používáte přímo OLE DB

Odkazy

Literatura