计算机软件反向工程技术对"反技术垄断"贡献巨大。各国又大都承认商业秘密保护下的计算机软件反向工程的合法性。所以不管怎样,计算机软件反向工程技术在《商业秘密法》领域仍然有生存的空间和必要,而"反技术垄断"目的已经成为计算机软件反向工程在商业秘密领域争取合法性地位的王牌。
3.2.2计算机"非开源软件"在商业秘密保护下的反向工程实施条件
本文探讨《商业秘密法》保护下的计算机"非幵源软件",拟以"反垄断"为突破口,同时结合最新的计算机软件动态一一云服务技术,对如何构建计算机"非幵源软件"在商业秘密保护下实施条件进行如下分析:
(1)进行反向工程的对象产品必须是从公开渠道合法取得。我国《反不正当竞争法解释》第12条第2款明确规定:反向工程的对象产品必须从公幵渠道取得。"公开渠道"是对实施对象获取途径的限制,其判断也相对简单,在理论界也基本没有分歧。关于云服务技术,由于其在客户端不存在软件目标代码的逻辑运算部分,所以应赋予反向工程技术分析客户端与服务器之间通讯信息的权利,即通过计算机软件反向工程技术栏截、获取客户端与服务器之间的加密通讯信息的行为属于从公幵渠道合法取得的情形。
(2)软件反向工程实施主体为非"禁反条款"的合同相对人或以兼容、教育目的实施者。该实施条件应该分为两部分来看待:第一部分,如果软件反向工程实施主体非"禁反条款"的合同相对人,则该主体当然获得实施软件反向工程的主体资格;第二部分,如果软件反向工程实施主体属于"禁反条款"的合同相对人,也并不完全排除其反向工程的主体资格。软件权人为了取得"非开源软件"的最大保护,纷纷在合同中约定禁止反向工程的条款,使得合法接触的软件的用户,无一例外的受到了该条款的限制。对于该"禁反条款"的效力,笔者认为应该参考英国《计算机软件条例》50(B)(4)条,当符合"非开源软件"在《商业秘密法》反向工程特殊实施条件,即符合"兼容"及科研教育目的时,将"禁反条款"归于无效。
(3)计算机软件反向工程实施主体在反向过程中未接触该商业秘密的内容。该条件来源于"实质相似性+接触"的侵权判断原则。即在软件反向工程行为实施过程中,合法的反向工程要求保证实施人不会接触商业秘密,完全靠产品反馈的信息以及自身的经验、技能来获得该信息。43接触秘密信息应当考虑计算机软件反向工程者的主观意识,如果反向工程者为善意接触,则不应否认其反向工程的合法性;如果反向工程者为恶意接触,则构成侵犯商业秘密权。
该条件未将"实质相似性"要件纳入到反向工程实施条件,是因为考虑到判断计算机软件实质性相似存在一定的难度,且计算机软件目标代码己经形成的天然技术壁垄,给原软件权人一定的保护,所以不再判断新幵出的软件与原"非开源软件"是否存在实质性相似。
此处需要着重指出,本文所探讨的是计算机"非开源软件"在商业秘密保护下的反向工程实施条件。并不是说所有的计算机"非幵源软件"都由《商业秘密法》进行保护,而是当判断计算机软件反向工程技术是否侵犯"非幵源软件"的权利时,先将"非开源软件"归入商业秘密保护行列,而适用商业秘密保护下的计算机软件反向工程实施条件,进而判断计算软件反向工程行为的合法性。所以商业秘密保护下的计算机软件反向工程实施条件,仅仅是计算机软件反向工程行为针对"非开源软件"时的侵权判断标准。至于哪种软件纳入版权法的保护,哪种软件纳入商业秘密法的保护,本文并没有作任何研究,也暂时不发表任何观点。
3.3计算机软件之专利保护
计算机软件在《专利法》保护下,可谓如鱼得水,深得软件权人的喜爱。我国将部分软件纳入到《专利法》保护的范围内,如软硬件结合的发明创造44等。专利可以保护软件的开发结构,甚至是开发思想,这一点对计算机软件自由开发者来说打击很大,并且这部分软件发明公开的并不是软件的"源代码",而是软件的功能性描述语言。既然软件专利权人只公布了所谓的功能性描述语言,那么对于软件专利的保护范围也应该有所限缩。软件发明专利虽说只有20年的保护年限,但由于软件的生命周期45并不长,软件专利的20年的保护期限远远大于计算机软件的淘汰周期,这就变相促成了软件专利的"永久"垄断。
那么是否有办法既不将该部分软件排除在《专利法》保护范围之外,又不对这部分软件进行过度的专利保护,而又能在专利法的框架下给予软件开发者一定的自由开发权。笔者认为,可以将专利法中的交叉许可制度作为突破口,构建软件在专利法保护下的计算机软件反向工程实施条件,用计算机软件反向工程技术起到防止软件被授予专利权以后,可能发生的技术垄断问题。,3.3.1突破口 "交叉实施许可".
交叉实施许可,也称"互相许可",即许可方和被许可方相互许可对方实施自己所拥有的专利技术而形成的实施许可。交叉实施许可有以下几个特征:第一,许可方和被许可方是两项不同专利技术的拥有人;第二,双方互为许可方和被许可方;第三,通过实施许可合同约定双方实施专利的范围,其结果是双方各自实施对方的专利技术,双方即使对方专利实施的被许可方,又是对方专利实施的许可方。46交叉实施许可大都适用于改良发明,对反向工程技术在专利法框架下的应用成为可能。计算机软件反向工程的目的之一,就是改进软件的性能和功能,从而创造出性能更为优越,功能更为强大的计算机软件,这一点与改良发明不谋而合。
对于此部分交叉实施许可制度构建要满足以下几个要件:第一,充分保护软件专利权人的经济利益;第二,防止软件专利权人通过对软件进行专利保护实现变相垄断;第三,保障计算机软件反向工程技术的实施。那么我们可以有条件的允许对计算机软件专利实施反向工程技术,取得反向工程技术的信息后,加以改进、改良,申请新的专利。在此条件下,我们对反向工程后改良的软件和被反向工程的软件,实施交叉许可。
3.3.2计算机软件在专利保护下的反向工程实施条件
计算机软件在专利法保护下的反向工程实施条件,以"交叉实施许可"为突破口,需要满足以下几个条件:
(1)通过反向工程开发出的软件只能申请《专利法》保护,并且取得独立的专利权。该条件是为了防止反向工程人员恶意绕过《专利法》,转而谋求《版权法》或者《商业秘密法》的保护,从而使计算机软件在《专利法》保护下的反向工程实施条件失效。
(2)通过反向工程开发出的软件不能与原软件专利中所表述的软件功能完全相同,且新软件功能应具有创新性。认定独创性时,可以考虑以下几个要素:第一,软件专利反向工程实施人应有智力劳动付出。在判断实施人是否付出智力劳动时,看其是否完成了软件说明书、软件可行性分析、软件需求分析、软件流程图等一系列文档和源代码等工作。第二,对软件专利实施反向工程后所开发出的软件功能应当与软件专利所描述的功能存在实质性不同或非近似。
在判断是否构成实质性相同或近似时,可以与该领域内具有中级职称的普通技术人员作为参照对象,如果此类技术人员进行对比后认为它们在实质上相同或近似,.则反向工程抗辩不能成立。47第三,在认定创新性时,主要看软件反向工程实施者所开发出的软件是否存在较原软件相比,具有一定的技术创新性,如软件功能的创新、架构的创新或者使用方式的创新等。如果在后研发计算机软件具有一定的技术创新性,则说明它明显区别于在的软件专利,从而满足了独创性要求。
(3)如果通过反向工程开发出的软件满足以上条件,则强制双方专利权人实施交叉许可。如此,不仅能消除计算机软件通过《专利法》保护形成技术壁垒的弊端,保障软件自由开发权,又能最大限度的保障原软件专利权人的利益。那么在双方专利权人实施交叉许可时,如何保障原软件专利权人利益,笔者认为,可以从以下几种途径入手:第一,可以从专利交叉实施许可费入手,适度提高原软件专利权人的许可费;第二,限制在后软件专利人向他人许可其软件专利的实施;第三,在先软件专利期届满后,仍可享受在后软件专利的实施权。
综上所述,确立计算机软件在专利保护下的反向工程实施条件尤为重要,因为计算机软件反向工程将作为专利保护体系中的一种特例,而削弱部分专利权,对专利制度本身来说也是一种不小的冲击。此时,计算机软件反向工程的目标对象有两类:软件发明产品和软件专利说明书中的伪代码描述。如果需要反向工程这两部分内容,仍需充分满足计算机软件在专利保护下的反向工程实施条件。虽然反向工程计算机软件说明书中的计算机软件伪代码,并不能被视为对软件发明产品本身的反向工程,但这并不妨碍专利的保护范围,即《专利法》针对软件发明产品和软件专利说明书中的伪代码描述两部分内容的态度是一致的,都予以专利权意义上的保护。确立计算机软件在专利保护下的反向工程实施条件,仅为了让软件开发者更为自由的采用计算机软件开发思想和设计思路,从而促进整个计算机软件行业的发展,而不是突破专利的保护范围,进而影响原软件专利权的人经济利益。所以,计算机软件在专利保护下的反向工程实施条件的确立,并不与软件专利保护的目的背道而驰,反而能起到软件专利保护的补充和激励作用。