应用程序界面(API)的版权侵权问题研究——兼评甲骨文诉谷歌Java版权案

2016-03-19 21:00:21楼婕
电子知识产权 2016年10期
关键词:版权法著作权法代码

文/楼婕

应用程序界面(API)的版权侵权问题研究——兼评甲骨文诉谷歌Java版权案

文/楼婕

计算机应用程序界面(API)是指软件与其他系统的交接部分,在计算机系统的兼容互联中起到了重要作用。复杂的应用程序界面代码本身属于具有独创性的表达,但大部分应用程序界面代码是由界面编程规则、标准、功能需求等因素来决定的常规表达或者有限表达,根据混同原则、场景原则在一般情况下应用程序界面代码不受著作权法保护。特殊情况下应用程序界面代码受著作权法保护,但以软件兼容为目的使用应用程序界面信息属于合理使用,不构成著作权侵权。

应用程序界面;思想表达二分法;合理使用

一、引言

2016年5月,美国加州北区法院在重审中认为谷歌对Java 应用程序界面(API)的使用属于合理使用,谷歌等使用者可暂时因合理使用免于侵权之不利后果。历时六年的Java版权案使API的可版权性受到热议。

在Java版权案中,谷歌使用Java语言开发安卓系统时,复制了37个Java API1API是Application Programming Interface的缩写,即应用程序编程界面。包的SSO2SSO是structure, sequence and organization的缩写,即“结构、序列与组织”。与7000条代码行(占Java API包代码行的3%),这部分相同代码行是规定方法和类别的名称、参数与功能的“声明”。但谷歌为实现相同功能在方法体中所编写的实现代码与Java都是不同的。3Java API包是以“类别”来编写的,“类别”可以分解为“方法”,所有的操作功能都是由“方法”来呈现的。此外,谷歌称复制“声明”和SSO是为了实现Java与安卓系统的兼容。该案中,地区法院认为API包不受版权法保护,因为根据Java规则为实现特定功能的“API声明”只能是相同的,且被复制的声明是由一段段的短语组合而成不符合独创性要求,而SSO是一种操作方法,两者都不受版权法保护,而且为实现兼容这种复制是必需的。4Oracle America, Inc.v.Google, Inc., 872 F.Supp.2d 974 (N.D.Cal.2012).但联邦上诉法院推翻了地区法院的判决,认为尽管API具有功能性但仍然受版权法保护,地区法院错误理解了混同原则的适用条件,且谷歌复制7000条代码是否含有短语与Java API的可版权性无关。谷歌声称的兼容目的是合理使用的考虑因素而与界面是否享有版权无关,并要求地区法院对谷歌的复制行为是否构成合理使用重新进行审理。5Oracle America, Inc.v.Google, Inc., 750 F.3d 1339 (Fed.Cir.2014).法庭之友在向美国最高院递交的书面意见中,对上诉法院的判决提出了质疑。法庭之友认为上诉法院将Java API纳入版权法保护是对美国版权法保护范围的不当扩张,这不仅限制了美国版权法第102条第b款的适用且错误理解了混同原则。6Samuelson, Pamela, Google, Inc.v.Oracle America, Inc., United States Supreme Court No.14-410, Brief of Amici Curiae Intellectual Property Professors in Support of Grant of Petition for a Writ of Certiorari to the United States Court of Appeals for the Federal Circuit (November 14, 2014).UC Berkeley Public Law Research Paper No.2524672, at http://ssrn.com/abstract=2524672 Oct.1, 2016.然而,美国联邦最高法院最终仍是以驳回谷歌再审申请的方式维持了上诉法院认为Java API受版权法保护的判决。

应用程序界面(API)是指软件与其他系统的交接部分,它是一组定义、程序以及协议的集合。计算机软件系统之间通过API来实现通信互联,Java API就是一种常用的应用程序界面。在计算机系统的兼容互联中应用程序界面起到了重要作用,但应用程序界面能否受到著作权法保护一直存在争议。本文在厘清应用程序界面代码性质的基础上,通过“思想表达二分法”对应用程序界面代码的可著作权性及合理使用的界限进行分析,并对Java版权案进行评析。

二、应用程序界面代码的独创性分析

