CodeMeter

Lizenzen für Offlinegeräte

Industrie 4.0, IoT, IIoT, SaaS, Azure und AWS: In der neuen Welt sind alle Geräte immer online und kommunizieren beliebig mit der Cloud. Während dies für den Büro- und Privatbereich auch weitestgehend gilt, ist dies im industriellen Umfeld noch Zukunftsmusik. Damit steht ein Hersteller von intelligenten Geräten und Steuerungen, der seine Software monetarisieren möchte, vor der Herausforderung, Lizenzen und Lizenzupdates auf Offlinegeräte auszurollen. CodeMeter bietet dazu mehrere Möglichkeiten, die in diesem Artikel beleuchtet werden.

Doch nicht ganz offline

Wer den Film „Independence Day“ gesehen hat, kann sich sicher an das Zitat „Entschuldigen Sie, Mr. Präsident, das ist so nicht ganz korrekt.“ erinnern. So ist es sehr oft auch mit der Aussage, dass die Geräte komplett offline seien. Schauen wir uns dazu an, wie bei CodeMeter Lizenzen verteilt werden.

Allgemein gibt es für die Übertragung von Nachrichten zwei Methoden: Push und Pull. Bei Push werden die Nachrichten von einem zentralen Server auf die lokalen Geräte übertragen. Der Server bestimmt den Zeitpunkt und stößt die Übertragung an. Auf dem lokalen Gerät läuft ein Dienst (eine permanent laufenden Software), der vom Server, also von außen, angesprochen werden kann, ähnlich dem Webserver, der oft auf solchen Geräten für die Konfiguration läuft. Hier wird aber von der IT der Zugriff aus dem Internet unterbunden. „Und das ist auch gut so“, wusste nicht nur Klaus Wowereit. Daher bietet CodeMeter keine standardmäßige Implementierung von Push an. 

Die alternative Push-Möglichkeit ist, dass ein Client (ein spezielle Software) auf dem Gerät die Verbindung zu einem Push-Nachrichten-Server in der Cloud öffnet und sich für Push-Nachrichten anmeldet. Über diesen offenen Kanal werden dann Push-Nachrichten übertragen. Diese Methode erfordert eine permanent offene Internetverbindung und einen permanent laufenden Client. Diese Methode wird zum Beispiel beim iPhone verwendet. Das Betriebssystem stellt den Client und den Push-Nachrichten-Server dort als Infrastruktur zur Verfügung, so dass nur eine Verbindung offen sein muss. Auch dies ist im industriellen Umfeld eher schwer durchsetzbar.

Bei Pull-Nachrichten fragt ein Client auf dem Gerät regelmäßig beim Server nach, ob Nachrichten vorliegen. Dazu wird die Verbindung von innen nach außen aufgebaut, mit dedizierten und bekannten ausgehenden Datenpaketen zu einem dedizierten Server. Die Antwort wird vom Client verifiziert und verwendet. Das heißt, in diesem Fall ist das Sicherheitsrisiko überschaubar. In einigen mit CodeMeter realisierten Projekten ist die Art dieser Übertragung verfügbar und wird daher vom Software Activation Wizard (als Client) und CodeMeter License Central unterstützt. Der Client muss dabei nicht permanent laufen. Meist reicht es, den Client einmal am Tag automatisch zu starten (Cron-Job) und für spezielle Fälle eine manuelle Startfunktion zu implementieren.

Über diese Brücke musst Du geh’n

Wenn eine direkte Verbindung von dem Gerät ausgehend ins Internet nicht möglich ist, kann man oft einen Computer als Brücke verwenden. Der Computer befindet sich im internen Netzwerk und darf daher auf das Gerät zugreifen. Gleichzeitig öffnet der Computer eine Verbindung zu CodeMeter License Central im Internet. Der Techniker an dem Gerät stößt das Lizenzupdate an. Dieses Update läuft dann automatisch ohne weitere Interaktion des Technikers.

Für die Implementierung stehen zwei Optionen zur Verfügung. Zum einen kann die komplette Technologie in einen Webserver integriert werden, der in der Regel auf dem Gerät vorhanden ist. Der Techniker benötigt auf seinem Computer dann lediglich einen Browser, mit dem er diesen Webserver aufruft.

