Klient-serwer

W informatyce, klient-serwer to model architektury oprogramowania składający się z dwóch części, systemów klienckich i systemów serwerowych, komunikujących się za pomocą sieci komputerowej lub na tym samym komputerze. Aplikacja klient-serwer jest systemem rozproszonym, składającym się zarówno z oprogramowania klienckiego jak i serwerowego. Proces kliencki zawsze inicjuje połączenie z serwerem, podczas gdy proces serwerowy zawsze oczekuje na zapytania od dowolnego klienta.

Kiedy zarówno proces kliencki jak i proces serwera są uruchomione na tym samym komputerze, nazywa się to konfiguracją pojedynczego miejsca.

Inny rodzaj powiązanej architektury oprogramowania znany jest jako peer-to-peer, ponieważ każdy host lub instancja aplikacji może działać jednocześnie jako klient i serwer (w przeciwieństwie do scentralizowanych serwerów modelu klient-serwer) oraz ponieważ każdy z nich ma równorzędne obowiązki i status. Architektury peer-to-peer są często skracane za pomocą akronimu P2P.

Relacja klient-serwer opisuje relację między klientem a serwerem i sposób, w jaki wysyła on do serwera żądanie usługi oraz jak serwer może przyjmować te żądania, przetwarzać je i zwracać żądane informacje do klienta. Interakcja między klientem a serwerem jest często opisywana za pomocą diagramów sekwencji. Schematy sekwencyjne są standaryzowane w Unified Modeling Language.

Zarówno architektura klient-serwer, jak i P2P są obecnie w powszechnym użyciu.

Podstawowy typ architektury oprogramowania klient-serwer wykorzystuje tylko dwa typy hostów: klientów i serwery. Ten typ architektury jest czasami określany jako dwupoziomowa. Architektura dwupoziomowa oznacza, że klient działa jako jeden poziom, a proces serwera jako drugi poziom.

Architektura oprogramowania klient-serwer stała się jednym z podstawowych modeli obliczeń sieciowych. Wiele typów aplikacji zostało napisanych z wykorzystaniem modelu klient-serwer. Standardowe funkcje sieciowe, takie jak wymiana poczty elektronicznej, dostęp do stron internetowych i baz danych, są oparte na modelu klient-serwer. Na przykład, przeglądarka internetowa jest programem klienckim na komputerze użytkownika, który może uzyskać dostęp do informacji na dowolnym serwerze internetowym na świecie.

Sieć oparta na jednym serwerze.Zoom
Sieć oparta na jednym serwerze.

Sieć oparta na zasadzie peer-to-peer.Zoom
Sieć oparta na zasadzie peer-to-peer.

Charakterystyka klientów

  • Zawsze inicjuje zapytania do serwerów.
  • Czeka na odpowiedzi.
  • Otrzymuje odpowiedzi.
  • Zazwyczaj łączy się z niewielką liczbą serwerów jednocześnie.
  • Zazwyczaj wchodzi w bezpośrednią interakcję z użytkownikami końcowymi za pomocą dowolnego interfejsu użytkownika, np. graficznego interfejsu użytkownika.

Charakterystyka serwera

  • Zawsze czekaj na prośbę jednego z klientów.
  • Obsługuje żądania klientów, a następnie odpowiada na nie, podając żądane dane.
  • Serwer może komunikować się z innymi serwerami w celu obsługi żądania klienta.
  • Jeżeli do przetworzenia żądania (lub wdrożenia zabezpieczeń) wymagane są dodatkowe informacje, serwer może zażądać od klienta dodatkowych danych (haseł) przed przetworzeniem żądania.
  • Użytkownicy końcowi zazwyczaj nie kontaktują się bezpośrednio z serwerem, ale korzystają z klienta.

