在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

90 亿美元 Java 纠纷案反转:安卓中复制的代码属于合理使用

  • 2021-04-06
  • 本文字数:2581 字

    阅读完需:约 8 分钟

90亿美元Java纠纷案反转:安卓中复制的代码属于合理使用

一起旷日持久、在软件领域具备里程碑意义的案件终于落幕——美国最高法院于当地时间 4 月 5 日裁定,Alphabet 旗下谷歌在开发其 Android 操作系统时并未侵犯 Oracle 的版权。最高法院表示,谷歌对一些 Java API 代码的复制是合理使用。


最高法院在大法官斯蒂芬·布雷耶(Stephen Breyer)的意见书中以 6 比 2 做出上述裁决,驳回了此前一家下级法院称谷歌 Android 侵犯甲骨文 Java 软件平台版权的裁决。


斯蒂芬·布雷耶称,若允许甲骨文对其代码实施版权保护,将成为“限制新程序未来创造力”的枷锁,而掌握钥匙的人只有甲骨文,从而损害了公众利益。


在判决公布后,谷歌负责全球事务的高级副总裁肯特·沃克(Kent Walker)在 Twitter 上发文道,“今天最高法院对谷歌诉甲骨文案的判决是创新、互操作性和计算领域的一大胜利。”他还表示,感谢美国领先的创新者、软件工程师和版权学者的支持。


甲骨文对此则表示,“他们(谷歌)偷走了 Java,并花了 10 年时间打官司,只有垄断者才能做到这一点。这就是为什么全球和美国的监管机构正在审查谷歌的商业行为。”


十年纠缠,数次反转


谷歌和甲骨文的这起版权纠纷官司已经打了十多年,起因是甲骨文诉讼谷歌安卓系统的 Java 源代码侵权。


甲骨文于 2010 年收购 Sun Microsystems 公司时获得了 Java 技术。同年,甲骨文起诉谷歌称,谷歌在开发 Android 系统时非法复制了超过一万行其子公司 Sun Microsystems 所编写的 Java API 代码,要求赔偿近 90 亿美元。而谷歌方面拒绝支付这笔赔偿金,并表示对相关代码的使用属于合理使用范畴,无需承担版权责任。


过去十年,甲骨文与谷歌就该版权纷争已打了多个回合:


  • 2010 年,甲骨文起诉谷歌侵犯了与 Java 相关的专利和版权,索赔 80 亿美元;


  • 2012 年 5 月,加州北区联邦法院裁定谷歌没有侵犯 Java 版权,Java API 不受版权保护;10 月,甲骨文上诉至联邦巡回上诉法院。


  • 2014 年,美国联邦巡回上诉法院推翻了一审部分结论,称必须尊重软件的版权保护,甲骨文赢得上诉,此案被发回重审。甲骨文此时提出了 93 亿美元的索赔。同年 10 月,谷歌申请美国联邦最高法院听审此案。


随后,联邦最高法院拒绝了谷歌的调卷令申请。根据联邦巡回上诉法院的指令,案件重返加州北区法院,由该院审理谷歌另外提出的“合理使用”主张。


  • 2016 年 5 月,陪审团认定谷歌的行为构成合理使用,不涉及专利侵权。10 月,甲骨文再次上诉至联邦巡回上诉法院;11 月,谷歌也提起了上诉。


  • 2018 年 3 月,甲骨文第二次赢得上诉,联邦巡回上诉法院推翻了陪审团的认定,认定谷歌侵权。


  • 2019 年 1 月,谷歌向联邦最高法院上诉。2 月,包括微软、Mozilla、开发者联盟、Python 软件基金会在内的谷歌盟友们陆续向联邦最高法院递交了法庭之友意见书,其中一份由 78 位计算机科学家联合签署的意见书打动了大法官们,该院终于同意复审本案。


