Oracle 本身从 Amazon S3 复制了 API,这是完全正常的

Oracle 本身从 Amazon S3 复制了 API,这是完全正常的
Oracle律师将Android中Java API的重新实现与复制《哈利·波特》的内容进行了比较, PDF格式

美国最高法院将于今年年初审理一个重要案件。 甲骨文与谷歌,这将决定 API 在知识产权法下的法律地位。 如果法院在甲骨文数十亿美元的诉讼中支持甲骨文,它可能会抑制竞争并巩固科技巨头的主导地位,也许包括谷歌本身。

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

甲骨文指责谷歌非法复制 Java API,包括与语法结构相关的命名命令列表。 Android操作系统专门兼容Java API,使Java程序员可以更轻松地将软件和知识转移到新平台。 为此,Android 准确复制了相应的 Java API 命令和语法结构。 争论 Oracle 认为,Java API 的这种“重新实现”可以比作复制作者的作品,例如文学小说《哈利·波特》(这 Oracle律师举的一个真实例子)和 Google 侵犯了 Oracle 关于 Java API 命令名称和结构的版权.

但 Java API 并不是唯一的 API,Android 也不是唯一的重新实现。 在当今的IT行业,API无处不在,重新引入API对于维持竞争、防止大公司垄断至关重要 查尔斯·杜安 (Charles Duane) 是 R Street 研究所技术和创新政策主任。

Duane 给出了流行的 Amazon S3 存储平台的示例。 为了能够从 S3 写入和检索文件,Amazon 开发了全面的、 详细的API 与服务交互。 例如,要获取已保存文件的列表(列表对象)我们发送一个 GET 命令,指定主机和类型参数 编码类型, 延续标记 и x-amz-日期。 要使用 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-amzS3 API 的语法结构和一般组织。 换句话说,Oracle 声称的所有内容均受版权保护。

提供 Amazon S3 API 副本的公司包括 还有Oracle本身。 为了兼容性,Amazon S3 兼容性 API 复制了 Amazon API 的大量元素,直至 x-amz 标签。

Oracle 本身从 Amazon S3 复制了 API,这是完全正常的

甲骨文声称其行为的合法性基于开源Apache 2.0许可证,该许可证允许免费复制和修改代码。 例如, 适用于 Java 的亚马逊 SDK 还附带 Apache 2.0 许可证。

但问题是知识产权法是否适用于 API 之类的东西。 这是最高法院必须做出的决定。

API是谁发明的?

“子程序库”的术语和概念首次出现在 Herman Goldstein 和 John von Neumann 所著的《电子计算仪器的规划和编码问题 - 第二部分,第三卷(普林斯顿大学高级研究所,1948 年)》一书中。 复制到 archive.org。 第三卷内容:

Oracle 本身从 Amazon S3 复制了 API,这是完全正常的

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

Oracle 本身从 Amazon S3 复制了 API,这是完全正常的
左边是EDSAC子程序库

下一步是创建高阶函数和成熟的软件接口,正如 Maurice Wilkes 和 David Wheeler 在《为电子数字计算机准备程序》(1951 年)中所做的那样。

术语本身 应用程序界面 (API) 出现于 60 世纪 XNUMX 年代末。

演示文稿的作者 《API 主观简史》 Joshua Block 给出了几个编程接口、指令集和子例程库的示例:它们是如何创建和随后使用的。 这个想法是重用是 API 的重点。 这就是它们最初被创建的目的。 开发人员总是有机会复制和重新制作其他人的 API:

API
创造者

重新实施

FORTRAN 库
IBM
1958
UNIVAC
1961

IBM S/360 ISA
IBM
1964
阿姆达尔公司
1970

标准C库
AT&T/贝尔实验室
1976
马克·威廉姆斯公司
1980

Unix系统调用
AT&T/贝尔实验室
1976
马克·威廉姆斯公司
1980

VT100 Esc 序列
DEC
1978
希思杰
1980

IBM PC BIOS
IBM
1981
凤凰科技
1984

MS-DOS命令行界面
微软
1981
FreeDOS项目
1998

海斯 AT 命令集
海斯微
1982
锚点自动化
1985

的PostScript
土砖
1985
GNU/GhostScript
1988

SMB
微软
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 和互联网协议)都包含 API。 编程接口必须以某种形式在互联网上的每台计算机和服务器上重新实现。 甲骨文的版权理论几乎可以使你用计算机所做的任何事情都变得非法。

为了避免这些深远的后果,Oracle 和维持其论点的上诉法院试图将版权侵权限制在某些与原始版本“不兼容”的 API 重新实现上。 但也部分重新实现 是司空见惯的。 即使在 S3 API 的副本中,Oracle 也指出了与原始 Amazon API 的许多“差异”和不兼容性。

Oracle 诉讼的主要危险在于,它可能会阻止小型科技公司创建与 S3 等主流平台兼容的系统版本。 如果没有这种兼容性,程序员将被有效地排除在该公司的产品之外。

行业代表和开发商只能希望理性占上风, 评委了解编程的基础知识.

来源: habr.com

添加评论