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