应用程序界面是用于衔接计算机系统各部分的约定,由代码编写而成。应用程序界面的代码基本可以分为两类:一类是用于调用界面函数、实现界面功能所必要的实现代码,另一类是用于描述界面的声明代码(即“声明”)。应用程序界面的“声明”保存在头文件7头文件主要用于保存程序的声明。声明和头文件可以作为同义词理解,Java版权案的判决就交叉使用了这两个术语。中,其中并没有可执行的代码。

学界对于实现代码是计算机程序的一部分属于表达并无争议。但对于“声明”是否属于表达则有不同意见。有观点认为我国著作权法所保护的计算机程序限于可执行的代码化指令序列,因此没有可执行代码的声明不属于受著作权法保护的表达。8转引自朱泉峰:《该不该保护“头文件”》,载《计算机世界》2005年6月27日第A14版本。也有观点认为声明虽然不具有可执行的代码但其属于《计算机软件保护条例》中所规定的符号化语句序列,依然属于受保护的表达。9张吉豫:《软件接口代码可著作权性研究——兼评〈著作权法〉第三次修改草案“反向工程条款”》,载《吉林大学社会科学学报》2013年第1期。笔者认为“声明”的表现形式是代码,而代码是对抽象思想的具体表达,因此声明自然属于表达。而且根据TRIPS协议的规定,计算机程序的表达为代码(源代码和目标代码)10《与贸易有关的知识产权协议(TRIPS)》第九条第二项、第十条第一项,1994年4月15日。,此与代码是否可执行并没有关联。因此,笔者认为应用程序界面代码(声明与实现代码)属于表达。

著作权法保护的是有独创性的表达,有观点认为界面代码缺乏独创性而不受著作权法保护。在Java版权案中,地区法院认为谷歌所复制的7000行声明代码是由如“java.lang.Math.max”等一段一段的短语所组成,而短语因很难符合独创性要求在一般情况下不受版权法保护。11Oracle America, Inc.v.Google, Inc., 872 F.Supp.2d 974, 976 (N.D.Cal.2012).上诉法院推翻了这部分判决,认为地区法院没有意识到声明代码是否由短语组成与其是否受版权法保护无关,由短语组成的具有独创性的表达仍然可以受到版权法的保护。比如狄更斯·查尔斯写的《双城记》就是由短语组成,但没有人会因为这部作品能被拆分成短句就认为它不受版权法保护。因此,问题的关键在于短语的组合或者使用方式是否体现了独创性。12Oracle America, Inc.v.Google, Inc., 750 F.3d 1339, 1362-1363(Fed.Cir.2014).笔者赞同上诉法院的观点,应用程序界面代码是否具有独创性需要对个案代码进行“整体”分析。通常情况下,程序界面是由大量且复杂的代码构成。如Java API由166个包组成,这些包被分为600多个类别,这些类别又可以进一步分成6000多个方法。地区法院在一审判决中将API比作图书馆,将166个包比作图书馆中的书架,将类别比作每个书架上的书,并将方法比作书中的“如何做”章节。13Oracle America, Inc.v.Google, Inc., 872 F.Supp.2d 974, 977 (N.D.Cal.2012).由此可见,Java API的构成是极其复杂的。因此,类似Java API的复杂的程序界面代码显然符合独创性的要求。而如用print代码表示输出,用student表示学生,此类简单的界面代码组合则不具有独创性。

综上所述,笔者认为应用程序界面代码(包括实现代码和“声明”)是计算机程序的一部分,其中复杂的程序界面代码是具有独创性的表达。

三、“思想表达二分法”对应用程序界面代码的适用

虽然应用程序界面代码属于具有独创性的表达,但是应用程序界面能否受到著作权法的保护还是要依据“思想表达二分法”这一基本原则进行分析。“思想表达二分法”是指著作权法的保护范围限于表达而不及于其中的思想。

