W architekturze sieci lokalnych typu klient – serwer
A. każdy komputer zarówno udostępnia pewne zasoby, jak i korzysta z zasobów innych komputerów.
B. wyróżnione komputery pełnią rolę serwerów udostępniających zasoby, a pozostałe komputery z tych zasobów korzystają.
C. wszystkie komputery klienckie mają dostęp do zasobów pozostałych komputerów.
D. żaden z komputerów nie pełni roli nadrzędnej w stosunku do pozostałych.
Pytanie z egzaminu CKE, wrzesień 2015 (arkusz E.13-X-15.08).
W architekturze klient – serwer w sieci lokalnej część komputerów lub urządzeń pełni wyróżnioną rolę serwerów, czyli udostępnia usługi i zasoby, a pozostałe stacje robocze z nich korzystają jako klienci. To właśnie opisuje poprawna odpowiedź. Serwer może udostępniać pliki przez SMB lub NFS, drukarki sieciowe, bazę danych, usługę logowania domenowego, DNS, DHCP albo aplikację firmową. Klient, czyli np. komputer ucznia w pracowni albo laptop pracownika, wysyła żądanie do serwera i otrzymuje odpowiedź lub dostęp do zasobu. W praktyce taka architektura bardzo ułatwia administrację: konta użytkowników, uprawnienia, kopie zapasowe, aktualizacje i polityki bezpieczeństwa można trzymać centralnie. Moim zdaniem to jest jeden z najważniejszych powodów, dla których firmy wolą model klient-serwer niż luźne udostępnianie plików między komputerami. Dobre praktyki branżowe mówią też o rozdzielaniu ról, stosowaniu kontroli dostępu, mocnych haseł, monitoringu usług i regularnego backupu serwerów. W środowiskach Windows typowym przykładem jest domena Active Directory, a w systemach Linux można spotkać np. serwery plików Samba, LDAP czy NFS. Ważne jest, że serwer nie musi być zawsze wielką maszyną w serwerowni, ale powinien być stabilny, zabezpieczony i dostępny dla klientów wtedy, kiedy sieć go potrzebuje.
W tym pytaniu łatwo pomylić architekturę klient – serwer z siecią równorzędną, czyli peer-to-peer. Stwierdzenie, że żaden komputer nie pełni roli nadrzędnej, pasuje raczej do modelu P2P, gdzie stacje są traktowane podobnie i nie ma jednego centralnego punktu udostępniania usług. W architekturze klient-serwer właśnie występuje wyraźny podział ról: serwer świadczy usługę, a klient ją wykorzystuje. Nie chodzi tutaj o nadrzędność w sensie bycia ważniejszym komputerem, tylko o funkcję w systemie sieciowym. Serwer ma zwykle większą odpowiedzialność: zarządza dostępem, przechowuje dane, obsługuje zapytania i często działa przez całą dobę. Błędne jest też założenie, że wszystkie komputery klienckie mają dostęp do zasobów pozostałych komputerów. Taki opis bardziej przypomina chaotyczne udostępnianie zasobów w małej grupie roboczej, a nie dobrze zaprojektowaną sieć firmową. W praktyce dostęp powinien być nadawany według uprawnień, np. przez listy ACL, grupy użytkowników albo polityki domenowe. Klient nie powinien automatycznie widzieć wszystkiego u innych klientów, bo to byłby poważny problem bezpieczeństwa. Również pomysł, że każdy komputer jednocześnie udostępnia zasoby i korzysta z zasobów innych, jest typowy dla sieci równorzędnej. W modelu klient-serwer role są bardziej uporządkowane. Oczywiście w realnym życiu jeden komputer może technicznie być i klientem, i serwerem dla jakiejś usługi, ale sama koncepcja architektury zakłada centralizację wybranych usług na serwerach. Z mojego doświadczenia najczęstszy błąd polega na tym, że ktoś patrzy tylko na to, że komputery są połączone w LAN, i od razu zakłada, że każdy może wymieniać pliki z każdym. A tu chodzi o sposób organizacji usług sieciowych, nie samo fizyczne połączenie kablami lub Wi-Fi.