OLTP - systemy przetwarzania transakcyjnego

Systemy biezacego przetwarzania transakcyjnego (On-Line Transaction Processing) ,w skrocie - systemy TP, sa technologia umozliwiajaca pokonanie wielu barier konwencjonalnych systemów bazodanowych: wydajnosci, skalowalnosci, dostepnosci i niezawodnosci.

W systemach bazodanowych zrodlem ograniczenia wydajnosci jest architektura, istota której jest skoncentrowanie wszystkich funkcji aplikacji w ramach pojedynczego procesu tworzonego dla kazdego uzytkownika (dotyczy to równiez modelu klient-serwer). W wypadku gdy system mialby obsluzyc setki lub tysiace uzytkowników, musialby na jednej maszynie uruchomic proporcjonalna liczbe procesów. Efektywne dzialanie systemu bazodanowego w takich warunkach jest niemozliwe.

Poniewaz dzisiejsze systemy bazodanowe kiepsko radza sobie z wykorzystaniem wielu maszyn (bez wspomagania ze strony wyspecjalizowanego sprzetu lub oprogramowania, co jest jedna ze slabszych stron tych systemow), proba rozwiazania tego problemu moglaby byc wymiana maszyny na wydajniejsza. Jest to jednak rozwiazanie kosztowne i nie ma gwarancji, ze mozliwosci nowego sprzetu okaza sie wystarczajace na wystarczajaco dlugo. Sa to zatem systemy o ograniczonej skalowalnosci.

Wspolczesne systemy bazodanowe oferuja co prawda niezawodnosc wynikajaca z wlasnosci atomowosci i trwalosci transakcji, ale jest to niezawodnosc bierna. W wypadku awarii system jest zatrzymywany i konieczna jest interwencja administratora. W rzeczywistych systemach produkcyjnych taka sytuacja jest bardzo czesto nie do przyjecia, warunkiem ich akceptowalnosci jest wysoka dostepnosc, czyli praca systemu non-stop.

Glownym zadaniem architektury systemow TP (przetwarzania transakcyjnego) jest wyeliminowanie wyzej wymienionych problemow przy jednoczesnym utrzymaniu srodowiska realizacji transakcji.

Podstawowymi skladnikami tego systemu sa: Presentation Manager (PM), Transaction Manager (TM), Communication Manager (CM), Resource Manager (RM) oraz Aplikacja (App).

Calosc takiej konfiguracji znajduje sie pod kontrola monitora transakcyjnego.

Zadaniem systemow TP nie jest zastapienie istniejacych systemow bazodanowych, lecz wbudowanie ich jako podsystemy w wieksza calosc - architekture, ktorej celem jest niezawodne gromadzenie i udostepnienie informacji. Dzieki temu, aplikacja jest uniezalezniona od konkretnego systemu bazodanowego, staje sie on wymiennym podzespolem.

Systemy TP stosuja wiele technik umozliwiajcych zwiekszenie wydajnosci i skalowalnosci systemu. Do najwazniejszych naleza: optymalizacja wykorzystania zasobow systemowych oraz rozproszenie przetwarzania.

Optymalizacja wykorzystania zasobow polega w systemach TP miedzy innymi na tym, ze zamiast tworzenia oddzielnych procesow dla kazdego uzytkownika, uzywa sie specjalizowanych procesow wielowatkowych, dzialajacych pod kontrola podsytemu PM. Kazdy z tych procesow obsluguje od kilkunastu do klikudziesieciu uzytkownikow (mozna mowic o mechanizmie multipleksowania uzytkownikow). Dzieki temu, liczba niezbednych procesow maleje przynajmniej o jeden rzad wielkosci i mozliwe jest wydajne obslugiwanie tysiecy uzytkownikow. Ponadto, systemy TP redukuja kosztowne czasowo operacje tworzenia nowych procesow poprzez utrzymywanie zestawu gototwych do wykorzystania serwerow operujacych na bazie danych. Mozna wiec powiedziec, ze systemy TP sa swoistym super-systemem operacyjnym regulujacym wykorzystanie wlasnych zasobow, tak aby bylo one optymalne.

Rozproszenie przetwarzania w systemach TP jest mozliwe dzieki scislemu odseparowaniu poszczegolnych funkcji operacyjnych: interfejsu, logiki, dostepu do danych. Dzieki temu mozna rozproszyc te funkcje na dostepne maszyny w sieci komputerowej. Takie rozproszenie jest czesto konieczne ze wzgledow organizacyjnych lub jest sposobem zwiekszenia wydajnosci. Rozproszenie przetwarzania umozliwia rowniez podwyzszenie dostepnosci aplikacji. W przypadku awarii maszyny realizujacej okreslony fragment przetwarzania, uzytkownicy moga bez przerwy koniecznej na usuniecie awarii korzystac z uslug oferowanych na innej maszynie. Stopien maskowania tego typu awarii zalezy od konkretnego systemu.

Systemy TP moga stanowic infrastrukture integrujaca wiele roznorodnych typow RM (np. systemow bazodanowych). O ile okreslony system bazodanowy moze zarzadzac tylko jednym systemem RM (swoja instancja), to systemy TP moga koordynowac prace i zapewniac semantyke transakcyjna (ACID) dla wielu roznych RM, np.roznorodnych baz danych, systemow kolejkowych, itp. Dzieki temu mozliwe jest realizowanie globalnych transakcji operujacych na rozproszonych bazach danych roznych typow.

Systemy TP zapewniaja zintegrowane zarzadzanie caloscia systemu, wlaczajac w to miedzy innymi:

Zarzadzanie realizowane jest tu na innym poziomie niz dzieje sie to w przypadku systemow bazodanowych, gdzie dotyczy ono wylacznie bazy danych. Dla systemow TP jest to zarzadzanie pelna aplikacja z calym bogactwem jej otoczenia, w ktorym zaledwie jedym z elementow jest system bazy danych.

W zwiazku z rozwojem systemow TP pojawila sie potrzeba standaryzacji. Przykladami moga byc: specyfikacja OSI TP, X/Open Transactional RPC (TxRPC), X/Open DTP (Distributed Transaction Processing), STDL - Structured Task Definition Language. Warto zaznaczyc, ze wiele z tych standardow wywodzi sie z produktow firmy DEC (Digital Equipment Corporation).

W sklad specyfikacji X/Open DTP wchodzi XA, czyli interfejs miedzy TM a RM. XA umozliwia TM streowanie praca poszczegolnych RM uczestniczacych w transakcji rozproszonej, zas dla RM udostepnia sposob informowania TM o stanie przetwarzania. Interfejs XA jest wewnetrznym interfejsem RM-TM i nie jest dostepny dla programisty. XA sklada sie z dwoch podzbiorow funkcji. Pierwszy z nich zawiera uslugi udostepniane przez RM dla kierujacego nim TM. Funkcje te posiadaja ogolny format xa_*(). Drugi zestaw to uslugi swiadczone przez TM na rzecz RM, posiadajce format ax_*().

Inna czescia wchodzaca w sklad specyfikacji X/Open DTP jest TX, czyli interfejs miedzy App a TM. TX definiuje API (Application Programming Interface), za pomoca ktorego aplikacja okresla granice transakcji oraz przesyla do TM instrukcje dotyczace jej przebiegu.

Najbardziej znane monitory transakcyjne:

 


Przygotowal Darek Gozdecki(gozdecki@herbata.mimuw.edu.pl) na podstawie materialow autorstwa p. Artura Stefanowicza konsultanta firmy Digital Equipment Polska.