Udostępnij za pośrednictwem


Model dla systemów rozproszonych

Tradycyjnie posiadanie systemu monolitycznego działającego na wielu komputerach oznaczało konieczność podzielenia go na oddzielne składniki klienta i serwera. W takich systemach składnik klienta obsługiwał interfejs użytkownika i serwer zapewniał przetwarzanie zaplecza, takie jak dostęp do bazy danych, drukowanie itd. W miarę jak komputery się rozpowszechniały, spadały koszty i łączyły się za pomocą coraz wydajniejszych sieci, dzielenie systemów oprogramowania na wiele komponentów stało się wygodniejsze. Każdy komponent działał na innym komputerze i pełnił wyspecjalizowaną funkcję. Takie podejście upraszcza programowanie, zarządzanie, administrację i często poprawia wydajność i niezawodność, ponieważ awaria na jednym komputerze nie musi wyłączać całego systemu.

W wielu przypadkach system wydaje się klientowi jako nieprzezroczystą chmurą, która wykonuje niezbędne operacje, mimo że system rozproszony składa się z poszczególnych węzłów, jak pokazano na poniższej ilustracji.

klienci uzyskują dostęp do usług w systemie serwerów RPC, które są postrzegane jako nieprzezroczysta chmura dla klientów zewnętrznych

Nieprzezroczystość chmury jest utrzymywana, ponieważ operacje obliczeniowe są wywoływane w imieniu klienta. W związku z tym klienci mogą zlokalizować komputer (węzeł ) w chmurze i zażądać danej operacji; podczas wykonywania operacji komputer może wywoływać funkcje na innych komputerach w chmurze bez uwidaczniania dodatkowych kroków lub komputera, na którym zostały one wykonane, do klienta.

Dzięki temu paradygmatowi mechanika rozproszonego systemu przypominającego chmurę może zostać podzielona na wiele pojedynczych wymian pakietów lub konwersacje między poszczególnymi węzłami.

Tradycyjne systemy klient-serwer mają dwa węzły ze stałymi rolami i obowiązkami. Nowoczesne systemy rozproszone mogą mieć więcej niż dwa węzły, a ich role są często dynamiczne. W jednej konwersacji węzeł może być klientem, podczas gdy w innej konwersacji węzeł może być serwerem. W wielu przypadkach ostatecznym odbiorcą uwidocznionych funkcji jest klient z użytkownikiem siedzącym na klawiaturze, obserwując dane wyjściowe. W innych przypadkach rozproszony system działa bez nadzoru, wykonując operacje w tle.

System rozproszony może nie mieć dedykowanych klientów i serwerów dla każdej konkretnej wymiany pakietów, ale ważne jest, aby pamiętać, że istnieje obiekt wywołujący (lub inicjator, który jest często określany jako klient). Istnieje również adresat wywołania (często określany jako serwer). Nie jest konieczne przeprowadzanie dwukierunkowych wymian pakietów w formacie żądanie-odpowiedź w systemie rozproszonym; często w takim systemie komunikaty są wysyłane tylko w jeden sposób.