專利名稱:多租戶系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體涉及計(jì)算系統(tǒng),具體而言涉及多租戶系統(tǒng)。
背景技術(shù):
一般而言,由信息技術(shù)(IT)服務(wù)提供商提供的多租戶系統(tǒng)托管應(yīng)用,所述應(yīng)用也稱為多租戶應(yīng)用。在這樣的系統(tǒng)中,所述應(yīng)用的單個(gè)實(shí)例在服務(wù)器上運(yùn)行,其可由多個(gè)客戶端(也稱為租戶)訪問,這是因?yàn)樗隹蛻舳擞嗛喠怂鯥T服務(wù)提供商提供的服務(wù)。在所述多租戶系統(tǒng)中,所述租戶共享用于處理和存儲(chǔ)數(shù)據(jù)的同一應(yīng)用、同一平臺(tái)和架構(gòu)元件。因而,所述多租戶系統(tǒng)給所述租戶提供基于網(wǎng)絡(luò)的集中式數(shù)據(jù)訪問并且?guī)淼馁M(fèi)用比使用單個(gè)供應(yīng)軟件應(yīng)用時(shí)要少。諸如信息技術(shù)(IT)服務(wù)提供商之類的越來越多的組織提供多租戶系統(tǒng)以最小化成本并最大化效率。而且,這些組織可能不得不滿足不同租戶的要求并可能要求所述應(yīng)用基于所述租戶的偏好運(yùn)行。為了滿足租戶的所述偏好,所述多租戶系統(tǒng)可以配置成以使所提供的應(yīng)用及其行為基于租戶對應(yīng)用的訪問而變化。所述應(yīng)用行為方面包括所述應(yīng)用的用戶接口,所述應(yīng)用的處理步驟,業(yè)務(wù)規(guī)則,工作流程,訪問控制,應(yīng)用數(shù)據(jù)結(jié)構(gòu),報(bào)告,與其他應(yīng)用的結(jié)合,以及其他的應(yīng)用屬性。例如,同一應(yīng)用可以為一租戶產(chǎn)生一種版面的報(bào)告而為另一租戶產(chǎn)生另外版面的報(bào)告。然而,隨著租戶數(shù)量的增長,所述多租戶系統(tǒng)托管的多租戶應(yīng)用所要求的變化或配置也相應(yīng)的增長。而且,支持更多的變化需要維護(hù)額外的租戶特有元數(shù)據(jù),這可能對應(yīng)用性能、維護(hù)元數(shù)據(jù)的管理努力以及所消耗的存儲(chǔ)有不利影響。因此,當(dāng)為數(shù)目增長了的有多樣化應(yīng)用行為要求的租戶實(shí)施時(shí),傳統(tǒng)的多租戶系統(tǒng)支持的可配置性有限。
發(fā)明內(nèi)容
本發(fā)明提供的發(fā)明內(nèi)容是為介紹與多租戶系統(tǒng)和應(yīng)用有關(guān)的概念,這在具體實(shí)施方式
中將進(jìn)一步的說明。本發(fā)明內(nèi)容并不意在識別權(quán)利要求所要求的本發(fā)明的關(guān)鍵特征也不意在用來確定或限定權(quán)利要求所要求的本發(fā)明的范圍。本文描述了用于多租戶的方法和系統(tǒng)。在一種實(shí)施方式中,確定多租戶應(yīng)用的參考屬性是否被遇到。所述參考屬性是一種應(yīng)用屬性,所述參考屬性對于不同租戶可以在多租戶應(yīng)用的行為上有變化?;谒龃_定,查明是否為所述租戶定義了配置模板。并且,所述配置模板可以與單個(gè)租戶或傾向于類似應(yīng)用行為的一組租戶相關(guān)聯(lián)。在一種實(shí)施方式中,如果查明沒有為所述租戶定義配置模板,基于所述參考屬性來識別所述租戶的多租戶應(yīng)用的應(yīng)用行為。然而,如果確定為所述租戶定義了配置模板,至少部分基于所述配置模板和所述參考屬性來識別所述應(yīng)用行為。所述識別出的應(yīng)用行為可以作為缺省行為或源自所述缺省行為的變化。
具體實(shí)施方式
是參考附圖進(jìn)行描述。在附圖中,參考標(biāo)號的最左邊數(shù)字識別所述附圖,其中所述參考標(biāo)號首先出現(xiàn)。同一標(biāo)號貫穿所述附圖使用以引用同樣的特征和元件。圖1圖示了根據(jù)本發(fā)明實(shí)施方式的實(shí)施多租戶系統(tǒng)的網(wǎng)絡(luò)環(huán)境。圖加圖示了根據(jù)本發(fā)明實(shí)施方式的所述多租戶系統(tǒng)的元件。圖2b圖示了根據(jù)本發(fā)明實(shí)施方式的與所述多租戶系統(tǒng)托管的多租戶應(yīng)用有關(guān)的元數(shù)據(jù)。圖3圖示了根據(jù)本發(fā)明實(shí)施方式的基于租戶偏好確定多租戶應(yīng)用的應(yīng)用行為的示例性方法。
具體實(shí)施例方式本文所述的本發(fā)明涉及多租戶系統(tǒng),該系統(tǒng)方便了多租戶應(yīng)用的配置并提供了基于租戶訪問所述多租戶應(yīng)用的偏向的應(yīng)用行為。本文所述的系統(tǒng)和方法可以在各種設(shè)備上實(shí)施,例如服務(wù)器,臺(tái)式電腦,筆記本或便攜式電腦,主機(jī)計(jì)算機(jī),移動(dòng)計(jì)算設(shè)備等等。在現(xiàn)今競爭激烈的商業(yè)環(huán)境中,促使諸如信息技術(shù)(IT)服務(wù)提供商之類的組織在為其客戶提供的IT架構(gòu)中實(shí)現(xiàn)高質(zhì)量和高成本效率。為了實(shí)現(xiàn)高質(zhì)量和高成本效率,許多這樣的組織實(shí)施多租戶系統(tǒng)。在多租戶系統(tǒng)中,應(yīng)用的單個(gè)實(shí)例提供給多個(gè)客戶,因而與每個(gè)客戶具有專用安裝的系統(tǒng)相反,所述多租戶系統(tǒng)要求的架構(gòu)較小。因而,所述多租戶系統(tǒng)相當(dāng)?shù)亟档土说某杀?、管理開支和復(fù)雜度。一般而言,多租戶系統(tǒng)托管的應(yīng)用(也稱為多租戶應(yīng)用)對于多客戶環(huán)境可能不可配置。為了滿足不同客戶(即租戶)的偏向,多租戶系統(tǒng)可方便提供多租戶應(yīng)用和配置所述應(yīng)用行為。所述多租戶系統(tǒng)可包括配置各種不同類型的應(yīng)用行為。通常,需要為多租戶應(yīng)用的每個(gè)租戶保持管理識別出的應(yīng)用屬性的應(yīng)用行為的元數(shù)據(jù)。隨著租戶數(shù)量的增加,所要求的變化也相應(yīng)的增加。因而,隨著客戶數(shù)量的增加,這樣的多租戶系統(tǒng)可能實(shí)施有限。在這樣傳統(tǒng)的多租戶系統(tǒng)中,為了配置多租戶應(yīng)用,要?jiǎng)?chuàng)建與每個(gè)租戶獨(dú)特偏向的應(yīng)用行為有關(guān)的元數(shù)據(jù)的多個(gè)實(shí)例。這可能不僅是存儲(chǔ)不高效的方案而且還給管理大量租戶造成困難。例如,考慮多租戶應(yīng)用由1000租戶訪問,其中每個(gè)租戶的所述元數(shù)據(jù)可具有每個(gè)1KB的10個(gè)詞目。在這樣的多租戶環(huán)境中,要存儲(chǔ)與租戶訪問多租戶系統(tǒng)有關(guān)的所述元數(shù)據(jù)可能要消耗10000KB的存儲(chǔ)空間。因而,隨著所述租戶數(shù)量的增長,應(yīng)用行為元數(shù)據(jù)線性增長。而且,應(yīng)用行為元數(shù)據(jù)的變化,這對于多個(gè)租戶而言很常見,需要制作所有的復(fù)制拷貝而不是在從這樣的多個(gè)租戶受益的單個(gè)位置開始制作。這樣的租戶系統(tǒng)由于管理開支、可擴(kuò)展性和存儲(chǔ)不高效而應(yīng)用有限。而且,在某些其他的傳統(tǒng)多租戶系統(tǒng)中,當(dāng)添加現(xiàn)有應(yīng)用屬性的新的變化時(shí),所述現(xiàn)有多租戶應(yīng)用要重新編譯和重新部署,這反過來可能導(dǎo)致較長的回車時(shí)間和較長的服務(wù)故障時(shí)間。本發(fā)明描述了用于配置多租戶應(yīng)用和用于基于租戶的偏向提供所述多租戶應(yīng)用的各種不同應(yīng)用行為的方法和系統(tǒng)。多租戶應(yīng)用由多個(gè)租戶訪問。在一種實(shí)施方式中,所述多租戶應(yīng)用設(shè)計(jì)和研發(fā)為包括多個(gè)與之相關(guān)的應(yīng)用屬性。所述多租戶應(yīng)用的應(yīng)用行為可以通過其應(yīng)用屬性定義。所述應(yīng)用屬性對于不同租戶可能不同。所述應(yīng)用屬性包括,但不限于,多租戶應(yīng)用的用戶接口,多租戶應(yīng)用的處理步驟,多租戶應(yīng)用的業(yè)務(wù)規(guī)則,多租戶應(yīng)用的工作流程,多租戶應(yīng)用的訪問控制,多租戶應(yīng)用的應(yīng)用數(shù)據(jù)結(jié)構(gòu),多租戶應(yīng)用的報(bào)告, 以及多租戶應(yīng)用與其他應(yīng)用的結(jié)合。例如,發(fā)票應(yīng)用的處理步驟對于不同垂直行業(yè)的租戶可能不同,而所述發(fā)票應(yīng)用的基本功能保持不變。因而,處理步驟可以認(rèn)為是所述多租戶應(yīng)用的一種應(yīng)用屬性。在另外的例子中,一個(gè)或一個(gè)以上租戶可能更喜歡在所述發(fā)票應(yīng)用中有除所述缺省域之外的額外的域。在所述例子中,擴(kuò)展所述應(yīng)用數(shù)據(jù)結(jié)構(gòu)以適應(yīng)額外的域的可用性可以認(rèn)為是一種應(yīng)用屬性。而且,對于每個(gè)多租戶應(yīng)用,可以識別出其缺省行為。所述缺省行為表示租戶可能選擇的最典型的應(yīng)用行為。所述缺省行為包括所述多租戶應(yīng)用的所有應(yīng)用屬性。在一種實(shí)施方式中,所述多租戶應(yīng)用具有與之相關(guān)聯(lián)的基礎(chǔ)模板。所述基礎(chǔ)模板管理所述多租戶應(yīng)用的缺省行為并保存與所述多租戶應(yīng)用的缺省行為有關(guān)的元數(shù)據(jù)。這樣形成的所述基礎(chǔ)模板具有所有所述應(yīng)用屬性的缺省值。在一種實(shí)施方式中,同一應(yīng)用屬性的所有變化由共用代碼(所述參考屬性)引用。 所述應(yīng)用源代碼通過此參考屬性引用所述屬性的所有變化。然而,為適應(yīng)不同租戶期望的變化,所述參考屬性映射至一個(gè)或一個(gè)以上微分屬性或者,可以說是,一個(gè)或一個(gè)以上應(yīng)用行為。參考屬性到多種微分屬性的所述映射保持在所述多租戶應(yīng)用之外。每個(gè)微分屬性表示所述多租戶應(yīng)用相對于所述參考屬性的行為。而且,所述微分屬性可以表示所述缺省行為相對于所述參考屬性的變化。例如,如果應(yīng)用屬性有10個(gè)變體型;與所述10個(gè)變體型分別對應(yīng)的10個(gè)不同微分屬性可以與所述參考屬性相關(guān)聯(lián)。相應(yīng)地,所述微分屬性還可以表示要遵循的所述缺省行為。因而,由于提供了所述參考屬性和所述微分屬性,在許多情況下 (例如,添加現(xiàn)有應(yīng)用屬性的新的變化時(shí))附有所述應(yīng)用變化的現(xiàn)有多租戶應(yīng)用可以既不用重新編譯又不用重新部署。應(yīng)用屬性的這樣的新的變化可以獨(dú)立地添加至所述多租戶系統(tǒng)中使用。盡管要求在應(yīng)用行為中有變化,不是所有變化都可以對租戶而言獨(dú)一無二。在一種實(shí)施方式中,這些變化是針對租戶組的。所述租戶組可以基于因素組合形成,例如工作的國家或地區(qū),垂直行業(yè),以及業(yè)務(wù)規(guī)模。組內(nèi)的所有租戶可以體驗(yàn)同樣的應(yīng)用行為。在一種實(shí)施方式中,所述多租戶應(yīng)用可以具有與之相關(guān)聯(lián)的除基礎(chǔ)模板之外的一種或一種以上配置模板。配置模板可包含一種或一種以上微分屬性,所述微分屬性針對租戶要求變化。在一種實(shí)施方式中,當(dāng)所述多租戶應(yīng)用的缺省行為的變化對于多個(gè)租戶之中的一組租戶是共同的時(shí),配置模板還可以與所述一組租戶相關(guān)聯(lián)。所述配置模板可以反過來包含對于該組租戶共同的微分屬性。另外或可選地,配置模板可以從一個(gè)或一個(gè)其他配置模板中繼承,所述其他配置模板可以稱為母配置模板。例如,配置模板可以從另外的配置模板(即母配置模板)中繼承。 應(yīng)理解這樣的繼承等級可以有多種級別。配置模板從母配置模板中繼承與所述應(yīng)用行為變化有關(guān)的元數(shù)據(jù)。在所述例子中,所述應(yīng)用行為將由與所述母配置模板對應(yīng)的微分屬性管理。在一種實(shí)施方式中,當(dāng)多租戶應(yīng)用被一個(gè)或一個(gè)以上租戶訪問時(shí),確定源自所述多租戶應(yīng)用的缺省行為的變化是否可用。例如,可以確定參考屬性是否已在應(yīng)用代碼中遇到。如前所述,所述參考屬性表示所述缺省屬性行為以及可用的變化。而且,如果確定所述參考屬性被遇到,確定是否為所述租戶定義了配置模板。如果沒有為所述租戶定義配置模板,基于所述參考屬性和所述租戶對所述多租戶應(yīng)用的訪問識別微分屬性(即與所述租戶對應(yīng)的應(yīng)用行為)。而且,如果確定為所述租戶定義了配置模板,那么基于所述配置模板,所述參考屬性以及所述租戶對所述多租戶應(yīng)用的訪問識別與所述租戶對應(yīng)的應(yīng)用行為。所述微分屬性包括表示將要由所述多租戶應(yīng)用為所述遇到的參考屬性和所述遇到參考屬性的租戶展示的應(yīng)用行為的屬性值。在一種例子中,對于給定的參考屬性,微分屬性對于租戶而言可以是唯一特地的。 在所述例子中,可以基于所述參考屬性和所述租戶對所述多租戶應(yīng)用的訪問識別所述微分屬性。在另外的例子中,可以為所述租戶識別配置模板。而且,可以搜索所述識別出的模板來查明基于所述參考屬性的微分屬性。在另外的例子中,在識別配置模板之后,可以確定出與所述配置模板相關(guān)聯(lián)的一個(gè)或一個(gè)以上母配置模板。然而,可以搜索所述母配置模板來查明基于所述參考屬性的微分屬性。在一種實(shí)施方式中,配置模板可以僅具有一個(gè)映射至參考屬性的微分屬性。在另外的實(shí)施中,在同一配置模板內(nèi)參考屬性可映射至多個(gè)微分屬性。在所述實(shí)施中,與租戶相關(guān)聯(lián)的用戶對應(yīng)的區(qū)域設(shè)置屬性或所述租戶偏向的區(qū)域設(shè)置屬性根據(jù)相應(yīng)的元數(shù)據(jù)查明。 然后,可以搜索所述配置模板來查明基于所述查出的區(qū)域設(shè)置屬性和所述參考屬性的微分屬性。當(dāng)查明所述微分屬性時(shí),對于所述租戶,根據(jù)與所述微分屬性有關(guān)的元數(shù)據(jù)運(yùn)行所述多租戶應(yīng)用。而且,在一種實(shí)施方式中,如果沒有微分屬性映射至租戶的所述參考屬性,根據(jù)由所述基礎(chǔ)模板管理的缺省行為運(yùn)行所述多租戶應(yīng)用。換而言之,如果沒確定出微分屬性,所述參考屬性的缺省值將作為所述微分屬性。與所述多租戶應(yīng)用有關(guān)的元數(shù)據(jù)包括,例如,租戶-屬性關(guān)系,租戶-配置模板關(guān)系,屬性-配置模板關(guān)系,屬性-區(qū)域設(shè)置-配置關(guān)系,配置模板繼承以及應(yīng)用屬性定義。所述元數(shù)據(jù)可以保存在永續(xù)性存儲(chǔ)體或,在運(yùn)行時(shí)間,位于高速緩沖存儲(chǔ)器內(nèi)。由于提供了配置模板,其對于租戶組可以是共同的且可以從其他配置模板中繼承,避免了對與多個(gè)租戶所要求的變化有關(guān)的元數(shù)據(jù)進(jìn)行復(fù)制,這不僅在存儲(chǔ)空間上提高效率,而且在應(yīng)用性能、元數(shù)據(jù)管理和應(yīng)用可擴(kuò)展性上也提高了效率。因而,所述系統(tǒng)和方法可以滿足大量租戶而不會(huì)帶來額外的管理、存儲(chǔ)等花費(fèi)。盡管所述的用于提供多租戶應(yīng)用的各種應(yīng)用行為的方法和系統(tǒng)可以在任何數(shù)目的不同的計(jì)算系統(tǒng)、環(huán)境和/或配置中實(shí)施,實(shí)施方式將在下面的示例性系統(tǒng)的背景下描述。示例性系統(tǒng)
圖1示出了根據(jù)本發(fā)明(subject mater)的實(shí)施方式實(shí)施多租戶系統(tǒng)102的網(wǎng)絡(luò)環(huán)境 100。網(wǎng)絡(luò)環(huán)境100包括多租戶系統(tǒng)102、通過網(wǎng)絡(luò)106與多租戶系統(tǒng)102連接的多個(gè)租戶設(shè)備104-1、104-2、104-3……104-N。為了解釋說明的目的,將所述租戶設(shè)備104-1、104-2、 104-3……104-N共同稱為租戶設(shè)備104。應(yīng)當(dāng)理解,如果針對多租戶系統(tǒng)102的租戶是團(tuán)體,則租戶設(shè)備104也可以是所述團(tuán)體用戶的用戶設(shè)備。進(jìn)一步地,租戶設(shè)備104可替換稱為租戶104。
網(wǎng)絡(luò)106可以是無線網(wǎng)絡(luò)、有線網(wǎng)絡(luò)或者它們的結(jié)合。網(wǎng)絡(luò)106可以實(shí)現(xiàn)為不同類型的網(wǎng)絡(luò)之一,例如內(nèi)部網(wǎng)、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、因特網(wǎng)等。網(wǎng)絡(luò)106可以是專用網(wǎng)絡(luò)或共享網(wǎng)絡(luò),表示互相通信的、使用不同協(xié)議的不同類型網(wǎng)絡(luò)的聯(lián)合,所述協(xié)議例如超文本傳輸協(xié)議(HTTP)、傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)、無線應(yīng)用協(xié)議(WAP)等。多租戶網(wǎng)絡(luò)102和租戶104可以實(shí)現(xiàn)為任意的各種傳統(tǒng)計(jì)算機(jī)設(shè)備,包括服務(wù)器、 臺(tái)式PC、筆記本或者便攜式計(jì)算機(jī)、工作站、大型計(jì)算機(jī)、移動(dòng)計(jì)算設(shè)備、娛樂設(shè)備和因特網(wǎng)設(shè)備。進(jìn)一步地,可以將多租戶系統(tǒng)102與一個(gè)或一個(gè)以上應(yīng)用服務(wù)器(圖中未示出)連接用于托管多租戶應(yīng)用,并且用于向租戶104提供和從租戶104接收與所述多租戶應(yīng)用有關(guān)的數(shù)據(jù)。可以局部地或跨一個(gè)或一個(gè)以上地區(qū)布置的應(yīng)用服務(wù)器可以物理上或邏輯上連接至多租戶系統(tǒng)102。然而,應(yīng)當(dāng)理解,多租戶系統(tǒng)102還可以實(shí)現(xiàn)為應(yīng)用服務(wù)器。在一種實(shí)施方式中,多租戶系統(tǒng)102與元數(shù)據(jù)儲(chǔ)存庫108相關(guān)聯(lián),元數(shù)據(jù)儲(chǔ)存庫 108存儲(chǔ)與所述多租戶應(yīng)用和租戶104有關(guān)的元數(shù)據(jù)。所述元數(shù)據(jù)儲(chǔ)存庫可以包括與租戶、 基礎(chǔ)模板、一個(gè)或一個(gè)以上配置模板、配置模板的繼承、參考屬性、與多租戶應(yīng)用相關(guān)聯(lián)的微分屬性有關(guān)的元數(shù)據(jù)。盡管圖示的元數(shù)據(jù)儲(chǔ)存庫108在多租戶系統(tǒng)102的外部,但應(yīng)當(dāng)理解,元數(shù)據(jù)儲(chǔ)存庫108也可以在多租戶系統(tǒng)102的內(nèi)部。例如,元數(shù)據(jù)儲(chǔ)存庫108包括表示訪問多租戶應(yīng)用的租戶104的參數(shù)選擇的元數(shù)據(jù)。進(jìn)一步地,所述元數(shù)據(jù)可以存儲(chǔ)在可擴(kuò)展標(biāo)記語言(XML)文件中,或者存儲(chǔ)在諸如表格之類的各種數(shù)據(jù)結(jié)構(gòu)的形式的數(shù)據(jù)庫中。 例如,元數(shù)據(jù)儲(chǔ)存庫108可以實(shí)現(xiàn)為單獨(dú)數(shù)據(jù)庫、分布式數(shù)據(jù)庫或分布式數(shù)據(jù)庫的集合。租戶104可訪問一個(gè)或一個(gè)以上的多租戶應(yīng)用。所述多租戶應(yīng)用設(shè)計(jì)并開發(fā)成包括與其相關(guān)聯(lián)的多個(gè)應(yīng)用屬性。所述應(yīng)用屬性控制所述多租戶應(yīng)用的行為。例如,所述應(yīng)用屬性包括多租戶應(yīng)用的用戶界面、處理步驟、業(yè)務(wù)規(guī)則、工作流程、訪問控制、數(shù)據(jù)結(jié)構(gòu)、 報(bào)告和與其他應(yīng)用的結(jié)合。除其他方面,多租戶系統(tǒng)102包括屬性識別模塊110。屬性識別模塊110還可以在外部存儲(chǔ)介質(zhì)中提供,所述外部存儲(chǔ)介質(zhì)可以與多租戶系統(tǒng)102連接。在一種實(shí)施方式中, 屬性識別模塊110確定在應(yīng)用代碼中是否遇到多租戶應(yīng)用的參考屬性。所述參考屬性是多租戶應(yīng)用的應(yīng)用屬性,對不同的租戶所述參考屬性可以根據(jù)所述多租戶應(yīng)用的缺省行為而變化。當(dāng)多租戶系統(tǒng)102確定在租戶104的應(yīng)用代碼中沒有遇到所述參考屬性時(shí),則多租戶應(yīng)用遵循缺省行為,該缺省行為可以在與多租戶應(yīng)用相關(guān)聯(lián)的基礎(chǔ)模板中定義。所述基礎(chǔ)模板控制多租戶應(yīng)用的缺省行為,并且保存與多租戶應(yīng)用的缺省行為有關(guān)的元數(shù)據(jù)。 所述缺省行為表示租戶104可能選擇的最典型的應(yīng)用行為。然而,如果確定在應(yīng)用代碼中遇到參考屬性,則屬性識別模塊110被配置為識別所遇到的參考屬性。在一種實(shí)施方式中, 多租戶應(yīng)用可包括一種或一種以上的參考屬性,每一個(gè)參考屬性通過參考屬性身份證(ID) 唯一識別。每一個(gè)參考屬性可以與多個(gè)微分屬性相關(guān)聯(lián)。進(jìn)一步地,每一個(gè)微分屬性表示所述多租戶應(yīng)用相對于所述參考屬性的行為。所述微分屬性可包括表示相對于所述參考屬性變化的缺省行為的屬性值,或者包括表示相對于所述參考屬性沒有變化的多租戶應(yīng)用的缺省行為的缺省屬性值。一旦識別出所述參考屬性,則屬性識別模塊110查明是否為租戶104 定義配置模板。根據(jù)所述查明的結(jié)果,識別與遇到所述參考屬性的租戶104對應(yīng)的應(yīng)用行為。應(yīng)當(dāng)理解,所述應(yīng)用行為可以通過微分屬性的方式識別。此外,每一個(gè)租戶104可以通過相應(yīng)的租戶ID的方式識別。在一種實(shí)施方式中,多租戶應(yīng)用可具有與其相關(guān)聯(lián)的一個(gè)或一個(gè)以上配置模板。 進(jìn)一步地,所述配置模板可以包括一個(gè)或一個(gè)以上微分屬性,該微分屬性指定由一個(gè)或一個(gè)以上租戶104請求的應(yīng)用行為。在一種實(shí)施例中,配置模板對一組租戶可以是共有的。在另一種實(shí)施例中,配置模塊可以僅針對單獨(dú)的租戶來定義。進(jìn)一步地,對于給定的參考屬性和租戶104,屬性識別模塊110可以根據(jù)租戶的配置模板確定相應(yīng)的微分屬性。此外,配置模板可以從一個(gè)或一個(gè)以上其他的配置模板繼承。被配置模板繼承的配置模板可以稱為母配置模板。如果配置模板從一個(gè)或一個(gè)以上母配置模板繼承,則對于給定的參考屬性和租戶(例如租戶104),屬性識別模塊110可以根據(jù)所述母配置模板確定相應(yīng)的微分屬性。所述應(yīng)用屬性、參考屬性、微分屬性、基礎(chǔ)模板和配置模板可以人工確定,或者可以通過多租戶系統(tǒng)102來確定,正如參考圖加所詳細(xì)描述的那樣。如前所述,識別出的微分屬性可以具有微分值或缺省屬性值。屬性識別模塊110可以將所述識別出的微分屬性提供給多租戶應(yīng)用以使所述應(yīng)用行為是基于與所述微分屬性相關(guān)聯(lián)的屬性值。根據(jù)本發(fā)明的實(shí)施方式,圖加示出多租戶系統(tǒng)102的示例性元件,圖2b示出與多租戶系統(tǒng)102托管的多租戶應(yīng)用有關(guān)的元數(shù)據(jù)。多租戶系統(tǒng)102包括接口 202、一個(gè)或一個(gè)以上處理器204和與處理器204連接的存儲(chǔ)器,例如高速緩沖存儲(chǔ)器206和存儲(chǔ)器208。接口 202可以包括各種軟件接口和硬件接口,例如用于外圍設(shè)備的接口,例如鍵盤、鼠標(biāo)、外部存儲(chǔ)器和打印機(jī)。進(jìn)一步地,接口 202可以使多租戶系統(tǒng)102能夠與諸如web 服務(wù)器和外部數(shù)據(jù)庫之類的其他計(jì)算系統(tǒng)通信。接口 202可以幫助實(shí)現(xiàn)在種類繁多的網(wǎng)絡(luò)和協(xié)議類型下的多種通信,所述網(wǎng)絡(luò)包括有線網(wǎng)絡(luò),例如局域網(wǎng)(LAN)、電報(bào)等,還包括無線網(wǎng)絡(luò),例如無線LAN (WLAN)、手機(jī)或人造衛(wèi)星。為了這個(gè)目的,接口 202可以包括用于將多個(gè)計(jì)算系統(tǒng)彼此連接或者連接至其他服務(wù)器計(jì)算機(jī)的一個(gè)或一個(gè)以上端口。在一種實(shí)施方式中,多租戶系統(tǒng)102通過接口 202與元數(shù)據(jù)儲(chǔ)存庫108和應(yīng)用服務(wù)器通信。處理器204可以是單獨(dú)的處理單元或多個(gè)處理單元,其全部可包括多個(gè)計(jì)算單元。處理器204可以實(shí)現(xiàn)為一個(gè)或一個(gè)以上微處理器、微型計(jì)算機(jī)、微型控制器、數(shù)字信號處理器、中央處理單元、狀態(tài)機(jī)、邏輯電路和/或基于操作指令來處理信號的任意設(shè)備。除其他功能之外,處理器204配置用來獲取并執(zhí)行計(jì)算機(jī)可讀的指令和存儲(chǔ)在存儲(chǔ)器208中的數(shù)據(jù)。在一種實(shí)施方式中,高速緩沖存儲(chǔ)器206也稱為緩存206,起到臨時(shí)存儲(chǔ)介質(zhì)的作用,所述臨時(shí)存儲(chǔ)介質(zhì)頻繁地并新近地存取可以存儲(chǔ)用來快速存取的數(shù)據(jù)。一旦數(shù)據(jù)存儲(chǔ)在緩存206中,則此后可以通過訪問該數(shù)據(jù)的緩存副本來使用該數(shù)據(jù),而不是從永久性存儲(chǔ)器(例如元數(shù)據(jù)儲(chǔ)存庫108)重新獲取或重新計(jì)算所述數(shù)據(jù),從而減少執(zhí)行時(shí)間。盡管如圖所示的緩存206與處理器204分開放置,但緩存206可以在相同的集成電路中與處理器 204 一起放置。存儲(chǔ)器208可以包括本領(lǐng)域公知的任意計(jì)算機(jī)可讀介質(zhì),例如易失性存儲(chǔ)器和/ 或非易失性存儲(chǔ)器,所述易失性存儲(chǔ)器例如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)和動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM),所述非易失性存儲(chǔ)器例如只讀存儲(chǔ)器(ROM)、可擦除可編程ROM、閃存、硬盤、 光盤和磁帶。盡管存儲(chǔ)器208和緩存206已經(jīng)圖示為分開的元件,但應(yīng)當(dāng)理解,存儲(chǔ)器208可以與緩存206結(jié)合。存儲(chǔ)器208包括模塊210和數(shù)據(jù)212。除其他內(nèi)容之外,模塊210包括例行程序、程序、對象、要素、數(shù)據(jù)結(jié)構(gòu)等,其執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。 除其他內(nèi)容之外,數(shù)據(jù)212作為用于存儲(chǔ)由一個(gè)或一個(gè)以上模塊210處理、接收和產(chǎn)生的數(shù)據(jù)的數(shù)據(jù)庫。模塊210還包括例如配置模塊214、屬性識別模塊110和其他模塊216。其他模塊216可以包括在多租戶系統(tǒng)102上補(bǔ)充應(yīng)用的程序,例如操作系統(tǒng)中的程序。數(shù)據(jù)212 包括作為一個(gè)或一個(gè)以上模塊210的執(zhí)行結(jié)果而產(chǎn)生的數(shù)據(jù)。由租戶104訪問的多租戶應(yīng)用可以由多租戶系統(tǒng)102托管,或者他們可以存儲(chǔ)在外部并且連接至多租戶系統(tǒng)102。進(jìn)一步地,由多租戶應(yīng)用產(chǎn)生的數(shù)據(jù)可以存儲(chǔ)在多租戶系統(tǒng)102中或者任意的外部數(shù)據(jù)庫中。在一種實(shí)施方式中,與多租戶系統(tǒng)102(在下文中稱作系統(tǒng)102)相關(guān)聯(lián)的多租戶應(yīng)用被配置成滿足租戶104首選的各種應(yīng)用行為。在一種實(shí)施例中,可以人工配置所述多租戶應(yīng)用。在另一種實(shí)施例中,可以通過配置模塊214來配置所述多租戶應(yīng)用。為了配置多租戶應(yīng)用,創(chuàng)建包括與租戶104通過訪問多租戶應(yīng)用首選的應(yīng)用行為有關(guān)的元數(shù)據(jù)的知識庫(圖中未示出)。元數(shù)據(jù)儲(chǔ)存庫108可以包括所述知識庫。所述知識庫可以包括與多租戶應(yīng)用的典型應(yīng)用行為有關(guān)的詳細(xì)說明。進(jìn)一步地,由不同的租戶首選的應(yīng)用行為可以通過調(diào)查、會(huì)見、反饋論壇、小組會(huì)議等方式來確定,并且所收集的信息可以存儲(chǔ)在所述知識庫中。應(yīng)當(dāng)理解,所述典型的應(yīng)用行為還可以根據(jù)由不同租戶104首選的應(yīng)用行為來識別。根據(jù)所述信息,配置模塊214可以識別與多租戶應(yīng)用相關(guān)聯(lián)的應(yīng)用屬性。配置模塊214還可以根據(jù)如下因素來確定所述多租戶應(yīng)用的缺省行為例如由租戶104通過訪問多租戶應(yīng)用最首選的行為,或者作為另一個(gè)實(shí)施例,對全部租戶而言的可接受的行為,或者作為又一個(gè)實(shí)施例,資源利用最有效的行為。進(jìn)一步地,根據(jù)所述缺省行為,識別缺省應(yīng)用屬性。缺省屬性值是表示要遵循多租戶應(yīng)用的缺省行為的應(yīng)用屬性的屬性值。進(jìn)一步地, 配置模塊214可以配置成識別針對不同租戶可具有不同值的應(yīng)用屬性。這種應(yīng)用屬性被識別為參考屬性。每一個(gè)參考屬性可以通過唯一的參考屬性ID來識別,該參考屬性ID可以存儲(chǔ)在元數(shù)據(jù)儲(chǔ)存庫108中。所述參考屬性由應(yīng)用的源代碼來具體化以使所述參考屬性可以在任意時(shí)間改變, 并且對所述參考屬性的任意改變不需要多租戶應(yīng)用重新編碼或重新部署。在一種實(shí)施方式中,在基礎(chǔ)模板中提供與所有應(yīng)用屬性有關(guān)的元數(shù)據(jù)用于多租戶應(yīng)用。所述基礎(chǔ)模板包括參考屬性,以致于應(yīng)用行為隨著所述參考屬性的改變而改變。所述基礎(chǔ)模板托管與缺省行為有關(guān)的元數(shù)據(jù),其對所有租戶104而言是共有的,并且相應(yīng)地,這種元數(shù)據(jù)的單一副本可以存儲(chǔ)在永久性存儲(chǔ)器中,例如元數(shù)據(jù)儲(chǔ)存庫108,或者在運(yùn)行時(shí)存儲(chǔ)在緩存206或應(yīng)用服務(wù)器的高速緩沖存儲(chǔ)器中。元數(shù)據(jù)儲(chǔ)存庫108可以包括一個(gè)或一個(gè)以上租戶-屬性關(guān)系元數(shù)據(jù)250、租戶-模板關(guān)系元數(shù)據(jù)252、屬性-模板關(guān)系元數(shù)據(jù)254、應(yīng)用屬性主元數(shù)據(jù)256、 模板繼承元數(shù)據(jù)258、屬性-現(xiàn)場-模板關(guān)系元數(shù)據(jù)260和模板-屬性主元數(shù)據(jù)沈2。在一種實(shí)施方式中,一旦識別出參考屬性,則由不同租戶104首選的應(yīng)用行為可以存儲(chǔ)為微分屬性。每一個(gè)微分屬性(即針對參考屬性的應(yīng)用行為的每一次執(zhí)行)可以具有與其相關(guān)聯(lián)的唯一的微分屬性ID。進(jìn)一步地,可以確定改變是否僅僅是租戶或一組租戶首選的。如果所述改變是租戶(例如租戶104-1)首選的,那么可以為所述租戶104-1唯一定義微分屬性,并且相應(yīng)的元數(shù)據(jù)可以存儲(chǔ)在元數(shù)據(jù)儲(chǔ)存庫108中。然而,如果對關(guān)于給定參考屬性的缺省行為的相同改變(即相同的微分屬性)是由一個(gè)以上的租戶首選,則可以創(chuàng)建托管與多租戶應(yīng)用的應(yīng)用行為有關(guān)的元數(shù)據(jù)的配置模板。在這種情況下,包含在所述配置模板中的有關(guān)這種微分屬性的元數(shù)據(jù)可以僅存儲(chǔ)一次,而不是為組內(nèi)的每一個(gè)租戶創(chuàng)建元數(shù)據(jù)的副本。在另一種實(shí)施方式中,可以創(chuàng)建配置模板以使其從一個(gè)或一個(gè)以上其他的配置模板(稱作母配置模板)繼承元數(shù)據(jù)。進(jìn)一步地,應(yīng)當(dāng)理解,同樣可以針對租戶來唯一定義從一個(gè)或一個(gè)以上母配置模板繼承的配置模板。既然配置模板從一個(gè)或一個(gè)以上母配置模板繼承,則不創(chuàng)建相同元數(shù)據(jù)的多個(gè)副本。在一種實(shí)施方式中,可以根據(jù)配置用于一個(gè)租戶的特定應(yīng)用行為來提取配置模板。在一種實(shí)施例中,這樣的租戶可以是企業(yè)創(chuàng)始人并且可以完善多租戶應(yīng)用的應(yīng)用行為。 通過新的配置模板可以使這種應(yīng)用行為對其他租戶是可用的??梢允惯@種新的配置模板對其他類似租戶可用并且因此能形成新的租戶組。類似地,通過根據(jù)多個(gè)單獨(dú)的配置模板來提取特定的微分屬性可以形成新的混合模板。在多租戶系統(tǒng)的配置階段可以完成進(jìn)一步創(chuàng)建基礎(chǔ)模板、配置模板和母配置模板。如前所述,元數(shù)據(jù)儲(chǔ)存庫108可以配置成包括基礎(chǔ)模板、配置模板、母配置模板以及與參考屬性和微分屬性有關(guān)的元數(shù)據(jù)。在運(yùn)行過程中,當(dāng)多租戶應(yīng)用被租戶104訪問時(shí),與多租戶應(yīng)用有關(guān)的元數(shù)據(jù)被帶到系統(tǒng)102的緩存206中用于快速訪問。當(dāng)多租戶應(yīng)用被訪問時(shí),屬性識別模塊110確定在租戶(例如租戶104-1)的應(yīng)用代碼中是否遇到參考屬性。如前所述,每一個(gè)租戶和參考屬性可以分別通過唯一的租戶ID和參考屬性ID來識別。因此,當(dāng)多租戶應(yīng)用由租戶104-1 訪問時(shí),屬性識別模塊110通過參考屬性ID的方式可以確定所遇到的應(yīng)用屬性是否是參考屬性。當(dāng)屬性識別模塊110確定出所遇到的應(yīng)用屬性不是參考屬性時(shí),可以將所遇到的應(yīng)用屬性的缺省值提供給多租戶應(yīng)用。相應(yīng)地,多租戶應(yīng)用為租戶104-1展示相對于所遇到的應(yīng)用屬性的缺省行為。然而,如果確定出所述參考屬性存在,則屬性識別模塊110至少基于所述參考屬性和租戶104-1來識別與租戶104-1相應(yīng)的應(yīng)用行為。例如,在用于計(jì)算稅費(fèi)的多租戶應(yīng)用中,盡管稅務(wù)應(yīng)用的基本規(guī)則可能是相同的,但是在不同管轄區(qū)居住的租戶可能具有用于計(jì)算稅費(fèi)的特定規(guī)則。在這種情況下,所述參考屬性可以是業(yè)務(wù)規(guī)則。因此,對于不同管轄區(qū)的租戶所述參考屬性可以遵循不同的稅務(wù)應(yīng)用。在一種實(shí)施方式中,屬性識別模塊110確定是否為租戶(例如租戶104-1)定義了配置模板。在一種實(shí)施例中,與租戶104-1相應(yīng)的配置模板可以是基礎(chǔ)模板。所述配置模板可以包括與一個(gè)或一個(gè)以上微分屬性有關(guān)的元數(shù)據(jù)。由所述配置模板定義的屬性值優(yōu)先于由所述基礎(chǔ)模板定義的相同的應(yīng)用屬性的屬性值。進(jìn)一步地,所述配置模板可以對首選了相似的應(yīng)用行為的一組租戶共有,或者可以僅定義用于單獨(dú)的租戶。例如,具有相同的企業(yè)管理生產(chǎn)和銷售的全部過程、地理位置或者具有相似的當(dāng)?shù)貞T例的租戶可以共享共同的配置模板。所述配置模板可以通過配置模板ID的方式唯一識別。屬性識別模塊110可以利用租戶-模板關(guān)系元數(shù)據(jù)252來識別與租戶104-1相應(yīng)的配置模板。例如,假定租戶104-1 的租戶ID為7M^,那么可以在租戶-模板關(guān)系元數(shù)據(jù)252中檢查與所述配置模板ID對應(yīng)的入口,并且可以將CT02識別為所述配置模板。進(jìn)一步地,如果確定所述關(guān)鍵字不存在于租戶-模板關(guān)系元數(shù)據(jù)252中,則確定是否為租戶104-1唯一地定義微分屬性。例如,如果特定的應(yīng)用行為是由租戶(例如租戶 104-1)首選并且不是由其他租戶首選,那么表示所述特定的應(yīng)用行為的微分屬性可以定義用于多租戶應(yīng)用。在所述實(shí)施方式中,屬性識別模塊110可以查詢與所述多租戶應(yīng)用有關(guān)的元數(shù)據(jù)來確定這種單獨(dú)特定的微分屬性,所述元數(shù)據(jù)例如在租戶-屬性關(guān)系元數(shù)據(jù)250 中的元數(shù)據(jù)。為了這個(gè)目的,屬性識別模塊110可以形成包括與租戶104-1對應(yīng)的租戶ID 和與所遇到的參考屬性對應(yīng)的參考屬性ID的關(guān)鍵字。進(jìn)一步地,如果在租戶-屬性關(guān)系元數(shù)據(jù)250中存在所述關(guān)鍵字,則相應(yīng)的微分屬性可以通過微分屬性ID的方式識別。進(jìn)一步地,所述微分屬性的屬性值可以通過利用應(yīng)用屬性主元數(shù)據(jù)256來確定,該應(yīng)用屬性主元數(shù)據(jù)256包括全部應(yīng)用屬性的屬性值,即缺省屬性值和微分屬性值。例如,假定租戶104-1的租戶ID是TN09,并且其遇到的參考屬性是似。在所述實(shí)施例中,屬性識別模塊110可以形成關(guān)鍵字TN09 + A^-似,并且為租戶-屬性關(guān)系元數(shù)據(jù)250中的微分屬性查詢相應(yīng)的入口。使用TN09 + AAl-Ol作為關(guān)鍵字,確定出是相應(yīng)的微分ID。隨后,被用作應(yīng)用屬性主元數(shù)據(jù)256中的關(guān)鍵字并且取回相應(yīng)的屬性值,該屬性值表示由租戶104-1首選的應(yīng)用行為。然而,如果屬性識別模塊110確定沒有為租戶104-1唯一地定義微分屬性并且也沒有定義配置模塊,那么將參考屬性的缺省值提供給多租戶應(yīng)用。應(yīng)當(dāng)理解,屬性識別模塊 110可以首先確定是否為租戶唯一地定義微分屬性,并且基于確定的結(jié)果,屬性識別模塊 110可以查明是否為租戶104-1定義配置模板。在一種實(shí)施方式中,如果確定為租戶104-1定義配置模板,則一旦識別出所述配置模板,則屬性識別模塊110可以確定所述配置模板是否定義了所述遇到的參考屬性的微分屬性。例如,屬性識別模塊Iio可以在屬性-模板關(guān)系元數(shù)據(jù)2Μ中查詢,把配置模板ID 和參考屬性ID作為關(guān)鍵字。如果存在所述關(guān)鍵字,則可以確定所述配置模板定義了所述遇到的參考屬性的微分屬性。隨后,確定出相應(yīng)的微分屬性的屬性值并且將其提供給多租戶應(yīng)用。在一種實(shí)施例中,假定配置模板ID為例如¢7 ,以及參考屬性ID為例如Α47-07?,F(xiàn) l’CT02 + AAl-Ol被用作屬性-模板關(guān)系元數(shù)據(jù)254中的關(guān)鍵字并且可以將舶廠似識別為所述微分屬性。然而,如果在屬性-模板關(guān)系元數(shù)據(jù)254中不存在所述關(guān)鍵字,則屬性識別模塊 110可以查詢模板集成元數(shù)據(jù)258并且檢查與識別出的配置模板對應(yīng)的母配置模板的入口。因此,屬性識別模塊110確定識別出的配置模板是否與一個(gè)或一個(gè)以上母配置模板相關(guān)聯(lián)。在一種實(shí)施方式中,所述配置模板可以具有所有應(yīng)用屬性的屬性值,在這種情況下, 這種應(yīng)用屬性的值可以從所述母配置模板繼承。例如,屬性識別模塊110可以識別與所述配置模板關(guān)聯(lián)的全部母配置模板。換句話說,確定所述母配置模板直到識別出基礎(chǔ)模板為止??梢岳媚0謇^承元數(shù)據(jù)258基于“IsBaseTemplate”標(biāo)記來識別所述基礎(chǔ)模板。例如,假定識別出的配置模板的配置模板ID為CT02,并且所遇到的參考屬性是 A^-似,那么CT02 + AA2-01被用作關(guān)鍵字來查詢屬性-模板關(guān)系元數(shù)據(jù)254中的相應(yīng)微分屬性。因?yàn)殛P(guān)鍵字¢7 +A^ -似不存在,所以確定配置模板¢7 是否從任何母配置模板繼承,¢7 被用作模板繼承元數(shù)據(jù)258中的關(guān)鍵字并且確定為其母配置模板。隨后,對于參考屬性例如AA2-OJ和母配置模板CTOl,根據(jù)屬性-模板關(guān)系元數(shù)據(jù)2M確定相應(yīng)的微分屬性M&Z。微分屬性M/ZZ表示要采用所述參考屬性的缺省值。因此,屬性識別模塊110將所述參考屬性的缺省值提供給應(yīng)用,表示由租戶104-1首選的多租戶應(yīng)用的缺省行為。進(jìn)一步地,應(yīng)當(dāng)理解,可以有多級繼承級別。此外,沒有在配置模板和相應(yīng)的母配置模板中指定的屬性值可以把缺省屬性值作為在基礎(chǔ)模板中定義的屬性值。對于模板繼承元數(shù)據(jù)2HCT04中定義的參考屬性值可優(yōu)先于¢7 中相同的參考屬性值。相似地,在 CT04中定義的參考屬性值可優(yōu)先于CTft 中相同的參考屬性值。更進(jìn)一步地,在¢7 中定義的應(yīng)用屬性值可優(yōu)先于CTOl中相同的應(yīng)用屬性值,并且僅僅是在CT04、CT02和CT03中缺少的屬性值將會(huì)采用由定義的缺省屬性值,即所述基礎(chǔ)模板。在一種實(shí)施例中,假定識別出的配置模板的配置模板ID為CT04,那么CT04被用作模板繼承元數(shù)據(jù)258中的關(guān)鍵字。根據(jù)所述配置模板mm)4,¢7 和CTft 可以識別為母配置模板?,F(xiàn)在假定參考屬性ID為舶7-似,可以用每一個(gè)配置模板IDCT^ 和CTft 來形成鑰匙,其可以在屬性-模板關(guān)系元數(shù)據(jù)254中查詢。通過在屬性-模板關(guān)系元數(shù)據(jù)254中查詢,可以確定存在關(guān)鍵字¢7 + AAl-01,WiCT03 + 似不存在,從而保證應(yīng)用屬性沒有重疊并且避免不一致的應(yīng)用行為。相應(yīng)地,識別出與¢7 + 似對應(yīng)的微分屬性為 AAH所述屬性值似可以根據(jù)應(yīng)用屬性主元數(shù)據(jù)256來確定。進(jìn)一步地,在一種實(shí)施方式中,如果確定出沒有定義用于租戶104的單獨(dú)的租戶特定的微分屬性、配置模板、母配置模板,那么在這種情況下,屬性識別模塊110可以將參考屬性的缺省屬性值提供給多租戶應(yīng)用。在一種實(shí)施方式中,屬性識別模塊110訪問模板繼承元數(shù)據(jù)258以根據(jù)“IsBaseTemplate”標(biāo)記來識別基礎(chǔ)模板。進(jìn)一步地,根據(jù)所述基礎(chǔ)模板和所遇到的參考屬性,利用屬性-模板關(guān)系元數(shù)據(jù)2M來識別相應(yīng)的微分屬性。此外, 利用應(yīng)用屬性主元數(shù)據(jù)256來確定所述微分屬性的值。此外或可選地,多租戶應(yīng)用的參考屬性可以是區(qū)域設(shè)置敏感的。例如,針對相同租戶104的不同用戶所述參考屬性可以改變。這種用戶特定的改變可以通過區(qū)域設(shè)置屬性的方式來識別,通過區(qū)域設(shè)置屬性ID來唯一識別。當(dāng)遇到參考屬性時(shí),可以確定出所遇到的參考屬性是區(qū)域設(shè)置敏感的并且相應(yīng)地識別出租戶104的區(qū)域設(shè)置屬性。在所述實(shí)施方式中,根據(jù)所述參考屬性和區(qū)域設(shè)置屬性,識別出針對租戶104或者租戶104的用戶的微分屬性。如前所述,所述微分屬性可以唯一定義或者可以通過配置模板的方式來識別。進(jìn)一步地,如果沒有識別出配置模板或者確定沒有為租戶唯一地定義微分屬性,則將所述參考屬性的缺省值提供給多租戶應(yīng)用。例如,一旦確定針對租戶104的配置模板并且確定其繼承,則可以利用屬性-區(qū)域設(shè)置-模板關(guān)系元數(shù)據(jù)260來確定微分屬性。屬性識別模板110可以將配置模板ID、參考屬性ID和區(qū)域設(shè)置ID用作屬性-區(qū)域設(shè)置-模板關(guān)系元數(shù)據(jù)沈0中的關(guān)鍵字。假定針對租戶的配置模板為C7 7,并且所遇到的參考屬性為似,則需要識別針對與運(yùn)行多租戶應(yīng)用的租戶相關(guān)的終端用戶的微分屬性。屬性識別模塊110根據(jù)區(qū)域設(shè)置屬性元數(shù)據(jù)(圖中未示出)確定參考屬性似是區(qū)域設(shè)置敏感的,并且在屬性-模板關(guān)系元數(shù)據(jù)254中不存在針對似的入口。隨后根據(jù)所述區(qū)域設(shè)置屬性元數(shù)據(jù)識別所述用戶的地點(diǎn)。假定識別出所述用戶的區(qū)域設(shè)置ID為LC03。屬性識別模塊110隨后利用+AA3-01 + ΖΟλ 作為關(guān)鍵字來查詢屬性-區(qū)域設(shè)置-模板關(guān)系元數(shù)據(jù)沈0以識別出為所述微分屬性ID。可以根據(jù)應(yīng)用屬性主元數(shù)據(jù)256來確定針對的屬性值。應(yīng)當(dāng)理解,在所述實(shí)施例中,在缺少用戶區(qū)域設(shè)置信息的情況下,存儲(chǔ)在所述區(qū)域設(shè)置屬性元數(shù)據(jù)中的租戶的首選區(qū)域設(shè)置屬性可以取代用戶的區(qū)域設(shè)置。在另一種實(shí)施方式中,一旦識別出與租戶104相關(guān)聯(lián)的配置模板,則并不是查詢屬性-模板關(guān)系元數(shù)據(jù)254、應(yīng)用屬性主元數(shù)據(jù)256、屬性-區(qū)域設(shè)置-模板關(guān)系元數(shù)據(jù)沈0, 而是屬性識別模塊110查詢模板-屬性關(guān)系元數(shù)據(jù)262以識別由租戶首選的應(yīng)用行為,即 識別微分屬性。模板-屬性關(guān)系元數(shù)據(jù)262包括與關(guān)于配置模板和參考屬性的多租戶應(yīng)用的應(yīng)用行為有關(guān)的細(xì)節(jié)。在所述實(shí)施方式中,所遇到的參考屬性的配置模板ID和參考屬性 ID被用作模板-屬性關(guān)系元數(shù)據(jù)沈2中的關(guān)鍵字以識別由租戶104首選的應(yīng)用行為。例如,如果被識別為配置模板并且A47-似為所遇到的參考屬性,那么(Variation value 02 for Attribute似〉被識別為表示租戶104首選的對于所遇到的參考屬性的改變2的微分屬性值。進(jìn)一步地,類似的,也可使用母配置模板的配置模板ID。同樣的,對于區(qū)域設(shè)置敏感參考屬性的情況,模板-屬性關(guān)系元數(shù)據(jù)262可以包括區(qū)域設(shè)置屬性ID的字段,并且相應(yīng)地,配置模板ID、參考屬性ID和區(qū)域設(shè)置屬性ID可以用作關(guān)鍵字。進(jìn)一步地,應(yīng)當(dāng)理解,上述與多租戶應(yīng)用有關(guān)的元數(shù)據(jù)的例子僅僅是示例性的而不是限制性的。可以改變所述元數(shù)據(jù)的布局和配置用于不同的實(shí)施方式。因此,由于提供了對租戶進(jìn)行的歸類,該租戶共享共同的配置模板和對與參考屬性有關(guān)的元數(shù)據(jù)的繼承,所以避免復(fù)制元數(shù)據(jù)。因此,系統(tǒng)102是高效的存儲(chǔ)器,在不承擔(dān)額外消耗的情況下容易支持并滿足大量租戶的需要。圖3示出根據(jù)本發(fā)明實(shí)施方式的用于根據(jù)租戶的參數(shù)選擇確定并提供多租戶應(yīng)用的行為的示例性方法300。所述示例性方法可以以一般情況下的計(jì)算機(jī)可執(zhí)行指令來描述。通常,計(jì)算機(jī)可執(zhí)行指令包括例行程序、程序、對象、要素、數(shù)據(jù)結(jié)構(gòu)、步驟、模塊、功能等,其執(zhí)行特定功能或者實(shí)現(xiàn)特定的抽象數(shù)據(jù)類型。所述方法還可以在分布式計(jì)算環(huán)境下實(shí)施,在該分布式計(jì)算環(huán)境下,功能由通過通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備執(zhí)行。在分布式計(jì)算環(huán)境下,計(jì)算機(jī)可執(zhí)行指令可以位于本地也可以位于遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中,包括記憶存儲(chǔ)設(shè)備。并不意在將描述的所述方法的順序解釋為限制性的,并且可以以任意順序結(jié)合任意數(shù)量的所描述的方法塊來實(shí)現(xiàn)所述方法或者可選的方法。相應(yīng)地,單獨(dú)的塊可以從所述方法中刪除而不會(huì)背離本文描述的本發(fā)明的精神和范圍。此外,所述方法可以在任何合適的硬件、軟件、固件或他們的結(jié)合中實(shí)施。參照多租戶應(yīng)用來解釋所述方法,然而,應(yīng)當(dāng)理解,可以實(shí)施方法300用于許多多租戶應(yīng)用。進(jìn)一步地,可以實(shí)現(xiàn)方法300用于所述多租戶應(yīng)用中的每一個(gè)參考屬性。在塊302中,初始化多租戶應(yīng)用。例如,由多租戶系統(tǒng)102或應(yīng)用服務(wù)器托管的多租戶應(yīng)用由租戶104初始化。在一種實(shí)施方式中,當(dāng)所述多租戶應(yīng)用被初始化時(shí),來自元數(shù)據(jù)儲(chǔ)存庫108的相應(yīng)的元數(shù)據(jù)被帶到緩存206中。在塊304中,確定是否遇到多租戶應(yīng)用的參考屬性。在一種實(shí)施方式中,屬性識別模塊110確定是否遇到所述參考屬性。如果確定出沒有遇到所述參考屬性,則塊304分支到(NO分支)塊306。例如,如果遇到?jīng)]有可用的改變的應(yīng)用屬性,則塊304分支到塊306。
在塊306中,確定應(yīng)用屬性的缺省值。該缺省值可以包括在多租戶應(yīng)用的基礎(chǔ)模板中。因此,在這種情況下,多租戶應(yīng)用遵循由所述基礎(chǔ)模板管理的缺省行為?;氐綁K304中,如果確定出遇到參考屬性,則塊304分支(YES分支)到塊308。例如,如果確定出對于所遇到的應(yīng)用屬性而言多個(gè)屬性值可用,則塊304分支到塊308。在塊308中,識別出所遇到的參考屬性。例如,唯一的ID可以與多租戶應(yīng)用的每一個(gè)參考屬性相關(guān)聯(lián)。在一種實(shí)施方式中,屬性識別模塊110識別與所遇到的參考屬性相應(yīng)的參考屬性ID。相應(yīng)地,屬性識別模塊110還識別與遇到所述參考屬性的租戶相應(yīng)的租戶ID。在塊310中,確定與所述參考屬性相應(yīng)的微分屬性是否唯一定義用于遇到所述參考屬性的租戶。在一種實(shí)施方式中,屬性識別模塊110通過訪問租戶-屬性關(guān)系元數(shù)據(jù)250 來確定對于所述參考屬性的單獨(dú)特定的應(yīng)用行為是否定義用于所述租戶104。屬性識別模塊110根據(jù)租戶ID和參考屬性ID識別定義用于租戶104的微分屬性。如果確定出所述微分屬性唯一定義用于所述租戶,則塊310分支(YES分支)到塊312。在塊312中,確定與所述參考屬性相應(yīng)的微分屬性值。在一種實(shí)施方式中,屬性識別模塊110根據(jù)識別出的微分屬性在應(yīng)用屬性主元數(shù)據(jù)256中查詢所述屬性值。例如,如果租戶104首選的是三級訪問控制而不是缺省的兩級,那么在這種訪問控制的情況下,所述參考屬性可以具有表示由租戶104首選的三級訪問控制的微分屬性?;氐綁K310中,如果確定微分屬性不是唯一定義用于租戶,則塊310分支(NO分支) 到塊314。在塊314中,確定與所述租戶相應(yīng)的配置模板是否被識別。所述配置模板可以包括一個(gè)或一個(gè)以上參考屬性的屬性值。由所述配置模板定義的屬性值優(yōu)先于由基礎(chǔ)模板定義的相同的應(yīng)用屬性的屬性值。進(jìn)一步地,所述配置模板可以對首選了相似的應(yīng)用行為的一組租戶共有,或者可以僅定義用于單獨(dú)的租戶。在一種實(shí)施例中,與租戶相應(yīng)的配置模板可以使基礎(chǔ)模板。在一種實(shí)施方式中,屬性識別模塊110通過訪問租戶-模板關(guān)系元數(shù)據(jù)252來識別與租戶104相應(yīng)的配置模板。如果沒有識別與租戶104相應(yīng)的配置模板,則塊314分支(NO分支)到塊316。在塊316中,確定參考屬性的缺省值。將參考屬性的缺省值提供給多租戶應(yīng)用,并且相應(yīng)地多租戶應(yīng)用展示針對由租戶給定的參考屬性的缺省行為。在一種實(shí)施方式中,屬性識別模塊110訪問模板繼承元數(shù)據(jù)258以根據(jù)“IsBaseTemplate”標(biāo)記來識別基礎(chǔ)模板。 進(jìn)一步地,根據(jù)所述基礎(chǔ)模板和所遇到的參考屬性,利用屬性-模板關(guān)系元數(shù)據(jù)2M來識別相應(yīng)的微分屬性。此外,利用應(yīng)用屬性主元數(shù)據(jù)256來確定所述微分屬性的值?;氐綁K314中,如果識別出對于所述租戶的配置模板,則塊314分支(YES分支)到塊318。在塊318中,確定微分屬性是否由所述配置模板和所遇到的參考屬性定義。在一種實(shí)施方式中,屬性識別模塊110確定所述微分屬性是否由所述配置模板和所遇到的參考屬性定義。例如,屬性識別模塊110根據(jù)參考屬性ID和配置模板ID在屬性-模板關(guān)系元數(shù)據(jù)254中查詢所述微分屬性。如果確定出所述微分屬性被定義,則塊318分支(YES分支) 到塊312,其中所述微分屬性的屬性值被確定。然而,如果確定出所述微分屬性沒有被定義, 則塊318分支(NO分支)到塊320。在塊320中,確定配置模板是否與一個(gè)或一個(gè)以上母配置模板相關(guān)聯(lián)。換句話說,可以確定所述配置模板是否從一個(gè)或一個(gè)以上母配置模板繼承元數(shù)據(jù)。在一種實(shí)施方式中,屬性識別模塊110通過訪問模板繼承元數(shù)據(jù)258來確定配置模板是否從任何母配置模板繼承元數(shù)據(jù)。如果確定出配置模板從一個(gè)或一個(gè)以上母配置模板繼承,則塊320分支 (YES分支)到塊318。如前所述,在塊318中確定微分屬性是否由配置模板和所遇到的參考屬性定義,在這個(gè)實(shí)例中所述配置模板就是母配置模板。然而,如果確定出配置模板沒有從任何母配置模板繼承,則塊320分支(NO分支)到塊316,其中參考屬性的缺省值被確定。可以重復(fù)塊318和塊320直到在塊320中確定出母配置模板是基礎(chǔ)模板。例如, 屬性識別模塊110訪問模板繼承元數(shù)據(jù)258以根據(jù)“IsBaseTemplate “標(biāo)記來識別母配置模板是否是基礎(chǔ)模板。在塊312中,根據(jù)母配置模板和參考屬性確定微分屬性的值。在一種實(shí)施方式中, 屬性識別模塊110利用應(yīng)用屬性主元數(shù)據(jù)256來確定微分屬性的值。進(jìn)一步地,應(yīng)當(dāng)理解,對于區(qū)域設(shè)置敏感的參考屬性可以重復(fù)方法300。然而,在這種情況下,至少根據(jù)區(qū)域設(shè)置屬性和參考屬性來確定微分屬性。因此,當(dāng)租戶訪問多租戶應(yīng)用時(shí),不用為每一個(gè)租戶復(fù)制對于一組或全部租戶而言可以是共有的元數(shù)據(jù),從而避免數(shù)據(jù)冗余。對租戶元數(shù)據(jù)進(jìn)行歸類連同所提供的創(chuàng)建繼承元數(shù)據(jù)的多個(gè)配置模板,而為保存在存儲(chǔ)空間做準(zhǔn)備,對于大量租戶的情況容易管理并且具有增強(qiáng)的可擴(kuò)展性。盡管用具體到結(jié)構(gòu)特征和/或方法的語言來描述用于多租戶的方法和系統(tǒng)的實(shí)施方式,但應(yīng)當(dāng)理解,本發(fā)明不必限制于所描述的具體特征或方法。而是公開所述具體特征和方法作為多租戶的示例性實(shí)施方式。
權(quán)利要求
1.一種方法包括確定多租戶應(yīng)用的參考屬性是否遇到租戶(104),其中所述參考屬性是所述多租戶應(yīng)用的應(yīng)用屬性,對于所述參考屬性可獲得源自所述多租戶應(yīng)用的缺省行為的變化; 基于所述確定查明是否為所述租戶(104)定義了配置模板;基于所述查明識別與所述租戶(104)對應(yīng)的所述多租戶應(yīng)用的應(yīng)用行為,其中至少基于所述參考屬性識別所述應(yīng)用行為;以及向所述多租戶應(yīng)用提供所述識別出的應(yīng)用行為以便所述多租戶應(yīng)用為所述租戶(104) 展示所述識別出的應(yīng)用行為。
2.如權(quán)利要求1所述的方法,其中所述識別還包括確定與所述配置模板相關(guān)聯(lián)的一個(gè)或一個(gè)以上母配置模板;以及至少部分基于所述一個(gè)或一個(gè)以上母配置模板識別與所述租戶(104)對應(yīng)的應(yīng)用行為。
3.如權(quán)利要求1所述的方法,其中所述識別還包括 確定與所述租戶(104)對應(yīng)的區(qū)域設(shè)置屬性;以及至少基于所述區(qū)域設(shè)置屬性識別與所述租戶(104)對應(yīng)的應(yīng)用行為。
4.如權(quán)利要求1所述的方法,還包括當(dāng)所述參考屬性沒有被遇到時(shí),確定遇到的應(yīng)用屬性的缺省值。
5.如權(quán)利要求1所述的方法,其中所述參考屬性是如下一種用戶接口、處理步驟、業(yè)務(wù)規(guī)則、工作流程、訪問控制、應(yīng)用數(shù)據(jù)結(jié)構(gòu)、報(bào)告、以及與其他多租戶應(yīng)用的結(jié)合。
6.如權(quán)利要求1所述的方法,其中所述識別出的應(yīng)用行為表示所述缺省行為和源自所述缺省行為的變化。
7.如權(quán)利要求1所述的方法,其中所述配置模板與租戶(104)組相關(guān)聯(lián)。
8.一種多租戶系統(tǒng)(102)包括 處理器(204);以及存儲(chǔ)器(208),其連接至處理器(204),存儲(chǔ)器(208)包括屬性識別模塊(110),屬性識別模塊(110)配置為確定多租戶應(yīng)用的參考屬性是否遇到租戶(104),其中所述參考屬性是所述多租戶應(yīng)用的應(yīng)用屬性,對于所述參考屬性可獲得源自所述多租戶應(yīng)用的缺省行為的變化;當(dāng)所述參考屬性遇到時(shí),查明是否為所述租戶(104)定義了配置模板;以及當(dāng)沒有為所述租戶(104)定義所述配置模板時(shí),至少基于所述參考屬性識別與所述租戶(104)對應(yīng)的所述多租戶應(yīng)用的應(yīng)用行為。
9.如權(quán)利要求8所述的多租戶系統(tǒng)(102),其中,當(dāng)為所述租戶(104)定義了配置模板時(shí),所述屬性識別模塊(110)還配置為至少部分基于所述配置模板和所述參考屬性識別與所述租戶(104)對應(yīng)的多租戶應(yīng)用的應(yīng)用行為。
10.如權(quán)利要求9所述的多租戶系統(tǒng)(102),其中所述屬性識別模塊(110)還配置為 確定與所述配置模板相關(guān)聯(lián)的至少一個(gè)母配置模板;以及至少部分基于所述至少一個(gè)母配置模板識別與所述租戶(104)對應(yīng)的應(yīng)用行為。
11.如權(quán)利要求8至10任意一項(xiàng)所述的多租戶系統(tǒng)(102),其中所述屬性識別模塊 (110)還配置為確定與租戶(104)對應(yīng)的區(qū)域設(shè)置屬性;以及至少基于所述區(qū)域設(shè)置屬性識別與所述租戶(104)對應(yīng)的應(yīng)用行為。
12.如權(quán)利要求8所述的多租戶系統(tǒng)(102),其中所述多租戶系統(tǒng)(102)與元數(shù)據(jù)儲(chǔ)存庫(108)相關(guān)聯(lián),并且其中元數(shù)據(jù)儲(chǔ)存庫(108)包括與租戶、基礎(chǔ)模板、一個(gè)或一個(gè)以上配置模板、配置模板的繼承、參考屬性、以及與所述多租戶應(yīng)用相關(guān)聯(lián)的微分屬性相關(guān)的元數(shù)據(jù)。
13.如權(quán)利要求8所述的多租戶系統(tǒng)(102)還包括配置模塊(214),其配置為為所述多租戶應(yīng)用創(chuàng)建至少一個(gè)基礎(chǔ)模板和為所述多租戶應(yīng)用創(chuàng)建一個(gè)或一個(gè)以上配置模板。
14.如權(quán)利要求8所述的多租戶系統(tǒng)(102),其中,當(dāng)沒有為所述租戶(104)識別出應(yīng)用行為時(shí),所述屬性識別模塊(110)配置為提供所述參考屬性的缺省屬性值。
15.一種含有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),當(dāng)執(zhí)行時(shí),所述計(jì)算機(jī)可讀介質(zhì)實(shí)施的方法包括確定多租戶應(yīng)用的參考屬性是否遇到租戶(104),其中所述參考屬性是所述多租戶應(yīng)用的應(yīng)用屬性,對于所述參考屬性可獲得源自所述多租戶應(yīng)用的缺省行為的變化;基于所述確定查明是否為所述租戶(104)定義了配置模板;基于所述查明識別與所述租戶(104)對應(yīng)的所述多租戶應(yīng)用的應(yīng)用行為,其中至少基于所述參考屬性識別所述應(yīng)用行為;以及向所述多租戶應(yīng)用提供所述識別出的應(yīng)用行為以便所述多租戶應(yīng)用為所述租戶(104) 展示所述識別出的應(yīng)用行為。
全文摘要
本文描述了用于為租戶(104)識別多租戶應(yīng)用的應(yīng)用行為的方法和系統(tǒng)。所述方法包括確定所述租戶(104)是否遇到所述多租戶應(yīng)用的參考屬性。所述參考屬性是應(yīng)用屬性,對于所述參考屬性可獲得源自所述多租戶應(yīng)用的缺省行為的變化?;谒龃_定,查明是否為所述租戶(104)定義了配置模板。進(jìn)一步地,基于所述配置模板的查明,識別與所述租戶(104)對應(yīng)的所述應(yīng)用行為。所述識別出的應(yīng)用行為提供至所述多租戶應(yīng)用以便所述多租戶應(yīng)用展示所述識別出的應(yīng)用行為。
文檔編號G06F17/30GK102567436SQ20111014357
公開日2012年7月11日 申請日期2011年5月31日 優(yōu)先權(quán)日2010年12月22日
發(fā)明者希洛·甘瓦尼, 桑達(dá)拉吉·庫什克 申請人:塔塔咨詢服務(wù)有限公司