,
“互聯(lián)網(wǎng)+”戰(zhàn)略的本質(zhì)是信息資源的高度融合,用戶可以借助互聯(lián)網(wǎng)以按需、無限擴(kuò)展的方式獲取所需硬件、軟件、平臺和服務(wù)等資源。而數(shù)字圖書館(DL)用戶要做到對泛在數(shù)據(jù)的自由獲取,實現(xiàn)6any(anyone、anywhere、anytime、any device、anyway、any knowledge)的終極目標(biāo),離不開大數(shù)據(jù)(Big Data)環(huán)境提供的海量的、實時更新的數(shù)據(jù)資源,因此數(shù)字圖書館的服務(wù)表現(xiàn)為泛在數(shù)據(jù)環(huán)境下的動態(tài)性?;诖耍疚臄M借助于云計算(Cloud Computing)的理念,融合云計算和對等網(wǎng)絡(luò)(P2P Network)的環(huán)境和技術(shù),將服務(wù)器集群和網(wǎng)絡(luò)節(jié)點以對等架構(gòu)連接,并采用虛擬資源池的模式存儲資源;以此為基礎(chǔ),利用Agent(代理)整合各綜合型數(shù)字圖書館和專業(yè)數(shù)字圖書館的資源,以期實現(xiàn)動態(tài)服務(wù)的聚合,提高用戶服務(wù)的效率。
最早將云計算理念應(yīng)用到數(shù)字圖書館領(lǐng)域的是中國高等教育保障系統(tǒng)(CALIS),該系統(tǒng)構(gòu)建了一種多級云服務(wù)體系,實現(xiàn)了DL的云計算解決方案;[注]王文清、陳凌:《CALIS數(shù)字圖書館云服務(wù)平臺模型》,《大學(xué)圖書館學(xué)報》2009年第4期,第13-18頁。胡新平等則根據(jù)云計算共享軟硬件平臺的思想,提出了一種分層的云服務(wù)結(jié)構(gòu),可以構(gòu)建專業(yè)的或區(qū)域性的DL;[注]胡新平等:《區(qū)域云數(shù)字圖書館構(gòu)建研究》,《情報理論與實踐》2010年第34卷第2期,第77-84頁。魏達(dá)賢等分析了分級DL的共建共享模式,提出了基于云計算的國家數(shù)字圖書館“服務(wù)云”架構(gòu);[注]魏達(dá)賢、謝強:《基于云計算的國家數(shù)字圖書館基層“服務(wù)云”研究》,《國家圖書館學(xué)刊》2012年第4期,第40-47頁。Wei M等探討了云技術(shù)應(yīng)用于DL的優(yōu)勢與前景,為云數(shù)字圖書館的構(gòu)建提供了理論支持。[注]M. Wei, F. Wang and X. Xu, “Development of Digital Libraries on the Basis of Cloud Computing,” 2012 International Conference on Computer Science and Service System, 2012, pp.304-306.目前在數(shù)字圖書館應(yīng)用對等架構(gòu)方面的研究,主要是利用P2P技術(shù)研究其模型和框架以及分布式資源的組織和檢索。Doulkeridis C等將P2P對等連接思想應(yīng)用于DL中,設(shè)計了DESENT系統(tǒng)模型;[注]C. Doulkeridis,K. Norvag and M. Vazirgiammis, “Scalable Semantic Overlay Generation for P2P-based Digital Libraries,” in J. Gonzalo et al., eds., Research and Advanced Technology for Digital Libraries, Berlin and Heidelberg: Springer, 2006, pp.26-38.Bender等設(shè)計了一個用于數(shù)字圖書館資源的協(xié)同搜索的MINERVA項目;[注]M. Bender, S. Michel, C. Zimmer and G. Weikum, “The MINERVA Project: Towards Collaborative Search in Digital Libraries Using Peer-to-Peer Technology,” in C. Turker, M. Agosti and H. J. Schek, eds.,Peer-to-Peer, Grid, and Service-Orientation in Digital Library Architectures, Berlin and Heidelberg: Springer, 2005, pp.80-95.趙捧未等研究了一種基于superpeer對等網(wǎng)的個人DL模型,并以此為基礎(chǔ)探討虛擬社區(qū)的知識組織;[注]趙捧未、 郭利偉:《基于Super-P2P的個人數(shù)字圖書館虛擬社區(qū)知識組織模型構(gòu)建研究》,《情報理論與實踐》2010年第33卷第6期,第108-112頁。劉成山等和Liu C等給出了基于對等云的數(shù)字圖書館架構(gòu),描述了系統(tǒng)實現(xiàn)的關(guān)鍵技術(shù);[注]劉成山等:《一種基于對等云的數(shù)字圖書館架構(gòu)》,《情報理論與實踐》2013年第36卷第11期,第114-117頁;C. Liu, P. Zhang and Y. Li, “An Architecture of Digital Library Based on Inter Cloud,” 2014 Seventh International Joint Conference on Computational Sciences and Optimization (CSO), IEEE, pp.566-570.Li Q等提出了基于模型的多云集成結(jié)構(gòu),并描述了集成服務(wù)的策略。[注]Q. Li, Z. Wang and W. Li, “Model-based Services Convergence and Multi-clouds Integration,” Computers in Industry, Vol.64, No.7, 2013, pp.813-832.
關(guān)于服務(wù)聚合方面的研究主要基于工作流模型、人工智能和圖的方法。[注]王陽:《動態(tài)服務(wù)聚合算法研究》,碩士學(xué)位論文,電子科學(xué)研究院,2011年。CAFISE[注]Y. Han, Z. Zhao and G. Li, “CAFIS: An Approach to Enabling Adaptive Configuration of Service Grid Applications,” Journal of Computer Science and Technology, Vol.18, No.4, 2003, pp.485.是一種基于工作流的服務(wù)聚合方法,它將工作流分散到服務(wù)匹配的各個活動中,使每個被選取的服務(wù)是階段最優(yōu)(貪婪算法),從而提高服務(wù)查找與綁定的效率;基于人工智能的服務(wù)聚合方法[注]S. McIlraith and T. Son, “Adapting Golog for Composition of Semantic Web Services,” KR, 2002, No.2, pp.482-493.可以動態(tài)地生成服務(wù)聚合方案并實時鏈接具體的Web服務(wù),但它的查全率和查準(zhǔn)率并不理想;基于圖的聚合方法[注]R. Zhang, I. B. Arpinar and B. Aleman-Meza, “Automatic Composition of Semantic Web Services,” ICWS, 2003, No.3, pp.38-41.則不需要過多地形式化表示和推理,實現(xiàn)較為簡單,但因搜索方向不穩(wěn)定,聚合空間比較大,使得算法的執(zhí)行效率不高。
綜上可以看出,當(dāng)前對等思想和云技術(shù)應(yīng)用于DL領(lǐng)域的研究,主要是利用云計算的存儲優(yōu)勢實現(xiàn)簡單的云服務(wù),或者在對等技術(shù)基礎(chǔ)上研究分布式DL結(jié)構(gòu)模型、資源組織和信息/語義檢索,缺乏利用對等云平臺上進(jìn)行DL動態(tài)服務(wù)聚合的應(yīng)用研究。為此本文提出一種基于對等云(P2P Cloud)的DL架構(gòu),并以此為基礎(chǔ)研究泛在資源環(huán)境下DL的動態(tài)服務(wù)聚合的應(yīng)用。
公有云是由云服務(wù)提供商提供的,比如Google的Maps、Flex的FlexViewer等,它們是完整成熟的服務(wù)系統(tǒng);而在處理縱向關(guān)系比較明顯的服務(wù)方面,私有云更具優(yōu)勢,但私有云的處理能力非常有限,難以應(yīng)對瞬時出現(xiàn)的高負(fù)載。因此將公有云和私有云結(jié)合起來組成混合云模式——低載時利用私有云的服務(wù),而在高載時將超荷的訪問量轉(zhuǎn)接到公有云服務(wù)上——將有效提高云服務(wù)系統(tǒng)的運行效率。當(dāng)然混合云不是簡單地提供二者的混合服務(wù),它需要對公有云和私有云的服務(wù)進(jìn)行準(zhǔn)確有效的切換和融合,這涉及到整個云服務(wù)系統(tǒng)之間數(shù)據(jù)交換的處理方式、數(shù)據(jù)交換的安全性等方面的問題,與此同時還要盡量減少公有云與私有云之間數(shù)據(jù)的傳遞。本文假定DL系統(tǒng)的海量資源采用不同的云進(jìn)行存儲,將這些云按照P2P結(jié)構(gòu)進(jìn)行連接,這樣就構(gòu)成了一種對等云模式下的DL架構(gòu),如圖1。
在圖1的數(shù)字圖書館系統(tǒng)中,在泛在資源環(huán)境下,考慮到應(yīng)用終端的不同和數(shù)據(jù)格式的異構(gòu),需要涉及到服務(wù)需求協(xié)議、服務(wù)提供水平等。在服務(wù)需求方面,HAIL(High Availability and Integrity Layer)提供了比較成熟的解決方案,它可以提供一套有效完整的數(shù)據(jù)存儲的軟件架構(gòu),用于解決云間的數(shù)據(jù)交換,同時可按照用戶級別設(shè)置優(yōu)先級,不同優(yōu)先級的用戶可以得到不同質(zhì)量的服務(wù)。[注]K. Bowers, A. Juels and A. Oprea, “HAIL: A High-Availability and Integrity Layer for Cloud Storage,” CCS, November 2009, pp.187-198.
圖1 一種基于對等云的DL架構(gòu)
在DL系統(tǒng)中任一節(jié)點的資源都要通過統(tǒng)一資源標(biāo)識(URI)唯一地標(biāo)識定位,在協(xié)同處理過程中可利用一個位置獨立的全局名字服務(wù)器(Global Name Server: GNS)進(jìn)行資源類別號到云入口IP地址的解析,從而可以快速定位到可能的云資源。
依照系統(tǒng)論功能劃分層次的思想,本文將數(shù)字圖書館系統(tǒng)分為物理層(Physical Layer)、互聯(lián)層(Internet Layer)和應(yīng)用層(Application Layer),如圖2。
圖2 DL系統(tǒng)邏輯層次
1.物理層是云計算基礎(chǔ)設(shè)施即服務(wù)(IaaS)的硬件和資源組成,它是數(shù)字圖書館對等節(jié)點的物理互聯(lián),包括所有公有云和私有云,以及因特網(wǎng)上的泛在資源。物理層的這些硬件和資源是數(shù)字圖書館動態(tài)服務(wù)的數(shù)據(jù)基礎(chǔ),為互聯(lián)層提供存儲和計算的資源保障。
2.互聯(lián)層對應(yīng)于云計算的平臺即服務(wù)(PaaS),可采用Chord、CAN、Kademlia等分布式哈希路由算法(DHT)實現(xiàn)各節(jié)點的對等互聯(lián)。圖中的虛擬機(jī)制(VM)表明系統(tǒng)采用虛擬文件的方式進(jìn)行資源的存儲;定位資源機(jī)制(LRM)是資源定位策略,建立起節(jié)點和資源地址空間之間的映射,實現(xiàn)節(jié)點的路由查找和資源定位。
3.應(yīng)用層為數(shù)字圖書館系統(tǒng)的云客戶端提供應(yīng)用接口,使用戶可以利用計算機(jī)、移動設(shè)備等云終端接入設(shè)備獲得即時通訊、云端存儲、電子商務(wù)、ERP等各種應(yīng)用服務(wù)。該層可以理解為云計算的軟件即服務(wù)(SaaS)。
系統(tǒng)每個節(jié)點的資源采用文件(File)作為基本的組織和存儲單元,每個文件都有一個唯一的名字空間URI進(jìn)行資源的定位,URI包括文件所在節(jié)點的網(wǎng)絡(luò)地址和文件編號FID。節(jié)點地址、FID、MetaData等信息組成記錄(Record),用于聲明節(jié)點在對等云系統(tǒng)中位置和資源。所有節(jié)點的資源需要通過虛擬化引擎將文件模擬到存儲資源池中,用戶可以通過虛擬化平臺提供的通用服務(wù)接口得到FID,然后取得所需的數(shù)據(jù)資源。
冗余存儲是確保數(shù)據(jù)可靠性的常用方法,比如Hadoop的HDFS系統(tǒng)和Google的GFS系統(tǒng)都采用了這種方法,該方法在DL系統(tǒng)的不同節(jié)點為每份文件存儲多個拷貝,保證了系統(tǒng)數(shù)據(jù)的魯棒性和經(jīng)濟(jì)性。
基于對等云的數(shù)字圖書館系統(tǒng)的聚合,包括統(tǒng)一的用戶服務(wù)界面、異構(gòu)數(shù)據(jù)的虛擬化、進(jìn)程層面的業(yè)務(wù)集成。本文提出一種利用Agent實現(xiàn)動態(tài)服務(wù)的聚合的方法。這些Agent位于云環(huán)境的邊界,通過復(fù)雜的描述邏輯支持?jǐn)?shù)據(jù)的交互和通信的傳遞,實現(xiàn)云服務(wù)的讀取和封裝。
云計算的API是公有云應(yīng)用服務(wù)聚合的關(guān)鍵,比如IBM、Microsoft、Google等都提供了一種簡單易用的API云應(yīng)用接口,系統(tǒng)可以利用這些API進(jìn)行云服務(wù)的聚合。在聚合服務(wù)中需要提供Web服務(wù)封裝模塊,目的是創(chuàng)建一個基于這些API的Web服務(wù),服務(wù)封裝模塊需要按照本地標(biāo)準(zhǔn)接口寫入實現(xiàn)特定功能的Java代碼,這些代碼被封裝為Web服務(wù)。比如通過封裝和調(diào)用Google地圖的API,可以獲得包括地理數(shù)據(jù)(距離、位置等)在內(nèi)的功能,并顯示在自己的網(wǎng)頁上。通常封裝模塊會自動生成一個模板,為用戶提供一系列指南來設(shè)置相關(guān)參數(shù)及相關(guān)功能的Java代碼。系統(tǒng)還需要一個服務(wù)協(xié)調(diào)模塊組織多個相關(guān)Web服務(wù),從而實現(xiàn)多個API的Web服務(wù)的聚合。
1.交互模塊
交互模塊主要由用戶Agent實現(xiàn),其任務(wù)是輸入用戶服務(wù)請求,然后提交給解析Agent,并把聚合模塊的結(jié)果返回給用戶。
2.注冊模塊
服務(wù)注冊模塊通常包括注冊中心、搜索Agent和定位Agent,其中注冊中心的作用是存儲元數(shù)據(jù)(用于描述服務(wù)的屬性、功能等)、實現(xiàn)服務(wù)注冊、提供服務(wù)查找等;多個服務(wù)搜索Agent并行搜索云上的服務(wù)鏈接,獲取其服務(wù)描述文件,并注冊到服務(wù)注冊中心;服務(wù)定位Agent的作用是在多個服務(wù)注冊中心中快速找到所需的服務(wù),每個定位Agent負(fù)責(zé)一定數(shù)量的注冊中心,建立基于服務(wù)分類、語義描述和空間索引的定位機(jī)制。
3.解析模塊
服務(wù)解析模塊由解析Agent 和本體Agent 實現(xiàn),對用戶輸入的自然語言,解析Agent 首先解析用戶的服務(wù)請求,利用規(guī)則模板進(jìn)行信息抽取,在本體Agent 的協(xié)助下將服務(wù)請求映射為抽象任務(wù)的組合,實現(xiàn)語義表達(dá);然后通過服務(wù)索引Agent匹配注冊中心的服務(wù),將抽象任務(wù)對應(yīng)到具體的一個或多個服務(wù);本體Agent的作用是創(chuàng)建、映射和進(jìn)化本體,提供Agent 之間通信的語義解釋。
4.聚合模塊
服務(wù)聚合模塊由工作流Agent、封裝Agent和聚合Agent組成,工作流Agent的作用是制定具體的可執(zhí)行方案,并對相應(yīng)的封裝Agent進(jìn)行實例化;而封裝Agent負(fù)責(zé)不同節(jié)點間服務(wù)資源的透明使用,并平衡服務(wù)資源的負(fù)載;聚合Agent的任務(wù)是執(zhí)行聚合算法,對服務(wù)資源的整合過程進(jìn)行優(yōu)化。
5.聚合算法
動態(tài)服務(wù)聚合的基本目標(biāo)是將各資源節(jié)點按照服務(wù)需求,生成最優(yōu)聚合樹,明確節(jié)點之間的關(guān)系。聚合算法如圖3。
圖3 聚合算法
根據(jù)以上算法進(jìn)行實驗驗證。實驗環(huán)境配置為3.0GHz CPU/1.0GB內(nèi)存/WinXP OS/MySQL數(shù)據(jù)庫,開發(fā)環(huán)境采用IBM的Eclipse4.4,開發(fā)語言為Java,采用ICEBE05[注]ICEBE05, http:∥www.ws-challenge.org/。作為服務(wù)測試集,描述語言為WSDL。實驗記錄測試集數(shù)量分別為1000、2000、3000和4000時算法的響應(yīng)時間和成功率,并與基于圖的搜索算法ASC-Graph[注]鄒金安、楊艷萍:《圖在自動Web服務(wù)組合中的應(yīng)用研究》,《小型微型計算機(jī)系統(tǒng)》2008年第11期,第2020-2026頁。進(jìn)行對比,如圖4。
圖4 算法的響應(yīng)時間和成功率對比
實驗結(jié)果顯示,與基于圖的搜索算法相比,算法在響應(yīng)時間和成功率(都接近1)方面差別不大,表明算法具有較好的可用性和穩(wěn)定性。實驗結(jié)果還表明響應(yīng)時間上升較為平緩,說明該算法具有較好的可擴(kuò)充性。
在我國實施的“數(shù)字圖書館推廣工程”中,各省市級圖書館和專業(yè)圖書館的資源進(jìn)行互聯(lián)時,考慮到經(jīng)濟(jì)性和安全性,各省市級圖書館和專業(yè)圖書館的節(jié)點資源可采用私有云的方式存儲,節(jié)點之間連接為對等云結(jié)構(gòu)。同時考慮到泛在環(huán)境下,用戶的需求可能不止是該系統(tǒng)中的資源,還需要用到外部互聯(lián)網(wǎng)的數(shù)據(jù)資源,外部的資源可以按照公有云的模式提供服務(wù)。比如某段時間某個地區(qū)地震活動頻繁,用戶對地震相關(guān)知識的需求短時間內(nèi)增大,此時需要用到大量的專業(yè)圖書館的數(shù)據(jù);在地震后發(fā)生的短時間內(nèi),大量的用戶可能訪問電子地圖,對系統(tǒng)造成訪問沖擊,若此時轉(zhuǎn)接到公有云服務(wù),這部分?jǐn)?shù)據(jù)使用公有云的資源,就可以緩解訪問的服務(wù)瓶頸。
針對數(shù)字圖書館用戶對泛在數(shù)據(jù)自由獲取的動態(tài)服務(wù)需求,本文利用對等系統(tǒng)和云存儲的優(yōu)勢,提出一種對等連接的云計算結(jié)構(gòu),實現(xiàn)低成本、高效率地存儲數(shù)字圖書館的分布式資源,然后給出動態(tài)服務(wù)聚合算法,利用多個Agent實現(xiàn)云服務(wù)的聚合,進(jìn)一步的研究將利用Petri網(wǎng)解決公有云和私有云資源讀取時的并發(fā)問題。