Przejdź do zawartości

Aplikacja bezstanowa

Z Wikipedii, wolnej encyklopedii

Aplikacja bezstanowa (ang. stateless application) – to aplikacja, która udostępnia funkcjonalności swoim klientom, w taki sposób, że informacja o stanie wielokrokowego użycia aplikacji[1] jest przechowywana po stronie klienta, a nie serwera.

Definicja ta jest rozszerzeniem pojęcia protokołu bezstanowego(inne języki) na aplikacje, rozszerzając zasadę przechowywania stanu sesji na stan wielokrokowego użycia aplikacji. Stan ten może być zapisywany w sesji użytkownika po stronie klienta (aplikacja bezstanowa) lub serwera (aplikacja stanowa, ang. stateful application).

Bezstanowość aplikacji nie oznacza braku przechowywania przez nią danych[2] (persystencji danych), taka aplikacja może posiadać dane zapisane w jakiejś formie persystencji (np. baza danych, pliki itd).

Aplikacja bezstanowa w komunikacji z klientem może korzystać zarówno ze stanowych jak i bezstanowych protokołów komunikacyjnych, użycie protokołu nie jest tu wyróżnikiem. Przykładowo bezstanowy protokół HTTP[3], używający stanowego protokołu TCP[4] może realizować komunikację zarówno dla stanowej jak i bezstanowej aplikacji.

Zalety bezstanowości aplikacji[edytuj | edytuj kod]

  • łatwiejsze horyzontalne skalowanie na wielu serwerach[5]
  • poszczególne instancje aplikacji nie muszą wymieniać między sobą informacji o stanie wielokrokowego użycia aplikacji (sesji użytkownika)
  • dowolność połączeń klient - serwer, czyli każde wywołanie klienta może być obsłużone przez dowolną instancję aplikacji[6]
  • większa niezawodność aplikacji - gdy w trakcie użycia, używana przez klienta instancja aplikacji staje się niedostępna, klient może kontynuować użycie aplikacji, nie musi rozpoczynać od początku
  • łatwiejsze cache'owanie aplikacji

Aplikacja bezstanowa a aplikacja stanowa - przykład[edytuj | edytuj kod]

Przykładowa aplikacja udostępnia informacje nt. stanu jakości powietrza. Przykładowa aplikacja nie wymaga uwierzytelniania. Udostępniana funkcjonalność jest wielokrokowa, gdyż wymaga:

  • wybrania czujnika spośród dostępnych
  • pobrania informacji nt. pomiaru z wybranego czujnika

Aplikacja taka może być zrealizowana zarówno w bezstanowy i jak i stanowy sposób. W obu przypadkach aplikacja może przechowywać dane pomiarowe.

aplikacja realizująca komunikację bezstanowo (ang. stateless)[edytuj | edytuj kod]

aplikacja realizująca komunikację stanowo (ang. stateful)[edytuj | edytuj kod]

Przypisy[edytuj | edytuj kod]

  1. wielokrokowość jest elementem wymaganym do rozróżnienia aplikacji bezstanowej i stanowej. Jeżeli aplikacja udostępnia funkcjonalności jedynie jednokrokowo (jedynie jeden krok jest potrzebny do skorzystania z funkcjonalności), to nie można rozróżnić czy jest ona stanowa czy bezstanowa w świetle tej definicji
  2. Stateful vs. Stateless Web App Design [online], DreamFactory Software- Blog, 28 września 2020 [dostęp 2021-10-24] (ang.).
  3. HTTP is a stateless protocol [online], home.sandiego.edu [dostęp 2021-10-24].
  4. Is TCP protocol stateless? [online], NewbeDEV [dostęp 2021-10-24] (ang.).
  5. Rachna Singhal, Stateless Over Stateful Applications [online], Medium, 8 kwietnia 2019 [dostęp 2021-10-24] (ang.).
  6. Stateful vs Stateless Architecture: Why Stateless Won | Virtasant [online], www.virtasant.com [dostęp 2021-10-24] (ang.).