在甲骨文看来,谷歌在没协议的情况下抄袭了版权属于甲骨文的 37 个 Java API 段。但谷歌认为,它所复用的 Java 函数接口(API,即应用程序接口)属于例外,版权的合理使用原则是允许这种复制的。


于是,这场漫长的诉讼焦点变成,API 是否也受版权法的保护,对它的复用是否可构成侵权,又或者,它在多大程度上获得版权保护。


软件代码的版权保护边界


针对该案,来自电影、音乐、出版等行业高度依赖版权保护的企业主要站在甲骨文一方。而软件行业的大多数人则认为,API 不受版权的保护。


最高法院在裁决中称,该院明确选择不对本案中最广泛的法律问题做出裁决,即 API 代码到底有无资格获得版权保护。


布雷耶代表最高法院写道:“考虑到技术、经济和商业环境的快速变化,我们认为,我们不应该回答超出解决双方纷争所必需范畴的问题。”


也就是说,虽然该院认为甲骨文的 Java API 有资格获得版权保护,但该院也表示,谷歌在合理使用原则方面有较佳论证,而这一概念旨在防止版权阻碍新产品和服务的开发。


计算机软件知识产权的保护边界一直是个很难判定的问题。在探讨 API 应不应该受版权保护的时候,需要理解 API 的含义和意义到底是什么,过程中伴随而来的是层出不穷的比喻。


站在甲骨文派的法官,曾将谷歌对 Java API 的复制比作是足球队抄袭了对方的战术,让自己的球队获得成功。


最高法院表示,谷歌为 Android 系统复制的代码仅占 Java API 总共 286 万行代码的 0.4%。布雷耶将这部分代码比喻为“汽车上的油门踏板,它可以告诉汽车更快地行驶,或者如同打字机上的 QWERTY 键盘,当你按下某个特定的键时,就会调用某个字母”。


也就是说,如果造车厂选择采用油门踏板的设计,它就得支付高昂的版权费用,如果不采用,那它得重新发明新的设计,同时也很难让用户对此买单。API 的意义类似油门踏板,Google 复用它以吸引开发者,继而让开发者能迅速上手进行创新,而 API 的使用若受到限制,则在某种程度上限制了创新。


“我们的结论是:在本案中,谷歌重新实现了一个用户界面,且只取所需,以允许用户将积累的才能用在一个新的、变革性程序中,谷歌对 Sun Java API 的复制在法律上是对该材料的一次合理使用。”布雷耶写道。


此前,由 78 位计算机科学家联合签署的意见书中,曾回顾了软件发展的历史,展示了得益于 API 重新实现而诞生的影响深远的伟大软件:计算机制造商重新实现 IBM BIOS API,从而有了 DOS,并最终诞生了 windows 系统;苹果通过重新实现 Unix API,创造了桌面端的 OS X 操作系统和 iOS 系统。即便是 Java,也不是 Sun 公司纯粹白手起家的产物,也建立在重新实现其他编程语言 API 的基础之上(例如 C 语言 math API、Perl 语言的正则表达式 API 等)。科学家们亦进一步指出:谷歌所做的,是一种长期存在且广泛普及的实践方式,其对于实现计算的基本进步至关重要,并且已经在过去数十年间推动了整个软件行业的历史创新。


加州大学伯克利分校的法律和信息学教授 Pamela Samuelson 称,这一裁决让开发者感到宽慰,API 已经成为这些开发者开发软件的核心。软件开发人员一直依赖既有的软件接口作为计算领域创新的基础,最高法院的裁决实际上再次肯定了这一做法。


参考:

https://www.wsj.com/articles/supreme-court-rules-for-google-in-multibillion-dollar-copyright-battle-with-oracle-11617632233

https://www.supremecourt.gov/opinions/20pdf/18-956_d18f.pdf

https://www.cnbc.com/2021/04/05/supreme-court-rules-in-googles-favor-in-copyright-dispute-with-oracle-over-android-software.html

https://www.bloomberg.com/news/articles/2021-04-05/supreme-court-overturns-oracle-s-copyright-win-over-google

