分享

开源软件涉及的专利问题探讨

 豆豆samuel 2019-04-11

摘要

开源软件追求的是自由共享,而专利对技术提供专有保护,二者在软件技术的发展历史中相互碰撞甚至对立。在软件技术飞速发展的今天,开源软件和软件专利不可避免地交织在一起,并在既有的规则下按照不同的方式推动软件技术的发展。软件企业在参与软件开源的同时,也在利用专利来保护自身的技术创新,维持核心竞争力。本文对于开源软件相关的专利事宜进行介绍,以期望对企业的软件技术发展和保护有所助益。

关键词:开源软件 开源协议 专利 

一、简要介绍

人工智能等信息化产业在实践中逐渐深入突破,软件技术得到更多应用,开源软件也迅速发展。开源软件追求的是“自由共享”,而专利制度着重于创新者对于技术的专有。自由共享与专有之间彼此对立,因此开源软件曾经被视为知识产权的癌症。然而,开源软件正在吸引着诸多技术专家和软件类企业,专注于提供商业软件的追求专利保护的软件企业也加入到开源软件行列中。例如,微软公司已经成为开源平台GitHub上贡献第一的公司,其在参与软件开源的同时每年也在申请大量的专利。

开源软件和软件专利平行发展,并在现实中进行融合和协作,一起促进相关技术的发展。下面简要介绍开源软件和软件专利本身、开源软件中针对专利的规定、开源软件实施中存在的专利风险、以及专利申请时考虑到开源软件的策略选择。

二、知识产权与开源软件的对立与融合

软件开源和专利权看似是处于对立的两端,但是其实是在不同的角度来发展和保护软件技术。专利法为开源软件的贡献者提供专有保护以促进其创新研发的积极性,开源软件通过共享源代码来促进软件技术的发展。此外,开源软件迅速发展的原因也许在于开源软件的技术共享极大地促进了相关产业的发展,而相关产业的发展为软件企业、软件技术专家等提供了新的机遇。

(一)开源软件中的知识产权

开源软件包括开放计算机软件(简称软件)的源代码。所开源的软件是具有“作品性”和“技术性”双重属性的特殊知识产权客体,能够用著作权法和专利法进行双重保护。著作权所保护的是计算机软件的创作的表达,专利权保护该创作背后的技术构思、操作方法、甚或软件与硬件结合而产生的新技术。因此,著作权和专利权在不同的维度保护软件,且二者保护的是对软件的专有权。

专利申请人就软件中的技术方案申请专利并获得授权之后即获得专利权。专利权人对其专利具有占有权、使用权、收益权、处分权、标记权等。专利享有绝对的排他权,在专利有效期内,权利人能够禁止他人实施专利技术。而且,申请软件相关的专利通常不需要提供软件程序的源代码,从而可能保守与软件相关的商业秘密。中国早在1993年的专利审查指南中明确规定了针对“含有计算机程序的发明专利申请的审查”,即明确了可以对计算机软件进行专利保护。世界上的很多其他国家和地区也都建立了针对软件的专利保护制度。软件在创作完成之后即拥有著作权,并通过计算机软件的登记加强了对应的保护。软件的著作权包括对计算机软件的发表权、开发者身份权、复制权、展示权、发行权、修改权、翻译权、注释权、使用许可权、获得报酬权、转让权等,其保护期限是50年。除了专利权和著作权之外,开源软件还涉及商标、商业秘密和不正当竞争等法律问题[1]。

(二) 软件开源的机制

开源软件的源代码开放使得全球的程序员可以复制、修改、再发布开源社区的源代码。即,其他的程序员可以复制已公开的源代码,可以针对源代码进行修改来满足自己的工作需求,可以在已公开源代码的基础上拓展软件技术研发来丰富软件功能,并且还可以再发布修改后的源代码和拓展的源代码以供其他程序员使用。相应地,开源软件产品的著作权属于所有参与开发的主体,而不属于某个特定主体。这使得在前的软件研发结果可以为后人所用,避免了重复劳动,并且不同程序员之间的协作降低了技术积累的难度,促进了软件的优化和大型化。因此,开源软件所进行的是技术共享,这种技术共享使得后来的程序员可以在先前的程序员的工作结果的基础上逐步推进,从而实现大型的软件产品。目前各款手机上所使用的安卓操作系统就是开源软件的作品,安卓操作系统极大地推动了手机产业的发展。

