張國祥,舒玉坤
1.湖北師范大學 物理與電子科學學院,湖北 黃石 435002;2.湖北師范大學 數學與統計學院,湖北 黃石 435002)
?
基于互聯網+云圖書館信息系統的設計與實現
張國祥1,舒玉坤2
1.湖北師范大學 物理與電子科學學院,湖北 黃石435002;2.湖北師范大學 數學與統計學院,湖北 黃石435002)
針對云計算的特點,通過對用戶需求進行分析,提出了云圖書館的五層模型,并通過Android平臺,以JAVA編程,調用JDBC驅動SQL Server數據庫,設計并實現了云圖書館信息系統(CLMIS),實現了資源推介、館藏查詢、我的書館、數字資源等功能,使任何用戶能夠在任何時候、任何地點獲得任何圖書館擁有的任何信息資源,從而,提供無所不在的以用戶為中心的開放式、深層次的知識服務,為互聯網+移動圖書館的發展起到一定的促進作用。
Android;JAVA;云計算;數字圖書館
國務院關于積極推進“互聯網+”行動的指導意見指出,“互聯網+”是把互聯網的創新成果與經濟社會各領域深度融合,推動技術進步、效率提升和組織變革,提升實體經濟創新力和生產力,形成更廣泛的以互聯網為基礎設施和創新要素的經濟社會發展新形態。隨著大數據時代的到來,圖書館文獻信息資源共享的內容與形式發生了巨大的變化,且逐步改變用戶獲取信息的習慣,縱觀圖書館的發展,文獻資源共享出現過以下幾種形式: 圖書館合作、合作館藏發展、圖書館網絡、圖書館聯盟、數字圖書館聯盟等[1]。尤其是圖書館聯盟成了高校文獻信息資源共享的主要組織形式,它從單一的功能、有限的范圍、松散的組織形式,發展為正式的、相對穩定的、圖書館協作組織,并將從邊緣的、有限的資源共享發展成為集成的、系統的、正式的資源共享,從區域合作走向國際化,超級聯盟也是指日可待;同時,隨著網絡技術的飛速發展,文獻信息資源共享的形式也從過去的物理實體轉向電子資源,“數字時代資源共享的形式是圖書館電子聯盟”,數字圖書館聯盟賦予館際互借、文獻傳遞服務以嶄新的內容,并催生數字圖書館一步一步走向成熟。
云計算的出現拓展了數字圖書館的發展空間,數字圖書館正從“以資源為中心”、“以服務為中心”到“以用戶為中心”的演變,我國早已提出了CALIS基于云計算的發展目標,并構建數字圖書館云服務平臺的模型[2]。圖書館與云計算的深度融合將成為必然趨勢,研究和開發云圖書館信息系統(CLMIS)勢在必行。
數字圖書館在經歷了互聯網、WEB、網格和WEB2.0后,進入了云計算時代,在此環境下,用戶的需求發生了新的變化,具有開放性、專業性、動態性、集成性的特點,在云計算環境下,圖書館除了傳統的讀者外,還包括各種利用網絡終端上網的讀者用戶,“圖書館是一個生長著的有機體”,作為一種機構的圖書館就是一個生長著的有機體,圖書館正是由藏書、讀者和館員三個生長著的有機部分構成的結合體[3]。因此,研發CLMIS在面向用戶需求和圖書館管理時,應綜合考慮以下幾個方面的內容:資源推介、館藏查詢、我的書館、數字資源等功能模塊,如圖1所示。
構建CLMIS平臺,將主要采取集群技術、虛擬化技術、分布式技術來進行數據和資源的調度與整合,“后數字圖書館的未來”提出并定位于“泛在知識環境”,旨在創建一個人類共用的知識環境,提供無所不在、觸手可及的移動信息服務;5A模式圖書館的理想是任何用戶在任何時候、任何地點均可以獲得任何圖書館擁有的任何信息資源。兩者意在突破時域、空域的限制,以用戶為中心,提供無所不在的,開放式深層次的知識服務。CLMIS包括數字資源建設、存儲空間、計算資源、應用系統、操作界面等。根據云計算的特點,以及用戶的需求,可將CLMIS自上而下劃分為用戶層、應用層、管理層、數據層、物理層。

