劉玉琴,桂 婕
(1.北京印刷學(xué)院 綠色印刷包裝產(chǎn)業(yè)技術(shù)研究院,北京102600;2.工業(yè)和信息化部軟件與集成電路促進中心知識產(chǎn)權(quán)司法鑒定所,北京 100038;3.中國科學(xué)技術(shù)信息研究所,北京 100038)
由于以主張著作權(quán)進行軟件知識產(chǎn)權(quán)民事訴訟的時間周期較長,越來越多的軟件企業(yè)在知識產(chǎn)權(quán)遭到侵犯時,采取以侵犯商業(yè)秘密為由的刑事訴訟,以此對侵權(quán)人形成心理威懾,達到快速阻止侵權(quán)的目的。在此過程中,作為商業(yè)秘密關(guān)鍵要素的軟件非公知性(不為公眾所知悉)成為訴訟的先決條件之一。在此背景下,軟件非公知性鑒定案件數(shù)量驟然增多,其中最主要的是針對軟件源代碼的非公知性鑒定。由于軟件技術(shù)復(fù)雜和鑒定人知識有限,使得軟件非公知性鑒定相對于同一性鑒定具有更大操作難度。本文從軟件源代碼非公知性鑒定的法律依據(jù)入手,分析影響源代碼非公知性的最主要的8項因素,進而提出司法鑒定人進行軟件源代碼非公知性鑒定的流程。同時,論文探討了作為軟件算法或核心技術(shù)的源代碼非公知性鑒定思路。
非公知性鑒定源于商業(yè)秘密訴訟?!斗床徽?dāng)競爭法》《刑法》《關(guān)于禁止侵犯商業(yè)秘密行為的若干規(guī)定(修正)》中均提及商業(yè)秘密的概念。按照《反不正當(dāng)競爭法》的規(guī)定,商業(yè)秘密是指不為公眾所知悉、能為權(quán)利人帶來經(jīng)濟利益、具有實用性并經(jīng)權(quán)利人采取保密措施的技術(shù)信息和經(jīng)營信息。由此可以看出,構(gòu)成商業(yè)秘密的要件有:非公知性、價值性(經(jīng)濟價值和實用價值)、保密性。訴訟過程中價值性和保密性由法官判斷,非公知性的判斷則需要具有專業(yè)技術(shù)知識的司法鑒定人進行判斷。軟件源代碼的技術(shù)特性顯著,非公知性的判斷自然成為司法鑒定的鑒定對象。
目前,針對軟件源代碼的非公知性鑒定學(xué)術(shù)研究較少。相關(guān)學(xué)術(shù)研究一是集中在軟件知識產(chǎn)權(quán)司法鑒定的相關(guān)概念、原則、方法等理論層面的探討[1-4]。二是集中在針對軟件產(chǎn)品同一性或相似性鑒定技術(shù)層面的研究[5-8]。而在司法鑒定實踐中,很難從正面直接判斷一個技術(shù)信息具有非公知性,鑒定實務(wù)中多是采用排除法進行鑒定。
對于有關(guān)技術(shù)信息的非公知性判斷,我國《最高人民法院關(guān)于審理不正當(dāng)競爭民事案件應(yīng)用法律若干問題的解釋》第九條規(guī)定:“有關(guān)信息不為其所屬領(lǐng)域的相關(guān)人員普遍知悉和容易獲得,應(yīng)當(dāng)認定為反不正當(dāng)競爭法第十條第三款規(guī)定的 ‘不為公眾所知悉’。具有下列情形之一的,可以認定有關(guān)信息不構(gòu)成不為公眾所知悉:(1)該信息為其所屬技術(shù)或者經(jīng)濟領(lǐng)域的人的一般常識或者行業(yè)慣例;(2)該信息僅涉及產(chǎn)品的尺寸、結(jié)構(gòu)、材料、部件的簡單組合等內(nèi)容,進入市場后相關(guān)公眾通過觀察產(chǎn)品即可直接獲得;(3)該信息已經(jīng)在公開出版物或者其他媒體上公開披露;(4)該信息已通過公開的報告會、展覽等方式公開;(5)該信息從其他公開渠道可以獲得;(6)該信息無須付出一定的代價而容易獲得?!?/p>
鑒定實務(wù)中多通過對上面列舉情形進行一一排除,最終給出鑒定意見。為此,本文結(jié)合軟件源代碼的具體特征,對上面列出的情形進行進一步細化,分析影響源代碼非公知性的主要因素,提出應(yīng)對措施,建立鑒定思路。
在建立源代碼非公知性鑒定思路之前,筆者首先結(jié)合軟件源代碼的技術(shù)特征分析總結(jié)影響源代碼非公知性的技術(shù)因素,具體歸納為以下8項主要因素。
2.1.1 通過反編譯可以獲得的源代碼
一些高級計算機語言編寫的軟件程序,在沒有對目標程序進行加密或混淆技術(shù)處理情況下,很容易通過目標程序反編譯得到其對應(yīng)的源代碼,而且反編譯得到的源代碼與生成目標程序的原始源代碼相似程度較高、可讀性較強,是影響源代碼非公知性的一個重要因素。目前,常見的軟件源代碼非公性鑒定中,由C、C++、VB等語言編寫的軟件程序不容易被反編譯;由JAVA、.NET平臺下的編程語言(如C#VB.NETC++.NETF#.NET)編寫的軟件程序容易被反編譯;由Delphi設(shè)計的軟件程序中窗體代碼容易被反編譯,而邏輯代碼不容易被反編譯。
在對源代碼進行非公知性鑒定時,如果能夠通過反編譯得到源代碼,一般認為其具有公知性。但有兩種情況除外,一是軟件銷售時對目標程序采用了加密或混淆的技術(shù)方式阻止反編譯的實施,二是無法獲得目標代碼,即無法獲得反編譯的對象。如,在軟件銷售時與客戶簽訂保密協(xié)議限制客戶向非授權(quán)用戶進行軟件目標程序的復(fù)制,從而使其他非授權(quán)用戶很難獲得目標程序,也就難以獲得反編譯的對象;又如,目標代碼存在的方式比較復(fù)雜,無法通過簡單的方法從銷售的產(chǎn)品中獲取目標代碼,也就難以獲得反編譯的對象。
2.1.2 B/S架構(gòu)下瀏覽器可獲得的源代碼
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,B/S(Browser/Server,瀏覽器/服務(wù)器)架構(gòu)的軟件程序已經(jīng)成為主要的軟件應(yīng)用模式。在這種架構(gòu)下,用戶工作界面通過瀏覽器來實現(xiàn),主要業(yè)務(wù)邏輯都在服務(wù)器端實現(xiàn),極少部分業(yè)務(wù)邏輯在瀏覽器端實現(xiàn)。對于源代碼來說,一部分在服務(wù)器端經(jīng)過編譯以后成為目標碼,在服務(wù)器端運行;一部分沒有經(jīng)過編譯的腳本,由客戶端瀏覽器運行。比如,用C#或Java設(shè)計的B/S系統(tǒng),服務(wù)器端運行C#或Java目標程序,而用于進行頁面顯示控制或簡單業(yè)務(wù)邏輯實現(xiàn)的JAVASCRIPT腳本、CSS樣式單、HTML頁面、圖片等都是由客戶端的瀏覽器來運行和顯示的。對于客戶端來說,這些腳本、樣式單、網(wǎng)頁和圖片是可獲得的。如果基于B/S架構(gòu)的程序面向公眾用戶,那么運行于瀏覽器端的各種源代碼具有公知性。
在司法鑒定中,根據(jù)程序開發(fā)和運行環(huán)境判斷程序是否為B/S架構(gòu),再結(jié)合程序面向的用戶,判斷源代碼是否具有非公知性。
2.1.3 自動生成的源代碼
計算機自動生成的源代碼,是指非程序編寫人員直接編寫的源代碼,而是采用一些輔助的軟件工具得到的源代碼。其非公知性不能簡單地通過代碼本身去判斷,需要結(jié)合代碼自動生成的條件綜合考慮。典型的自動生成的源代碼包括集成開發(fā)環(huán)境(Integrated Development Environment,IDE)自動生成的窗體代碼,基于數(shù)據(jù)庫結(jié)構(gòu)的代碼生成器自動生成的數(shù)據(jù)庫操作源代碼,基于UML統(tǒng)一建模語言生成的源代碼,以及通過語言轉(zhuǎn)化工具轉(zhuǎn)化的其他編程語言源代碼。
IDE自動生成的窗體源代碼。比如,采用.NET平臺下的編程語言、Delphi語言、VB6.0語言進行窗體程序的開發(fā),這類程序的窗體布局代碼,大多是程序設(shè)計人員將設(shè)計好的控件“拖”到窗體后由集成開發(fā)環(huán)境自動生成。除非特別復(fù)雜的控件布局,其他程序設(shè)計人員是可以通過觀察程序運行效果對其界面進行模仿,得到相同或相似窗體代碼。這類窗體代碼除與業(yè)務(wù)功能源代碼混合外,在司法鑒定實踐中不宜鑒定為具有非公知性。
基于數(shù)據(jù)庫結(jié)構(gòu)的代碼生成器自動生成的數(shù)據(jù)庫操作源代碼。目前,Java和C#語言的代碼生成器較多,其中一些代碼生成器根據(jù)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計自動生成數(shù)據(jù)庫操作相關(guān)的源代碼。應(yīng)用比較普遍的代碼生成器包括動軟代碼生成器[9]、CodeSmith[10]、MyGeneration[11]等。比如,動軟代碼生成器根據(jù)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計生成數(shù)據(jù)層、業(yè)務(wù)層C#源代碼。對于這類源代碼的非公知性鑒定,本質(zhì)上是由生成這些源代碼的輸入條件-數(shù)據(jù)庫結(jié)構(gòu)-決定的。因此,司法鑒定過程中這類源代碼的非公知性,本質(zhì)上是由數(shù)據(jù)庫結(jié)構(gòu)的非公知性決定的。
基于UML統(tǒng)一建模語言生成的源代碼。在面向?qū)ο髴?yīng)用程序開發(fā)不斷發(fā)展的時代,UML不僅支持面向?qū)ο蟮姆治龊驮O(shè)計,而且可以支持從需求分析到系統(tǒng)實現(xiàn)的軟件開發(fā)的全過程,它代表了面向?qū)ο蟮能浖_發(fā)技術(shù)的發(fā)展方向。因此,學(xué)術(shù)研究和開發(fā)實踐中,利用UML自動生成源代碼的代碼生成工具被設(shè)計開發(fā)出來,用于軟件的設(shè)計。這類代碼的非公知性同樣由產(chǎn)生這些代碼的UML決定。
語言轉(zhuǎn)化工具用來對不同編程語言的源代碼進行轉(zhuǎn)化,以便增強源代碼的重復(fù)利用能力。典型的有Java轉(zhuǎn)C#工具,.Net平臺下各種語言相互轉(zhuǎn)化工具。對于通過轉(zhuǎn)化工具生成的源代碼非公知性鑒定,要考慮轉(zhuǎn)化前原始源代碼的非公知性。
除此之外,還有一些基于特定的開發(fā)工具和開發(fā)平臺設(shè)計的軟件系統(tǒng),其源代碼也存在自動生成的情況。無論哪一種情況自動生成的代碼,對其進行非公知鑒定時都要綜合這些代碼生成的條件進行判斷,而不能僅僅從源代碼本身給出鑒定意見。
對于源代碼是否為自動生成的代碼,需要鑒定人根據(jù)經(jīng)驗來判斷。一般情況下,自動生成的源代碼在變量、函數(shù)、類、文件的命名上遵循相同的規(guī)則,源代碼的格式安排,空行、空格、注釋的使用規(guī)范等具有高度的一致性。
2.1.4 來自開源軟件的源代碼
開源軟件(Open Source Software,簡稱 OSS),即公開源代碼的軟件,具備可以免費使用和公布源代碼的主要特征[12]。由于其開放源代碼,使得全球無數(shù)程序員和用戶可以不斷復(fù)制、修改、再發(fā)布開源軟件源代碼。大量企業(yè)為了節(jié)省人力成本、時間成本往往會在其設(shè)計開發(fā)的軟件中或多或少的使用開源軟件源代碼,甚至一些軟件就是在開源軟件的基礎(chǔ)上進行修改得到的。因此,開源軟件源代碼是影響源代碼非公知性的重要因素之一。
司法鑒定實務(wù)中對于這類源代碼應(yīng)認為不具有非公知性。然而,由于開源社區(qū)分散、開源軟件數(shù)量眾多,而鑒定人知識有限,使得鑒定中如何判斷源代碼為來自開源軟件的源代碼變得十分困難。就作者的鑒定實踐來說,可以從以下方面輔助做出判斷結(jié)果。
首先,通過源代碼的“協(xié)議聲明”判斷源代碼來自于開源軟件。一般情況下,開源軟件的源代碼文件頭都會有開源軟件遵循的協(xié)議聲明,如果是簡單、機械的引用這些代碼,司法鑒定人員是可以通過協(xié)議聲明辨識其來源和版權(quán)情況,而這種情況在作者參與的司法鑒定案件中是出現(xiàn)頻率最高的。
其次,利用商業(yè)或非商業(yè)開源源代碼搜索引擎系統(tǒng)。如果程序開發(fā)人員在使用開源軟件時將相關(guān)聲明信息刪除,或者僅僅使用了開源代碼中一個片段,這時司法鑒定人員就很難發(fā)現(xiàn)了。目前,存在一些商業(yè)和非商業(yè)的開源源代碼搜索引擎系統(tǒng),這些搜索引擎系統(tǒng)收錄了海量的開源代碼,并提取開源代碼技術(shù)特征。商業(yè)類搜索引擎系統(tǒng)的使用價格往往較高,一般根據(jù)被鑒定代碼的代碼量多少來收費,如Black Duck Software[13]。非商業(yè)類的開源代碼搜 索 引 擎 系 統(tǒng) 主 要 有 Krugle[14],Ohlohe[15],Docjar[16],Google Codes[17],CodeSoso[18]等。商業(yè)類與非商業(yè)類源代碼搜索引擎系統(tǒng)的區(qū)別主要在于:商業(yè)類系統(tǒng)根據(jù)其獨特算法自動提取被比對代碼的技術(shù)特征進行批量比對,非商業(yè)類的搜索系統(tǒng)則要由搜索人員自己提取關(guān)鍵代碼到系統(tǒng)中進行搜索。同時,也要注意到由于開源數(shù)據(jù)庫的收錄范圍有限,鑒定人不能直接給出被鑒定源代碼不具有非公知性的意見,還要結(jié)合第三種方式進行綜合判斷。
最后,鑒定人對被鑒定代碼整體進行閱讀理解,發(fā)現(xiàn)源代碼編寫風(fēng)格與整體風(fēng)格具有差異的部分,就差異部分的代碼,分析其功能,在主要的開源社區(qū)和搜索引擎中查找與之具有類似功能的開源項目。如果被鑒定源代碼通過上面第一、第三種方法的檢測,在司法鑒定實踐中一般認為其為非開源軟件源代碼。
2.1.5 第三方源代碼
第三方源代碼是指程序設(shè)計人員由于使用了特定的軟硬件平臺,從平臺服務(wù)商獲得的與平臺開發(fā)相關(guān)的、能夠節(jié)省開發(fā)周期的源代碼,這種源代碼既可以是免費的,也可以是通過硬件采購,與硬件搭配獲得的。如應(yīng)用微軟.Net平臺進行軟件開發(fā)的程序員,經(jīng)常在自己開發(fā)的項目中使用微軟企業(yè)庫的免費源代碼。采購了Broadcom公司硬件設(shè)備時,經(jīng)常用到由其提供的與設(shè)備操作相關(guān)的源代碼。對于這類源代碼本領(lǐng)域內(nèi)的程序設(shè)計人員容易通過開發(fā)經(jīng)驗識別出來,而且這類源代碼基本都有版權(quán)聲明信息,部分源代碼會在服務(wù)商提供的硬件使用說明書中有所體現(xiàn)。與開源軟件源代碼相似,來源于第三方的源代碼也是影響源代碼非公知性的因素之一,對于非公知性鑒定來說,兩者沒有本質(zhì)區(qū)別,只是在軟件使用范圍、條件、知識產(chǎn)權(quán)保護形式上有所區(qū)別。因此,在司法鑒定實踐中,兩者的鑒定思路相同。
2.1.6 網(wǎng)絡(luò)搜索或教科書中的源代碼
一些軟件開發(fā)人員在網(wǎng)絡(luò)論壇中以問答的形式對完成某一特定功能的源代碼實現(xiàn)進行提問和回答,將源代碼放到網(wǎng)絡(luò)論壇中。這種源代碼一般都是比較短小的,大部分通過搜索引擎可以檢索得到。另外,程序設(shè)計相關(guān)教科書中的一些源代碼示例,特別是算法實現(xiàn)的源代碼示例,也會在現(xiàn)實的軟件程序中出現(xiàn)。這兩種源代碼都比較短,而且是解決程序設(shè)計當(dāng)中一些通用的技術(shù)問題。由于兩種類型的源代碼是大眾非常容易獲取的,直接影響源代碼的非公知性。司法鑒定中,鑒定人在閱讀源代碼時,根據(jù)經(jīng)驗,選擇解決共性技術(shù)問題的源代碼,并在搜索引擎中進行搜索,盡量發(fā)現(xiàn)這類源代碼。如Pudn[19],Oreilly[20]均有針對計算機書籍中的源代碼搜索功能。
2.1.7 業(yè)界通用的源代碼
存在這樣一類源代碼,它完成的功能是某一領(lǐng)域內(nèi)比較通用的功能。比如,管理信息系統(tǒng)中常用的用戶登錄驗證,角色管理,權(quán)限管理。這些功能具有非常的普遍性,很多程序設(shè)計人員的設(shè)計思路和代碼實現(xiàn)基本一致,而且這類代碼經(jīng)常在程序員之間、企業(yè)之間傳遞,有些已經(jīng)成為業(yè)界通用的源代碼,一般不具有非公知性。當(dāng)然,有些企業(yè)從保護知識產(chǎn)權(quán)、促進創(chuàng)新角度,設(shè)計出不同于大眾的源代碼,則應(yīng)劃入具有非公知性的范疇。鑒定實務(wù)中鑒定人要結(jié)合具體情況具體分析。
2.1.8 表達唯一的源代碼
這里所說的表達唯一,是指使用某一計算機語言編寫、完成特定功能的源代碼,其代碼編寫形式有限,如采用C++或C#獲取計算機硬件信息的代碼。這種代碼由于表達形式有限,不同程序設(shè)計人員編寫出相同源代碼的幾率比較大。因此,直接影響了源代碼的非公知性。
司法鑒定中,在判斷源代碼唯一性上,需要注意兩個問題,一是表達“唯一”,并不是真正的一種表達;二是,以函數(shù)為劃分單元,判斷源代碼是否表達唯一,不應(yīng)孤立的判斷某一行代碼是否為表達唯一的源代碼。
上述影響源代碼非公知性因素的第3.1.1、3.1.2、3.1.3條可歸結(jié)為“該信息無須付出一定的代價而容易獲得”,第 3.1.4、3.1.5、3.1.6條可歸結(jié)為“該信息從其他公開渠道可以獲得”,第3.1.7、3.1.8條可歸結(jié)為“該信息為其所屬技術(shù)或者經(jīng)濟領(lǐng)域的人的一般常識或者行業(yè)慣例”。在鑒定過程中,通過對這些因素的綜合分析,判斷源代碼的非公知性。同時,可以通過建立規(guī)范化的鑒定流程,來降低鑒定人的工作強度,加快鑒定的實施?;谝陨?項主要因素的分析,本文設(shè)計從簡單到復(fù)雜的軟件源代碼非公知性鑒定流程(圖1)。
2.2.1 判斷源代碼是否容易獲得
在不閱讀源代碼功能含義條件下,理解源代碼所應(yīng)用的技術(shù)特征,源代碼編譯后的目標碼運行環(huán)境特征,依次逐步深入判斷源代碼是否為B/S架構(gòu)軟件瀏覽器(客戶端)可獲得的源代碼、反編譯可獲得的源代碼、自動生成的源代碼。如果三種情況均不滿足,轉(zhuǎn)而判斷源代碼是否為常識和行業(yè)慣例。
如果源代碼滿足上述中“為B/S架構(gòu)軟件瀏覽器(客戶端)可獲得的源代碼”或“為自動生成的源代碼”或“為反編譯可獲得的源代碼,并且容易獲得目標代碼”,繼續(xù)看源代碼的使用情況,即源代碼編譯的目標碼構(gòu)成的軟件系統(tǒng)在銷售給客戶時,是否有限制客戶向非授權(quán)用戶進行泄露軟件相關(guān)信息的保密協(xié)議。若沒有保密協(xié)議,說明源代碼容易獲取,具有公知性。若存在保密協(xié)議,轉(zhuǎn)而判斷源代碼是否為常識和行業(yè)慣例。如果滿足“為反編譯可獲得的源代碼,但目標代碼不易獲取”,直接判斷源代碼是否為常識和行業(yè)慣例。
2.2.2 判斷源代碼是否為常識和行業(yè)慣例
在不做檢索的條件下,閱讀代碼功能含義,根據(jù)鑒定人知識和經(jīng)驗,依次判斷源代碼是否表達唯一、是否業(yè)界通用。滿足兩個條件中的任一條件,源代碼具有公知性;否則,轉(zhuǎn)而判斷源代碼是否公開。
2.2.3判斷源代碼是否公開
鑒定人的知識是有限的,在判斷源代碼是否公開問題上,鑒定人以了解技術(shù)進展,豐富知識為目的,進行基本的信息檢索,是十分必要的。因此,鑒定人在理解源代碼含義條件下,應(yīng)充分利用搜索引擎、開源社區(qū)等網(wǎng)絡(luò)資源,結(jié)合自己的知識和經(jīng)驗積累判斷源代碼是否公開。如果源代碼經(jīng)過這一步的層層驗證,司法鑒定實務(wù)中一般認為源代碼具有非公知性。
以上影響源代碼非公知性的因素分析和鑒定流程,適用于大部分的源代碼非公知性鑒定。但在司法鑒定實踐中往往會出現(xiàn)這樣的情況:作為軟件某個特征算法或核心(專有)技術(shù)的部分源代碼具有公知性,另一部分則不具有公知性;而源于委托方的鑒定事項則是針對算法或核心技術(shù)涉及的整體源代碼。針對這種情況,鑒定實務(wù)中應(yīng)從兩個視角考慮,一是局部視角,二是全局視角。局部視角不考慮代碼之間的調(diào)用關(guān)系,組織結(jié)構(gòu),依據(jù)圖1的鑒定流程,針對各個部分的源代碼分別給出非公知性的鑒定意見。全局視角考慮代碼之間的邏輯調(diào)用關(guān)系,將這種邏輯調(diào)用關(guān)系作為源代碼非公知性判斷依據(jù)之一,從整體上給出鑒定意見。
圖1 軟件源代碼非公知性鑒定流程
一般來說,在考慮源代碼之間的邏輯調(diào)用關(guān)系,組織結(jié)構(gòu)時,首先通過對源代碼的閱讀,梳理出源代碼邏輯關(guān)系魚骨圖(圖2)。任何算法或關(guān)鍵技術(shù)的源代碼都可以歸結(jié)為代碼文件、類和函數(shù)的表現(xiàn)形式。算法和關(guān)鍵技術(shù)的實現(xiàn)按照一條主線進行,同時,不斷的調(diào)用各個代碼文件、類和函數(shù),構(gòu)成支線。如果算法或核心技術(shù)主線上的源代碼具有非公知性,那么整體上可以給出代碼非公知性的意見。
圖2 源代碼調(diào)用關(guān)系魚骨圖
2011年4 月,深圳邁某公司向深圳市中級人民法院起訴理某公司,就其相關(guān)產(chǎn)品涉嫌使用邁某公司的有關(guān)技術(shù)提出法律訴訟,包括心電監(jiān)護儀嵌入式軟件商業(yè)秘密。為審理該案,由法院委托、雙方共同選擇和認可的司法鑒定機構(gòu)對雙方心電監(jiān)護儀嵌入式軟件進行源代碼非公知性、同一性鑒定,目標代碼同一性鑒定。
該案涉及軟件源代碼非公知性、同一性鑒定,目標代碼同一性鑒定,源代碼與目標代碼的同一性鑒定。其中源代碼的非公知性鑒定具有典型意義:一方面,邁某公司主張的具有非公知性的源代碼是其監(jiān)護儀的核心源代碼,而非全部源代碼;另一方面,通過鑒定發(fā)現(xiàn)核心源代碼中的部分代碼可以在網(wǎng)絡(luò)中檢索得到,即源代碼部分公開。該案鑒定采用論文3.2的鑒定策略,對源代碼的非公知性進行逐一分析,鑒定結(jié)論分別從源代碼局部和整體兩個角度進行。針對各個部分的源代碼分別給出非公知性的鑒定意見。同時,考慮到代碼的整體邏輯調(diào)用關(guān)系,各部分代碼的選取和組合蘊含創(chuàng)造性勞動,并非簡單羅列、堆砌而形成,可以構(gòu)造出類似3.3的代碼結(jié)構(gòu)關(guān)系圖,給出了整體源代碼的非公知性鑒定意見。
深圳市中院一審判決邁某公司勝訴,理某公司向廣東省高院提起上訴,廣東省高院就理某公司不服該一審判決提起的上訴進行二審,2016年10月二審裁定理某公司侵權(quán)成立。
以源代碼非公知性鑒定為支撐的軟件商業(yè)秘密維權(quán)案件迅速增加,在看到這種方式對知識產(chǎn)權(quán)保護起到積極作用的同時,也應(yīng)注意到其對促進市場競爭、技術(shù)進步、防止知識產(chǎn)權(quán)濫用上的弊端。無論是對訴訟的控訴方,還是被訴方,源代碼非公知性對于整個訴訟起到了至關(guān)重要的作用,一旦訴訟成功,對被訟方的處罰力度較大。因此,軟件源代碼非公知性鑒定對鑒定人的技術(shù)能力、鑒定經(jīng)驗和職業(yè)道德都提出了極高的要求。