Architektura klient–serwer

Example

Architektura klient-serwer to model systemu rozproszonego, w którym zadania i obciążenia są podzielone pomiędzy dostawcę usług (serwer) a odbiorcę (klient). Serwer odpowiada za przechowywanie danych, hostowanie aplikacji oraz realizację określonych usług, podczas gdy klient jest interfejsem, z którego użytkownik korzysta, aby żądać tych usług.


Komunikacja


Komunikacja między klientem a serwerem odbywa się poprzez sieć komputerową (np. Internet). Klient wysyła zapytanie do serwera, serwer je przetwarza i odsyła odpowiedź. Ważną cechą tego modelu jest to, że klienci nie komunikują się bezpośrednio między sobą – cała interakcja przechodzi przez serwer.

Architektura klient–serwer
Architektura klient–serwer
Kliknij, aby otworzyć podgląd

Komponenty architektury klient-serwer

  1. Klient - Oprogramowanie lub urządzenie, z którego korzysta użytkownik końcowy w celu wysyłania żądań do serwera (np. przeglądarka internetowa, aplikacja mobilna). Klient odpowiada za prezentację danych i interakcję z użytkownikiem.
  2. Serwer - Urządzenie lub aplikacja odpowiadająca na żądania klientów. Serwer przechowuje dane, realizuje logikę biznesową i odsyła odpowiedzi. Może być dedykowany do określonych zadań, np. serwer WWW, serwer plików czy serwer baz danych.
  3. Baza danych - Przechowuje dane używane przez serwer i klientów. Serwer komunikuje się z bazą danych w celu pobierania, zapisywania lub modyfikowania informacji.
  4. Protokoły sieciowe - Zestaw reguł i standardów (np. HTTP, HTTPS, FTP, SMTP), które umożliwiają wymianę danych pomiędzy klientem a serwerem.
  5. Moduł równoważenia obciążenia (Load Balancer) - Odpowiada za dystrybucję ruchu sieciowego pomiędzy wiele serwerów w celu zapewnienia wysokiej dostępności, optymalnego wykorzystania zasobów i skrócenia czasu odpowiedzi.
  6. Zapory sieciowe i mechanizmy bezpieczeństwa - Chronią komunikację między klientem a serwerem, zapewniając uwierzytelnianie, szyfrowanie i filtrowanie ruchu.

Jak działa model klient-serwer?

  1. Użytkownik wpisuje adres URL witryny w przeglądarce.
  2. Przeglądarka wysyła żądanie do serwera DNS w celu sprawdzenia adresu IP serwera www.
  3. Serwer DNS wysyła adres IP serwera WWW do przeglądarki.
  4. Przeglądarka wysyła żądanie HTTP/HTTPS na adres IP serwera www.
  5. Serwer WWW wysyła z powrotem do przeglądarki pliki niezbędne dla witryny internetowej.
  6. Przeglądarka renderuje pliki i wyświetla stronę internetową.

Typy architektury klient-serwer

  • Architektura dwuwarstwowa (2-tier) - Klient komunikuje się bezpośrednio z serwerem bazy danych lub aplikacji. Prosta w implementacji, ale mało skalowalna.
  • Architektura trójwarstwowa (3-tier) - Składa się z warstwy prezentacji (klient), warstwy logiki biznesowej (serwer aplikacji) i warstwy danych (serwer bazy danych). Zapewnia lepszą skalowalność i bezpieczeństwo.
  • Architektura wielowarstwowa (n-tier) - Dodaje kolejne warstwy, np. warstwę cache, warstwę API czy mikroserwisy, co umożliwia elastyczne skalowanie i łatwiejsze utrzymanie.
  • Architektura peer-to-peer (P2P) jako odmiana - Choć nie jest typowym klient-serwer, w niektórych przypadkach łączy oba podejścia, gdzie węzły mogą pełnić rolę klienta i serwera.