唐明偉 (南京審計學院管理科學與工程學院 江蘇 南京 211815)蔣 勛 (南京大學信息管理學院 江蘇 南京 210093)
面向資源架構的數字圖書館*
唐明偉(南京審計學院管理科學與工程學院 江蘇 南京 211815)
蔣 勛(南京大學信息管理學院 江蘇 南京 210093)
目前,主流數字圖書館系統架構已無法滿足大數據時代資源共享和獲取的迫切需求。對此,基于面向資源架構的數字圖書館,給出了對應的開發方法。實驗表明,基于面向資源架構的數字圖書館,其數據管理遵循標準的HTTP協議,不論何種形式的系統或程序,通過HTTP協議均能獲取其數據,而在授權許可下,也可以通過HTTP協議對其數據執行增加、查詢、修改和刪除操作。
數字圖書館面向資源架構資源共享
數字圖書館自20世紀90年代提出以來,經過近十年的發展,初步實現了傳統館藏資源的數字化,使讀者可以方便地獲取各類數字資源,也加強了圖書館之間的合作[1]。然而隨著大數據時代的來臨,“資源冗余”和“資源孤島”的出現降低了讀者獲取資源的效率,同時也導致了數字圖書館的重復建設和資源浪費。要解決這一問題,比較有效的方法是改造數字圖書館的系統架構,使其便于實現資源共享,以此促進各數字圖書館之間資源的互聯互通,從總體上優化資源配置,最終提高數字資源的利用率。
近年來,國內外傾向于借助互聯網及Web的特性對數字圖書館架構進行研究。
Rodrygo L.T. Santos等人提出了一種基于SOAP (Simple Object Access Protocol,簡單對象訪問協議) Web服務的數字圖書館組件式構建框架,并給出了向導式構建工具[2]。利用SOAP Web服務構建的數字圖書館,其資源可獨立于程序發布,能夠便于被其他數字圖書館識別,從而為數字圖書館之間的信息共享奠定了技術基礎。唐明偉等人構建了一種基于RESTful Web服務的圖書管理系統,該系統充分利用Web和HTTP協議的特點,既可實現系統數據的規范管理,又可實現數據的輕量發布和共享[3]。Carlo Meghini等人提出了一種可以識別、描述和發現Web 上PDF文檔、視頻等數字對象的數字圖書館數據模型,應用該模型,可以使各數字圖書館之間能夠互相識別和共享資源[4]。ngel Garíc a-Crespo等人在SWAN框架的基礎上提出了一種使用領域本體來標注數字資源的數字圖書館框架[5]。經過本體標注后的數字資源具備更為完整的屬性描述,易于被程序識別。喻昕和王敬一結合云計算技術構建了數字圖書館云服務平臺,并對其服務流程和運行機制進行了研究[6]。利用云計算技術,數字資源以服務的方式對外提供,可實現資源的跨平臺共享。歐石燕構建了面向關聯數據的語義數字圖書館資源描述與組織框架,該框架使用RDF對圖書館資源進行語義描述,通過本體實現不同元數據類型和格式間的語義互操作,再使用關聯數據對本體化的元數據進行再組織,最終將資源發布至Web[7]。應用該框架可使圖書館資源語義化,易于實現資源共享。賀德方從資源描述、知識關聯、智能檢索和可視化呈現方面研究了基于語義技術的數字圖書館服務[8]。應用語義技術構建的數字圖書館,其資源具備自描述性和自解釋性,便于實現資源的開放,實現資源共享。Hermann Maurer和Heimo Mueller研究了Web搜索引擎的檢索特點,并充分利用專業詞典、百科全書、維基百科等在線資源集合,將Web轉換成一種數字圖書館[9]。該類數字圖書館是對現有Web資源的二次開發,可視為Web的一部分,任何自然人或程序均能方便地獲取其資源。席彩麗利用Callimachus框架創建了基于語義的數字圖書館模型,應用該模型構建數字圖書館,可以增強數字圖書館系統之間的互操作性,實現資源共享[10]。Carlo Meghini對Web基本概念URI、資源和表示進行了改進,提出了基于標識符(identifier)、資源(resource)和描述(description)的數字資源模型[11],應用該模型可以準確地標記和識別數字資源,依此建立的數字圖書館既可以準確地管理數字資源,又使其具有Web開放的特點。
上述研究中,本體、語義網及云計算等先進技術可以使數字資源開放,以此構建數字圖書館,易于實現資源共享,但這類技術的應用本身是一項復雜的工作,并不適合小規模數字圖書館的構建。基于改進的Web及SOAP Web服務的構建方法,符合目前數字圖書館Web化的趨勢,具備一定的通用性,尤其是SOAP Web服務,至今仍然是信息開放和集成的常用方法。但經過研究者的進一步研究發現,該類方法并未充分利用Web的特性,而是一種舍近求遠的應用方法,因此一種完全遵守Web規則的RESTful Web服務被逐漸提出。RESTful Web服務是面向資源架構的重要組成部分,目前,將RESTful Web服務應用至數字圖書館建設的研究并不多見,筆者雖然做了初步研究,但該研究僅僅針對圖書管理系統,對面向資源架構理論的應用研究也并不全面。針對上述研究的不足,本文將在數字圖書館系統架構領域,對面向資源架構進行應用研究,構建一種完全符合Web規則的資源開放的數字圖書館架構,以滿足目前大數據環境下資源共享的迫切需求,從而為進一步構建數字圖書館聯盟,實現一定范圍數字資源的共享奠定基礎。
面向資源架構起源于2000年Roy Thomas Fielding在其博士論文中提出的表述性狀態轉移(Representational State Transfer,簡稱REST)概念[12]。REST是一種對良好Web應用進行定義的網絡架構模式。該論文給出了從“零Web[1]”推導至“REST式Web”所需經歷的六個步驟,但并未給出具體的實現方案。在這個基礎上,L e on a r d Richardson等人[13]對REST進行了擴展研究,在其專著RESTful Web Services中,對REST給出了更詳細的解釋,提出了RESTful Web服務的概念,并對面向資源架構一詞進行了系統的解釋和定義[2]。
RESTful Web服務是符合REST模式的Web服務。Leonard Richardson等人認為符合REST模式即每次Web請求均采取HTTP方法,且所有作用域信息均包含在URI中[13]。在該前提下,RESTful Web服務將一切與業務相關的事物抽象為資源,并為每個資源設計一個唯一標識URI,該標識包含了請求的作用域信息。針對該URI,使用不同的HTTP方法發送請求,則實現對應資源的增加、查詢、修改和刪除操作(以下簡稱CRUD),從而完成各類業務操作。表1為使用不同HTTP方法向同一個URI提交請求時能夠實現的功能。