计算机程序的编写不同于一般作品的创作。在多数情况下,计算机程序要实现特定的功能其代码就必须按照现有编程规则进行编写。事实上,程序员的自由编写代码在多数情况下仍然是受限于外部因素的,这些外部因素包括(1)能够使计算机运行特定程序的计算机机械参数,(2)为兼容其他程序所必需的代码,(3)计算机(硬件)制造者的设计标准,(4)所服务的行业的需求(即用户需求),(5)计算机领域中被广泛接受的编程规则。143 Melville B.Nimmer & David Nimmer, Nimmer on Copyright §13.03[F][3], at 13-66-71(1991).See also Computer Assocs.Int'l, Inc.v.Altai, Inc., 982 F.2d 693, 709-710 (2d Cir.1992).而相较于一般的计算机程序,编写应用程序界面代码所受到的限制会更多。

(一)混同原则的适用

Java版权案中,地区法院认为无论Java方法规范15每个方法的“声明”由方法规范(method specification)进行定义。的独创性程度有多高,只要逐行的实现代码不同,任何人都有权使用相同的方法规范(输入、输出、参数)。因为根据Java规则,为实现特定功能程序员必须使用相同的声明代码或头文件来声明方法,所以根据混同原则版权法不能禁止他人使用相同的声明代码。16Oracle America, Inc.v.Google, Inc., 872 F.Supp.2d 974, 998 (N.D.Cal.2012).地区法院所适用的混同原则由思想表达二分法衍生而来。17“混同原则”是指:当某种“思想”只有一种或极其有限的表达时,这些表达也被视为思想而不受保护。在计算机程序中,混同原则是指当特定代码行是实现某项功能的仅有且必要的表达方式时,在后使用人使用该特定代码行不构成版权侵权。18Computer Associates International, Inc.v.Altai, Inc., 982 F.2d 693, 708 (2d Cir.1992).我国《计算机软件保护条例》第二十九条就吸收了混同原则。在九十年代中期的美国SST公司诉SP公司传真机链接规程版权案中,法院就以混同原则认定应用程序界面信息不受版权法保护。法院认为“链接规程”编码表现形式有限,被告SP公司要履行规程须满足已经设定的标准,并无充分的选择余地,因此“链接规程”不受版权法保护,而该案中的“链接规程”正是应用程序界面信息。19转引自朱泉峰:《该不该保护“头文件”》,载《计算机世界》2005年6月27日第A14版本。

应用程序界面代码是由编程规范与特定的运行参数共同决定的。20张吉豫:《软件接口代码可著作权性研究——兼评〈著作权法〉第三次修改草案“反向工程条款”》,载《吉林大学社会科学学报》2013年第1期。其中,编程规范是一种被行业广发采纳的通用编程技术。一般情况下,在编程规范的要求下,受到界面的功能需求、程序运行效率、书写习惯等因素限制,应用程序界面代码的表达方式与界面的结构、序列与组织都是非常有限的,那么根据混同原则这一类界面代码也不受著作权法保护。而界面函数等运行参数的表达方式就更为有限,函数的名称、类型以及参数列表在大多数情况下只有唯一的表达方式,那么根据混同原则这一类运行参数也不受著作权法保护。而且,最高院在对广东高院的复函中也已经明确指出运行参数是软件编制过程中的思想而非表达21《最高人民法院关于深圳市帝慧科技实业有限公司与连樟文等计算机软件著作权侵权纠纷案的函》,(1999)知监字第18号函),2000年4月7日。。在惠斯特诉斯惠特案22北京市海淀区人民法院(2007)海民初字第16977号民事判决书。中,法院也认为程序中的参数、变量都不受著作权法保护。

因此,笔者认为在一般情况下,为实现特定功能的应用程序界面代码因表达方式有限而不受著作权法保护。

(二)场景原则的适用

Java版权案中,谷歌及部分法庭之友认为:在编程过程中,程序员已经习惯使用Java API包,这些API包就像是表达程序平台所不可缺少的通常元素一样,因此根据场景原则Java API应当被视作思想而非表达。23Oracle America, Inc.v.Google, Inc., 750 F.3d 1339, 1363-1364 (Fed.Cir.2014).尽管两级法院都认为Java API包不适用场景原则,但是笔者认为场景原则仍然适用于应用程序界面的可著作权性分析。

