Lizenzierung Bei Embedded Systemen Mehr Produktvielfalt!

Hersteller sogenannter »intelligenter«, durch Embedded Systeme gesteuerter Maschinen, Geräte und Komponenten müssen diese Produkte in einer Vielfalt von kundenindividuellen Konfigurationen fertigen, ohne die Herstellungskosten zu erhöhen. Hier bietet sich »Embedded Licensing« – also die Lizenzierung der Embedded-Software – als Lösung an.

Embedded-Licensing bedeutet, dass eine Software den Funktionsumfang oder die Konfiguration eines Hardwareprodukts steuert, und zwar auf Basis des Vorhandenseins, der Abwesenheit oder der Ausprägung von Lizenzrechten. Ein Chiphersteller etwa fertigt in einem herkömmlichen Ansatz eine Produktlinie mit Dual-Core und eine mit Quad-Core – mit den jeweiligen Fertigungskosten. Durch Embedded-Licensing kann der Hersteller die Vielfalt an Konfigurationen effizienter kontrollieren. Er fertigt zu einem fixen Preis ein einziges physisches Modell, und über die Lizenzierung steuert er die Anzahl der tatsächlich aktivierten Kerne. So erhalten in der Fertigung einige Chips Lizenzrechte für Dual-Core und andere Rechte für Quad-Core, und der Hersteller verkauft die unterschiedlichen Chipkonfigurationen weiterhin zu verschiedenen Preisen. Weil so weniger verschiedene Hardwareartikel im Portfolio sind, lassen sich die Herstellungs- und Lagerkosten reduzieren und dennoch die notwendige Vielfalt an Chip-Modellen für unterschiedliche Märkte bereitstellen.

Mit Embedded-Licensing ändert sich der Entwicklungsprozess für ein Gerät oder eine Komponente: Anstatt die volle Bandbreite an diskreten Konfigurationen zu fertigen, lassen sich die gewünschten Varianten über die Embedded-Software erzielen. Im einfachsten Fall erkennt der Softwarecode beim Initialisieren des Geräts die vorhandenen Lizenzrechte und weist dem Chip die Zwei-Core- oder die Vier-Core-Variante zu. Damit wird der Inhalt der Lizenzrechte zu einem wichtigen Teil der Entwicklung. Manchmal sind Lizenzrechte ein einfacher Ein/Aus-Schalter für diskrete Teile einer Komponente, in anderen Fällen definieren Lizenzrechte einen bestimmten Wert in einer Ansammlung von Werten, also eine lizenzierte Kapazität wie die Anzahl der offenen Ports in einem Router oder eine definierte Auflösung einer Digitalkamera. Das oben beschriebene Chipszenario stellt hier den Grenzfall dar, auf den beide Lizenzierungsarten zutreffen könnten.

Darüber hinaus macht Embedded-Licensing neue Mehrwertlösungen möglich, beispielsweise Produktupgrades vor Ort. Dadurch kann ein Anwender eines Systems mittlerer Leistung später auf ein High-End-System aufrüsten, ohne das Gerät physikalisch beim Hersteller oder Händler umzutauschen. Stattdessen schreibt der Hersteller die Erweiterbarkeit in die Lizenzrechte und stellt einen Mechanismus (beispielsweise als Anwendung auf dem Host-System) bereit, mit dem der Nutzer den Upgrade-Code erwerben kann, um den zusätzliche Satz an Funktionen freizuschalten. Diese Lizenzmodelle kommen bereits oft zum Einsatz – etwa bei Mobiltelefonen mit entsperrbarer GPS-Funktion, bei Routern mit verschiedener Anzahl unterstützter Ports oder Kameras mit unterschiedlichen Algorithmen zur Signalverarbeitung.

Entwickeln mit Embedded-Licensing

