Das mobile Betriebssystem als Schnittstelle zum IoT

Android als Schaltzentrale des Internets der Dinge
Kommentare

Android hat den Smartphone- und Tablet-Markt fest im Griff. Doch darüber hinaus erobert das System auch die Embedded-Welt – und könnte ein wichtige Rolle im Internet-of-Things-(IoT-)Ökosystem einnehmen. Aber wie passt ein Smartphone- bzw. Tablet-Betriebssystem in die IoT-Welt? Eine Positionsbestimmung.

Smartphones und Tablets – auf diesen Geräteklassen kennt mittlerweile jeder das Android- Betriebssystem. Größter Marktanteil. Riesige Entwicklergemeinde. Konkurrent iOS überholt. Alles soweit bekannt. Doch abseits dieser offensichtlichen Entwicklung verändert Android auch eine Welt, die noch nicht so sehr im öffentlichen Fokus steht: die so genannten Embedded-Systeme. In diesem Segment findet gerade ein Wandel statt, der durch mehrere Faktoren getrieben wird. Embedded-Systeme werden in der Welt der vernetzten Consumer-Produkte immer wichtiger. Dabei steigt der Anspruch der Kunden an die User Experience dieser Geräte. Parallel sinken die Preise für leistungsstarke Hardware, und die IoT- und M2M-(Machine-to-Machine-)Ökosysteme wachsen. Das so genannte Ubiquitous Computing wird damit zunehmend Realität, und Android ist aufgrund seines Open-Source-Charakters gut geeignet, in diesem Markt Fuß zu fassen und eine zentrale Rolle einzunehmen.

Android Embedded – Status quo

Unter Android Embedded verstehen wir den Einsatz der Android-Plattform abseits der offensichtlichen Geräteklassen wie Smartphones und Tablets. Dieser Markt war bisher dominiert von Betriebssystemen wie Windows CE/Windows Embedded, diversen Linux-Distributionen und proprietären Entwicklungen. Dass Android hier bereits Fuß fasst, zeigt sich in der Umfrage einer Embedded-Konferenz im Jahr 2013 aus den USA. Hier gaben 28 Prozent der Unternehmen an, im nächsten Jahr mit Android zu planen. Ein weiterer Indikator ist die zunehmende Zahl der verfügbaren Produkte auf Android-Basis. Spielekonsolen, Uhren, TV-Geräte oder Kameras sind nur einige Beispiele für die zunehmende Verbreitung von Android im Embedded-Markt.

Aus den benötigten Hardwareanforderungen (siehe Kasten) leitet sich direkt ab, dass Android nicht auf der kleinsten Hardware zuhause ist. Ziel sind die so genannten Smart Devices, die in der Regel über ein HMI (Human Machine Interface) verfügen. Hier bietet Android viele Vorteile und spielt seine Stärken aus. Das sieht auch Dianne Hackborn so. Sie ist Entwicklerin im Android-Team bei Google und schreibt in der neuesten Ausgabe des bekannten Buchs „Modern Operating Systems“ in Kapitel 10 (Andrew S. Tanenbaum, Herbert Bos, Dianne Hackborn: Modern Operating Systems 4th Edition, Pearson, 2014): „It [Android] is popular not only for customer-centric devices where its third-party application ecosystem is advantageous (such as tablets, televisions, game systems and media players), but is increasingly used as the embedded OS for dedicated devices that need a graphical user interface (GUI) such as VOIP phones, smart watches, automotive dashboards, medical devices and home appliances.“

MobileTech-Conference-2015Mobile Innovation & Enterprise Mobility
Die MobileTech Conference ist die führende Konferenz für Mobile Technologien und Innovation im deutschsprachigen Raum. Als Impulsgeber der Mobile-Branche führt sie erfahrene Experten aus allen Bereichen der mobilen Produktentwicklung zusammen.
Den Teilnehmern stehen mehr als 60 international bekannte Experten aus dem Mobile-Umfeld zur Seite, die ihr praktisches Know-how und hilfreiche Tipps weitergeben. Im Fokus des Konferenzprogramms steht die  erfolgreiche Entwicklung und Umsetzung von Mobile Services – sowohl im Consumer- als auch im Enterprise-Umfeld.
Auch der Autor dieses Beitrags, Dominik Helleberg, ist als Speaker mit von der Partie und teilt in seiner Session „Consumer-Hardware im Enterprise-Einsatz“ Erfahrungsberichte aus der Praxis mit den Teilnehmern.
Vom 23.-26. März findet die MobileTech Con in München statt. Tickets, ein kostenloses Tablet, den Kollegenrabatt und Extra-Specials finden Sie auf der Anmeldeseite. Alle Infos zu Konferenz, Programm und Speakern unter: http://mobiletechcon.de

 

