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