Zalety

  • W większości przypadków architektura klient-serwer umożliwia rozdzielenie ról i obowiązków systemu komputerowego pomiędzy kilka niezależnych komputerów, które są znane sobie tylko poprzez sieć, więc jedną z zalet tego modelu jest większa łatwość utrzymania. Na przykład, możliwa jest wymiana, naprawa, aktualizacja, a nawet relokacja serwera, podczas gdy jego klienci pozostają nieświadomi i nie odczuwają skutków tej zmiany. Ta niezależność od zmian jest również określana jako enkapsulacja.
  • Wszystkie dane są przechowywane na serwerach, które generalnie mają lepszą kontrolę bezpieczeństwa niż większość klientów. Serwery mogą lepiej kontrolować dostęp i zasoby, aby zagwarantować, że tylko ci klienci, którzy posiadają odpowiednie uprawnienia, mogą uzyskać dostęp i zmieniać dane.
  • Ponieważ przechowywanie danych jest scentralizowane, aktualizacje tych danych są znacznie łatwiejsze dla administratorów niż to, co byłoby możliwe w przypadku architektury P2P. W architekturze P2P aktualizacje danych mogą wymagać dystrybucji i zastosowania do każdego "rówieśnika" w sieci, co jest zarówno czasochłonne, jak i podatne na błędy, ponieważ mogą istnieć tysiące, a nawet miliony rówieśników.
  • Dostępnych jest już wiele zaawansowanych technologii klient-serwer, które zostały zaprojektowane w celu zapewnienia bezpieczeństwa, przyjaznych dla użytkownika interfejsów i łatwości obsługi.
  • Współpracuje z wieloma różnymi klientami o różnych specyfikacjach.

Wady

  • Blokowanie ruchu sieciowego jest jednym z problemów związanych z modelem klient-serwer. Wraz ze wzrostem liczby jednoczesnych zapytań klientów do danego serwera, serwer może być przeciążony. W przeciwieństwie do sieci P2P, gdzie jego przepustowość w rzeczywistości wzrasta wraz z dodawaniem kolejnych węzłów, ponieważ całkowita przepustowość sieci P2P może być w przybliżeniu obliczona jako suma przepustowości każdego węzła w tej sieci.
  • Porównując model klient-serwer z modelem Peer to Peer, w przypadku awarii jednego serwera, żądania klientów nie mogą być obsługiwane, ale w przypadku sieci P2P, serwery są zazwyczaj rozproszone pomiędzy wiele węzłów. Nawet jeśli jeden lub więcej węzłów zawiedzie, na przykład jeśli jeden z węzłów nie udało się pobrać pliku, pozostałe węzły powinny nadal posiadać dane potrzebne do zakończenia pobierania.

Przykłady

Pytania i odpowiedzi

P: Co to jest architektura oprogramowania klient-serwer?


O: Architektura oprogramowania klient-serwer to model składający się z dwóch części, systemów klienckich i systemów serwerowych, które komunikują się przez sieć komputerową lub na tym samym komputerze.

P: Jak działa aplikacja klient-serwer?


O: Aplikacja klient-serwer jest systemem rozproszonym, składającym się z oprogramowania klienta i serwera. Proces klienta zawsze inicjuje połączenie z serwerem, natomiast proces serwera zawsze czeka na żądania od dowolnego klienta.

P: Co się dzieje, gdy proces klienta i proces serwera są uruchomione na tym samym komputerze?


O: Jeżeli proces klienta i proces serwera są uruchomione na tym samym komputerze, to jest to tzw. konfiguracja jednomiejscowa.

P: Jakie korzyści daje korzystanie z Aplikacji Klient-Serwer?


O: Używanie Aplikacji Klient-Serwer zapewnia lepszy sposób dzielenia obciążeń między wiele komputerów lub użytkowników.

P: Kto inicjuje połączenia w Aplikacjach Klient-Serwer?


O: W Aplikacjach Klient-Serwer połączenia zawsze inicjuje Proces Klienta.


P: Kto czeka na żądania w Aplikacjach Serwera Klienta?


O: Proces Serwera zawsze czeka na żądania w Aplikacjach Serwera Klienta.

P: Jak wiele komputerów lub użytkowników może współdzielić obciążenia?


O: Wiele komputerów lub użytkowników może dzielić się obciążeniami, korzystając z systemu rozproszonego, takiego jak Aplikacja Client Server.

AlegsaOnline.com - 2020 / 2023 - License CC3