Problemy niezawodnego przetwarzania w systemach

Transkrypt

Problemy niezawodnego przetwarzania w systemach
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
Brzeziński, Kobusińska, Wawrzyniak
Proxy
Serwer zrodlowy
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)
Serwery
Klienty
Proxy serwera
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]