圖1 CLMIS的需求模塊
物理層是整個架構的基礎,基礎設施即服務(IaaS),也被稱為硬件即服務(HaaS),它決定了CLMIS的服務及能力,提供虛擬硬件資源,既可以由第三方服務商提供,也可以是自己的云服務平臺提供,它包括主機、存儲器、網絡等等。
數據層利用中間件技術將分散節點云數據資源進行統一調度和分配,同時,進行云數據的采集、更新、調度、分發、數據備份、安全容災等處理。
管理層負責用戶的增刪、進程調度、服務質量、分布式計算集群、并行程序設計、海量數據存儲、并發控制等等。
應用層提供用戶登錄、驗證、注銷、資源推介等相關服務。
用戶層是CLMIS的主體,在系統中其活動主要包括登錄,首次登錄時要求輸入密碼,密碼采用64位DES算法加密傳送,并與云端數據庫賬號、密碼進行比較,驗證通過,則可進入系統,執行相關的操作,否則無法得到相關的服務。
2.1系統目標
以Android系統為平臺,借助于JAVA的強大功能,構建云圖書館信息系統,實現分布式資源管理、超大規模海量存儲管理、智能檢索管理,使廣大用戶隨時隨地得到服務,不再拘泥于時間、空間的限制[4~6]。
本系統遵循軟件工程的方法,從需求分析、系統分析、概要設計、詳細設計到測試等一系列的開發過程。在整個設計中采用JAVA編程,通過JDBC連接SQL Server2005數據庫,實現云圖書館的資源推介、館藏查詢、我的書館、數字資源云存儲與訪問[7~9]。
2.2適用范圍
云圖書館信息系統客戶端適用于3G、4G手機或通過WIFI上網的各種Android設備與終端。
2.3系統特點
1) 友好的操作界面,簡單易用,使用戶能在最短的時間內熟悉本系統的操作;
2) 不再拘泥于時間、空間的限制,只要有3G、4G、WIFI信號就可訪問云端數據資源;
3) 安全性強,設置九宮格密碼解鎖與讀者用戶密碼雙重驗證;
4) 運行穩定、速度快;
5) 智能升級。
CLMIS數據庫設計充分滿足范式的要求,只有滿足范式的數據庫才不會發生插入(insert)、刪除(delete)和更新(update)等操作異常[10]。CLMIS表的設計規范為第三范式3NF,基本特征是非主鍵屬性只依賴于主鍵屬性,即不存在非關鍵字段對任意候選關鍵字段的傳遞函數依賴。它具有以下優點:一是有良好的數據完整性限制;二是消除了冗余數據,節省了磁盤存儲空間;三是對大多數事務而言,運行性能好;四是數據的可逆性好,查詢或合并表時不遺漏、也不重復;五是能滿足日益增長的用戶需求。
CLMIS的一個表有一個主鍵,索引的大小與主鍵的長短有關,因此CLMIS主鍵的長短將改變索引頁的大小及磁盤I/O;CLMIS外鍵是建立表之間的關系,CLMIS主鍵只能從獨立的實體遷移到非獨立的實體,成為后者的一個屬性。索引有利于優化CLMIS性能,對可能用于查詢中的Where子句的列和可能用于排序的列創建索引,可在不改變表的物理結構的情況下,直接訪問特定的數據列,減少數據存取時間。
鎖是并行處理的重要機制,能保持數據并發的一致性,即按事務進行處理;CLMIS利用鎖,保證數據完整性。但在設計時應充分考慮如何避免長事務,減少排它鎖時間,減少在事務中與用戶的交互,避免批量數據同時執行,以免出現死鎖[11~12]。
CLMIS查詢優化規則應該滿足以下要求:一是避免在Where子句中使用復雜的表達式;二是避免排序或為盡可能少的行排序,若要對大量數據排序,最好將相關數據放在臨時表中,用簡單的鍵(列)排序;三是利用臨時數據庫,在查詢多表可以建臨時表(索引)以減少I/O;四是避免表內的相關子查詢。CLMIS所需的數據庫實體主要有讀者信息實體、電子圖書信息實體、圖書管理員信息實體、數字資源信息實體等。以數字資源信息實體為例,主要包括視頻公開課、動漫、教育類的電影、電視、音樂、紀錄片等。其用例模型如圖2所示。

圖2 數字資源用例圖
視頻公開課的類圖如圖3所示,根據此類圖即可得到對應的表。
本系統由多個子模塊組成,限于篇幅,只介紹其中幾個模塊的實現過程。
4.1用戶登錄子模塊的實現
為確保系統的安全,可以設置圖形密碼解鎖,如果已經設置了九宮格圖形密碼,則此時需要觸摸圖形密碼解鎖,九宮格圖形密碼解鎖成功后,接下來輸入個人的圖書證號與密碼,密碼正確方可進入系統,否則,退出。如果累計兩次輸入個人的圖書證號與密碼正確,則將此密碼與賬號記錄,以后可免去此項操作,不再提示輸入圖書證號與密碼了,從而大大提高了進入系統的效率。

