尤勝
摘 要: 針對(duì)傳統(tǒng)圖書館數(shù)據(jù)庫(kù)結(jié)構(gòu)混亂、檢索信息分散、無(wú)序、使用不便的現(xiàn)狀,研究和設(shè)計(jì)了一套基于異構(gòu)技術(shù)的數(shù)字圖書館統(tǒng)一檢索查詢系統(tǒng),改善了傳統(tǒng)檢索方法,使用戶可以通過統(tǒng)一的檢索界面查詢不同的數(shù)據(jù)源。系統(tǒng)的核心部件為信息統(tǒng)計(jì)平臺(tái),其功能是根據(jù)用戶請(qǐng)求的信息,提取有價(jià)值需求進(jìn)行翻譯轉(zhuǎn)化,然后返回有效的檢索結(jié)果。系統(tǒng)基于Web Services技術(shù)和Portal技術(shù)設(shè)計(jì),通過信息統(tǒng)計(jì)平臺(tái)上的對(duì)比實(shí)驗(yàn),證明了該系統(tǒng)的可靠性、可擴(kuò)展性,實(shí)現(xiàn)了系統(tǒng)的預(yù)期目標(biāo),可以方便地幫助用戶進(jìn)行統(tǒng)一數(shù)據(jù)信息的檢索。
關(guān)鍵詞: 數(shù)字圖書館; 信息統(tǒng)計(jì); 統(tǒng)一檢索; Web Services; Portal
中圖分類號(hào): TN911?34; TM417 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2016)07?0167?04
Abstract: Since the traditional library has the disadvantages of chaos database structure, scattered and disordered retrieval information, and inconvenient use, a unified retrieval and query system of digital library based on heterogeneous technology was studied and designed to improve the traditional retrieval method. The users can query different data sources by means of unified retrieval interface. The core assembly of the system is the information statistics platform, its function is to extract and translate the valuable demand according to the information of user request, and then return the effective retrieval results. The system design is based on Web Services technology and Portal technology. The results of contrast experiment on the information statistics platform prove that the system is reliable and scalable, and can conveniently retrieve the unified data information for the users. The expected goal of the system was achieved.
Keywords: digital library; information statistics; unified retrieval; Web Services; Portal
0 引 言
隨著計(jì)算機(jī)技術(shù),特別是Internet技術(shù)的迅猛發(fā)展,通過自建、引進(jìn)數(shù)據(jù)庫(kù),圖書館已經(jīng)使得電子資源的建設(shè)具有一定的規(guī)模,電子文獻(xiàn)占文獻(xiàn)服務(wù)的比重也越來(lái)越大。在這些信息服務(wù)和管理系統(tǒng)中,數(shù)據(jù)資源是一個(gè)很重要的部分,實(shí)際情況卻是各個(gè)不同的數(shù)據(jù)管理系統(tǒng)被不同業(yè)務(wù)所運(yùn)用[1],這就構(gòu)成了企業(yè)所謂的異構(gòu)數(shù)據(jù)庫(kù),即由單純的文件數(shù)據(jù)庫(kù)到繁復(fù)的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)[2]。
當(dāng)前“信息孤島”現(xiàn)象的形成就是因?yàn)楦鱾€(gè)業(yè)務(wù)范圍根據(jù)自己的業(yè)務(wù)需求引進(jìn)或自主研發(fā)各種應(yīng)用系統(tǒng),而應(yīng)用系統(tǒng)的研發(fā)之間缺乏基本的溝通和統(tǒng)一的規(guī)劃。應(yīng)用系統(tǒng)同數(shù)據(jù)聯(lián)系十分密切,當(dāng)采用數(shù)據(jù)庫(kù)和所依據(jù)的硬件平臺(tái)各異時(shí),所呈現(xiàn)的數(shù)據(jù)表現(xiàn)形式和數(shù)據(jù)模型也千差萬(wàn)別 [3]。
不同部門和不同業(yè)務(wù)常常采用不同的數(shù)據(jù)庫(kù)管理系統(tǒng)(如Oracle,SQLServer,DB2等)和不同的網(wǎng)絡(luò)電子資源無(wú)縫鏈接整合軟件系統(tǒng)(如Metalib,Sfx,Aleph等),同時(shí)運(yùn)行于不同的計(jì)算機(jī)操作系統(tǒng)(Windows,Unix,Linux等),據(jù)此,數(shù)據(jù)的異構(gòu)性得以構(gòu)成。部門、單位、行業(yè)決策分析和信息化管理的非常大的不便性就是由數(shù)據(jù)異構(gòu)帶來(lái)的,為了解決這一問題才產(chǎn)生了數(shù)據(jù)整合技術(shù)[4]。
企業(yè)所收集的各類內(nèi)部應(yīng)用系統(tǒng)數(shù)據(jù)庫(kù)以及外部信息數(shù)據(jù)庫(kù)都由數(shù)據(jù)平臺(tái)進(jìn)行整理合并,通過對(duì)各種各異數(shù)據(jù)資源的有效利用使得數(shù)據(jù)的展現(xiàn)方式更加靈活。提高企業(yè)的信息化程度[5]。
1 信息統(tǒng)計(jì)平臺(tái)系統(tǒng)設(shè)計(jì)
1.1 系統(tǒng)方案和設(shè)計(jì)原則
基于數(shù)據(jù)的異構(gòu)性,把已有的資源進(jìn)行整合,在統(tǒng)一的檢索平臺(tái)中納入不同結(jié)構(gòu)、不同類型、不同用法、不同環(huán)境的各種異構(gòu)數(shù)據(jù)庫(kù),即將圖書館各個(gè)系統(tǒng)的統(tǒng)計(jì)數(shù)據(jù)統(tǒng)一匯總。為其他系統(tǒng)提供了一個(gè)統(tǒng)一的統(tǒng)計(jì)平臺(tái),具有高匯聚,高兼容性,將不同系統(tǒng)的統(tǒng)計(jì)數(shù)據(jù)統(tǒng)一展現(xiàn)在同一平臺(tái)上,使用戶更方便、更高效地獲取信息。系統(tǒng)采取開放性的架構(gòu)、模塊化設(shè)計(jì)、通用化通信接口,方便系統(tǒng)維護(hù)和功能擴(kuò)展[6]。
1.2 系統(tǒng)設(shè)計(jì)體系結(jié)構(gòu)
MVC體系結(jié)構(gòu)是系統(tǒng)采用的結(jié)構(gòu)模式。MVC(Model?View?Controller)模式的中文意義為“模式?視圖?控制器”。由此可知,MVC模式由模式、視圖、控制器三個(gè)部分組成 [7]。
分布式系統(tǒng)設(shè)計(jì)的改良能夠通過將數(shù)據(jù)模式從各類能被控制和存取的數(shù)據(jù)中剝離出來(lái)而實(shí)現(xiàn)。MVC模式由模式、視圖、控制器三個(gè)部分組成。其中:模式指的是應(yīng)用對(duì)象,是沒有用戶界面的;而視圖表示的是用戶所得到的數(shù)據(jù),是直接顯示在屏幕上的內(nèi)容;控制器負(fù)責(zé)將用戶的操作轉(zhuǎn)換成針對(duì)Model的指令,是界面對(duì)用戶動(dòng)作的具體反饋方式。Model中數(shù)據(jù)的變化通過View的更新數(shù)據(jù)體現(xiàn),上述模式、視圖、控制器的關(guān)系如圖1所示。
View和Model的分離是通過定購(gòu)/通知的方式實(shí)現(xiàn)的。Model的狀態(tài)和內(nèi)容是通過View正確地反映出來(lái)的。View可以嵌套是MVC的主要特征之一。 嵌套可以管理視圖,同時(shí)能夠運(yùn)用于各種可以運(yùn)用視圖的地方。上述思想表現(xiàn)的設(shè)計(jì)方式將視圖組件和組合視圖平等對(duì)待。同時(shí),View對(duì)用戶的輸入反饋方法是在不改變View的情況下進(jìn)行的,也是MVC的重要特征之一。MVC的這一特征對(duì)經(jīng)常需要改變響應(yīng)邏輯的系統(tǒng)十分重要。
當(dāng)前的B2B電子商務(wù)系統(tǒng)依據(jù)Web的分布式系統(tǒng),該系統(tǒng)采用MVC架構(gòu)十分適用。經(jīng)過對(duì)該構(gòu)架進(jìn)行分析可從高層次的角度把應(yīng)用對(duì)象分為三類。其中:一類對(duì)象中包括各類數(shù)據(jù)和商業(yè)規(guī)則;一類對(duì)象負(fù)責(zé)顯示;還有一類對(duì)象負(fù)責(zé)接收請(qǐng)求,同時(shí)通過對(duì)商業(yè)對(duì)象的控制解決問題。View對(duì)象在系統(tǒng)發(fā)布后是由HTML/JSP設(shè)計(jì)人員、美工和系統(tǒng)管理員進(jìn)行管理,應(yīng)用開發(fā)人員負(fù)責(zé)開發(fā)并實(shí)行Controller對(duì)象、領(lǐng)域?qū)<?、開發(fā)人員、數(shù)據(jù)庫(kù)管理員共同完成對(duì)商業(yè)數(shù)據(jù)對(duì)象及商業(yè)規(guī)則對(duì)象的管理。
2 系統(tǒng)結(jié)構(gòu)模型
信息統(tǒng)計(jì)平臺(tái)的Web應(yīng)用被分成三個(gè)各負(fù)其責(zé)的層次。這些層次是:表現(xiàn)層、業(yè)務(wù)層、持久層。每層在應(yīng)用程序中都有明確的責(zé)任,不和其他層混淆功能。每一應(yīng)用層彼此獨(dú)立,但各層之間存在通信接口,系統(tǒng)框圖如圖2所示。
三種框架有機(jī)的結(jié)合才能更好地發(fā)揮它們各自的優(yōu)勢(shì),實(shí)現(xiàn)系統(tǒng)多層開發(fā)的耦合,系統(tǒng)的設(shè)計(jì)采取JAVA企業(yè)版的J2EE三層結(jié)構(gòu)設(shè)計(jì)。
系統(tǒng)組件列表:
(1) 數(shù)據(jù)持久層包括:數(shù)據(jù)庫(kù)聯(lián)接組件、數(shù)據(jù)采集組件、數(shù)據(jù)映射組件。
(2) 業(yè)務(wù)邏輯層包括:統(tǒng)計(jì)業(yè)務(wù)組件、統(tǒng)計(jì)報(bào)表組件、統(tǒng)計(jì)視圖組件、認(rèn)證業(yè)務(wù)組件、個(gè)性化業(yè)務(wù)組件、Web Service接口層。
(3) 展示層包括:頁(yè)面邏輯控制組件、頁(yè)面顯示組件。
3 信息統(tǒng)計(jì)平臺(tái)系統(tǒng)實(shí)現(xiàn)
3.1 數(shù)據(jù)持久層設(shè)計(jì)與實(shí)現(xiàn)
目前常用的元數(shù)據(jù)抽取技術(shù)主要有:基于自然語(yǔ)言理解方式的抽取技術(shù)、基于包裝器歸納方式(WrapperInduction)的抽取技術(shù)、基于HTML結(jié)構(gòu)的抽取技術(shù)以及基于Ontology方式的抽取技術(shù),信息統(tǒng)計(jì)平臺(tái)系統(tǒng)原數(shù)據(jù)的抽取是根據(jù)HTML結(jié)構(gòu)的抽取技術(shù)完成的?;赪eb頁(yè)面的結(jié)構(gòu)定位信息是該技術(shù)的特征。運(yùn)用解析器將Web文檔解析成語(yǔ)法樹是信息抽取的前提,再運(yùn)用半自動(dòng)或者自動(dòng)的方法生成抽取的規(guī)則,從而將抽取信息轉(zhuǎn)化為操作語(yǔ)法樹,信息的抽取最終得以實(shí)現(xiàn)。
由于從服務(wù)器端返回的結(jié)果頁(yè)面顯示每一條信息結(jié)果記錄的形式相同,所以系統(tǒng)中一條啟示性規(guī)則得以總結(jié):頁(yè)面中重復(fù)出現(xiàn)的、表現(xiàn)形式相同的信息塊就是系統(tǒng)要抽取的、用戶感興趣的信息。在JDOM樹中找出這個(gè)特定的區(qū)域,即通過重復(fù)出現(xiàn)的模式來(lái)發(fā)現(xiàn)要抽取的元數(shù)據(jù)塊。大多數(shù)情況下,在一個(gè)單個(gè)頁(yè)面上可能含有若干個(gè)這樣的區(qū)域。這些信息塊對(duì)應(yīng)于HTMLDOM樹中的一組相同的或相似的內(nèi)部結(jié)構(gòu)。
系統(tǒng)基于JDOM樹的元數(shù)據(jù)抽取思想,以探求元數(shù)據(jù)自動(dòng)抽取技術(shù)的實(shí)現(xiàn)。其核心是通過JDOM樹來(lái)定位欲抽取的信息塊部分,進(jìn)而生成元數(shù)據(jù)的抽取規(guī)則。抽取規(guī)則以XSLT表現(xiàn),執(zhí)行XSLT即可得到以XML展現(xiàn)的抽取結(jié)果。
采用數(shù)據(jù)庫(kù)連接池技術(shù)解決系統(tǒng)數(shù)據(jù)庫(kù)的訪問瓶頸,圖3為連接池基本的核心原理。
面向?qū)ο蟮能浖完P(guān)系數(shù)據(jù)庫(kù)一起使用是一個(gè)相當(dāng)麻煩的工作。解決這個(gè)問題的辦法就是使用對(duì)象關(guān)系映射工具來(lái)簡(jiǎn)化數(shù)據(jù)庫(kù)訪問的瑣碎操作,本系統(tǒng)中選用DAO作為對(duì)象關(guān)系映射的框架。
3.2 業(yè)務(wù)邏輯層設(shè)計(jì)與實(shí)現(xiàn)
應(yīng)用程序中數(shù)據(jù)的獲取通常來(lái)源于運(yùn)行在IBM主機(jī)上的程序;又或者通過把數(shù)據(jù)發(fā)送到Unix應(yīng)用程序或主機(jī)來(lái)獲取。不同軟件廠商研發(fā)的不同軟件在同一平臺(tái)上也需要集成整合。應(yīng)用程序可以通過對(duì)WebServices的運(yùn)用把自身的數(shù)據(jù)和功能標(biāo)準(zhǔn)準(zhǔn)確的表現(xiàn)出來(lái),以便其他應(yīng)用程序進(jìn)行整合利用。
信息統(tǒng)計(jì)平臺(tái)系統(tǒng)登錄功能由用戶名(ID)驗(yàn)證,密碼(PSW)驗(yàn)證和用戶角色(ROLE)驗(yàn)證三部分組成。當(dāng)用戶輸入用戶名(ID)后,系統(tǒng)通過用戶名在數(shù)據(jù)庫(kù)中的用戶注冊(cè)表“USERS”中查找該用戶名是否存在,若用戶名不存在,則在登錄頁(yè)面顯示登錄錯(cuò)誤信息;若用戶名存在,則根據(jù)用戶名在數(shù)據(jù)庫(kù)對(duì)應(yīng)表中查找該用戶名的密碼和用戶角色,并將查找到的密碼和用戶角色與用戶輸入的密碼和用戶角色進(jìn)行比較,若與用戶輸入一致,則根據(jù)不同的用戶角色進(jìn)入不同的系統(tǒng)操作頁(yè)面,若不一致,則在登錄頁(yè)面上顯示登錄錯(cuò)誤信息,請(qǐng)用戶重新登錄。信息統(tǒng)計(jì)平臺(tái)用戶認(rèn)證流程如圖4所示。
采用DTD文件作為數(shù)據(jù)交換的中間文件,提出了一種基于元數(shù)據(jù)和規(guī)則數(shù)據(jù)交換的中間件。這里的元數(shù)據(jù)就是指具體的基礎(chǔ)數(shù)據(jù),一般指業(yè)務(wù)數(shù)據(jù)結(jié)構(gòu)的描述數(shù)據(jù),而不描述數(shù)據(jù)間的關(guān)系信息。
系統(tǒng)圖形解決方案,采用AJAX技術(shù),能夠解決目前圖形方面的需求,該方案能夠?qū)崿F(xiàn)與Excel和PDF的關(guān)聯(lián),同時(shí)也可以實(shí)現(xiàn)將圖形導(dǎo)出的格式調(diào)整為JPEG和PNG。AJAX流程示意圖見圖5,具體實(shí)現(xiàn)過程如下:
(1) 客戶端初始化XMLHttpRequest方法;
(2) 客戶端設(shè)置回調(diào)處理方法;
(3) 發(fā)送請(qǐng)求,并自動(dòng)監(jiān)視請(qǐng)求;
(4) 當(dāng)請(qǐng)求完成時(shí)獲得服務(wù)器端數(shù)據(jù);
(5) 調(diào)用更新方法來(lái)更新客戶端數(shù)據(jù)。
3.3 客戶展示層設(shè)計(jì)與實(shí)現(xiàn)
Portal可以提供各種單次登錄、個(gè)性化服務(wù),同時(shí)將信息源的內(nèi)容進(jìn)行聚集,是其表現(xiàn)層的宿主,是一種Web應(yīng)用。聚集指一個(gè)Web頁(yè)面里的內(nèi)容由各個(gè)信息源所包含的內(nèi)容組合而成。
(1) 頁(yè)面控制邏輯模塊
通過調(diào)用Servlets,JSPs和JSPs標(biāo)簽庫(kù),Portlets模塊可以產(chǎn)生實(shí)際需求的內(nèi)容。例如Servlets和JSPs被Servlet調(diào)用的情況一樣,為了進(jìn)一步調(diào)用Servlets和JSPs,請(qǐng)求發(fā)送者可以通過Portlet發(fā)送指令。在Portlet規(guī)范內(nèi),Servlet對(duì)象可以被廣泛使用,其目的是使Servlets和Portlets更加完美的結(jié)合?;趐ortletresponse模塊,系統(tǒng)response將相應(yīng)的信號(hào)和指令傳給Servlet或JSP。在Portlet中,在Servlet和JSP被系統(tǒng)調(diào)用的情況下,request是以portletrequest為基礎(chǔ)傳給Servlet或JSP指令信息??梢詫ortletrequest的Attributes設(shè)置給予servletrequest模塊和包含于Portlet模塊的Servlet或JSP,使用相同的輸出流傳遞信息。通過獲取Servlet的信息來(lái)設(shè)置Portlet會(huì)話中Attributes的數(shù)值。
(2) 頁(yè)面展示模塊
Portlet是專門處理各種生產(chǎn)動(dòng)態(tài)信息和用戶需求的客戶,由PortletContainer進(jìn)行管理,Portlet是一種依據(jù)Java技術(shù)的Web組件。產(chǎn)生標(biāo)記片段是Portlet的功能之一。Portal經(jīng)常在Portlet所生成的標(biāo)記片段中加上控制按鈕、標(biāo)題或其他修飾。上述新生成的標(biāo)記片段即為Portlet窗口。Portal通過整理合并這些新產(chǎn)生的Portlet窗口形成一個(gè)完整的文檔(Portal頁(yè)面),Portal頁(yè)面的生成過程如圖6所示。
4 結(jié) 論
本文通過對(duì)信息集成平臺(tái)結(jié)構(gòu)設(shè)計(jì)的分析以及對(duì)該平臺(tái)各功能模塊實(shí)現(xiàn)的方法和原理的詳盡介紹,重點(diǎn)研究了統(tǒng)一檢索系統(tǒng)中的信息集成平臺(tái)。在同一功能可以有多種實(shí)現(xiàn)方法時(shí),通過對(duì)各種方式優(yōu)缺點(diǎn)的對(duì)比選擇最優(yōu)的方式。除信息集成平臺(tái)之外,本文還詳細(xì)介紹了Web服務(wù),而Web服務(wù)是該平臺(tái)所使用的主要技術(shù)之一。
計(jì)算機(jī)、多媒體、通信、高密度存儲(chǔ)等各類信息技術(shù)的普及,其中最明顯的是網(wǎng)絡(luò)的迅速發(fā)展和應(yīng)用,使得數(shù)字圖書館的建設(shè)將進(jìn)一步朝著網(wǎng)絡(luò)化、自動(dòng)化、集成化方向發(fā)展。其中對(duì)異構(gòu)數(shù)據(jù)庫(kù)的統(tǒng)一和訪問是非常重要的,但是圖書館現(xiàn)有數(shù)字資源在系統(tǒng)平臺(tái)、DBMS、網(wǎng)絡(luò)異構(gòu)等方面存在較大的差異。實(shí)現(xiàn)基于Java技術(shù)的數(shù)字圖書館異構(gòu)數(shù)據(jù)源訪問管理系統(tǒng),為廣大的圖書館用戶提供統(tǒng)一、簡(jiǎn)便的訪問使用界面,將有效的整合和充分利用圖書館現(xiàn)有數(shù)據(jù)資源,為廣大的圖書館用戶提供高質(zhì)有效的服務(wù),也必將促進(jìn)數(shù)字圖書館的建設(shè)。數(shù)字圖書館能夠單機(jī)使用,能夠通過各瀏覽器進(jìn)行瀏覽查詢,同時(shí)還能夠通過企業(yè)內(nèi)部的網(wǎng)絡(luò)訪問服務(wù)器的數(shù)據(jù)庫(kù),數(shù)字圖書館可以提高工作效率,使檔案管理規(guī)范化,更能給予用戶方便。當(dāng)前,投入使用的本系統(tǒng)得到了很好的反饋信息。
參考文獻(xiàn)
[1] 趙姍姍,楊臻,徐奉,等.企業(yè)異構(gòu)數(shù)據(jù)集成[J].網(wǎng)絡(luò)新媒體技術(shù),2013(7):12?14.
[2] 李忠慧,李秀梅.MVC架構(gòu)及其在Web應(yīng)用開發(fā)中的應(yīng)用[J].福建電腦,2013(1):112?113.
[3] 蓋索林,王世江.基于J2EE的異構(gòu)數(shù)據(jù)集成的模式設(shè)計(jì)[M].北京:人民郵電出版社,2009:43?55.
[4] 靳強(qiáng)勇,李冠宇,張俊.異構(gòu)數(shù)據(jù)集成技術(shù)的發(fā)展和現(xiàn)狀[J].計(jì)算機(jī)工程與應(yīng)用,2002(11):112?114.
[5] 蔡羅成.Web信息抽取技術(shù)研究進(jìn)展[J].信息安全與通信保密,2010(6):47?49.
[6] 霍正雷.圖書館網(wǎng)絡(luò)化協(xié)作發(fā)展及措施[J].新教育時(shí)代,2015(20):78?80.
[7] 李志彤,閏艷生.多層分布式體系技術(shù)及其應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2003(25):95?97.