Skip to Content
Neue Version 12 verfügbar 🎉

Floating-Lizenz

Eine Floating-Lizenz ist ein Pool von Lizenzen, den sich die Benutzer oder Rechner in einem Netzwerk teilen. Mit Babel Licensing erstellen Sie Floating-Lizenzen im Babel Licensing Service mit Babel Desktop. Diese Seite zeigt, wie Sie mit Babel Desktop eine Floating-Lizenz erstellen und wie Sie eine .NET-Clientanwendung so konfigurieren, dass sie die Lizenz mit der Bibliothek von Babel Licensing verwendet.

Voraussetzungen

Um Floating-Lizenzen im Babel Licensing Service zu nutzen, gehen Sie wie folgt vor. Stellen Sie zuerst sicher, dass der Babel Licensing Service auf Ihrem Server läuft, wie im Abschnitt Erste Schritte beschrieben. Erstellen Sie dann nach der Anleitung weiter unten ein Testprodukt und eine zugehörige Lizenzvorlage. Damit ist die Grundlage für das Erzeugen von Floating-Lizenzen gelegt.

Laden Sie anschließend den Quellcode des Floating-Lizenz-Clients von GitHub herunter. Mit diesem Clientcode binden Sie Floating-Lizenzen in Ihre .NET-Anwendung ein.

git clone https://github.com/babelfornet/floating-license-console-example.git

Um für dieses Beispiel eine Floating-Lizenz zu erstellen, brauchen Sie eine zugehörige Lizenzvorlage.

Eine Floating-Lizenz erstellen

Babel Desktop verbindet sich mit dem Babel Licensing Service, und Sie erstellen und konfigurieren damit Floating-Lizenzen. Sie legen die Größe des Lizenzpools fest, das heißt die Anzahl der Benutzer oder Rechner, die die Lizenz gleichzeitig verwenden dürfen. Ihre Anwendung holt sich dann eine Lizenz aus dem Pool, wenn sie eine braucht, und gibt sie frei, wenn sie fertig ist. Jeder ausgeliehene Platz ist ein Token, das auf das Tokenlimit des Dienstes angerechnet wird, siehe Lizenztoken.

Um eine Floating-Lizenz in Babel Desktop zu registrieren, gehen Sie wie folgt vor:

Mit dem Dienst verbinden

Öffnen Sie Babel Desktop und klicken Sie in der Aktivitätsleiste auf das Symbol des Profils Ihres Babel Licensing Service. Zum Erzeugen von Lizenzen brauchen Sie ein Profil Lokaler Test mit Lokale Verwaltung. Führen Sie Babel Desktop deshalb auf dem Rechner des Dienstes aus. Für einen entfernten Dienst verwenden Sie die Webanwendung oder die Management API.

Lizenz erzeugen

Öffnen Sie die Ansicht Lizenzen und wählen Sie in der Symbolleiste Lizenz erzeugen.

Vorlage und Signaturschlüssel auswählen

Wählen Sie in der Gruppe Vorlage die im vorigen Absatz erstellte Vorlage der Lizenz (siehe Lizenzvorlagen) und den Signaturschlüssel aus. Ist kein Signaturschlüssel ausgewählt, wird der Schlüssel der Vorlage oder ihres Produkts verwendet.

Modus auf Floating setzen

Setzen Sie in der Gruppe Bedingungen den Modus auf Floating.

Poolgröße festlegen

Geben Sie unter Standorte die Größe des Floating-Pools ein: die Anzahl der Lizenzen, die gleichzeitig in Gebrauch sein können.

Benutzerschlüssel erzeugen

Klicken Sie in der Gruppe Lizenzinformationen am rechten Ende des Felds Benutzerschlüssel auf die Schaltfläche Generieren. Mit diesem eindeutigen Code fordert die Clientanwendung eine Floating-Lizenz an.

Lizenznehmer und Lizenzdetails eingeben

Geben Sie die Angaben zum Lizenznehmer ein (der Name des Lizenznehmers oder ein Unternehmen ist erforderlich) sowie alle weiteren Felder, Funktionen oder Einschränkungen, die Sie für diese Lizenz wünschen.

Format auswählen

Wählen Sie das Format der Lizenz: XML, XML-Signatur, ASCII oder Base32.

Lizenz speichern

Speichern Sie das Formular. Der Dienst erzeugt und signiert die Lizenz.

Der aus der Datei Keys.snk extrahierte öffentliche Schlüssel, der für die Lizenzvalidierung nötig ist, ist im Quellcode des Beispiels bereits konfiguriert.

Die neu registrierte Floating-Lizenz erscheint nun in der Lizenzliste, mit einem eindeutigen Lizenzschlüssel und weiteren Angaben. Mit der Data-Center-Edition können Sie Floating-Lizenzen auch auf der Seite „Licenses“ (Lizenzen) der Webanwendung erstellen.

Der Babel Licensing Service begrenzt die gleichzeitige Nutzung der Lizenz auf die Anzahl der Floating-Standorte, die Sie eingegeben haben.

Einen Client konfigurieren

Sobald die Floating-Lizenz im Babel Licensing Service erstellt ist, konfigurieren Sie Ihre .NET-Clientanwendung so, dass sie die Lizenz verwendet. Dazu binden Sie die Bibliothek von Babel Licensing in Ihre Anwendung ein und implementieren den Code, der Lizenzen aus dem Floating-Pool anfordert und wieder freigibt. Die Bibliothek von Babel Licensing stellt die APIs bereit, mit denen Lizenzen validiert und durchgesetzt werden.