Was muss man unter dem Reshaping eines Responsive Workflows verstehen?

Androids Stärke liegt im HMI-Bereich, denn das System wurde für moderne Consumer-Smartphones entwickelt, mit dem Fokus auf Touch-orientierter User Experience – und die Anforderungen in diesem Markt sind hoch. Das durchgängig hardwarebeschleunigte GUI bietet eine gute Grundlage für moderne Oberflächen. Durch die hohe Verbreitung bietet die Community viele Open-Source-Bibliotheken, die die GUI-Entwicklung erheblich vereinfachen. Verglichen mit klassischen Embedded-Systemen hat Android hier einen riesigen Vorsprung, denn gerade das GUI ist oft die Achillesferse etablierter Plattformen. Jeder, der in letzter Zeit einen Touch-basierten Fahrkartenautomat bedient hat, wird wissen, wovon ich rede (Abb. 1). Diese Qualität entspricht nicht mehr den Erwartungen von Konsumenten und stellt die Entwickler von Touch-basierten HMIs in Embedded-Systemen zunehmend vor große Probleme. Android überzeugt hier durch ein optisch ansprechendes GUI-Toolkit, das schon ohne größere Modifikationen ein aktuelles GUI implementiert.

Abb. 1: Das UI eines Fahrkartenautomaten

Abb. 1: Das UI eines Fahrkartenautomaten

Ein weiterer Vorteil von Android liegt in den hohen Marktanteilen im Consumer-Markt. Denn damit einher geht eine größere Anzahl verfügbarer App-Entwickler. Dies hilft auch der Embedded-Entwicklung, wie ein Blick auf Abbildung 2 zeigt. Hier sehen wir eine vereinfachte Darstellung der Android-Architektur. In einem Embedded-Projekt liegt der Hauptfokus zunächst darauf, die unteren Schichten (Kernel, HAL etc.) an die neue Hardware anzupassen. Danach werden eventuelle Anpassungen im Framework oder den System-Services durchgeführt. Die eigentliche App-Entwicklung, also die Programmierung der HMI- und Businesslogik, unterscheidet sich aber kaum von der klassischen, bekannten Disziplin der Android-Apps. Daher können App-Entwickler auch in Embedded-Projekten eingesetzt werden. Im Vergleich dazu sind in der klassischen Embedded-Welt oft spezielle Kenntnisse nötig, um das GUI zu programmieren.

Abb. 2: Vereinfachte Android-Architektur

Abb. 2: Vereinfachte Android-Architektur

Hervorzuheben ist auch die breite Hardwareunterstützung für Android. Nahezu jeder kommerzielle Board-Hersteller bietet mittlerweile ein Android-kompatibles BSP (Board Support Package). Hinzu kommt eine große Auswahl an Entwicklungs-Boards. Dies ermöglicht den preisgünstigen Einstieg in die Embedded-Entwicklung.

Ein weiterer Vorteil von Android ist die gute Unterstützung von Multimedia-Codecs. Getrieben durch die Anforderungen im Consumer-Bereich, sind die Ansprüche hier sehr hoch.

Die Performance von Android wurde vom Entwicklungsteam bei Google immer weiter optimiert. Allein der Grafik-Stack enthält viele optimierte Details, die sich kaum in einem anderen frei zugänglichen Betriebssystem finden lassen.

Hardwareanforderungen

