Zugriff auf die Wolke für Mobile Apps

Daten für die Apps auf mobilen Geräten werden meist über Backend-Dienste bereitgestellt. Viele Aufgaben wie Benutzerverwaltung, Datenspeicherung und Messaging, wiederholen sich. Eine wichtige Anforderung ist die leichte Integration dieser Dienste, um ein schnelles Time-To- Market zu unterstützen. Idealerweise lassen sich die Backend-Services auf dem Wege der Konfiguration anbinden.

Apps für die mobilen Geräte werden für immer mehr Anwendungen im privaten und beruflichen Umfeld zur Verfügung gestellt. Der Datenaustauch erfolgt über das Internet und erlaubt den Nutzern von überall einen Zugriff auf die gewünschten Informationen. Um diese Anforderungen zu erfüllen, setzt man nur selten einen eigenen Server ein. Leichtgewichtiger, flexibler und kostengünstiger geht es durch die Verwendung eines Cloud-Service. Unterschiedliche Anbieter stellen Backend as a Service (BaaS) Dienste bereit. Aus Sicht der Entwicklung besteht die Herausforderung darin, den Backend Service in die eigene App anzubinden. Besonders einfach kann das gelingen, wenn man auf vorgefertigte Komponenten zurückgreifen kann.

Anzeige

Funktionen eines Mobilen Backends

BaaS ist eine Sonderform des Cloud-Computings. Es werden eine Reihe von typischen Funktionen gebündelt

  • Datendienste: Die Speicherung der Daten erfolgt in Tabellen- oder Dokumentenform. NoSQL-Datenspeicher bieten eine hohe Flexibilität.
  • Benutzermanagement: Oft ist eine Anmeldung durch den Nutzer notwendig. Das kann über ein eigenes Konto oder über einen Social Media Dienst (Facebook, Google) erfolgen.
  • Messaging/ Push Notification: Diese Funktion benachrichtigt registrierte Clients über Ereignisse, welche durch andere Clients oder zentral ausgelöst werden.
  • Offline-Synchronisation: Diese Funktion erlaubt nach einem Offline-Betrieb der App eine Synchronisation der Daten.
  • Analytics: Man erhält Informationen über das Nutzerverhalten.

Artikel BaaS Bild 1

Bild: Kernfunktionen eines mobilen Backends und Einordnung in die Systematik des Cloud-Computings

Einige BaaS-Dienstleister bieten weitere Funktionen für mobile Apps. Die Kosten richten sich i.d.R. nach der Nutzungsintensität.

Backend Services

BaaS-Dienste werden von unterschiedlichen Anbietern bereitgestellt. Dazu gehören Firebase (Google), AWS (Amazon) und Azure (Microsoft). Es handelt sich um Full-Service-Angebote, d.h. die Funktionen sind Bestandteil eines umfassenden Cloud-Services aus den unterschiedlichsten Bereichen.  Eine Zusammenstellung weiterer Angebote findet man unter [5]. Neben den Kosten für die Nutzung sollten Entscheider bei der Auswahl weitere Kriterien berücksichtigen: Funktionsumfang, Datensicherheit/ Datenschutz, Export- und Importmöglichkeit für Daten, technische Performance, Skalierbarkeit, Support und Dokumentation. Die konkreten Anforderungen sind vom Zweck der App abhängig. Der Aspekt des Datenschutzes gewinnt an Bedeutung, da man oft personenbezogene Daten der Nutzer verarbeitet. Werden Apps für Unternehmen (Mobile Enterprise Computing) entwickelt, ist meist die Einbindung in eine bestehende Unternehmens-IT gefragt. Auch diese Aufgabe kann durch ein BaaS in Funktion einer Middleware übernehmen.

NL Icon 1
Jetzt die smarten News aus der IT-Welt abonnieren! 💌

Mit Klick auf den Button “Zum Newsletter anmelden” stimme ich der Datenschutzerklärung zu.

App Integration von Cloud- und Backend Services

Die meisten Anbieter stellen ein generisches API auf der Basis von REST für eine universelle Nutzung bereit. Komfortabler gestaltet sich die Arbeit, wenn ein spezifisches SDK (Software Development Kit) für die jeweilige Programmiersprache angeboten wird. Stehen fertige Komponenten zur Verfügung, kann mittels Konfiguration die Integration des BaaS auf einfache Art und Weise erfolgen.

