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 aplikacjiwielokrokowość 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 jest przechowywana po stronie klienta, a nie serwera.

Definicja ta jest rozszerzeniem pojęcia 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 (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, używający stanowego protokołu TCP może realizować komunikację zarówno dla stanowej jak i bezstanowej aplikacji.

Zalety bezstanowości aplikacji łatwiejsze horyzontalne skalowanie na wielu serwerach 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 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 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) centruj

aplikacja realizująca komunikację stanowo (ang. stateful) centruj

Przypisy

Kategoria:Architektura oprogramowania