Oracle本身从Amazon S3复制了API,这很好


甲骨文律师将Android中Java API的重新实现与复制Harry Potter的内容进行了比较, pdf

今年初,美国最高法院将审理甲骨文针对Google的重要案件,该案将根据知识产权法确定API的法律地位。 如果法院在甲骨文数十亿美元的诉讼中支持甲骨文,它将扼杀竞争并巩固技术巨头的统治地位,包括谷歌本身。

同时,Oracle业务最初是基于IBM开发的SQL编程语言的实现而建立的,即使现在该公司也提供了具有Amazon S3的API的云服务,这是完全正常的。 自从该行业诞生以来,重新实现API一直是计算机科学发展的自然组成部分。

Oracle指控Google非法复制Java API,包括与语法结构绑定的命名命令列表。 Android操作系统与Java API特别兼容,从而使Java程序员更容易将软件和知识转移到新平台上。 为此,Android准确复制了相应的Java API命令和语法结构。 甲骨文的观点是,可以将Java API的这种“重新实现”与复制作者的作品(例如文学小说《哈利·波特》(这是甲骨文律师引用真实例子 ))进行比较,并且Google侵犯了甲骨文在Java命令和结构名称上的版权。 API

但是Java API并不是唯一的API,Android并不是唯一的重新实现。 R Street Institute的技术和创新政策主管Charles Duan 表示 ,API在现代IT行业中无处不在,重新实现对于保持竞争以防止大公司的垄断至关重要。

段给出了流行的Amazon S3存储平台的示例。 为了能够从S3写入和提取文件,Amazon开发了全面, 详细的API与服务进行交互。 例如,要获取已保存文件的列表( ListObjects ),我们发送一个GET命令,其中包含主机和参数,类型为encoding-typecontinuation-tokenx-amz-date 。 要使用Amazon S3,该软件必须完全使用这些名称以及许多其他特定的参数名称。

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

亚马逊是云服务市场的明显领导者,其竞争对手提供了S3 API的重新实现,而他们不得不模仿团队名称,参数标签, x-amz前缀 ,语法结构和S3 API的一般组织。 换句话说,根据Oracle的说法,所有受版权保护的东西。

在提供Amazon S3 API副本的公司中, 有Oracle本身 。 为了实现兼容性,Amazon S3兼容性API复制了许多Amazon API元素,直至x-amz标签。



Oracle保证其行为的合法性基于开放源代码许可Apache 2.0,该许可允许免费复制和修改代码。 例如, 适用于JavaAmazon SDK还附带了Apache 2.0许可证。

但是问题是知识产权法是否普遍适用于诸如API之类的对象。 这就是最高法院应该建立的。

谁发明了API?


“子例程库”的术语和概念首次出现在Hermann Goldstein和John von Neumann的书“电子计算工具的计划和编码问题” –第二部分,第三卷(普林斯顿大学高级研究所,1948年), 存档副本中.org 。 第三卷内容:



这是对将程序存储在内存中(以前不存在)的计算机的编程方法的首次描述。 她广泛传播到大学,当时大学试图创建自己的计算机。 最重要的是,这本书包含一个关键思想: 大多数程序将使用通用操作,而带有例程的库将减少新代码和错误的数量 。 这个想法由Maurice Wilkes最终确定,并在EDSAC机器中付诸实践,为此他获得了1967年图灵奖。


EDSAC例程库在左侧

下一步是创建更高阶的功能和成熟的软件接口,Maurice Wilkes和David Wheeler在《为电子数字计算机准备程序》(1951年)一书中做了介绍。

应用程序接口 (API)一词本身在60年代后期出现。

演讲“ API的简要主观历史” 的作者 Joshua Block给出了程序接口,指令集和子程序库的几个示例:它们如何创建和在以后使用。 想法是重用是API的含义。 这就是为什么首先创建它们的原因。 开发人员总是有机会复制和重新制作其他人的API:

API创作者年份重新执行年份
FORTRAN库伊本1958年Univac1961年
IBM S / 360 ISA伊本1964年Amdahl公司1970年
标准库CAT&T /贝尔实验室1976年马克·威廉姆斯公司1980
Unix系统调用AT&T /贝尔实验室1976年马克·威廉姆斯公司1980
VT100 Esc序列十二月1978年希思杰1980
IBM PC BIOS伊本1981年凤凰科技1984年
MS-DOS CLI微软公司1981年FreeDOS项目1998年
海斯AT命令集海斯微1982年锚自动化1985年
后记脚本土坯1985年GNU / GhostScript1988年
中小企业微软公司1992年桑巴项目1993年
Win32的微软公司1993年葡萄酒项目1996年
Java 2类库太阳1998年谷歌/安卓2008年
美味的Web API好吃2003年插脚板2009年
资料来源: “ API的简要主观历史”

复制和重用API(库,指令集)不仅是正确的,而且在计算机科学经典中也直接建议使用这种编程方法。 甚至在复制S3编程接口之前,Oracle本身就已经做了很多次。 此外,Oracle业务最初建立在IBM开发的SQL编程语言的实现上。 Oracle的第一个旗舰产品是DBMS,主要从IBM System R复制而来。在这种情况下,我们正在谈论将SQL重新实现为DBMS的“标准API”。

在API上覆盖知识产权可能会造成每个人都会遭受的合法雷区。 API还实现了其他云服务 。 许多技术标准,例如Wi-Fi和Internet协议,都包含API。 程序接口必须以某种形式在Internet上的每台计算机和服务器上重新实现。 Oracle版权理论可以将您使用计算机进行的几乎所有操作转变为非法行为。

为了避免这些深远的影响,甲骨文和上诉法院坚持了自己的观点,试图将版权侵权行为限制为仅与原版“不兼容”的少数API重新实现。 但是部分重新实现也很普遍 。 即使在其S3 API副本中,Oracle也注意到了许多与原始Amazon API的“差异”和不兼容性。

甲骨文诉讼的主要危险在于,它可能阻止小型科技公司创建与主流平台(例如S3)兼容的系统版本。 没有这样的兼容性,程序员将几乎无法获得该公司的产品。

行业代表和开发人员只能希望他们的思想会胜利,而评委们将知道编程的基础

Source: https://habr.com/ru/post/zh-CN482980/


All Articles