GMTC全球大前端技术大会聚焦前端、移动、AI应用等领域15个热门专题方向,购票立减¥960 了解详情
写点什么

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

2021 年 4 月 06 日

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 年 4 月 06 日 15:342091
用户头像
罗燕珊 InfoQ中文站记者

发布了 95 篇内容, 共 33.2 次阅读, 收获喜欢 133 次。

关注

评论 2 条评论

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

使用Redis,你必须知道的21个注意要点

云流

Java 数据库 redis 架构 面试

nsq源码阅读之Topic

werben

golang nsq

nsq源码阅读之消息接收和发送

werben

golang nsq

Netty 核心源码解读 —— ServerBootstrap 篇

然行

Netty

区块链BaaS应用平台的搭建,BaaS平台的应用场景

13828808769

#区块链#

百度Feed稳定性架构实践

百度Geek说

解决方案 IDC feed

如何在3分钟内实现音频变声和趣味音效?

拍乐云Pano

音视频 RTC 音视频算法 出海社交 社交泛娱乐

阿里大牛全新整理!金三银四面试题库+Java全栈笔记限时开源

Java王路飞

Java 程序员 架构 面试

下一站,星辰大海!

百度大脑

百度 AI 上市

推荐35款可以快速提升工作效率的软件

科技猫

软件 经验分享 实用工具 办公 工具分享

hive的DQL查询语法详细剖析

大数据技术指南

大数据 hive 3月日更

Rust从0到1-基础概念-变量

rust 变量

Swift 5创建和使用Framework, XCFramework 从入门到精通 John 易筋 ARTS 打卡 Week 42

John(易筋)

ARTS 打卡计划 Framework XCFramework

Redis新版本开始引入多线程,谈谈你的看法?

Java架构师迁哥

nsq源码阅读之diskqueue

werben

golang nsq

nsq源码阅读之Channel

werben

golang nsq

大多数人不知道的Java知识 - Java内省机制

陈皮的JavaLib

Java 内省 java反射

Netty 核心源码解读 —— 开篇

然行

Netty

【LeetCode】扁平化嵌套列表迭代器Java题解

HQ数字卡

算法 LeetCode 3月日更

想学IT的必看!漫谈MySQL权限安全,分享一点面试小经验

欢喜学安卓

android 程序员 面试 移动开发

nsq源码阅读之nsqd总体流程

werben

golang nsq

不愧是阿里P7私传“并发编程核心讲义”,实战案例,个个是经典

周老师

Java 编程 程序员 架构 面试

超赞:不愧是“阿里内部Redis学习笔记”从头到尾,全是精华

周老师

Java 编程 程序员 架构 面试

超全Android中高级面试复习大纲,在线面试指南

欢喜学安卓

android 程序员 面试 移动开发

Python 高手都这样使用字典,这些高效方法你知道吗?|pythonic 小技巧

AlwaysBeta

Python

ACA世界大赛,赛前Live!金奖是怎么炼成的-公益创意作品剖析

Adobe国际认证

智慧公安重点人员系统开发,情报研判管控平台的搭建

13828808769

行业资讯

SQLServer性能调优方法小结

嘉为蓝鲸

数据库 sql 运维 SqlServer MAXDOP

SDK介绍及相关功能测试

行者AI

测试 sdk

DB-Engines 3月数据库排名:MySQL跳出“同期跌幅榜”,拿下“本月涨幅榜冠军”

华章IT

数据库

MapReduce的运行机制详解

五分钟学大数据

大数据 mapreduce 3月日更

大数据技术升级脉络及认知陷阱

大数据技术升级脉络及认知陷阱

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