表1 請求方法與URI功能映射
由此可見,RESTful Web服務對外公開相關資源的URI即對外發布服務。用戶只需按照標準HTTP協議向URI發送請求即可實現對資源的相應操作。與SOAP Web服務相比,RESTful Web服務完全遵守HTTP協議,并未對其進行繁瑣的自定義封裝,不論在服務的請求和響應還是發布上,均要簡潔高效,是一種輕量級的、靈活的計算機軟件服務,體現了“網站就是Web服務”的思想[14]。面向資源架構則是一種將實際問題轉換為RESTful Web服務的方法,Leonard Richardson提出了資源、資源標識、資源表示和資源鏈接四個概念對面向資源架構進行了定義。
在Web應用中,資源是現實事物的數字化表示,通常表現為具有一定格式的文檔或數據庫表記錄等信息實體,由標識和表示兩部分組成,任何可以被命名的事物都可以成為資源;資源標識是應用交互中所涉及資源的唯一標記,也是訪問和操作資源的通用接口,每個資源有且僅有一個唯一標識,一般用經過設計的URI來表示;資源表示是資源當前狀態的數據顯示,由資源的數據、表示數據的元數據和描述元數據的元數據組成,通常為超媒體,不僅包含了核心數據,還包括了通過其他資源的URI;資源鏈接是資源之間建立聯系,實現切換的基礎。這四個概念之間的關系如圖1所示。