Um das Beispielprojekt zur Floating-Lizenz zu öffnen, gehen Sie wie folgt vor:

Projektmappe öffnen

Wechseln Sie zu dem Ort, an dem das Beispielprojekt zur Floating-Lizenz gespeichert ist, und doppelklicken Sie auf die Projektmappendatei ClientFloating.sln, um sie in der integrierten Entwicklungsumgebung (IDE) Ihrer Wahl zu öffnen, etwa in Visual Studio.

Referenz auf die Clientbibliothek prüfen

Prüfen Sie nach dem Öffnen des Projekts, ob die Clientbibliothek von Babel Licensing korrekt referenziert wird. Fehlt die Referenz, richten Sie ein lokales NuGet-Repository ein, wie im Absatz Client-Komponenten beschrieben.

Projektmappe erstellen

Wenn die Referenzen stimmen, erstellen Sie die Projektmappe über die Option „Build“ oder „Rebuild“ im Menü der IDE.

Anwendung ausführen

Nachdem die Projektmappe erfolgreich erstellt wurde, können Sie die Anwendung in der Debugkonfiguration ausführen. Klicken Sie dazu auf die Schaltfläche „Start Debugging“ oder verwenden Sie die Tastenkombination Ihrer IDE (zum Beispiel F5 in Visual Studio). Die Beispielanwendung zur Floating-Lizenz startet, und Sie können mit den Lizenzierungsfunktionen arbeiten und den Ablauf der Floating-Lizenz testen.

Floating-Lizenzschlüssel eingeben

Geben Sie den für die Lizenz erzeugten Floating-Lizenzschlüssel ein und drücken Sie ENTER.

Konsole des Beispiels zur Floating-Lizenz

Es folgt der vollständige Quellcode des Beispiels zur Floating-Lizenz:

using Babel.Licensing; // Create a new configuration object BabelLicensingConfiguration config = new BabelLicensingConfiguration() { // Set the service URL ServiceUrl = "http://localhost:5005", // Set the public key used to verify the license signature SignatureProvider = RSASignature.FromKeys("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDE1VRiIdr6fiVZKve7NVgjIvGdRiRx0Mjjm+Yzf6tLbzFnxLs0fat5EoRcubxx0QQQDfydsJBE/fc7cwRWSrE2xK6X4Eb4W8O47pCMjqvTQZfDqQywEZJrLlxpp9hlKz6FDYX4SagrjmP1gdw8olo+n+IBz8ubkNxRhvycikxuDQIDAQAB"), // Set a unique client ID in case multiple instances of the application are running on the same machine ClientId = Guid.NewGuid().ToString() }; // Create the client object used to communicate with the server BabelLicensing client = new BabelLicensing(config); // Ask the user to enter the floating license key Console.WriteLine("Please enter your floating license key: "); string? userKey = Console.ReadLine(); try { var result = await client.RequestFloatingLicenseAsync(userKey, typeof(Program)); Console.WriteLine($"License {result.License.Id} requested."); } catch (Exception ex) { Console.WriteLine($"Could not request floating license: {ex.Message}"); return; } try { // Simulate a long task which requires the allocation of a license for (int i = 0; i < 10; i++) { // Validate the license // This will contact the server to validate the license var result = await client.ValidateLicenseAsync(userKey, typeof(Program)); Console.WriteLine($"{i}) License {result.License.Id} valid."); // Wait 1 second await Task.Delay(1000); } try { // Release the license to allow other clients to use it await client.ReleaseFloatingLicenseAsync(userKey); Console.WriteLine("License released."); } catch (Exception ex) { Console.WriteLine($"Could not release license: {ex.Message}"); } } catch (Exception ex) { Console.WriteLine($"License not valid: {ex.Message}"); return; }

Die Klasse BabelLicensing wird instanziiert, um mit dem Lizenzserver zu kommunizieren. In der Konfiguration des Dienstes werden der öffentliche Schlüssel für die Validierung der Lizenz und die URL für die Kommunikation mit dem Dienst zugewiesen.

Der Benutzer wird aufgefordert, den Floating-Lizenzschlüssel einzugeben. Mit dem Lizenzschlüssel fordert der Client eine Floating-Lizenz an, indem er die Methode RequestFloatingLicenseAsync aufruft. Als Parameter werden der Benutzerschlüssel und der Typ des Programms übergeben. Bei Erfolg gibt die Methode ein Ergebnisobjekt mit den Informationen der angeforderten Lizenz zurück.

Der Code simuliert eine lang laufende Aufgabe, die die zugewiesene Lizenz benötigt. In einer Schleife wird die Lizenz mit der Methode ValidateLicenseAsync validiert. Als Parameter werden der Benutzerschlüssel und der Typ des Programms übergeben. Ist die Lizenz gültig, gibt die Methode ein Ergebnisobjekt mit den Lizenzinformationen zurück. Die Schleife enthält außerdem eine Verzögerung von einer Sekunde, um die Dauer der Aufgabe zu simulieren.

Nach Abschluss der Aufgabe gibt der Client die Floating-Lizenz mit der Methode ReleaseFloatingLicenseAsync frei.

Mit Floating-Lizenzen teilen Sie eine begrenzte Anzahl von Lizenzen in einem Netzwerk von Benutzern oder Rechnern, mit weniger Verwaltungsaufwand, als wenn Sie jedem eine eigene Lizenz zuweisen. Sie eignen sich für eine wachsende Benutzerbasis oder für Lizenzen, die sich Abteilungen oder Teams teilen.

Last updated on