Google vs Oracle 专利侵权案始末

·  阅读 2161
原文链接: mp.weixin.qq.com
点击上方“Hollis ”关注我,精彩内容第一时间呈现。

全文字数:   3000

阅读时间:  5分钟

据路透社报道,美国联邦巡回上诉法院2018年3月27日再次对谷歌在 Android 上使用了Java是否侵权一案进行了裁决。Google 使用 Java 开发 Android 系统的行为侵犯了 Oracle 的版权,Google 或面临需支付 88 亿美元的赔偿。

本文主要来梳理下这个事件的始末以及涉及到的争议点,并不对该事件发表任何观点。毕竟我是个文明人。

案件始末

这个案子由来已久了,最早可以追溯到2010年,算上最近一次,一共宣判过3次。先按照时间线给大家梳理下整个事件:

2010 年 1 月,Oracle 以 74 亿美元的价格收购了 Sun 公司。

2010 年 8 月,Oracle 起诉 Google 的 Android 系统侵权,要求赔偿 26 亿美元。

2011 年 3 月,谷歌聘用了Java的创始人James Gosling

2011 年 9 月,双方 CEO 第一次庭外和解失败。

2012 年 3 月,甲骨文不接受谷歌 280 万美元赔偿方案。

2012 年 5 月,陪审团认为谷歌使用了9行范围检查的Java代码构成侵权

2012 年 5 月,William Alsup法官推翻了陪审团认为谷歌侵权的意见,称API不应该受版权保护。

2012 年 5 月,加州北区法院裁定安卓系统没有侵犯专利,Java API 不存在版权,谷歌赢得短暂胜利。

2012 年 10 月,甲骨文上诉至联邦巡回上诉法院。

2014 年 4 月,联邦上述法院判定 API 受版权保护,谷歌侵权,须赔偿。

2014 年 10 月,谷歌不服判决,上诉至美国最高法院,遭驳回。

2016 年 4 月,双方庭外和解会议再次失败。

2016 年 5 月,旧金山联邦法院对该案复审。

2018 年 3 月,美国联邦巡回上诉法院裁决,谷歌侵犯了甲骨文的版权。

为了确定这个事件是否能就此结束,Hollis特地去查了一下美国的法院体系。

美国法院以地理分配司法管辖权,从下到上依次为初审法院——美国联邦地区法院、美国联邦上诉法院以及终审法院——美国最高法院。此次做出裁决的是美国联邦上诉法院,也就是说,上面还有个最高法院。具体美国的法律我不懂,但是我的理解是,如果Google对于判决结果不满意,应该还是可以向最高法院进行上诉的。如果偏颇,请指正。

所以,这个侵权案,可能从初级法院一直打到最高法院。

争议的焦点

此次案件的焦点主要涉及两个部分的争论,第一个部分是Oracle认为Google的代码中使用了Java的37个API,并且认为Google是故意为止的,因为这样做的好处是可以让更多的Java程序员更容易接受Android的代码,进而成为安卓程序员。而Google认为关于API的使用是“合理使用”,由于API是否受版权保护并没有明文规定,所以双方一直僵持不下。

很多人可能会问了,Java不是开源的吗,为啥用了还引来这么大的官司?这里要搞清楚,Oracle开源的是OpenJDK,而OpenJDK和Java API是有区别的。而且,Android 已经用Oracle公司的开源代码OpenJDK来替代后者的Java APIs了。

另外一个部分的争论, 是Oracle认为Android 中有9行代码直接抄袭了Java的实现。在介绍这9行牛气哄哄的代码之前,我们先来介绍一个人,他就是Java 大牛——Joshua Bloch。作为一个Java程序员,就算你没听说过他,至少你也会知道他写的一本书《Effective Java》。Android和Java中的那两段被认为有抄袭嫌疑的代码都是他写的。Joshua Bloch 曾经在 Sun 公司写 Java API。2004 年他加入谷歌,2008年加入Android项目。不过,在谷歌工作时,他仍然在给由 Sun 公司控制的 OpenJDK 项目贡献代码。

Code In OpenJDK :

