SlideShare ist ein Scribd-Unternehmen logo
Plattformunabhängige Anwendungen
mit Python, PHP und JavaScript
lizenzieren
Rüdiger Kügler, VP Sales & Professional Services
ruediger.kuegler@wibu.com
Jörg Jans, Professional Services
joerg.jans@wibu.com
Python, PHP & JavaScript
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 1
Anwendungsfälle
Webanwendungen mit HTML 5,
CSS3, JavaScript
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 2
Webanwendungen mit HTML 5, CSS3, JavaScript
 Mobile Anwendung für alle Arten von Geräten (PCs, Mobile Devices,
Tablets)
 Immer aktuelle Anwendung, keine veraltete lokale Version auf dem PC des
Anwenders
 Keine Updates beim Anwender notwendig
 Keine Administrator-Rechte beim Anwender notwendig, lediglich Browser
benötigt
 Entwicklungswerkzeuge werden immer besser
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 3
Lizenzierungs-Szenario I
 Szenario
 Eine Software Firma entwickelt eine Web Anwendung als Produkt
 Die Software Firma verkauft diese komplett (Server und Clients) an einen oder
mehrere Service Anbieter
 Der Service Anbieter verwendet die Web Anwendung, um Umsatz mit seinen
Anwendern zu erzielen
 Anforderung
 Die Software Firma möchte kontrollieren, dass die Service Anbieter die Web
Anwendung im Rahmen der vereinbarten Lizenzen verwenden (Anzahl Server,
Anzahl Benutzer, Funktionalität, Zeitliche Lizenz, …)
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 4
Lizenzierungs-Szenario II
 Szenario
 Ein Service Anbieter entwickelt eine eigene Web Anwendung
 Die Anwendung läuft auf einem Server, den der Service Anbieter betreibt (eigenes
Rechenzentrum, Azure, AWS, …)
 Der Service Anbieter verwendet diese Web Anwendung, um Umsatz mit seinen
Anwendern zu erzielen
 Anforderung
 Der Service Anbieter möchte die Verwendung seiner Web Anwendung durch den
Anwender kontrollieren (Anzahl Benutzer, Funktionalität, Zeitliche Lizenz, …)
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 5
Lizenzierungs-Szenario III
 Szenario
 Eine Software Firma entwickelt eine Web Anwendung
 Diese Web Anwendung wird an den Anwender ausgeliefert und läuft lokal auf dem
System des Anwenders, zum Beispiel:
 Als lokale Desktop Anwendung
 Auf einer ausgelieferten Steuerung / Embedded Device
 Anforderung
 Die Software Firma möchte die Verwendung der Anwendung beim Anwender
kontrollieren
 Es sollen beim Anwender Zusatzfunktionen freigeschaltet werden können
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 6
Lizenzierungs-Szenario IV
 Szenario
 Eine Software Firma verkauft bereits eine Desktop-Anwendung
 Zukünftig sollen Teile der Funktionalität auch in einer mobilen Anwendung
angeboten werden (Baustellen-Modus)
 Für die Funktionalität wird einen Serveranwendung benötigt. Dieses wird als Service
von der Software Firma angeboten, kann aber auch vom Anwender selbst betrieben
werden
 Anforderung
 Die Software Firma möchte die Verwendung seiner Web Anwendung durch den
Anwender kontrollieren (Anzahl Server, Anzahl Benutzer, Funktionalität, Zeitliche
Lizenz, …)
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 7
Anwendungsfälle
Node.js-Anwendungen
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 8
Node.js-Anwendungen
 JavaScript-Laufzeitumgebung
 Plattform für Netzwerkanwendungen bzw. Webserver
 Optimiert auf Performance und Ressourcensparsamkeit
 Ereignisgesteuerte Architektur
 Nicht blockierende Ein-/Ausgabeoperation
 Einzelne Threads pro Operation
 Gut geeignet für Echtzeit-Anwendungen
 Modularer Aufbau
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 9
Lizenzierungs-Szenario V
 Szenario
 Ein Service Anbieter entwickelt eine eigene Web Anwendung mit node.js (Server)
 Die Anwendung läuft auf einem Server, den der Service Anbieter betreibt (eigenes
Rechenzentrum, Azure, AWS, …)
 Der Service Anbieter verwendet diese Web Anwendung, um Umsatz mit seinen
Anwendern zu erzielen
 Anforderung
 Der Service Anbieter möchte die Verwendung seiner Web Anwendung durch den
