====== Zalety i wady systemów rozproszonych. ======


===== Def. SYSTEM ROZPORSZONY =====

[[System rozproszony]]


=====Zalety w porównaniu z systemami scentralizowanymi:=====
  * Ekonomia – prawo Grosch’a – moc obliczeniowa procesora jest proporcjonalna do kwadratu jego ceny (lata 80, obecnie to prawo nie obowiązuje)
  * Współczynnik= cena/ wydajność. Dla systemów rozproszonych ten współczynnik jest dużo lepszy. Najtańszym sposobem zwiększenia mocy obliczeniowej jest połączenie tanich komputerów siecią (można otrzymać dużo większą wydajność)
  * Szybkość -  moc obliczeniowa systemów rozproszonych jest wielokrotnie większa od systemów scentralizowanych
  * Wewnętrzne rozproszenie – pozwala na pracę zespołową pracowników, którzy nie znajdują się w tym samym miejscu
  * Niezawodność
  * Stopniowe rozszerzanie – pozwala na stopniowe rozszerzanie możliwości sytemu przy czym nie trzeba na raz w kupować cały system ( jak w sys. Scentralizowanych) i koszt takiej rozbudowy jest znacznie mniejszy 

=====Zalety w porównaniu z komputerami osobistymi:=====
  * Dzielenie danych – wielu użytkowników może korzystać ze wspólnych danych
  * Wspólne urządzenia – współdzielenie urządzeń zewnętrznych co pozwala na obniżenie kosztów
  * Komunikacja
  * Elastyczność:
    * awarie – podczas awarii jednej z maszyn nie następuje awaria całego systemu, tylko pozostałe maszyny przejmują obliczenia zepsutej
    * rozkład obciążenia na wszystkie dostępne komputery. Dzielenie powinno być uzależnione od mocy obliczeniowej każdego z komputerów w systemie oraz obciążenia poszczególnych komputerów

=====Zalety systemów rozproszonych:=====
  * Podział zasobów: system rozproszony pozwala dzielić zasoby sprzętowe i programowe (dzielenie danych: w zespołach projektowych) pomiędzy wielu użytkowników pracujących na różnych komputerach pracujących w sieci.
  * Otwartość: – Zdolność do rozszerzania 
    * na poziomie sprzętu (dodawanie nowych komputerów do sieci)
    * na poziomie oprogramowania (wprowadzanie nowych usług, umożliwiających programom użytkowym dzielenie zasobów)
  * Współbieżność: w systemie rozproszonym wiele procesów może działać w tym samym czasie na różnych komputerach w sieci. 
    * Procesy te mogą komunikować się podczas swego działania.
    * Współbieżny dostęp do wspólnie wykorzystywanych zasobów i ich aktualizacje muszą być synchronizowane
  * Skalowalność: Moc i możliwości przetwarzania może wzrastać w miarę dodawania do systemu nowych zasobów, w szczególności komputerów. 
    * W praktyce skalowalność jest często ograniczona poprzez przepustowość sieci oraz (niekiedy) poprzez np. specyficzne protokoły wymiany informacji.
    * Niemniej skalowalność systemu rozproszonego jest nieporównywalnie lepsza w stosunku do systemu scentralizowanego.
  * Tolerancja błędów: Dostępność wielu komputerów oraz umożliwienie zdublowania informacji (replikacje) oznacza, że rozproszony system jest tolerancyjny w stosunku do pewnych błędów zarówno sprzętowych jak i programowych. 
    * Redundancja sprzętowa (zwielokrotnienie sprzętu jak pierwszy się zepsuje to drugi przejmie jego obowiązki)
    * Odtwarzanie programowe (komputer podejmuje działania naprawcze)
    * Aktywne zwielokrotnienie – więcej niż jeden procesor. W normalnych warunkach pracują wszystkie procesory, w razie awarii reszta przejmuje pracę zepsutej jednostki
    * Zasoby rezerwowe – tak samo popularne ja aktywne zwielokrotnieni. Zalety: łatwiejsze działanie w czasie normalnej pracy, wymaga mniejszych nakładów. Wady: złożony i czasochłonny proces przywracania jednostki podstawowej do pracy (praca normalna: jeden procesor pracuje drugi czeka, awaria: drugi procesor przejmuje pracę zepsutej jednostki)
  * Przezroczystość: Oznacza ukrycie przed użytkownikiem szczegółów rozproszenia, np. gdzie ulokowane są zasoby lub jak są one fizycznie zaimplementowane, pod jakim systemem pracują, itd. 
    * Przezroczystość ma zasadnicze znaczenie dla komfortu działania użytkownika oraz dla niezawodności budowanego oprogramowania. 
    * Niekiedy, np. dla celów optymalizacyjnych, użytkownik może zrezygnować z pełnej przezroczystości. 
    * Przykładem przezroczystości jest Internet: klikając w aktywne pole na stronie WWW nie interesujemy się, gdzie znajduje się odpowiadająca mu strona, oraz jak i na czym jest zaimplementowana.

=====Wady systemów rozproszonych:=====
  * Złożoność: systemy rozproszone są trudniejsze do zaprogramowania i do administrowania niż systemy scentralizowane. 
    * Zależą od własności sieci, np. jej przepustowości i czasu transmisji, co utrudnia zaprojektowanie i zrealizowanie wielu algorytmów i procesów przetwarzania.
  * Ochrona: Dla systemu scentralizowanego wystarcza w zasadzie pojedynczy firewall. System rozproszony nie może być chroniony w ten sposób, przez co może być narażony na różnorodne ataki (włamania, wirusy, sabotaż, odmowa płatności, itd.) z wielu stron, które trudno zidentyfikować. 
  * Zdolność do zarządzania: jest ona utrudniona wskutek tego, że konsekwencje różnych działań administracyjnych w systemie rozproszonym są trudniejsze do zidentyfikowania. 
    * Podobnie z przyczynami sytuacji anormalnych, w szczególności awarii.
  * Nieprzewidywalność: system rozproszony jest nieprzewidywalny w swoim działaniu, ponieważ zakłócenia mogą być powodowane przez wiele przyczyn: małą przepustowość i awarię łączy, awarię komputerów, zbyt duże obciążenie danego serwera, lokalne decyzje administracji serwera, itd.; patrz WWW.
  * Sieć – problem sieci polega na ścisłym uzależnieniu systemów rozproszonych od działania sieci. Nasycenie sieci – powoduje duże opóźnienia w komunikacji pomiędzy komputerami w systemie, a następstwem tego jest zniwelowanie zalet sys. Rozproszonych

===== Przydatne linki: =====
[[http://rainbow.mimuw.edu.pl/SO/Wyklady-html/11_distr/]]

====== Pobierz dokument ======
{{:9.1.doc|9.1.doc}}