private static void rangeCheck(int arrayLen, int fromIndex, int toIndex) {   if (fromIndex > toIndex)       throw new IllegalArgumentException("fromIndex(" + fromIndex +                  ") > toIndex(" + toIndex+")");   if (fromIndex < 0)       throw new ArrayIndexOutOfBoundsException(fromIndex);   if (toIndex > arrayLen)       throw new ArrayIndexOutOfBoundsException(toIndex);}复制代码

Code In Android

private static void rangeCheck(int arrayLen, int fromIndex, int toIndex) {   if (fromIndex > toIndex)       throw new IllegalArgumentException("fromIndex(" + fromIndex +                  ") > toIndex(" + toIndex+")");   if (fromIndex < 0)       throw new ArrayIndexOutOfBoundsException(fromIndex);   if (toIndex > arrayLen)       throw new ArrayIndexOutOfBoundsException(toIndex);}复制代码

这就是那9行代码。OpenJDK这个GPL项目的著作权属于Oracle。当时在谷歌供职的Joshua Bloch直接从OpenJDK复制了这9行代码到谷歌的Android项目中。要点是,Android项目没有按GPL兼容的方式授权,而这种情况下对OpenJDK项目的复制行为是没有通过GPL得到授权的。显然,谷歌没有另外得到一个授权。

针对一个跳槽员工写的这9行代码,毋庸置疑是侵权的,

但是,对于那37 API的版权问题一直没有定论。双方各执己见。

甲骨文认为谷歌Android 系统抄袭了 37 个 Java API 代码段,而这些代码属于 Oracle 商业私有 JDK 的一部分。但谷歌方面认为,API 不应受版权保护,它只是一种操作方法,仅仅是一个程序与另一个程序通信的接口——API是否受版权保护?这正是整个开发者行业界备受争议的观点。

API 应用程序接口作为代码产物用于约定软件系统不同组成部分的衔接,其是否具有版权保护效力在开发者未有自主声明之情况下并无法律明文约束,这也成为本案裁决最大难题。

双方利用了各种隐喻手法试图说明API到底受不受版权保护。Google把API比作饭店菜单,而Oracle则拿API跟系列小说的书名、章节标题、中心句相提并论—比方说像哈利波特这样的小说。 

合理使用

合理使用(Fair use),起源于1790年的第一部美国版权法,是知识产权方面的一个概念,它允许人们无需征求版权所有者的同意,就可以自由使用受版权保护的部分内容。现行美国版权法中有关“合理使用”的范围包括评论、新闻、学术交流、研究等等。此外,还需要考虑使用的目的、版权作品的性质、当事人使用的数量和内容的实质性以及对版权作品潜在市场的影响等四个因素。

不仅美国法律中有合理使用的说明《中华人民共和国著作权法》第二十二条界定了合理使用,指明了哪些情况下使用作品,可以不经著作权人许可,不向其支付报酬,但应当指明作者姓名、作品名称,并且不得侵犯著作权人依照本法享有的其他权利。感兴趣的朋友可以去了解下。

关于Google使用的Java中的那37个API是否属于“合理使用”,双方一直争执不下。

Oracle的代理律师提出合理使用有4个要素。1是用途是否商业性,2是是否具有创造性,3是使用是否实质性(持续、规模),4是使用是否对市场构成伤害。Oracle举例说明,像新闻报道、评论、教学等(红色打叉部分文字)可以算是合理使用,但Android不符合合理使用的任何特征。并且Oracle重点攻击了Android的盈利,指出Android已有420亿美元的收入。

关于开源的思考

开源软件的源代码对公众开放,程序员可以看到底层源代码。只要遵守规定,开发者可以进行修改并修复漏洞。整个软件行业的发展都被“开源”所推动。

早期的开源社区环境相对“纯洁”,但情况正在变得复杂。开源社区推动的是版权开放,却依然存在专利权。版权保护作品的表达形式,专利权则保护技术方案本身。版权在创作完成后自动产生,专利权则必须采取国家行政授权的方法确定权利人。

甲骨文和谷歌的案件也提醒我们应用开源软件要保持谨慎态度,弄清楚许可证内容并遵守“开源”的约定。

还有,顺便吐槽一句,现在国内针对著作权的版权保护真的是有点差的。

这件事儿,你怎么看?

- MORE | 更多精彩文章 -

如果你看到了这里,说明你喜欢本文。

那么请长按二维码,关注Hollis

转发朋友圈,是对我最大的支持。

收藏成功!
已添加到「」, 点击更改