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

相关文章

Oracle查询表结构建表语句索引等方式

《Oracle查询表结构建表语句索引等方式》使用USER_TAB_COLUMNS查询表结构可避免系统隐藏字段(如LISTUSER的CLOB与VARCHAR2同名字段),这些字段可能为dbms_lob.... 目录oracle查询表结构建表语句索引1.用“USER_TAB_COLUMNS”查询表结构2.用“a

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

解决RocketMQ的幂等性问题

《解决RocketMQ的幂等性问题》重复消费因调用链路长、消息发送超时或消费者故障导致,通过生产者消息查询、Redis缓存及消费者唯一主键可以确保幂等性,避免重复处理,本文主要介绍了解决RocketM... 目录造成重复消费的原因解决方法生产者端消费者端代码实现造成重复消费的原因当系统的调用链路比较长的时

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

kkFileView启动报错:报错2003端口占用的问题及解决

《kkFileView启动报错:报错2003端口占用的问题及解决》kkFileView启动报错因office组件2003端口未关闭,解决:查杀占用端口的进程,终止Java进程,使用shutdown.s... 目录原因解决总结kkFileViewjavascript启动报错启动office组件失败,请检查of

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

Python错误AttributeError: 'NoneType' object has no attribute问题的彻底解决方法

《Python错误AttributeError:NoneTypeobjecthasnoattribute问题的彻底解决方法》在Python项目开发和调试过程中,经常会碰到这样一个异常信息... 目录问题背景与概述错误解读:AttributeError: 'NoneType' object has no at

Spring的RedisTemplate的json反序列泛型丢失问题解决

《Spring的RedisTemplate的json反序列泛型丢失问题解决》本文主要介绍了SpringRedisTemplate中使用JSON序列化时泛型信息丢失的问题及其提出三种解决方案,可以根据性... 目录背景解决方案方案一方案二方案三总结背景在使用RedisTemplate操作redis时我们针对

Kotlin Map映射转换问题小结

《KotlinMap映射转换问题小结》文章介绍了Kotlin集合转换的多种方法,包括map(一对一转换)、mapIndexed(带索引)、mapNotNull(过滤null)、mapKeys/map... 目录Kotlin 集合转换:map、mapIndexed、mapNotNull、mapKeys、map