Rechercher dans ce blog

Monday, April 12, 2021

Google vs. Oracle: Die IT-Industrie im letzten Moment gerettet - Golem.de - Golem.de

Eine API bleibt wie ein Aktenschrank, und Code ist eben doch anders als Kunst. Das Urteil im Java-Streit Google gegen Oracle ist wegweisend, aber nicht bahnbrechend.

Eine Analyse von
Das Urteil des US-Supreme-Court ist zwar nur eine Einzelfallentscheidung, hat aber Signalwirkung.
Das Urteil des US-Supreme-Court ist zwar nur eine Einzelfallentscheidung, hat aber Signalwirkung. (Bild: dierk schaefer, flickr.com/CC-BY 2.0)

Mit seinem endgültigen Urteil in dem jahrelangen Rechtsstreit zwischen Google und Oracle um die Nutzung von Java-APIs in Android, vertritt nun auch der US Supreme Court (PDF) eine Position, die nicht nur der Rechtsauffassung der EU, sondern wohl auch dem Großteil der IT-Industrie entspricht: APIs können und dürfen legal nachgebaut werden. Bereits Anfang dieses Jahres haben wir die Entscheidung in einer Vorschau als das wichtigste Urteil der IT seit Jahrzehnten bezeichnet.

Das oberste Gericht der USA zieht sich in seiner Mehrheitsentscheidung nun jedoch auf eine Minimalposition und Einzelfallentscheidung zurück. Damit ist nun zwar erstmals ein Präzedenzfall geschaffen worden, das Urteil hätte aber auch deutlich weitreichender und damit eindeutiger ausfallen können. Vor allem die Frage, ob APIs nun generell unter das Urheberrecht fallen, bleibt offen. Eine Bewertung, welche Auswirkungen das Urteil langfristig auf die IT-Landschaft haben wird, ist also schwierig.

Jahrzehntelang war es allgemein akzeptierte Praxis für Entwickler, auch proprietäre APIs von anderen Herstellern und Konkurrenten nachzubauen und kompatible Software zu erstellen, notfalls durch Reverse Engineering. Das ermöglichte etwa erst den Boom der IBM-kompatiblen PCs in der 80er Jahren. Auch der ursprüngliche Erfolg freier Software basiert auf dem Prinzip des Nachbaus wie im GNU-System. Mit dem aktuellen Urteil im Fall Google gegen Oracle wird dieses Vorgehen nun erstmals höchstrichterlich erlaubt. Der Weg dahin war jedoch langwierig, und das Ergebnis löst nicht alle Probleme.

Sun-Übernahme als Anfang des Streits

Dass es überhaupt zu dem Prozess kam, liegt an Oracle, die Java-Erfinder Sun und damit auch die Rechte an der Java-Technik im Jahr 2009 übernommen haben. Google nutzte zu der Zeit bereits eine nicht von Sun lizenzierte Version von Java in seinem Android-Betriebssystem. Oracle nahm das wiederum zum Anlass, Google in der ersten Klageschrift aus dem Jahr 2010 vorzuwerfen, mit seiner Nutzung von Java in Android diverse Patent- und Urheberrechte verletzt zu haben.

Mehr als zehn Jahre lang mussten sich Geschworene und Richter in mehreren Verhandlungen, unterschiedlichen Instanzen und Runden mit der Frage befassen, ob es sich bei der Nutzung der Java-APIs in Android um eine Urheberrechtsverletzung handle. Zuletzt stand auch der US Supreme Court vor dieser Frage. Konkret mussten die Richter dabei entscheiden, ob sich Google für seine Nutzung auf die Fair-Use-Ausnahme im US-Urheberrecht berufen dürfe und ob APIs dem Urheberrecht unterliegen oder nicht.

Essenziell für die Beurteilung ist dabei die Frage, was eine API eigentlich genau ist, vor allem im Sinne des Urheberrechts. Für Programmierer und Entwickler dürfte das mehr oder weniger schnell erklärbar sein, und auch, welche Funktionen sie erfüllt. Der Prozess zeigte aber von Anfang an, dass die juristische Antwort darauf nicht so einfach ist. Auch deshalb räumten die Richter, die mehrheitlich für Google entschieden, in ihrem Urteil viel Platz für diese Frage ein.

API-Design: Praxishandbuch für Java- und Webservice-Entwickler

Dabei sahen sich die Richter ein Argument von Google besonders genau an: Nämlich, dass die Java-API für Android ausgewählt worden sei, weil sie unter Programmierern so bekannt und beliebt war. Dabei fanden aber eben nicht nur technische Aspekte Eingang ins Urteil, sondern es wurden auch mehrere aus technischer Perspektive teils abwegige Analogien konstruiert.