场景原则同样是由思想表达二分法衍生而来的。所谓场景原则,是指当作品的表达元素是描述一个特定主题所需的标准性的、基本的、或者常见的元素时,或者这些元素是描述该特定主题所必需的元素时,这些作品元素是不受版权法保护的。24Mitel, Inc.v.Iqtel, Inc., 124 F.3d 1366, 1374 (10th Cir.1997).在计算机程序中,根据场景原则,版权法不保护由外部因素所决定的程序元素,例如可以使计算机运行特定程序的计算机机械参数,或者是那些在计算机领域中被广泛接受的编程规则。25Softel, Inc.v.Dragon Med.& Scientific Commc'ns, 118 F.3d 955, 963 (2d Cir.1997).在易保诉中科软案26北京市海淀区人民法院(2007)海民初字第8846号民事判决书。中,被告中科软公司在编写交强险系统的界面说明时使用了原告所编写的现有界面设计,遂被起诉。被告认为界面说明本身就必须符合编纂文件系统所必需的固定标准,不受著作权法保护。这个观点得到了法院的支持,法院认为界面信息是用于协调互联网中不同系统、机构的定义程序的一组协定,界面说明为编程提供了必要信息与操作说明,它们属于思想而不受著作权法的保护。该案中,由这些固定标准所决定的界面说明代码就相当于“标准场景”而不受著作权法保护。

因此,笔者认为在一般情况下,应用程序界面代码中由编程标准决定的“标准代码”不受著作权法保护。

(三)例外情形:应用程序界面代码受著作权法保护

在上述情形之外,仍存在着一种特殊情况,当某种应用程序界面代码符合独创性要求且不适用混同原则和场景原则时,此类应用程序界面代码仍然能够受到著作权法的保护。

Java版权案中,美国最高院支持了上诉法院认为Java API受版权法保护的判决。上诉法院推翻了地区法院对混同原则的适用,认为应当以作品创作时可选择的表达方式种类来判断能否适用混同原则,而不能以后人复制时的可选择性来判断。如只有在升阳/甲骨文在编写Java API包时仅有一种或几种有限的方式编写声明代码,才能适用混同原则。地区法院以谷歌复制Java API声明时代码的表达方式情况来分析能否适用混同原则是错误的。证据显示升阳/甲骨文公司在选择和编排谷歌所复制7000行代码行时有“无限”种选择,因此Java API声明代码不适用混同原则。27Oracle America, Inc.v.Google, Inc., 750 F.3d 1339, 1361 (Fed.Cir.2014).该案中,地区法院和上诉法院都认为Java API声明不适用场景原则。地区法院提到,要适用场景原则就必须证明Java API包的类别中的方法或者那些声明代码的编排具有可预期性且是一种编程惯例,但是谷歌无法证明这一点。更重要的是,将Java API包的类别和内容作为具有“典型”意义的界面类别(即同种类的界面类别的标准规范)是不现实的。28Oracle America, Inc.v.Google, Inc., 872 F.Supp.2d 974, 999 (N.D.Cal.2012).上诉法院支持了地区法院的意见,并提到按照场景原则,他人使用那些由排除在作者创造力之外的因素决定的表达不构成版权侵权。而适用场景原则的时间点应当是程序创作时而非复制行为发生时,即应当以升阳编写类别、方法和代码的时间来分析能否适用场景原则而非谷歌复制这些内容和代码的时间点来分析。29Oracle America, Inc.v.Google, Inc., 750 F.3d 1339, 1364 (Fed.Cir.2014).

综上所述,笔者认为应用程序界面的可著作权性要分两种情况进行讨论:第一,此类应用程序界面代码尽管本身符合独创性表达的要求,但因为受编程规范、界面设计的特定参数等因素的限制使其表达方式十分有限,而且这些代码是由固定的编程标准所决定的“标准代码”,因此根据混同原则与场景原则,此类应用程序界面代码不受著作权法保护;第二,此类应用程序界面不仅符合独创性表达的要求并且不适用混同原则与场景原则,因此此类应用程序界面代码仍然能够受到著作权法的保护。但第二类情形应当是属于极个别的特例。

四、以兼容为目的使用应用程序界面构成合理使用

Java版权案中,谷歌以Java语言编写安卓系统,并称使用Java API的声明代码和SSO的目的是实现软件兼容属于合理使用,地区法院在重审中支持了该观点。兼容目的是否能够构成合理使用,还是要从合理使用的适用要件进行分析。

