那么,Oracle 侵犯了亚马逊的版权吗?

作者 | CHARLES DUAN

译者 | 弯月,责编 | Elle

出品 | CSDN(ID:CSDNnews)

以下为译文:

美国最高法院将在今年初审理一个重要案件,此次审理将确定应用程序编程接口在版权法中的法律地位。在这场 Oracle 与 Google Android 平台数十亿美元的诉讼中,如果最高法院站在 Oracle 一方,那么可能会扼杀包括 Google 本身在内的多家科技公司之间的竞争,并动摇他们的主导地位。

Oracle 指控 Google 侵犯版权,抄袭了 Java 编程语言的API。从本质上来说,API 是一种用于指导计算机执行操作的语言。它包括一组命令以及关系到这些命令的使用的语法结构。为了让 Java 软件执行计算正弦函数或加密消息之类的预定义任务,程序员必须准确地使用这些命令以及语法结构,就像 Waffle House 餐馆用一系列词汇准确地描述了爱尔兰式煎土豆的制作过程:scattered(将土豆丝均匀地放到火上)、smothered(盖上一层厚厚的洋葱)、chunked(再盖上一层火腿)、diced(放上切块的西红柿)。

Google Android 在设计之时就确定了它与 Java API 的兼容性,因为只有这样才能让已经熟悉Java的程序员轻松地将他们的软件和知识带入到这个移动设备的新平台。为此,Android 必须精确地复制相关的 Java API 命令和语法结构。Oracle 认为 Java API 的这种“重新实现”就相当于编写未经授权的小说《哈利·波特》,因此构成了对 Oracle 的 Java API 命令和语法结构的侵权。

然而,Java API 并不是唯一的API,Android 也不是唯一的重新实现。所有现代技术都用到了 API,重新实现是确保计算机行业竞争和防止大公司锁定客户的关键部分。

Oracle 是否侵权了亚马逊的 S3 API?

下面我们来看一看亚马逊的数据存储平台S3。为了方便程序员在S3上存储和检索文件,亚马逊构建了非常全面又详细的API服务与S3进行交互。例如,如果想获取已存储文件的列表,那么可以发送命令 GET,并指明文件夹名称以及其他参数信息,例如编码类型、continuation 令牌以及 x-amz-date 等。为了使用亚马逊的S3你必须准确地使用这些参数。

竞争对手纷纷涌入亚马逊市场领先的云服务,这也毫不奇怪。为了说服程序员放弃使用亚马逊的产品,这些竞争对手重新实现了S3的API。而且,他们还必须模仿S3的命令、参数、语法结构以及整个 S3 API 的组织,换句话说,就是那些 Oracle 认为应受到版权法保护的东西。

诚然,竞争对手使用的编程语言可能与亚马逊的不同,因此软件内部的代码看起来并不像逐字复制。但是用另一种计算机语言实现API只是一种翻译行为,而将受版权保护的作品翻译成另一种语言也属于侵权行为。

在一众提供了亚马逊 S3 API 的公司中,Oracle 本身也牵扯其中。为了与S3兼容,Oracle 的“亚马逊S3兼容性API” 复制了亚马逊 API 中的众多元素,甚至包括 x-amz 标签。

那么,Oracle 侵犯了亚马逊的版权吗?我们联系了 Oracle,询问他们是否有复制亚马逊的S3 API的许可。Oracle 的发言人表示,S3 API 采用了 Apache 2.0 许可。她为我们展示了亚马逊的Java SDK确实使用了 Apache 2.0 许可。

然而,亚马逊SDK的代码仅仅是使用了 S3 API,并不是实现 S3 API的代码,两者的区别形同于点了爱尔兰式煎土豆的客户与 Waffle House 的厨师。使用API的代码组织方式与实现API的代码完全不同;使用API的代码甚至可能不包含整个API。多年来,Oracle 一直在争论使用API与重新实现无关,也没有侵犯版权(否则,每个使用Java的应用程序开发人员都属于侵权)。Oracle 不能双标:一方面认为使用API的代码不拥有API中的版权材料,另一方面为了保障 Oracle 能够重新实现S3,又说使用API的代码拥有API的版权。

即便 Apache的许可真的有效,但 Oracle 似乎并没有遵守许可条款。Apache许可的第4节要求衍生作品必须附加说明和归属声明。但是,我没有发现任何 Oracle 的文档或网站提到了亚马逊,也没有声明 Apache 的许可。

API版权可能成为法律上的雷区

重新实现了亚马逊 S3 API 的公司绝不仅仅是 Oracle 一家。有几家云存储系统亦是如此。整个技术行业还有许多其他的API和重新实现。Wi-Fi 和互联网协议之类的技术标准都使用了API,而且每一台使用了现代通信技术的计算机和设备都必须重新实现这些API。Oracle 的版权理论可以让你在计算上的所有行为(从阅读在线文档到观看视频)都变成法律上的雷区。

为了避免这些深远的影响,Oracle 和支持 Oracle 观点的上诉法院试图将版权侵权行为限制为重新实现的API必须有某部分与原来的API“不兼容”。但是部分重新实现是十分常见的行为,甚至是 Oracle 的S3兼容性API都指出了它与亚马逊API的众多“差异”和不兼容性。

Oracle 版权诉讼的危险在于,小科技公司会因此而无法构建与主流软件平台相兼容的软件。如果没有这种兼容性,熟悉主流公司API的软件程序员的发展将局限于该公司的产品中。当然,竞争对手可以请求使用API的许可,但版权法将赋予这些公司竞争上的优势,而这对于竞争激烈的软件市场而言并不是好兆头。