Anwender kontrollieren (Anzahl Benutzer, Funktionalität, Zeitliche Lizenz, …)
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 10
Anwendungsfälle
Desktop-Anwendungen mit Electron
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 11
Desktop-Anwendungen mit Electron
 Runtime für Desktop-Anwendungen mit JavaScript / HTML5 / CSS
 Open Source
 Verwendet node.js und Chromium
 Einheitlicher Quellcode für alle Zielplattformen
 Keine plattformspezifischen Sprachen (C#, Objective-C, ...)
 Wiederverwendung von existierendem Quellcode aus bestehender Web-
Anwendung
 Erzeugt native Anwendung für Zielplattform
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 12
Lizenzierungs-Szenario VI
 Szenario
 Eine Software Firma erstellt eine Desktop Anwendung mit Electron
 Anforderung
 Die Software Firma möchte die Verwendung seiner Desktop Anwendung durch den
Anwender kontrollieren (Lizenz, Funktionalität, Zeitliche Lizenz, …)
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 13
Anwendungsfälle
Python-Anwendungen
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 14
Python-Anwendungen
 Schnelle und einfache Programmierung
 Plattformübergreifend
 Große Community (Dokumentation, Erweiterungen, Beispiele)
 Server-Anwendungen und Desktop-Anwendungen
 Erweiterung durch C-Programme möglich
 Weit verbreitet im Bereich Embedded Systems
 Transformation in ausführbarere Dateien möglich (Cython)
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 15
Lizenzierungs-Szenario VII
 Szenario
 Eine Software Firma erstellt eine Desktop Anwendung mit Python
 Anforderung
 Die Software Firma möchte die Verwendung seiner Desktop Anwendung durch den
Anwender kontrollieren (Lizenz, Funktionalität, Zeitliche Lizenz, …)
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 16
Technische Lösungen
CodeMeter Überblick
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 17
Auslieferung an den Anwender
Integration in die Prozesse
Einmal Integrieren – Vielfach Ausliefern …
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 18
Integration in die Software
Software Software
CodeMeter
Protection Suite
Einmal Integrieren Vielfach Ausliefern
ERP/CRM
E-Commerce
Software
Lizenz Portal
License
Central
License
Central
CodeMeter Lizenzierungssysteme
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 19
CmDongle
Hardware basierte
Sicherheit
Lizenz-Server
Lizenz-Server
im LAN / WAN
CmCloudContainer
Anwenderbezogene
Cloud-Lizenz
CmActLicense
Rechnergebundene
Lizenz-Datei
Universal
Firm Code
Technische Lösungen
CodeMeter Protection Suite
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 20
CodeMeter Protection Suite
CodeMeter Protection Suite
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 21
Automatische Lizenzprüfung
Individuelle Lizenzprüfung
Automatischer Schutz (IP Protection)
Anti-Debug Methoden
Verwendete CodeMeter Variante
Verschlüsselung einzelner Funktionen
Integritätsschutz (Tamper Protection)
Native Code
CodeMeter Runtime
IxProtector
AxProtector
AxProtector
IP Protection
IxProtector
IP Protection
Java.NET
CodeMeter Runtime CodeMeter RuntimeCodeMeter Embedded
AxProtector .NET AxProtector Java
AxProtector CmE
IxProtector CmE
Windows, macOS,
Linux
Windows, macOS,
Linux, Android
Android, Linux Java SE, Java EE
.NET Framework,
.NET Standard
CodeMeter Protection Suite
 Hauptsächlich für Desktop-Anwendungen eingesetzt
 Erfordert eine Umwandlung in Anwendung (exe) oder Bibliothek (dll, so)
 Cython, Electron
 Automatische Integration von Lizenzierungsaufrufen
 Automatischer Schutz gegen Reverse Engineering
 Automatischer Schutz des geistigen Eigentums
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 22
Technische Lösungen
CodeMeter Core API
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 23
CodeMeter Core API
// Lizenz belegen
CmAccess2(…)
// Lizenz benutzen
CmCyrpt2(…)
// Lizenz auslesen
CmGetInfo(…)
// Lizenz freigeben
CmRelease(…)
// Fehlerhandling
CmGetLastErrorCode(…)
// Lizenz Anfrage erzeugen
CmGetRemoteContextBuffer(…)
// Lizenz Update einspielen
CmExecuteRemoteUpdate(…)
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 24
CodeMeter Core API
 Voraussetzung: Aufruf einer C-API (.NET-API / Java-API)
 Python, node.js
 Integration von einfachen Abfragen (CmAccess2)
 Integration von Verschlüsselung: Encrypted Data in Source – EDIS
(CmCrypt2)
 Auslesen von Lizenzinformationen
 Benötigt eine lokale CodeMeter Runtime
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 25
Technische Lösungen
CodeMeter Cloud Lite API
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 26
CodeMeter Cloud Lite API
// Liste aller verfügbarer
// Lizenzen und Product Item
// Options
GetContents(…)
// Lizenz belegen
Access(…)
// Liste der Product Item
// der belegten Lizenz
GetContensForHandle(…)
// Senden eines “Keep-Alive”
// Signals
Revalidate(…)
// Lizenz freigeben
Release(…)
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 27
CodeMeter Cloud Lite API
 Verfügbar als SOAP und REST API
 JavaScript, Python, PHP
 Einfache Lizenzabfragen
 API angelehnt an CodeMeter Core API, aber Besonderheiten wie
 Lebensdauer
 „Keep Alive“
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 28
Best Practice Lösungen &
Demo
Python und CodeMeter Core API
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 29
Python und CodeMeter Core API
 CodeMeter Core API Abfragen in der Anwendung
 Wrapper-Modul für C-Bibliothek
 Prüfung des Ergebnisses von CmAccess2 und CmCrypt2
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 30
Python und CodeMeter Core API
import CodeMeter
class License:
def __init__(self, productcode):
self.pc = productcode
def getError(self):
return CodeMeter.CmGetLastErrorCode()
…
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 31
Python und CodeMeter Core API
…
def check(self):
cmacc = CodeMeter.CMACCESS2()
cmacc.mulFirmCode = 6000010
cmacc.mulProductCode = self.pc
cmacc.mflCtrl = CodeMeter.CM_ACCESS_STATIONSHARE
flCtrl = CodeMeter.CM_ACCESS_LOCAL_LAN
hcmse = CodeMeter.CmAccess2(flCtrl, cmacc)
if hcmse == 0:
return False
…
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 32
Python und CodeMeter Core API
…
cmcrypt = CodeMeter.CMCRYPT2()
Data = CodeMeter.c_ubyte*16
data = Data(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
result = CodeMeter.CmCrypt2(hcmse, 0, cmcrypt, data, 16)
CodeMeter.CmRelease(hcmse)
if result != 16:
return False
# TODO: check data in detail
return True
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 33
Best Practice Lösungen &
Demo
Python und CodeMeter Protection
Suite
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 34
Python und CodeMeter Protection Suite
 Compilierung als Extension mit Cython
 pyd: Bibliothek im Format des Zielsystems
 Starten mit einem _launcher.py Skript
 Verschlüsselung mit CodeMeter Protection Suite
 Beliebige Auswahl an Extensions
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 35
Best Practice Lösungen &
Demo
PHP und CodeMeter Cloud Lite
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 36
PHP und CodeMeter Cloud Lite
 Aufrufe von CodeMeter Cloud Lite im PHP-Code
 SOAP oder REST
 Bindung der Lizenz an einen Benutzeraccount
 Eigene Verwaltung
 OAuth2-Provider (Facebook, …)
 …
 Auswertung der Lizenzeigenschaften bei Bedarf
 Im Beispiel wird die Lizenz nicht belegt gehalten
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 37
PHP und CodeMeter Cloud Lite
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 38
PHP und CodeMeter Cloud Lite (Source Code)
function checkLicense($user, $productCode)
{
$accessInformation = array(
"firmCode" => 6000010,
"productCode" => $productCode,
"featureCode" => 0,
"shareDevice" => false,
"productItemReference" => 0,
);
$access = CloudLite_Access($user, $accessInformation, 120);
…
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 39
PHP und CodeMeter Cloud Lite (Source Code)
…
if (!$access)
{
return null;
}
…
$handle = $access->return->handle;
if ($handle == 0)
{
return null;
}
…
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 40
PHP und CodeMeter Cloud Lite (Source Code)
…
$entryinfo = CloudLite_GetContentsForHandle($user, $handle);
$release = CloudLite_Release($user, $handle);
return $entryinfo;
}
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 41
Best Practice Lösungen &
Demo
Electron und CodeMeter Protection
Suite
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 42
Electron und CodeMeter Protection Suite
 Auslieferung (Windows) als
 Anwendung (ohne geistiges Eigentum)
 Verzeichnis mit *.js-Dateien, *.html-Dateien, *.css-Dateien
 Integration (Windows)
 Verschlüsselung Anwendung mit FileEncryption aktiviert
 Verschlüsselung Daten-Dateien
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 43
Electron und CodeMeter Protection Suite (Exe)
[WIBU-SYSTEMS Control File]
Guid={00090000-0000-1100-8005-0000C06B5161}
…
…
-cad0
-cas0
-cav
…
…
-o:"Protectedwebinar.exe"
"Unprotectedwebinar.exe"
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 44
Electron und CodeMeter Protection Suite (Daten)
[WIBU-SYSTEMS Control File]
Guid={00090000-0000-1100-8005-0000C06B5161}
…
…
-cdc
…
…
-o:"Protectedresourcesappmain.js"
"Unprotectedresourcesappmain.js"
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 45
Electron und CodeMeter Protection Suite (Verschlüsselte *.js-Datei)
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 46
https://www.wibu.com
info@wibu.com
Europe: +49-721-931720
USA: +1-425-7756900
China: +86-21-55661790
Japan: +81-3-43608205
Vielen Dank für Ihre Aufmerksamkeit
2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 47

Weitere ähnliche Inhalte

Ähnlich wie Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren

Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch SalzburgSlides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
DNUG e.V.
 
Der schnellste Weg, ihr Wissen zu schützen
Der schnellste Weg, ihr Wissen zu schützenDer schnellste Weg, ihr Wissen zu schützen
Der schnellste Weg, ihr Wissen zu schützen
team-WIBU
 
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
DNUG e.V.
 
Industrie 40 Symposium an der RFH Köln 7.7.2016
Industrie 40 Symposium an der RFH Köln 7.7.2016 Industrie 40 Symposium an der RFH Köln 7.7.2016
Industrie 40 Symposium an der RFH Köln 7.7.2016
Brockhaus Consulting GmbH
 
dachnug51 - Business Adapter in Volt MX Foundry.pdf
dachnug51 - Business Adapter in Volt MX Foundry.pdfdachnug51 - Business Adapter in Volt MX Foundry.pdf
dachnug51 - Business Adapter in Volt MX Foundry.pdf
DNUG e.V.
 
Windows 8 Business-App-Entwicklung
Windows 8 Business-App-EntwicklungWindows 8 Business-App-Entwicklung
Windows 8 Business-App-Entwicklung
Matthias Jauernig
 
Code-Generierung vereinfacht IoT-Entwicklung
Code-Generierung vereinfacht IoT-EntwicklungCode-Generierung vereinfacht IoT-Entwicklung
Code-Generierung vereinfacht IoT-Entwicklung
bhoeck
 
All inside: Integrierte ALM-Komplettlösung mit "codeBeamer"
All inside: Integrierte ALM-Komplettlösung mit "codeBeamer" All inside: Integrierte ALM-Komplettlösung mit "codeBeamer"
All inside: Integrierte ALM-Komplettlösung mit "codeBeamer"
Intland Software GmbH
 
Schutz und Lizenzierung für Embedded-Geräte
Schutz und Lizenzierung für Embedded-GeräteSchutz und Lizenzierung für Embedded-Geräte
Schutz und Lizenzierung für Embedded-Geräte
team-WIBU
 
Entfesseln Sie die Leistung von HCL Nomad - DNUG Stammtisch Wien
Entfesseln Sie die Leistung von  HCL Nomad - DNUG Stammtisch WienEntfesseln Sie die Leistung von  HCL Nomad - DNUG Stammtisch Wien
Entfesseln Sie die Leistung von HCL Nomad - DNUG Stammtisch Wien
DNUG e.V.
 
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Nico Orschel
 
Referat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler AnwendungenReferat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler Anwendungen
Digicomp Academy AG
 
IBM License Metric Tool 9.2.x (edcom 2017)
IBM License Metric Tool 9.2.x (edcom 2017)IBM License Metric Tool 9.2.x (edcom 2017)
IBM License Metric Tool 9.2.x (edcom 2017)
Novakenstein
 
Back to the Frontend – aber nun mit Microservices
Back to the Frontend – aber nun mit MicroservicesBack to the Frontend – aber nun mit Microservices
Back to the Frontend – aber nun mit Microservices
André Fleischer
 
Europcar - "IT-Winning in Downturn"
Europcar - "IT-Winning in Downturn"Europcar - "IT-Winning in Downturn"
Europcar - "IT-Winning in Downturn"
Netzwerk GreenIT-BB
 
Ganz neu, aber doch vertraut: Einheitliche Abläufe für Online- und Offline-Li...
Ganz neu, aber doch vertraut: Einheitliche Abläufe für Online- und Offline-Li...Ganz neu, aber doch vertraut: Einheitliche Abläufe für Online- und Offline-Li...
Ganz neu, aber doch vertraut: Einheitliche Abläufe für Online- und Offline-Li...
team-WIBU
 
Cloud – Intune
Cloud – IntuneCloud – Intune
Cloud – Intune
Digicomp Academy AG
 
InstallShield 2013 Datasheet
InstallShield 2013 DatasheetInstallShield 2013 Datasheet
InstallShield 2013 Datasheet
Flexera
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)
mfrancis
 
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
DNUG e.V.
 

Ähnlich wie Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren (20)

Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch SalzburgSlides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
 
Der schnellste Weg, ihr Wissen zu schützen
Der schnellste Weg, ihr Wissen zu schützenDer schnellste Weg, ihr Wissen zu schützen
Der schnellste Weg, ihr Wissen zu schützen
 
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
Industrie 40 Symposium an der RFH Köln 7.7.2016
Industrie 40 Symposium an der RFH Köln 7.7.2016 Industrie 40 Symposium an der RFH Köln 7.7.2016
Industrie 40 Symposium an der RFH Köln 7.7.2016
 
dachnug51 - Business Adapter in Volt MX Foundry.pdf
dachnug51 - Business Adapter in Volt MX Foundry.pdfdachnug51 - Business Adapter in Volt MX Foundry.pdf
dachnug51 - Business Adapter in Volt MX Foundry.pdf
 
Windows 8 Business-App-Entwicklung
Windows 8 Business-App-EntwicklungWindows 8 Business-App-Entwicklung
Windows 8 Business-App-Entwicklung
 
Code-Generierung vereinfacht IoT-Entwicklung
Code-Generierung vereinfacht IoT-EntwicklungCode-Generierung vereinfacht IoT-Entwicklung
Code-Generierung vereinfacht IoT-Entwicklung
 
All inside: Integrierte ALM-Komplettlösung mit "codeBeamer"
All inside: Integrierte ALM-Komplettlösung mit "codeBeamer" All inside: Integrierte ALM-Komplettlösung mit "codeBeamer"
All inside: Integrierte ALM-Komplettlösung mit "codeBeamer"
 
Schutz und Lizenzierung für Embedded-Geräte
Schutz und Lizenzierung für Embedded-GeräteSchutz und Lizenzierung für Embedded-Geräte
Schutz und Lizenzierung für Embedded-Geräte
 
Entfesseln Sie die Leistung von HCL Nomad - DNUG Stammtisch Wien
Entfesseln Sie die Leistung von  HCL Nomad - DNUG Stammtisch WienEntfesseln Sie die Leistung von  HCL Nomad - DNUG Stammtisch Wien
Entfesseln Sie die Leistung von HCL Nomad - DNUG Stammtisch Wien
 
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
 
Referat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler AnwendungenReferat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler Anwendungen
 
IBM License Metric Tool 9.2.x (edcom 2017)
IBM License Metric Tool 9.2.x (edcom 2017)IBM License Metric Tool 9.2.x (edcom 2017)
IBM License Metric Tool 9.2.x (edcom 2017)
 
Back to the Frontend – aber nun mit Microservices
Back to the Frontend – aber nun mit MicroservicesBack to the Frontend – aber nun mit Microservices
Back to the Frontend – aber nun mit Microservices
 
Europcar - "IT-Winning in Downturn"
Europcar - "IT-Winning in Downturn"Europcar - "IT-Winning in Downturn"
Europcar - "IT-Winning in Downturn"
 
Ganz neu, aber doch vertraut: Einheitliche Abläufe für Online- und Offline-Li...
Ganz neu, aber doch vertraut: Einheitliche Abläufe für Online- und Offline-Li...Ganz neu, aber doch vertraut: Einheitliche Abläufe für Online- und Offline-Li...
Ganz neu, aber doch vertraut: Einheitliche Abläufe für Online- und Offline-Li...
 
Cloud – Intune
Cloud – IntuneCloud – Intune
Cloud – Intune
 
InstallShield 2013 Datasheet
InstallShield 2013 DatasheetInstallShield 2013 Datasheet
InstallShield 2013 Datasheet
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)
 
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
 