(三) 开源协议

专利权等知识产权所保护的是专有权,而开源软件是一种代码共享行为,二者似乎是天然对立的。但实际上,各个软件相关企业一方面积极参与开源软件,另一方面在加大对软件专利的申请和保护,二者已悄然融合于技术的研发进程之中。专利保护与开源软件的融合借助于开源许可协议悄然进行。开源许可协议是在软件开源时所依据的协议,其在用于贡献软件的贡献者和用于获取软件的获取者之间建立了一种合同。开源软件的贡献者和获取者都要遵守对应的开源许可协议,在开源协议的框架中行驶自己的权利并履行自己的义务。此外,如果软件在没有开源许可协议的情况下被无条件地开源,则其进入共有领域,并可能进入一种无序状态。

根据开源许可协议,贡献者可以放弃开源软件中涉及的部分权利,也可以保留开源软件中的部分权利。贡献者放弃对开源软件的权利促进了开源软件的传播,推动了技术的发展;所保留的权利使能够维护贡献者的权益。从后者的角度而言,开源不等于免费,也不等于没有约束。通常,贡献者在开源时放弃了开源软件中的专利的部分收益权、开源软件的著作权中的复制权、获得报酬权等。

三、开源许可协议中关于专利问题的规定

当前存在的开源许可协议有很多,经过Open Source Initiative 组织发布的开源协议目前有80多种[2],并且在OSI网站上列出了受欢迎的或被广泛使用的开源许可协议。各个开源许可协议有不同的规定,例如获取者修改开源代码后是否可以闭源、获取者新增代码是否要采用相同的许可协议、获取者在针对开源软件进行修改之后是否要提供说明性文档、贡献者是否授予所贡献的开源软件中的专利权许可等。针对专利权许可,有的开源许可协议明确规定,有的开源许可协议并不涉及。

(一)贡献者慷慨授予专利许可的开源许可协议

在开源许可协议中明确了贡献者授予专利许可的协议例如包括 Apache License, 2.0(Apache-2.0)、GNU General Public License version 3 (GPL-3.0)、Mozilla Public License 2.0 (MPL-2.0)等,其中对贡献者和获取者二者都有专利权行驶的约束。

作为示例,在开源许可协议Apache-2.0中针对专利许可明确规定了:受限于本许可证的条款,每个贡献者特此授予获取者永久的、全球性的、非排他的、免费的、免许可费的、不可撤销的专利许可证,以制造、已经制造、使用、许诺销售、销售、进口或以其他方式转让作品(即,开源软件),其中该许可仅适用于贡献者单独贡献、或者基于该贡献的作品必定侵犯的专利权利要求;如果获取者对任何实体提出专利诉讼,声称该作品或作品内所合并的各贡献构成直接或共同专利侵权,则根据本许可证授予你该作品的任何专利许可应自提起该诉讼之日起终止。 

可以看出,在Apache-2.0许可协议下,对贡献者而言,需要向获取者免费许可所贡献的软件中的专利使用;对于获取者而言,如果获取者针对贡献者所贡献的软件或相应的衍生软件主张侵权,则贡献者的许可终止,这使得能够降低与开源软件相关的专利诉讼风险,推动开源软件的发展。因此,在Apache-2.0许可协议下,约束了专利权的行驶,从而促进了开源软件的传播和技术共享。此外,在GPL-3.0开源协议中的规定了GPL保证专利不能用于使开源程序用于向获取者收取使用费。

(二)附严格专利许可终止条件的开源许可协议

对于致力于研发商业软件的企业,在对软件进行开源时更为谨慎,其开源许可协议会有较多限制条款。这在Apple Public Source License 2.0(APSL-2.0)、BSD+Patent等中有所体现。