Grundsätzlich ist die Funktionsweise der Dienste ähnlich. Unterschiede gibt es primär bei der technischen Einbindung und der Konfiguration. Üblicherweise muss man sich beim Dienst registrieren, eine Service-Vereinbarung abschließen und über ein Dashboard eine initiale Konfiguration vornehmen. Beispielhaft wird die Vorgehensweise aus der integrierten Entwicklungsumgebung RAD Studio [4] betrachtet. RAD Studio ermöglicht das Erstellen von Apps für eine Vielzahl von Gerätetypen (Desktop, Mobile) und Systeme (Windows, macOS, Linux, iOS, Android). Dabei wird ein komponentenbasierter Ansatz eingesetzt, d.h. der Entwickler kann für typische Aufgaben auf Softwarekomponenten zurückgreifen. Neben visuellen Elementen für die Gestaltung des User Interfaces, betrifft dieses auch funktionale Aspekte, wie die Einbindung von Cloud Services.

Artikel BaaS Bild 2

 

Bild: Konfiguration der Cloud-Komponenten im grafischen Designer (RAD Studio)

Dazu stehen zum Beispiel die Komponenten Kinvey- und Parse-Provider zur Verfügung. Es finden sich Komponenten für die üblichen Funktionen (siehe oben), wie Benutzerverwaltung (BackendUsers), die Datenspeicherung (BackendStorage) oder zum Senden und Empfangen von Push-Benachrichtigungen (BackendPush). Nutzt man Kinvey muss man im Dashboard des BaaS-Providers eine neue App erstellen. Es werden die App-Geheimnisse: App ID, App Secret und Master Secret generiert, welche dann in den Eigenschaften der Komponente KinveyProvider zu hinterlegen sind. Mit diesen Schritten kann man den Cloud Service aus der App nutzen, d.h. man kann die Funktionen über die Methoden der Komponenten ansprechen. Gegenüber der Nutzung eines generischen API ist dieses deutlich einfacher und man kommt schneller zum Ziel.

Für die Nutzung der Dienste von Azure und Amazon gibt es weitere spezialisierte Komponenten in RAD Studio:

  • AmazonConnectionInfo: Diese bietet Unterstützung für Amazon Simple Queue Service (SQS), Amazon Simple Storage Service (S3) und Amazon SimpleDB Service.
  • TAzureConnectionInfo: Es werden die Funktionen des Azure Portals für Mobile Apps bereitgestellt.

Beide Komponenten dienen dazu mehrschichtige Anwendungen mit Hilfe von Cloud-Services zu erstellen. RAD Studio integriert die Cloud Service auf einfache Art in die eigene App.

Artikel BaaS Bild 3

Bild: Cloud Services in die eigene App einbinden (Übersichtsdarstellung) [4].

Mit Hilfe der Dienste von Azure und Amazon können Aufgaben der Datenspeicherung, der Benutzerverwaltung usw. abgewickelt werden. Ebenso bieten sie auch den Zugang zu weiteren Unternehmensdatenquellen und die Möglichkeit RAD Studio Applikationen in der Cloud zu hosten (Enterprise Computing).

Fazit

Mobile Apps brauchen einen leistungsstarken Dienst im Hintergrund. Daten und Funktionen müssen flexibel und hoch verfügbar bereitgestellt werden. Das geschieht i.d.R. über einem Backend als Cloud-Service. Standardfunktionen können auf dem Wege der Konfiguration bereitgestellt werden. Mit Hilfe eines komponentenbasierten Ansatzes wird die Integration in die eigene App deutlich erleichtert und beschleunigt.

Quellen

[1] https://firebase.google.com/

[2] https://aws.amazon.com/de/

[3] https://azure.microsoft.com/de-de/services/app-service/mobile/

[4] https://www.embarcadero.com/de/products/rad-studio

[5] https://www.g2.com/categories/mobile-backend-as-a-service-mbaas

 

Dr. Veikko Krypczyk ist begeisterter Entwickler und Fachautor, https://larinet.com

Artikel zu diesem Thema

Weitere Artikel

Jetzt die smarten News aus der IT-Welt abonnieren! 💌

Mit Klick auf den Button “Zum Newsletter anmelden” stimme ich der Datenschutzerklärung zu.