© Benevolente82/Shutterstock.com
Teil 1: BaaS- und Firebase-Funktionen im Überblick

Firebase - die Power aus dem Hintergrund


Android-Apps programmiert man am besten in Java und Android Studio. Und das Backend, wie entwickelt man das? Im Idealfall gar nicht! Firebase ist der von Google betriebene Clouddienst, der umfassende Services primär für Android-Apps zur Verfügung stellt. In vielen Fällen kann man auf diesen Backend-Dienst setzen und kommt damit zügig zum Ziel.

Apps für mobile Geräte beziehen Daten und Logik zu einem Großteil aus der Cloud. Sieht man von wenigen komplett offlinefähigen Applikationen ab, nutzen die meisten Apps umfassende Dienste. Diese Art von Cloudservice wird als Backend as a Service (BaaS) bezeichnet. Eine Reihe von Anbietern konkurriert mit im Detail unterschiedlichen, aber in der Funktionsweise ähnlichen Konzepten um die Gunst der Entwickler. In dieser dreiteiligen Artikelserie wird es primär um Firebase gehen. Firebase ist der Clouddienst aus dem Hause Google und damit insbesondere für die Arbeit mit Android-Apps geeignet. Andererseits ist man weder als Android-Programmierer an Firebase gebunden noch beschränkt sich die Unterstützung von Firebase auf dieses Betriebssystem. Es ist sinnvoll, sich mit der Funktionsweise und der Verwendung eines BaaS-Dienstes intensiv zu beschäftigen. Hat man grundlegende Kenntnisse, wie man hier vorgehen sollte, geht die Programmierung der nächsten App mit Sicherheit viel schneller voran. Auch bekommt man ein Gefühl dafür, welcher BaaS-Dienst für die eine oder andere Aufgabe besser geeignet ist.

Wir beginnen mit einem allgemeinen Überblick zu den Aufgaben eines BaaS-Dienstes und sehen uns dann die inzwischen so umfangreichen Services von Firebase im Überblick an. Die Teile zwei und drei sind dann der Praxis gewidmet. Themen sind die Nutzung der Services von Firebase von der Authentifizierung bis zur Datenspeicherung.

Backend as a Service – eine Einordnung

In diesem Abschnitt geht es um die Nutzung von Clouddiensten für mobile Apps – vornehmlich im unternehmerischen Umfeld (Mobile Enterprise Computing). In etwas reduzierter Form lassen sich die Funktionen auch auf die Nutzung von Apps für das private Umfeld übertragen. Mobile Enterprise Computing umfasst gewissermaßen drei Infrastrukturbereiche (Abb. 1).

krypczyk_bochkor_firebase_1_1.tif_fmt1.jpgAbb. 1: Technische Infrastruktur für Moblie Enterprise Computing

Beginnen wir in der Abbildung ganz links: Die Clients sind die mobilen Endgeräte, auf denen die Apps laufen, die Sie für die betriebliche Nutzung programmiert haben. Dabei treffen wir auf eine umfassende Systemvielfalt in Hard- und Software. Blicken wir nun nach ganz rechts. Die IT-Infrastruktur ist meist schon vorhanden. Gemeint sind die Anwendungs- und Datenbankserver, auf denen die Businessapplikationen installiert sind. Dieser Teil der Technik ist oft schon seit Jahren in Betrieb, hat sich bewährt und wurde in der Regel erstellt, als an Mobile Computing in der vorliegenden Form nicht zu denken war. Das Ziel ist es, einen Teil der Services und die Daten für die mobile Nutzung zur Verfügung zu stellen. Im Zentrum unserer Betrachtungen steht die so genannte Middleware.

Hier ist es wie beim Fußball. Für das Schießen der Tore sind die Stürmer verantwortlich. Dazu bewegen Sie sich vorrangig in der gegnerischen Hälfte. Der Spielaufbau beginnt dagegen am eigenen Tor. Die Abwehr hat nach erfolgreicher Verteidigung den Ball erobert. Nun muss dieser zu den Spielern des eignen Angriffs katapultiert werden. Klar könnten Sie den Ball direkt dorthin schießen, doch die Erfolgsquote ist in der Regel nicht berauschend. Viel besser gelingt der Spielaufbau über das Mittelfeld, das die Bälle aus der Abwehr übernimmt und die Angreifer in die Lage versetzt, sich in Szene zu setzen. Unsere Middleware hat eine ähnliche Funktion. Sie sorgt dafür, dass die mobilen Clients einen Zugriff auf die Unternehmens-IT bekommen. Dazu verfügt sie über Schnittstellen auf Client- und auf Serverseite. Zusätzlich bieten sich spezifische, auf das Mobile Computing abgestimmte Systemfunktionen an. Diese Art von Middleware trägt dann den eindrucksvollen Namen Backend as a Service. Dazu gehören u. a. eine Benutzerverwaltung, ein (temporärer) Datenspeicher und gegebenenfalls die Anbindung sozialer Netzwerke für erweiterte Szenarien der Benutzerauthentifizierung.

Typisch ist es, eine solche Middleware in die Cloud auszulagern. Damit ist es eine besondere Form des Cloud-Computings. Beim Cloud-Computing werden bekanntermaßen Hard- und Software als Service über das Internet angeboten. Die Kernelemente des Cloud-Computings werden in drei große Bereiche unterteilt: Software as a Service (SaaS), Platform as a Service (PaaS) und Infrastructure as a Service (IaaS). Unter SaaS versteht man die Nutzung von Anwendungen und Programmen. Das Angebot reicht von einzelnen Applikationen bis hin zur vollständigen Arbeitsumgebung. Bei PaaS kann der Kunde ein komplettes, vorkonfiguriertes System nutzen. Dazu gehören beispielsweise einfache Testsysteme bis hin zur Bereitstellung ganzer Rechencluster, um komplexe Aufgaben zu bearbeiten. Bei IaaS geht es um das Bereitstellen von virtualisierten Betriebsmitteln wie CPUs, Hauptspeicher, Massenspeicher, Netzwerkkomponenten und Ähnlichem. BaaS ist eine Sonderform des Cloud-Computings, die auf die Anforderungen von Apps und mobilen Webanwendungen ausgerichtet ist und oft auch als Zwischenschicht dient.

Anforderungen für eine BaaS-Lösung

Das Rad stetig neu zu erfinden, ist wenig effektiv und ziemlich fehlerbehaftet. Wir als Entwickler freuen uns, wenn wir auf bereits implementierte und erprobte Funktionen zurückgreifen können. So sparen wir Arbeit, Zeit, Geld und vor allem Nerven. Wir sind schneller fertig, und es besteht die Chance auf einen pünktlichen Feierabend. BaaS- bzw. Middlewarelösungen sollten dabei die folgenden Anforderungen erfüllen bzw. Funktionen bereitstellen, denn die Aufgaben gleichen sich zwischen den Systemen.

  • Clientanbindung: Das Ziel besteht darin, auf Clientseite möglichst keine Einschränkungen vorzunehmen. Idealerweise kann die gesamte Breite der bestehenden Technologien angebunden werden. Dabei muss man berücksichtigen, dass die heutige Systemvielfalt eno...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang