der Spieleindustrie sehr stark verbreitet und führt zu regelrechten Anfeindungen der Spieler Community gegenüber den Herstellern. Ein eindringliches und gleichzeitig abschreckendes Beispiel ist hier die sogenannte Rootkit-Funktion [2] eines Kopierschutzes von Sony BMG, wobei es sich zwar um den Schutz von CDs handelt, dennoch eignet sich das Beispiel gut um aufzuzeigen, wieviel Unternehmen und Konzerne bereit sind zu unternehmen, um das Kopieren von Datenträgern und Produkten zu unterbinden. Der Online-Zwang führt auch regelmäßig dazu, dass Produkte nicht mehr installiert oder genutzt werden können. Das passiert dann, wenn die Online-Dienste vom betreffenden Hersteller abgeschaltet werden [3].
Nichtsdestotrotz hat dieses Vorgehen keinen signifikanten Einfluss auf die Möglichkeit gehabt, Produkte zu kopieren und sämtliche Schutzmaßnahmen zu umgehen. Gerade im Bereich der Computerspiele werden die Schutzmaßnahmen von Produkten sehr schnell nach der Veröffentlichung umgangen und ohne ebendiese Sicherheitsmaßnahmen von der Community veröffentlicht. Wie bei jeder Innovation beziehungsweise Investition kommt es also auch bei der Lizenzierung darauf an, wie hoch der Kostenaufwand gegenüber dem Nutzen ist. In diese Rechnung muss auch der Schaden einberechnet werden, der entstehen kann, wenn eine schlecht umgesetzte oder zu restriktive Sicherheitsmaßnahme ehrliche Käufer und Käuferinnen vom Einsatz des Produktes abhalten. Auch das ist eine Größe, die nicht unterschätzt werden darf.
Bedingt durch die großen Fortschritte in den Bereichen Rechenleistung, Speicherkapazität und Bandbreite, gab es in den letzten Jahren einen regelrechten Boom beim sogenannten Cloud-Computing. Damit werden eine ganze Reihe neuer Lösungen möglich. Zum einen ist es möglich, die Validierung von Software-Lizenzschlüsseln in die Cloud auszulagern. Dieses Vorgehen ähnelt den bereits erwähnten Online-Services, nur dass jetzt die Validierung nicht mehr zwingend auf selbst gehosteten Servern durchgeführt wird. Zugegeben, das ist ein kleiner Unterschied. Schon deutlicher fallen die Unterschiede auf, wenn andere Dienste in Betracht gezogen werden. Beispielsweise Software as a Service (SaaS) [4] oder Platform as a Service (PaaS) [5]. In beiden Fällen ist es möglich, je nach Ausgestaltung und Anforderungen des eigenen Produktes, die Dienstleistungen auch in der Cloud anzubieten. Die Themenbereiche Lizenzierung und Lizenzmodelle verschieben sich somit ebenfalls in die Cloud. Lizenzen können nun ganz einfach an Log-ins gebunden werden. Entweder für einzelne Arbeitsplätze oder für komplette Organisationen. Es ist kein Softwareschlüssel mehr notwendig. Von einem Dongle oder ähnlichem ganz zu schweigen. Zusätzlich sind weitreichende Analysen möglich. Welche Produkte in der Cloud werden am häufigsten genutzt? Welche Features am meisten und welche gar nicht? All diese Daten fallen natürlich auch bei Lizenzmodellen im klassischeren Desktopbereich an. Grundsätzlich ist es auch möglich, diese zu sammeln und auszuwerten. Der Aufwand, der hierfür getrieben werden muss, ist aber ungleich höher. Von einer Internetverbindung, die diese Daten auch nach draußen lässt, ganz abgesehen.
Welches Vorgehen beziehungsweise System in der Vergangenheit auch immer genutzt wurde. Sicher ist, dass gute Lizenzmodelle und ein mindestens ebenso gutes Lizenzmanagement vorhanden sein müssen, wenn mit dem direkten Verkauf der Software Geld verdient werden soll. Gute und auf das Produkt abgestimmte Dienstleistungen helfen dem Absatz sicherlich auch. Allzu häufig wird ein Produkt aber trotzdem über Umwege beschafft, um Lizenzkosten zu sparen und dieses Geld dann in die Einarbeitung ohne externe Hilfe zu stecken.
Ebenso wichtig ist es auch, für die Zukunft gerüstet zu sein. Wer mit seinem Softwareprodukt den erfolgreichen Sprung aus einem Jahrzehnt ins nächste schaffen möchte, muss auf die Veränderungen des IT-Marktes eingehen. Nicht selten bedeutet das, mehrere Strategien zur Lizenzierung zu verfolgen und anzubieten, um flexibler auf Kundenwünsche reagieren zu können.
Auf viele Aspekte davon geht dieses Buch ein und zeigt praktische Lösungsansätze, mit denen ein Lizenzmodell etabliert werden kann.
Was ist überhaupt eine Lizenz?
Bevor es konkret um die Realisierung von Lizenzmodellen mithilfe von .NET Bibliotheken und Frameworks geht, wird das Thema Lizenz aus Sicht von Software eingegrenzt.
Die Frage, was eine Lizenz überhaupt ist, lässt sich auf mehreren Ebenen beantworten. Zunächst einmal zum Wort an sich. Licentia kommt aus dem Lateinischen und bedeutet Freiheit oder Erlaubnis. Licere bedeutet erlaubt sein. Als typische Verbindungen listet der Duden zu „Lizenz“ Wörter wie neu, begehrt, teuer, gültig, erforderlich und staatlich auf. Alles Dinge, mit denen eine Lizenz häufig assoziiert wird.
Im Allgemeinen bezieht sich eine Lizenz auf eine erteilte Erlaubnis. Wie auch immer diese aussehen mag, was sie enthält und worauf sich dieses Erlaubte bezieht. Eine sehr bekannte Lizenz ist beispielsweise die „Lizenz zum Töten“ vom berühmten aber fiktiven Geheimagenten des britischen Geheimdienstes MI6 James Bond alias 007. Diese Lizenz besagt, dass der Geheimagent nicht gerade zimperlich mit seinen Gegnern umzugehen pflegt.
Aber unter der Lizenz wird auch das Dokument verstanden, welches diese Erlaubnis erteilt oder allgemein die Informationen enthält. Beispielsweise eine Datei, ein ausgedrucktes Dokument, eine Scheckkarte oder ähnliches. Die Lizenz zum Fahren eines Fahrzeuges kann zum Beispiel durch die PKW-Klasse B ausgedrückt werden, wie es die EU Führerscheinklassen vorsehen. Damit ist aber eben nicht nur die Erlaubnis gemeint. Diese Lizenz bezieht sich aber auch auf das Dokument, heute in Form des Scheckkartenführerscheins. Dieses muss beim Führen eines Fahrzeuges mitgeführt werden, wie es so schön heißt. Eine Lizenz ist demnach gleichzeitig eine Erlaubnis, in der Regel etwas tun zu dürfen, sowie ein bestimmtes Dokument, meistens in irgendeiner beglaubigten und damit anerkannten Form.
Zusammengefasst ist eine Lizenz also ein rechtliches Mittel, um bestimmte Nutzungsrechte zu erteilen. Zunächst völlig losgelöst von einer bestimmten Sache, einem bestimmten Medium oder Ähnlichem.
Unterschiede zu Softwarelizenzen
Diese Sachverhalte treffen auch auf Lizenzen im Softwarebereich zu. Die Nutzungsrechte unterscheiden sich aber häufig grundlegend von denen anderer Produkte, für die Lizenzen vergeben werden. Bei Software handelt es sich bei diesen Nutzungsrechten normalerweise um die Erlaubnis, eine Software zu nutzen oder den Quelltext in irgendeiner Form weiterzuverwenden. Beides trifft sowohl auf komplette Produkte, Komponenten oder den nicht fertig kompilierten Quelltext zu.
Am häufigsten ist sicherlich ein Lizenzabkommen, dass die Nutzung der Software durch Endanwender gestattet. Sie wird, in verschiedenen Formen, nahezu zu jedem Softwareprodukt mitgeliefert. Von der Shareware bis hin zur vollständigen Enterprise-Lösung.
Eine der meistbekanntesten Softwarelizenzen ist ebenso eine Vereinbarung für Endanwender. Gemeint ist die „End User License Agreement“, kurz EULA. Übersetzt bedeutet die Abkürzung „Endbenutzer-Lizenzvertrag“. Sie wird jedem Computernutzer bekannt vorkommen, da die Annahme dieser Vereinbarung so gut wie jeder größeren Softwareinstallation vorgeschaltet ist.
So häufig gesehen die meistens EULAs auch sind, so verhasst sind sie ebenfalls. Der Großteil der Anwender wird sie beim Auftauchen auch direkt wieder wegklicken. Gelesen werden die mitunter sehr umfangreichen Dokumente wohl eher selten.
Und bei den EULAs hört es nicht auf. Ganz im Gegenteil ist das nur die Spitze des Eisbergs. Viele Hersteller zeigen ihren Kunden und Kundinnen beim erstmaligen Start ihrer Anwendung einen ganzen Haufen von Lizenzvereinbarungen. Ein von mir oft genutztes Beispiel ist der Spielehersteller Blizzard Entertainment (Activision Blizzard) und das vom diesen Studio veröffentlichte Computerspiel World of Warcraft. Spielern werden nach der Installation ganze fünf Lizenzvereinbarungen [6] zur Annahme vorgelegt. Nicht nur die Endbenutzerlizenzvereinbarung, die der EULA entspricht, sondern auch die folgenden Lizenzvereinbarungen:
Nutzungsbestimmungen
Servicekündigung
Anti-Cheating-Vereinbarung
Connect-Nutzungsbestimmungen
Besonders interessant ist die sogenannte Anti-Cheating-Vereinbarung. Darin steht, dass sowohl der Arbeitsspeicher des gerade geöffneten Blizzard-Spiels, als auch der Spiele-Prozess und die Windows Prozessliste