iX 4/2018
S. 70
Review
Datenbanken
Aufmacherbild

Mobiler Datenaustausch mit Realm

Kooperateur

Viele Entwickler nutzen die Realm mobile Database als kostenlose Alternative zu den proprietären Datenbanken mobiler Plattformen. Anfang März hat der Hersteller allerdings das Geschäftsmodell der Realm Platform dahin gehend geändert, dass die einfache Entwicklerversion nun nur noch sehr eingeschränkt zur Verfügung steht.

Die bei mobilen Betriebssystemen mitgelieferten Datenbanksysteme sind zum Teil mangelhaft und lassen bei Entwicklern schnell den Wunsch nach einer einfachen und soliden Alternative aufkommen. Da viele Apps für mehrere etablierte Zielplattformen entwickelt werden müssen, wünschen sich viele Product Owner und Systemarchitekten zudem identische Komponenten, auf die sie innerhalb der Architekturen zurückgreifen können.

Daher sind im Windschatten der bei mobilen Plattformen mitgelieferten Datenbanken viele proprietäre Systeme entstanden, die allerdings nur wenig verbreitet sind. Eine Ausnahme bildet die Realm mobile Database, die zusehends die propritären Datenbanksysteme ersetzt. Laut Website des Herstellers Realm.io setzen bereits viele namhafte Hersteller auf dieses mobile DBMS, und im „DB-Engines Ranking von Relational DBMS“ ist es mittlerweile auf Platz 29 geklettert (zu Quellen im Web siehe ix.de/ix1804070). Der Artikel stellt Realm als Datenbanksystem kurz vor und beschreibt die neuen Möglichkeiten, die sich mit der Einführung der Realm Platform ergeben haben, die seit Ende 2017 in der Version 2 zur Verfügung steht. Laut Hersteller soll die neue Version im Vergleich zum Vorgänger hinsichtlich Skalierbarkeit, Fehlersicherheit, Stabilität und Performanz stark verbessert worden sein.

Store mit lebenden Objekten

Realm.io ist ein 2011 gegründetes Unternehmen mit Sitz in San Francisco. Im Jahr 2014 hat Realm.io die erste Version der Realm mobile Database vorgestellt, 2016 kam die Realm Platform dazu, eine Serverkomponente, die die gängigen Aufgaben für die Synchronisation mehrerer Clients (Apps) übernimmt und es dem Entwickler erspart, selbst Daten über proprietäre Schnittstellen auszutauschen. Die Realm Platform stellt die Datenobjekte, ein Event- und ein Autorisierungssystem sowie eine Zugriffsverwaltung bereit. Die Kommunikation mit den Clients erfolgt stets über einen Verschlüsselungs-Layer und ermöglicht zudem eine Synchronisation in Echtzeit. Ergänzend lassen sich weitere Quellsysteme über Konnektoren individuell anbinden, etwa Daten aus einem SAP-System oder einer Human-Resources-Anwendung.

Anders als bei etablierten Datenbanksystemen handelt es sich bei der Realm mobile Database selbst nicht um eine im engeren Sinne relationale Datenbank, sondern um einen Objectstore, der die Daten als sogenannte Living Objects vorhält. Durch Ereignisse ausgelöste Änderungen an Attributen werden der Datenbank in Echtzeit mitgeteilt, sodass sie betroffene Programmstrukturen darüber sofort informieren kann. Hierdurch lässt sich das Reactive-Pattern auf einfache Weise realisieren.

Der Einsatz der Realm mobile Database in Kombination mit der Realm Platform erleichtert die Kommunikation zwischen Clients unterschiedlicher Betriebssysteme deutlich (Abb. 1).

Zwar lässt sich das DBMS auch ohne die Realm Platform betreiben, aber deren Serverkomponente liefert zusätzlich alle relevanten Schichten zur Datenablage und Rechteverwaltung, zum Monitoring sowie zur Anbindung von Drittsystemen. Die Realm Platform erhebt nicht den Anspruch, Backend-Systeme zu ersetzen, vielmehr fungiert sie als zentraler Datenbahnhof für mobile Client-Systeme. Entwickler können so Apps unterschiedlicher Betriebssysteme, die die Realm mobile Database implementieren, auf einfache Weise verbinden, um die Daten zu synchronisieren.