摘 要 論文基于軟件程序資源的多樣性和復(fù)雜性,從軟件程序資源保存范疇的界定出發(fā),在對(duì)軟件程序資源保存內(nèi)容所面臨的采集、元數(shù)據(jù)規(guī)范等問題進(jìn)行深入分析的基礎(chǔ)上,探討了目前主流保存技術(shù)策略在軟件程序資源保存領(lǐng)域的適用性,并從合理使用的角度分析了目前軟件程序資源保存所存在法律法規(guī)方面的困擾,最后從合作保存的角度提出我國未來軟件程序資源保存的發(fā)展方向,希望對(duì)我國軟件程序資源保存理論和實(shí)踐的發(fā)展提供一定的借鑒。
關(guān)鍵詞 軟件程序資源;圖書館;長期保存
分類號(hào) G250.76
DOI 10.16810/j.cnki.1672-514X.2022.02.010
Abstract Based on the diversity and complexity of software resources, this paper starts from the definition of the scope of software resources preservation, analyzes the problems of collection and metadata specification faced by the content of software resources preservation, discusses the applicability of the current mainstream preservation technology strategy in the field of software resources preservation, and analyzes the current software resources preservation from the perspective of rational use. Finally, from the perspective of cooperative preservation, this paper puts forward the development direction of China’s future software resource preservation, hoping to provide some reference for the development of China’s application software resource preservation theory and practice.
Keywords Soft program resources. Library. Long term preservation.
0 引言
近年,隨著數(shù)字原生資源的不斷涌現(xiàn),數(shù)字資源長期保存已經(jīng)成為圖書館、博物館、檔案館等保存機(jī)構(gòu)關(guān)注的重點(diǎn)問題之一。數(shù)字資源長期保存是保存機(jī)構(gòu)在長期保存?zhèn)鹘y(tǒng)紙質(zhì)材料和其他實(shí)物文物基礎(chǔ)上的邏輯延伸。就目前的保存內(nèi)容看,大部分保存機(jī)構(gòu)的保存重點(diǎn)僅限于組織和存儲(chǔ)現(xiàn)有保存實(shí)物的數(shù)字代用品和網(wǎng)絡(luò)原生數(shù)字資源,如電子版的圖書、網(wǎng)頁資源等,而對(duì)于軟件程序資源的管理和保存尚未引起廣泛關(guān)注。
應(yīng)當(dāng)認(rèn)識(shí)到,現(xiàn)代社會(huì)人們對(duì)數(shù)字形態(tài)的資源越來越依賴,這些資源的原生形態(tài)是以“0”“1”組合呈現(xiàn)的,如不借助相應(yīng)的軟件、硬件等外部環(huán)境,人類是無法讀取和理解的,必須通過適當(dāng)?shù)能浖h(huán)境將其轉(zhuǎn)換為人類可讀的形式才能完成“識(shí)讀”操作。Esther Conway等學(xué)者曾指出,相對(duì)數(shù)字資源長期保存而言,軟件程序資源保存的復(fù)雜度相對(duì)較高,現(xiàn)有的數(shù)字資源長期保存項(xiàng)目對(duì)數(shù)字對(duì)象依賴的軟件運(yùn)行環(huán)境關(guān)注較少,人們不應(yīng)忽視[1]。Esther Conway等人將軟件程序資源保存定義為保存軟件的副本以便將來能重構(gòu)和執(zhí)行,他強(qiáng)調(diào)指出,保存軟件程序資源是保存其他數(shù)據(jù)的必備條件,是保證數(shù)據(jù)存在和可重用的根本,軟件程序資源的保存應(yīng)當(dāng)涵蓋軟件的表現(xiàn)形式、描述模型和需要保存的屬性等方面??梢哉f軟件程序資源的長期保存既是一項(xiàng)舊課題,也是一項(xiàng)新課題,必須依照數(shù)字資源長期保存領(lǐng)域的相關(guān)規(guī)范來執(zhí)行,同時(shí)由于它也是長期保存領(lǐng)域亟待解決的全新問題,也應(yīng)有機(jī)融入國家的數(shù)字資源長期保存體系之中[2]。
由于軟件程序資源的特殊性,針對(duì)軟件程序資源的保存面臨諸多困擾:首先,隨著云計(jì)算、人工智能、大數(shù)據(jù)等新技術(shù)的飛速發(fā)展,軟件程序資源保存的復(fù)雜性將會(huì)持續(xù)增加;其次,軟件程序資源間的強(qiáng)耦合關(guān)系以及軟件程序資源自身所具有的迭代性增長的特點(diǎn),導(dǎo)致待保存的軟件程序資源版本數(shù)量眾多,且溯源性較差;第三,目前保存的數(shù)字對(duì)象內(nèi)容所依賴的軟件環(huán)境復(fù)雜,特別是動(dòng)態(tài)數(shù)字對(duì)象所依賴的軟件環(huán)境,大多鏈接不同系統(tǒng)數(shù)據(jù)庫,有些甚至鏈接多個(gè)位于不同服務(wù)器的外部軟件包,導(dǎo)致軟件程序資源的保存工作極其復(fù)雜[3]。此外,軟件程序資源的保存還涉及管理、經(jīng)費(fèi)、法律等諸多問題,導(dǎo)致目前針對(duì)軟件程序資源長期保存的研究與實(shí)踐工作進(jìn)展緩慢,且大多處于試驗(yàn)階段。
為此,本文基于軟件程序資源的多樣性和復(fù)雜性,從軟件程序資源保存范疇的界定出發(fā),在對(duì)軟件程序資源保存內(nèi)容所面臨的采集、元數(shù)據(jù)規(guī)范等問題進(jìn)行深入分析的基礎(chǔ)上,探討目前主流保存技術(shù)策略在軟件程序資源保存領(lǐng)域的適用性,并從合理使用的角度分析目前軟件程序資源保存所存在法律法規(guī)方面的困擾,最后從合作保存的角度提出我國未來軟件程序資源保存的發(fā)展方向,希望對(duì)我國軟件程序資源保存理論和實(shí)踐的發(fā)展提供一定的借鑒。
1 保存范疇的界定問題
在探討軟件程序資源保存范疇之前,首先要明確軟件程序資源的保存涉及到的軟件單元、軟件系統(tǒng)、軟件環(huán)境等諸多元素。軟件單元主要指應(yīng)用程序、系統(tǒng)程序或者某個(gè)程序的組件。軟件系統(tǒng)是指軟件單元的集合。軟件環(huán)境是指在安裝和運(yùn)行過程中與軟件系統(tǒng)產(chǎn)生相互作用的一切基礎(chǔ)設(shè)施,通常包括處理器、操作系統(tǒng)、I/O設(shè)備、各種軟件庫、網(wǎng)絡(luò)系統(tǒng)等等[4]。
軟件程序資源的長期保存與紙質(zhì)資源和數(shù)字靜態(tài)資源不同,與數(shù)字藝術(shù)品、原生數(shù)字新聞、數(shù)字游戲等數(shù)字化內(nèi)容的長期保存相似,長期保存的過程都會(huì)著重保護(hù)與數(shù)字對(duì)象相關(guān)的軟件單元、軟件環(huán)境及其所依托的其他軟件系統(tǒng)。例如,保存創(chuàng)建和查看word文檔所必須的應(yīng)用軟件程序必須同時(shí)保存與其運(yùn)行相關(guān)的操作系統(tǒng)環(huán)境、插件元素及網(wǎng)絡(luò)、存儲(chǔ)、計(jì)算資源等。但軟件程序資源的保存又與數(shù)字游戲、數(shù)字藝術(shù)品等數(shù)字資源有所區(qū)別,因?yàn)楹笳吒鼮橹匾晹?shù)字內(nèi)容的創(chuàng)造性。此外,軟件程序資源的版本迭代較游戲等數(shù)字對(duì)象更為頻繁,保存機(jī)構(gòu)理論上應(yīng)當(dāng)將軟件程序資源更新的所有版本都保存下來。但是由于軟件程序資源版本數(shù)量眾多,有些軟件根本無法溯源,且使用范圍的劃分也較為復(fù)雜,如一些正版軟件則需要產(chǎn)品秘鑰才可使用,而一些破解軟件則情況更為混亂,難以管理,即使將軟件完全保存下來,其使用范圍也將嚴(yán)重受限。因此,軟件程序資源保存最根本的問題是需要明確哪些內(nèi)容需要保存。
軟件程序資源保存范疇的界定除以上軟件資源的遴選問題外,每個(gè)軟件系統(tǒng)自身也存在沒有明確清晰界限分割的問題,很難判定一個(gè)軟件系統(tǒng)的開始與結(jié)束位置。此外,軟件程序資源保存的可選擇性較多,是僅僅保存源代碼、程序二進(jìn)制可執(zhí)行版本,還是可執(zhí)行版本及其運(yùn)行的軟件環(huán)境。保存哪些軟件程序資源、保存軟件程序資源的哪些版本及每種軟件程序資源需要保存哪些內(nèi)容,應(yīng)依據(jù)于保存機(jī)構(gòu)明確的保存目的和目標(biāo),而保存目標(biāo)的確定離不開對(duì)目標(biāo)用戶群體的分析[5]。例如,當(dāng)保存一個(gè)1990年的CAD文件時(shí),為了保證用戶實(shí)現(xiàn)與當(dāng)年相同的應(yīng)用體驗(yàn),則需要提供一個(gè)來自那個(gè)時(shí)代的顯示設(shè)備及相關(guān)外設(shè)。因此,軟件程序資源保存范疇的界定應(yīng)基于特定目標(biāo)用戶群的具體應(yīng)用情境展開。此外,軟件程序資源長期保存范疇的界定還取決于軟件程序資源的復(fù)雜性、保存項(xiàng)目可投入的人力、物力及財(cái)力資源等。由于各保存因素相互交織且軟件程序資源保存自身技術(shù)難度較大,因此目前尚無標(biāo)準(zhǔn)答案。
2 保存內(nèi)容的核心問題
2.1 軟件程序資源采集及其障礙
軟件程序資源的保存依托于對(duì)源代碼的可獲取性,如軟件程序資源的源代碼及相關(guān)的文檔資源無法獲取,則軟件翻譯或軟件移植等保存策略無法執(zhí)行,即使采用仿真等保存策略難度也很大?,F(xiàn)代信息技術(shù)的發(fā)展,一方面使得軟件編譯體系龐雜,不同的軟件隸屬于不同的編譯體系,依托于不同類別、不同版本的系統(tǒng)環(huán)境;另一方面使得不同軟件程序資源在功能、模塊、作用上相互交織融匯,形成不同的軟件程序資源群。由于軟件程序資源自身功能、結(jié)構(gòu)復(fù)雜,且所需的技術(shù)環(huán)境多樣,不同軟件又由不同的機(jī)構(gòu)開發(fā),服務(wù)于不同的目標(biāo)人群。特別是大部分軟件程序資源受到版權(quán)、專利權(quán)在內(nèi)的知識(shí)產(chǎn)權(quán)法的保護(hù),因此對(duì)軟件程序資源的采集造成了很大障礙。
除了需要采集軟件體自身的內(nèi)容外,還應(yīng)當(dāng)完成對(duì)其相關(guān)文檔信息的采集,可結(jié)合軟件程序資源保存的目的和性質(zhì),在保存軟件手冊(cè)的基礎(chǔ)上,以截屏、視頻記錄、口述歷史等形式保存軟件開發(fā)的目的、意義以及安裝、使用、技術(shù)環(huán)境等方面的信息。
2.2 元數(shù)據(jù)采集與規(guī)范問題
保存軟件程序資源之初,首先進(jìn)行初步的應(yīng)用場(chǎng)景和技術(shù)環(huán)境分析是非常必要的,可以借助對(duì)軟件程序資源的描述信息、軟件架構(gòu)、應(yīng)用場(chǎng)景、軟件開發(fā)商、所有權(quán)、許可信息以及存儲(chǔ)情況等內(nèi)容的分析,確定元數(shù)據(jù)采集方法和核心元素集合[6]。當(dāng)前軟件程序資源的組織和描述模式主要有兩個(gè)來源,一個(gè)是軟件程序資源的使用機(jī)構(gòu)如研究所、大學(xué)等,以知識(shí)組織的方式為信息對(duì)象和集合提供描述和元數(shù)據(jù)信息;另一個(gè)是互聯(lián)網(wǎng)商業(yè)機(jī)構(gòu)從軟件發(fā)行的角度對(duì)軟件程序資源進(jìn)行組織與描述。但是,這兩種描述與組織方式并不完全適用于軟件程序資源。
由于軟件程序資源的復(fù)雜性和特殊性,導(dǎo)致其所具有的元數(shù)據(jù)比普通靜態(tài)數(shù)字資源更具復(fù)雜性。從不同的角度可以開發(fā)出不同的元數(shù)據(jù)模型,如從使用情境的角度出發(fā),采用以用戶為核心的方法,可以將用戶分成軟件開發(fā)者/設(shè)計(jì)者、軟件發(fā)行者、應(yīng)用者、保存者/圖書館管理員等,根據(jù)不同的用戶角色的應(yīng)用場(chǎng)景,應(yīng)為每個(gè)用戶群體設(shè)置專有的元數(shù)據(jù)元素。雖然不同元數(shù)據(jù)模型會(huì)共用部分基本元數(shù)據(jù)元素,如標(biāo)識(shí)符、標(biāo)題、版本、發(fā)行人等信息,但是結(jié)合不同的應(yīng)用場(chǎng)景,每個(gè)用戶群體又會(huì)有各自特殊的元數(shù)據(jù)描述需求。目前,專業(yè)的知識(shí)保存與組織機(jī)構(gòu),如圖書館、檔案館尚未廣泛開展針對(duì)軟件程序資源的保存工作,雖然有部分研究型圖書館和大學(xué)合作開展了一些軟件保存項(xiàng)目,并發(fā)布了部分元數(shù)據(jù)模型,但該項(xiàng)工作仍屬于嘗試階段。
2.3 運(yùn)行環(huán)境的依賴性
軟件程序資源依托于與其相關(guān)的硬件資源、操作系統(tǒng)及其他軟件程序或軟件庫運(yùn)行,特別是現(xiàn)代軟件架構(gòu)對(duì)其所涉及的周邊軟件環(huán)境依賴性更強(qiáng)。現(xiàn)代軟件架構(gòu)為了增強(qiáng)軟件的可移植性,將計(jì)算機(jī)上運(yùn)行的程序分成多個(gè)層級(jí)。面向最終用戶的應(yīng)用程序處于整個(gè)軟件系統(tǒng)架構(gòu)的最頂層,其所依賴的各類基礎(chǔ)庫是中間層,最底層是與硬件系統(tǒng)直接關(guān)聯(lián)的操作系統(tǒng)。軟件層級(jí)化的思想減少了重復(fù)開發(fā)造成的資源浪費(fèi),起到了錯(cuò)誤隔離和安全保護(hù)的作用,為程序員帶來各種便利。但是,這種框架下運(yùn)行的軟件程序資源所面臨的保存困難更大。一方面操作系統(tǒng)與應(yīng)用程序間的調(diào)用都是通過規(guī)范的標(biāo)準(zhǔn)接口調(diào)用完成的,一旦標(biāo)準(zhǔn)被保存過程更改就會(huì)導(dǎo)致調(diào)用失敗,應(yīng)用程序無法運(yùn)行;另一方面,系統(tǒng)調(diào)用的接口設(shè)計(jì)是固定的,軟件程序必須將服務(wù)請(qǐng)求轉(zhuǎn)化為系統(tǒng)認(rèn)可的調(diào)用請(qǐng)求,這無疑更增加了保存工作的復(fù)雜性和保存難度。
2.4 現(xiàn)代信息技術(shù)飛速發(fā)展的挑戰(zhàn)
現(xiàn)代信息技術(shù)的飛速發(fā)展對(duì)軟件程序資源的長期保存而言是把雙刃劍,一方面軟件程序資源的長期保存已受到多國關(guān)注,并變得日益重要;另一方面也給軟件程序資源的長期保存帶來巨大挑戰(zhàn),特別是對(duì)于部分注重用戶體驗(yàn)的軟件,如僅保留比特和字節(jié)等信息,根本無法重現(xiàn)當(dāng)時(shí)的軟件應(yīng)用場(chǎng)景,更無法重現(xiàn)用戶當(dāng)時(shí)的使用體驗(yàn)。僅以Facebook為例,雖然Facebook自身不對(duì)其軟件系統(tǒng)進(jìn)行保存,但由于Facebook不容許輸出使用體驗(yàn),只允許用戶輸出自己的數(shù)據(jù)。那么其他保存機(jī)構(gòu)是否可以實(shí)際承擔(dān)對(duì)Facebook的保存任務(wù),尚無定論。因此,實(shí)際上即使是Facebook自身可能也無法保存Facebook。部分專家為了保存使用Facebook、虛擬世界和其他基于云的服務(wù)體驗(yàn)采用體驗(yàn)記錄的方式,通過記錄用戶的使用原因,所使用的相關(guān)上下文信息以及使用感受等內(nèi)容,保證未來用戶可以看到過去某個(gè)時(shí)期使用者所使用的軟件及其使用體驗(yàn)。此外,很多軟件必須依托于溫度傳感器、操作設(shè)備、虛擬現(xiàn)實(shí)眼鏡、耳機(jī)等專用硬件設(shè)備才能正常工作,這對(duì)軟件程序資源的保存而言更具挑戰(zhàn)性。其將受限于技術(shù)保存策略的局限性,最終將可能造成無法獲得原始、功能完好的硬件設(shè)備。
2.5 軟件合理使用的局限性
軟件資源受到版權(quán)、專利權(quán)在內(nèi)的知識(shí)產(chǎn)權(quán)法律的保護(hù),因此軟件程序資源同其他數(shù)字資源一樣,在開始保存前必須考慮到專利代碼、保存管理權(quán)利及知識(shí)產(chǎn)權(quán)等問題。軟件程序資源的長期保存通常需要以軟件許可協(xié)議不容許的方式操作軟件,相應(yīng)的保存機(jī)構(gòu)通常需要得到軟件知識(shí)產(chǎn)權(quán)所有者授予的特定權(quán)限,才能執(zhí)行相關(guān)的長期保存任務(wù)。但是,由于軟件版本更替頻繁,來源多樣,很多軟件難以溯源,更無法找到軟件的權(quán)利所有者。這些問題都會(huì)造成軟件保存和重用的延遲。
目前,中國著作權(quán)法中關(guān)于合理使用的相關(guān)規(guī)定源于《伯爾尼公約》,該公約指出了“三步檢驗(yàn)法”。此后,“三步檢驗(yàn)法”也被《世界知識(shí)產(chǎn)權(quán)組織著作權(quán)條約》[7]和《知識(shí)產(chǎn)權(quán)協(xié)定》納入著作權(quán)例外的考慮范圍,并進(jìn)一步在國際范圍內(nèi)推廣[8]。其約定:(1)任何限制和例外必須是特例;(2)任何限制不得影響著作權(quán)人對(duì)作品的正常使用;(3)任何限制都不得損害著作權(quán)擁有者的合法利益。
美國的著作權(quán)法中關(guān)于合理使用的相關(guān)規(guī)定源于1841年,約瑟夫·斯托里法官在Folsom V.Marsh 案中提出的“四要素分析法”,之后《美國著作權(quán)法》第107條對(duì)“四要素分析法”的具體內(nèi)容作出了正式規(guī)定,即檢驗(yàn)合理使用的四個(gè)要素分別是:(1)使用的目的和性質(zhì),即該使用行為是商業(yè)性的還是以教育為目的非營利性的使用;(2)受著作權(quán)保護(hù)的作品的性質(zhì);(3)使用受著作權(quán)保護(hù)的作品的數(shù)量和比重;(4)該適用行為對(duì)著作權(quán)作品潛在市場(chǎng)和價(jià)值的影響。
雖然,中美等國在著作權(quán)法中都對(duì)“合理使用”進(jìn)行了約定, 但就目前版權(quán)許可制度的完善程度與授權(quán)機(jī)制的健全程度而言,與軟件程序資源長期保存授權(quán)需求存在較大差距,甚至不具有可操作性。此外,目前我國版權(quán)合理使用制度的彈性較差,對(duì)新技術(shù)的敏銳性、適應(yīng)性較低,從而使圖書館的保存權(quán)利受到嚴(yán)重約束。圖書館面對(duì)軟件程序資源長期保存遇到的版權(quán)困境,應(yīng)以公共圖書館法為基礎(chǔ),積極闡明版權(quán)立場(chǎng),推動(dòng)法律和政策支撐,促進(jìn)合理使用制度的建立,以有效協(xié)調(diào)權(quán)利人、圖書館和公眾之間的利益關(guān)系,形成更加有利于圖書館事業(yè)發(fā)展的法律和政策環(huán)境。
3 軟件程序資源保存技術(shù)策略分析
面對(duì)軟件程序資源的復(fù)雜性和交互性,以及軟件開發(fā)商對(duì)軟件程序資源保護(hù)鎖設(shè)置的保護(hù)障礙,目前保存的主要方法是遷移、模擬、技術(shù)保存、虛擬化和軟件翻譯等,每種方法各有利弊。保存機(jī)構(gòu)需要結(jié)合軟件程序資源的復(fù)雜性、保存項(xiàng)目可投入的人力、物力及財(cái)力資源等情況,合理選擇其中一種或幾種策略開展保存工作。
3.1 遷移與標(biāo)準(zhǔn)化
遷移是當(dāng)前數(shù)字資源長期保存領(lǐng)域應(yīng)用最為廣泛的保存策略。標(biāo)準(zhǔn)化與遷移類似,目前部分專家將標(biāo)準(zhǔn)化與遷移視為同一方法,如Corrado&Moulaison Sandy曾將標(biāo)準(zhǔn)化描述為“將數(shù)字對(duì)象遷移到有限數(shù)量的標(biāo)準(zhǔn)格式”[9]。對(duì)于圖像、文本等數(shù)字對(duì)象資源而言,雖然遷移和標(biāo)準(zhǔn)化會(huì)導(dǎo)致少量屬性信息的丟失,如一部分樣式信息、背景信息等,但由于其保留了主要數(shù)據(jù)內(nèi)容及內(nèi)容間的關(guān)聯(lián)關(guān)系信息,因此對(duì)大部分保存機(jī)構(gòu)而言是可以接受的。目前,遷移和標(biāo)準(zhǔn)化策略已成為眾多保存機(jī)構(gòu)主要使用的保存策略。但是,對(duì)于軟件程序資源而言,一部分原因是由于其自身結(jié)構(gòu)復(fù)雜,設(shè)計(jì)獨(dú)特,與操作系統(tǒng)、軟件架構(gòu)、數(shù)據(jù)庫、動(dòng)態(tài)鏈接庫以及描述信息、所有權(quán)、許可信息等其他元素間具有強(qiáng)耦合關(guān)系,有些甚至與多個(gè)異構(gòu)數(shù)據(jù)庫間具有復(fù)雜的軟件關(guān)聯(lián)關(guān)系,并與多個(gè)位于不同服務(wù)器的外部軟件包動(dòng)態(tài)連接,即使微小的信息丟失也可能會(huì)導(dǎo)致所保存軟件對(duì)象的真實(shí)性和完整性受到威脅,甚至無法復(fù)原或運(yùn)行,進(jìn)而造成軟件保存工作失效。因此,僅僅依靠遷移或標(biāo)準(zhǔn)化策略,對(duì)于軟件程序資源的保存而言,存在一定的風(fēng)險(xiǎn)。
3.2 技術(shù)保存
技術(shù)保存是指保存完整的技術(shù)環(huán)境,即同時(shí)保存硬件和軟件。對(duì)于軟件程序資源而言,由于不同的軟件程序資源是依托于不同的技術(shù)環(huán)境創(chuàng)建的,因此在保存軟件程序資源的同時(shí),也需要存儲(chǔ)軟件所依賴的不同技術(shù)環(huán)境資源并維護(hù)具有不同時(shí)代特征的眾多硬件、軟件系統(tǒng)。通常,需要保存的硬件涉及磁盤驅(qū)動(dòng)器、主板、處理器、顯示卡等,需要保存的軟件環(huán)境不僅包括程序本身,還涉及操作系統(tǒng)、驅(qū)動(dòng)程序、數(shù)據(jù)庫等軟件編譯、安裝和運(yùn)行所需的環(huán)境。雖然技術(shù)保存似乎是軟件程序資源保存的一種較好方法,但是從長期來看,其持續(xù)性較差。伴隨信息技術(shù)的迅速發(fā)展,特別是近年云計(jì)算、大數(shù)據(jù)、霧計(jì)算、人工智能等技術(shù)的迅速發(fā)展,軟、硬件的更替性更加頻繁,很多硬件一旦過時(shí)便不再生產(chǎn)。隨著待保存的軟件程序資源越來越多,其依托的技術(shù)環(huán)境將越來越復(fù)雜,采用此種方法將最終導(dǎo)致很多資源無法獲取。
3.3 仿真
在執(zhí)行仿真時(shí),計(jì)算機(jī)系統(tǒng)會(huì)補(bǔ)充由于硬件過時(shí)等原因造成的硬件缺失,并創(chuàng)建一套軟件程序資源可以運(yùn)行的模擬運(yùn)行環(huán)境,其容許操作系統(tǒng)在不同的硬件系統(tǒng)上運(yùn)行,此外仿真還可以實(shí)現(xiàn)軟件程序資源的跨操作系統(tǒng)運(yùn)行。通過模擬技術(shù),可以實(shí)現(xiàn)依托虛擬計(jì)算機(jī)捕捉源代碼、可執(zhí)行程序、運(yùn)行的基礎(chǔ)軟件環(huán)境以及軟件安裝和運(yùn)行所需的其他重要屬性信息,從而在其他計(jì)算機(jī)上,或其他軟件環(huán)境中再現(xiàn)該軟件的運(yùn)行環(huán)境。很多專家認(rèn)為其可以實(shí)現(xiàn)軟件程序資源的高級(jí)別保存。近年很多正在使用的模擬器和虛擬計(jì)算系統(tǒng)可以被用于該策略,如開放源代碼再現(xiàn)性工具ReproZip等,但實(shí)際應(yīng)用還需要結(jié)合實(shí)際的保存需求,并進(jìn)行嚴(yán)格的測(cè)試。采用仿真策略,可以減少由于硬件過時(shí)導(dǎo)致軟件保存失效的風(fēng)險(xiǎn),這顯然是技術(shù)保存無法實(shí)現(xiàn)的。但是,仿真策略也存在一定的缺陷:首先,仿真硬件的構(gòu)建顯然是一項(xiàng)非常耗費(fèi)計(jì)算資源的工作;其次,仿真器的維護(hù)也是一個(gè)極其困難的命題,很多仿真器可能根本無法構(gòu)建待保存軟件安裝和運(yùn)行所需技術(shù)環(huán)境的所有特征,因此為盡可能模擬原始技術(shù)環(huán)境,必須進(jìn)行大量的測(cè)試和調(diào)整;此外,仿真技術(shù)的可信性是一個(gè)核心問題,仿真技術(shù)平臺(tái)與原始技術(shù)平臺(tái)有何不同,哪些差異是可以接受的,這些差異是否會(huì)造成原始目標(biāo)的偏離,這些都是需要考慮的問題。同時(shí),仿真器的開發(fā)和使用也同樣伴隨一系列的知識(shí)產(chǎn)權(quán)問題。
3.4 虛擬化
虛擬化技術(shù)可以實(shí)現(xiàn)將現(xiàn)有的計(jì)算機(jī)硬件整合成一個(gè)統(tǒng)一的資源池,從一個(gè)特定的硬件環(huán)境中模擬出另一個(gè)不同的系統(tǒng)環(huán)境,容許多個(gè)應(yīng)用系統(tǒng)并發(fā)地在同一個(gè)硬件上運(yùn)行[10]。虛擬化系統(tǒng)中每個(gè)應(yīng)用軟件都是獨(dú)立的,都可以直接訪問底層的硬件資源。基于這一特性,可以將軟件程序資源安裝在虛擬機(jī)上,通過虛擬機(jī)監(jiān)控器與底層硬件系統(tǒng)相互隔離,以實(shí)現(xiàn)底層硬件系統(tǒng)對(duì)上層軟件程序資源的透明,其在一段時(shí)期內(nèi)有效保證了底層硬件運(yùn)行環(huán)境的穩(wěn)定性。虛擬化策略與仿真策略雖然類似,但并不相同,不同的是,虛擬化策略必須依托底層硬件運(yùn)行,對(duì)底層硬件的依賴性較強(qiáng),而且虛擬化策略不像仿真策略那樣資源使用密集,例如依托X86 CPU體系結(jié)構(gòu)的通用處理器構(gòu)建底層虛擬化平臺(tái),就可以延長軟件程序資源的生命周期,為軟件程序資源提供了良好的技術(shù)保護(hù)。但不容忽視虛擬化策略對(duì)硬件的強(qiáng)依賴性會(huì)導(dǎo)致該策略在很多情況下失效。此外,虛擬化系統(tǒng)本身也存在技術(shù)更替頻繁以及知識(shí)產(chǎn)權(quán)等諸多問題。
3.5 軟件翻譯與軟件移植
軟件翻譯一直以來是計(jì)算機(jī)科學(xué)界公認(rèn)的軟件延續(xù)策略之一。依托代碼轉(zhuǎn)換器可以將用一種語言編寫的源代碼轉(zhuǎn)換為另一種語言。例如,SGJ(SegaGensisJava,SGJ)已用于將 SegaGensisBasic編寫的視頻游戲轉(zhuǎn)換為Java。該方法適用于那些僅具有少量源代碼的應(yīng)用程序,但對(duì)于含有大量源代碼的軟件,轉(zhuǎn)換難度較大。此外,該策略依托于原始源代碼和文檔的完整性,如果源代碼和相關(guān)文檔有所缺失,該策略將無法有效實(shí)施。另外一種與軟件翻譯相關(guān)的方法是軟件移植。軟件移植主要用于保證軟件程序資源能夠在新技術(shù)環(huán)境下重用,例如保證應(yīng)用系統(tǒng)在不同操作系統(tǒng)或不同硬件架構(gòu)上運(yùn)行。目前,軟件移植的主要類型有二進(jìn)制移植(僅移植可執(zhí)行文件)和源代碼移植(移植源語言表達(dá)方式)[11]。二進(jìn)制移植僅限于在極其相似的環(huán)境間遷移,而源代碼移植的前提是源代碼可獲取,且該方法可能會(huì)修改一個(gè)或多個(gè)軟件單元及其應(yīng)用環(huán)境。由于軟件移植的局限性,其在軟件程序資源保存的實(shí)施過程中,利用率不如軟件翻譯高,一般僅用于幫助保存機(jī)構(gòu)解決技術(shù)過時(shí)等問題。
3.6 模擬遷移結(jié)合
模擬遷移結(jié)合的方式是近年部分專家新提出的一種保存策略。但Anderson等人指出,用于資源保存的模擬器本身也是一種數(shù)字對(duì)象,一段時(shí)期后也同樣會(huì)過期[12]。當(dāng)硬件范式更新時(shí),基于模擬策略的軟件程序資源保存可采用兩種策略,一種是在最新硬件上重建一套模擬器,以保證原保存數(shù)字資源的有效性和完整性;另一種是利用模擬器的自我遷移能力,保證軟件程序資源保存的有效性,避免重建模擬器所耗費(fèi)的大量人力和物力資源。由于目前該方法尚未廣泛使用,因此其易用性和可行性尚待進(jìn)一步考量。
4 軟件程序資源長期保存的未來發(fā)展建議
軟件程序資源長期保存涉及的內(nèi)容比較廣泛,需要多個(gè)專業(yè)硬件和軟件的副本、先進(jìn)的技術(shù)知識(shí)和大量的實(shí)踐活動(dòng),因此軟件程序資源保存所需要的資金、技術(shù)、人力等資源非常巨大,僅憑借單一機(jī)構(gòu)的力量難以很好地完成保存任務(wù)。國際上的主流做法是采用合作保存的模式,且合作形式多樣[13],有本國圖書館間的合作、跨國跨機(jī)構(gòu)的合作,還有圖書館與科研機(jī)構(gòu)、商業(yè)機(jī)構(gòu)、大學(xué)等之間的合作。目前,國際上已經(jīng)有了幾個(gè)比較典型的合作案例。如2017年4月,聯(lián)合國教育、科學(xué)以及文化組織(教科文組織)和法國國家計(jì)算機(jī)科學(xué)和自動(dòng)化研究所(INRIA)就INRIA合作發(fā)起的軟件遺產(chǎn)項(xiàng)目。該項(xiàng)目“旨在為后代建立一個(gè)通用和常年的軟件檔案”[14]?!败浖Wo(hù)網(wǎng)絡(luò)”項(xiàng)目也是一個(gè)基于合作的保存項(xiàng)目,其旨在建立一個(gè)合作聯(lián)盟,該項(xiàng)目通過主辦網(wǎng)絡(luò)研討會(huì)的方式,宣傳軟件資源保存的重要性、技術(shù)方案及實(shí)施途徑等重要的保存信息。項(xiàng)目下設(shè)多個(gè)子項(xiàng)目,主要包括“軟件保護(hù)合理使用最佳實(shí)踐手冊(cè)項(xiàng)目”“軟件維護(hù)和仿真基礎(chǔ)設(shè)施項(xiàng)目”和“促進(jìn)保存實(shí)踐:圖書館、檔案館和博物館的軟件保存項(xiàng)目”等。此外,由JISC資助的軟件可持續(xù)研究項(xiàng)目也是一項(xiàng)研究軟件長期可持續(xù)發(fā)展的全國性項(xiàng)目,其在軟件可持續(xù)發(fā)展方面的很多研究都為軟件程序資源的保存實(shí)踐提供了有益參考。
我國軟件程序資源長期保存可借鑒國際上的主流做法,增強(qiáng)社會(huì)各界人士對(duì)我國軟件程序資源長期保存的危機(jī)意識(shí)。在宏觀上將軟件程序資源的長期保存融入國家信息化發(fā)展戰(zhàn)略,通過宏觀規(guī)劃、頂層設(shè)計(jì),從軟件程序資源保存的角度進(jìn)一步完善我國信息資源長期保存的政策體系,通過建立明確的責(zé)任體系,容許其他社會(huì)機(jī)構(gòu)參與軟件程序資源長期保存事務(wù)的處理,以期發(fā)揮社會(huì)組織的力量;在微觀上將軟件程序資源的長期保存融入各保存機(jī)構(gòu)的日常業(yè)務(wù),在明確職責(zé)的前提下,促進(jìn)各責(zé)任主體可以積極開展不同層次、不同領(lǐng)域、不同主體的合作。未來可以從以下幾個(gè)方面入手促進(jìn)我國軟件程序資源長期保存的發(fā)展:
4.1 完善合作機(jī)制,明確責(zé)任分工
完善的合作保存機(jī)制是開展軟件程序資源長期保存成功與否的關(guān)鍵因素之一,也是合作機(jī)構(gòu)間開展合作與交流的基礎(chǔ)。由于軟件程序資源的保存工作具有廣泛的社會(huì)性,涉及技術(shù)、法律、設(shè)備等諸多內(nèi)容,因此需要建立一系列的政策、制度加以規(guī)范。根據(jù)我國國情,結(jié)合國際主流做法,可以由國家成立專門的機(jī)構(gòu)主導(dǎo)工作,從宏觀規(guī)劃著手完善我國的長期保存政策、策略和制度,對(duì)全國性的研究與實(shí)踐工作進(jìn)行統(tǒng)籌協(xié)調(diào)和管理。根據(jù)合作者各自的優(yōu)勢(shì)和劣勢(shì)明確各成員應(yīng)當(dāng)承擔(dān)的職責(zé)和義務(wù),通過明確分工、責(zé)任到位、密切配合,避免重復(fù)建設(shè)和糾紛,保障合作保存工作的順利進(jìn)行。
4.2 依托現(xiàn)代信息技術(shù),構(gòu)建合作保存平臺(tái)
應(yīng)用云存儲(chǔ)、云計(jì)算等現(xiàn)代信息技術(shù)構(gòu)建合作保存平臺(tái),已成為目前合作保存平臺(tái)建設(shè)的主流做法。通過構(gòu)建支持多類別異構(gòu)終端的資源保存與服務(wù)平臺(tái),建立跨區(qū)域的軟件程序資源長期保存與服務(wù)體系。堅(jiān)持以用戶需求為導(dǎo)向,通過平衡各合作方的利益,有效整合保存資源,優(yōu)化保存結(jié)構(gòu),實(shí)現(xiàn)整體協(xié)同效應(yīng)。通過共享保存成果,促進(jìn)長期保存技術(shù)的研究與交流,保證軟件程序資源長期保存的良性發(fā)展。
4.3 協(xié)調(diào)多渠道資金,建立有效資金保障體系
軟件程序資源的長期保存是一項(xiàng)長期的系統(tǒng)工程,需要穩(wěn)定的經(jīng)費(fèi)來源和資金保障。從國外部分長期保存項(xiàng)目看,很多保存項(xiàng)目都擁有多種渠道的經(jīng)費(fèi)來源,這些項(xiàng)目不但擁有來自政府的經(jīng)費(fèi)支持,還有來自各種基金會(huì)、公司、民間組織的資金支持,以保證項(xiàng)目的長期資金投入。有些國家為保障數(shù)字資源長期保存項(xiàng)目擁有可靠的經(jīng)費(fèi)保障,還針對(duì)保存項(xiàng)目資金制定了相關(guān)的法規(guī),以避免因人員變動(dòng)等原因影響資金的落實(shí)。目前,我國各保存項(xiàng)目的資金來源以國家或政府機(jī)構(gòu)的專項(xiàng)投資為主,然而對(duì)于軟件程序資源保存而言,其支持力度還遠(yuǎn)遠(yuǎn)不夠。未來,可以在進(jìn)一步加大政府支持力度的同時(shí),通過爭(zhēng)取多渠道資金來源確保項(xiàng)目可靠資金保障體系的建立。
5 結(jié)語
軟件程序資源的長期保存既是一個(gè)迅速發(fā)展的新領(lǐng)域,也是長期保存領(lǐng)域的一個(gè)子集,與文獻(xiàn)資源的保存一樣,是數(shù)字資源長期保存領(lǐng)域不可或缺的一部分。保存機(jī)構(gòu)需要意識(shí)到軟件程序資源保存的影響因素及其可能遇到的一系列挑戰(zhàn)。如果讀取文獻(xiàn)所需的軟件沒有被有效保存,將嚴(yán)重影響未來對(duì)相應(yīng)文獻(xiàn)的研究工作。因此,面對(duì)軟件程序資源的長期保存的障礙和挑戰(zhàn),筆者認(rèn)為我國軟件程序資源長期保存可借鑒國際上的主流做法,處理好與社會(huì)企業(yè)和資本的關(guān)系,形成基于資源交換、服務(wù)拓展、價(jià)值認(rèn)同、行政導(dǎo)向的多層級(jí)社會(huì)合作機(jī)制。在宏觀上將軟件程序資源的長期保存融入國家信息化發(fā)展戰(zhàn)略,通過宏觀規(guī)劃、頂層設(shè)計(jì),從軟件程序資源保存的角度進(jìn)一步完善我國信息資源長期保存的政策體系;在中觀上,建立合理的合作保存機(jī)制,容許其他社會(huì)機(jī)構(gòu)參與軟件程序資源長期保存事務(wù)的處理,通過建立明確的責(zé)任體系,積極開展不同層次、不同領(lǐng)域、不同主體的合作,以期發(fā)揮社會(huì)組織的力量;在微觀上將軟件程序資源的長期保存融入各保存機(jī)構(gòu)的日常業(yè)務(wù),在明確職責(zé)的前提下,促進(jìn)各責(zé)任主體可以積極開展不同層次、不同領(lǐng)域、不同主體的合作。通過協(xié)調(diào)各方關(guān)系,積極擁抱社會(huì)合作力量,實(shí)現(xiàn)業(yè)態(tài)融合。
參考文獻(xiàn):
CONWAY E.Towards a methodology for software preservation[EB/OL].[2011-02-18].http://www.cdlib.org/iPres/presentations/ConwaySoftware.pdf.
顧立平,樊舒,陳新蘭.軟件長期保存的策略研究[J].農(nóng)業(yè)圖書情報(bào),2019,31(10):4-11.
劉青,邵軍.原生數(shù)字新聞應(yīng)用保存與存檔面臨的挑戰(zhàn)[J]. 蘭臺(tái)世界,2018(6):49-52.
魏仁選,周祖德,姜德生.軟件重用與移植的比較研究[J].計(jì)算機(jī)工程與應(yīng)用, 2002(21):42-45.
趙玉宇.國外數(shù)字資源長期保存的熱點(diǎn)問題研究[J]. 圖書館建設(shè),2011(6):19-27.
張靜文.國外數(shù)字游戲長期保存的研究進(jìn)展[J]. 圖書情報(bào)工作, 2019,63(21):137-144.
熊琦.“用戶創(chuàng)造內(nèi)容”與作品轉(zhuǎn)換性使用認(rèn)定[J].法學(xué)評(píng)論,2017,35(3):64-74.
World Intellectual Property Organization (WIPO). Berne convention for the protection of literary and artistic works [EB/OL]. [2020-07-13]. https://www.wipo.int/treaties/en/text.jsp?file_id=283698.
CORRADO E M, SANDY H M.Digital preservation for libraries, archives, and museums [M]. 2nd ed.Lanham, MD: Rowman & Littlefield,2017:45-50.
燕楊. 基于虛擬化技術(shù)的電子文件長期保存策略探析[J]. 檔案天地, 2017(12):48-51.
魏仁選,周祖德,姜德生.軟件重用與移植的比較研究[J].計(jì)算機(jī)工程與應(yīng)用, 2002(21):42-45.
CASTAGNE M.Consider the source: the value of source code to digital preservation strategies[M]. SLIS Stu- dent ResearchJournal ,2017,2(2): 48-58.
王若琳,劉莎,胡增存,等.國外圖書館數(shù)字資源長期保存策略探析[J]. 圖書館, 2014(2):56-59.
State News Service. Agreement on software preservation signed at UNESCO[R/OL].[2021-01-20].https://en.unesco.org/news/agreement-software-preservation-signedunesco
董曉莉 國家圖書館研究館員。 北京,100081。
(收稿日期:2021-04-02 編校:劉 明,謝艷秋)
3686500338262