宮佩
摘要:SaaS以多租戶為主要特征,該文對SaaS模式下多租戶系統(tǒng)架構(gòu)及其數(shù)據(jù)庫進(jìn)行了研究,以便于為石油公司提供更廣闊的思路。
關(guān)鍵詞:SaaS;多租戶;架構(gòu);數(shù)據(jù)庫
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)30-0177-03
Study on the System Architecture of Drilling Companys under SaaS Model
GONG Pei
(School of Computer, Xian Shi you University, Xian 710065, China)
Abstract:SaaS takes multi-tenant as main characteristics,this paper is based on SaaS model to analysis the system architecture and the database about multi-tenant.
Key words:SaaS; multi_tenant; architecture; database
1 概述
埋藏在地下的石油資源,油田的勘探、開發(fā)、保存、儲運(yùn)等工作繁瑣不堪,一線作業(yè)是鉆井企業(yè)的主要業(yè)務(wù),作業(yè)隊(duì)經(jīng)常在野外工作,分布地域遼闊,作業(yè)現(xiàn)場情況復(fù)雜多變,地理環(huán)境和氣候條件以及設(shè)備故障等現(xiàn)場問題存在大量未知因素,而石油鉆井企業(yè)一般在野外工作,而對于軟件公司來說,不可能為每個(gè)企業(yè)量身定做一個(gè)數(shù)據(jù)庫,這樣不僅加大了了工作量,而且所需要的經(jīng)費(fèi)也非常多[1]。軟件公司還需派遣工作人員去各個(gè)鉆井隊(duì)進(jìn)行后期維護(hù),這樣是很不現(xiàn)實(shí)的,也沒有哪個(gè)公司能負(fù)擔(dān)起這個(gè)消費(fèi)。而多租戶技術(shù)就可以針對這一現(xiàn)象設(shè)計(jì)出多租戶數(shù)據(jù)庫,供各個(gè)公司租賃,可對不同鉆井企業(yè)提供多樣化的低成本、高質(zhì)量的服務(wù),本課題將引入多租戶技術(shù)。多租戶技術(shù)是通過研究并實(shí)現(xiàn)怎樣在用戶較多的情況下共用相同的系統(tǒng)或程序組件,且仍可保證各個(gè)用戶之間的數(shù)據(jù)隔離性的一種軟件架構(gòu)技術(shù)。
2 SaaS服務(wù)模式
SaaS(軟件即服務(wù))是打破傳統(tǒng)軟件銷售模式的一種商業(yè)模式,它的特點(diǎn)是網(wǎng)絡(luò)交付和按照需要付費(fèi)使用。在這種模式下,軟件供應(yīng)商(開發(fā)者、開發(fā)方)從軟件租用者處獲得長久連續(xù)的收入,當(dāng)然供應(yīng)商也需讓步,租戶不需要再支付維護(hù)軟件、升級版本以及購置硬件等方面的費(fèi)用。更多的企業(yè)也是因?yàn)镾aaS模式具有靈活性、可擴(kuò)展性和較高的成本效益,紛紛采用這種軟件(開發(fā)、交付)模式。
2.1 關(guān)于多租戶的概念
多租戶這一概念的提出是隨著SaaS應(yīng)用模式的快速發(fā)展,它是SaaS應(yīng)用的一個(gè)重要的應(yīng)用,即SaaS應(yīng)用必須能夠滿足多個(gè)或多種租戶的軟件需求,這樣一來SaaS供應(yīng)商們花費(fèi)在軟件開發(fā)、硬件購置、培訓(xùn)、升級和維護(hù)等一系列上面的成本才能減少,從而可以投入最少的基礎(chǔ)設(shè)施成本取得最大的利潤。同樣,通過多租戶的可定制特性,客戶能夠按需付費(fèi)使用軟件,并降低租戶的應(yīng)用門檻和風(fēng)險(xiǎn)[2]。
多租戶作為SaaS服務(wù)中的一個(gè)重要技術(shù),它的目標(biāo)是可以支持更多的客戶,SaaS服務(wù)提供商希望可以盡可能的為更多客戶提供服務(wù),因此SaaS服務(wù)提供商就必須能夠盡可能的接受和處理客戶的請求。
2.2 SaaS模式的優(yōu)點(diǎn)
SaaS模式軟件能夠得到迅速的發(fā)展,除了科技的推動(dòng)發(fā)展之外,還得益于軟件本身的優(yōu)勢。
具體來說優(yōu)點(diǎn)可概括如下:
1) 按需使用。用戶按照自己的需要向服務(wù)商購買自己所需要的服務(wù),所支付的費(fèi)用則是由他所購買的服務(wù)數(shù)量、使用時(shí)間來決定的,這樣一來就避免了資源和金錢的浪費(fèi)。
2) 靈活使用。SaaS模式軟件的數(shù)據(jù)資料的存儲位置都是在虛擬的互聯(lián)網(wǎng)上,沒有相對應(yīng)的具體位置。只要租戶在可以聯(lián)網(wǎng)的情況下,隨時(shí)隨地可使用。
3) 無須維護(hù)。應(yīng)用軟件的主要運(yùn)行都設(shè)置在服務(wù)器端口上,租戶如果在使用時(shí)遇到問題,通知服務(wù)商的工作人員去解決,不用租戶再浪費(fèi)時(shí)間金錢去處理問題。
4) 精簡人員。服務(wù)提供商會(huì)有專人負(fù)責(zé)某一固定模塊,租戶不用再額外增加IT工作人員。
在SaaS服務(wù)模式中各個(gè)租戶所支付的服務(wù)和維護(hù)費(fèi)用會(huì)隨著租戶規(guī)模的逐漸增多而減低[3]。因此SaaS這種解決方案已經(jīng)漸漸被更多的企業(yè)所接納。
3 SaaS模式體系架構(gòu)設(shè)計(jì)
鉆井生產(chǎn)作為石油勘探開發(fā)過程中的一個(gè)重要環(huán)節(jié),直接影響著油田的產(chǎn)能建設(shè)。鉆井企業(yè)的主要業(yè)務(wù)流程是人員與技術(shù)集中,包含技術(shù)、管理與經(jīng)濟(jì)等的系統(tǒng)工程,它的業(yè)務(wù)涉及面較廣,信息種類多,信息集成、處理起來較繁瑣[4]?,F(xiàn)在石油公司需要利用多租戶系統(tǒng)來提供相關(guān)思想。考慮到可以更好地支持SaaS服務(wù)應(yīng)用這方面,本文選擇了分層設(shè)計(jì)的系統(tǒng)架構(gòu)設(shè)計(jì)基礎(chǔ)。
綜合考慮租戶的應(yīng)用需求和服務(wù)提供商的能力,本文主要實(shí)現(xiàn)具有可配置性的多租戶系統(tǒng)架構(gòu),本文參考了固有的傳統(tǒng)模式應(yīng)用架構(gòu),添加了配置管理層和數(shù)據(jù)模式選擇層[5]。配置管理層的功能主要是在多租戶單實(shí)例系統(tǒng)中能配置系統(tǒng)的使用這一任務(wù),即為租戶推出了定制性的模塊且有一些應(yīng)用方面的配置,可以為企業(yè)提供特定需求的配置管理。由于不同的軟件供應(yīng)商會(huì)采取不一定會(huì)選取同種數(shù)據(jù)庫,因此增加了數(shù)據(jù)模式選擇層。盡量在單例系統(tǒng)中調(diào)節(jié)租戶選擇數(shù)據(jù)庫的數(shù)量,簡化功能。使系統(tǒng)可擴(kuò)展,代碼改動(dòng)不多并減少耦合度[6]。SaaS服務(wù)應(yīng)用架構(gòu)如圖1所示。
圖1 SaaS體系架構(gòu)
在圖1的體系架構(gòu)中,和傳統(tǒng)模式的系統(tǒng)架構(gòu)對比起來,它的結(jié)構(gòu)是七層,本文為其添加配置管理層和數(shù)據(jù)模式選擇層。配置管理層是SaaS服務(wù)模式軟件應(yīng)用系統(tǒng)中比較特殊的層次,由于SaaS模式軟件面向多租戶的特性,當(dāng)租戶的使用需求產(chǎn)生變化的時(shí)候,服務(wù)商做不到滿足每個(gè)租戶的需求,所以SaaS服務(wù)模式系統(tǒng)架構(gòu)需要具備靈活性這一特點(diǎn),不是服務(wù)商為每個(gè)租戶改動(dòng),而是租戶可以自行修改,從這些來看,這一層的功能主要是在系統(tǒng)中管理各個(gè)租戶的數(shù)據(jù)配置信息,為其提供功能上的定制和應(yīng)用的靈活配置性,以滿足用戶的一些特定需求[7]。
添加數(shù)據(jù)模式選擇層主要是由于不同的軟件服務(wù)提供商會(huì)選擇不同的數(shù)據(jù)庫,為了能使系統(tǒng)具備更強(qiáng)大的擴(kuò)展性能、代碼改動(dòng)少并降低耦合度,可以操作多租戶單實(shí)例系統(tǒng)中租戶選擇數(shù)據(jù)庫的種類,并對面向接口模式和工廠模式相融合的方法有一個(gè)簡單的實(shí)例化[8]。
SaaS服務(wù)模式的應(yīng)用系統(tǒng)的配置性可以在添加了這兩層之后有了明顯的效果。
4 SaaS模式數(shù)據(jù)庫架構(gòu)設(shè)計(jì)
相比傳統(tǒng)軟件, 數(shù)據(jù)存儲時(shí)大部分是把數(shù)據(jù)庫放到客戶的服務(wù)器里,由客戶自己來進(jìn)行維護(hù)與管理,但是這種方式客戶會(huì)覺得有一些困擾[9]。多租戶性是SaaS服務(wù)模式應(yīng)用和傳統(tǒng)軟件明顯的不同,即多個(gè)租戶選擇同一個(gè)運(yùn)行實(shí)例,他們之間的數(shù)據(jù)同時(shí)具備隔離性和共享性,所以SaaS服務(wù)模式需要考慮到在數(shù)據(jù)隔離與共享兩方面尋求一個(gè)平衡問題以及成本問題。
一般說來,在數(shù)據(jù)存儲方面有三種方案:1)獨(dú)立數(shù)據(jù)庫;2)共享數(shù)據(jù)庫但隔離數(shù)據(jù)架構(gòu);3)共享數(shù)據(jù)庫且共享數(shù)據(jù)架構(gòu)。
4.1 獨(dú)立數(shù)據(jù)庫
獨(dú)立數(shù)據(jù)庫是把每個(gè)租戶的數(shù)據(jù)信息獨(dú)立存儲在各自的數(shù)據(jù)庫中,通過這種方案可以實(shí)現(xiàn)數(shù)據(jù)的隔離。每個(gè)租戶在物理上都會(huì)擁有屬于自己的一整套數(shù)據(jù),且獨(dú)立存儲。
這種存放方式有著自己獨(dú)特的優(yōu)點(diǎn),讓不同的租戶擁有自己的數(shù)據(jù)庫,對于后期數(shù)據(jù)模型的擴(kuò)展有一定的幫助,可以實(shí)現(xiàn)不同租戶的不同需求,出現(xiàn)問題的時(shí)候,租戶的數(shù)據(jù)恢復(fù)也相對簡單。但對于SaaS的應(yīng)用來說,這樣就增加了數(shù)據(jù)庫的安裝量,并且維護(hù)成本和購置成本會(huì)逐漸增大。
4.2 共享數(shù)據(jù)庫,隔離數(shù)據(jù)架構(gòu)
這種方案就是所有的租戶租用同一個(gè)數(shù)據(jù)庫,但租戶自己的數(shù)據(jù)表結(jié)構(gòu)是不同的,而且會(huì)存放在單獨(dú)的模式里。這樣一來,當(dāng)該SaaS服務(wù)系統(tǒng)首次被客戶所使用時(shí),系統(tǒng)不僅創(chuàng)建了租戶環(huán)境,而且創(chuàng)建了一整套的默認(rèn)數(shù)據(jù)表結(jié)構(gòu),同時(shí)將租戶關(guān)聯(lián)到他自己的模式中。
這種方式的優(yōu)勢是與上種方式相比較得來的,一臺服務(wù)器可以通過共享數(shù)據(jù)這種方式來為更多的租戶提供服務(wù),并且數(shù)據(jù)結(jié)構(gòu)不同,又有數(shù)據(jù)隔離,滿足那些對安全性有需求的租戶的訴求,有數(shù)據(jù)隔離,又不是全部隔離[7]。
4.3 共享數(shù)據(jù)庫,共享數(shù)據(jù)架構(gòu)
共享數(shù)據(jù)庫,共享數(shù)據(jù)架構(gòu)方案,也就是所有用戶共享相同的數(shù)據(jù)庫,相同的數(shù)據(jù)表結(jié)構(gòu),存放在相同的錯(cuò)模式中。在這種方案里,多個(gè)租戶的數(shù)據(jù)記錄可以放在同一個(gè)數(shù)據(jù)表里,用租戶ID來區(qū)分租戶之間的數(shù)據(jù)。
共享數(shù)據(jù)庫,共享數(shù)據(jù)架構(gòu)方案是一種共享程度最高,隔離級別最低的數(shù)據(jù)存儲方式。這種方案的硬件維護(hù)和購置成本是最低的,且數(shù)據(jù)庫可支持的租戶數(shù)量在每臺服務(wù)器是最多的。但是因?yàn)橄嗤臄?shù)據(jù)庫被所有租戶共同使用的緣故,所以隔離性比較差,安全性也較低,為了保證所有租戶在系統(tǒng)異常不訪問到其他租戶信息,還必須考慮到安全方面的設(shè)定[10]。
4.4 三種方案的比較
上面提到的三種方案中,各自都有自己的優(yōu)缺點(diǎn),各種商業(yè)形式和技術(shù)方面根據(jù)自己的特點(diǎn)來選擇適合自己的方案。
從上邊分析可以看出,方案一的隔離級別最高,共享級別最低。而方案三則與之相反。
獨(dú)立數(shù)據(jù)庫的特點(diǎn)是通過簡化數(shù)據(jù)模型來達(dá)到用戶需求,且數(shù)據(jù)恢復(fù)的手段也比較簡單。但是在成本方面為有所提高。相比較來說,第三種方案的成本最低,但是相同的數(shù)據(jù)庫會(huì)被不同的租戶租用,會(huì)需要提高安全性,保證租戶就算發(fā)生故障時(shí),也看不到別人的信息[11]。
產(chǎn)品的定價(jià)策略和用戶對數(shù)據(jù)安全的需求將決定了租戶會(huì)選擇哪種SaaS服務(wù)模式。
5 結(jié)束語
本文針對石油公司復(fù)雜多變的具體情況,應(yīng)用軟件即服務(wù)思想為鉆井公司提供了一種更好處理數(shù)據(jù)的參考思路。文中探討了適用于SaaS系統(tǒng)的七層架構(gòu)和數(shù)據(jù)庫架構(gòu)設(shè)計(jì)方案的思想。SaaS相比與傳統(tǒng)軟件模式而言,可以降低中小型企業(yè)的資金投入和維護(hù)工作,進(jìn)而幫助石油公司更好地迎接全球化時(shí)代在信息化建設(shè)方面所面臨的效能、時(shí)間和成本挑戰(zhàn)。
參考文獻(xiàn):
[1] 那保國.石油儲運(yùn)生產(chǎn)數(shù)據(jù)管理信息系統(tǒng)研究[D]. 哈爾濱: 哈爾濱工程大學(xué),2007.
[2] 昌中作,徐悅,戴鋼.基于SaaS模式公共服務(wù)平臺多用戶數(shù)據(jù)結(jié)構(gòu)的研究[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2008(2):7-11.
[3] Stefan Aulbach,Dean Jacobs,Alfons Kemper, et al.A Comparison of Flexible Schemas for
Software as Service[D].Technische University.2011
[4] 安傳周.我國石油化工企業(yè)安全生產(chǎn)問題及對策研究[D].濟(jì)南:山東大學(xué),2008.
[5] 何鵬,陸建新,施佺.基于SaaS的網(wǎng)絡(luò)管理系統(tǒng)框架研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2011(12):3592-3596.
[6] Frederick Chong and Gianpaolo Carraro.Architecture Strategies for Catching the Long Ta[J/OL].http://msdn.microsoft.com/en-us/library/aa479069.
[7] Mumtaz Ahmad,Ashraf Aboulanaga,Shivnath Babu. Modeling and Exploiting Query Interactions in Database
System[Z].CIKM 26-30,2008
[8] 高波.面向SOA的多租戶(Multi-Tenancy)技術(shù)的研究與實(shí)現(xiàn)[D]. 天津:天津大學(xué),2006.
[9] 朱秀美. 共享數(shù)據(jù)模式下多租戶數(shù)據(jù)庫復(fù)制技術(shù)研究[R]. Science & Technology Information,2003.1.
[10] 孫圣力,黃震華,李鵬.面向多租戶數(shù)據(jù)庫的 Skyline 處理算法[J].計(jì)算機(jī)科學(xué)與探索,2011(5).
[11] Frederick Chong, Gianpaolo Carraro.Architecture Strategies for Catching the Long Tail[J/OL].http://msdn.microsoft.com/en-us/library/aa479069.2006.