Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi Jerzy Brzeziński, Anna Kobusińska, Dariusz Wawrzyniak Instytut Informatyki Politechnika Poznańska
Plan prezentacji 1 Architektura SOA i jej własności 2 Wiarygodność usług 3 Replikacja i odtwarzanie stanu 4 Propozycja zapewnienia niezawodności poprzez replikację i odtwarzanie stanu Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [1/20]
Architektura zorientowana na usługi Architektura SOA to paradygmat tworzenia rozproszonych aplikacji w formie usług (serwisów) w luźno powiązanym środowisku rozproszonym obejmującym wiele różnych domen. Usługa dowolny moduł oprogramowania, który reprezentuje pewną funkcjonalność (lub zasoby), mogący działać niezależnie od innych oraz posiadający zdefiniowany interfejs, za pomocą którego udostępnia realizowane przez siebie funkcje. Klient odwołuje się tylko do interfejsu danego serwisu całkowicie abstrahując od jego implementacji; komunikacja pomiędzy klientem a usługą odbywa poprzez wymianę wiadomości. Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [2/20]
Własności architektury SOA (1) Wysoka współoperatywność usług, niezależnie od różnorodności środowisk i technologii implementacji poszczególnych usług. Autonomiczność usług serwery (punkty dostępu) usług mogą być tworzone i zarządzane niezależnie od siebie. Oznacza to przyjęcie podobnego modelu rozwoju jak sieć Web nie ma jednej centralnej jednostki, która zarządza punktami dostępu do usług w sposób globalny. Niezależność od infrastruktury komunikacyjnej przy zachowaniu zgodności z szerokim zakresem dotychczas przyjętych standardów komunikacji, zarządzania, opisu interfejsów, realizacji polityki itp. Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [3/20]
Własności architektury SOA (2) Możliwość budowania złożonych aplikacji (usług) poprzez kompozycję usług elementarnych, prowadząca w efekcie do zagnieżdżania interakcji pomiędzy usługami. Integracja luźno powiązanych aplikacji w szerokiej skali rozproszenia i orkiestracja procesów realizowanych w środowisku obejmującym potencjalnie wiele odrębnych domen administracyjnych. Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [4/20]
Problemy realizacji przetwarzania w SOA Systemy zbudowane w oparciu o paradygmat SOA są szczególnym przypadkiem systemów rozproszonych. Wyzwania związane z budową ogólnie pojętych systemów rozproszonych dotyczą więc w szczególności systemów SOA: przeźroczystość dostępu, identyfikacja i wiązanie komponentów, koordynacja i synchronizacja dostępu, problem zawodności komunikacji, problem awarii komponentów architektury. Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [5/20]
Wiarygodność usług Istotnym zagadnieniem w realizacji systemu rozproszonego opartego na paradygmacie SOA jest zapewnienie odpowiedniej wiarygodności usług rozumianej jako: dostępność prawdopodobieństwo, że system działa poprawnie w dowolnej chwili i jest gotów wykonywać swoje funkcje na zlecenie jego użytkowników, niezawodność zdolność systemu do ciągłego, bezawaryjnego działania (w przeciwieństwie do dostępności niezawodność określamy za pomocą przedziału czasu, a nie chwili). Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [6/20]
Mechanizmy uzyskiwania wiarygodności 1 Detekcja awarii 2 Niezawodna komunikacja (grupowa) 3 Replikacja 4 Odtwarzanie stanu 5 Przetwarzanie transakcyjne Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [7/20]
Replikacja i odtwarzanie Replikacja (zwielokrotnianie, ang. replication) utrzymywanie wielu kopii (replik) danych na niezależnych serwerach. Odtwarzanie wsteczne (ang. rollback recovery) rejestrowanie w pewnych wybranych momentach czasu całego lub częściowego stanu węzłów przetwarzania rozproszonego w postaci tzw. punktów kontrolnych (ang. checkpoints) zapisywanych w pamięci trwałej, do których w razie potrzeby można wycofać przetwarzanie, aby odtworzyć spójny stan wszystkich węzłów w przypadku awarii części z nich. Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [8/20]
Cele stosowania replikacji Zwiększenie efektywności przetwarzania przez zrównoleglenie przetwarzania na wielu serwerach Zwiększenie dostępności poprzez wybór bliższego/mniej obciążonego serwera Zwiększenie skalowalności poprzez równoważenie obciążenia i potencjalną możliwość alokacji dodatkowych replik Zapewnienie niezawodności wybór poprawnie działającego serwera, zapobieganie utracie danych poprzez utrzymywanie wielu kopii Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [9/20]
Replikacja rozwiązania stosowane w SOA Oferują mechanizm replikacji tylko dla Big Web Services Stosują transfer operacji brak możliwości agregacji sekwencji operacji Zakładają silne modele spójności i replikację pesymistyczną duży koszt replikacji opłacalne tylko w przypadku usług głównie do odczytu Wykorzystują mechanizmy komunikacji grupowej ograniczona skalowalność Nie uwzględniają problemu migracji klientów Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [10/20]
Sposoby replikacji (1) Buforowanie podręczne proxy HTTP niewystarczalność standardowego serwera proxy wykorzystanie metod protokołu HTTP przez usługi REST Klient Proxy Serwer zrodlowy Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [11/20]
Sposoby replikacji (2) Pełna replikacja zwielokrotnione, równorzędne serwery Replikacja aktywna Serwery Klient Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [12/20]
Sposoby replikacji (3) Replikacja pasywna Serwery Klient transfer stanu transfer stanu Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [13/20]
Sposoby replikacji (4) Replikacja semiaktywna Serwery Klient transfer operacji transfer operacji Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [14/20]
Proponowana architektura replikacji (1) Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [15/20]
Proponowana architektura (2) Klienty Proxy serwera Serwery Proxy klienta Siec Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [16/20]
Cele stosowania odtwarzania Zapewnienie niezawodności przywrócenie spójnego stanu przetwarzania w przypadku awarii komponentów systemu Zwiększenie efektywności konieczność ponownego przetworzenia jedynie operacji nie zapamiętanych w punkcie kontrolnym Zagwarantowanie realizacji podjętych zobowiązań biznesowych brak utraty krytycznych danych Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [17/20]
Odtwarzanie rozwiązania stosowane w SOA W przypadku usług: jedynie lokalne odtwarzanie stanu zasobu brak uwzględnienia zależności pomiędzy usługami w przypadku zagnieżdżonej kompozycji usług W przypadku aplikacji klienckich (procesów biznesowych): obsługa awarii następuje poprzez automatyczne podjęcie próby powrotu do ostatniego momentu zarejestrowanego przez silnik przepływu procesu biznesowego może następować jawnie, poprzez wyspecyfikowanie w definicji procesu BPEL obsługi stanów wyjątkowych. wymaga przewidzenia i oprogramowania wyjątków, poprzez odpowiednią sekwencję wywołań funkcji kompensujących usługi wywołane przed awarią. Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [18/20]
Usługa odtwarzania stanu procesu biznesowego Środowisko przetwarzania (reprezentowane tu przez proxy klieta i usługi, zarządcę stanu oraz silnik przepływu) uwalnia całkowicie programistę (czy architekta procesu biznesowego) od rozwiązywania problemu niezawodności i odtwarzania przetwarzania Tym samym nie jest wymagane przygotowanie po stronie usług funkcji kompensujących wywołania poszczególnych funkcji udostępnianych przez usługę Nie jest też wymagane oprogramowanie reakcji na awarie po stronie klienta (w definicji procesu biznesowego) Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [19/20]
Proponowana architektura odtwarzania Serwer uslug Klient Brzeziński, Kobusińska, Wawrzyniak Problemy niezawodnego przetwarzania w systemach SOA [20/20]