。本領(lǐng)域技術(shù)人員應(yīng)該 明白,當(dāng)在利用多個(gè)數(shù)據(jù)庫的任何應(yīng)用或者其它云應(yīng)用中進(jìn)行跨數(shù)據(jù)庫查詢的情況下,本 發(fā)明同樣適用。另外,術(shù)語"目標(biāo)數(shù)據(jù)庫"是指實(shí)際存儲(chǔ)有租戶的數(shù)據(jù)的數(shù)據(jù)庫。術(shù)語"元 數(shù)據(jù)庫"是指不同于目標(biāo)數(shù)據(jù)庫的一個(gè)數(shù)據(jù)庫。
[005引圖6是示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的SaaS系統(tǒng)的示意圖。在圖6中,根據(jù)本 發(fā)明的實(shí)施例的用于數(shù)據(jù)庫中的跨租戶數(shù)據(jù)訪問的系統(tǒng)600位于SaaS應(yīng)用與目標(biāo)數(shù)據(jù)庫 之間,替代了現(xiàn)有技術(shù)的數(shù)據(jù)庫驅(qū)動(dòng)模塊(見圖4 )。該里,為了便于說明,假定圖6中的目標(biāo) 數(shù)據(jù)庫A至C中存儲(chǔ)的租戶的數(shù)據(jù)與圖4中所示的相同。盡管示出了H個(gè)目標(biāo)數(shù)據(jù)庫,但 該僅僅是一個(gè)示例。在其它實(shí)施例中,目標(biāo)數(shù)據(jù)庫的數(shù)目不限于H個(gè)。數(shù)據(jù)庫A、B和C中 的兩個(gè)或全部可W位于同一硬件設(shè)備中;或者數(shù)據(jù)庫A、B和C也可W分別位于例如通過局 域網(wǎng)(LAN)或互聯(lián)網(wǎng)相連的不同硬件設(shè)備中。在本發(fā)明中,為了便于說明,假定數(shù)據(jù)庫A、B 和C分別位于不同的硬件設(shè)備中。
[0056]在一個(gè)實(shí)施例中,每個(gè)目標(biāo)數(shù)據(jù)庫包含一個(gè)或多個(gè)租戶的數(shù)據(jù),如圖6所示。在另 一個(gè)實(shí)施例中,一個(gè)租戶的數(shù)據(jù)能夠分布在一個(gè)或多個(gè)目標(biāo)數(shù)據(jù)庫中。例如,當(dāng)一個(gè)目標(biāo)數(shù) 據(jù)庫容納不下租戶X的數(shù)據(jù)時(shí),租戶X的數(shù)據(jù)還可W被存儲(chǔ)到另一個(gè)目標(biāo)數(shù)據(jù)庫中。
[0057]該里,為了便于說明,假定租戶T1至T6是租用同一SaaS應(yīng)用的租戶并且它們的 數(shù)據(jù)包含相同結(jié)構(gòu)的表。當(dāng)然,租戶T1至T6也可W是租用同一SaaS服務(wù)提供商的不同 SaaS應(yīng)用的租戶。例如,租戶T1至T5租用應(yīng)用X,租戶T6租用應(yīng)用Y。本發(fā)明同樣可W適 應(yīng)于該種情況。
[0058]圖6中的系統(tǒng)600包括數(shù)據(jù)庫驅(qū)動(dòng)模塊601、管理模塊602W及元數(shù)據(jù)庫603。
[0059] 管理模塊602被配置為根據(jù)關(guān)于租戶的元數(shù)據(jù),對(duì)于多個(gè)租戶中的至少第一租 戶,基于第一租戶擁有的第一數(shù)據(jù)W及所述多個(gè)租戶中的至少一個(gè)其它租戶擁有的、授權(quán) 第一租戶訪問的第二數(shù)據(jù),在元數(shù)據(jù)庫603中創(chuàng)建邏輯視圖。在一個(gè)實(shí)施例中,所述元數(shù)據(jù) 庫不同于存儲(chǔ)第一數(shù)據(jù)W及第二數(shù)據(jù)的目標(biāo)數(shù)據(jù)庫。
[0060]數(shù)據(jù)庫驅(qū)動(dòng)模塊601不同于圖4中的數(shù)據(jù)庫驅(qū)動(dòng)模塊,其被配置為響應(yīng)于來自第 一租戶的應(yīng)用的跨租戶數(shù)據(jù)訪問請(qǐng)求,替代于目標(biāo)數(shù)據(jù)庫,訪問所述元數(shù)據(jù)庫中的所述視 圖。
[0061] 當(dāng)SaaS應(yīng)用的新租戶加入時(shí),即,當(dāng)一個(gè)用戶注冊(cè)成為SaaS應(yīng)用的租戶時(shí),例如 在離線狀態(tài)下,在元數(shù)據(jù)庫中為該租戶創(chuàng)建一個(gè)邏輯視圖。在一個(gè)實(shí)施例中,在新租戶注冊(cè) 時(shí),管理模塊602可W向新租戶提供一個(gè)用戶界面,該用戶界面獨(dú)立于SaaS應(yīng)用的用戶界 面,用于向新租戶采集該租戶的元數(shù)據(jù)W及W后對(duì)該元數(shù)據(jù)的更新。由于該種元數(shù)據(jù)的采 集和更新獨(dú)立于SaaS應(yīng)用,因此對(duì)于原SaaS應(yīng)用是透明的,不必更改原SaaS應(yīng)用的邏輯。
[0062] 在一個(gè)實(shí)施例中,關(guān)于租戶的元數(shù)據(jù)至少包括多個(gè)租戶之間的授權(quán)關(guān)系。在一個(gè) 實(shí)施例中,所述元數(shù)據(jù)還可W包括授權(quán)的對(duì)所述邏輯視圖中的第二數(shù)據(jù)進(jìn)行操作的操作類 型,并且所述操作類型為讀和寫中的一個(gè)。操作類型"讀"代表只可W讀取(即查詢),操作 類型"寫"代表除了讀取W外還可W添加、修改或刪除數(shù)據(jù)。對(duì)于圖6的例子,假定在元數(shù) 據(jù)庫中存儲(chǔ)有下面的授權(quán)表形式的所述元數(shù)據(jù),該些元數(shù)據(jù)例如是通過租戶在由管理模塊 602提供的用戶界面上的輸入而得到的。
[0063] 授權(quán)表authorization_t
[0064]
【主權(quán)項(xiàng)】
1. 一種用于跨租戶數(shù)據(jù)訪問的方法,包括: 根據(jù)關(guān)于租戶的元數(shù)據(jù),對(duì)于多個(gè)租戶中的至少第一租戶,基于第一租戶擁有的第一 數(shù)據(jù)以及所述多個(gè)租戶中的至少一個(gè)其它租戶擁有的、授權(quán)第一租戶訪問的第二數(shù)據(jù),在 元數(shù)據(jù)庫中創(chuàng)建邏輯視圖;以及 響應(yīng)于來自第一租戶的應(yīng)用的跨租戶數(shù)據(jù)訪問請(qǐng)求,訪問所述元數(shù)據(jù)庫中的所述邏輯 視圖。
2. 根據(jù)權(quán)利要求1所述的方法,其中,所述元數(shù)據(jù)至少包括所述多個(gè)租戶之間的授權(quán) 關(guān)系。
3. 根據(jù)權(quán)利要求2所述的方法,其中,所述元數(shù)據(jù)還包括授權(quán)的對(duì)所述邏輯視圖中的 第二數(shù)據(jù)進(jìn)行操作的操作類型,并且所述操作類型為讀和寫中的一個(gè)。
4. 根據(jù)權(quán)利要求2所述的方法,還包括: 響應(yīng)于所述授權(quán)關(guān)系的改變,更新所述邏輯視圖。
5. 根據(jù)權(quán)利要求1所述的方法,其中,每個(gè)目標(biāo)數(shù)據(jù)庫包含一個(gè)或多個(gè)租戶的數(shù)據(jù),并 且一個(gè)租戶的數(shù)據(jù)能夠分布在一個(gè)或多個(gè)目標(biāo)數(shù)據(jù)庫中。
6. 根據(jù)權(quán)利要求1所述的方法,還包括: 對(duì)來自第一租戶的應(yīng)用的跨租戶數(shù)據(jù)訪問請(qǐng)求進(jìn)行判斷; 如果該數(shù)據(jù)訪問請(qǐng)求涉及的數(shù)據(jù)都位于同一個(gè)目標(biāo)數(shù)據(jù)庫中,則直接訪問該目標(biāo)數(shù)據(jù) 庫。
7. 根據(jù)權(quán)利要求1所述的方法,其中,所述元數(shù)據(jù)庫中的所述邏輯視圖是對(duì)在各個(gè)所 述目標(biāo)數(shù)據(jù)庫中通過按預(yù)定條件對(duì)租戶的表進(jìn)行過濾而創(chuàng)建的子視圖進(jìn)行合并的結(jié)果。
8. 根據(jù)權(quán)利要求7所述的方法,其中,通過在元數(shù)據(jù)庫中建立至各個(gè)所述目標(biāo)數(shù)據(jù)庫 的鏈接并基于各個(gè)所述目標(biāo)數(shù)據(jù)庫中的所述子視圖的昵稱,將所述子視圖進(jìn)行合并,從而 得到所述元數(shù)據(jù)庫中的所述邏輯視圖。
9. 根據(jù)權(quán)利要求7所述的方法,其中,通過在各個(gè)目標(biāo)數(shù)據(jù)庫中建立至元數(shù)據(jù)庫的鏈 接并基于關(guān)于租戶的元數(shù)據(jù),進(jìn)行所述過濾。
10. 根據(jù)權(quán)利要求7或8所述的方法,其中,在僅包含單個(gè)租戶的數(shù)據(jù)的目標(biāo)數(shù)據(jù)庫中, 不進(jìn)行對(duì)該租戶的表的所述過濾,而是在該租戶授權(quán)訪問的情況下提供該表,在元數(shù)據(jù)庫 中執(zhí)行該表與其它目標(biāo)數(shù)據(jù)庫的子視圖的所述合并。
11. 根據(jù)權(quán)利要求1所述的方法,其中,所述元數(shù)據(jù)庫不同于存儲(chǔ)第一數(shù)據(jù)以及第二數(shù) 據(jù)的目標(biāo)數(shù)據(jù)庫。
12. -種用于跨租戶數(shù)據(jù)訪問的系統(tǒng),包括: 元數(shù)據(jù)庫; 管理模塊,被配置為根據(jù)關(guān)于租戶的元數(shù)據(jù),對(duì)于多個(gè)租戶中的至少第一租戶,基于第 一租戶擁有的第一數(shù)據(jù)以及所述多個(gè)租戶中的至少一個(gè)其它租戶擁有的、授權(quán)第一租戶訪 問的第二數(shù)據(jù),在所述元數(shù)據(jù)庫中創(chuàng)建邏輯視圖;以及 數(shù)據(jù)庫驅(qū)動(dòng)模塊,被配置為響應(yīng)于來自第一租戶的應(yīng)用的跨租戶數(shù)據(jù)訪問請(qǐng)求,訪問 所述元數(shù)據(jù)庫中的所述邏輯視圖。
13. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述元數(shù)據(jù)至少包括所述多個(gè)租戶之間的授 權(quán)關(guān)系。
14. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述元數(shù)據(jù)還包括授權(quán)的對(duì)所述邏輯視圖中 的第二數(shù)據(jù)進(jìn)行操作的操作類型,并且所述操作類型為讀和寫中的一個(gè)。
15. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述管理模塊還被配置為: 響應(yīng)于所述授權(quán)關(guān)系的改變,更新所述邏輯視圖。
16. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中,每個(gè)目標(biāo)數(shù)據(jù)庫包含一個(gè)或多個(gè)租戶的數(shù)據(jù), 并且一個(gè)租戶的數(shù)據(jù)能夠分布在一個(gè)或多個(gè)目標(biāo)數(shù)據(jù)庫中。
17. 根據(jù)權(quán)利要求12所述的系統(tǒng),所述數(shù)據(jù)庫驅(qū)動(dòng)模塊還被配置為: 對(duì)來自第一租戶的應(yīng)用的跨租戶訪問數(shù)據(jù)請(qǐng)求進(jìn)行判斷; 如果該數(shù)據(jù)訪問請(qǐng)求涉及的數(shù)據(jù)都位于同一個(gè)目標(biāo)數(shù)據(jù)庫中,則直接訪問該目標(biāo)數(shù)據(jù) 庫。
18. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述元數(shù)據(jù)庫中的所述邏輯視圖是對(duì)在各個(gè) 所述目標(biāo)數(shù)據(jù)庫中通過按預(yù)定條件對(duì)租戶的表進(jìn)行過濾而創(chuàng)建的子視圖進(jìn)行合并的結(jié)果。
19. 根據(jù)權(quán)利要求18所述的系統(tǒng),其中,所述管理模塊通過在元數(shù)據(jù)庫中建立至各個(gè) 所述目標(biāo)數(shù)據(jù)庫的鏈接并基于各個(gè)所述目標(biāo)數(shù)據(jù)庫中的所述子視圖的昵稱,將所述子視圖 進(jìn)行合并,從而得到所述元數(shù)據(jù)庫中的所述邏輯視圖。
20. 根據(jù)權(quán)利要求18所述的系統(tǒng),其中,所述管理模塊通過在各個(gè)目標(biāo)數(shù)據(jù)庫中建立 至元數(shù)據(jù)庫的鏈接并基于關(guān)于租戶的元數(shù)據(jù),進(jìn)行所述過濾。
21. 根據(jù)權(quán)利要求18或19所述的系統(tǒng),其中,在僅包含單個(gè)租戶的數(shù)據(jù)的目標(biāo)數(shù)據(jù)庫 中,管理模塊不進(jìn)行對(duì)該租戶的表的所述過濾,而是在該租戶授權(quán)訪問的情況下提供該表, 在元數(shù)據(jù)庫中執(zhí)行該表與其它目標(biāo)數(shù)據(jù)庫的子視圖的所述合并。
22. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述元數(shù)據(jù)庫不同于存儲(chǔ)第一數(shù)據(jù)以及第二 數(shù)據(jù)的目標(biāo)數(shù)據(jù)庫。
【專利摘要】本發(fā)明涉及用于跨租戶數(shù)據(jù)訪問的系統(tǒng)和方法。提供了一種用于跨租戶數(shù)據(jù)訪問的系統(tǒng),包括:元數(shù)據(jù)庫;管理模塊,被配置為根據(jù)關(guān)于租戶的元數(shù)據(jù),對(duì)于多個(gè)租戶中的至少第一租戶,基于第一租戶擁有的第一數(shù)據(jù)以及所述多個(gè)租戶中的至少一個(gè)其它租戶擁有的、授權(quán)第一租戶訪問的第二數(shù)據(jù),在所述元數(shù)據(jù)庫中創(chuàng)建邏輯視圖;以及數(shù)據(jù)庫驅(qū)動(dòng)模塊,被配置為響應(yīng)于來自第一租戶的應(yīng)用的跨租戶數(shù)據(jù)訪問請(qǐng)求,訪問所述元數(shù)據(jù)庫中的所述邏輯視圖。
【IPC分類】G06F17-30
【公開號(hào)】CN104866513
【申請(qǐng)?zhí)枴緾N201410067372
【發(fā)明人】周英華, 王啟榮, 支雷, 王寧, 李蕾, 王小鋒
【申請(qǐng)人】國際商業(yè)機(jī)器公司
【公開日】2015年8月26日
【申請(qǐng)日】2014年2月26日
【公告號(hào)】US20150242520