Mit Android 4.4 benötigt man laut Googles CDD [4] folgende minimale Hardware:

  • CPU: Architektur: ARM, x86 oder MIPS. Es gibt keine fixen Angaben zu den Leistungsdaten der CPU, sondern lediglich Performanceziele für das gesamte System. Um diese zu erreichen, benötigt man i. d. R. einen Prozessor 32 bit > 500 Mhz; empfohlen wird eine Multicore CPU >= 1 Ghz
  • RAM: mind. 340 MB, empfohlen 512 MB oder mehr
  • Speicher: Mind. 1 GB, empfohlen mind. 2 GB interner Speicher
  • Grafik: OpenGL-ES Hardwarebeschleunigung (mind. Version 1.0, empfohlen: 3.0)
  • Display: Mindestens 426 x 320 dp und ein Aspect Ratio zwischen 1.3333 und 1.86

Diese Spezifikationen des CDD sind natürlich nicht bindend, wenn man keine offizielle Zertifizierung seines Systems von Google anstrebt. Sie bilden aber eine gute Richtlinie für die Planung.

Positionierung im IoT

Auch wenn das „Internet of Things“ ein ziemlich weitläufiger Begriff ist und sich (noch) keine genormte Architektur oder Begriffe herausgebildet haben, gibt es ein gemeinsames Verständnis von grundsätzlichen Komponenten dieser Vision. Im Allgemeinen geht man davon aus, dass es unterschiedliche Hard- und Softwarekomponenten umfasst, die vernetzt miteinander kommunizieren. Speziell bei der Hardware gibt es hier verschiedenste Komponenten, angefangen bei kleinsten Einheiten wie NFC-Chips oder anderen passiven Bauteilen. Als nächste Stufe gibt es aktive Sensoren und Aktoren sowie durch kleinste Mikrocontroller gestützte Systeme. Diese sind oft sehr preisgünstig und mit einfachen Prozessoren ausgestattet. Typische Vertreter dieser Kategorie sind das Arduino Board, das Micro-Python-Projekt, der Spark Core oder die BLEduino-Plattform. Nicht selten bieten diese Systeme keinen eigenen IP-Stack, sondern kommunizieren über andere, zum Teil proprietäre Protokolle untereinander. Um diese Systeme an das Internet anzuschließen, bedient man sich häufig einer zentralen Steuerung, die zeitgleich als Hub oder Gateway in die IP-Welt dient. Diese Gateways sind häufig stationär und können höherwertige Hardware enthalten, da die Kosten, aufgrund der geringeren Stückzahlen pro Installation, nicht kritisch sind. Eine einfache Darstellung dieser Architektur zeigt Abbildung 3, einmal mit einem Gateway zwischen den Sensoren und dem Internet, einmal mit direkter Kommunikation. Dies stellt selbstverständlich keine vollständige IoT-Architektur dar, sondern lediglich eine vereinfachte Darstellung mit Sicht auf die Clients.

Einfache IoT-Architektur

Abb. 3: Einfache IoT-Architekur mit Fokus auf den Clients

Viele Anwendungsfälle fordern zunehmend ein anspruchsvolles und attraktives HMI, um die lokalen Einheiten zu überwachen und zu steuern. Oft lässt sich das HMI mit den vorher genannten Gateways kombinieren. Als praktisches Beispiel für diese Architektur betrachten wir die Installation eines Smart Home. Hier existieren verschiedene Sensoren und kleine Mikrocontroller zur Datenerfassung und für kleine Steueraufgaben. Diese Sensoren können über ein eigenes Protokoll, zum Beispiel ZigBee kommunizieren und Werte über geöffnete Fenster, Temperaturen, den Wasserstand der Regenzisterne oder den aktuellen Stromverbrauch liefern. Eine zentrale Steuereinheit empfängt diese Daten und bietet zum einen das Gateway zum Internet an, zum anderen auch ein lokales HMI (zum Beispiel über einen Touch-Screen), um das gesamte System zu steuern. Die wichtigsten Aufgaben dieser Zentrale sind es, die Datenerfassung und Verwaltung sowie ein ansprechendes UI und eine sichere Kommunikation in Richtung der IP-Welt zu gewährleisten.