Mehr von team-WIBU

Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
team-WIBU
 
Unlocking the Future: Empowering Industrial Security
Unlocking the Future: Empowering Industrial SecurityUnlocking the Future: Empowering Industrial Security
Unlocking the Future: Empowering Industrial Security
team-WIBU
 
The Power of Partnership: Enabling Success Together
The Power of Partnership: Enabling Success TogetherThe Power of Partnership: Enabling Success Together
The Power of Partnership: Enabling Success Together
team-WIBU
 
Unleash the Power of CodeMeter - CodeMeter Basics
Unleash the Power of CodeMeter - CodeMeter BasicsUnleash the Power of CodeMeter - CodeMeter Basics
Unleash the Power of CodeMeter - CodeMeter Basics
team-WIBU
 
Keine Zeit für Leerlauf – Lizenzverfügbarkeit für Geschäftskontinuität
Keine Zeit für Leerlauf – Lizenzverfügbarkeit für GeschäftskontinuitätKeine Zeit für Leerlauf – Lizenzverfügbarkeit für Geschäftskontinuität
Keine Zeit für Leerlauf – Lizenzverfügbarkeit für Geschäftskontinuität
team-WIBU
 
No Time to Idle – License availability for business continuity
No Time to Idle – License availability for business continuityNo Time to Idle – License availability for business continuity
No Time to Idle – License availability for business continuity
team-WIBU
 
