Das Content-Management-System als Backend-Lösung: iBeacons mit TYPO3 steuern und verwalten
Eine typische iBeacon-Anwendung zeigt einem Nutzer über eine mobile App in Abhängigkeit zu seiner Position bestimmte Informationen an. Dabei erkennt die Anwendung die Distanz zum iBeacon-Signalgeber und auch die Sender-ID. Je nach Signalstärke und ID löst die Applikation eine zuvor definierte Aktion aus – beispielsweise zeigt sie eine Mitteilung auf dem iPhone an.
Solch eine iBeacon-Anwendung erreicht sehr schnell einen Punkt, an dem die Verwaltung der einzelnen Beacons, also der Sendereinheiten, und die Erstellung sowie Auslieferung der App-Inhalte nur noch mit der Unterstützung einer Server-basierten Lösung sinnvoll ist. Dabei hat eine ideale iBeacon-Architektur die folgenden Komponenten:
Beacons
Die Bluetooth-Low-Energy (BLE)-Sensor-Tags senden im Standard-iBeacon regelmäßig ein Signal aus. Dieses beinhaltet die Universally Unique Identifier (UUDI) des Sensors und zwei ID-Informationen (Major/Minor).
Mobile App
iOS 7 und 8 enthält standardmäßig einen Dienst zum Auslesen eines iBeacon-Signals. iOS-Apps können deshalb iBeacon-Signale auswerten und per Event darauf reagieren.
Beacon-Server-Management
Diese Komponente registriert die Konfigurationswerte für iBeacon-Transmitter (UIDI, Major ID, Minor ID, Proximity) und verknüpft die entsprechenden App-Inhalte mit iBeacons.
Schnittstellen (APIs)
Eine iOS-App kann eine Liste benötigter Beacon-Transmitter vom Server per API beziehen und damit die eigene lokale App-Datenbank updaten. Ebenso lassen sich die Inhalte, die einem Beacon zugeordnet sind, in Echtzeit in die App laden. Alternativ ist es auch sinnvoll, Inhalte in einer lokalen Datenbank vorzuhalten und diese zu bestimmten Zeitpunkten mit dem Server zu synchronisieren. Für den Datenaustausch zwischen App und Server bieten sich JSON und XML an.
Content Management
Möchte man die Darstellung und den Inhalt von Informationen extern in einer App verwalten, ist ein Redaktionssystem hilfreich. Redakteure können hier Texte und Medien anlegen und die Anzeige an Beacons koppeln. Dies steuert dann die Anzeige und App.
TYPO3 als eierlegende Wollmilchsau
TYPO3 deckt als leistungsfähiges Redaktionssystem in dieser Architektur mehrere Aufgaben ab. Es ist sowohl Verwaltungs-Backend für Beacons, als auch Redaktionssystem und Schnittstelle für Apps. Dabei bietet TYPO3 von Haus aus ein umfangreiches Backend mit Benutzer-Management. Die Beacon-Management-Funktionen lassen sich per Extension einbinden.

