Veröffentlicht am 26-02-2019

Google v Oracle: APIs als geistiges Eigentum

Ich sehe, dass Google erneut mit Oracle um die Verwendung von Java in Android kämpft. Dies trifft auf komplizierte rechtliche Probleme zu, und sowohl Google als auch Oracle scheinen sehr detaillierte technische Argumente zu verwenden, um ihre Argumente darzulegen. Die rechtlichen Argumente sind wahrscheinlich für Laien zu differenziert, um sie wirklich zu verstehen. Letztendlich scheint es jedoch eine wichtige Frage zu sein: Sollten APIs (Application Programming Interfaces) schützbares geistiges Eigentum sein? Sollten APIs in diesem speziellen Fall urheberrechtlich geschützt sein? Möglicherweise gibt es auch andere Mechanismen zum Schutz der Rechte an geistigem Eigentum für Wirkstoffe (z. B. Patente) - aber ich denke, die grundlegende Frage ist, ob ein Unternehmen seine Wirkstoffe „schützen“ und monetarisieren kann. Der Schutz umfasst, wer eine API verwenden kann, wer sie implementieren kann, wer sie modifizieren kann und wer die Semantik davon definieren kann. Bei der Entscheidung über die komplexen rechtlichen Fragen scheint ein grundlegendes Verständnis von APIs wertvoll zu sein. In der Realität wird dieser Streit möglicherweise durch rechtliche Minutien beigelegt, ohne dass ein technisches Verständnis vorliegt. Dennoch ist hier meine grundlegende Auffassung von APIs. Für Programmierer sollte dies offensichtlich sein. Für diejenigen, die dies nicht tun, sollte es informativ sein. Für alle bietet es einen Rahmen, wie man über den Schutz von APIs durch geistiges Eigentum denken könnte.

APIs sind grundlegend für den Aufbau komplexer Softwaresysteme. Mithilfe von APIs können Programmierer große, komplexe Probleme in kleinere, einfachere Probleme unterteilen. Sie ermöglichen eine "Aufteilung und Eroberung" -Strategie, damit mehrere Personen an einem großen Problem arbeiten können. Ein Programmierer kann sich theoretisch nur mit den Details seines Subsystems und seiner Interaktion mit anderen Subsystemen beschäftigen. Die API definiert einen Vertrag zwischen einem Subsystem und einem anderen.

Gute APIs anzugeben, ist schwer. Eine API sollte einfach zu verstehen und zu verwenden, (auf verschiedene Arten) implementierbar, für eine Vielzahl von Anwendungen verwendbar und (innerhalb bestimmter Grenzen) skalierbar oder möglicherweise frei von Skalen sein. Sorgfältige Überlegungen zu Erweiterbarkeit, Kompatibilität und Versionierung sind erforderlich. Die Angabe guter APIs ist die Aufgabe eines Saisonprogrammierers.

APIs sind Code. APIs unterscheiden sich zwar von Implementierungen, APIs sind jedoch genauso wie Implementierungen Code. Eine Headerdatei oder Klassendefinition ist Code.

APIs sind wertvoll. Ein Implementierer einer API bietet Benutzern der API einen Wert. Die API ist der Zugangspunkt zu einem Dienst. Ohne die API ist es nicht klar zu verstehen, wie auf den durch den Dienst bereitgestellten Wert zugegriffen werden kann. Umgekehrt ist die API für den Client wertvoll - sie bietet Zugriff auf Dienste, die der Client selbst implementieren müsste, wenn er nicht verfügbar wäre.

Implementierer einer API legen fest, wie und wie viel sie für die von ihnen bereitgestellten Dienste in Rechnung stellen und wie sie genutzt werden können (wobei das Problem der GNU General Public License (GPL) vorerst ignoriert wird). Die Kunden sind vertraglich verpflichtet, die vom Implementierer festgelegten Bedingungen einzuhalten.

Es bleibt also die Frage - wer besitzt, kontrolliert und monetarisiert die API - den Vertrag zwischen dem Kunden und dem Implementierer? Und in diesem und anderen Fällen ist die Situation möglicherweise noch düsterer, wenn der Definierer der API mit dem (ersten) Implementierer identisch ist. Wie ist der Implementierer einer API durch den "Eigentümer" der API eingeschränkt? Dies scheint der Kern des Streits zwischen Google und Oracle zu sein.

Wir waren schon in der Vergangenheit hier.