Cloud-Based Licensing in Offline Scenarios
Cloud-Based Licensing in Offline ScenariosCloud-Based Licensing in Offline Scenarios
Cloud-Based Licensing in Offline Scenarios
team-WIBU
 
Optimizing Cloud Licensing: Strategies and Best Practices
Optimizing Cloud Licensing: Strategies and Best PracticesOptimizing Cloud Licensing: Strategies and Best Practices
Optimizing Cloud Licensing: Strategies and Best Practices
team-WIBU
 
For a Few Licenses More
For a Few Licenses MoreFor a Few Licenses More
For a Few Licenses More
team-WIBU
 
App Management on the Edge
App Management on the EdgeApp Management on the Edge
App Management on the Edge
team-WIBU
 
Protecting and Licensing .NET Applications
Protecting and Licensing .NET ApplicationsProtecting and Licensing .NET Applications
Protecting and Licensing .NET Applications
team-WIBU
 
A Bit of License Management Magic
A Bit of License Management MagicA Bit of License Management Magic
A Bit of License Management Magic
team-WIBU
 
The first step is always the most decisive
The first step is always the most decisiveThe first step is always the most decisive
The first step is always the most decisive
team-WIBU
 
Protection and monetization of 3D printed objects in the spare parts business...
Protection and monetization of 3D printed objects in the spare parts business...Protection and monetization of 3D printed objects in the spare parts business...
Protection and monetization of 3D printed objects in the spare parts business...
team-WIBU
 