圖3 視頻公開課實體類圖
4.2我的書館子模塊的實現
我的書館包括“TXT悅讀吧”和“PDF悅讀吧”,可打開本地或云端的TXT文檔或PDF文檔,閱讀該電子圖書。以“TXT悅讀吧”為例,用戶可以可從云服務器下載TXT電子書,也可導入SD卡的TXT電子書,然后打開閱讀, 如圖4所示。在閱讀過程中,用戶可隨時根據自己的習慣修改字體的大小、屏幕的亮度、還可根據自己的需要添加標簽,方便再次閱讀時快速從上次停止處閱讀,當然,也可以刪除指定的書簽或全部書簽,用戶還可以通過跳轉在頁面中快速定位到指定的頁面[13]。朗讀功能提供男、女聲多樣化音庫,并繼承了科大訊飛的優良音質,用戶可根據需要選擇最適合的語音風格,適應不同應用場景,增強表現力,語音合成效果更自然,能自動識別并表現出合成文本中包含的疑問、感嘆句式,合成效果更富表現力。智能文本分析與預處理通過對分詞和多音字、特殊符號、韻律短語、未登錄詞(如地名、人名)等進行分析、處理得十分準確;數字數值朗讀更加準確、節奏感更強、發音準確、清晰、飽滿。使用時,當然,用戶還可以點擊"設置"按鈕,對音色、音調、語速、音量根據自己的要求重新設置。
為了實現仿真的翻頁效果,在翻頁的過程中要求看到下一頁的內容,在翻頁之前須準備三張頁面,一張是當前頁(mCurPageBitmap),另一張是下一頁(mNextPageBitmap),此外,還有書頁翻起來后的背面區域頁(mBackPageBitmap)。CLMIS利用貝塞爾曲線,在面板上設置錨點,根據錨點的路徑和描繪的先后順序,產生直線或者是曲線的效果。在曲線段上,每個選中的錨點顯示一條或兩條方向線,方向線以方向點結束,方向線和方向點的位置確定曲線段的大小和形狀,移動這些元素將改變路徑中曲線的形狀。
對于點P0、P1、…、Pn,其n階貝塞爾曲線為:
當n=2:
B(t)=(1-t)2P0+2t(1-t)P1+t2P2,t∈[0,1]
遞歸用Bp0p1Lpn表示由點P0,P1,L,Pn所決定的貝塞爾曲線,則
B(t)=Bp0p1Lpn(t)=(1-t)Bp0p1Lpn-1(t)+tBp1p2Lpn(t)
n階的貝塞爾曲線為n-1階貝塞爾曲線之間的插值[14]。
點Pi為貝塞爾曲線的控制點,多邊形為有線的貝塞爾點連接而成,起始于P0并以Pn終止,為貝塞爾多邊形,定義:
private int mCornerX = 1; //拖拽點對應的頁腳
private int mCornerY = 1;
PointF mTouch = new PointF(); //拖拽點
PointF mBezierStart1 = new PointF(); //貝塞爾曲線起始點
PointF mBezierControl1 = new PointF();//貝塞爾曲線控制點
PointF mBeziervertex1 = new PointF(); //貝塞爾曲線頂點
PointF mBezierEnd1 = new PointF(); //貝塞爾曲線結束點
直線P1P2和直線P3P4的交點坐標(x,y):
a1=(P2·y-P1·y)/(P2·x-P1·x);
b1=((P1·x*P2·y)-(P2·x*P1·y))/(P1x-P2·x)
a2=(P4·y-P3·y)/(P4·x-P3·x);
b2=((P3·x*P4·y)-(P4·x*P3·y))/(P3·x-P4·x)
x=(b2-b1)/(a1-a2)
y=a1*x+b1
拖拽點對應的拖拽腳(x,y):
如果x不大于屏幕寬度的一半, 則mCornerX 為0,否則mCornerX為屏幕寬度;如果y不大于屏幕高度的一半, 則mCornerY 為0, 否則mCornerX為屏幕高度。
翻頁的過程就是對這三張頁面的剪切與組合的過程,調用貝塞爾曲線的方法,通過Path類里面的quadTo(x1, y1, x2, y2) 真實的翻頁效果就出來了。
4.3數字資源子模塊的實現
數字資源子模塊調用了Android MediaPlayer,MediaPlayer在底層是基于OpenCore的庫libopencoreplayer.so,為了構建MediaPlayer,上層還包含了進程間通訊等內容,進程間通訊的基礎是Android基本庫中的Binder機制。在各個庫中,libmedia.so位于核心的位置,它對上層提供的接口是MediaPlayer類,libmedia_jni.so通過調用 MediaPlayer類提供對JAVA的接口[4~6]。數字資源子模塊允許訪問云端數字資源,也可遍歷本地數字資源,支持MPEG-1(mpg、dat、mp3)、MPEG-4(avi、asf、wmv)、REAL(rm、rmvb)、MKV等眾多主流媒體,支持亮度、進度、聲音的拖放等。