在APSL-2.0中,捐献者在捐献代码所覆盖的捐献者的可用专利权和版权的范围内,授予获取者全球性的、免许可费的、非排他性的许可,但对于获取者的行为有所约束,特别是规定了“对专利许可的限制……(对所贡献软件的)修改和/或更大作品可能需要苹果公司的其他专利许可,对此苹果公司可能会自行决定”。这里的修改是对开源软件的内容的增加、删除、或者对其实质和结构的改变,这里的更大作品指的是超出开源软件的范围的作品。而且,在APSL-2.0中还规定了终止条款“如果获取者开始对苹果提起专利侵权诉讼,该许可和权利授予将无需苹果进行通知地自动终止,前提是苹果公司在该情况中没有首先对你提起专利侵权诉讼”。可以看出,苹果在APSL-2.0开源协议中设置了较多的专利相关条款来保护自己的权益。特别地,通过终止条款来约束获取者不能针对苹果公司发起任何诉讼,而不仅仅限于苹果公司所公开的开源软件和在其所贡献的软件基础上衍生的软件。开源协议APSL-2.0限制了对开源软件的修改、并设置了严格的专利许可终止条件。

上述关于专利的严格规定会阻止开源软件被获取和使用。2017年发生的百度、WordPress等公司弃用Facebook的React开源软件事件就说明这一点。弃用的原因就在于Facebook公司发布的开源许可协议BSD+Patent,其由宽松的开源许可协议3-Clause BSD 外加一份专利授权协议组成。外加的这份专利授权协议与APSL-2.0的终止条款类似,如果获取者开始对Facebook提起专利侵权诉讼,则包括专利许可在内的开源许可协议终止。该条款让百度等公司意识到开源软件的风险,转而研发自己的核心软件技术,以在竞争中占取主动地位。

(三) 未明确涉及专利许可的开源许可协议

部分开源许可协议的规定相对简单,并不涉及专利许可的内容,这些开源许可协议例如包括BSD许可协议、MIT 许可协议等。对于这些开源许可协议,通常默认贡献者授予了获取者专利许可,并且这种专利许可没有附加条件。

作为示例,MIT许可协议中的规定为“将许可免费授予获得了本软件和相关文档文件(“软件”)的任何人,从而没有限制地处理‘软件’,包括不限制‘软件’的使用、复制、修改、合并、出版、发行、再许可和/或销售‘软件’副本,并且允许软件被提供给的人也这么做,但是须符合下列条件:以上的版权声明和本许可声明应包括在软件的所有副本或实质部分中”。

在MIT许可协议中,免费许可任何人处理软件,其条件仅仅是在软件中保留版权声明和本许可声明,所述条件并不涉及专利许可等。基于开源许可协议所倡导的“自由共享”精神,推断在MIT许可协议中进行了免费的专利许可应该是合理的。

基于以上关于开源协议的示例可以看出,贡献者通常免费许可其开源软件给获取者,该许可通过共享软件作品来促进相关技术的发展。但是,企业在承担社会责任的同时,必然会关注自身的发展。企业投入大量成本研发得到的软件,在开源时通过专利相关条款来维护自己的利益,这似乎是情理之中的选择。要注意的是,软件在开源时对软件中涉及的专利的使用权进行了处分,但是其他专利权都还可以正常行使;并且当专利方案被以不同于开源代码的形式进行表达时,其仍然可能处于专利权的制约范围,这是因为专利权所保护的是软件代码背后的构思。

四、开源软件面临的专利侵权风险

软件专利保护的是软件背后的构思、操作方法、甚或软件与硬件结合而产生的新技术。软件技术的发展像其他技术发展一样,在各个领域逐步积累建立了功能强大的软件帝国。在软件的开源被发起的同时,甚至在软件被开源之前,世界上很多国家和地区已经开始软件的专利保护。因此,客观上,软件专利已经根植于各个软件代码之中。

对于开源软件的贡献者而言,所创作的软件作品中可能已经使用了一个或多个专利技术,从而可能侵犯专利权。对于获取者而言,其所获取的开源软件是依照专利技术获得的软件产品,使用该软件产品也是可能侵犯专利权的。因此,根植有专利的软件作品是面临专利侵权风险的,这也是技术的发展和积累过程中所不可避免的。曾经有参与开源软件工作的人士指出,在不侵犯某些专利权人的既有专利的前提下编写一项复杂的程序是“不可能完成的任务”。 