圖1 面向資源架構基本概念關系
這四個概念中,資源和資源標識將實際問題轉換成資源并賦予URI,而資源表示和資源鏈接則確定了資源的狀態及不同資源之間的調用關系,最終將實際問題轉換成RESTful Web服務。
3.1模型
根據上述理論特點,基于面向資源架構的數字圖書館模型如圖2所示。
如圖所示,面向資源架構的數字圖書館模型從低到高分為數據層、資源層、業務層和表示層四層,使用HTTP作為基本通訊協議。
(1)數據層
數據層是數字圖書館的基礎資源層,由各類數字資源和數據訪問接口組成。各類數據資源以數據庫表記錄的形式存在于系統數據庫中,而數據訪問接口則是針對數據庫表記錄的增加、修改、刪除和獲取四個最基本的數據操作,通過這四個操作實現對不同數字資源的管理。
(2)資源層
資源層是實現面向資源架構的核心,由REST引擎和REST資源組成。REST引擎一方面負責將數據層的數字資源通過標注,為每個不同的數字資源賦予一個URI,并通過數據封裝后對業務層開放,從而形成各種REST資源,每個REST資源具有唯一的URI,該URI也是業務層用戶通過業務層調用資源的唯一接口;另一方面,REST引擎監聽業務層發來的HTTP請求,根據不同的HTTP請求方法,調用相應的數據操作。
(3)業務層
業務層則由文獻檢索、圖書借閱、論文下載等數字圖書館各類常見業務功能組成,這些業務功能由各種不同的REST資源及其URI按照一定的業務邏輯相互組合而成。
(4)表示層
表示層則由系統界面和應用程序描述語言(Web Application Description Language,簡稱WADL)組成。系統界面即數字圖書館系統的用戶界面,是供普通用戶操作的軟件界面,一般以HTML或XML的形式展示業務層的各類功能,引導用戶完成操作 ;WADL則供軟件程序訪問,以結構化的方式存儲各類資源的訪問方法[15],其他程序可通過解析WADL實現對數字資源的自動訪問。
在該模型中,數字資源最終被改造成具有唯一URI的Web對象,任何人或程序只需要獲得對應資源的URI,在合法授權下,向該URI發送標準的HTTP請求,即可實現對應資源的CRUD操作,從而完成數字圖書館的各種業務活動。從這一過程可知,公開數字資源的URI即公開資源本身,按該模型構建的數字圖書館,擁有開放的數字資源,在授權允許條件下,不會形成資源孤島,從而可方便地實現不同數字圖書館之間數字資源的共享。
3.2開發方法
面向資源架構的數字圖書館是以資源為中心,要依照圖2所示模型將其開發成實際系統,重點在于對資源的分析、設計與實現,其主要過程如圖3所示。