Android eignet sich sehr gut, um diese Anforderungen zu erfüllen. Es bietet einen stabilen und in der Praxis erprobten IP-Stack und erfüllt modernste Sicherheitsanforderungen wie etwa SE-Linux-basierte Policies, eine Applikations-Sandbox und ein restriktives Rechtekonzept. Ein ansprechendes GUI lässt sich mit Android ebenso umsetzen wie die Kommunikation mit nicht-IP-basierten Protokollen. Ein großer Vorteil dieser Architektur ist die Tatsache, dass nicht jeder Sensor direkt mit dem Internet kommunizieren muss. Denn hier besteht die Herausforderung, jedes noch so kleine System absolut sicher, robust und kompatibel zu halten. Das ist ein echtes Problem für die kleinen Embedded-Sensoren und Mikrocontroller-Systeme. Plant man allerdings mit einem leistungsstärkeren Gateway auf Android-Basis, schirmt dieses System die lokale Installation gut gegenüber dem öffentlichen Internet ab.

Android bietet ein bewährtes Lizenzmodell und wurde entgegen manchen Meinungen schon erfolgreich von verschiedensten Unternehmen geforkt und für eigene Produkte verwendet. Die Amazon Kindle Fire Tablets oder die Nokia-X-Produktserie sind hier populäre und aussagekräftige Beispiele.

Weitere Beispiele für den Einsatz von Android sind Industriekontrollgeräte, die sich mit lokalen Sensoren verbinden. Oder ein zentrales HMI im Automotive-Sektor.

Eine ganz ähnliche Architektur finden wir auch in den ersten Produkten des wachsenden Marktes der so genannten Wearable-Computer. Auch hier sind die eigentlichen Sensoren und Aktoren oft nicht direkt mit dem Internet verbunden und haben (wenn überhaupt) nur ein einfaches HMI. Sie nutzen zur Kommunikation zum Beispiel Bluetooth LE und verwenden ein Smartphone als Hub bzw. Gateway zum Netz und zur Konfiguration. Auch hier spielt Android zurzeit eine zentrale Rolle.

Herausforderungen

Der Einsatz von Android in Embedded-Systemen hat ohne Zweifel viele Vorteile, birgt aber auch gewisse Risiken und Herausforderungen. Gelingt der Start mit dem Android-Sourcecode meist noch recht schnell, so ist die Dokumentation der Plattform abseits der öffentlichen APIs (Abb. 2) leider sehr dürftig. Hier hilft oft nur das Studieren des Sourcecodes, um beispielsweise zu verstehen, wie der Update-Mechanismus der Plattform funktioniert. Eine weitere Herausforderung ist die (noch) geringe Anzahl an Experten für die Systembereiche von Android, um die Plattform zum Beispiel an neue Hardware anzupassen. Google veröffentlicht keine Roadmap der Android-Plattform, und damit gibt es entsprechend wenig Planungssicherheit oder gar Kontrolle über zukünftige Features oder Versionen. Auch die Mitglieder der Open Handset Alliance haben wenig mehr Einblick in die Zukunft der Plattform.

Android ist aufgrund seiner ursprünglich spitzen Ausrichtung auf Smartphones nicht so modular wie andere Systeme. So kann es schon zu einer echten Herausforderung werden, den Telefonie-Support komplett zu deaktivieren oder gar aus der Plattform zu entfernen. Ein weiteres Problem sind die extremen Build-Zeiten von Android. Selbst auf massiver Hardware sind hier Zeiten von 45-90 Minuten nicht unüblich.

Andere Emdedded-Systeme haben jedoch ähnliche Probleme, und wir verzeichnen eine stark wachsende Community im Android-Embedded-Segment. Ebenso wichtig wie eine Community ist der kommerzielle Support. Hier zeigen sich Firmen wie Linaro oder Cyanogen Inc. bereit für größere Projekte. Auch immer mehr klassische Embedded-Unternehmen erweitern ihr Portfolio um Android.

Fazit

Android ist im Vergleich zu einfachen Mikrokontrollern zu ressourcenhungrig, was die Kosten für die Hardware unnötig in die Höhe treibt. Es eignet sich aber hervorragend als Hub oder Gateway, um eine saubere Trennung der Sensoren zum Internet zu realisieren. Seine große Stärke liegt im HMI-Bereich, und in vielen Bereichen lässt sich die Gateway-Funktion mit einem HMI kombinieren. Mit dieser Positionierung hat Android gute Chancen, einen wichtigen Platz im IoT-Ökosystem einzunehmen: als lokale Schaltzentrale und grafische Schnittstelle zur IoT-Welt.

Aufmacherbild: modern smart phone or tablet connected to the internet of things via Shutterstock / Urheberrecht: a-image

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -