Klient-serwer: Różnice pomiędzy wersjami

[wersja nieprzejrzana][wersja przejrzana]
Usunięta treść Dodana treść
.
Znaczniki: Zastąpiono Wycofane blanking (filtr nadużyć) VisualEditor
Thraen (dyskusja | edycje)
m Wycofano edycje użytkownika 86.63.105.133 (dyskusja). Autor przywróconej wersji to Kra77.
Znacznik: Wycofanie zmian
Linia 1:
'''Klient-serwer''' ({{ang.|client/server, client-server model}}) – [[Architektura oprogramowania|architektura]] [[system komputerowy|systemu komputerowego]], w szczególności [[oprogramowanie|oprogramowania]], umożliwiająca podział zadań (ról). Polega to na ustaleniu, że ''serwer'' zapewnia usługi dla ''klientów'', zgłaszających do serwera żądania obsługi ({{ang.|service request}})<ref>{{cytuj stronę|url=http://www.i-slownik.pl/781,klient-serwer/ |tytuł=Klient-serwer |opublikowany=www.i-slownik.pl |data dostępu=2011-04-15}}</ref>.
 
== Zastosowanie ==
Podstawowe, najczęściej spotykane serwery działające w oparciu o architekturę klient-serwer to: [[serwer poczty elektronicznej]], [[serwer WWW]], [[serwer plików]], [[serwer aplikacji]]. Z usług jednego [[serwer]]a może zazwyczaj korzystać wiele klientów. Jeden [[klient (informatyka)|klient]], w ogólności, może korzystać jednocześnie z usług wielu serwerów. Według schematu klient-serwer działa też większość, obecnie spotykanych, [[system zarządzania bazą danych|systemów zarządzania bazą danych]].
 
== Podział zadań ==
W pewnym uproszczeniu, bez wdawania się w techniczne szczegóły realizacji, sposób komunikacji według architektury klient-serwer można scharakteryzować przez określenie zadań (wyznaczenie ról) obu stronom oraz zdefiniowanie ich trybów pracy<ref>{{cytuj stronę|url=http://www.korzen.org/wsisiz/programowanie%20aplikacji%20klient-serwer/1.Model-klient-serwer.pdf |tytuł=Model klient-serwer. Model komunikacji w sieci. |opublikowany=www.korzen.org |data dostępu=2011-04-15}}</ref>.
;Strona klienta
Jest to strona żądająca dostępu do danej usługi lub zasobu.
:Tryb pracy klienta:
:*aktywny,
:*wysyła żądanie do serwera,
:*oczekuje na odpowiedź od serwera.
 
;Strona serwera
Jest to strona świadcząca usługę lub udostępniająca zasoby.
:Tryb pracy serwera:
:*pasywny,
:*czeka na żądania od klientów,
:*w momencie otrzymania żądania, przetwarza je, a następnie wysyła odpowiedź.
 
== Typy architektury ==
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 określonych [[protokół komunikacyjny|protokołów komunikacyjnych]]. Najczęściej spotykanym jest [[Model TCP/IP|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ź. W [[model OSI|modelu OSI]] komunikacja pomiędzy stronami przebiega w warstwie aplikacji.
 
== P2P ==
[[Peer-to-peer|P2P]] jest odmianą architektury klient-serwer, w której każdy [[host]] może pełnić jednocześnie rolę klienta i rolę serwera.
 
== 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 liczby klientów potrzebne jest specjalne oprogramowanie oraz [[sprzęt komputerowy]], które nie występują w większości komputerów domowych.
 
== Przykład ==
Najbliższym przykładem jest organizacja dostępu do zasobów [[Internet]]u, gdzie:
* rolę serwera pełni [[serwer WWW]],
* rolę klienta pełni [[przeglądarka internetowa]].
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ż ==
* [[serwer]]
* [[serwlet]]
* [[Peer2Mail|P2M]]
 
== Przypisy ==
{{Przypisy}}
 
[[Kategoria:Architektura oprogramowania]]