Authenticate and authorize your IIoTdevices
Authenticate and authorize your IIoTdevicesAuthenticate and authorize your IIoTdevices
Authenticate and authorize your IIoTdevices
team-WIBU
 
How and Why to Create and Sell Consumption-Based Licenses
How and Why to Create and Sell Consumption-Based LicensesHow and Why to Create and Sell Consumption-Based Licenses
How and Why to Create and Sell Consumption-Based Licenses
team-WIBU
 
Serving Up Features-on-Demand for Every Appetite
Serving Up Features-on-Demand for Every AppetiteServing Up Features-on-Demand for Every Appetite
Serving Up Features-on-Demand for Every Appetite
team-WIBU
 
Security and Protection for Machine Learning.pptx
Security and Protection for Machine Learning.pptxSecurity and Protection for Machine Learning.pptx
Security and Protection for Machine Learning.pptx
team-WIBU
 
License Portal - The DIY Solution
License Portal - The DIY SolutionLicense Portal - The DIY Solution
License Portal - The DIY Solution
team-WIBU
 
Running code in secure hardware or cloud environments
Running code in secure hardware or cloud environmentsRunning code in secure hardware or cloud environments
Running code in secure hardware or cloud environments
team-WIBU
 

Mehr von team-WIBU (20)

Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Unlocking the Future: Empowering Industrial Security
Unlocking the Future: Empowering Industrial SecurityUnlocking the Future: Empowering Industrial Security
Unlocking the Future: Empowering Industrial Security
 
The Power of Partnership: Enabling Success Together
The Power of Partnership: Enabling Success TogetherThe Power of Partnership: Enabling Success Together
The Power of Partnership: Enabling Success Together
 
Unleash the Power of CodeMeter - CodeMeter Basics
Unleash the Power of CodeMeter - CodeMeter BasicsUnleash the Power of CodeMeter - CodeMeter Basics
Unleash the Power of CodeMeter - CodeMeter Basics
 
Keine Zeit für Leerlauf – Lizenzverfügbarkeit für Geschäftskontinuität
Keine Zeit für Leerlauf – Lizenzverfügbarkeit für GeschäftskontinuitätKeine Zeit für Leerlauf – Lizenzverfügbarkeit für Geschäftskontinuität
Keine Zeit für Leerlauf – Lizenzverfügbarkeit für Geschäftskontinuität
 
No Time to Idle – License availability for business continuity
No Time to Idle – License availability for business continuityNo Time to Idle – License availability for business continuity
No Time to Idle – License availability for business continuity
 
Cloud-Based Licensing in Offline Scenarios
Cloud-Based Licensing in Offline ScenariosCloud-Based Licensing in Offline Scenarios
Cloud-Based Licensing in Offline Scenarios
 
