Architektura klient–serwer

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.

Komponenty architektury klient-serwer
- 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.
- 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.
- Baza danych - Przechowuje dane używane przez serwer i klientów. Serwer komunikuje się z bazą danych w celu pobierania, zapisywania lub modyfikowania informacji.
- Protokoły sieciowe - Zestaw reguł i standardów (np. HTTP, HTTPS, FTP, SMTP), które umożliwiają wymianę danych pomiędzy klientem a serwerem.
- 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.
- 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?
- Użytkownik wpisuje adres URL witryny w przeglądarce.
- Przeglądarka wysyła żądanie do serwera DNS w celu sprawdzenia adresu IP serwera www.
- Serwer DNS wysyła adres IP serwera WWW do przeglądarki.
- Przeglądarka wysyła żądanie HTTP/HTTPS na adres IP serwera www.
- Serwer WWW wysyła z powrotem do przeglądarki pliki niezbędne dla witryny internetowej.
- 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.