提起开源,这并不是一个新概念,早在上个世纪八九十年代,开源软件就已经兴起。当时,开源软件比较小众,只受到少数狂热的开发者的追捧。近几年,随着信息产业的发展,IT产业逐渐向服务化转型,用户不需要购买软硬件而是通过互联网向厂商订购所属的应用软件服务。IT厂商更加重视商业模式创新,越来越倾向于通过服务收费,而不是贩卖软硬件收费。这种商业模式的兴起,为开源软件的发展创造了更好的发展环境。开源在移动互联网、云计算、物联网、大数据等重要领域成为主流的开发模式。然而,开源软件的知识产权风险一直是困扰参与开源软件开发的厂商的一个重要问题,我国很多企业尤其是刚刚参与开源的中小型企业对开源软件的知识产权风险认知不足,这将会对我国ICT产业的发展带来很大风险。
一、对开源的理解
开源最初是指软件的开放源代码,后来“开源”也被理解为一种开发模式,开源软件有着独特的盈利模式。笔者认为可从软件开发、软件产权、软件盈利三个角度来理解“开源”的含义。
(1)开源是一种开放式、分布式软件开发模式
OSI主页开头这样写道:“开源是一种软件开发方法,用于集结分散于同行之间的代码审阅以及对于开发流程的透明化。从生产模式来看,是一种过程透明的开放式、分布式的软件开发模式。”开源软件运动的重要推动者EricRaymond将这种模式称为“集市”模式[1]。
开源项目通常有个项目发起人,即开源软件的初始作者。开源软件初始作者可根据自己的偏好或根据未来对软件的规划来选择一个开源许可协议进行许可。初始作者在开源项目托管网址上公布开源软件时,需要对项目有初步设计,包括制定项目计划和规划,以吸引其他开发人员参与贡献。开源项目发布后,可能会有来自世界各地、各个公司不同的开发者贡献代码、提供错误报告、修复漏洞、完善文档等,共同开发项目。各个贡献者之间通过邮件、会议等方式相互交流。开源社区中可能有核心开发者、贡献者、用户等不同角色,所有开源社区参与者根据项目既定规则参与开源项目开发。在开源项目管理上,开源模式与传统的“大教堂”式开发模式不同。开源模式没有严格的流程,在社区里充满了各种不同的计划和方法。
(2)开源是一种独特的产权模式
开源软件不是公共软件,开源软件与专有软件一样,都受著作权法保护[2]。开源软件许可协议正是利用了著作权法赋予作者的权利,使得作者赋予用户的权利在作品及其派生作品的传播过程中可以一直为用户保留下去,包括复制权、修改权和发行权等[3]。开源软件与专有软件的比较见表格1所示,开源许可协议将软件的复制权、修改权、发行权向公众开放,并允许用户直接访问源代码。专有软件一般会提供功能、质量、知识产权等担保,但是大多数开源软件均不提供任何形式的担保,但是企业可以为开源软件提供额外的担保。
表格1 开源软件和专有软件比较
是否享有版权保护 | 是否提供源代码 | 是否可复制 | 是否可修改和制作演绎作品 | 是否可再发布 | 是否保证功能 | |
专有软件 | 享有 | 不一定提供 | 保留 | 保留 | 保留 | 功能、性能较为可靠 |
开源软件 | 享有 | 提供 | 向公众开放 | 向公众开放 | 向公众开放 | 不保证实现功能 |
(3)开源软件有着独特的商业模式
开源软件不等于不能有商业开发。OSI对开源软件的10个定义[4]中,第6条是“不能歧视任何领域”,比如不能不得规定软件不能用于商业目的。在商业开发过程中,开源软件选择盈利模式时,受开源许可协议的限制。不同的许可协议,开发者或公司对项目源代码有不同的控制力,因而能提供的服务也不同。商业软件一般通过控制软件源代码、出售软件许可来获益。开源软件盈利模式多样,主要通过服务商业化模式来获得商业利益。对于一款开源软件,企业也可能会选择好几种盈利模式。开源软件常用的盈利模式包括:硬件捆绑、增值产品、技术支持、广告业务等。
开源这三种模式紧密相关。开源开发模式,保证软件研发顺利进行,是软件质量的保证;开源产权模式是开源社区的基础,如果源代码知识产权出现问题,将给开源盈利带来巨大风险;企业为开源软件找到合适的商业模式,在参与开源中获益,这是企业长期支持开源的动力,也是开源社区能长期蓬勃发展的基础。
二、开源知识产权风险影响因素
2.1 开源知识产权风险
开源软件使用过程中面临的知识产权风险包括版权风险、专利风险、商标风险等。
(1)版权风险
使用开源软件的版权风险来源于两个方面:一是,贡献者将自己不具有版权的代码贡献到开源社区,使得开源软件有版权瑕疵,后续使用者使用该开源软件,就会造成侵犯他人版权。大多数开源许可协议都有“不担保”条款,开源软件的用户使用了“不清洁”的开源软件所造成的侵权责任,需要自己承担。二是,开源软件使用者没有按照开源许可协议的规定使用开源软件,例如,使用GPL许可协议下的代码再发布软件时没有提供源代码,这属于违约行为,会导致许可协议赋予的所有权利被收回,那么对开源软件的复制、修改、发布会造成版权侵权。
(2)专利风险
使用开源软件的专利风险来源于内部、外部两个方面。内部专利风险,是指开源软件的贡献者以个人名义把其中某项技术申请专利并获得批准。有些开源许可协议,如GPL-3.0规定了专利授权,就软件发布者所拥有专利权的程序而言,所有后续使用者都将自动获得免费的专利许可,而且规定了软件发布者不可以发起专利诉讼。然而,部分开源许可协议对专利授权没有明示(如BSD、MIT),这就蕴含了一定的专利侵权风险。外部专利风险,是指不受开源许可协议约束的第三方向开源软件使用者发起专利诉讼,声称其专利被开源软件贡献者使用在开源程序中。不同于版权仅仅保护计算机软件创作的表达,专利能够保护具体的方法和功能。专利享有绝对的排他权,在专利有效期内,权利人能够禁止实施专利技术,即使该技术是他人独立开发的也不例外。
(3)商标风险
使用开源软件的商标风险来源于两个方面:一是,开源软件使用的开源许可协议未经OSI认证,但使用了open source商标。二是,开源软件使用者不按开源许可协议规定,使用贡献者的商标、商号、服务标记等进行软件宣传,导致商标侵权。
2.2 开源知识产权风险影响因素
开源许可协议是分析开源知识产权风险的重点。但是,开源许可协议并不是影响开源软件知识产权风险的全部。开源软件的开发模式、商业使用、产权模式,都对开源软件知识产权风险有一定影响。
(1)开源许可协议
从产权角度来看,开源软件所遵循的开源许可协议不同,开源软件的知识产权风险点不同。
开源许可协议的本质是许可合同,对开源软件的复制、修改、再发布等行为必须遵循开源许可协议的规定,当被许可人违反该条件时,许可协议无效,那么许可协议赋予被许可人的权利自动终止;那么,对软件的复制、修改、再发布等行为就会违反著作权法,造成著作权侵权。
不同的开源许可协议赋予用户不同的权利和义务(如表格2所示),在著作权、专利、商标等方面的规定不同,因此带来的风险也就不同。
在著作权方面,不同许可协议对于软件再发布时的许可方式、是否提供源代码、是否需要对修改做出标示规定不同。例如,GPL许可协议要求: GPL许可的程序的演绎作品整体发布时必须在GPL许可下进行发布,这就是所谓的GPL许可协议的“传染性”。Apache、MIT、BSD则对演绎作品的发布方式没有要求。因此,使用GPL许可协议下的源代码在软件再发布时风险较大。
在专利方面, GPL-3.0、Apache-2.0明示了专利授权并有专利报复条款,MIT、BSD则无规定。GPL-3.0在第11条中明确规定贡献者将程序相关的专利许可给接受者,第10条规定软件发布者不可以发起诉讼(包括互诉或者反诉)主张由于制造、使用、销售、批发或者引进程序或其任何一部分而侵犯了任何专利权。使用GPL-3.0许可下的代码,来自贡献者内部的专利诉讼风险就会比较小。但是,不管哪个开源许可协议,都无权约束第三方,因此即使是GPL许可下的软件,也会受到第三方软件专利的威胁。
在商标方面,Apache-2.0对商标使用做出限制,规定用户使用许可证颁发者的商号、商标、服务标记或产品名称,那么在使用Apache-2.0时,就需要非常注意商标使用规范。
因此,在使用开源软件时,需要首先找出开源软件使用的哪个许可协议以及许可协议的版本,不同版本的许可协议可能存在较大差异,仔细阅读该版本的开源许可协议的条款,严格按照条款规定使用开源软件。
表格2 不同开源许可协议的比较
(2)从开发角度来看,开源社区知识产权管理严格程度不同,开源软件的知识产权风险大小不同。
除了开源许可协议之外,开源社区也会根据社区情况制定知识产权方面的规定。开源软件贡献者向开源社区贡献代码时,需要同时遵守开源许可协议和开源社区的知识产权等规定。这些知识产权规定对于开源软件风险大小也有较大影响。
所有开源软件均面临的版权瑕疵风险,风险大小取决于开源社区的管理和代码审核。例如在Apache社区中,在一个开发人员成为提交者(committer)之前,他必须首先签署一份个人贡献者许可协议(ICLA)并备案,声明将所有贡献授权于Apache软件基金会,并保证这些贡献都是他们自己原创的工作,有权作出如上授权。他必须保证该贡献没有侵犯第三方的知识产权。如果一个开发者自己并不拥有对自己工作的这种权利(例如,一个商业公司对雇员工作拥有权利),那么还需要商业公司的代表)签署一个企业贡献许可协议(CCLA)。这就使得Apache基金会所属的项目对用户来说由于版权瑕疵带来的侵权风险小的多。
(3)从商业使用来看,企业对开源软件的利用方式不同,开源软件的知识产权风险不同。
如果企业仅仅作为最终用户单纯地运行开源软件的可执行形式,那么使用开源软件的风险很小。如果企业修改了开源软件但是不发布,仅供企业内部使用,如搭建一个网站提供网络服务,这种情况开源软件的风险也很小(但是AGPL除外)。如果将开源软件原封不动或部分修改之后包含在自己的产品中进行再发布,这样的使用风险最大,企业在使用时必须遵守开源许可协议规定,对产品进行再发布。
三、结束语
开源软件是受著作权法保护的软件,开源软件不意味着可以任意使用。开源许可协议在赋予用户复制权、修改权、发布权的同时,也规定了用户必须遵守的义务。企业在使用开源软件过程中,首先要尊重开源软件的知识产权,按照许可协议的规定复制、修改、再发布开源代码。除此之外,企业在向国际开源社区贡献代码时,需要研究开源社区的知识产权规定,分析这些规定给企业带来的知识产权风险。最后,在利用开源软件进行盈利时,要注意盈利方式的选择要和开源许可协议相匹配。
参考文献
[1] ERIC S. RAYMOND著, 卫剑钒译. 大教堂与集市: ISBN 978-7-111-45247-8[M]. 北京: 机械工业出版社, 2014,1.
[2] 张平, 马骁. 共享智慧——开源软件知识产权问题解析: ISBN 7-301-09798-0:[M]. 北京: 北京大学出版社, 2005,12.
[3] 蔡俊杰等. 开源软件之道: ISBN978-7-121-10483-1:[M]. 北京: 电子工业出版社, 2010,4.
[4]http://www.opensource.org/docs/osd