architektury klient-serwer
Architektura typu klient-serwer – architektura, w której wystepują dwa główne typy komponentów – klient, oraz serwer. Serwer jest oprogramowaniem dostarczającym pewne usługi klientowi. Głownym modelem komunikacji w tego typu architekturach jest model żądanie-odpowiedź. Do najważniejszych typów architektur klient-serwer zaliczamy architektury warstwowe – dwuwarstwowe, trójwarstwowe oraz wielowarstwowe.
Architektura dwuwarstwowa
Architektura dwuwarstwowa – architektura składająca się z trzech typów komponentów umieszczonych w dwóch warstwach fizycznych. W architekturze tej występują następujące typy komponentów:
- interfejs użytkownika (User Interface),
- logika przetwarzająca,
- baza danych.
Wszystkie komponenty umieszczone są w dwóch fizycznych warstwach – logika przetwarzająca jest podzielona pomiędzy obie warstwy.
Konsekwencje – zalety
Zalety architektury dwuwarstwowej:
- skalowalność – najczęściej nie więcej niż do 100 użytkowników,
- ergonomia – dzięki UI istnieje możliwość graficznego interfejsu użytkownika,
- elastyczność.
Architektura trójwarstwowa
Architektura trójwarstwowa – architektura składająca się z trzech typów komponentów umieszczonych w trzech warstwach fizycznych. W architekturze tej tak samo jak w architekturze dwuwarstwowej występują następujące typy komponentów:
- interfejs użytkownika (User Interface),
- logika przetwarzająca,
- baza danych.
Każdy komponent umieszczony jest w osobnej warstwie fizycznej – logika przetwarzająca została umieszczona w osobnej warstwie fizycznej
Niekiedy warstwa logiki przetwarzającej (middleware) jest dodatkowo dzielona na dwie osobne warstwy – warstwę webową oraz warstwę biznesową (middleware). Mamy wtedy do czynienia z architekturą wielowarstwową.
Konsekwencje – zalety
Poniżej lista zalet architektury trójwarstwowej:
- skalowalność – lepsza niż w architekturze dwuwarstwowej, możliwość skalowania każdej warstwy osobno,
- wydajność – ustawienia każdej warstwy można optymalizować osobno, możliwość wprowadzenia load-balancingu pomiędzy warstwami, możliwośc wprowadzenia keszowania danych w warstwie przetwarzającej.
- elastyczność – warstwa logiki zarządza zasobami zazwyczaj na podstawie ich nazw co zwiększa elastyczność i ułatwia skalowanie.
- łatwe zarządzanie – wydzielenie logiki przetwarzającej do osobnej warstwy przyczyniło się do ułatwienia zarządzania logiką – łatwiej zainstalować nową wersję oprogramowania, łatwiej monitorować itp.

