Turns Out Oracle Copied Amazon's S3 APIs; When Confronted, Pretends That's Different (Spoiler Alert: It's Not)
from the wanna-try-that-again dept
Oracle has waged a many years long war (now heading to the Supreme Court) arguing that copying APIs is copyright infringement. Many people who actually understand what an API is, have explained why that is absolutely ridiculous, but tons of non-technical (always non-technical) people keep insisting that an API is just as copyrightable as software. Indeed, they often insist that an API is no different than software itself. This includes Oracle’s main lawyer on the case, Annette Hurst, who just a few months ago insisted that APIs were executable code (they are not).
However, Charles Duan, over at the R Street Institute (disclosure: we’ve partnered with R Street on a variety of projects over the years) has written up quite an incredible article highlighting that Oracle, of all companies, appears to have copied Amazon’s S3 API. Lots of companies have. But that’s because copying APIs is done all the freaking time in software, because it’s how you make compatible systems:
Consider Amazon?s popular data storage platform, S3. To allow programmers to store and retrieve files on S3, Amazon built a comprehensive, detailed API for interacting with the service. To get a list of stored files, for example, one sends the command name GET with the folder name as a grammatical object, along with cryptically tagged information such as encoding-type, continuation-token, and ?x-amz-date. Software must use these exact, cryptic terms and a bevy of others to work with Amazon S3.
Unsurprisingly, competitors have sprung up to Amazon?s market-leading cloud services. To convince programmers to switch away from Amazon?s offerings, those competitors reimplement S3?s API. In doing so, the competitors must mimic the command names, parameter tags, ?x-amz? phrasing, grammatical structure, and overall organization of the S3 API?in other words, exactly the kind of thing Oracle argues is protected by copyright.
To be sure, a competitor may use a different programming language than Amazon did so the internal software code might not look like verbatim copying. But implementing an API in another computer language is simply an act of translation, and translating a copyrighted work into another language is specifically known to be a copyright infringement.
Among the companies offering a copy of Amazon’s S3 API is Oracle itself. In order to be compatible with S3, Oracle?s ?Amazon S3 Compatibility API? copies numerous elements of Amazon?s API, down to the x-amz tags.
I can’t wait to see Annette Hurst’s analysis of how Oracle is infringing on Amazon’s copyright…
Of course, Oracle, in its typical Oracle fashion, insists that this case is different. It claims that it’s okay, because of the Apache 2.0 license that Amazon uses. Except that’s not right. Amazon’s SDK (Software Development Kit) is licensed under Apache, but the API is not. And, as such, it appears to undercut the key point that Hurst is arguing regarding Oracle’s Java API in the Google case:
However, the Amazon SDK is code that uses the S3 API, not code that implements it?the difference between a customer who orders hash browns and the Waffle House cook who interprets the orders. Code that uses an API will be organized completely differently from code that implements one; it may not even contain the whole API. And Oracle has for years argued that using an API is unrelated to reimplementation and not an infringement of copyright (or else every app developer using Java would infringe). Oracle can’t simultaneously argue that API-using code does not embody copyrighted material from an API, and yet API-using code embodies all copyrights in the API necessary to give Oracle the right to reimplement S3.
Even if the Apache license does apply, Oracle doesn’t appear to comply with the terms of the license. Section 4 of the Apache license requires notices and attribution statements attached to derivative works. Yet I find no attribution to Amazon or relevant mention of an Apache license on Oracle’s documentation or anywhere on the site.
In short, Oracle is doing what lots of companies do regarding APIs all the time, and what every company (including itself) has always believed to be non-infringing, because an API is not code itself, but a set of instructions on how to interact with the code. It’s only in this case where Oracle, jealous of Google’s success with mobile (while its own attempts flopped miserably), wants to claim this is infringing.
It shouldn’t surprise anyone that Oracle is being hypocritical here. But it should concern everyone that if Oracle’s interpretation of the law is upheld by the Supreme Court that it will fundamentally damage the very way in much a ton of software — including Oracle’s own products — are developed.