Für den Einsatz von Embedded-Licensing ist in der Entwicklung ein Spagat zu meistern: ein angemessenes Sicherheitsniveau, dabei anpassbar an eine Vielzahl von Umgebungen sowie minimaler Platzbedarf. Hinsichtlich der Sicherheit eignet sich die »Public Key Cryptography« (oder asymmetrisches Kryptosystem) für viele Umgebungen am besten. Üblicherweise kommen die Elliptic-Curve-Cryptography (ECC) oder das RSA-Verfahren zur digitalen Signatur zum Einsatz. Dabei verwendet ein Back-Office-System den privaten Schlüssel des Herstellers für die Signatur der Lizenzrechte. Das Gerät auf der anderen Seite validiert diese Signatur mit dem Public Key. Die digitale Signatur verhindert die Modifikation oder Fälschung der Lizenzrechte. Dabei hängen der Signaturalgorithmus und die Größe des Schlüssels vom verfügbaren Arbeitsspeicher und Speicherplatz der jeweiligen Umgebung ab. Zusätzlich sind Lizenzrechte üblicherweise »Node-locked« definiert, also über eine Seriennummer oder andere einmalige Merkmale auf ein bestimmtes Gerät beschränkt. Dadurch wird verhindert, dass Lizenzrechte unerlaubt auf andere Geräte übertragen werden.

Wie wichtig die Anpassbarkeit des Embedding-Licensing an die jeweilige Umgebung ist, hängt davon ab, wie unterschiedlich aktuelle (und zukünftige) Gerätekonfigurationen sind. Wenn sich Varianten in zentralen Funktionen unterscheiden, beispielsweise durch das Vorhandensein einer Systemuhr oder durch unterschiedliche Typen von permanentem Speicher, dann kann das Embedded-Licensing davon profitieren, wenn wichtige Lizenzierungsprozesse von Systemschnittstellen abstrahiert sind. So basiert das Lizenzsystem auf einer gemeinsamen Implementierung auf Lizenzierungsebene, es muss also nur der Code überschrieben werden, der mit der Umgebung interagiert.

Spezielle Systeme für Embedded-Licensing haben hier Vorteile. Durch ein modulares Design können sie sich an eine Vielzahl von Umgebungen anpassen.

So arbeitet beispielsweise die »FlexNet Producer Suite« von Flexera Software (Bild 1) mit einem umgebungsunabhängigen Lizenzierungs-Mikrokernel. Dieser ist mit einer bestimmten Umgebung durch eine Abstraktionsschicht verbunden, in der alle Interaktionen implementiert sind. Für den Einsatz in Umgebungen, die »C POSIX«-Funktionen unterstützen (oder Windows-API-Funktionen für Geräte mit Windows Embedded oder Windows CE) gibt es Referenzimplementierungen dieser Schnittstellen. In spezialisierten Umgebungen kann der Hersteller aber auch auf benutzerdefinierte Implementierungen zurückgreifen.

Ein einfaches Beispiel: Einige Lizenzierungsvorgänge verwenden eine Systemuhr. Anstatt die »Time«-Funktion direkt über <time.h> abzufragen, abstrahiert FlexNet Producer Suite die Abfrage der aktuellen Uhrzeit in der Funktion »FlxExtTimeGetUTC«. Die Referenzimplementierung fragt die POSIX-»Time«-Funktion ab. Eine Implementierung mit einer benutzerdefinierten Schnittstelle kann jedoch jede verfügbare Implementierung auf dem Gerät nutzen, um die aktuelle Uhrzeit abzufragen. Auf diese Weise unterstützt das System sowohl Geräte mit einer Standarduhr-Schnittstelle, Geräte, welche die Uhrzeit über eine andere Quelle – etwa per Satellit – abfragen, aber auch Geräte ohne Uhr-Implementierung. Mit diesem Ansatz lassen sich von einer bestimmten Umgebung nicht benötigte Schnittstellen auch entfernen, wodurch sich der Platzbedarf der Implementierung verringert.

Bei internetfähigen Geräten ermöglicht Embedded-Licensing zahlreiche neue Funktionen, etwa ferngesteuerte Aktivierung, Sets von Kapazitäten, die sich von einem auf andere Geräte übertragen lassen, oder einen begrenzte Testfunktionsumfang, der später auf die Vollfunktion ausbaubar ist (Bild 2).

»Connected Devices« machen‘s leichter

Diese Vorgänge verlangen üblicherweise eine Interaktion mit einem Back-Office-Server und einem System für das Berechtigungsmanagement. Dadurch erhalten Hersteller Hinweise über die Nutzung von Gerät und Funktionen und können so schneller auf Kundenwünsche reagieren.

Richtig definiert und umgesetzt lässt sich Embedded-Licensing auf zahlreichen Gerätearten implementieren, von Systems-on-Chip über industrielle Automatisierungssysteme und in äußerst begrenzten Umgebungen bis hin zu universellen Betriebssystemen und virtuellen Vorrichtungen.

Über den Autor:

Robert Dickau ist Principal Engineer bei Flexera Software.