Zunächst einmal beschreiben die Richter recht eindeutig, dass eine API eine Menge von Aufgaben, die Rechner abarbeiten können, auf spezielle Art und Weise aufteile und organisiere. Die API vereinfache es dabei, eine bestimmte Aufgabe vorauszuwählen und letztlich auszuführen.

Die eigentliche Implementierung einer einzelnen Aufgabe, also das, was vom Rechner ausgeführt wird, war nicht Teil des Rechtsstreits. Beklagt hatte Oracle vielmehr die wörtliche Kopie der Methoden-Aufrufe, also den Namen einer Aufgabe im Deklarations-Code. Die API ist damit die Verbindung des eigenen Codes zur Ausführung einer bestimmten Aufgabe mit der jeweiligen Implementierung zur Ausführung dieser Aufgabe. In dem Urteil wird dies als "Abkürzung" in der Programmierung beschrieben, da bereits vordefinierte Aufgaben wieder verwendet werden könnten, statt immer neu geschrieben werden zu müssen.

Diese wohl für fachfremde Juristen technisch korrekte Beschreibung reichte dem Supreme Court aber nicht als Erklärung. Anschaulichere Vergleiche mussten her, wie sie davor schon etwa von Google gebracht wurden (Stichwort: Steckdose). Dieses Ringen um Beschreibungen ist eine Besonderheit dieses Prozesses und zeigt die Komplexität des Rechtsstreits, da die Funktion einer API in der juristischen Auslegung bisher wenig bis gar nicht beschrieben wurde.

Zu den Vergleichen der Richter des Supreme Courts gehören ein Gaspedal, das ein Auto anweist, schneller zu fahren, und die Tastatur einer Schreibmaschine, die beim Drücken einer Taste einen Buchstaben aufruft. Beides seien Mensch-Maschine-Interaktionen und damit Schnittstellen wie bei einer API. Hinzu komme bei der API aber die besondere Sortierung der Aufgaben.

Besondere Sortierung wichtig

Golem Akademie
  1. C++ 20: Concepts - Ranges - Coroutinen - Module
    19.-23. April 2021, online
  2. Elastic Stack Fundamentals - Elasticsearch, Logstash, Kibana, Beats
    3.-7. Mai 2021, online
Weitere IT-Trainings

In dem Urteil verweisen die Richter etwa auf die Dewey-Dezimalklassifikation zur Kategorisierung von Büchern in Bibliotheken. Aufgeführt wird außerdem die Kategorisierung von Sehenswürdigkeiten in einem Reiseführer. Auch unsere natürliche Sprache enthalte solche Kategorien für bestimmte Konzepte, die sich aber zwischen mehreren Sprache unterscheiden könnten.

Letztlich greift das Gericht auch auf das bereits in den vorhergehenden Verhandlungen genutzte Beispiel eines Aktenschranks zurück. Ein Aktenschrank enthalte verschiedene Schubladen, in denen sich mehrere Ordner befänden, in denen beispielsweise Rezepte seien. Diese Rezepte seien Anleitungen dafür, etwas zu kochen. Genau so funktioniere auch eine API, argumentieren die Richter.

API-Design: Praxishandbuch für Java- und Webservice-Entwickler

Um das Essen zu kochen, reiche es aus, den Ort des Rezepts zu kennen. Der Inhalt sei zunächst nicht notwendig, so wie beim Aufruf einer Methode einer API die Kenntnis der Implementierung nicht notwendig sei.

Angewandt auf Oracle und Google heißt das also: Mit der Wiederverwendung der API durch Google ermöglichte das Unternehmen Java-Programmierern, ihre Kenntnisse wiederzuverwenden und auf einer neuen Plattform, also Android, anzuwenden. Diese Erkenntnis mag insbesondere für Entwickler banal erscheinen, immerhin ist genau das seit Jahrzehnten Praxis in der Informatik. Für das Urteil ist diese Erkenntnis aber von grundsätzlicher Bedeutung, da der Supreme Court nur mit diesem Wissen beurteilen konnte, ob das Kopieren der API legal war oder nicht.

Da das Kopieren der API prinzipbedingt wortwörtlich geschehen ist, musste der Supreme Court entscheiden, ob APIs unter das Urheberrecht fallen und falls ja, ob Google dafür eine Fair-Use-Ausnahme geltend machen kann. Die Frage nach dem Urheberrecht auf APIs behandelte der Supreme Court dabei aber nicht, sondern prüfte zunächst nur, ob eine Fair-Use-Ausnahme möglich wäre, wenn APIs dem Urheberrecht unterliegen würden. Wäre das nämlich der Fall, muss die Frage nach dem Urheberrecht für APIs gar nicht erst beantwortet werden.

