Programowanie

Klient-serwer

Klient-serwer

Klient/serwer to 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.

Przykład działania wielu klientów z serwerem

Cechy charakterystyczne serwera:

Cechy charakterystyczne klienta

Odmianą połączenia klient-serwer jest sieć P2P, gdzie każdy komputer może pełnić role klienta i serwera.

Spis treści

[edytuj] Architektura

Ze względu na podział wykonywanych zadań wyróżnia się następujące typy architektury klient/serwer:

[edytuj] 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ź.

[edytuj] Zalety

[edytuj] Wady

[edytuj] 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.

[edytuj] Zobacz też