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:
|