Die zunächst von US-Gerichten gesetzte Fair-Use-Doktrin erlaubt Ausnahmen von einem sonst eventuell zu strengen Urheberrecht, um etwa ein gewisses Maß an Fortschritt zu ermöglichen. Dazu beurteilen Gerichte vier Tests.

Der erste Test nimmt Bezug auf die Art des urheberrechtlichen Werks selbst. Die Richter kommen hier mit der Betrachtung darüber, was eine API ist, zu dem Schluss, dass diese grundsätzlich an Ideen einer Kategorisierung gebunden ist, die aber selbst nicht urheberrechtlich geschützt werden können.

Darüber hinaus nutzt Android mit seiner eigenen Implementierung eine völlig neue Ausdrucksform dieser Idee. Sollten APIs also überhaupt dem Urheberrecht unterliegen, wäre dies sehr weit entfernt vom Kern des eigentlichen Urheberrechts, das auch für Software gilt, aber nur für den Implementationscode selbst.

Golem Akademie
  1. Python kompakt - Einführung für Softwareentwickler
    19./20. April 2021, online
  2. OpenShift Installation & Administration
    14.-16. Juni 2021, online
Weitere IT-Trainings

Der nächste Test überprüft, ob die Verwendung der Java-APIs in Android transformativ ist, diese also einer neuen Nutzung zugeführt werden. Dies beantworteten die Richter eindeutig im Sinne Googles. So sei Android insgesamt eigenständig und zudem sehr verschieden zu Suns Java-API. Besonderes Augenmerk legten die Richter hier auf die große Unterstützung Googles durch die IT-Industrie und einzelner sehr bekannter Entwickler in dieser Frage. Dass Google die API für eigene kommerzielle Zwecke reimplementiert habe, sei zudem wenig relevant, da es sich eben um ein eigenes transformatives Werk handele.

Geringe Menge Code kopiert

Geklärt werden musste außerdem die Frage nach der Menge des kopierten Codes. Wird dabei lediglich die Menge des kopierten Deklarationscodes isoliert betrachtet, seien die 11.500 Zeilen eine sehr große Menge. Wird jedoch die gesamte Menge des Codes der API betrachtet, handelt es sich lediglich um 0,4 Prozent des gesamten Codes. Die Richter greifen hier wieder auf eine Analogie zurück und beschreiben das Kopieren eines einzelnen Satzes aus einem Roman als legitim - während Kurzgeschichten nur aus einem einzigen Satz bestehen könnten und das Kopieren hier eine klare Urheberrechtsverletzung wäre.

API-Design: Praxishandbuch für Java- und Webservice-Entwickler

Darüber hinaus sei das Kopieren des Codes aus einem berechtigtem Interesse heraus geschehen, nämlich die Bekanntheit der API unter Java-Programmierern zu nutzen, die so ihre bereits erworbenen Kenntnisse wiederverwenden konnten. Der Supreme Court übernimmt damit die Position von Google und wohl auch die übliche Interpretation der IT-Industrie. Das Kopieren einer API geschieht eben deshalb, weil diese API bereits bekannt ist. Erst das habe Android erfolgreich werden lassen.

Sun mit Java schlecht am Markt positioniert

Zuletzt betrachteten die Richter noch, ob und inwiefern das Kopieren der Java-APIs das bestehende Geschäftsmodell von Sun mit Java gefährdet oder gar unterlaufen habe. Aus Sicht des lange nicht mehr existierenden Unternehmens Sun kommen die Richter hier zu einem desaströsen Urteil. Demnach war Sun völlig unabhängig von Android extrem schlecht am Markt positioniert, um überhaupt erfolgreich zu sein.

Das Gericht bezieht sich hier vor allem auf die Unterscheidung der Mobil-Version von Java ME, die auf Feature Phones und Geräten wie Amazons Kindle genutzt wurde, und Googles Adaption des für Laptops und Desktops gedachten Java SE, das neben Desktops und Laptops letztlich auch auf Smartphones zum Einsatz kam. Sun war demnach nie in der Lage dazu, Letzteres anzubieten.

Oracle als Rechtsnachfolger von Sun oder anderer Firmen darüber hinaus einen engen Urheberschutz auf APIs zuzugestehen, könne das Erstellen künftiger kreativer Werke massiv einschränken und damit gar der Öffentlichkeit schaden. All diese Faktoren der sogenannten Markteffekte legen die Richter damit ebenfalls im Sinne Googles aus.

Der US Supreme Court kommt also in allen Fair-Use-Tests zu einem gänzlich anderen Urteil als die zuvor extrem enge Auslegung der Vorinstanz, bei der APIs quasi nie legal hätten nachgebaut werden können. Die aktuelle Praxis der IT-Industrie ist damit vorerst gerettet.