Follow-on-Implementierer von APIs vermeiden nämlich rechtliche Probleme durch verschiedene (rechtliche) Mechanismen. Amdahl baute Computer, die mit IBM Mainframes kompatibel waren, IBM erlaubte Klone des IBM PCs, PC DOS implementierte einen Großteil der CP / M-Schnittstelle und AMD implementierte den Intel x86-Befehlssatz und baute kompatible x86-Chips. Dies sind alles Beispiele für Implementierungen einer Schnittstelle, die von anderen Parteien angegeben wurden. Rechte zur Implementierung einer Schnittstelle wurden durch Zahlungen, kartellrechtliche Entscheidungen und Lizenzvereinbarungen erworben. Manchmal wurde die Implementierung der zweiten Partei einfach ignoriert. Schließlich ermöglichten „Reinraum“ -Implementierungen einigen, das API-IP-Problem zu umgehen.

SUN Microsystems (ironischerweise das von Oracle erworbene Unternehmen, das Java Intellectual Property übernommen hat) hat eines der ersten "Open API" -Modelle erstellt. SUN hat viele seiner APIs für jedermann frei verfügbar gemacht, um sie zu implementieren. Das NFS (Network File System Interface) ist das prototypische Beispiel. Jeder kann das NFS-Protokoll kostenlos implementieren und Implementierungen ohne Lizenzgebühren verteilen. (SUN hat auch Implementierungen verkauft.) Beachten Sie, dass SUN einige APIs explizit frei verfügbar machte, andere jedoch Einschränkungen hatten.

Programmiersprachen scheinen eine interessante Ausnahme zu sein. Abgesehen von der jeweiligen Sprache, Java, sind die meisten Programmiersprachen nicht urheberrechtlich geschützt (oder geistiges Eigentum im Allgemeinen). Es ist nicht schwer zu argumentieren, dass eine Programmiersprache eine API ist. Warum wurden sie in der Vergangenheit nicht geschützt? In der EU wurde entschieden, dass Programmiersprachen nicht urheberrechtlich geschützt werden können. Dies scheint jedoch nicht der grundlegende Treiber dafür zu sein, dass sie nicht geschützt werden. Wenn man sie „ungeschützt“ lässt, ist vielleicht eine stärkere Adoption möglich, oder es fehlt einfach der Wunsch, die Rechte des geistigen Eigentums zu sichern. In einer unschuldigeren Zeit waren Programmierer möglicherweise eher altruistische Idealisten mit weniger Verlangen oder Bewusstsein für Kommerzialisierung und Kontrolle.

APIs sind notwendig und wertvoll. Sie sind schwer zu finden und erfordern talentierte Leute. Letztendlich sind APIs Code. Angesichts dieser Attribute sind APIs geistiges Eigentum. Die Ersteller von APIs sollten daher in der Lage sein, sie zu schützen, zu kontrollieren und zu monetarisieren, soweit dies durch die bestehenden Mechanismen wie Urheberrechte, Patente oder Marken erlaubt ist.

Schließlich scheinen die detaillierten technischen Argumente über Dinge wie "Klassenpfadausnahme", "RangeCheck-Funktion" und sogar "Struktur, Reihenfolge und Organisation" nur das grundlegende Problem zu verschleiern:

Sind APIs urheberrechtlich geschützt?

Da APIs geistiges Eigentum der Schriftform sind, denke ich, dass dies der Fall ist. Es ist Sache des Eigentümers, zu entscheiden, welche rechtlichen Mechanismen er verwenden möchte, um ihn zu schützen (Urheberrecht oder andere). Innerhalb dieser Mechanismen wählt der Eigentümer die Bedingungen für die Verwendung der API.

Wenn es im konkreten Fall darum geht, ob APIs ein schützbares geistiges Eigentum sind oder nicht, stehe ich neben Oracle. Sie haben das Recht zu bestimmen, wie und zu welchen Kosten die JAVA-APIs verwendet werden können. Es wäre jedoch schade, wenn sie nicht den angemessenen Schutz des geistigen Eigentums und die Nutzungsbedingungen vorsehen.

Ursprünglich bei kazabyte.blogspot.com am 26. Februar 2019 veröffentlicht.

Siehe auch

Die Zukunft unserer Kinder wird mit der Plattform Venoty hellerIch weiß, dass ich nie schnell raus musste oder Angst hatte, mein Zuhause zu verlieren.Hardware Engineer teilt Erfahrung mit Futura XDie Exzellenz erhöhte Solid State Drive SU900.Verrückte RennenOnline-Job-Support