dembol.org

Java and distributed systems architecture

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.

 


Źródło: opracowanie własne

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

 


Źródło: opracowanie własne

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.

 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

*

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>