Wraz ze wzrostem postępu pojawiło się
nowe zapotrzebowanie na systemy rozproszone (distributed systems) umożliwiające
korzystanie, dzięki szybkim łączom komunikacyjnym, z niewyczerpanych rozproszonych
zasobów infrastruktury sieciowej . Współcześnie ich zakres zastosowań jest
stosunkowo rozbudowany i obejmuje systemy baz danych, systemy kontroli
lotów, automatykę przemysłową, medyczne systemy monitorujące, systemy podtrzymywania
życia, aplikacje bankowe i giełdowe oraz wiele innych.
W związku z rosnącymi wymaganiami dotyczącymi niezawodności (reliability) systemów pracujących w środowisku rozproszonym podjęto próbę budowy systemów tolerujących uszkodzenia (fault-tolerant systems). Obecnie na rynku jest wiele takich systemów, które różnią się przede wszystkim rodzajem komponentów systemu odpornych na błędy, czy też stopniem tolerancji uszkodzeń oraz sposobem osiągania niezawodności. W ten sposób mamy do czynienia z tolerancją uszkodzeń węzłów sieci (komputery, procesy) lub też z tolerancją uszkodzeń łącza komunikacyjnego. Część systemów zakłada jedynie występowanie uszkodzeń przejściowych (transient failures), a inne uszkodzeń trwałych, permanentnych (crash failures). Są też takie, które radzą sobie z oboma rodzajami uszkodzeń. Istnieją również systemy tolerujące uszkodzenia, które akceptują nawet wielokrotny podział sieci na partycje w wyniku awarii. Niektóre z systemów zapewniają niezawodność poprzez rozszerzenie warstwy aplikacji o mechanizmy zapewniające poprawną pracę w systemie rozproszonym nawet w przypadku wystąpienia awarii. W takim rozwiązaniu to warstwa aplikacji przejmuje na siebie odpowiedzialność za tolerancję uszkodzeń. Jeszcze inne systemy stosują warstwy pośrednie wykorzystujące odpowiednie protokoły tolerancji uszkodzeń, które umożliwiają odporne na uszkodzenia rozproszone wykonywanie procesów. Tolerancja uszkodzeń jest stosunkowo
obszerną dziedziną i obejmuje zagadnienia związane z wycofywaniem operacji
(rollback), odzyskiwaniem danych (recovery), maskowaniem i ograniczaniem
skutków uszkodzeń (fault masking, fault containing), a także z lokalnym
usuwaniem uszkodzeń (fault local mending), z protokołami rozproszonego
głosowania (voting protocols) i zatwierdzania transakcji (commit protocols)
oraz z algorytmami samo-stabilizującymi się (self-stabilization algorithms).
W ostatnich latach bardzo duży nacisk został położony na badania nad niezawodną
komunikacją grupową (reliable group communications), czego wynikiem jest
szeroki zakres zastosowań.
|
Seminarium będzie wprowadzeniem do systemów tolerujacych uszkodzenia, a w szczególności systemów niezawodnej komunikacji grupowej. Zostaną przedstawione problemy pojawiające się w trakcie konstrukcji takich systemów, a także przykładowa implementacja jednego z pierwszych systemów niezawodnej komunikacji grupowej (system Isis). |
Literatura:
|