Die Richter des US Supreme Court haben in ihrer Mehrheitsentscheidung sehr deutlich im Sinne Googles auf eine Fair-Use-Ausnahme entschieden. Für Google ist der Rechtsstreit damit letztlich doch noch erfolgreich zu Ende gegangen und das Unternehmen muss keinerlei Schadenersatz an Oracle für die Nutzung der Java-APIs bezahlen.

Die Entscheidung ist allgemein sehr positiv und vor allem erleichtert aufgenommen worden - von Oracle und seinen wenigen Unterstützern einmal abgesehen. Schließlich hätte der Supreme Court auch der sehr engen Auslegung der Vorinstanz folgen können, die einen legalen Nachbau einer API quasi verhindert hätte. Zwei der neun Richter am Supreme Court taten das auch in einer letztlich rechtlich nicht bindenden Minderheitsentscheidung.

Dennoch: So weitgehend und grundsätzlich, wie von vielen erhofft, ist das Urteil nicht. Schließlich haben es die Richter wie erwähnt bei einer Einzelfallentscheidung belassen, die explizit vermeidet, dazu Stellung zu beziehen, ob APIs dem US-Urheberrecht unterliegen. Das sei auch geschehen, weil Software und der dazugehörige Code ein noch recht junges Feld im Sinne des Urheberrechts seien und sich dieses sehr dynamisch entwickele.

Konkret bedeutet das aber eben auch, dass weiterhin nicht von vornherein geklärt ist, ob der Nachbau einer API legal ist oder eben doch eine Urheberrechtsverletzung. Im Zweifel müssen also auch künftig wieder Gerichte Einzelfallentscheidungen dazu treffen, ob und inwiefern eine Fair-Use-Ausnahme für einen spezifischen API-Nachbau gilt - oder eben nicht. Das könnte weitere langwierige Gerichtsprozesse nach sich ziehen.

Abschreckende Wirkung des Urteils

Golem Akademie
  1. Einführung in die Programmierung mit Rust
    19.-22 April 2021, online
  2. OpenShift Installation & Administration
    14.-16. Juni 2021, online
Weitere IT-Trainings

Dass es wirklich dazu kommt, erscheint zumindest derzeit unwahrscheinlich. Das ist allein schon historisch bedingt: Vor Oracle hatte so gut wie nie jemand innerhalb der IT bezweifelt, dass APIs nachgebaut werden dürfen - und die riesige Unterstützung von Googles Position hat gezeigt, dass das offenbar nach wie vor gilt. Zudem ist dies auch weiter gängige Praxis. Selbst Oracle hat für sein Cloud-Angebot Teile der AWS-API nachgebaut.

Darüber hinaus ist das Urteil in seiner Bestimmung der Fair-Use-Ausnahmen sehr weitgehend und verweist unter anderem auf zurückliegende Urteile, die Fair-Use-Ausnahmen für Reverse Engineering oder einen Nachbau aus Kompatibilitätsgründen gebilligt haben. Eine mögliche rechtliche Auseinandersetzung, um etwa Konkurrenten zu verklagen, könnte also sehr kostspielig, langwierig und aufwändig werden.

API-Design: Praxishandbuch für Java- und Webservice-Entwickler

Andererseits wollen wahrscheinlich nicht alle Unternehmen das Risiko eingehen, wegen eines Nachbaus verklagt zu werden, sodass wohl manche Idee gar nicht erst verfolgt wird. Die offensichtliche Lösung, APIs künftig weiter legal nachzubauen, ist, eine lizenzierte Version einer API zu nehmen und darauf ein eigenes Produkt aufzubauen.

Im Fall von proprietärer Software dürfte das jedoch kaum möglich sein, aber bei Open-Source-Software. Das hat auch Google mit Android selbst gezeigt, als es vor Jahren den eigenen Code gegen das unter der GPL stehende OpenJDK ausgewechselt hat. Es handelt sich hier um die offizielle Java-Implementierung, an der Oracle die Rechte hält, sie ist aber frei lizenziert und damit beliebig erweiterbar und nutzbar. Somit stärkt das Urteil letztlich auch die Innovationskraft von Open-Source-Software.

Let's block ads! (Why?)


Google vs. Oracle: Die IT-Industrie im letzten Moment gerettet - Golem.de - Golem.de
Read More

No comments:

Post a Comment

One UI 5.1: Samsung kündigt Update-Start für ältere Galaxy-Smartphones an, los geht es u.a. mit Galaxy S20, S21 und S22 - Notebookcheck.com

Nachdem es vor wenigen Tagen bereits inoffizielle Informationen zum Rollout von Samsungs One UI 5.1 für die ersten Modelle jenseits der ne...