原文:https://arstechnica.com/tech-policy/2020/01/oracle-copied-amazons-api-was-that-copyright-infringement/

本文为 CSDN 翻译,转载请注明来源出处。

热 文 推 荐 

☞PHP 可能在未来十年内消失?

☞苹果官网以旧换新价格暴跌;戴威退出 ofo 法人代表及高管;TensorFlow 2.1.0 发布| 极客头条

☞鲲鹏之大,何止几千里?

☞铁打的春晚,流水的互联网公司

☞达摩院 2020 预测:模块化降低芯片设计门槛 | 问底中国 IT 技术演进

☞千万不要和程序员一起合租!

☞在调查过基于模型的强化学习方法后,我们得到这些结论

☞漫话:如何给女朋友解释为什么一到年底,部分网站就会出现日期混乱的现象?

你点的每个“在看”,我都认真当成了喜欢

Oracle 抄袭亚马逊的 API 是侵权吗?相关推荐

  1. 亚马逊广告api v2版php扩展库

    概述 easy-amazon-advertising easy-amazon-advertising 是一个开源的非官方的亚马逊广告业务sdk. 环境需求 easy-amazon-advertisin ...

  2. 对接亚马逊 ads api( Amazon Advertising API) 第三章:对接 Sponsored Products

    目录 官方下载报告 demo 需求 对接 Sponsored Products 的 reports 报告 1. 获取 profileId 2. 请求 report 3. 获取 report 4. 获取 ...

  3. 亚马逊常用API接口,亚马逊国际获得AMAZON商品详情 API 返回值说明

    为了进行电商平台亚马逊的API开发,首先我们需要做下面几件事情. 1)开发者注册一个账号 2)然后为每个淘宝应用注册一个应用程序键(App Key) . 3)下载亚马逊API的SDK并掌握基本的API ...

  4. 亚马逊商品详情API接口-(item_get-获得AMAZON商品详情接口),亚马逊详情API接口

    一.亚马逊商品详情API接口-(item_get-获得AMAZON商品详情接口),亚马逊详情API接口可以获取到商品价格,商品库存,商品销量,商品ID,商品图片,商品sku属性,sku详情,sku图片 ...

  5. 对接亚马逊 ads api( Amazon Advertising API) 第一章:申请授权

    目录 1.申请亚马逊开发者账号 1.1.登录/注册,进入页面,并点击右上角的登录 1.2.登录或者注册亚马逊开发者账号 1.3.新建security profile 1.3.1.在菜单栏找到 logi ...

  6. 关于亚马逊MWS API 看这一篇就够了

    关于亚马逊MWS API 看这一篇就够了 文章目录 关于亚马逊MWS API 看这一篇就够了 献给那些刚接触亚马逊MWS API的小白们 一.什么是MWS API 1.MWS API能为我们做什么 2 ...

  7. 电商api接口,淘宝/天猫、1688、拼多多、亚马逊等api接口

    测试 淘宝/天猫--item_get - 获得淘宝产品详情 Request address: https://api-gw.onebound.cn/taobao/item_get/?key=& ...

  8. 亚马逊广告API对接概述

    广告API对接总体流程>>> 下图中出现的相关URL,是以北美站为例 亚马逊广告各实体间关系>>> 1. 广告API对接准备 ​​​​​​​1.1 申请亚马逊开发者 ...

  9. 普鸥知识产权|亚马逊商标专利版权侵权有遇到吗?

    总是会有权利人遇到过专利.版权.商标侵权的,其中在我们知道的卖家申诉案例中,侵权占据了很大一部分,亚马逊作为一个对知识产权高度保护的平台,对此类违规行为的出现可以说是零忽视.零容忍的,但是也总有那么些 ...

最新文章

  1. 【JDK源码】Iterator与Iterable的实现与区别
  2. python调用接口时传多个参数_python接口自动化11-post传data参数案例
  3. CSS Dock Menu:JS+CSS 仿苹果MAC机桌面导航菜单
  4. 【机器视觉】 dev_update_pc算子
  5. 《软件构架实践》阅读笔记03
  6. php int最大值探究
  7. ostringstream 的清空数据方法
  8. ssas表格模型 权限控制_性能调整SSAS表格模型
  9. printf打印二进制_优雅地打印 HEX 数据
  10. 【刘文彬】 Controller:EOS区块链核心控制器
  11. [转]触碰心灵34句
  12. 光电编码器的原理及应用场合_光电编码器的原理及应用电路
  13. 关于ini读取错误问题?
  14. 比例电磁阀(零)液压知识
  15. 二元函数对xy同时求导_《高等数学》微课视频“二元函数的全微分求积”录音...
  16. web支付开发报错:无效的AppID参数
  17. 【Excel】某列数据有效性根据另外一列数据有效性进行动态更改
  18. 二项堆(Binomial Heap)
  19. 推荐一本书《亚马逊网络书店传奇》
  20. 帖子:刚刚结束美国J1签证所需的英语熟练度面试

热门文章

  1. JS 匿名函数 自执行
  2. c语言中定义宏的利与弊
  3. 魔方——操作阶数实验
  4. [论文阅读] Stereoscopically Attentive Multi-scale Network for Lightweight Salient Object Detection
  5. mysql root_mysql root 没有任何权限
  6. python set 和 ^ 的妙用
  7. fastjson反序列化map_最新fastjson反序列化漏洞分析
  8. python数据可视化编程实战 第2版 github_Python数据可视化编程实战(三):在Mac OS X上安装matplotlib...
  9. 适用于openvino 2020.2的yolov5的docker制作
  10. 卷积神经网络架构理解