《伯尔尼公约》、《与贸易有关的知识产权协议》和《世界知识产权组织版权条约》均规定了合理使用只能在特殊情况下做出、与作品的正常利用不相冲突,以及没有无理损害权利人合法权益的三个前提,即“三步检验标准”。我国也已将该标准转化为国内立法,为法院判决的最终标准。30王迁:《知识产权法教程(第四版)》,中国人民大学出版社2014年版,第220页。以Java版权案为例,对“三步检验标准”的适用进行分析:第一,谷歌耗时两年半的时间编写了执行代码,仅仅只是复制了API包中比例极少声明代码和SSO,且谷歌使用Java API“声明”和SSO是为了实现兼容,这自然是非常特殊的情况;第二,谷歌使用界面信息开发软件系统与甲骨文使用Java API并没有关联,不会产生冲突。第三个步骤比较复杂,可以参考美国《版权法》第107条合理使用的四个判定因素来考量:

第一,使用的性质和目的。谷歌使用界面信息是为了实现安卓系统与Java程序的兼容。尽管谷歌的最终目的是开发自己的软件系统,该行为具有商业性,但是兼容是互联网产业发展的基础,如果仅仅因为开发软件的行为具有商业性而不允许以兼容为目的使用相关信息将会严重阻碍互联网产业的发展。

第二,被使用作品的性质。前文已经分析Java API享有版权,但是界面的用途仅限于软件兼容,它对于软件运行一般不会产生影响。

第三,使用部分的数量和重要性。谷歌使用的代码行只占Java API代码行的3%,且这些代码行都属于程序的“声明”非实现代码。谷歌使用的SSO在Java API中所占的比例也非常小。“声明”和SSO中都没有可执行的代码,而能够实现软件功能的代码是实现代码。

第四,使用作品对于该作品潜在市场和价值的影响。谷歌使用Java API并不会影响Java程序的开发,界面的功能性限于兼容并不会影响整个软件的功能。

从这四个因素的分析来看,谷歌使用Java API对甲骨文公司几乎不会产生任何不利的影响,也并没有无理损害权利人合法权益。反而,若认为这种以兼容为目的使用应用程序界面信息不符合合理使用而构成著作权侵权的话,却可能会阻碍计算机产业的发展。因此,笔者认为以兼容为目的使用应用程序界面信息属于合理使用。

从相关立法、判例来看,美国、欧盟与我国都认为以软件兼容为目的使用相关必要信息属于合理使用。美国《数字千年版权法(DMCA)》中第1201条第f项规定为确定和分析程序兼容的必要信息可以规避已经有效控制该程序的技术措施。在莲花诉波兰德案31Lotus Dev.Corp.v.Borland Int'l, Inc., 49 F.3d 807 (1st Cir.1995).中,波兰德公司在开发表格处理软件时使用了莲花Lotusl1-2-3软件的菜单命令层次结构,目的是让已经习惯操作Lotus1-2-3软件的用户可以方便操作波兰德开发的新软件,上诉法院认为菜单命令层次结构属于操作方法不受版权法保护。该案中的菜单命令层次结构就是一种图形用户界面,即连接计算机操作系统与用户的界面,波兰德公司复制该界面就是为了实现新软件与用户之间的兼容。上诉法院判决的共存意见也明确指出波兰德以兼容为目的复制行为是被允许的。欧共体理事会在1991年通过的《计算机程序保护指令》的第六条也规定了为了获得开发兼容程序的必要信息是可以不经许可对程序进行反向工程的。32转引自韦之:《欧共体计算机程序保护指令评介》,载《中外法学》1998年第6期。我国现行著作权法虽然未将兼容目的使用纳入合理使用的情形中,但从相关案例与立法草案来看我国也是允许未经许可使用兼容必要信息的。在前文提到的易保网诉中科软案33北京市海淀区人民法院(2007)海民初字第8846号民事判决书。中,法院认为被告使用界面信息是为了保证原告所研发的平台数据库与相关公安机关、保险公司的系统兼容互联,以实现信息共享,要实现该目的相关系统就必须要遵循统一的标准。而软件兼容是计算机行业发展的重要因素,如果不允许他人使用相应的界面信息将会阻碍整个行业的健康发展。在汇天奇诉博庭案34唐善新、林广海:《最新知识产权典型疑难案例判解》,法律出版社2008年版,第227页。中,被告在开发“飞狐交易师”证券投资软件时使用了原告“分析师”软件的扩展界面程序文档,法院认为应用程序界面文档的功能是定义规范,被告是在自己的程序中复制了原告的扩展界面程序,不过是给原告的老用户们更多的选择,这种行为应当是合理且符合软件行业发展趋势的。在英特尔诉东进案35广东省深圳市中级人民法院(2005)深中法民三初字第328-1号民事裁定书。中,东进公司在开发DN系列语音卡时使用了英特尔SR5.1.1产品的头文件信息,目的是使两种产品能够相互兼容。英特尔以著作权侵权起诉东进,虽然该案最终以和解结案,但曾引起热议。主流观点是头文件是软件兼容的必要信息,东进公司使用头文件的行为符合公平竞争原则。此外,我国《著作权法(修订草案送审稿)》第四十六条第一款也提到为了获取兼容信息可以不经许可复制和翻译程序中与之相关的内容。36《中华人民共和国著作权法(修订草案送审稿)》第四十六条第一款:计算机程序的合法授权使用者在通过正常途径无法获取必要的兼容性信息时,可以不经该程序著作权人许可,复制和翻译该程序中与兼容性信息有关的部分内容。http://www.chinalaw.gov.cn/article/cazjgg/201406/20140600396188.shtml 最后访问时间:2016年10月21日。可见,无论是美国、欧盟还是我国在未经著作权人许可的情况下,都是允许他人以软件兼容为目的使用相关必要信息的。