Und so funktioniert der Ablauf: Bewegt sich der Nutzer einer mobilen iBeacon-App in die Nähe eines iBeacon-Transmitters, erkennt die iOS-App dies (siehe Abbildung oben, Punkt 1) und gleicht im Online-Modus die Inhalte mit dem Server ab (2). Der Server prüft daraufhin die aktuelle Verknüpfung von iBeacon und Inhalten – zum Beispiel im TYPO3-Redaktionssystem (3). Er bereitet diese Contents für die Übertragung vor (4), übermittelt sie an die App und aktualisiert die iBeacon-Liste (5).
Die Konfiguration der iBeacons
In diesem Beispiel legt der Entwickler die iBeacons über das TYPO3-Backend an und verwaltet sie auch dort. Über TCA speichert er die Konfigurationseinstellungen in MySQL. Für die Verwaltung der iBeacons stellt das TYPO3-Backend folgende Informationen dar:
Informationen zur Verwaltung von iBeacons in TYPO3 | |
UUID | Die individuelle Kennung der Beacon-Hersteller |
Major ID | Integer-Wert zur Gruppierung von Beacons |
Minor ID | Integer-Wert zur Kennung eines Beacons |
Area | Unter iBeacon sind drei Zonen zum Auslösen eines iBeacon-Events definiert: Inmediate (0-0,5 Meter) / Near (0,5-2 Meter) / Far (>2 Meter) |
RSSI | Die Kenngröße der individuellen Bluetooth-Sendestärke eines Beacons |
Content ID | Die Verknüpfung eines Beacons mit TYPO3-Inhaltselementen |
Über das TYPO3-Backend können Redakteure neue Beacons anlegen oder die Konfigurationswerte bestehender Beacons ändern. Über das TYPO3-Rechte-Management lässt sich zudem der Zugriff auf Beacons und Konfigurationswerte gezielt über Rechtegruppen steuern.
So kann man beispielsweise Beacons für verschiedene Kunden oder Apps in einem System getrennt verwalten. Damit eine App diese Konfigurationseinstellungen nutzen kann, gibt es mehrere Möglichkeiten:
- Die iBeacon-Konfiguration startet eine Echtzeit-Abfrage in Abhängigkeit des Benutzerkontextes. Für viele mobile Apps sind nur ausgewählte Beacons in einer Region von Bedeutung – etwa nur solche im Radius von 200 Meter um den Benutzer. Für ein solches Szenario ist es sinnvoll, dass die App je nach Nutzerstandort eine Konfigurationen der Beacons in unmittelbar Umgebung nachladen kann. Über eine JSON-Abfrage kann die App dann dynamisch je nach GPS-Koordinate alle iBeacons in der Umgebung abfragen und den dafür nötigen Content aktualisieren.
- Die App synchronisiert ihre iBeacon-Konfiguration mit Hilfe der von TYPO3 verwalteten Datenbank. Dazu baut die App zu definierten Zeitpunkten eine Verbindung zum Server auf und prüft, ob ein Redakteur eine neue iBeacon-Konfiguration erstellt hat. Dann aktualisiert die App ihre Datenbank.
Die XML-Schnittstelle zur Konfiguration
In beiden Fällen stellt eine TYPO3-Extension eine JSON- oder XML-Schnittstelle bereit, über die die App die iBeacon-Konfiguration abruft. Zusätzlich kann sie Inhalte aus TYPO3-Content-Elementen als XML bereitstellen.
Die Verknüpfung einer Content-ID mit einem Beacon erfolgt dazu ebenfalls in TYPO3, die App ruft sie per XML oder JSON ab. Die per XML übermittelte iBeacon-Konfiguration speichert die mobile App in ihrer lokalen Datenbank. Folgende Informationen gehen in XML beispielsweise an eine App:
<ibeaconsdata version="1.1"encoding="utf8" language="DE"> <ibeacon id="12"> <uuid>EBEFD083-70A2-47C8-9837-E7B5634DF524</uuid> <contentid>12</contentid> <major>10</major> <minor>2</minor> <rssi>80</rssi> <area>near</area </ibeacon> <ibeacon id="13"> <uuid>EBEFD083-70A2-47C8-9837-E7B5634DF524</uuid> <contentid>13</contentid> <major>10</major> <minor>1</minor> <rssi>80</rssi> <area>immediate</area> </ibeacon> </ibeacondata>
Listing 1
Da die Verfügbarkeit und Qualität von Internet-Verbindungen bei einem mobilen Anwendungsszenario nicht vorhersehbar ist, sollte die App auch im Offline-Modus mit iBeacon vernünftig funktionieren. Das heißt, die Informationen zu Beacons müssen auch lokal in der App gespeichert sein. Im Offline-Fall kann die App alle Informationen von dort abrufen.
Herausforderung Skalierung
Mobile iBeacon-Applikationen für den Point-of-Sale (POS) müssen skalierbar sein. Zum Beispiel sollte eine Anwendungsarchitektur für Coupon-Aktionen im Einzelhandel die Beacon-Verwaltung in unterschiedlichen Filialen und Verkaufsflächen berücksichtigen. Der Status der am POS installierten Beacons muss sich hierbei über einen zentralen Service überwachen lassen, um den Ausfall oder Verlust eines Beacons zu erkennen und ihn austauschen zu können.
Das Monitoring von Sensoren ist eine Standardherausforderung im Internet der Dinge und wird in der Regel über Knotenpunkte (Nodes) organisiert. Ein Knoten ist dabei eine vollwertige Rechnereinheit – beispielsweise ein Linux-System, das per WLAN/LAN mit dem Internet verbunden ist und mit Hilfe von Bluetooth 4.0 Beacons in der Umgebung erkennt und überwacht. Ein Node übermittelt in regelmäßigen Abständen den Zustand dieser Beacons an den Management-Server.

