Embedded-Cloud-Computing Verstärkung aus der Wolke

Um immer komplexere Embedded-System-Anwendungen zu realisieren, ist nicht jedes Mal eine noch schnellere CPU mit größeren Speicherressourcen erforderlich. Verteilte Systeme und Cloud- Dienste, die über das Internet miteinander gekoppelt werden, sind inzwischen eine energieeffiziente Alternative zu GHz-schnellen Single- oder Multi-Core-Embedded-Prozessoren.

Verglichen mit Servern und Desktop-PCs verfügen eingebettete Rechnersysteme über recht eingeschränkte Ressourcen. In der Regel bestehen sie lediglich aus einem Mikrocontroller, etwas RAM als Arbeitsspeicher und einem Flash- Speicherbereich für Programme und persistente Daten. Deshalb sind solche eingebetteten Systeme für viele Aufgaben nur bedingt geeignet. Als nächst höhere Leistungsstufe kommen dann Industrie-PC-Plattformen zum Einsatz.

Unter den Aspekten der Energieund Kosteneffizienz ist das bedauerlich, da PCs im Vergleich zu Embedded-Systemen einen sehr viel höheren Energiebedarf haben und darüber hinaus größere Investitions- und Betriebskosten verursachen. Weiterhin sind PCs deutlich fehleranfälliger. Durch eine Web-Anwendung lassen sich die Ressourcen und Funktionen vieler Mikrocontroller-Systeme ergänzen bzw. erweitern. Dadurch wird ein PC-Einsatz in Zukunft überflüssig.

Unzählige Embedded-Systeme weisen eine IP-fähige Kommunikationsschnittstelle auf, über die eine Verbindung zum Internet hergestellt werden kann. Um auf die Cloud-Services einer Web-Anwendung zuzugreifen, ist in der Embedded-System-Software lediglich die Unterstützung eines speziellen API (Application Programming Interface) erforderlich. Darüber werden die Dienste einer Web-Anwendung vom Embedded-System bei Bedarf genutzt. Web-Anwendungen sind spezielle Programme, die auf Web-Servern im Internet laufen und im Allgemeinen per Web-Browser kontaktiert werden, um einen bestimmten Dienst in Anspruch zu nehmen. Typische Beispiele für solche Anwendungen sind Amazon, eBay, Yahoo und Google. Eine besonders beeindruckende Anwendung ist dabei sicherlich die Google-Suchmaschine. Wird ein Suchbegriff per Browser eingegeben, erhält man in den meisten Fällen innerhalb von Sekundenbruchteilen eine sehr umfangreiche Zusammenstellung der Suchergebnisse als Web-Seite.

Die dafür erforderliche Rechen- und Speicherleistung bedingt ein ausgefeiltes IT-Konzept, dass sich sicherlich nicht mit einem einzigen superschnellen Server realisieren lässt. Kombiniert man ein Embedded-System mit den Diensten (Services) einer Web-Anwendung, so erhält man aus Sicht eines Informatikers ein klassisches verteiltes System [1]. Die zu lösende Gesamtaufgabe wird dabei in mehrere Software-Komponenten aufgeteilt, die auf unterschiedlichen Rechnern ablaufen.

Diese Rechner sind über einen Kommunikationskanal gekoppelt. Sie bilden vollständig autarke Funktionseinheiten mit eigener CPU, Speicher, I/O-Funktionen, Betriebssystem usw. (Bild 1). Die einzelnen Software- Komponenten kommunizieren und koordinieren ihre Aktivitäten über den Austausch von Nachrichten. Für die Kommunikation zwischen den Teilkomponenten einer verteilten Anwendung kommen mehrere Verfahren in Frage. Bedingt durch die IP-fähige Kommunikationsschnittstelle und das Internet als Medium sind besonders Client-Server-Verfahren mit explizitem Nachrichtenaustausch geeignet.

Dynamisch anpassbare Ressourcen

Die Leistungsmerkmale einer Rechnerplattform (Rechenleistung, Speicherkapazitäten, Betriebssystem), die als 28 Elektronik Embedded-System zum Einsatz kommt, sind statisch. Die einer Web-Anwendung zur Verfügung stehenden Ressourcen lassen sich hingegen recht einfach den jeweiligen Anforderungen anpassen. Sie sind – innerhalb bestimmter Grenzen – dynamisch skalierbar.

So kann zum Beispiel der Speicherplatz, den eine Web-Anwendung zur Verfügung stellt, bei Bedarf vergrößert werden, indem im Rechenzentrum einfach weitere Server mit entsprechenden Laufwerken hinzugeschaltet werden. Auch der umgekehrte Fall ist denkbar: Stellt man fest, dass durch die Embedded-Systeme nur ein geringer Teil der reservierten Speicherkapazität im Data Center genutzt wird, erfolgt eine dynamische Reduzierung.

Virtualisierung (Ressourcenvirtualisierung, Anwendungsvirtualisierung), serviceorientierte Architekturen und Cloud-Computing sind gegenwärtig die Trends in der IT-Welt. Erfahrungsgemäß ist es nicht einfach, im sehr dynamischen IT-Umfeld zwischen marketinggetriebenen Pseudo-Trends und echten Innovationen zu unterscheiden. Hinter der verstärkten Nutzung unterschiedlichster Dienste per Internet – so genannter Cloud-Services – steht allerdings deutlich mehr, als marketingorientiertes Wunschdenken. Dieser Weg könnte mittelfristig zu völlig veränderten Anwendungsarchitekturen in der IT-Nutzung führen.

Der Begriff »Cloud« beruht auf dem Sachverhalt, dass das Internet auf Abbildungen stets als (Netzwerk-)Wolke dargestellt wird. »Cloud-Service« bedeutet demzufolge, dass ein wie auch immer gearteter Dienst irgendwo in der (Internet-) Wolke als Baustein einer Web-Anwendung zur Verfügung steht.