Front-end i back-end aplikacji (cz. 2)

Application front-end and back-end (part 2)

 3 min czytania

Back-end, czyli zaplecze techniczne aplikacji

Back-end to część aplikacji internetowej osadzona na serwerze dostawcy aplikacji. Z reguły składają się na niego dwie warstwy – baza lub bazy danych oraz kod właściwiej aplikacji. O ile w przypadku front-endu można mówić o pewnej standaryzacji wykorzystywanych narzędzi, w dużym stopniu narzuconej przez dostępne na rynku przeglądarki internetowe, o tyle na back-endzie swoboda w doborze narzędzi, takich jak języki programowania lub rodzaje baz danych, jest dużo większa.

Popularne zestawy narzędzi gromadzone są w postaci tzw. frameworków, czyli środowisk obejmujących gotowe implementacje wybranych rozwiązań wraz z modułami rozszerzającymi ich funkcjonalność (bibliotekami), umożliwiając szybsze rozpoczęcie pracy nad właściwą aplikacją.

Niezależnie od wyboru frameworku lub indywidualnych narzędzi, back-end jako całość musi spełnić pewne zadania w kontekście działania aplikacji. Wśród tych zadań można wyróżnić:

  • obsługę zapytań otrzymywanych ze strony aplikacji klienta – w tym weryfikację ich poprawności oraz udzielenie odpowiedzi dostosowanej do treści zapytania
  • wymianę informacji z bazą danych – kod aplikacji musi umożliwiać zarówno pobieranie danych (na przykład: listę ostatnio oglądanych filmów), jak również ich zapis (np. zarejestrowanie nowego użytkownika) lub edycję (np. zmianę hasła)
  • wygenerowanie struktury strony internetowej, w oparciu o dostępne szablony oraz informacje z bazy danych, który umożliwi jej wyświetlenie przez aplikację klienta

Popularnym rozwiązaniem stosowanym przez wielu twórców aplikacji jest przypisanie dedykowanego modułu aplikacji do realizacji każdego z tych zadań. Na takich założeniach opiera się m.in. prawdopodobnie najpowszechniej stosowany w aplikacjach internetowych wzorzec projektowy o nazwie MVC (ang. model-view-controller).

W jego przypadku za kontakt z aplikacją klienta oraz zarządzanie całym procesem przygotowywania odpowiedzi odpowiada kontroler, natomiast za generowanie struktury strony internetowej oraz kontakt z bazą danych są odpowiedzialne podporządkowane mu moduły: widok oraz model.

Czy to koniec?

Oczywiście, że nie! Wiele zaawansowanych aplikacji w istocie wykorzystuje inne, mniejsze aplikacje podczas swojego działania, wymieniając z nimi informacje lub wykorzystując zaimplementowane w nich funkcjonalności. Aby było to możliwe, oprócz standardowego połączenia pomiędzy klientem a serwerem, twórcy aplikacji przygotowują tak zwane API (ang. application programming interface) – dedykowane interfejsy pozwalające na obsługę zapytań generowanych przez inne aplikacje.

Działają one w zbliżony sposób do połączenia pomiędzy back-endem a front-endem – w celu ich prawidłowego funkcjonowania konieczne jest określenie pewnych standardów – protokołu oraz procedur, które pozwolą dwóm aplikacjom na wzajemne rozumienie wysyłanych sobie pytań i odpowiedzi.

Z wykorzystaniem API można dodać do swojej aplikacji wiele gotowych, istniejących na rynku rozwiązań, wykorzystywanych na przykład do identyfikacji użytkownika lub realizowania płatności internetowych.

Zbiór wszystkich technologicznych rozwiązań zastosowanych w danej aplikacji – narzędzi oraz frameworków wykorzystanych w back-endzie oraz front-endzie, a także dodatkowych modułów połączonych poprzez API – nazwa się „stosem technologicznym”.

Przykładowe stosy wykorzystywane przez popularne aplikacje internetowe można znaleźć pod adresem:
https://stackshare.io/

W kontekście aplikacji internetowych warto też wspomnieć o „ciasteczkach” – niewielkich plikach przechowywanych na urządzeniu użytkownika, które zawierają informacje przesyłane do serwera wraz z częścią zapytań. Dzięki nim możliwe jest na przykład pozostanie zalogowanym w aplikacji pomimo zamknięcia okna przeglądarki – informacja o aktywnym użytkowniku jest przechowywana w pliku cookie i podczas kolejnej sesji łączenia się z serwerem umożliwia jego identyfikację i wygenerowanie spersonalizowanej odpowiedzi.

Stosunkowo nowym trendem jest tworzenie aplikacji internetowych z możliwością zainstalowania na urządzeniu użytkownika oraz działania bez połączenia z siecią – wybrane dane niezbędne do prawidłowego funkcjonowania aplikacji są wówczas przechowywane w pamięci podręcznej (ang. cache) i synchronizowane z serwerem po przywróceniu połączenia z siecią. Jednym z prekursorów takiego rozwiązania jest Google ze swoją propozycją aplikacji nowej generacji – PWA (ang. Progressive Web Application). Więcej na temat tego projektu można przeczytać na jego stronie:
https://web.dev/progressive-web-apps/

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *