專利名稱::一種用于多租戶架構(gòu)中數(shù)據(jù)隔離的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及云計算
技術(shù)領(lǐng)域:
,尤其涉及一種在云計算中用于多租戶架構(gòu)中數(shù)據(jù)隔離的方法。
背景技術(shù):
:傳統(tǒng)的企業(yè)級應(yīng)用交付和運(yùn)營模式是根據(jù)客戶自己的需求,定制開發(fā)ー套完全屬于自己的系統(tǒng),客戶需要購買并維護(hù)各種所需的硬件和軟件資源。近年來,隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展和云計算引發(fā)的全球信息化革命浪潮,多租戶軟件架構(gòu)作為一種新的軟件架構(gòu)模式開始興起的。它通過Internet提供軟件服務(wù),服務(wù)商將應(yīng)用軟件統(tǒng)ー部署在服務(wù)器上,租戶可以根據(jù)自己的需求,向服務(wù)商定購所需的軟件服務(wù),并按定購服務(wù)的功能和使用時間,向廠商支付費(fèi)用,并通過互聯(lián)網(wǎng)獲得支持。它的出現(xiàn)徹底改變了系統(tǒng)交付和用戶使用的方式,更加靈活可擴(kuò)展,易于快速定制和集成以便適應(yīng)用戶需求的變化。由于多租戶技術(shù)可以讓多個租戶共用一個應(yīng)用程序或運(yùn)算環(huán)境,且租戶大多不會使用太多運(yùn)算資源的情況下,對供應(yīng)商來說多租戶技術(shù)可以有效的降低環(huán)境建設(shè)的成本,包含硬件本身的成本,操作系統(tǒng)與相關(guān)軟件的授權(quán)成本等。在多租戶系統(tǒng)中多個租戶共用ー個實(shí)例,租戶的數(shù)據(jù)既有隔離又有共享,保護(hù)租戶數(shù)據(jù)的隱私與安全也成為多租戶技術(shù)的關(guān)鍵之一。多租戶技術(shù)可以通過許多不同的方式來切割用戶的應(yīng)用程序環(huán)境或數(shù)據(jù),包括數(shù)據(jù)層、程序?qū)?、系統(tǒng)層。在數(shù)據(jù)層方面,供應(yīng)商可以利用切割數(shù)據(jù)庫,切割存儲區(qū),切割結(jié)構(gòu)描述或是表格來隔離租戶的數(shù)據(jù),必要時會需要進(jìn)行對稱或非対稱加密以保護(hù)敏感數(shù)據(jù),但不同的隔離作法有不同的實(shí)現(xiàn)復(fù)雜度與風(fēng)險。在程序?qū)臃矫妫?yīng)商可以利用應(yīng)用程序掛載環(huán)境,于進(jìn)程上切割不同租戶的應(yīng)用程序運(yùn)行環(huán)境,在無法跨越進(jìn)程通信的情況下,保護(hù)各租戶的應(yīng)用程序運(yùn)行環(huán)境,但供應(yīng)商的運(yùn)算環(huán)境要夠強(qiáng)。在系統(tǒng)層方面,供應(yīng)商可以利用虛擬化技術(shù),將實(shí)體運(yùn)算單元切割成不同的虛擬機(jī),各租戶可以使用其中一至數(shù)臺的虛擬機(jī)來作為應(yīng)用程序與數(shù)據(jù)的保存環(huán)境,但對供應(yīng)商的運(yùn)算能力要更高要求。
發(fā)明內(nèi)容鑒于現(xiàn)有技術(shù)中存在的問題,本發(fā)明的目的在于提供ー種用于多租戶架構(gòu)中數(shù)據(jù)隔離的方法,以達(dá)到安全地隔離每個租戶。本發(fā)明所述的用于多租戶架構(gòu)中數(shù)據(jù)隔離的方法,其特征在于包括如下步驟步驟I、啟動云計算服務(wù)器網(wǎng)絡(luò),租戶向服務(wù)器發(fā)送注冊請求;步驟2、服務(wù)器收到注冊請求后通過域名名稱驗(yàn)證唯一性,如果驗(yàn)證通過則可以登錄服務(wù)器;步驟3、在服務(wù)器端設(shè)置租戶的角色,授權(quán)給不同用戶對平臺的不同操作權(quán)限;步驟4、租戶遠(yuǎn)程創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)庫表,配置數(shù)據(jù)庫服務(wù)和數(shù)據(jù)源,建立數(shù)據(jù)庫連接;步驟5、配置SQL語句和字段對應(yīng)關(guān)系,用于對遠(yuǎn)程數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行增刪改查操作;步驟6、將遠(yuǎn)程數(shù)據(jù)庫表發(fā)布為Web服務(wù)描述語言(WSDL)服務(wù),通過在云計算服務(wù)器中注冊該服務(wù),以便租戶調(diào)用。進(jìn)ー步,本發(fā)明所述的用于多租戶架構(gòu)中數(shù)據(jù)隔離的方法,其特征在于所述注冊請求內(nèi)容包括域名、用戶名、密碼、郵件地址。進(jìn)ー步,本發(fā)明所述的用于多租戶架構(gòu)中數(shù)據(jù)隔離的方法,其特征在于包括授權(quán)給不同用戶對平臺的不同操作權(quán)限包括查詢、更改、訪問、監(jiān)控權(quán)限。進(jìn)ー步,本發(fā)明所述的用于多租戶架構(gòu)中數(shù)據(jù)隔離的方法,其特征在于當(dāng)多個租戶同時訪問服務(wù)器時,服務(wù)器首先根據(jù)域名的唯一性以及相關(guān)權(quán)限配置,在數(shù)據(jù)庫表中加以字段區(qū)別,以隔離每個租戶的基礎(chǔ)數(shù)據(jù),然后服務(wù)器會為每個租戶創(chuàng)建獨(dú)立的數(shù)據(jù)庫,以完全隔離租戶的數(shù)據(jù)。由以上技術(shù)方案可知,本發(fā)明提供了用于多租戶架構(gòu)中數(shù)據(jù)隔離的方法,該發(fā)明具有以下優(yōu)勢隔離租戶數(shù)據(jù)采用為不同的租戶建立獨(dú)立的數(shù)據(jù)庫,這樣有助于簡化數(shù)據(jù)模型的擴(kuò)展設(shè)計,滿足不同租戶的獨(dú)特需求,而且如果出現(xiàn)故障,恢復(fù)數(shù)據(jù)比較簡単。隔離系統(tǒng)數(shù)據(jù)通過域名的唯一性以及相關(guān)配置,在數(shù)據(jù)庫表中加以字段區(qū)別,這樣使用結(jié)構(gòu)描述的方式操作簡單,易于擴(kuò)展。圖I為本發(fā)明用于實(shí)現(xiàn)多租戶架構(gòu)中數(shù)據(jù)隔離方法之系統(tǒng)的架構(gòu)圖。圖2為本發(fā)明用于多租戶架構(gòu)中數(shù)據(jù)隔離的方法之流程圖。具體實(shí)施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式對本發(fā)明作進(jìn)ー步詳細(xì)的說明。如圖I所示為本發(fā)明用于實(shí)現(xiàn)多租戶架構(gòu)中數(shù)據(jù)隔離方法之系統(tǒng)的架構(gòu)圖,它是建立在Carbon(企業(yè)中間件平臺)之上,數(shù)據(jù)服務(wù)處理器采用DSDL(數(shù)據(jù)服務(wù)描述語言)的XML格式,ApacheAXIOM(Axis對象模型)提供XML快速響應(yīng),ApacheAxis2(開源Web服務(wù)運(yùn)行引擎)負(fù)責(zé)讀取數(shù)據(jù)描述和創(chuàng)建數(shù)據(jù)服務(wù),把數(shù)據(jù)集成到業(yè)務(wù)流程、小工具、商務(wù)應(yīng)用中去。數(shù)據(jù)庫方面支持Oracle、DB2、MYSQL、SQLServer、HSQLDB、Sysbase等主流數(shù)據(jù)庫,以及JNDI(Java命名和目錄接ロ)數(shù)據(jù)源。圖I所示多租戶架構(gòu)用于租戶把數(shù)據(jù)發(fā)布為Web服務(wù),它可以快速發(fā)布數(shù)據(jù),而且?guī)缀醪挥镁幊?。它不但能發(fā)布關(guān)系數(shù)據(jù)庫中的數(shù)據(jù),而且還能發(fā)布非關(guān)系數(shù)據(jù)庫比如Excel、Txt等扁平文件中的數(shù)據(jù)。具體配置發(fā)布流程詳見圖2。如圖2所示為本發(fā)明用于多租戶架構(gòu)中數(shù)據(jù)隔離的方法之流程圖,包括步驟I、啟動云計算服務(wù)器網(wǎng)絡(luò),租戶向服務(wù)器發(fā)送注冊請求,注冊內(nèi)容包括域名、用戶名、密碼、郵件地址等;步驟2,服務(wù)器收到注冊請求后通過域名名稱驗(yàn)證唯一性,如果驗(yàn)證通過則可以登錄服務(wù)器,如果不唯一,則注冊失敗,重新申請;步驟3、在服務(wù)器端設(shè)置租戶的角色,分為管理員和普通用戶兩種角色,授權(quán)給不同用戶對平臺的操作,包括查詢、更改、訪問、監(jiān)控等不同的權(quán)限。步驟4、租戶遠(yuǎn)程創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)庫表,并接著配置數(shù)據(jù)庫服務(wù)和數(shù)據(jù)源,在平臺選擇數(shù)據(jù)庫,配置數(shù)據(jù)庫驅(qū)動、訪問地址,輸入訪問數(shù)據(jù)庫的用戶名、密碼,建立數(shù)據(jù)庫連接。數(shù)據(jù)庫是由租戶結(jié)合自己的業(yè)務(wù)需求而創(chuàng)建,以便租戶自己調(diào)用。我們用mysql數(shù)據(jù)庫為例mysql>createdatabaseemployeedb;mysql>useemployeedb;mysql>createtableemployee(idVARCHAR(10)N0TNULLPRIMARYKEY,nameVARCHAR(100),addressVARCHAR(IOO));mysql>insertintoemployeevalues(‘1,,,john,,,Boston,);mysql>insertintoemployeevalues(‘2,,,Micheal,,,Dallas,);mysql>insertintoemployeevalues(‘3,,,richard,,,Chicago,);mysql>exit;步驟5、配置SQL操作,具體為配置SQL語句和字段對應(yīng)關(guān)系,用于對遠(yuǎn)程數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行增刪改查操作。創(chuàng)建SQL如下selectid,name,addressformemployee步驟6、利用圖I中的Axis2架構(gòu)把遠(yuǎn)程數(shù)據(jù)庫表發(fā)布為WSDL(Web服務(wù)描述語言)服務(wù),通過在云計算服務(wù)器中注冊該服務(wù),以便租戶調(diào)用。當(dāng)多個租戶同時訪問服務(wù)器時,服務(wù)器首先根據(jù)域名的唯一性以及相關(guān)權(quán)限配置,在數(shù)據(jù)表中加以字段區(qū)別,利用關(guān)系型數(shù)據(jù)庫(如mysql)的多版本并發(fā)控制技術(shù)和行加鎖機(jī)制關(guān)聯(lián),以達(dá)到隔離租戶的基礎(chǔ)數(shù)據(jù)。然后服務(wù)器會為每個租戶創(chuàng)建獨(dú)立的數(shù)據(jù)庫,這樣租戶的數(shù)據(jù)將會完全隔離,租戶之間的操作互不影響,實(shí)現(xiàn)良好的安全性。由以上技術(shù)方案可知,本發(fā)明提供了用于多租戶架構(gòu)中數(shù)據(jù)隔離的系統(tǒng)和方法,該發(fā)明具有以下優(yōu)勢隔離租戶數(shù)據(jù)采用為不同的租戶建立獨(dú)立的數(shù)據(jù)庫,這樣有助于簡化數(shù)據(jù)模型的擴(kuò)展設(shè)計,滿足不同租戶的獨(dú)特需求,而且如果出現(xiàn)故障,恢復(fù)數(shù)據(jù)比較簡単。隔離系統(tǒng)數(shù)據(jù)通過域名的唯一性以及相關(guān)配置,在數(shù)據(jù)表中加以字段區(qū)別,這樣使用結(jié)構(gòu)描述的方式操作簡單,易于擴(kuò)展。數(shù)據(jù)庫方面支持Oracle、DB2、MYSQL、SQLServer、HSQLDB,Sysbase等主流數(shù)據(jù)庫,以及JNDI數(shù)據(jù)源。最后應(yīng)當(dāng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對其限制;盡管參照較佳實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解依然可以對本發(fā)明的具體實(shí)施方式進(jìn)行修改或者對部分技術(shù)特征進(jìn)行等同替換;而不脫離本發(fā)明技術(shù)方案的精神,其均應(yīng)涵蓋在本發(fā)明請求保護(hù)的技術(shù)方案范圍當(dāng)中。權(quán)利要求1.一種用于多租戶架構(gòu)中數(shù)據(jù)隔離的方法,其特征在于包括如下步驟步驟I、啟動云計算服務(wù)器網(wǎng)絡(luò),租戶向服務(wù)器發(fā)送注冊請求;步驟2、服務(wù)器收到注冊請求后通過域名名稱驗(yàn)證唯一性,如果驗(yàn)證通過則可以登錄服務(wù)器;步驟3、在服務(wù)器端設(shè)置租戶的角色,授權(quán)給不同用戶對平臺的不同操作權(quán)限;步驟4、租戶遠(yuǎn)程創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)庫表,配置數(shù)據(jù)庫服務(wù)和數(shù)據(jù)源,建立數(shù)據(jù)庫連接;步驟5、配置SQL語句和字段對應(yīng)關(guān)系,用于對遠(yuǎn)程數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行增刪改查操作;步驟6、將遠(yuǎn)程數(shù)據(jù)庫表發(fā)布為Web服務(wù)描述語言(WSDL)服務(wù),通過在云計算服務(wù)器中注冊該服務(wù),以便租戶調(diào)用。2.根據(jù)權(quán)利要求I所述的用于多租戶架構(gòu)中數(shù)據(jù)隔離的方法,其特征在于所述注冊請求內(nèi)容包括域名、用戶名、密碼、郵件地址。3.根據(jù)權(quán)利要求I所述的用于多租戶架構(gòu)中數(shù)據(jù)隔離的方法,其特征在于包括授權(quán)給不同用戶對平臺的不同操作權(quán)限包括查詢、更改、訪問、監(jiān)控權(quán)限。4.根據(jù)權(quán)利要求I所述的用于多租戶架構(gòu)中數(shù)據(jù)隔離的方法,其特征在于當(dāng)多個租戶同時訪問服務(wù)器時,服務(wù)器首先根據(jù)域名的唯一性以及相關(guān)權(quán)限配置,在數(shù)據(jù)庫表中加以字段區(qū)別,以隔離每個租戶的基礎(chǔ)數(shù)據(jù),然后服務(wù)器會為每個租戶創(chuàng)建獨(dú)立的數(shù)據(jù)庫,以完全隔離租戶的數(shù)據(jù)。全文摘要一種用于多租戶架構(gòu)中數(shù)據(jù)隔離的方法,其中為租戶遠(yuǎn)程創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)庫表,將遠(yuǎn)程數(shù)據(jù)庫表發(fā)布為Web服務(wù)描述語言(WSDL)服務(wù),通過在云計算服務(wù)器中注冊該服務(wù),以便租戶調(diào)用。當(dāng)多個租戶同時訪問服務(wù)器時,服務(wù)器首先根據(jù)域名的唯一性以及相關(guān)權(quán)限配置,在數(shù)據(jù)庫表中加以字段區(qū)別,每個租戶的基礎(chǔ)數(shù)據(jù)可以由此達(dá)到部分隔離。然后服務(wù)器會為每個租戶創(chuàng)建獨(dú)立的數(shù)據(jù)庫,這樣租戶的數(shù)據(jù)將會完全隔離,租戶之間的操作互不影響,實(shí)現(xiàn)良好的安全性。文檔編號G06F21/00GK102708316SQ20121011627公開日2012年10月3日申請日期2012年4月19日優(yōu)先權(quán)日2012年4月19日發(fā)明者劉兆喜,劉興輝,王焱,王雪山,胡聯(lián)奎申請人:北京華勝天成科技股份有限公司