Oracle vs Google:在陪审团考虑专利问题之际法官Alsup披露自己是个程序员

本文主要是介绍Oracle vs Google:在陪审团考虑专利问题之际法官Alsup披露自己是个程序员,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2012/05/oraclevgoogle-patents

目前,Oracle与Google诉讼案的陪审团正在考虑对两个专利的裁决。由于陪审团在此前的版权阶段所作出的裁决(他们无法在Google对Java的使用是否合理这个问题上达成一致),现在Oracle的救命稻草就是专利阶段的裁决结果了。

第一个专利(后文称作104)于1992年生效。104本质上指的是这样一个方法,计算机系统会通过一个符号标识符(能够动态解析为正确的地址)对内存中的数据调用该方法,而无需使用具体的内存地址本身。104的发明者James Gosling虽然对Oracle没什么兴趣,但他在自己的博客中表示了在这起诉讼中对Oracle的支持。

Sun没有提起专利诉讼并不表示我们不会抱怨。虽然我与Oracle道不同,但在这起诉讼中,Oracle是正确的。Google完全输给了Sun。

第二个专利(520)为程序创建静态数组值提供了一种可以使用更少系统资源的方式,这是通过模拟Java字节码的执行来实现的,这减少了虚拟机所要做的工作。

对于这两个专利来说,人们通常认为104更具价值。在结束语中,Oracle的首席律师Michael Jacobs告诉陪审团Google自己的工程师(主要指的是Andy McFadden)已经在其证词中承认Android的Dalvik虚拟机是通过Oracle专利所描述的方式来获取数据的。Google的首席律师Robert Van Nest告诉陪审团符号引用是“Android从来都没有使用过的东西,从来都没有”。他说,104描述的是一种动态系统,而Dalvik优化程序dexopt则是“一种静态操作”。

对于520专利来说,Van Nest将其描述为一种非常小的特性。该专利描述了一种初始化数组的方式,Oracle声称它被用在了Android “dx工具”中。正如该专利所示,Google说该工具所做的事情仅仅是“模式匹配”而非“模拟执行”。

一旦陪审团做出了裁决,假如他们认为Google侵犯了Oracle的专利,那么审判就会转向损害赔偿了。Oracle对版权侵犯提出了10亿美金(折合6亿3千万英镑)的赔偿,但对于违反专利声明的任何处理都要远远小于这个数字。根据ITworld的报道,在该诉讼开始前,Google曾计划为这两个专利支付总计280万美金(折合175万英镑)的损害赔偿,涵盖了2011年他们对这两个专利的使用。根据ITworld所述,Oracle提出了415万美金的赔偿。对于未来的使用,Google需要为其中一个专利支付其Android营收额的0.5%,直到今年12月该专利过期为止。Google还提出为第二个专利支付其Android营收额的0.015%,直到2018年4月该专利过期为止。

Oracle与Google都同意将版权阶段的损害赔偿决定延期,直到法官Alsup处理好编程APIs的版权规则为止。如果Alsup认为APIs是受版权保护的,那么新的陪审团将会聆听该案以决定损害赔偿。如果Alsup认为APIs是不受版权保护的,那么就损害赔偿来说,双方将会放弃自己的权利。Oracle已经提供了版权案的文件,从9行代码的rangeCheck函数到用于测试的8个文件。根据庭审记录所述:

法庭上的证据表明Google反编译了8个Java文件并将其复制到自己的项目中。对于正常的陪审团来说,他们觉得仅仅复制8个计算机文件根本就不值得小题大做。庭审记录包含了这些Java代码文件的源代码(TX 623.2–623.8)、Java代码文件的反编译版本(TX 896.1–896.8)以及对应的Android代码文件(TX 1031–40)。John Mitchell教授证实了反编译过程、他是如何确定这8个文件是被反编译的以及通过一行一行地比较,如何发现“实际的代码是完全匹配的”(Tr. at 1259–1260)。

与之相反,Google认为陪审团发现Google对这些复制文件的使用根本就不值得一提,因为这些复制的文件只是“测试文件”而已,并不会发布到Android手机上。这么做是没有说服力的。

然而,Oracle的律师David Boies却死盯着rangeCheck函数侵犯不放,并说到:复制这9行代码加速了Android的面世时间。多方面表示(1、2)法官Alsup对此进行了驳斥:

我曾经,并且现在依然在使用其他多种语言来编程。我之前曾写过类似于rangeCheck这样的函数代码几百次了。我能做到、你也能做到。人们本来可以自己实现它,复制的原因就是为了快一点而已,这仅仅是个意外。你怎么能说这加快了Android的面世时间呢。你是美国最好的律师之一,但怎么能提供这种论据呢?

Google认为最终的审判应该会没事,因为陪审团无法就其公平使用Java的问题上达成一致、也无法做出最后的裁决、审议将在法官Alsup确定好API的版权问题后开始。

无论结果是什么,都很可能会有一方继续上诉。

查看英文原文:Oracle vs. Google: Judge Alsup Reveals he is a Developer as Jury Considers Patent Claims

这篇关于Oracle vs Google:在陪审团考虑专利问题之际法官Alsup披露自己是个程序员的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/155327

相关文章

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

MySQ中出现幻读问题的解决过程

《MySQ中出现幻读问题的解决过程》文章解析MySQLInnoDB通过MVCC与间隙锁机制在可重复读隔离级别下解决幻读,确保事务一致性,同时指出性能影响及乐观锁等替代方案,帮助开发者优化数据库应用... 目录一、幻读的准确定义与核心特征幻读 vs 不可重复读二、mysql隔离级别深度解析各隔离级别的实现差异

C++ vector越界问题的完整解决方案

《C++vector越界问题的完整解决方案》在C++开发中,std::vector作为最常用的动态数组容器,其便捷性与性能优势使其成为处理可变长度数据的首选,然而,数组越界访问始终是威胁程序稳定性的... 目录引言一、vector越界的底层原理与危害1.1 越界访问的本质原因1.2 越界访问的实际危害二、基