2021-04-06 15:346407
用户头像
罗燕珊 AI practitioner | Tech media

发布了 585 篇内容, 共 456.7 次阅读, 收获喜欢 873 次。

关注

评论 2 条评论

发布
用户头像
Fair use 被支持了,但是API 设计有没有版权,还是没有定义。
2021-04-07 10:08
回复
用户头像
oracle 这恶心货。
2021-04-06 17:09
回复
没有更多了
发现更多内容

oeasy教您玩转linux 010211 牛说 cowsay

o

基于Goc的Golang代码VSCode实时染色方案

大卡尔

测试覆盖率 精准测试 Go 语言

.NET委托,事件和Lambda表达式

AI代笔

【高并发】Redis如何助力高并发秒杀系统,看完这篇我彻底懂了!!

冰河

多线程 高并发 秒杀 电商超卖 签约计划第二季

不要以为Bug写的好就是好程序员,其实这只占不到15%

小Q

Java 学习 程序员 架构 面试

[翻译]Scalable Go Scheduler Design Doc[Go可扩展调度设计文档]

卓丁

golang scheduler Go scheduler Go 语言

区块链赋能市场监管 浙江上线“黑科技”清除取证固证难题

CECBC

区块链 市场监管 取证难题

一点 Go Web 编程实践经验

Garfield

Go web Go 语言

JavaScript引擎的事件循环机制是怎样工作的?

Walker

Java 大前端 运行时栈帧 事件循环

央行数研所推出贸易金融区块链平台

CECBC

区块链 金融

TOGAF认证课由2天变化为5天的思考

周金根

企业架构 TOGAF

业务架构学习内容有哪些?

周金根

BIZBOK 业务架构

从外卖员到拼多多30K+程序员,我付出了三年的青春

小Q

Java 学习 程序员 架构 面试

LeetCode题解:232. 用栈实现队列,使用两个栈 入队 - O(1),出队 - 摊还复杂度 O(1),JavaScript,详细注释

Lee Chen

大前端 LeetCode

一文解开java中字符串编码的小秘密

程序那些事

java安全编码 java编码指南 UTF编码

区块链技术发展的十大趋势

CECBC

区块链 金融 安全问题

记一种spring框架的想当然但错误的用法

小明同学

源码分析 最佳实践 Spring Framework bug

LeetCode题解:232. 用栈实现队列,使用两个栈 入队 - O(n), 出队 - O(1),JavaScript,详细注释

Lee Chen

大前端

澳门金沙玩赢了钱提现不了异常注单未更新有什么办法处理?

丛林里的余光

异常检测 澳门金沙 提现不了

阿里培训官给新入职程序员的25条建议

Java架构师迁哥

藏在Java数组的背后,你可能忽略的知识点

Java架构师迁哥

从新浪数字化转型,窥见互联网的“懂行”新十年

脑极体

朱嘉明:全球科技革命正在逼近“奇点”,区块链影响未来人类社会的走向

CECBC

人工智能 科技 科技革命

架构师训练营第十四周

Melo

宅家三个月玩转算法,再战字节跳动,字节跳动面试官朝我比了个“ok”

编程 字节跳动 面试 算法

甲方日常 13

句子

工作 随笔杂谈 日常

面试必问亿级流量优化策略之JVM调优,文档视频面试,还不收藏

小Q

Java 程序员 架构 JVM jvm调优

Dubbo-go应用维度注册模型

apache/dubbo-go

dubbo dubbo-go dubbogo

架构师课作业 - 第十三周

Tulane

不草率,你只管下载资料,剩下的交给「哇哦」

小Q

Java 学习 架构 面试 分布式

Java四种引用类型:强引用、软引用、弱引用、虚引用

简爱W

90亿美元Java纠纷案反转:安卓中复制的代码属于合理使用_语言 & 开发_罗燕珊_InfoQ精选文章