Optimizing Cloud Licensing: Strategies and Best Practices
Optimizing Cloud Licensing: Strategies and Best PracticesOptimizing Cloud Licensing: Strategies and Best Practices
Optimizing Cloud Licensing: Strategies and Best Practices
 
For a Few Licenses More
For a Few Licenses MoreFor a Few Licenses More
For a Few Licenses More
 
App Management on the Edge
App Management on the EdgeApp Management on the Edge
App Management on the Edge
 
Protecting and Licensing .NET Applications
Protecting and Licensing .NET ApplicationsProtecting and Licensing .NET Applications
Protecting and Licensing .NET Applications
 
A Bit of License Management Magic
A Bit of License Management MagicA Bit of License Management Magic
A Bit of License Management Magic
 
The first step is always the most decisive
The first step is always the most decisiveThe first step is always the most decisive
The first step is always the most decisive
 
Protection and monetization of 3D printed objects in the spare parts business...
Protection and monetization of 3D printed objects in the spare parts business...Protection and monetization of 3D printed objects in the spare parts business...
Protection and monetization of 3D printed objects in the spare parts business...
 
Authenticate and authorize your IIoTdevices
Authenticate and authorize your IIoTdevicesAuthenticate and authorize your IIoTdevices
Authenticate and authorize your IIoTdevices
 
How and Why to Create and Sell Consumption-Based Licenses
How and Why to Create and Sell Consumption-Based LicensesHow and Why to Create and Sell Consumption-Based Licenses
How and Why to Create and Sell Consumption-Based Licenses
 
Serving Up Features-on-Demand for Every Appetite
Serving Up Features-on-Demand for Every AppetiteServing Up Features-on-Demand for Every Appetite
Serving Up Features-on-Demand for Every Appetite
 
Security and Protection for Machine Learning.pptx
Security and Protection for Machine Learning.pptxSecurity and Protection for Machine Learning.pptx
Security and Protection for Machine Learning.pptx
 
License Portal - The DIY Solution
License Portal - The DIY SolutionLicense Portal - The DIY Solution
License Portal - The DIY Solution
 