综上所述,笔者认为以实现软件兼容为目的使用应用程序界面信息属于合理使用。Java版权案中,谷歌使用Java API包的声明代码行与SSO是为了让相关应用程序能够在由Java语言编写的安卓系统上运行,即实现程序与系统的兼容,因此笔者认为该复制行为应当属于合理使用,不构成版权侵权。

五、结论

计算机环境中,应用程序界面实现了不同系统之间的兼容互联,而软、硬件兼容是整个互联网产业发展的基础。应用程序界面代码属于计算机程序,其中复杂的界面代码符合独创性表达的要求。但在界面代码编程标准、规则、功能需求等因素的限制下,大部分应用程序界面代码的表达或是十分有限或是常规套路,因此根据混同原则和场景原则,一般情况下应用程序界面代码不受著作权法保护。但是仍然存在既符合独创性要求又不适用混同原则与场景原则的应用程序界面代码,此类应用程序界面代码仍然受到著作权法保护。其中以兼容为目的使用应用程序界面信息符合合理使用的要求。因此,在Java版权案中谷歌为了实现应用程序与安卓系统的兼容而使用Java API声明与SSO属于合理使用,不构成版权侵权。

Study on the Copyright Issue of the API——Comment on the Case of Java

Application programming interface is a transfer part of software and other systems, which plays an important role in the compatibility.Complicated API code is the original expression, but it is always limited by the programming rules, standards and functional needs.So API code is not protected by copyright law according to the merge doctrine and scènes à faire doctrine.API code is protected by copyright law in some particular situation, but the compatibility purpose use of API code is fair use,which is not copyright infringement.

API; Idea-Expression Dichotomy; Fair Use

楼婕,华东政法大学知识产权学院。

猜你喜欢
版权法著作权法代码
新《著作权法》视域下视听作品的界定
置于语境或断章取义:法律解释与澳大利亚版权法
法律方法(2021年3期)2021-03-16 05:57:20
创世代码
动漫星空(2018年11期)2018-10-26 02:24:02
创世代码
动漫星空(2018年2期)2018-10-26 02:11:00
创世代码
动漫星空(2018年9期)2018-10-26 01:16:48
创世代码
动漫星空(2018年5期)2018-10-26 01:15:02
版权法的现实困境与未来展望
--评《版权法之困境与出路:以文化多样性为视角》
传媒(2017年21期)2017-11-22 02:36:56
论版权转让登记的对抗效力——评著作权法修改草案(送审稿)第59条
知识产权(2016年4期)2016-12-01 06:57:54
欧盟知识产权局网站新增成员国版权法专题页面
论对“一台戏”的法律保护——以《德国著作权法》为参照
知识产权(2016年10期)2016-08-21 12:41:06