Nodes zur Überwachung von Beacons
Die Konfiguration eines Beacons ist in einem solchen Setting eine Herausforderung. Da Beacons über keine IP-Adresse und direkte Internet-Anbindung verfügen, muss ein Node eine Verbindung zu einem Beacon über das Bluetooth-GATT-Protocol aufbauen. Der Node kann dann per GATT auf die Firmware des Beacons zugreifen, dort Werte auslesen oder setzen. Damit lässt sich das Sendeintervall eines iBeacons ändern oder der Ladestatus der Batterie auslesen. Erst der Node kann per Internet mit dem zentralen Management-System kommunizieren. Dies erschwert die zentrale Verwaltung einzelner Beacons an unterschiedlichen Standorten.
Neben der Überwachung der Beacons ist es auch notwendig, die Zustände der dazwischen geschalteten Nodes zu überwachen. Auch hier kann TYPO3 zur Darstellung und Verwaltung der gesammelten Monitoring-Informationen genutzt werden. Ein NAGIOS-System lässt sich dagegen für die aktive Überwachung der Nodes einsetzen.
iBeacon im Prototypen-Stadium
Die meisten iBeacon-Installationen, die derzeit im Einzelhandel zum Einsatz kommen, befinden sich noch im Prototypen-Status. Denn noch kämpft die Technologie mit einigen Herausforderungen. So ist die Stromversorgung der Beacons etwa mehrheitlich von Batterien abhängig – und die müssen die Einzelhändler, je nach Hersteller-Typ und Beacon-Konfiguration, etwa alle sechs Monate bis zwei Jahre austauschen. Dazu kommt, dass die Entwickler die kleinen Funksender vor Ort und mit Hilfe einer App neu konfigurieren müssen, wenn sich die Sendereinstellung ändert. Damit so ein System mit zahlreichen Beacons an mehreren hundert verteilten Standorten jedoch wirtschaftlich sinnvoll ist, braucht es eine permanente Stromversorgung, ein Vor-Ort-Monitoring und eine Fernkonfiguration einzelner Sender.

Nodes für die Verwaltung der Beacons einzusetzen ist daher sinnvoll – aber auch eine Herausforderung. Ein einfacher Node beinhaltet beispielsweise ein Linux-Betriebssystem, eine LAN/WLAN/3G-Schnittstelle und einen Bluetooth-4.0-USB-Dongle. Zur Steuerung durch den zentralenen Management-Server braucht ein solcher Node außerdem eine Remote-Command-And-Control-Architektur, die die Möglichkeiten eines Redaktionssystems übersteigen. TYPO3 spielt an dieser Stelle nur eine untergeordnete Rolle.
Fazit
Die volle Stärke von TYPO3 liegt in diesem Umfeld in der redaktionellen Verwaltung der Beacon-Konfigurationen. Über den komplexeren Umweg lokaler Nodes lassen sich dann auch einzelne Beacons verwalten. Doch die Informationen zu den Beacons und die Verteilung der Inhalte an mobile Apps müssen auch in hoher Skalierung funktionieren. Für diese Aufgabe lässt sich TYPO3 beispielsweise im Umfeld einer hochverfügbaren Amazon-Elastic-Compute-Cloud (EC2) betreiben. Das Server-System kann dann mit dem Grad der Nutzung von mobilen Apps und verwalteten Beacons mitwachsen. TYPO3 ist dieser Aufgabe gewachsen. Wer zudem im Rahmen von agiler Software-Entwicklung zügig ein einfaches Beacon-App-Management-System aufbauen möchte, dem bietet TYPO3 eine gute Ausgangsbasis.