java lizenzserver

Lizenzserver clienteine firma bietet eine license-server-software an, mit der kunden-applikationen kontrolliert werden können. ein teil der license-server-software wird in die kunden-applikation eingebaut. sie löst beim aufstarten ein ticket beim license-server. dieses ticket gehört zu einer vordefinierten lizenz pro kunde. eine kunden-lizenz beinhaltet unter anderem die maximale anzahl gleichzeitig zur verfügung stehender tickets (concurrent license). die license-server-software ist bisher in zwei varianten implementiert:

a) eine reine memory-applikation zu testzwecken (simple license server). alle lizenzdaten gehen beim hinunterfahren des license-servers verloren.

b) eine relationale datenbank-variante (powerLicense-server). die datenbankzugriffe sind explizit mit JDBC programmiert.

projekt:
entwickle eine JDO-variante des license servers. in folgenden varianten:

  • verwendung einer oo-datenbank unterhalb des JDO-API
  • verwendung einer relationalen datenbank unterhalb des JDO-API

JDO- und DB-software

  • objektdatenbank objectDB (www.objectdb.com) mit JDO-implementation.
  • kodo von solarmetric (www.solarmetric.com) für JDO-implementationen mit einer relationalen
    datenbank. als relationale datenbank kann ein produkt ihrer wahl verwenden, z.B. mySQL, oracle, sybase oder andere von kodo unterstützte datenbanken.

architektur

der lizenzserver dient der verwaltung von lizenzen für software, die bei einem client installiert ist. der client ist irgendeine applikation, zum beispiel eine projektverwaltungssoftware, eine cad-software usw. ein kleines teilstück der clientsoftware kommuniziert mit dem lizenzserver. dieses kleine teilstück gilt als fälschungssicher. es löst beim license server jeweils beim starten der applikationssoftware ein ticket für eine bestimmte lizenz und gibt dieses nach beendigung der applikation zurück. eine lizenz besteht grundsätzlich aus einer kurzen beschreibung, einem key, einem ablaufdatum und einer anzahl maximaler gleichzeitiger benutzer. eine lizenz wird über das license server administrator-programm definiert.

Lizenzserver

die berechtigung zum starten einer software wird direkt über den license service des software-anbieters geregelt. der benutzer einer software bekommt hierzu im license service eine lizenz eingetragen. das eintragen der lizenz wird vom service administration client des software-anbieters durchgeführt. die lizenziert software kann anschliessend beim aufstarten ein ticket beziehen. dieses berechtigt zum gebrauch der software für eine bestimmte zeit. die anzahl tickets, die für einen lizenznehmer maximal gleichzeitig ausgegeben werden kann, ist im lizenzeintrag festgehalten.

tickets

  1. der license server signiert die auszuliefernden tickets nach dem dss standard mit dem privaten schlüssel des license servers. die signierten daten im ticket müssen mindestens umfassen:
    • ticket-ID
    • expiration date
    • client-ID
    • license-Key
  2. der license client prüft die daten des ausgelieferten tickets anhand der signatur. damit ist die echtheit der daten und des erzeugers garantiert.

klassendiagramm

Klassendiagramm

download
java lizenzserver