圖3 面向資源架構的數字圖書館開發方法
(1)第一階段:資源分析
資源分析階段主要是確定數字圖書館涉及的資源種類和數量。一般通過需求采集和傳統的業務分析方法確定數字圖書館系統涉及的數據集,再對數據集進行分析,從中歸納出可以通過HTTP發布的特定數據,將其抽象成資源。資源是用戶直接操作的對象,一般可分為對象性資源、集合性資源和管理性資源。對象性資源是與數據對象直接相關的資源,是最小單位的資源,如一篇論文;集合性資源則是指由多個對象性資源組成的資源,如包含多篇論文的期刊;管理性資源則通常與業務無直接的邏輯關系,只是出于某種特殊需要,對多個無直接關聯的資源進行統一引用而形成的資源,如包含了論文、期刊列表的系統首頁。按照用戶訪問習慣,一般先訪問管理性資源,再訪問集合性資源,最后訪問對象性資源。
(2)第二階段:資源設計
資源設計階段主要確定已劃分資源的屬性、功能及資源之間的關系,通過命名資源、確定資源功能、設計資源表示和連通資源四個步驟來完成。
①命名資源:即設計資源的URI,URI通常由域名、路徑和請求參數共同組成。對于具有層次關系的資源,則直接采用域名和路徑的U R I對其命名,格式為h t t p// hostname/{path1} [/{path2}/{…}],如某期刊論文列表的URI為:http://hostname/journal/paperlist,而該列表下某篇論文的URI為http://hostname/journal/paperlist/11,11通常為該論文在數據庫對應表中的唯一標識。而對于同一個URI,使用同一個方法,但僅請求其中部分資源的情況,一般通過在原URI的基礎上增加URI參數的方法來對該資源命名,格式為http://hostname/{path1}[/ {path2}/{...}]?{para}={value}[&{para}={value}.....],如以REST為關鍵詞對論文列表進行查詢得到的資源,其URI為http:// hostname/journal/paperlist?keyword=REST。
②確定資源功能:資源的功能實際上在資源分析階段已經確定,此處主要是對其功能進行分類,并與HTTP的請求方法做關聯。由于一個URI通常只對應四個功能方法,因此在面對同一個URI,同一個HTTP方法時,通常使用請求參數來實現更多的功能,添加參數后獲得的資源可以視為原資源的衍生資源,如所有論文列表和檢索到的論文列表。
③設計資源表示:根據資源的功能,設計服務器返回的數據格式及內容,對于普通用戶采取HTML作為資源表示格式;而對于程序,則選擇具有自描述性的XML或JSON作為資源表示格式。
④連通資源:將各資源按照業務流程鏈接起來,以體現完整的業務處理過程,一般通過超鏈接和表單來實現。超鏈接即資源的URI,在一個資源表示中加入其他資源的URI,即可跳轉到其他資源表示,實現連通。而表單則是普通的HTML表示,其連通作用主要體現在提交時頁面的定向功能。超鏈接適用于資源的只讀請求,如查看資源;而對于需要與用戶交互的資源請求則通過表單來實現,如資源的創建、資源的條件檢索等。
(3)第三階段:資源實現
資源實現階段主要是根據設計好的資源,按照圖2所示模型,選擇相關的編程語言、工具及數據庫逐層進行開發實現。其中關于RE ST引擎和資源的實現,可通過Restlet[16]框架來實現。
本文使用Java語言、Restlet框架和MySQL數據庫,以文獻管理為業務實例開發了主數字圖書館、輔數字圖書館及一個獨立程序客戶端,用于驗證本文提出模型和方法的有效性,其中主數字圖書館文獻資源的獲取是測試的重點。
(1)主數字圖書館運行測試
主數字圖書館為面向資源架構的數字圖書館,以REST方式進行文獻數據的增加、修改、刪除和查詢操作。運行后,所有文獻的URI為http://localhost:8080/dl/resource/papers,單個文獻的URI為http://localhost:8080/dl/ resource/papers/{paperid},其中paperid是文獻在數據庫表中的唯一標識。在瀏覽器中輸入所有文獻URI,則顯示所有文獻數據。
經測試,向所有文獻URI發送POST請求,可成功發布新文獻,而針對單個URI發送GET、PUT或DELETE方法,則可以成功獲取、更新或刪除文獻。
(2)輔數字圖書館運行測試
輔數字圖書館可視為用戶館,為一般的Web系統,主要用于獲取主數字圖書館的文獻數據,輔數字圖書館包含有獲取遠程數據的按鈕,點擊該按鈕,可成功獲取主數字圖書館的所有文獻;點擊標題,也可以成功獲取對應的詳細信息。
(3)獨立程序客戶端運行測試
獨立程序客戶端則為普通的桌面程序,主要用于驗證獨立程序通過HTTP協議,能否實現對主數字圖書館文獻資源的CRUD操作。運行后,在地址欄輸入所有文獻的URI,點擊其中獲取資源按鈕,同樣可以成功獲取所有文獻數據。而在地址欄輸入http://localhost:8080/dl/ resource/ papers/17,點擊刪除資源,也可以成功從主數字圖書館中刪除對應的文獻。對資源的增加和修改操作也可按照相似的方式順利完成。
本文針對大數據時代現有數字圖書館在資源共享方面的不足,引入面向資源架構理論,構建了面向資源架構的數字圖書館模型,給出了相應的開發方法,并開發了三個相互獨立的模擬系統對提出的模型、方法及功能進行實驗驗證。實驗表明,面向資源架構的數字圖書館,其數據管理遵循標準的HTTP協議,不論何種形式的系統或程序,通過HTTP協議均能獲取其數據,而在授權許可下,也可以通過HTTP協議對其數據執行CRUD操作。這一特點可使得數字圖書館資源開放,從而為構建數字圖書館聯盟,消除資源孤島,實現一定范圍的數字資源共享創造便利條件。然而實驗選擇的文獻管理僅是數字圖書館的一小部分,要實現一個功能完整的數字圖書館,還需要考慮多種業務,以此構建圖書館聯盟更是一項復雜的工作,這將成為下一階段的研究重點。
[1]朱強. 數字圖書館:21世紀圖書館的原型——美國“數字圖書館創始”計劃簡介[J]. 大學圖書館學報, 1995(4):50-54.
[2]Santos R L T, Roberto P A, André Gon alves M, et al.A Web Services-Based Framework for Building Componentized Digital Libraries[J].Journal of Systems and Software,2008,81(5):809-822.
[3]唐明偉,卞藝杰, 陶飛飛. RESTful架構下圖書管理系統的研究與實現[J]. 現代圖書情報技術, 2010(9):84-89.
[4]Meghini C, Spyratos N, Yang Jitao.A Data Model for Digital Libraries[J].International Journal on Digital Libraries, 2010,11(1):41-56.
[5]Angel Garcí a-Crespo, Juan Miguel Gó mez-Berbí s, Ricardo Colomo-Palacios.Digital Libraries and Web 3.0:The CallimachusDL Approach[J].Computers in Human Behavior,2011,27(4):1424-1430.
[6]喻昕, 王敬一. 基于云計算機技術的數字圖書館云服務平臺架構研究[J]. 情報科學, 2011,29 (7):1049-1053.
[7]歐石燕. 面向關聯數據的語義數字圖書館資源描述與組織框架設計與實現[J]. 中國圖書館學報, 2012,38(6):58-71.
[8]賀德方. 基于語義的數字圖書館服務創新[J]. 情報學報, 2012,31(10):1012-1017.
[9]Maurer H, Mueller H.Can the Web Turn into a Digital Library?[J].International Journal on Digital Libraries,2013,13(2):65-75.
[10]席彩麗. 基于語義Web的CallimachusDL模型研究[J]. 圖書館學研究, 2013(3):33-37.
[11]Meghini C, Spyratos N, Sugibuchi T, et al.A Model for Digital Libraries and Its Translation to RDF[J].Journal on Data Semantics,2014,3(2):107-139.
[12]Fielding R T.Architectural Styles and the Design of Network-Based Software Architectures [D]. USA:University of California,2000:76-82.
[13]Richardson L, Ruby S.RESTful Web Services[M].Sebastopol:O'Reilly Media, 2007:15-21.
[14]Iskold A.Web 3.0: When Web Sites Become Web Services[EB/ OL].(2007-03-19)[2014-11-03].http:// readwrite.com/2007/03/ 19/web_30_when_web_sites_become_web_services.
[15]Battle R, Benson E.Bridging the Semantic Web and Web 2.0 with Representational State Transfer (REST)[J].Web Semantics:Science, Services and Agents on the World Wide Web,2008,6(1):61-69.
[16]Zasada S J, Chang D C W,Haidar A N, et al.Restlet, Inc.Restlet 2.2-Tutorial[EB/OL].[2014-05-06].http://restlet.org/learn/ tutorial/2.2/.
Digital Library Based on the Resource-Oriented Architecture
Now, the main trend architecture of the digital library could not meet requirements of the resource sharing and achievement in the big data era. The digital library based on the resource-oriented architecture could provide the relevant development method for it. And results of the experiment show that the data management of the digital library based on the resource-oriented architecture follows the HTTP. No matter what form of the system or program, it could all get library's data via the HTTP, and also could create,retrieve, update and delete library's data via the HTTP under the authorization.
Digital library; Resource-oriented architecture; Resource sharing
G250.76
B
*本文系江蘇省教育廳高校哲學社會科學研究項目“基于面向資源架構的圖書館聯盟信息共享研究”,項目編號:2013SJB870005:國家自然科學基金面上項目“面向知識服務的知識組織模式與應用研究”,項目編號:71273126的研究成果之一。
唐明偉 男,1982年生,博士,現工作于南京審計學院管理科學與工程學院,講師。
蔣 勛 男,1980年生,南京大學信息管理學院博士后,副教授。
2014-12-29]