Scherzfrage: Warum heisst die Schnittstelle "Schnittstelle"? Antwort: Weil sie immer Schmerzen bereitet. Ha. Ha. (Natürlich war das jetzt ziemlich unlustig. Doch das war beabsichtigt. Dazu ganz am Ende dieses Beitrags mehr.)
Was aber stimmt: Wenn man durch die Urheberrechtsbrille auf die Softwareschnittstelle schaut, bereitet diese Aufgabe meist Kopfschmerzen. Die Softwareschnittstelle ist eine der schwierigsten Aufgabenstellungen an der Schnittstelle zwischen Urheberrecht und Technik. Und Gerichtsentscheide darüber bereiten wirklich oft Schmerzen. Warum? Ohne Sachverhaltskenntnis wird die Rechtsanwendung schwierig, wenn nicht sogar wertlos. Zum Sachverhalt deswegen in diesem Beitrag Hinweise auf ein Gerichtsverfahren mit Urteilen, die sich wie Lehrbücher lesen.
Es war ein Gerichtsverfahren vor den amerikanischen Gerichten und es war episch. Oracle war die Klägerin, aber eigentlich hat wohl Google das Verfahren losgetreten beziehungsweies zumindest dazu Anlass geboten. Im Jahr 2007 hat Google Android als Betriebssystem für Mobilgeräte angekündigt, und zwar als Konkurrenz zur Java-Plattform von Sun Microsystems. Zuvor war die von Sun Microsystems bereitgestellte Java-Plattform (später: Oracle) von grosser Bedeutung auch für Mobilfunkgeräte und dafür entwickelte Applikationen.
Google wollte das ändern, mit Android eben. Für die Zukunft von Android beziehungsweise für Google war wichtig, dem bereits auf Java basierenden Ökosystem den Einstieg in die Android-Welt leichtzumachen. Wer zuvor auf Java entwickelt hatte, sollte mit möglichst geringen Anpassungen auf Android migrieren können. Mit anderen Worten: Android musste dem Markt mindestens das bieten, was Java dem bestehenden Ökosystem schon bot.
Die Funktionsweise einer Programmierschnittstelle (Application Programming Interface, API) von Java war der Schlüssel hierfür. Google entwickelte zentrale Elemente dieser API, vor allem die Java Virtual Machine (JVM) eigenständig nach (als sogenannte Dalvik Virtual Machine). Wer die JVM ansteuern wollte, wurde im Android-Umfeld nicht enttäuscht: Dort stand Dalvik bereit. Und damit musste das eigene Programm des zum Wechseln bereiten Programmierers diesbezüglich nicht angepasst werden und fand neuerdings auch in Android gleichsam einen Nährboden.
Wie das im Wesentlichen vor sich ging, hat William Alstrup beschrieben. Und zwar bereits am 31. Mai 2012. William Alstrup ist Richter am US-amerikanischen Bundesbezirksgericht im Northern District of California. Vor nun ziemlich genau neun Jahren hat er das erste Urteil im Rechtsstreit zwischen Google und Oracle unterzeichnet. Es ist ein bedeutendes Urteil, aus verschiedenen Gründen. Es beschreibt die Problemstellung beziehungsweise die Funktionsweise einer API wie ein Lehrbuch. Das Urteil ist deswegen sehr lesenswert.
Supreme Court fällt Urteil
Das Urteil ist jetzt wieder aktuell geworden, weil die Sache nach einer Schlaufe (hoch zum Appellationsgericht, von dort wieder zurück ans Bundesbezirksgericht, und dann wieder ans Appellationsgericht) schliesslich beim Supreme Court der USA (aka. SCOTUS) landete. Der Supreme Court hat am 5. April 2021 sein Urteil in dieser Sache gefällt. Im Wesentlichen sagte der Supreme, Android sei urheberrechtlich nicht zu beanstanden gewesen. Auch der Entscheid des Supreme Court enthält eine leicht verständliche Beschreibung über die Funktionsweise einer API. Auch dieser Entscheid ist lesenswert.
APIs werden eingesetzt, weil Computerprogramme effizient sein sollen und man nicht alles von Grund auf neu schreiben sollte, wenn man ein Computerprogramm entwickelt. Die API ist die Öffnung aus einem System in ein anderes System, über welches das bereitstellende System dem abfragenden System seine vorbestehende Funktionalität zur Verfügung stellt. Innerhalb der API werden die zur Verfügung stehenden, vordefinierten Funktionen in einer bestimmten Art organisiert (für Java ist die Funktionalität zum Beispiel eine "method", die gruppiert wird in "classes" beziehungsweise mit einer grösseren Klammer zu "packages"). Wenn man nun eine method aufrufen will, muss man wissen, wo sie zu finden ist. Man braucht so etwas wie die Adressangabe oder einen Link auf die method. Die Gerichte im Verfahren nannten diese Links "declaring code". (SCOTUS: "Without that declaring code, the method calls entered by the programmer would not call up the implementing code.")
Im Entscheid ging es um die Frage, ob die – für einen Menschen "sprechenden" Links auf die Funktionsbibliothek in der Java-Plattform per se beziehungsweise in ihrer Gesamtheit als besondere Strukturelemente – schutzfähig waren. Es ging also um den Schutz des declaring code. Es ging nicht um den Schutz des Computercodes, der zur Umsetzung der "method" in der Java-Plattform enthalten war. Die Gerichte in diesem Verfahren sprachen diesbezüglich von "implementing code" (SCOTUS: "The implementing code (which Google independently wrote) is not at issue here.")
Der SCOTUS bemühte auch Analogien und kam dann zum Schluss, dass innerhalb der API auch Benutzerschnittstellen versteckt seien. Da die Adressierungselemente und -struktur für den Menschen erkennbar waren, sahen sie darin auch eine Benutzerschnittstelle: "In this way, the declaring code's shortcut function is similar to a gas pedal in a car that tells the car to move faster or the QWERTY keyboard on a typewriter that calls up a certain letter when you press a particular key. As those analogies demonstrate, one can think of the declaring code as part of an interface between human beings and a machine."
Man kann bereits an dieser Stelle sagen, und man sollte sich dies merken: "Schnittstelle" ist ein Begriff, der für eine grosse Bandbreite von Phänomenen benutzt wird, und man kann vom Begriff nicht auf den Sachverhalt schliessen. Man muss genau schauen.
Auf jeden Fall "Fair Use"
Was muss man vom Entscheid mitnehmen? Antwort: Dass der Supreme Court die eigentlich interessante Frage nicht entschieden hat. Oracle und Google wollten wissen, ob die Adressierungselemente beziehungsweise die gesamte Struktur, die in Java mit ihnen definiert worden war, schutzfähig sind. Der Supreme Court ist dieser Frage ausgewichen. Er hat entschieden: Ob schutzfähig oder nicht, es war auf jeden Fall "Fair Use" und deswegen erlaubt.
Fair Use ist ein Konzept, das vor einer zu weitgreifenden Wirkung des Urheberrechts schützen soll. Wenn eine Nutzung als "fair" bezeichnet, das heisst selber von einem besonderen Wert ist, so dass die kopierte Leistung vergleichsweise als nicht ausreichend relevant angesehen wird, um die neue Leistung zu verbieten, kann das urheberrechtliche Verbot nicht durchgesetzt werden. Es gäbe viel mehr dazu zu sagen als nur dies; dafür fehlt hier der Raum.
Was bleibt? Das Urteil des Supreme Court wurde von Vielen gefeiert. Weil die Innovation von Google als rechtmässig bezeichnet wurde. Die Frage, ob Adressierungselemente als Ganzes schutzfähig sind, ist aber weiterhin nicht entschieden. Und dies stimmt besonders nachdenklich. Wenn jemand nochmals einen Anlauf nimmt wie damals Google mit Android, könnte dies durchaus eine Urheberrechtsverletzung darstellen.
Und wenn dem so wäre, wäre der Softwarewelt jedenfalls nicht mehr zum Scherzen zu Mute, um hier den Bogen zur Einstiegsfrage zu schlagen. Man sollte insbesondere auch die Dissenting Opinion des Supreme Court Judge Thomas lesen. Er meinte, anders als die Mehrheit: "Oracle's code at issue here is copyrightable, and Google’s use of that copyrighted code was anything but fair."
- Weiterführende Links: Oracle vs. Google – Drei Schlüsselentscheidungen zur Frage, ob APIs urheberrechtsfähig sind.
Über den Autor:
Dr. Christian Laux, LL.M. ist Anwalt und fokussiert auf IT-Rechtsangelegenheiten. Für
inside-it.ch äussert er sich an dieser Stelle regelmässig zu Rechtsfragen, welche die Schweizer IT-Branche betreffen.