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ą.