亲爱的 Oracle: Java API 不是艺术品

Oracle曾经说Java API就像是优美的画作。Google却说API就是文件柜里的文件。最后,William Alsup(负责审理Oracle和Google关于Java纠纷的法官)比较同意Google的观点,Java作为一门编程语言,其API就像是图书馆里的藏书一样。

“Java里的包(package)就像是图书馆的书架一样”,Alsup法官在他最近一周的所作出的广受关注的裁定中这样写道,该裁定正是针对 Google和Oracle关于Java API的漫长的法律诉讼所作出的,“每一个类(Class)就像是书架上的一本书,类中的每一个方法(Method)就像是书中的‘阅读指南’章节。程序员的工作,就是前往正确的书架,选择正确的书,打开这本书,找到所需要的章节。”

bookshelf
Image: twechy/Flickr

Alsup法官的基本观点是:库文件的组织形式并不受制于版权。是的!他明确地表达了这个观点:书是有版权的,但是你在书架上怎么放书,按什么顺序放,这跟版权一点儿关系都没有。

换句话说,Google复制了37个Java API,用以构建其Android手机操作系统,这一行为并不侵犯Oracle的版权。尽管Google照搬了这些API的组织形式,但Google自行 构建了代码,至少是绝大多数自行构建的。“Java和Android的类库在组成形式上大致相同,基本上提供了相同的功能,解决相同的问题,不过 Google对这些功能函数都做了自己的实现,这些实现和Oracle所属的Java是不一样的。”


Google和Oracle关于Android是否侵犯Java版权开展诉讼

根据这一裁定,Alsup法官终结了这场关于Google Android系统侵权使用Java的诉讼,该诉讼长达六周之久。Oracle于2010年控告Google非法侵占了Java的版权和专利权,并企图通 过该诉讼在Google Android系统的巨额利润中分得一杯羹。不过,依照Alsup法官的裁决,数据库巨头Oracle这次要一无所获了。Oralce已经表明了对此案上 诉的态度。

如果Alsup做出相反的判决,那么Oracle很可能会引发一场‘令人难以想象’的灾难,还好法官没有这么做。Bret Bocchieri表达了这样的观点,他是来自一家名为Seyfarth Shaw LLP的国际法律公司的知识产权专家律师。

更重要的是,Alsup法官的裁决让全世界范围内的软件公司和独立开发者们都松了一口气。在软件世界里,复用API是非常普遍的行为。例如,一些云 计算平台,就模仿了Amazon所拥有的著名的云计算架构ECC(Elastic Compute Cloud)的API形式。API是应用程序的可编程接口,是不同软件之间交互的重要方式,行业内普遍默认对接口的组织和使用并不会触犯到版权保护法律。 Oracle对这个默认规则的挑衅,至少在业界引发了巨大的争议。周四,Alsup法官的裁定结束了这些纷争。

“如果Oracle的观点得到认同,那么着就意味着任何人都能给自己实现的系统或功能加上版权,同时,他还能够根据版权的保护条例禁止其他任何人用 他们自己的方式实现跟你的系统和功能相同的软件。(也就是说,这种软件只能有版权的人做,其他人会做都不能做——译者注)”在法官的41页的简报里,他写 到:“没有任何理由可以支持这种极端的提议。”

Alsup法官 为了审案甚至亲自学习了Java编程

Ed Walsh,一位来自于Wolf Greenfield国际法公司的律师,表示他对这样的裁定并不感到惊讶。但是他同时也指出,这个裁定并不意味着从此以后API就不受版权的约束了。 Walsh认为,Alsup法官部分出于Sun公司的原因,帮了Google一把,允许Google复制API。Sun公司才是Java真正的创始者,后 被Oracle收购,而后Oracle才取得了Java的版权并起诉Google.

“我认为有一些因素对裁定结果产生了影响,那就是Sun公司原先是允许人们随意使用Java的”,Walsh说,“所以Oracle不能用版权去限制这些本来就已经开放的事物。”

