Klient-serwer

From Helionica



Klient-serwer - architektura aplikacji sieciowych (w sieciach lokalnych lub rozległych), która rozdziela klienty (zwykle graficzny interfejs użytkownika) od serwera; każda z instancji oprogramowania klienckiego łączy się osobno z serwerem (lub serwerami).

Oprogramowanie serwera jest zwykle uruchamiane na silnych komputerach (mogą to być zestawy wielu komputerów PC lub duże maszyny typu mainframe), dedykowanych do specjalnych zadań, natomiast oprogramowanie klienckie na komputerze osobistym dostarcza użytkownikowi interfejs do wyświetlania informacji a także ich dodatkowego przetwarzania. Często występuje jeszcze warstwa w postaci wyspecjalizowanego serwera aplikacji, która pośredniczy między serwerem danych a oprogramowaniem klienckim, wykonując dodatkowe przetwarzanie biznesowe.

Popularnym przykładem architektury klient-serwer jest współcześnie funkcjonowanie Internetu, gdzie przeglądarka internetowa na ogół ogranicza się do wyświetlania danych przetworzonych przez serwer WWW, aczkolwiek może też wykonywać dodatkowe zadania, jak np. przetwarzanie skryptów JavaScript po stronie klienta. Popularne obecnie określenie web based lub web enabled jest de facto tożsame z pojęciem klient-serwer.

Innym przykładem architektury, stosowanym w środowiskach korporacyjnych, jest tzw. cienki klient, czyli maszyna z oprogramowaniem przeznaczonym tylko do wyświetlania danych, gdy przetwarzanie odbywa się wyłącznie na serwerze - pozwala to zarządzać całą logiką biznesową z centralnego punktu.

W architekturze klient-serwer stosuje się często podział na moduły - dane, przetwarzanie i wyświetlanie danych na komputerze klienckim są rozdzielone na osobne warstwy (por. architektura trójwarstwowa, architektura wielowarstwowa), co ułatwia zarządzanie nimi.

Odmiennym typem architektury klient-serwer są sieci peer-to-peer, w której każdy komputer jest jednocześnie serwerem i klientem, gdyż z jednej strony udostępnia pliki innym użytkownikom sieci, z drugiej zaś korzysta z cudzych zasobów.



Bestsellery informatyki