圖4 TXT悅讀吧
通過對云圖書館信息系統的關鍵技術、需求分析、系統架構、系統目標、數據庫和功能模塊進行科學的分析,設計并實現了一個界面友好、操作方便、安全穩定、功能齊全、智能升級的數字圖書館。它具有以下特點:利用云計算技術,解決了現有圖書館文獻資源共建、共享不足的問題;開放式Android系統,與平臺無關的JAVA開發語言,使本系統具有很好的移植性;面向讀者,以用戶為中心,將現代信息技術與圖書館深度融合,提供了一個無所不在的云圖書館電子聯盟,最大程序滿足讀者對文獻信息資源的更高要求。CLMIS V1.0已注冊中華人民共和國計算機軟件著作權(登記號:2014SR080828),經過近一年的試用,用戶反映良好。
[1]劉茲恒.國外高等教育文獻信息資源共享的發展趨勢[J].中國教育網絡,2014,107 (4):72~75.
[2]王文清,陳凌.CALIS數字圖書館云服務平臺模型[J].大學圖書館學報,2009,23 (4):13~18.
[3]阮岡納贊.圖書館學五定律[M]. 夏云,譯. 北京:書目文獻出版社, 1988.
[4]James Steele.Android開發秘籍[M]. 李青,王瑜,譯. 北京: 人民郵電出版社,2011.
[5]Wei-Meng Lee.Android4編程入門經典[M]. 何晨光,李洪剛,譯. 北京:清華大學出版社,2012.
[6]Sayed Y,Hashimi,Satya Komatineni.精通Android2[M]. 楊越,譯. 北京:人民郵電出版社, 2010.
[7]王立福. 軟件工程(第二版)[M]. 北京:北京大學出版社, 2002.
[8]明日科技. Java從入門到精通(第3版) [M]. 北京: 清華大學出版社, 2012.
[9]舒玉坤,張國祥. 云圖書館信息系統模型的構建[J]. 圖書情報工作,2014, 增刊 (2): 171~176.
[10]薩師煊, 王珊. 數據庫系統概論[M].北京:高等教育出版社,1991.
[11]張國祥. 一個由多項自由軟件構成的動態網站的設計與實現 [J].計算機應用與軟件,2004,21 (12): 108~110.
[12]張國祥. 基于Client、Server結構的遠程電腦考勤系統[J].計算機工程與應用,2002,38 (22): 235~238.
[13]吳亞峰,蘇亞光. Android應用案例開發大全[M].北京:人民郵電出版社, 2011.
[14]潘云鶴.計算機圖形學原理、方法及應用[M].北京:高等教育出版社, 2001.
Design and implementation of cloud library information system based on the internet plus
ZHANG Guo-xiang1,SHU Yu-kun2
(1.College of Physics and Electronic Science,Hubei Normal University,Huangshi435002,China;2.College of Mathematics and Statistics,Hubei Normal University,Huangshi435002,China)
According to the characteristics of cloud computing and the analysis of users' needs,in this paper,five layers model of Cloud Library was put forward,and through the Android platform,using JAVA programming,calling JDBC to driver SQL Server database,the Cloud Library Information System was designed and implemented,realizing resource recommendation,library catalog search,my library,digital resources and other functions,making any user can get any information for any library in anywhere at anytime,thus providing ubiquitous,user-centered,open and deep knowledge service to promote the development of Internet plus Mobile Library.
Android;JAVA;cloud computing;digital library
2016—02—18
張國祥(1964—),男,湖北仙桃人,教授,碩士生導師,研究方向為計算機網絡安全與應用研究.
G250
A
1009-2714(2016)02- 0001- 06
10.3969/j.issn.1009-2714.2016.02.001