Catherine Lacavera, Google的诉讼代表,也表达了同样的观点。“这个判决重申了我们长期以来对法律的理解,这些API是可以被所有人自由使用的,正如我们使用它一样,我 们采用了这些功能的声明,并自己独立实现这些声明所包含的功能代码。”,她说,“这就是开发者使用Java的正常模式,你不能说,一种语言是可以自由使用 的,然后又禁止人们使用这种语言的名词或者动词。”

Alsup法官则考虑得更细,他使用了大量的细节来描述什么是Java API以及在法律范围内这些API应当如何对待。他所提出的图书馆的比喻非常经典。但是他可不是仅仅停留在比喻的层面上。他似乎真的理解什么是API.他 也很清楚复制一个接口(Interface)和复制实现接口的代码,这两个概念是有区别的。

“每个成员方法(Method)和类(Class)都是用来实现特定的功能的,因此,‘声明’(或者说‘头文件’)所包含的代码必须和实现功能的代码一致”,Alsup法官在做出图书馆的比喻后还这样说过。

2008年时,Java共包括166个API, 涉及到该600个类,6000多个方法。 Google复制37个API包(package)的名称和操作方式,但是Google用自己的代码对这些方法和类进行了实现。

在诉讼中,Oracle的法律顾问Mike Jacobs常说,构建API就像是进行交响乐创作,或者是,是的,就像是绘制一幅优美的画作一样。Alsup法官当然意识到了开发API是一种创作性行 为。但是他也为这种行为加上了概念性的级别,API这样的发明只能由专利权来保护(而不是知识产权)。Oralce当然也从专利权的角度进行过诉讼,但是 同样没有成功。

Java依赖一种特殊的“词汇表”一样的组织形式,称之为“方法规格说明书(method specification)”,程序员这通过这个说明书告诉计算机需要做什么事情。Alsup法官表示,根据美国版权法案,无论“方法规格说明书”是如 何地有创意,任何人——包括Google——都有权利使用相同的“方法规格说明书”,只要他们对“方法规格说明书”中定义的方法的实现代码不同。“方法规 格说明只是一种‘概念’,方法本身的实现才是具体的表达。法律不能让任何人对‘概念’进行垄断”。Alsup法官如此写道。

法官说,目前还没有哪个上诉法庭或者地区法院对API受版权保护一事做出裁决。但是他也的确参照了其他的案例进行判决,包括1879年最高法院裁定 Baker针对Seldon的诉讼——这是一场讨论关于会计技能是否受版权限制的官司。法院最后裁定会计记账方法学只受专利权的约束,而不受版权的约束, 因为一旦判决其受版权法约束,将会“极大挫伤出版业的积极性”。

“Baker的案例已经很久远了,但是这个案例并不过时。相反,即便是在当代,Baker案也会被告到上诉法庭才能有最终裁定。”

他还引证了1994年苹果公司针对微软公司的诉讼案,1992年冠群电脑国际有限公司(Computer Associates International)针对Atari的官司,以及1985年Whelan Associates, Inc. 针对 Jaslow Dental Laboratory, Inc.的诉讼案,所有的这些案件都是关于计算的各个方面是否违反版权的。Alsup得出结论:如果一个概念有不只一种表达方式,那么没有人可以申请对概念本身的版权。

名称和短语都是不受版权保护的,他说,版权保护的范围不会延伸到任何概念,过程、进程、系统、操作方法,或者观念——无论以任何形式。他还说,对实现互用性所必要的功能性元素不受版权限制。这里就包括了Java API.

从很多方面来说,Google和Oracle的官司的结果并不让人激动。但是从某些方面来讲,这个案子又远远超传统的意义。该案的亮点在于,Alsup法官告诉法庭,他自己为了审案而学习了Java编程,这给了Oralce一记响亮的耳光,别想用技术蒙蔽法官的双眼。 回顾这长达6周的诉讼,在法庭上,Alsup法官多次向双方的律师和技术证人提出各种专业而尖锐的问题,这真是非常精彩的表现!我们信任这样的法官!在他 的裁决书里,他甚至自己写出了各种代码,来演示方法(method)、类(class)和包(package)的具体概念。并且,最后,他做出了正确的判 决!

英文原文:Caleb Garling  编译:伯乐在线 – 黄小非