Die zweite Option ist ein angepasster Software Activation Wizard auf dem Computer des Technikers. Dieser spricht über die Gateway-API mit CodeMeter License Central und gleichzeitig über ein proprietäres Protokoll des Herstellers mit dem Gerät. In der Regel ist ein solches proprietäres Protokoll bereits verfügbar, so dass nur drei neue Geschäftsvorfälle hinzugefügt werden müssen. Diese sind: CmContainer auflisten, Context-Datei eines CmContainers erhalten und Update-Datei für einen CmContainer anwenden.

Die Implementierung mit einem Software Activation Wizard hat noch einen weiteren großen Vorteil. Falls die Verbindung mit Gerät und Internet nicht gleichzeitig hergestellt werden kann, können Context-Datei und Update-Datei zwischengespeichert und der Prozess in drei Schritten durchgeführt werden. Dabei dient der dritte Schritt nur der Quittierung und kann übersprungen werden. Bildlich kann man sich dies als eine Schwenkbrücke über einen Fluss vorstellen, die zwischen den beiden Ufern hin und hergeschwenkt wird.

License Transfer (Move)

Beim Licence Transfer wird eine wählbare Anzahl von Lizenzen auf einen CmDongle (Transfer-Dongle) übertra-gen. Dabei steht noch nicht fest, auf welches Gerät diese Lizenzen zukünftig übertragen wer-den. Der Techniker mit dem Transfer-Dongle verbindet seinen Computer mit dem Gerät, ähnlich wie bei der Brücke zur CodeMeter License Central. Die Übertragung einer Lizenz erfolgt dann ebenfalls analog zur Brückenmethode. Ein verschlankter Software Activation
Wizard nutzt ein proprietäres Protokoll des Herstellers zur Übertragung der Lizenzen. Auch hier sind es die drei gleichen Geschäftsvorfälle.

Der Vorteil, aber auch der Nachteil, dieses Verfahrens ist, dass diese Aktion offline erfolgt. Damit wird keine Internetverbindung benötigt, aber CodeMeter License Central besitzt keinen akkuraten Zustand der Lizenzen auf den Geräten. Infolgedessen sind vor allem Updates von Lizenzen nur begrenzt möglich. Dieses Verfahren eignet sich gut, um einzelne zusätzliche Lizenzen (als eigene Product Items) auf Geräte auszurollen. Es sollte nicht verwendet werden, um Lizenzen zu aktualisieren.

Push It

Gehen wir noch einmal zurück zum Push-Verfahren. Wenn das Gerät einmal in CodeMeter License Central bekannt ist, dann besitzt CodeMeter License Central bereits die Context-Datei des auf dem Gerät befindlichen CmContainers. Damit kann die Update-Datei in CodeMeter License Central bereits vorab für dieses Gerät erzeugt werden. Der Prozess des Updates wird dabei, ähnlich wie bei einem Push-Verfahren, vom Server gestartet. Die Verbindung zwischen Lizenz und CmContainer können Sie als Hersteller bereits erstellen oder einen Techniker vor Ort beim Anwender überlassen.

Diese Update-Datei kann dann per Memory-Stick auf das Gerät übertragen werden. Hier wird lediglich die Implementierung des Geschäftsvorfalls „Anwenden einer Update-Datei benötigt. Und dies kann lokal am Gerät erfolgen, ohne zusätzlichen Computer und proprietäres Protokoll. Natürlich ist analog zur Brückenmethode auch ein Import per Browser und Webserver über einen zusätzlichen Computer implementierbar.

Sollten Updates nicht eingespielt worden sein, ist dies auch in diesem Fall kein Problem. Solange CodeMeter License Central keine Bestätigung erhält, dass die Lizenz angekommen ist, liefert sie bei jedem neuen Update auch alle alten Updates noch einmal aus. Für den Anwender ist dies transparent, da die Updates in einer Datei zusammengefasst werden.

Dieser Fall ist sehr ähnlich zur Schwenkbrückenmethode. Nur dass hier das Erzeugen der Context-Datei durch die Auswahl des CmContainers in CodeMeter License Central bzw. WebDepot ersetzt wird. Dies kann bereits im Vorfeld geschehen, so dass der Techniker diesen Schritt auch ohne Zugriff auf das Gerät durchführen kann.             

KEYnote 39 – Frühjahrsausgabe 2020

Nach oben