圖書館信息系統【多租戶模型的圖書館信息系統研究】
發(fā)布時間:2020-03-10 來源: 感悟愛情 點擊:
[摘要]在分析現有圖書館信息系統建設模式的基礎上,提出基于軟件即服務思想的圖書館信息系統建設思路。介紹軟件即服務的定義、特征和成熟度模型,重點闡述基于多租戶模型的圖書館信息系統的數據庫設計、多租戶應用設計、可配置性設計和可伸縮性設計。對多租戶信息系統實現中涉及的文件分布式存儲、應用服務器的可伸縮性、數據庫服務器的可伸縮性以及應用安全等關鍵技術作深入的討論。
[關鍵詞]多租戶 圖書館 信息系統 軟件即服務 云計算
[分類號]G250.71
1 引 言
現有的圖書館信息系統一般都采用自購相關軟硬件系統并配備專門維護人員的建設模式,且一套系統只服務于一個單位。這種應用模式存在投資費用高、設備利用率低、維護升級與信息共享困難等缺陷。軟件即服務(Software-as-a-Service,SaaS)為圖書館信息系統的建設與應用開拓了一個新的方向。
目前SaaS的研究主要集中在體系結構、評價方法、安全保護以及推廣模式等方面。文獻[3]從保障租戶性能的角度,提出了一種多租戶架構-MDSA;文獻[4]提出了一種支持多類終端與服務定制的SaaS軟件服務架構;文獻[5]提出了基于SaaS模式的軟件服務質量評價方法;文獻[6]從多租戶安全保護的角度;提出了隔離租戶數據的相關模型,文獻[7]從可應用性的角度討論了零宕機SaaS應用系統的建立。
在實際應用上,主要集中在客戶關系與供應鏈管理SaaS系統以及一些傳統的單用戶軟件移植到Web上的應用,如Salesforce公司的客戶關系管理系統,Google的在線辦公以及國內的百會寫寫等。在圖書館應用方面,OCLC開發(fā)了OCLC FirstSearch,CALIS也提出了構建CALIS云服務平臺,提供館際互借、參考咨詢等SaaS服務,文獻[8]的實證研究表明真正的SaaS提供商還很少,文獻[9]指出了當前的許多SaaS應用為單租戶、多用戶模式,而非真正意義上的多租戶、多用戶的SaaS應用,并闡述了多租戶SaaS應用的核心挑戰(zhàn)以及單租戶系統向多租戶遷移的途徑。
本文從圖書館信息系統的特點和需求出發(fā),重點研究如何構建真正意義上的多租戶、多用戶的圖書館信息系統的設計與開發(fā)策略,提出了數據庫與數據架構均共享的多租戶圖書館信息系統的數據庫模型,并闡述了多租戶信息系統的數據、功能、界面可配置的實現方法,同時對多租戶系統可伸縮性的實現等關鍵技術做了深入的探討。
2 軟件即服務
2.1 軟件即服務含義
SaaS是隨著互聯網技術的發(fā)展和應用而產生的一種創(chuàng)新的軟件應用模式。在這種模式下,廠商將應用軟件統一部署在自己的服務器上,租戶按需定購軟件的服務功能并付費。SaaS服務將原本由使用者所承擔的軟硬件系統建設與維護的費用,轉變成支付給服務提供商的服務費用。而SaaS服務提供商則通過提高服務規(guī)模,平攤軟硬件、維護等運營成本,達成多贏的目標。對于中小型企業(yè)來說,SaaS是獲取先進信息化管理技術的最好途徑,它消除了企業(yè)構建與維護基礎設施以及應用程序所需要的龐大的前期投入和人力限制,降低了企業(yè)信息化建設門檻,將成為軟件使用的主流模式。SaaS服務模型如圖1所示:
2.2 SaaS成熟度模型
SaaS軟件服務于多個租戶,高性能、可配置、可伸縮是SaaS服務的主要特征,SaaS成熟度模型一般分為四級:
第一級:定制的SaaS。即每個客戶擁有單獨的應用實例和定制的代碼,服務商提供硬件并負責管理維護。由于服務提供商能整合資源并服務于多個客戶,從而降低軟件應用的總體成本。
第二級:可配置的SaaS。每個客戶仍彼此獨立安裝軟件并完全隔離使用,但所有軟件使用相同的代碼,客戶可以通過配置選項來改變應用的外觀和行為。由于客戶的應用實例具有相同的代碼,應用代碼的任何改變都會立刻作用到所有客戶,可大幅降低SaaS應用的維護和升級成本。
第三級:可配置與多租戶的SaaS。服務提供商借助其共享實例服務于所有客戶,采用可配置的元數據為不同的客戶提供個性的使用體驗和功能,通過權限控制和安全策略確保每個客戶的數據被單獨存放或與其他客戶的數據相隔離,這就使得服務提供商計算資源的利用效率大大提高,也無需為新增的客戶增添硬件資源,從而直接降低了成本。
第四級:可伸縮的多租戶SaaS。服務供應商將通過運行一個負載均衡的具備權限驗證功能的平臺來為眾多的客戶同時服務,每個客戶的業(yè)務數據將被單獨存放,同時提供個性功能定制服務。這樣的SaaS系統無需修改架構設計,通過增減后端服務器的數量,就能適應服務大規(guī)模客戶的需要,具備高度可擴展性。
3 系統設計策略
根據SaaS應用成熟度模型,只有達到第三級以上要求的SaaS服務,才能稱得上真正意義上的軟件即服務。因此,多租戶的圖書館信息系統的設計重點在于共享實例、多租戶、可配置與可擴展幾個方面。
3.1 系統的數據庫設計
在多租戶模式的信息系統中,租戶的數據存儲和隔離模式直接影響到租戶的使用信心和數據安全。SaaS應用的數據庫主要有三種方法:①獨立數據庫模式:每一個租戶擁有獨立的數據庫,數據模式的擴展設計較為方便,數據恢復簡單,也可滿足租戶的獨特需求。但由于每一個租戶獨立使用一個數據庫,沒有發(fā)揮SaaS軟件的規(guī)模效應。②隔離數據架構模式:所有租戶共享一個數據庫,每個租戶擁有獨立的數據模式(Schema),在邏輯上隔離了不同租戶的數據,具有較高的安全性,每個數據庫也可以支持更多的租戶數量,但由于共享數據庫,在出現數據故障時,如果采用直接恢復數據庫的方法,將影響到其他租戶的數據。因此,需要采用更為復雜的數據備份和恢復模型。③數據庫與數據架構共享模式:所有租戶共享同一個數據庫和Schema,但在數據表中通過增加租戶ID字段來區(qū)分數據屬于屬于哪個租戶。這種模式具有維護成本低、共享程度高、支持租戶數量多的優(yōu)點,但數據隔離低、安全性低、在設計時需增加應用安全的開發(fā)、數據備份恢復困難,需逐表逐條進行處理。三種數據庫設計模式見圖2。
數據的隔離和共享策略是SaaS服務數據庫設計的關鍵因素,由于圖書館信息系統數據規(guī)范、標準化程度高、數據結構一致性好、數據內容同一性多、數據共享要求高獨立性低、數據隱密性低以及系統成本要求低等特點,采用數據庫與數據架構都共享模式較為適宜。
3.2 多租戶的應用設計
SaaS圖書館信息系統需服務于多個租戶,較傳統的圖書館信息系統,需增加租戶管理的相關功能,包括:租戶注冊、租戶的用戶注冊、服務定制、使用日志、計費以及個性化配置文件管理、租戶權限等。 共享數據庫及數據架構意味著所有租戶的數據混存于同一個數據表中,為了實現租戶的數據隔離和系統的安全應用,首先需在相關數據表中的每一行數據中增加租戶ID,以標志該行數據所屬的具體租戶,然后在應用系統的功能設計中,對于錄入的內容增加租戶ID,最后,建立租戶定制功能和權限配置表,并在相關應用(如查詢、修改、刪除和統計)執(zhí)行前,判斷租戶的權限,以保證租戶間的數據隔離和數據安全。
3.3 多租戶的可配置性設計
在多租戶環(huán)境下,SaaS服務的通用性和普適性要求更高,易用的可配置是SaaS服務的重要特征。多租戶SaaS系統的可配置設計包括數據可配置、功能可配置、界面可配置等。
3.3.1 數據可配置性 在傳統的應用中,每個客戶具有獨立的應用實例,當客戶提出個性需求時(如聯系方式增加QQ號),直接在數據表中增加字段即可。在多租戶的SaaS應用中,所有租戶使用同一實例,不同租戶的個性需求各異,如果直接在數據表中增加擴展性數據的字段,將會破壞數據表的規(guī)范結構,導致數據管理困難,數據表空間資源的嚴重浪費,還會引發(fā)數據庫的性能下降。通過建立租戶的個性化擴展數據配置表,使得系統的基本數據和個性化擴展的數據分開存儲,能較好地避免上述缺陷。SaaS服務擴展數據應用模型的設計及數據表關系見圖3。
圖3中,表“User”為公共數據表,表“Config”為租戶個性擴展數據配置表,租戶“1001”擴展了宿舍和QQ號兩種聯系方式,而租戶“1002”擴展了住處和電話號碼兩種聯系方式,通過“User”、“Config”和“Data_ext”三個表的連接操作,即可方便地獲取相關信息內容,滿足了不同租戶的個性化數據擴展需求:
3.3.2 功能可配置 SaaS服務需要面對為數眾多、功能需求不同的租戶,因此,SaaS服務應能支持租戶有選擇地定制自己需要的功能,并形成完整的功能集合,真正體現SaaS應用的“按需使用,按需付費”的精神。
原子功能的劃分是實現功能可配置的基礎。在原子功能劃分過程中,應遵循原子功能有價值、不可再細分、相互間不重疊、不循環(huán)依賴和確保系統功能完整的分解原則。同時,由于原子功能過分細小以及各功能間存在一定的依賴關系,在實際設計中,還應根據租戶的類型、應用場景、業(yè)務邏輯和使用習慣,將原子功能進行整合,形成相對獨立的功能包,并按不同的商業(yè)意圖,劃分為最小版、標準版、完全版等銷售包。如SaaS圖書館信息系統可以整合成基本版、標準版、完全版或按行業(yè)的特殊狀況劃分成公共圖書館版、中小學圖書館版、高校圖書館版等不同銷售包供用戶租用。
3.3.3 界面可配置 傳統定制的應用系統,其用戶界面能基本符合用戶的需求。在多租戶的SaaS應用中,租戶訂購的功能不同,王作界面也要隨租戶定制功能動態(tài)改變,界面配置主要包括系統菜單和頁面內容可配置。
3.4 多租戶的可伸縮性設計
多租戶的可伸縮性是指在系統架構不做調整的基礎上,只需增減相應的硬件設備就能保證服務水平的能力。多租戶的可伸縮性是SaaS系統的一個重要的評價指標,主要包括應用服務器的可伸縮性、數據庫服務器的可伸縮性、存儲體系的可伸縮性等。應用服務器的可伸縮性主要通過設計一定的負載均衡機制,使得訪問和應用服務能夠均攤到多臺應用服務器。當訪問增加較多時,可以通過增加應用服務器,確保應用層具有良好的伸縮性和服務性能。數據庫的可伸縮性可通過分析應用和數據的特征,采用數據切分、讀寫分離等方法,將服務壓力分散到多臺數據庫服務器。
4 關鍵技術選擇
4.1 文件的分布式存儲
目前,傳統的SAN方式已不能滿足SaaS應用的存儲需求,分布式存儲和冗余存儲已成為SaaS服務主要的存儲技術。
當前分布式數據存儲技術主要有谷歌的GFS(Google File System)和Hadoop開發(fā)團隊開發(fā)的HDFS(Hadoo PDistributed File System)。大部分IT廠商,包括雅虎、英特爾的“云”計劃采用的都是HDFS的數據存儲技術。
Hadoop是由Apache基金會開發(fā)的一個能夠對大量數據進行分布式處理的開源軟件框架,充分利用了集群的高速運算和大容量存儲的特點,具有高容錯、低廉部署、高傳輸率、支持超大數據集、開放、開源、免費等優(yōu)點。因此,Hadoop技術是實現圖書館信息系統SaaS應用的較好選擇,Hadoop的相關程序和應用示例可從Apache網站下載。
4.2 應用服務器的負載均衡
負載均衡是維持大規(guī)模應用并發(fā)請求和提升SaaS系統服務性能的重要保證。基于硬件的負載均衡性能高,但價格昂貴。采用開源Apache http Server的負載均衡功能,可滿足多租戶圖書館信息系統的需求。
在Apachehttp Server中,通過Load Blance配置,應用層的壓力就會均攤到多臺應用服務器上,可保證應用層具有良好的伸縮性。負載均衡的關鍵點是眾多用戶的請求分配和請求保持,Apache Server提供了3種Session請求的保持策略:①將Session復制到所有的應用服務器,這樣無論前端怎樣分發(fā)請求,都能保持會話請求,但大量的Session復制會嚴重影響應用服務器的性能;②將同一用戶的請求轉發(fā)到特定的應用服務器上,避免了Session復制,但這種模式在某臺服務器“宕機”時,服務器上的所有用戶的Session都將失效;③將Session集中到一臺獨立的Session服務器上,使用集中式的Cache代替本地的Session。在這種模式下,應用服務基本實現了完全的水平擴展,而集中式的Session服務器在Session數量達到一臺服務器無法承擔時,也可以通過增加服務器來擴展,可較好地應用于SaaS服務中。
4.3 數據庫服務器的可伸縮性
數據庫是信息系統中的重要支撐,也常常成為整個應用系統的瓶頸。數據庫層的可伸縮性可以通過數據庫的垂直切分、水平切分、讀寫分離和混合應用等幾種方式來解決。數據庫的垂直切分是將不同功能模塊所涉及的數據表的列劃分到不同的數據庫中,以便減輕數據表的訪問壓力,但某些強關聯的應用不易劃分且相應的連接操作對性能影響較大。數據庫的水平切分是按某種規(guī)則將數據表的行劃分到不同的數據庫中,在具體應用時,定位到特定數據庫訪問數據。數據庫的讀寫分離是將同一個數據庫在多個服務器上保留備份并彼此同步,對于寫操作都統一到一個主服務器上,而讀操作則分攤到多臺服務器上。
基于多租戶模型的圖書館信息系統的數據在總體上具有相同的模式。因此,當數據庫服務器負荷超過一定限度時,可以將數據表中的數據按所屬租戶進行水平切分,采用多個數據庫完成整個的應用。同時,圖書館信息系統中的大量用戶是查詢相關文獻資料,而真正進行錄入和修改等寫操作的用戶只有圖書館的工作人員,根據這一實際情況,可以采用讀寫分離的方式,對數據庫進行擴展。
4.4 應用安全
有別于傳統局域網內的信息系統應用模式和基于Web的應用,SaaS服務是基于開放互聯網的多租戶應用,其應用和數據保存在云端,不但要防范基于互聯網的各種安全攻擊,更要保證多租戶架構下的各自的數據安全,因此,SaaS應用安全是租戶最為擔心的問題,也是SaaS應用推廣的重要障礙之一。
云計算的應用安全主要有兩個方面:一是可信,沒有可信一切設計都是白費力氣;二是安全,沒有安全,一切應用都是免談,理想的單位云是可信安全云,其特點是人和設備達到可信計算和認證的目的,具體可以從三方面加以控制和實現:①身份管理,身份的確認是云計算可信和安全應用的最基礎的內容,非可信客戶應拒之門外,可從身份認證、權限分配、操作日志和關鍵應用實時監(jiān)控等方面加以管理和實現;②數據安全,對于SaaS應用來說,客戶最擔心保留在他處的數據的完整性和保密性,可從租戶間的數據隔離、數據庫連接安全、敏感數據加密和數據量監(jiān)控等方面加以管理和實現;③網絡安全,完全基于互聯網使用的SaaS應用,數據在傳輸過程中更容易受到攻擊,應用的穩(wěn)定性也更易受網絡的影響,可從加密的數據傳輸,分層部署的攻擊防范和網絡可用性方面加以管理和實現。
5 總 結
云計算一方面可將更大范圍內的計算資源整合為一個統一的資源為用戶服務,另一方面,云計算又可對租戶的實際需求實現按需定制、按實付費的信息化應用模式,其低成本、高可靠以及快速、便捷的優(yōu)點將逐步成為信息化建設和應用的主流模式。作為云計算最為典型應用的SaaS服務,在圖書館信息系統領域的開發(fā)與推廣應用,必將為推進圖書館信息化建設、提升圖書館信息服務水平、降低圖書館信息化建設的成本等方面起到至關重要的作用。
相關熱詞搜索:租戶 信息系統 模型 多租戶模型的圖書館信息系統研究 信息通信專業(yè) 數字化用戶
熱點文章閱讀