在开源软件领域,专利侵权风险一直存在。更宽泛地,对于通过技术积累而不断壮大的各技术领域,专利侵权风险是普遍存在的。利用开源许可协议,可以避免一部分专利侵权风险。例如,在Apache-2.0许可证下,贡献者将其贡献的开源软件中的专利权许可给获取者,并且约束获取者不能就自己对该开源软件中的贡献向任何实体主张专利侵权。

IBM公司在2003年被SCO公司起诉专利侵权,起因在于IBM公司贡献给开源操作系统Linux的代码涉嫌专利侵权。SCO公司是Unix系统开发商,拥有Unix专利,其声称IBM公司所贡献的Unix组件侵犯其专利,并且认为使用了包括该Unix组件的全球Linux操作系统的用户都侵犯了其Unix专利权。迫于诉讼威胁,许多使用开源Linux 软件的公司支付了专利许可费,以继续使用Linux操作系统。后来,SCO公司出现财务危机走向破产而未能扩大诉讼,也未能阻止开源Linux软件的发展,开源Linux软件取得了更大的市场占有率。 

五、软件专利的申请策略

开源软件和商业软件可能会处于长期并存的状态。专注于信息技术研究和分析的美国咨询公司Gartner曾表明:“顶级的软件公司仍然会在研发上花数百亿美元,聪明的是他们使用80%开源代码,只在剩余20%的代码部分上花钱,这20%的部分才是他们的看家本领”。如果企业的所有软件都开源,则软件产品缺乏专利权等私权的保护,从而开源软件的共享则成了无源之水,无本之木。部分开源可以培育相关市场,并促进企业的技术提高和市场占有份额。众所周知,谷歌公司开发的安卓系统是开源的,但是内置在安卓系统中的APP、谷歌浏览器、谷歌地图、谷歌搜索等并没有开源,谷歌依然可以针对没有开源的软件产品收取许可费。

专利的申请和维护需要投入大量的资金。在这种情况下,对于企业的软件专利申请提供以下建议:

(1)对于研发技术涉及开源软件的单位或个人,要确定技术研发中不进入开源领域的软件代码,并加强对这部分软件的专利保护;对于技术研发中要进入开源领域的软件代码,则可以根据规划进行区分保护。在确定软件代码是否开源时要特别注意的是,部分开源协议要求获取者也开放后续软件代码。因此,在对不计划进入开源领域的软件进行研发时,要特别注意研发的基础的限制,例如尽量不选择在开源软件的基础上进行研发,如果必须要在开源软件的基础上进行研发,也要注意选择不要求获取者开源后续软件代码的开源协议。

(2)对于开源协议的捐献者,在开源前慎重筛查专利申请,特别是好的技术构思要申请专利。专利所保护的技术创新不但涵盖将要开源的代码,还包括采用其他代码表达的相同技术方案,能够加强对技术成果的保护。因此,在对开源软件中的相关实施方案获得专利权之后,还可以对除了开源软件的实施方案之外的其他代码实施方案寻求专利保护。

捐献者要在申请软件专利之后再在许可证下发布软件,同时明示免费授权给软件使用者,这样能够预防相关技术被别人申请专利。这是因为,软件代码的开源将使得软件代码和/或对应的说明性文档处于公开状态,这种开源类似于专利申请文本的公开或科研文章的公开。该代码的开源可能导致自己和其他人申请的相关专利失去新颖性或创造性,从而不能获得授权。因此,在开源代码之前,要加强专利保护。

(3)对于开源协议的获取者,选择开源软件时,在定位到与企业的领域和研发方向匹配的开源协议的基础上,要慎重考虑开源软件所遵从的开源协议,分析开源软件中关于专利许可的相关条款,并特别关注许可终止的相关条款。在开源项目研发过程中,需要尽早进行知识产权风险排查,梳理开源项目风险点,采取相应的预防和应对措施。

六、总结

在软件技术的发展过程中,开源软件和软件专利不可避免地交织在一起。开源软件在抵制专利保护的同时,也在利用开源协议中的专利相关条款进行保护。借助于开源许可协议有效地融合了软件技术中的技术创新和技术共享,但是二者并不互斥。软件企业在参与软件开源的同时,仍然需要利用专利来保护自身的技术创新,维持核心竞争力。要结合企业的发展策略、专利布局等来选择合适的开源许可协议,从而借助于开源软件共享的当前研发成果和专利保护制度来维护企业的发展。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多