Istota sieci klient - serwer

Z SOISK systemy operacyjne i sieci komputerowe
Przejdź do nawigacji Przejdź do wyszukiwania

Klient-serwer – asymetryczna architektura oprogramowania umożliwiająca rozdzielenie pewnych funkcjonalności, w celu zwiększenia elastyczności i ułatwienia wprowadzania zmian w każdej z części. Polega to na ustaleniu, że serwer zapewnia usługi dla klientów, którzy mogą komunikować się z serwerem wysyłając żądanie (request). Podstawowe i najczęściej używane serwery to: serwer pocztowy, serwer WWW, serwer plików, serwer aplikacji. Z usług jednego serwera może zazwyczaj korzystać wielu klientów. Zdarza się, że jeden klient może korzystać jednocześnie z usług wielu serwerów.


Cechy charakterystyczne serwera:

  • Pasywny
  • Czeka na żądania od klientów
  • W momencie otrzymania żądania, przetwarza je, a następnie wysyła odpowiedź

Cechy charakterystyczne klienta

  • Aktywny
  • Wysyła żądanie do serwera
  • Oczekuje na odpowiedź od serwera

Innym modelem komunikacji jest sieć P2P, gdzie każdy komputer może pełnić role klienta i serwera.

Komunikacja

Połączenie pomiędzy klientem a serwerem opisane jest przy pomocy protokołów sieciowych. Najczęściej spotykanym jest protokół TCP/IP. W większości przypadków komunikacja opiera się na schemacie, w którym klient nawiązuje połączenie z serwerem. Następnie wysyła żądanie w określonym formacie do serwera i oczekuje na jego odpowiedź. Serwer cały czas oczekuje na klientów i w momencie otrzymania żądania przetwarza je i wysyła odpowiedź.

Zalety

  • Wszystkie informacje przechowywane są na serwerze, wobec tego możliwe jest lepsze zabezpieczenie danych. Serwer może decydować kto ma prawo do odczytywania i zmiany danych.
  • Istnieje wiele rozwiniętych technologii wspomagających działanie, bezpieczeństwo i użyteczność tego typu rozwiązania.

Wady

  • Duża liczba klientów próbujących otrzymać dane z jednego serwera powoduje różnego typu problemy związane z przepustowością łącza oraz technicznymi możliwościami przetworzenia żądań klientów.
  • W czasie, gdy serwer nie działa, dostęp do danych jest całkowicie niemożliwy.
  • Do uruchomienia jednostki będącej serwerem z możliwością obsługi dużej ilości klientów potrzebne jest specjalne oprogramowanie oraz sprzęt komputerowy, które nie występują w większości komputerów domowych.

Przykłady

Mimo faktu, że główna idea może być zaimplementowana na wiele sposobów, najprostszym przykładem są strony internetowe. Przeglądając strony internetowe komputer użytkownika jest klientem, a komputery które obsługują bazy danych i inne aplikacje potrzebne do obsługi połączenia to serwer. W momencie gdy przeglądarka żąda jakiejś strony, serwer wyszukuje odpowiednie informacje w bazie danych, przetwarza je do postaci strony internetowej, a następnie wysyła do klienta [1].