Klient-serwer

Article on other languages:

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire

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:

  • 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

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

Spis treści

Architektura

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

  • architektura dwuwarstwowa - przetwarzanie i składowanie danych odbywa się w jednym module
  • architektura trójwarstwowa - przetwarzanie i składowanie danych następuje w dwóch osobnych modułach
  • architektura wielowarstwowa - przetwarzanie, składowanie i inne operacje na danych odbywają się w wielu osobnych modułach.

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 ilość 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 hardware, 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.

Zobacz też

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net