Oracle 与 Google 走上法庭

  • Alex Blewitt
  • 张龙

2012 年 5 月 9 日

话题:JavaOracleGoogle语言 & 开发

Oracle 收购 Sun Microsystems 的一个目的就是控制 Java 语言,而更为重要的则是其专利。在众多的大公司中,Oracle 的一个眼中钉就是 Google,其针对 Android(及其 Dalvik VM)的类 Java 编程语言导致其被 Oracle 指控,控告其违背了 Oracle 的专利与版权,甚至发现 Oracle 测试套件中的测试代码出现在了 Google 的仓库中。

这场争论由来已久,从最开始的 132 个声明降到了 3 个,接下来又进一步降到了仅仅 2 个专利,其中一个专利将于今年 12 月到期。

上个月,法官 Paul Grewal让这两家公司尝试通过协商来解决问题。如果 Oracle 能够证明 Google 侵犯了其专利,那么 Google 将会支付 280 万美金。然而 Oracle 拒绝了,认为 Google 支付的太少。

这个数字是根据到今年底(RE38104到期日)Android 收益的 0.5% 及到 2018 年 4 月(专利6061520的到期日)Android 收益的 0.015% 计算出来的。值得注意的是,USPTO 已经判定 RE38104无效,但 Oracle 还会继续上诉。

最后一个专利(6061520)被 USPTO 判定为有效。由于这两家公司无法达成和解,因此 Oracle 期望证明 Android 违背了该专利,如果证实确实如此,那么 Oracle 会要求法庭确定赔偿额。该专利涉及到静态数组初始化的性能改进:

该专利表示了对传统的静态数组初始化的改进,这是通过减少虚拟机执行的代码量以静态地初始化数组来实现的。为了实现代码量的减少,在联合类文件时,预加载器会识别出所有方法并执行这些方法以确定他们所执行的静态初始化。接下来,预加载器会创建出一个表达式以标明方法所执行的静态初始化并将该表达式存储到.mclass 文件中,然后替换掉该方法。这样,该方法的代码(包含了很多指令)就会被一个单独的表达式所替代,该表达式会指示虚拟机执行静态初始化,这样就会节省大量内存。虚拟机会被修改以识别出该表达式并对数组执行恰当的静态初始化。

这场官司一个有趣的副作用是它暴露出了 Google 在 2008 年到 2011 年间已经从 Android 上获得了5.5 亿美元的收益。这表明截至到 2011 年底激活的2 亿台 Android 设备帮助 Google 每年从每台 Android 设备上获得了超过 10 美元的收益。然而去年十月,Google 的电话会议表明其移动平台产品(包括 iOS 的 Google Maps)价值 25 亿美元。如果除去 Android 收益,那么 Google 从其他渠道所获得的收益只有不到 20 亿美元,比如说向 Apple 许可 iOS 平台的 Maps 数据。

这场官司从 4 月 16 日开始,预计将会持续 8 周时间。

查看英文原文:Oracle and Google go to Court

JavaOracleGoogle语言 & 开发