Running code in secure hardware or cloud environments
Running code in secure hardware or cloud environmentsRunning code in secure hardware or cloud environments
Running code in secure hardware or cloud environments
 

Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren

  • 1. Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren Rüdiger Kügler, VP Sales & Professional Services ruediger.kuegler@wibu.com Jörg Jans, Professional Services joerg.jans@wibu.com Python, PHP & JavaScript 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 1
  • 2. Anwendungsfälle Webanwendungen mit HTML 5, CSS3, JavaScript 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 2
  • 3. Webanwendungen mit HTML 5, CSS3, JavaScript  Mobile Anwendung für alle Arten von Geräten (PCs, Mobile Devices, Tablets)  Immer aktuelle Anwendung, keine veraltete lokale Version auf dem PC des Anwenders  Keine Updates beim Anwender notwendig  Keine Administrator-Rechte beim Anwender notwendig, lediglich Browser benötigt  Entwicklungswerkzeuge werden immer besser 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 3
  • 4. Lizenzierungs-Szenario I  Szenario  Eine Software Firma entwickelt eine Web Anwendung als Produkt  Die Software Firma verkauft diese komplett (Server und Clients) an einen oder mehrere Service Anbieter  Der Service Anbieter verwendet die Web Anwendung, um Umsatz mit seinen Anwendern zu erzielen  Anforderung  Die Software Firma möchte kontrollieren, dass die Service Anbieter die Web Anwendung im Rahmen der vereinbarten Lizenzen verwenden (Anzahl Server, Anzahl Benutzer, Funktionalität, Zeitliche Lizenz, …) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 4
  • 5. Lizenzierungs-Szenario II  Szenario  Ein Service Anbieter entwickelt eine eigene Web Anwendung  Die Anwendung läuft auf einem Server, den der Service Anbieter betreibt (eigenes Rechenzentrum, Azure, AWS, …)  Der Service Anbieter verwendet diese Web Anwendung, um Umsatz mit seinen Anwendern zu erzielen  Anforderung  Der Service Anbieter möchte die Verwendung seiner Web Anwendung durch den Anwender kontrollieren (Anzahl Benutzer, Funktionalität, Zeitliche Lizenz, …) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 5
  • 6. Lizenzierungs-Szenario III  Szenario  Eine Software Firma entwickelt eine Web Anwendung  Diese Web Anwendung wird an den Anwender ausgeliefert und läuft lokal auf dem System des Anwenders, zum Beispiel:  Als lokale Desktop Anwendung  Auf einer ausgelieferten Steuerung / Embedded Device  Anforderung  Die Software Firma möchte die Verwendung der Anwendung beim Anwender kontrollieren  Es sollen beim Anwender Zusatzfunktionen freigeschaltet werden können 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 6
  • 7. Lizenzierungs-Szenario IV  Szenario  Eine Software Firma verkauft bereits eine Desktop-Anwendung  Zukünftig sollen Teile der Funktionalität auch in einer mobilen Anwendung angeboten werden (Baustellen-Modus)  Für die Funktionalität wird einen Serveranwendung benötigt. Dieses wird als Service von der Software Firma angeboten, kann aber auch vom Anwender selbst betrieben werden  Anforderung  Die Software Firma möchte die Verwendung seiner Web Anwendung durch den Anwender kontrollieren (Anzahl Server, Anzahl Benutzer, Funktionalität, Zeitliche Lizenz, …) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 7
  • 8. Anwendungsfälle Node.js-Anwendungen 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 8
  • 9. Node.js-Anwendungen  JavaScript-Laufzeitumgebung  Plattform für Netzwerkanwendungen bzw. Webserver  Optimiert auf Performance und Ressourcensparsamkeit  Ereignisgesteuerte Architektur  Nicht blockierende Ein-/Ausgabeoperation  Einzelne Threads pro Operation  Gut geeignet für Echtzeit-Anwendungen  Modularer Aufbau 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 9
  • 10. Lizenzierungs-Szenario V  Szenario  Ein Service Anbieter entwickelt eine eigene Web Anwendung mit node.js (Server)  Die Anwendung läuft auf einem Server, den der Service Anbieter betreibt (eigenes Rechenzentrum, Azure, AWS, …)  Der Service Anbieter verwendet diese Web Anwendung, um Umsatz mit seinen Anwendern zu erzielen  Anforderung  Der Service Anbieter möchte die Verwendung seiner Web Anwendung durch den Anwender kontrollieren (Anzahl Benutzer, Funktionalität, Zeitliche Lizenz, …) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 10
  • 11. Anwendungsfälle Desktop-Anwendungen mit Electron 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 11
  • 12. Desktop-Anwendungen mit Electron  Runtime für Desktop-Anwendungen mit JavaScript / HTML5 / CSS  Open Source  Verwendet node.js und Chromium  Einheitlicher Quellcode für alle Zielplattformen  Keine plattformspezifischen Sprachen (C#, Objective-C, ...)  Wiederverwendung von existierendem Quellcode aus bestehender Web- Anwendung  Erzeugt native Anwendung für Zielplattform 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 12
  • 13. Lizenzierungs-Szenario VI  Szenario  Eine Software Firma erstellt eine Desktop Anwendung mit Electron  Anforderung  Die Software Firma möchte die Verwendung seiner Desktop Anwendung durch den Anwender kontrollieren (Lizenz, Funktionalität, Zeitliche Lizenz, …) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 13
  • 14. Anwendungsfälle Python-Anwendungen 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 14
  • 15. Python-Anwendungen  Schnelle und einfache Programmierung  Plattformübergreifend  Große Community (Dokumentation, Erweiterungen, Beispiele)  Server-Anwendungen und Desktop-Anwendungen  Erweiterung durch C-Programme möglich  Weit verbreitet im Bereich Embedded Systems  Transformation in ausführbarere Dateien möglich (Cython) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 15
  • 16. Lizenzierungs-Szenario VII  Szenario  Eine Software Firma erstellt eine Desktop Anwendung mit Python  Anforderung  Die Software Firma möchte die Verwendung seiner Desktop Anwendung durch den Anwender kontrollieren (Lizenz, Funktionalität, Zeitliche Lizenz, …) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 16
  • 17. Technische Lösungen CodeMeter Überblick 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 17
  • 18. Auslieferung an den Anwender Integration in die Prozesse Einmal Integrieren – Vielfach Ausliefern … 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 18 Integration in die Software Software Software CodeMeter Protection Suite Einmal Integrieren Vielfach Ausliefern ERP/CRM E-Commerce Software Lizenz Portal License Central License Central
  • 19. CodeMeter Lizenzierungssysteme 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 19 CmDongle Hardware basierte Sicherheit Lizenz-Server Lizenz-Server im LAN / WAN CmCloudContainer Anwenderbezogene Cloud-Lizenz CmActLicense Rechnergebundene Lizenz-Datei Universal Firm Code
  • 20. Technische Lösungen CodeMeter Protection Suite 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 20
  • 21. CodeMeter Protection Suite CodeMeter Protection Suite 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 21 Automatische Lizenzprüfung Individuelle Lizenzprüfung Automatischer Schutz (IP Protection) Anti-Debug Methoden Verwendete CodeMeter Variante Verschlüsselung einzelner Funktionen Integritätsschutz (Tamper Protection) Native Code CodeMeter Runtime IxProtector AxProtector AxProtector IP Protection IxProtector IP Protection Java.NET CodeMeter Runtime CodeMeter RuntimeCodeMeter Embedded AxProtector .NET AxProtector Java AxProtector CmE IxProtector CmE Windows, macOS, Linux Windows, macOS, Linux, Android Android, Linux Java SE, Java EE .NET Framework, .NET Standard
  • 22. CodeMeter Protection Suite  Hauptsächlich für Desktop-Anwendungen eingesetzt  Erfordert eine Umwandlung in Anwendung (exe) oder Bibliothek (dll, so)  Cython, Electron  Automatische Integration von Lizenzierungsaufrufen  Automatischer Schutz gegen Reverse Engineering  Automatischer Schutz des geistigen Eigentums 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 22
  • 23. Technische Lösungen CodeMeter Core API 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 23
  • 24. CodeMeter Core API // Lizenz belegen CmAccess2(…) // Lizenz benutzen CmCyrpt2(…) // Lizenz auslesen CmGetInfo(…) // Lizenz freigeben CmRelease(…) // Fehlerhandling CmGetLastErrorCode(…) // Lizenz Anfrage erzeugen CmGetRemoteContextBuffer(…) // Lizenz Update einspielen CmExecuteRemoteUpdate(…) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 24
  • 25. CodeMeter Core API  Voraussetzung: Aufruf einer C-API (.NET-API / Java-API)  Python, node.js  Integration von einfachen Abfragen (CmAccess2)  Integration von Verschlüsselung: Encrypted Data in Source – EDIS (CmCrypt2)  Auslesen von Lizenzinformationen  Benötigt eine lokale CodeMeter Runtime 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 25
  • 26. Technische Lösungen CodeMeter Cloud Lite API 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 26
  • 27. CodeMeter Cloud Lite API // Liste aller verfügbarer // Lizenzen und Product Item // Options GetContents(…) // Lizenz belegen Access(…) // Liste der Product Item // der belegten Lizenz GetContensForHandle(…) // Senden eines “Keep-Alive” // Signals Revalidate(…) // Lizenz freigeben Release(…) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 27
  • 28. CodeMeter Cloud Lite API  Verfügbar als SOAP und REST API  JavaScript, Python, PHP  Einfache Lizenzabfragen  API angelehnt an CodeMeter Core API, aber Besonderheiten wie  Lebensdauer  „Keep Alive“ 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 28
  • 29. Best Practice Lösungen & Demo Python und CodeMeter Core API 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 29
  • 30. Python und CodeMeter Core API  CodeMeter Core API Abfragen in der Anwendung  Wrapper-Modul für C-Bibliothek  Prüfung des Ergebnisses von CmAccess2 und CmCrypt2 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 30
  • 31. Python und CodeMeter Core API import CodeMeter class License: def __init__(self, productcode): self.pc = productcode def getError(self): return CodeMeter.CmGetLastErrorCode() … 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 31
  • 32. Python und CodeMeter Core API … def check(self): cmacc = CodeMeter.CMACCESS2() cmacc.mulFirmCode = 6000010 cmacc.mulProductCode = self.pc cmacc.mflCtrl = CodeMeter.CM_ACCESS_STATIONSHARE flCtrl = CodeMeter.CM_ACCESS_LOCAL_LAN hcmse = CodeMeter.CmAccess2(flCtrl, cmacc) if hcmse == 0: return False … 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 32
  • 33. Python und CodeMeter Core API … cmcrypt = CodeMeter.CMCRYPT2() Data = CodeMeter.c_ubyte*16 data = Data(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) result = CodeMeter.CmCrypt2(hcmse, 0, cmcrypt, data, 16) CodeMeter.CmRelease(hcmse) if result != 16: return False # TODO: check data in detail return True 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 33
  • 34. Best Practice Lösungen & Demo Python und CodeMeter Protection Suite 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 34
  • 35. Python und CodeMeter Protection Suite  Compilierung als Extension mit Cython  pyd: Bibliothek im Format des Zielsystems  Starten mit einem _launcher.py Skript  Verschlüsselung mit CodeMeter Protection Suite  Beliebige Auswahl an Extensions 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 35
  • 36. Best Practice Lösungen & Demo PHP und CodeMeter Cloud Lite 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 36
  • 37. PHP und CodeMeter Cloud Lite  Aufrufe von CodeMeter Cloud Lite im PHP-Code  SOAP oder REST  Bindung der Lizenz an einen Benutzeraccount  Eigene Verwaltung  OAuth2-Provider (Facebook, …)  …  Auswertung der Lizenzeigenschaften bei Bedarf  Im Beispiel wird die Lizenz nicht belegt gehalten 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 37
  • 38. PHP und CodeMeter Cloud Lite 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 38
  • 39. PHP und CodeMeter Cloud Lite (Source Code) function checkLicense($user, $productCode) { $accessInformation = array( "firmCode" => 6000010, "productCode" => $productCode, "featureCode" => 0, "shareDevice" => false, "productItemReference" => 0, ); $access = CloudLite_Access($user, $accessInformation, 120); … 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 39
  • 40. PHP und CodeMeter Cloud Lite (Source Code) … if (!$access) { return null; } … $handle = $access->return->handle; if ($handle == 0) { return null; } … 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 40
  • 41. PHP und CodeMeter Cloud Lite (Source Code) … $entryinfo = CloudLite_GetContentsForHandle($user, $handle); $release = CloudLite_Release($user, $handle); return $entryinfo; } 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 41
  • 42. Best Practice Lösungen & Demo Electron und CodeMeter Protection Suite 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 42
  • 43. Electron und CodeMeter Protection Suite  Auslieferung (Windows) als  Anwendung (ohne geistiges Eigentum)  Verzeichnis mit *.js-Dateien, *.html-Dateien, *.css-Dateien  Integration (Windows)  Verschlüsselung Anwendung mit FileEncryption aktiviert  Verschlüsselung Daten-Dateien 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 43
  • 44. Electron und CodeMeter Protection Suite (Exe) [WIBU-SYSTEMS Control File] Guid={00090000-0000-1100-8005-0000C06B5161} … … -cad0 -cas0 -cav … … -o:"Protectedwebinar.exe" "Unprotectedwebinar.exe" 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 44
  • 45. Electron und CodeMeter Protection Suite (Daten) [WIBU-SYSTEMS Control File] Guid={00090000-0000-1100-8005-0000C06B5161} … … -cdc … … -o:"Protectedresourcesappmain.js" "Unprotectedresourcesappmain.js" 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 45
  • 46. Electron und CodeMeter Protection Suite (Verschlüsselte *.js-Datei) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 46
  • 47. https://www.wibu.com info@wibu.com Europe: +49-721-931720 USA: +1-425-7756900 China: +86-21-55661790 Japan: +81-3-43608205 Vielen Dank für Ihre Aufmerksamkeit 2019-06-27 © WIBU-SYSTEMS AG 2019 - Plattformunabhängige Anwendungen mit Python, PHP und JavaScript lizenzieren 47