Sr-1-wyk-1.0-Slajd14
Skalowalność
Rozwój sieci komputerowych i liczba komputerów przyłączanych do Internetu wzrastają tak szybko, że jednym z najważniejszych celów projektowych staje się obecnie zapewnienie skalowalności. Skalowalność może być rozważana w trzech różnych wymiarach. Po pierwsze skalowalność pod względem rozmiaru , oznaczająca możliwość dodawania do systemu nowych użytkowników i zasobów. Po drugie skalowalność geograficzna , umożliwiająca rozrzucenie poszczególnych użytkowników po całym świecie. Po trzecie w końcu skalowalność pod względem administracyjnym oznacza, że zarządzanie systemem pozostaje równie proste pomimo zwiększania jego rozmiaru i pomimo dystrybucji odpowiedzialności na wiele jednostek administracyjnych.
Skalowalność pod względem rozmiaru może być ograniczona poprzez stosowanie rozwiązań scentralizowanych. Każdy serwer, który jest jedynym pełniącym określoną funkcję, staje się wąskim gardłem w warunkach wzrastającej liczby żądań. Stosowanie przetwarzania scentralizowanego staje się niekiedy jednak nieuniknione. Przykładem może być przechowywanie poufnych danych, których powielenie powodowałoby zwiększenie ryzyka ich ujawnienia (centralizacja danych). Z centralizacją usług mamy do czynienia wtedy, gdy przetwarzanie zleceń jest realizowane przez pojedynczy serwer. Dobrym przykładem usługi, która jest doskonale zdecentralizowana jest usługa DNS (ang. Domain Name Service ), zajmująca się m.in. odwzorowaniami nazw domenowych na adresy IP. W usłudze tej grupa rozproszonych serwerów realizuje wspólnie wspomnianą funkcję. Rozproszenie przetwarzania jest tu koniecznością, ponieważ liczba żądań przychodzących do systemu jest tak duża, że żaden serwer nie byłby w stanie jej obsłużyć.
Wysoką skalowalność systemów można osiągnąć poprzez zastosowanie algorytmów zdecentralizowanych. Charakteryzują się one następującymi własnościami:
- Żadna z maszyn nie posiada pełnej informacji o stanie systemu.
- Decyzje podejmowane są tylko na podstawie informacji lokalnych.
- Uszkodzenie pojedynczych maszyn nie powoduje blokady całego systemu.
- Nie ma niejawnych założeń dot. globalnego zegara.
Ostatnie założenie jest konsekwencją ogólnie przyjętej charakterystyki systemów rozproszonych, w których komunikacja ma charakter asynchroniczny . Oznacza to, że komunikaty docierają do odbiorcy w czasie skończonym, ale bliżej nieokreślonym. Konsekwencją tego założenia jest niemożliwość dokładnego zsynchronizowania lokalnych zegarów komputerów pracujących w sieci (przede wszystkim w sieci rozległej).
Skalowalność geograficzna jest ograniczana głównie przez dostępne mechanizmy komunikacyjne, które wprowadzają znaczne opóźnienia i charakteryzują się wysoką zawodnością. Opóźnienia powodują, że akceptowalne w sieciach lokalnych przetwarzanie synchroniczne staje się nieakceptowalne w sieciach rozległych, gdyż wprowadza zbyt duże przestoje.