Architektura aplikacji mobilnych

Istnieje wiele rozwiązań dotyczących projektowania aplikacji mobilnych. Wybór konkretnej architektury lub decyzji projektowej zależy od kilku czynników, takich jak:

  • Docelowi użytkownicy
  • Typ aplikacji
  • Wsparcie dla różnych platform mobilnych i niemobilnych
  • Potrzeby związane z łącznością
  • Potrzeby związane z przechowywaniem danych
  • Połączenia z innymi urządzeniami, w tym z urządzeniami IoT

Decyzje architektoniczne obejmują:

  • Architektura po stronie klienta — na przykład klient cienki lub gruby
  • Architektura po stronie serwera — na przykład architektura jedno- lub wielowarstwowa
  • Typ połączenia — na przykład Wi-Fi, dane komórkowe, Near Field Communication (NFC), Bluetooth
  • Metody synchronizacji danych — takie jak store-and-forward, push i pull, komunikacja synchroniczna i asynchroniczna

Klient cienki to aplikacja, która nie zawiera kodu aplikacji dostosowanego do urządzenia i w minimalnym stopniu korzysta z funkcji systemu operacyjnego urządzenia mobilnego. Takie aplikacje zazwyczaj korzystają z przeglądarki internetowej jako interfejsu użytkownika i JavaScriptu do implementacji logiki po stronie klienta.

Aplikacje grube (ciężkie) mogą mieć wiele warstw kodu aplikacji i mogą korzystać z funkcji systemu operacyjnego urządzenia mobilnego. Są to zazwyczaj aplikacje natywne lub hybrydowe.

Architektury po stronie serwera

Architektury po stronie serwera obejmują następujące możliwości:

  • Architektura jednowarstwowa — jest monolityczna i ma wszystkie serwery na tej samej maszynie. Jest mniej skalowalna i trudniejsza do zabezpieczenia.
  • Architektura wielowarstwowa — rozdziela komponenty po stronie serwera na różne jednostki. Architektura dwuwarstwowa obejmuje osobne serwery WWW i bazy danych, podczas gdy architektura trójwarstwowa dodatkowo obejmuje serwer aplikacji.
    Architektury wielowarstwowe pozwalają na rozdzielenie odpowiedzialności, zapewniają specjalizację bazy danych oraz oferują lepszą elastyczność, skalowalność i bezpieczeństwo. Jednak mogą być znacznie droższe w rozwoju, zarządzaniu i hostowaniu w porównaniu do architektury jednowarstwowej.

Metody połączenia

Różne metody połączenia obejmują połączenie urządzenia mobilnego z serwerem przez Wi-Fi lub przez połączenia danych komórkowych, takie jak 2G, 3G, 4G i 5G.
Aplikacje mobilne zazwyczaj działają w jednym z trzech trybów:

  • Aplikacje nigdy niepołączone — działają offline i nie wymagają połączenia z siecią (np. prosty kalkulator).
  • Aplikacje zawsze połączone — wymagają stałego połączenia z siecią podczas działania. Wszystkie mobilne aplikacje internetowe należą do tej kategorii, choć niektóre mogą działać w ograniczony sposób, gdy są częściowo połączone.
  • Aplikacje częściowo połączone — wymagają połączenia do zadań takich jak transfer danych, ale mogą działać przez długi czas bez połączenia.

Synchronizacja danych

Synchronizacja danych między klientem a serwerem może odbywać się w następujących trybach:

  • Tryb ciągły — dane są przesyłane natychmiast po ich zgłoszeniu.
  • Tryb store-and-forward — dane mogą być przechowywane lokalnie przed przesłaniem, zwłaszcza gdy nie ma dostępności połączenia.

Transfer danych

Transfer danych może być realizowany w dwóch podejściach:

  • Transfer synchroniczny — odbywa się, gdy funkcja wywołująca czeka na zakończenie funkcji wywołanej przed zwróceniem wyniku.
  • Transfer asynchroniczny — odbywa się, gdy wywołana funkcja serwera natychmiast zwraca wynik, przetwarza dane w tle i wywołuje funkcję klienta po zakończeniu zadania.
    Daje to użytkownikom większą kontrolę, jednak wdrożenie mechanizmu handshake zwiększa złożoność dotyczącą dostępności klienta lub sieci, gdy serwer inicjuje odpowiedź zwrotną.