Oracle itself copied the API from Amazon S3, and this is completely normal

Oracle itself copied the API from Amazon S3, and this is completely normal
Oracle lawyers compare Android Java API reimplementation to copying Harry Potter content pdf

The U.S. Supreme Court will hear a major case earlier this year. Oracle vs. Google, which will determine the legal status of the API under intellectual property law. If the court sides with Oracle in its multi-billion dollar lawsuit, it could stifle competition and cement the dominance of tech giants, possibly including Google itself.

At the same time, Oracle's business was originally built on the implementation of the SQL programming language developed by IBM, and even now the company offers a cloud service with an API from Amazon S3, and this is completely normal. Reimplementation of APIs has been a natural part of the development of computer science since the dawn of the industry.

Oracle accuses Google of illegally copying the Java API, including a list of named commands tied to grammar structures. The Android operating system is specifically compatible with the Java API to make it easier for Java programmers to port their software and knowledge to a new platform. To do this, Android copied the corresponding Java API commands and grammar structures exactly. Argument Oracle lies in the fact that such a "reimplementation" of the Java API can be compared to copying a work of authorship, such as the literary novel "Harry Potter" (this a real example given by Oracle lawyers), and Google Infringes Oracle's Copyright on Command Names and Java API Structures.

But Java APIs are not the only APIs, and Android is not the only reimplementation. In today's IT industry, APIs are ubiquitous, and re-introduction is fundamental to maintaining competition in order to prevent large firms from becoming monopolies. считаСт Charles Dewan, director of technology and innovation policy at the R Street Institute.

Duan gives an example of the popular Amazon S3 storage platform. To enable writing and retrieving files from S3, Amazon has developed a comprehensive, detailed API to interact with the service. For example, to get a list of saved files (ListObjects) we send a GET command with the host and type parameters encoding-type, continuation-token ΠΈ x-amz-date. To work with Amazon S3, software must use these and many other specific parameter names exactly.

GET /?Delimiter=Delimiter&EncodingType=EncodingType&Marker=Marker&MaxKeys=MaxKeys&Prefix=Prefix HTTP/1.1
Host: Bucket.s3.amazonaws.com
x-amz-request-payer: RequestPayer

Amazon is a clear leader in the cloud services market, and its competitors offer reimplementation of the S3 API, while they have to imitate command names, parameter tags, type prefixes x-amz, grammatical structure, and general organization of the S3 API. In other words, anything that Oracle claims is copyrighted.

Companies offering a copy of the Amazon S3 API include there is Oracle itself. For compatibility, the Amazon S3 Compatibility API copies numerous elements of the Amazon API, up to and including the x-amz tags.

Oracle itself copied the API from Amazon S3, and this is completely normal

Oracle claims that the legitimacy of its actions is based on the Apache 2.0 open source license, which allows free copying and modification of the code. For example, Amazon SDK for Java also comes with an Apache 2.0 license.

But the question is whether intellectual property law applies at all to things like APIs. That is what the Supreme Court should decide.

Who Invented the API?

The term and concept of a "subroutine library" first appeared in the book Planning and Coding Problems for an Electronic Computing Instrument by Herman Goldstein and John von Neumann - Part II, Volume III (Institute for Advanced Studies, Princeton University, 1948), copy at archive.org. Contents of the third volume:

Oracle itself copied the API from Amazon S3, and this is completely normal

This is the first description of a programming methodology for computers with the preservation of programs in memory (which did not exist before). It was widely distributed among universities, which at that time were trying to create their own computers. And most importantly, the book contains the key idea: most programs will use common operations and libraries with subroutines will reduce new code and bugs. This idea was further developed by Maurice Wilkes and put into practice in the EDSAC machine, for which he received the 1967 Turing Award.

Oracle itself copied the API from Amazon S3, and this is completely normal
The EDSAC subroutine library is on the left

The next step was the creation of higher-order functions and complete programming interfaces, which was done by Maurice Wilks and David Wheeler in Preparing Programs for the Electronic Digital Computer (1951).

The term Application Program Interface (API) appeared somewhere in the late 60s.

Presentation author "A Brief Subjective History of the API" Joshua Block gives several examples of programming interfaces, instruction sets, and subroutine libraries: how they were created and subsequently used. The idea is that reuse is the point of an API. That is what they were created for in the first place. And developers have always had the opportunity to copy and remake other people's APIs:

API
Creator
Year
Re-implementation
Year

FORTRAN library
IBM
1958
Univac
1961

IBM S/360 ISA
IBM
1964
Amdahl Corp.
1970

C standard library
AT&T/Bell Labs
1976
Mark Williams Co.
1980

Unix system calls
AT&T/Bell Labs
1976
Mark Williams Co.
1980

VT100 Esc Seqs
DEC
1978
Heathkit
1980

IBM PC BIOS
IBM
1981
Phoenix Technologies
1984

MS-DOS CLI
Microsoft
1981
FreeDOS Project
1998

Hayes AT command set
Hayes Micro
1982
Anchor Automation
1985

PostScript
Adobe
1985
GNU/GhostScript
1988

SMB
Microsoft
1992
Samba Project
1993

Win32
Microsoft
1993
Wine Project
1996

Java 2 class libraries
Sun
1998
Google/Android
2008

Web API Delicious
Delicious
2003
pin board
2009

Source: "A Brief Subjective History of the API"

Copying and reusing APIs (libraries, instruction sets) is not only correct, but such a programming methodology is directly recommended in the canons of computer science. Even before copying the S3 APIs, Oracle itself had done it many times. Moreover, Oracle's business was originally built on the implementation of the SQL programming language developed by IBM. Oracle's first flagship product was a DBMS, largely copied from IBM System R. In this case, we are talking about the reimplementation of SQL as a "standard API" for a DBMS.

The imposition of intellectual property rights on APIs can create a legal minefield that everyone will suffer from. APIs implement and other cloud services. Many technical standards, such as Wi-Fi and Internet protocols, include APIs. APIs are necessarily re-implemented in some form on every computer and server on the Internet. Oracle's copyright theory can make almost anything you do with a computer illegal.

To avoid these far-reaching consequences, Oracle and the appellate court that upheld its arguments attempted to limit copyright infringement to some API reimplementations that are "incompatible" with the original. But partial reimplementations too are commonplace. Even in its copy of the S3 API, Oracle notes numerous "differences" and incompatibilities with the original Amazon APIs.

The main danger of Oracle's lawsuit is that it could prevent small technology companies from building versions of systems that are compatible with dominant platforms such as S3. Without such interoperability, programmers will be effectively locked out of the firm's offerings.

Industry representatives and developers can only hope that reason will prevail here, and judges know the basics of programming.

Source: habr.com

Add a comment