〔摘 要〕介紹了開源框架SSHL(Struts-Spring-Hibernate-Lucene)功能、結(jié)構(gòu)與特點,基于開源框架SSHL整合技術(shù),集成了FAQ等多種咨詢方式,實現(xiàn)了圖書館聯(lián)合虛擬參考咨詢平臺CVRS。該平臺實現(xiàn)了用戶專家注冊與管理、問題提問與回答、問題全文檢索和幫助模塊等功能,整體架構(gòu)簡單,功能強大、層次清晰,可擴展性強。
〔關(guān)鍵詞〕Struts Spring Hibernate Lucene;開源;虛擬參考咨詢
DOI:10.3969/j.issn.1008-0821.2012.01.016
〔中圖分類號〕G252.6 〔文獻標識碼〕B 〔文章編號〕1008-0821(2012)01-0067-03
Research for Collaborative Library VRS Based on SSHLWu Pengfei
(Library,Shijiazhuang University,Shijiazhuang 050035,China)
〔Abstract〕This paper introduced the open source framework SSHL function,structure and characteristics,based on open source framework SSHL integrated technology,integrated FAQ and other consultation,to implement the Joint Virtual Reference Library platform CVRS.The platform implemented the user registration and management experts,the problem question and answer,questions such as full-text search functions and help modules,the overall structure was simple,powerful,clear layer scalability.
〔Key words〕Struts Spring Hibernate Lucene;open source;virtual reference
參考咨詢服務是圖書館的一項核心業(yè)務,是圖書館提供信息服務、知識服務而采用的一種常用的服務形式[1]。目前,在信息技術(shù)環(huán)境支撐下,國內(nèi)外許多圖書館建立了虛擬參考咨詢系統(tǒng),出現(xiàn)了國家科學圖書館參考咨詢系統(tǒng)、CALIS分布式聯(lián)合虛擬參考咨詢系統(tǒng)、聯(lián)合參考咨詢網(wǎng)等虛擬參考咨詢平臺[2-3]。另外國內(nèi)信息服務企業(yè)推出了百度知道[4]、雅虎知識堂[5]、新浪愛問[6]等,建立了基于交互問答式知識服務平臺,得到了廣泛的應用。
開源框架SSHL是指Struts[7]、Spring[8]、Hibernate[9]和Lucene[10]框架的集成整合,是基于Java平臺的企業(yè)主流輕量級框架。使用SSHL框架可以為提高系統(tǒng)的開發(fā)效率,使開發(fā)人員更注重于業(yè)務邏輯設(shè)計。開源軟件在圖書館的廣泛應用不僅可以使圖書館節(jié)省開發(fā)成本,提高開發(fā)效率,更有利于圖書館自身服務能力和技術(shù)水平的提高。本文介紹了開源框架Struts、Spring、Hibernate和Lucene功能、結(jié)構(gòu)與特點,基于開源框架SSHL整合技術(shù),設(shè)計與實現(xiàn)了一個圖書館聯(lián)合虛擬參考咨詢平臺,該平臺架構(gòu)簡單,功能強大、層次清晰,可擴展性強,具有學科化、專業(yè)化、主題化、個性化、知識化的特點。
1 開源框架SSHL
1.1 SSHL框架
開源框架SSHL是指Struts、Spring、Hibernate和Lucene框架的集成整合,是基于Java平臺的企業(yè)主流輕量級框架。Struts目前版本是Struts2,是基于WebWork,核心部分是控制器Action,具有低耦合、易測試、代碼重用率高、支持更多的表現(xiàn)層技術(shù)、有更好的適應性等特點。Spring是為了解決企業(yè)大型應用程序開發(fā)復雜性而創(chuàng)建的輕量級J2EE開源框架,其通過IoC依賴注入、AOP應用、面向接口編程,將Web層、Service層、DAO層及PO等系統(tǒng)中的中間層無縫整合統(tǒng)一管理,降低了業(yè)務組件之間的耦合度,增強系統(tǒng)擴展性,提高了軟件的復用性。Hibernate是一個開源的Java持久層對象關(guān)系映射框架,屏蔽掉了底層數(shù)據(jù)庫數(shù)據(jù)訪問操作,通過對底層JDBC、JNDI和JTA進行輕量級的對象封裝,可以完全以面向?qū)ο蟮姆绞綄﹃P(guān)系數(shù)據(jù)庫進行CRUD操作,具有良好的數(shù)據(jù)遷移性。Lucene是一個用Java編寫的開源全文索引與檢索引擎工具包,目前已經(jīng)應用到了多個項目中如web論壇系統(tǒng)Jive、機構(gòu)知識庫DSpace等。
1.2 SSHL分層集成架構(gòu)
MVC是模型(Model)、視圖(View)、控制器(Controller)的縮寫,是一種軟件設(shè)計模式,目的分層架構(gòu),使數(shù)據(jù)、業(yè)務、視圖分離,極大地提高了軟件開發(fā)的效率。MVC分層設(shè)計模式可以通過開源框架Struts、Spring、Hibemate和Lucene的集成實現(xiàn),可以利用Spring的IoC裝配各組件,集成整合架構(gòu)系統(tǒng)。表現(xiàn)視圖層是傳統(tǒng)的JSP技術(shù),用戶交互界面??刂茖迂撠熆刂茦I(yè)務邏輯層與表現(xiàn)層的交互,調(diào)用業(yè)務邏輯層,并將業(yè)務數(shù)據(jù)返回給表現(xiàn)層作組織表現(xiàn),采用Struts。Service層負責實現(xiàn)業(yè)務邏輯,業(yè)務邏輯層以DAO層為基礎(chǔ),通過對DAO組件的組合封裝,完成系統(tǒng)所要求的業(yè)務邏輯,其中索引與檢索業(yè)務邏輯功能由Lucene實現(xiàn)。DAO層負責與持久化對象PO交互,該層封裝了數(shù)據(jù)的增、刪、查、改的原子操作。PO層即持久化對象,通過實體關(guān)系映射工具將關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)映射成對象,方便地實現(xiàn)以面向?qū)ο蠓绞讲僮鲾?shù)據(jù)庫,采用Hibernate作為ORM框架。
2.1 系統(tǒng)架構(gòu)
圖書館聯(lián)合虛擬參考咨詢平臺由區(qū)域多個高校圖書館組成區(qū)域圖書館聯(lián)盟,以網(wǎng)絡為基礎(chǔ),依據(jù)協(xié)議建立起協(xié)作關(guān)系,充分利用各自的館藏資源、網(wǎng)絡資源和人才資源優(yōu)勢,通過一個統(tǒng)一的參考咨詢平臺,將用戶和專家以及學科專門知識聯(lián)系起來的問答式服務。
筆者基于上述理念設(shè)計的圖書館聯(lián)合虛擬參考咨詢平臺CVRS采用基于開源框架SSHL集成技術(shù),通過建立在網(wǎng)絡基礎(chǔ)上,將用戶與專家及學科專業(yè)知識聯(lián)系起來提供一站式問答式服務平臺,該平臺整合了QA、FAQ、電話、表單、E-mail、實時咨詢等參考咨詢服務的多種形式,結(jié)合了體系分類法與分面組配分類法知識組織優(yōu)點,建立了學科分類、主題分類(中圖分類法大類)、標簽分類(自由標簽)三維知識分類體系,具有學科化、專業(yè)化、主題化、個性化、知識化的特點。
CVRS具體包括用戶管理、專家管理、問題全文搜索、系統(tǒng)幫助、管理員管理(用戶、問題、回答和分類管理)等功能模塊組成,涉及用戶、專家、和管理員3種角色對應的管理工作,平臺整體架構(gòu)設(shè)計如圖1所示,功能模塊設(shè)計如圖2所示。圖1 CVRS整體架構(gòu)圖
2.2 平臺功能設(shè)計
2.2.1 用戶管理模塊
用戶可以注冊登錄提問回答問題,并管理自己的個人信息、提問問題信息、回答問題信息。普通瀏覽者可以瀏覽信息,不能提問和回答問題。
2.2.2 專家管理模塊
專家可以注冊登錄回答用戶提問的問題,并管理自己的個人信息、用戶提問問題信息、回答問題信息。專家需要系統(tǒng)管理員審核才能回答問題。
2.2.3 提問模塊
該平臺整合了電話咨詢、E-mail、表單、FAQ、實時參考咨詢、QA等咨詢服務模式,為用戶提供多渠道的咨詢服務,方便用戶的咨詢。用戶可以根據(jù)自己提問問題選擇相應的學科專家進行咨詢。
2.2.4 全文檢索模塊
該平臺采用基于Lucene全文檢索技術(shù),類似百度、Google,用戶可以根據(jù)標題和內(nèi)容進行基于關(guān)鍵詞的全文檢索。
2.2.5 統(tǒng)計模塊
該平臺具有問題總數(shù)、回答總數(shù)、用戶專家人數(shù)、已解決問題、待解決問題的實時統(tǒng)計功能,還具有專家與用戶排行榜功能,具有一定的激勵作用。
2.2.6 幫助模塊
用戶可以按照學科分類、主題分類、標簽分類對提問問題進行瀏覽,為用戶提供信息服務、知識服務。
2.2.7 管理員管理模塊
管理員可以對用戶、專家、提問問題、回答、分類等進行添加、刪除、修改等操作。
3 平臺實現(xiàn)
3.1 PO實體及DAO類實現(xiàn)
系統(tǒng)抽象出的主要實體包括管理員、用戶、專家、問題、回答,對應PO實體分別Admin、User、Expert、Question、Answer,對應的DAO實現(xiàn)類分別為AdminDAO、UserDAO、ExpertDAO、QuestionDAO、AnswerDAO,系統(tǒng)主要組件圖如圖3所示。
3.3 業(yè)務層實現(xiàn)類service.VRSMangerImp實現(xiàn)
利用Spring,通過IoC依賴注入、AOP應用、面向接口編程,將Web層、Service層、DAO層及PO等系統(tǒng)中的中間層無縫整合統(tǒng)一管理,降低了業(yè)務組件之間的耦合度,增強系統(tǒng)擴展性,提高了軟件的復用性。以下是業(yè)務層實現(xiàn)類service.VRSMangerImp整合各主要實體DAO實現(xiàn)類。
3.4 mysql數(shù)據(jù)源配置
Mysql數(shù)據(jù)庫faq連接配置,需要在工程lib文件中添加Mysql數(shù)據(jù)庫驅(qū)動文件包。
3.5 平臺運行
基于開源框架SSHL的圖書館聯(lián)合虛擬參考咨詢平臺CVRS在MyEclipse環(huán)境下開發(fā)實現(xiàn),服務器采用開源服務器Tomcat 6.0,開發(fā)語言采用Java,后臺數(shù)據(jù)庫采用開源數(shù)據(jù)庫Mysql。將CVRS部署到Tomcat服務器中啟動服務,在IE地址欄中輸入http:∥localhost:8080/CVRS,顯示界面如圖4所示。
4 結(jié) 語
開源框架Struts、Spring、Hibernate和Lucene功能強大,通過利用開源框架SSHL整合技術(shù),設(shè)計開發(fā)實現(xiàn)了一個圖書館聯(lián)合虛擬參考咨詢平臺,該平臺架構(gòu)簡單,功能強大、層次清晰,且具有很好的可擴展性、易維護性。使用開源SSHL框架應用到數(shù)字圖書館信息系統(tǒng)開發(fā)不僅可以使圖書館節(jié)省開發(fā)成本,縮短開發(fā)周期,提高開發(fā)效率,而且更有利于圖書館自身服務能力和技術(shù)水平的提高。
參考文獻
[1]李淑芬,謝亮.國內(nèi)聯(lián)合虛擬參考咨詢系統(tǒng)的比較分析[J].圖書館建設(shè),2005,(3):74-76.
[2]金毅,黃教.CALIS分布式聯(lián)合虛擬參考系統(tǒng)的開發(fā)[J].大學圖書館學報,2005,(3):30-33.
[3]白崇遠.新一代互動式知識搜索虛擬參考咨詢系統(tǒng)發(fā)展特征及趨勢分析[J].圖書館建設(shè),2007,(6):103-105.
[4]百度知道[EB/OL].http:∥zhidao.baidu.com,2010-03-25.
[5]雅虎知識堂[EB/OL].http:∥ks.cn.yahoo.com,2010-03-25.
[6]新浪愛問知識人[EB/OL].http:∥iask.sina.com.cn,2010-03-25.
[7]Struts[EB/OL].http:∥struts.apache.org,2010-03-25.
[8]Spring[EB/OL].http:∥www.springsource.org,2010-03-25.
[9]Hibernate[EB/OL].httpern:∥www.hibate.org,2010-03-25.
[10]吳鵬飛,馬鳳娟,李文革,等.開源全文檢索引擎Lucene本地化實踐研究[J].現(xiàn)代圖書情報技術(shù),2009,(4):19-22.