用于跨租戶數(shù)據(jù)訪問的系統(tǒng)和方法
【技術領域】
[0001] 本發(fā)明一般地涉及數(shù)據(jù)庫領域,更具體地說,涉及一種用于數(shù)據(jù)庫中的跨租戶數(shù) 據(jù)訪問的系統(tǒng)和方法。
【背景技術】
[0002] 目前,SaaS正變得越來越普及。SaaS是Software-as-a-Service(軟件即服務) 的簡稱,它是一種通過互聯(lián)網(wǎng)提供軟件的模式。利用該模式,用戶不必購買軟件,而是向服 務提供商租用基于Web的軟件來管理企業(yè)經(jīng)營活動,且無需對軟件進行維護。租用軟件的 用戶稱為租戶(tenant)。由服務提供商管理和維護軟件,并且服務提供商在向租戶提供互 聯(lián)網(wǎng)應用的同時,也提供軟件的離線操作和本地數(shù)據(jù)存儲,讓租戶隨時隨地都可W使用其 租用的軟件和服務。對于許多小型企業(yè)來說,SaaS是采用先進技術的最好途徑,它消除了 企業(yè)購買、構建和維護基礎設施和應用程序的需要。
[0003] 大型SaaS應用會有大量租戶和數(shù)據(jù),隨著業(yè)務的增長,需要將原本要集中存儲的 數(shù)據(jù)分布到不同的目標數(shù)據(jù)庫上。圖4示出了一個示例性SaaS系統(tǒng)。在該SaaS系統(tǒng)中, 使用了H個目標數(shù)據(jù)庫,并且根據(jù)租戶將數(shù)據(jù)劃分到該H個目標數(shù)據(jù)庫中。在圖4所示的 SaaS系統(tǒng)中,租戶T1、T2、T5的數(shù)據(jù)位于數(shù)據(jù)庫A中,租戶T3、T4的數(shù)據(jù)位于數(shù)據(jù)庫B中, 租戶T6的數(shù)據(jù)位于數(shù)據(jù)庫C中。
[0004] 在經(jīng)典的SaaS應用中,不同租戶的數(shù)據(jù)被隔離。但是,在一些情況下,存在跨租戶 訪問數(shù)據(jù)的需求。圖5示出了需要進行跨租戶訪問的幾個示例性情況。例如,當零售商和批 發(fā)商同為一個SaaS應用的租戶的情況下,在批發(fā)商授權的情況下,零售商可能希望看到它 的批發(fā)商的全部或部分數(shù)據(jù)。例如,母公司可能希望看到其子公司的數(shù)據(jù),子公司可能希望 看到其分支機構的數(shù)據(jù)。例如,為了實現(xiàn)病人的醫(yī)療記錄的共享,醫(yī)院可能希望看到病人在 其他醫(yī)院的病歷數(shù)據(jù)。在圖5下部的例子中,例如,醫(yī)院B至D都可W訪問醫(yī)院A的病歷, 只有醫(yī)院A可W訪問醫(yī)院B的病歷,醫(yī)院A和D可W訪問醫(yī)院C的病歷,醫(yī)院A至C都可W 訪問醫(yī)院D的病歷。
[0005] 為了滿足上述需求,現(xiàn)有技術一般需要手動地修改應用,為跨租戶數(shù)據(jù)訪問添加 相關的邏輯。當考慮到授權時,可能還需要在每個目標數(shù)據(jù)庫中添加授權表。
[0006] 例如,對于圖4中的情況,當例如為零售商的租戶T1希望查詢自己的所有訂單數(shù) 據(jù)時,輸入S化語句"SELECT沖ROMSales化der",此時需要修改原本不支持跨租戶環(huán)境的 SaaS應用使得該S化語句被解釋為例如S化查詢語句"SELECT沖ROMSales化derW肥RE Tenant='T1'"或者其它形式,從而能夠在跨租戶環(huán)境下使用。SaaS系統(tǒng)執(zhí)行該S化語句 并返回數(shù)據(jù)庫A中的租戶T1的Sales化der表中的所有數(shù)據(jù)。但是,當租戶T3授權租戶 T1訪問其數(shù)據(jù)時,為了使位于另一數(shù)據(jù)庫B中的租戶T3的所有訂單數(shù)據(jù)也被返回,需要人 工地修改SaaS應用,從而使租戶T1輸入的S化語句"SELECT沖ROMSales化der"被解釋為 例如S化語句"SELECT沖ROMSalesOrderW肥RETenant='T1'ORTenant='T3'"。當另一 租戶T2新授權租戶T1訪問其數(shù)據(jù)時,需要再次改變SaaS應用的邏輯,例如改變W肥RE子 句。由此可見,現(xiàn)有技術中的該種跨租戶數(shù)據(jù)訪問對于應用而言不是透明的,需要根據(jù)不同 的情況進行不同的修改,該非常耗時并且容易出錯。
【發(fā)明內容】
[0007] 為了解決上述問題,本發(fā)明的目的之一是提供一種能夠透明地支持現(xiàn)有的SaaS 應用在跨租戶環(huán)境下使用的用于跨租戶數(shù)據(jù)訪問的系統(tǒng)和方法。
[0008] 根據(jù)本發(fā)明的一方面,提供了一種用于跨租戶數(shù)據(jù)訪問的方法,包括:根據(jù)關于租 戶的元數(shù)據(jù),對于多個租戶中的至少第一租戶,基于第一租戶擁有的第一數(shù)據(jù)W及所述多 個租戶中的至少一個其它租戶擁有的、授權第一租戶訪問的第二數(shù)據(jù),在元數(shù)據(jù)庫中創(chuàng)建 邏輯視圖;W及響應于來自第一租戶的應用的跨租戶數(shù)據(jù)訪問請求,訪問所述元數(shù)據(jù)庫中 的所述邏輯視圖。
[0009] 根據(jù)本發(fā)明的另一方面,提供了一種用于跨租戶數(shù)據(jù)訪問的系統(tǒng),包括;元數(shù)據(jù) 庫;管理模塊,被配置為根據(jù)關于租戶的元數(shù)據(jù),對于多個租戶中的至少第一租戶,基于第 一租戶擁有的第一數(shù)據(jù)W及所述多個租戶中的至少一個其它租戶擁有的、授權第一租戶訪 問的第二數(shù)據(jù),在所述元數(shù)據(jù)庫中創(chuàng)建邏輯視圖;W及數(shù)據(jù)庫驅動模塊,被配置為響應于來 自第一租戶的應用的跨租戶數(shù)據(jù)訪問請求,訪問所述元數(shù)據(jù)庫中的所述邏輯視圖。
[0010] 采用本發(fā)明的用于數(shù)據(jù)庫中的跨租戶數(shù)據(jù)訪問的系統(tǒng)和方法,對于需要轉變成多 租戶應用的所有SaaS應用而言,能夠透明地支持現(xiàn)有的SaaS應用在跨租戶環(huán)境下使用,并 且該種使用基于擁有數(shù)據(jù)的租戶的授權。此外,采用本發(fā)明的用于數(shù)據(jù)庫中的跨租戶數(shù)據(jù) 訪問的系統(tǒng)和方法,也易于開發(fā)跨租戶環(huán)境下的新的SaaS應用。
【附圖說明】
[0011] 通過結合附圖對本公開示例性實施方式進行更詳細的描述,本公開的上述W及其 它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標號 通常代表相同部件。
[0012] 圖1表示根據(jù)本發(fā)明一實施例的云計算節(jié)點;
[0013] 圖2表示根據(jù)本發(fā)明一實施例的云計算環(huán)境;
[0014] 圖3表示根據(jù)本發(fā)明一實施例的抽象模型層;
[0015]圖4示出了一個利用平面擴容機制的示例性SaaS數(shù)據(jù)庫系統(tǒng);
[0016] 圖5示出了需要進行跨租戶訪問的幾個示例性情況;
[0017] 圖6是示出了根據(jù)本發(fā)明的一個實施例的SaaS系統(tǒng)的示意圖;
[0018] 圖7是示出了在元數(shù)據(jù)庫(MetaDat油ase)中為租戶創(chuàng)建邏輯視圖的處理的流程 圖;W及
[0019] 圖8是示出了根據(jù)本發(fā)明實施例的用于數(shù)據(jù)庫中的跨租戶數(shù)據(jù)訪問的方法的流 程圖。
【具體實施方式】
[0020] 下面將參照附圖更詳細地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開 的優(yōu)選實施方式,然而應該理解,可WW各種形式實現(xiàn)本公開而不應被該里闡述的實施方 式所限制。相反,提供該些實施方式是為了使本公開更加透徹和完整,并且能夠將本公開的 范圍完整的傳達給本領域的技術人員。
[0021] 首先應當理解,盡管本公開包括關于云計算的詳細描述,但其中記載的技術方案 的實現(xiàn)卻不限于云計算環(huán)境,而是能夠結合現(xiàn)在已知或W后開發(fā)的任何其它類型的計算環(huán) 境而實現(xiàn)。
[0022] 云計算是一種服務交付模式,用于對共享的可配置計算資源池進行方便、按需的 網(wǎng)絡訪問。可配置計算資源是能夠W最小的管理成本或與服務提供者進行最少的交互就能 快速部署和釋放的資源,例如可W是網(wǎng)絡、網(wǎng)絡帶寬、服務器、處理、內存、存儲、應用、虛擬 機和服務。該種云模式可W包括至少五個特征、至少H個服務模型和至少四個部署模型。 [002引特征包括:
[0024]按需自助式服務;云的消費者在無需與服務提供者進行人為交互的情況下能夠單 方面自動地按需部署諸如服務器時間和網(wǎng)絡存儲等的計算能力。
[00巧]廣泛的網(wǎng)絡接入;計算能力可W通過標準機制在網(wǎng)絡上獲取,該種標準機制促進 了通過不同種類的瘦客戶機平臺或厚客戶機平臺(例如移動電話、膝上型電腦、個人數(shù)字助 理PDA)對云的使用。
[0026] 資源池:提供者的計算資源被歸入資源池并通過多租戶(multi-tenant)模式服 務于多重消費者,其中按需將不同的實體資源和虛擬資源動態(tài)地分配和再分配。一般情況 下,消費者不能控制或甚至并不知曉所提供的資源的確切位置,但可W在較高抽象程度上 指定位置(例如國家、州或數(shù)據(jù)中也),因此具有位置無關性。
[0027] 迅速彈性:能夠迅速、有彈性地(有時是自動地)部署計算能力,W實現(xiàn)快速擴展, 并且能迅速釋放來快速縮小。在消費者看來,用于部署的可用計算能力往往顯得是無限的, 并能在任意時候都能獲取任意數(shù)量的計算能力。
[0028] 可測量的服務:云系統(tǒng)通過利用適于服務類型(例如存儲、處理、帶寬和活躍用戶 帳號)的某種抽象程度的計量能力,自動地控制和優(yōu)化資源效用??蒞監(jiān)測、控制和報告資 源使用情況,為服務提供者和消費者雙方提供透明度。
[002引服務模型如下:
[0030] 軟件即服務(Saa巧:向消費者提供的能力是使用提供者在云基礎架構上運行的 應用。可W通過諸如網(wǎng)絡瀏覽器的瘦客戶機接口(例如基于網(wǎng)絡的電子郵件)從各種客戶機 設備訪問應用。除了有限的特定于用戶的應用配置設置外,消費者既不管理也不控制包括 網(wǎng)絡、服務器、操作系統(tǒng)、存儲、乃至單個應用能力等的底層云基礎架構。
[0031] 平臺即服務(Paa巧:向消費者提供的能力是在云基礎架構上部署消費者創(chuàng)建或 獲得的應用,該些應用利用提供者支持的程序設計語言和工具創(chuàng)建。消費者既不管理也不 控制包括網(wǎng)絡、服務器、操作系統(tǒng)或存儲的