Obiektowy monitor transakcyjny

Rozproszone obiekty to przyszłość aplikacji klient/serwer w przedsiębiorstwie. Microsoft oferuje Microsoft Transaction Server dla środowiska Windows.

Rozproszone obiekty to przyszłość aplikacji klient/serwer w przedsiębiorstwie. Microsoft oferuje Microsoft Transaction Server dla środowiska Windows.

Złożone wielowarstwowe aplikacje klient/serwer stają coraz popularniejsze w miarę komplikowania się potrzeb informatycznych przedsiębiorstwa. Im większa i bardziej złożona aplikacja, tym trudniej zrealizować ją metodami tradycyjnymi jako samodzielny zintegrowany produkt, zawierający w kawałku kodu całą złożoność przetwarzania. Coraz częściej okazuje się, że jedynie realizacja obiektowa może zapewnić wykonanie dużego projektu.

W niejednorodnym środowisku przetwarzania, złożonym z unixowych serwerów baz danych, novellowskich serwerów plików, serwerów aplikacji działających pod Windows NT i stacji klienta, opartych na Windows 3.x i Windows 95, trudno zapewnić efektywną i prostą infrastrukturę komunikacji różnych obiektów aplikacji. Jeżeli dochodzi do tego jeszcze mainframe, sytuacja bardziej komplikuje się.

Wybór narzędzi i systemów do opracowania, zarządzania i uruchamiania trój- lub wielowarstwowych aplikacji klient/serwer jest szczególnie trudny i w zasadzie sprowadza się do wyboru właściwej platformy pośredniej warstwy oprogramowania (middleware). Wybranie platformy middleware (a jest to już na tyle rozwinięta technologia, że możemy mówić o platformie, nie zaś o pojedynczych produktach) ma większe znaczenie niż wybór systemu operacyjnego serwera aplikacji (Unix lub Windows NT), na którym ma ona działać.

Problem nie jest nowy i wiele firm, konsorcjów i organizacji próbowało go rozwiązać. Na świecie dominują obecnie dwie technologie rozwiązujące problemy komunikacji obiektowej. Pierwsza jest oparta na standardach opracowanych przez Object Management Group w postaci architektury Common Object Broker Architecture (CORBA). Druga to technologia Microsoftu wykorzystywana w jednolitym środowisku Windows, dostępna w postaci zestawu programów BackOffice. Jednym z elementów tego pakietu jest obiektowy monitor transakcyjny Microsoft Transaction Server (MTS).

Microsoft Transaction Server (MTS)

MTS to moduł wykonawczy (run-time) do aktywacji, uruchamiania i obsługi pakietów obiektów COM w rozproszonym środowisku sieciowym COM/DCOM. Zapewnia automatyczne zarządzanie transakcjami, efektywną obsługę ograniczonej liczby połączeń do bazy danych, izolację procesów w serwerze aplikacji, automatyczną obsługę wątków, obsługę instancji obiektów, bezpieczeństwo działania aplikacji i inne. Wszystkie usługi te mają na celu zapewnienie właściwej skalowalności działania komponentów na serwerze i efektywną współpracę z dużą liczbą klientów. MTS zapewnia wszystkie te usługi automatycznie, bez konieczności pisania specjalnego kodu, programista może więc opracowywać obiekty dla serwera z myślą o jednym użytkowniku, a MTS zapewni ich skalowanie na wielu klientów.

W aplikacji obsługującej wielu klientów nie jest możliwa komfortowa sytuacja obsługi jednego klienta, gdy nie trzeba zajmować się bezpieczeństwem, współdzieleniem dostępu do wielu baz danych i obsługą blokad pól bazy, zarządzaniem obiektami i wątkami. Stąd potrzeba serwerów aplikacji, których przykładem jest MTS.

MTS 1.0 pojawił się w 1996 r., zapewniając programistom możliwość opracowania aplikacji serwerocentrycznych, bez potrzeby opracowywania własnej infrastruktury serwera aplikacji. MTS 2.0 rozwinął te możliwości, łącząc usługi transakcyjne z webowym serwerem Internet Information Server (IIS 4.0) i pakietem komunikacji asynchronicznej Microsoft Message Queuing (MSMQ), dodając rodzime połączenia do baz danych Oracle, a także połączenia z mainframe za pośrednictwem Microsoft SNA Server 4.0. Wszystkie te produkty są obecnie dostarczane razem z Windows NT 4.0.

Trójwarstwowy klient/serwer

Rozwiązanie architektoniczne trójwarstwowej aplikacji klient/serwer polega na tym, że komponenty interfejsu graficznego są całkowicie oddzielone do komponentów logiki biznesowej, co pozwala na uzyskanie właściwej solidności, skalowalności i możliwości wielokrotnego ich używania w innych aplikacjach. Komponenty i obiekty biznesowe są uruchamiane w pośredniej warstwie oprogramowania (serwerze aplikacji). Instancje tych obiektów zajmują się obsługą żądań klientów (w tym również chudych klientów, opartych na przeglądarce Web) oraz aktualizacją danych działających na oddzielnych serwerach baz danych. Działanie takiej aplikacji klient/serwer w teorii jest proste, gorzej w praktyce.

Komponenty będą potrzebowały używać cennych zasobów, np. sesji połączeniowych z bazą danych. Liczba klientów zwykle znacznie przekracza liczbę dostępnych sesji połączeniowych, trzeba więc sesji tych używać oszczędnie. To samo dotyczy instancji obiektów. Tak więc efektywne zarządzanie trudno dostępnymi zasobami jest kluczem do uzyskania zadowalającej skalowalności i wydajności. Obiektowe monitory transakcyjne, w tym MTS, pozwalają na takie właśnie zarządzanie zasobami systemu bez nakładania ograniczeń na sposób pisania aplikacji przez programistę.

Idealne rozwiązanie polega na umożliwieniu programiście pisania komponentów logiki biznesowej z myślą o jednym użytkowniku i zapewnieniu skalowalności aplikacji za pomocą monitora transakcyjnego.