Implementierung von Lizenzmodellen in .NET, Teil 1

Know-how  –  0 Kommentare

Jeder, der Software entwickeln möchte, muss sich mit den Themen Lizenzen und Lizenzmodelle auseinandersetzen. Je nach Anwendungsgebiet der eigenen Software kommt auch noch das Thema Lizenzrecht mit hinzu.

Ganz gleich, ob es sich bei dem eigenen Stück Software um ein Open-Source-Projekt oder um etwas Kommerzielles handelt, früher oder später tauchen Fragen zur Lizenzierung auf. Zudem hat sich in den vergangen Jahrzehnten die Welt der Lizenzen stetig weiterentwickelt. Klobige Disketten oder andere Datenträger mit Lizenzinformationen sind gar nicht mehr oder, im Falle von Dongles, nur noch in bestimmten Szenarien anzutreffen. Grund genug, einen Blick auf Lizenzen, Lizenzmodelle und den aktuellen Entwicklungsstand ihrer Implementierung in .NET zu werfen.

Zunächst ist zu klären, was überhaupt eine Lizenz ist. Ganz allgemein bedeutet das lateinische Wort Licentia Freiheit oder Erlaubnis. Es gibt unterschiedliche Begriffe, die mit dem Wort Lizenz assoziiert werden. Der Duden listet unter anderem neu, begehrt, gültig, teuer und staatlich auf.

Zum einen ist eine Lizenz daher, abgeleitet aus der obigen Definition, eine Erlaubnis. In der Regel eine erteilte Erlaubnis, da eine bestimmte Freiheit besteht, etwas zu tun, was ohne Lizenz nicht erlaubt wäre. Beispielsweise die bekannte "Lizenz zum Töten" vom ebenso berühmten wie fiktiven Geheimagenten James Bond.

Zum anderen ist eine Lizenz aber auch ein Dokument. Es enthält Informationen zur erteilten Erlaubnis, etwa was sie enthält und was eben nicht erlaubt ist. Üblich sind alle Arten von Dokumenten, wie Dateien, gedruckte Dokumente, Scheckkarten oder Ähnliches. Die Lizenz zum Fahren eines Fahrzeuges, zum Beispiel der Klasse B für PKWs, bezieht sich eben nicht nur auf die Erlaubnis. Das Dokument, in dem Fall der Führerschein, ist ebenso wichtig, da es als einziges Auskunft über die Erlaubnis geben kann. Eine Lizenz hat demnach materielle und immaterielle Ausprägungen, die eng miteinander verzahnt sind. Sie werden gern als organisatorische und technische Sicht beschrieben.

Natürlich gibt es bei Lizenzen eine rechtliche Seite. Von ihr aus betrachtet, sind Softwarelizenzen nichts anderes als Verträge, für die der Grundsatz der Vertragsfreiheit gilt. Das bedeutet, dass sich der Lizenzgeber und der Lizenznehmer über den Umfang der Lizenzvereinbarung und der damit übertragenen Rechte beliebig einigen dürfen.

Software-Lizenzen sind da noch mal ein Thema für sich, denn bei Standardsoftware gilt häufig das Friss-oder-stirb-Prinzip. Wer Millionen Exemplare seiner Standardsoftware verkauft, hat gar nicht die Kapazität, um mit jedem einzelnen Endverbraucher die Nutzungsrechte im Einzelnen zu verhandeln. Wie der Anwender dabei den Inhalt des Lizenzvertrags zu Gesicht bekommt, spielt keine Rolle. Wichtig ist nur, dass der Vertrag vor Vertragsabschluss vereinbart wurde. Und genau das ist in den meisten Situationen gar nicht der Fall, beispielsweise weil die Software, die einen Lizenzvertrag im Installationsprogramm anzeigt, zu diesem Zeitpunkt schon lange käuflich erworben wurde.

Bei Software-Lizenzen kommt des Weiteren hinzu, dass es viele unterschiedliche Arten gibt. Abbildung 1 fasst einige bekannte Kategorien von Lizenzierungsmodellen zusammen, sowohl für freie als auch für kommerzielle Software. Ursprünglich stammt diese visuelle Zusammenfassung von Chao-Kuei (siehe GNU Projekt, "Kategorien freier und unfreier Software") und wurde seitdem häufig angepasst. Jede der Lizenzkategorien aus Abbildung 1 hat andere Anforderungen an die Lizenzierung und das dahinterliegende Lizenzmodell. Dieser Artikel konzentriert sich im Folgenden auf den rot markierten Bereich, da in der Regel nur in ihm softwaregestützte Lizenzmodelle notwendig sind.

Übersicht bekannter Lizenzierungsmodelle (Abb. 1)