專利名稱:一種面向多租戶的數(shù)據(jù)獲取方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)軟件領(lǐng)域,尤其涉及一種面向多租戶的數(shù)據(jù)獲取方法、裝置及系統(tǒng)。
背景技術(shù):
現(xiàn)今基于互聯(lián)網(wǎng)提供軟件服務(wù)的軟件應(yīng)用模式中很多都涉及到多租戶。多租戶是指一個(gè)單獨(dú)的軟件實(shí)例可以為多個(gè)組織服務(wù),所服務(wù)的每一個(gè)組織稱為一個(gè)租戶。是要讓一個(gè)軟件支持多租戶不僅要對它的軟件架構(gòu)進(jìn)行相應(yīng)的修改,而且需要對它的數(shù)據(jù)庫結(jié)構(gòu)進(jìn)行特殊的設(shè)計(jì),同時(shí)在安全和隔離性方面也要有所保障?,F(xiàn)有對租戶數(shù)據(jù)的隔離方案主要有三種一種是一個(gè)租戶一個(gè)數(shù)據(jù)庫;一種是多租戶共享數(shù)據(jù)庫,一個(gè)租戶一張表;還有一種是多租戶共享數(shù)據(jù)庫且共享數(shù)據(jù)庫中的表,表中通過租戶ID來區(qū)分租戶的數(shù)據(jù)。但這三種方案都有所弊端第一種方案需要安裝大量的數(shù)據(jù)庫,使得服務(wù)器購置成本和維護(hù)成本太高;第二種方案難以跨租戶統(tǒng)計(jì)數(shù)據(jù);第三種方案不便于按租戶分?jǐn)?shù)據(jù)庫,且隔離性與安全性低。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于提供一種面向多租戶的數(shù)據(jù)獲取方法、裝置及系統(tǒng),旨在提供一種能適用于不同應(yīng)用的多租戶數(shù)據(jù)獲取的方法。本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種面向多租戶的數(shù)據(jù)獲取方法,所述方法包括下述步驟接收租戶數(shù)據(jù)訪問請求,該租戶數(shù)據(jù)訪問請求中攜帶租戶標(biāo)識;根據(jù)租戶標(biāo)識和預(yù)先存儲(chǔ)的數(shù)據(jù)源配置文件獲取與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源;通過與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源訪問數(shù)據(jù)庫,獲取請求的租戶數(shù)據(jù)。本發(fā)明實(shí)施例的另一目的在于提供一種面向多租戶的數(shù)據(jù)獲取裝置,所述裝置包括訪問接收單元,用于接收租戶數(shù)據(jù)訪問請求,該租戶數(shù)據(jù)訪問請求中攜帶租戶標(biāo)識;數(shù)據(jù)源獲取單元,用于根據(jù)租戶標(biāo)識和預(yù)先存儲(chǔ)的數(shù)據(jù)源配置文件獲取與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源,并緩存租戶與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源的映射關(guān)系;數(shù)據(jù)獲取單元,用于通過與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源訪問數(shù)據(jù)庫,獲取請求的租戶數(shù)據(jù)。本發(fā)明實(shí)施例的另一目的在于提供一種包含面向多租戶的數(shù)據(jù)獲取裝置的系統(tǒng)。在本發(fā)明實(shí)施例中,根據(jù)不同的應(yīng)用場景,可以實(shí)際配置一個(gè)或多個(gè)數(shù)據(jù)源配置文件。每一個(gè)數(shù)據(jù)源配置文件代表一個(gè)數(shù)據(jù)源,每一個(gè)數(shù)據(jù)源配置文件中都含有一個(gè)或者多個(gè)與其相映射關(guān)聯(lián)的租戶標(biāo)識。使得此方法可用于各種不同的應(yīng)用場景,使得其應(yīng)用更加廣泛。對于隔離性和安全性要求高的租戶,則單獨(dú)為其配置一個(gè)數(shù)據(jù)源配置文件,用于管理與此租戶相關(guān)聯(lián)的數(shù)據(jù)源。因此,進(jìn)一步滿足了某些租戶對高隔離性、高安全性的要求。
圖1是本發(fā)明第一實(shí)施例提供的面向多租戶的數(shù)據(jù)獲取方法的流程圖;圖2是本發(fā)明第三實(shí)施例提供的面向多租戶的數(shù)據(jù)獲取方法的流程圖;圖3是本發(fā)明實(shí)施例提供的面向多租戶的數(shù)據(jù)獲取裝置示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實(shí)施例通過一個(gè)或者多個(gè)數(shù)據(jù)源配置文件來配置數(shù)據(jù)源。在數(shù)據(jù)源配置文件中含有與數(shù)據(jù)源相關(guān)聯(lián)的所有租戶標(biāo)識。通過解析數(shù)據(jù)源配置文件找到與所述租戶相關(guān)聯(lián)的數(shù)據(jù)源,最后通過數(shù)據(jù)源訪問數(shù)據(jù)庫來獲取租戶數(shù)據(jù)。本發(fā)明提供了一種面向多租戶的數(shù)據(jù)獲取方法及裝置所述方法包括接收租戶數(shù)據(jù)訪問請求,該租戶數(shù)據(jù)訪問請求中攜帶租戶標(biāo)識;根據(jù)租戶標(biāo)識和預(yù)先存儲(chǔ)的數(shù)據(jù)源配置文件獲取與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源;通過與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源訪問數(shù)據(jù)庫,獲取請求的租戶數(shù)據(jù)。所述裝置包括訪問接收單元,用于接收租戶數(shù)據(jù)訪問請求,該租戶數(shù)據(jù)訪問請求中攜帶租戶標(biāo)識;數(shù)據(jù)源獲取單元,用于根據(jù)租戶標(biāo)識和預(yù)先存儲(chǔ)的數(shù)據(jù)源配置文件獲取與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源,并緩存租戶與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源的映射關(guān)系;數(shù)據(jù)獲取單元,用于通過與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源訪問數(shù)據(jù)庫,獲取請求的租戶數(shù)據(jù)。為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實(shí)施例來進(jìn)行說明。實(shí)施例一圖1示出了本發(fā)明第一實(shí)施例提供的一種面向多租戶的數(shù)據(jù)獲取方法。在步驟SlOl中,接收租戶數(shù)據(jù)訪問請求,該租戶數(shù)據(jù)訪問請求中攜帶租戶標(biāo)識。在本發(fā)明實(shí)施例中,在接收訪問租戶數(shù)據(jù)請求時(shí),同時(shí)獲得需要訪問的租戶標(biāo)識。 其中,租戶標(biāo)識可以為租戶ID、租戶名稱等。在步驟S102中,根據(jù)租戶標(biāo)識和預(yù)先存儲(chǔ)的數(shù)據(jù)源配置文件獲取與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源。在本發(fā)明實(shí)施例中,此步驟主要通過以下兩步實(shí)現(xiàn)首先,解析預(yù)先存儲(chǔ)的數(shù)據(jù)源配置文件,得到租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系, 并緩存租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系。在本發(fā)明實(shí)施例中,通過一個(gè)或多個(gè)數(shù)據(jù)源配置文件配置數(shù)據(jù)源,每一個(gè)數(shù)據(jù)源配置文件代表一個(gè)數(shù)據(jù)源,每一個(gè)數(shù)據(jù)源配置文件中都含有一個(gè)或者多個(gè)與其相映射關(guān)聯(lián)的租戶標(biāo)識。除此之外,數(shù)據(jù)源配置文件還包括數(shù)據(jù)庫URL、用戶名、密碼及其他配置信息 (如連接池大小)等。通過解析所有數(shù)據(jù)源配置文件獲取所有數(shù)據(jù)源配置文件中的租戶標(biāo)識,將需要訪問數(shù)據(jù)的租戶標(biāo)識與所有數(shù)據(jù)源配置文件中的租戶標(biāo)識相比較,可知哪些數(shù)據(jù)源配置文件中含有需要訪問的租戶的標(biāo)識,與這些數(shù)據(jù)源配置文件相對應(yīng)的數(shù)據(jù)源就是與需要訪問數(shù)據(jù)的租戶相映射的。由此,得到租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系。然后,從租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系中查找與租戶數(shù)據(jù)訪問請求中攜帶的租戶標(biāo)識對應(yīng)的數(shù)據(jù)源。在本發(fā)明實(shí)施例中,由于已經(jīng)得知租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系,通過查找便可知租戶數(shù)據(jù)訪問請求中攜帶的租戶標(biāo)識對應(yīng)的數(shù)據(jù)源。在本發(fā)明實(shí)施例中,根據(jù)不同的應(yīng)用,其數(shù)據(jù)源的配置及數(shù)據(jù)源配置文件的個(gè)數(shù)會(huì)有所不同。具體如實(shí)施例二所述,在此就不再贅述了。在步驟S103中,通過與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源訪問數(shù)據(jù)庫,獲取請求的租戶數(shù)據(jù)。在本發(fā)明實(shí)施例中,數(shù)據(jù)源中存儲(chǔ)了所有建立數(shù)據(jù)庫連接的信息,通過提供正確的數(shù)據(jù)源名稱,就能找到相應(yīng)的數(shù)據(jù)庫連接,訪問數(shù)據(jù)庫,獲取所述租戶數(shù)據(jù)。實(shí)施例二 在本發(fā)明實(shí)施例中,根據(jù)實(shí)際需要,可通過一個(gè)或多個(gè)數(shù)據(jù)源配置文件配置數(shù)據(jù)源,每一個(gè)數(shù)據(jù)源配置文件代表一個(gè)數(shù)據(jù)源。因此,根據(jù)應(yīng)用場景的不同,圖1中的步驟 S102的具體實(shí)現(xiàn)有所不同。下面以3種不同的實(shí)際應(yīng)用場景來分別說明,但并不限于這3 種應(yīng)用。1、只有一個(gè)數(shù)據(jù)庫,且所有租戶共享數(shù)據(jù)庫和表。在本發(fā)明實(shí)施例中,由于所有租戶共享數(shù)據(jù)庫及此數(shù)據(jù)庫中的所有表,因此,不論是訪問此數(shù)據(jù)庫中的任何一張表,都使用同樣的路徑,只需一個(gè)唯一的數(shù)據(jù)源。相應(yīng)的就只有一個(gè)數(shù)據(jù)源配置文件,其中包括所有租戶標(biāo)識。因此,不論是接收的訪問任何一個(gè)租戶數(shù)據(jù)的請求,都只需解析這一個(gè)數(shù)據(jù)源配置文件,然后存儲(chǔ)租戶標(biāo)識與數(shù)據(jù)源的映射關(guān)系。同時(shí),由于只有一個(gè)唯一的數(shù)據(jù)源,數(shù)據(jù)源配置文件也可以不配置租戶標(biāo)識,所有租戶自動(dòng)對應(yīng)到所述的唯一數(shù)據(jù)源。例如只有1個(gè)數(shù)據(jù)源,則相應(yīng)有數(shù)據(jù)源配置文件1個(gè),為a。解析數(shù)據(jù)源配置文件a后發(fā)現(xiàn),數(shù)據(jù)源配置文件a中包含租戶A的標(biāo)識,由此可知租戶A與數(shù)據(jù)源a存在映射關(guān)系,則將租戶A與數(shù)據(jù)源a的映射關(guān)系保存于一個(gè)Map中,所述Map為一個(gè)保存租戶標(biāo)識與數(shù)據(jù)源的映射關(guān)系的緩存。Map中的Key值代表租戶標(biāo)識,Value值代表數(shù)據(jù)源。2、有多個(gè)數(shù)據(jù)庫,每個(gè)數(shù)據(jù)庫被一個(gè)或多個(gè)租戶共享。在本發(fā)明實(shí)施例中,當(dāng)有多個(gè)數(shù)據(jù)庫,每個(gè)數(shù)據(jù)庫被一個(gè)或多個(gè)租戶共享時(shí),各個(gè)租戶訪問數(shù)據(jù)的路徑必然不同,因此就需要多個(gè)數(shù)據(jù)源配置文件。每個(gè)數(shù)據(jù)源配置文件配置一個(gè)或多個(gè)租戶標(biāo)識。此時(shí),通過解析數(shù)據(jù)源配置文件可知哪些是與所述租戶相關(guān)聯(lián)的數(shù)據(jù)源,并存儲(chǔ)所述租戶與相關(guān)聯(lián)數(shù)據(jù)源的映射關(guān)系。在本發(fā)明實(shí)施例中,對于隔離性和安全性要求高的租戶,則單獨(dú)為其配置一個(gè)數(shù)據(jù)源配置文件,用于管理與此租戶相關(guān)聯(lián)的數(shù)據(jù)源。因此,進(jìn)一步滿足了某些租戶高隔離性、高安全性的要求。
例如有3個(gè)數(shù)據(jù)源。則相應(yīng)有數(shù)據(jù)源配置文件3個(gè),分別為a,b和C。分別解析數(shù)據(jù)源配置文件a,b和c后發(fā)現(xiàn),數(shù)據(jù)源配置文件b中包含租戶A的標(biāo)識,由此可知訪問租戶A的數(shù)據(jù)需要數(shù)據(jù)源b,則將租戶A與數(shù)據(jù)源b的相關(guān)聯(lián)的映射關(guān)系保存于一個(gè)Map中, 所述Map為一個(gè)保存租戶標(biāo)識與數(shù)據(jù)源的映射關(guān)系的緩存。Map中的Key值代表租戶標(biāo)識, Value值代表數(shù)據(jù)源。此時(shí),假如租戶D的安全性和隔離性要求較高,則單獨(dú)為D配置一個(gè)數(shù)據(jù)源配置文件d,用于管理與d相關(guān)聯(lián)的數(shù)據(jù)源。3、大企業(yè)要求軟件部署在企業(yè)內(nèi)部。在本發(fā)明實(shí)施例中,當(dāng)大企業(yè)要求軟件部署在企業(yè)內(nèi)部時(shí),此時(shí)其實(shí)只有一個(gè)租戶,一個(gè)數(shù)據(jù)庫,也只需要一個(gè)數(shù)據(jù)源配置文件。其解析數(shù)據(jù)源配置文件找到與所述租戶相關(guān)聯(lián)的數(shù)據(jù)源,緩存所述租戶與數(shù)據(jù)源的映射關(guān)系的方法與租戶共享數(shù)據(jù)庫和表的時(shí)候相同,在此就不再贅述了。在本發(fā)明實(shí)施例中,根據(jù)不同的應(yīng)用場景,可以實(shí)際配置一個(gè)或多個(gè)數(shù)據(jù)源配置文件。每一個(gè)數(shù)據(jù)源配置文件代表一個(gè)數(shù)據(jù)源,每一個(gè)數(shù)據(jù)源配置文件中都含有一個(gè)或者多個(gè)與其相映射關(guān)聯(lián)的租戶標(biāo)識。使得此方法可用于各種不同的應(yīng)用場景,使得其應(yīng)用更加廣泛。對于隔離性和安全性要求高的租戶,則單獨(dú)為其配置一個(gè)數(shù)據(jù)源配置文件,用于管理與此租戶相關(guān)聯(lián)的數(shù)據(jù)源。因此,進(jìn)一步滿足了某些租戶對高隔離性、高安全性的要求。實(shí)施例三圖2示出了本發(fā)明第三實(shí)施例提供的一種面向多租戶的數(shù)據(jù)獲取方法。在步驟S201中,接收租戶數(shù)據(jù)訪問請求,該租戶數(shù)據(jù)訪問請求中攜帶租戶標(biāo)識。在步驟S202中,判斷是否緩存有租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系,是則執(zhí)行步驟S204,否則執(zhí)行步驟S203。在本發(fā)明實(shí)施例中,由于需要通過解析數(shù)據(jù)源配置文件來獲得租戶與數(shù)據(jù)源的映射關(guān)系,如果每次需要訪問同樣租戶的數(shù)據(jù)時(shí),都解析數(shù)據(jù)源配置文件一次,則太過繁瑣, 因此,只需在第一次訪問某個(gè)租戶的數(shù)據(jù)時(shí),解析所有數(shù)據(jù)源配置文件后緩存此租戶與數(shù)據(jù)源的映射關(guān)系,后續(xù)再次訪問該租戶數(shù)據(jù)時(shí),則直接根據(jù)緩存中此租戶與數(shù)據(jù)源的映射關(guān)系,獲取數(shù)據(jù)源。因此,獲取數(shù)據(jù)源之前就需要先判斷是否緩存有租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系。其中,通過解析數(shù)據(jù)源配置文件獲得租戶與數(shù)據(jù)源的映射關(guān)系的方法如步驟 S203所述,在此就不再贅述了。在步驟S203中,根據(jù)租戶標(biāo)識和預(yù)先存儲(chǔ)的數(shù)據(jù)源配置文件獲取與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源,并將租戶與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源的映射關(guān)系存儲(chǔ)于緩存中。在本發(fā)明實(shí)施例中,在根據(jù)租戶標(biāo)識和預(yù)先存儲(chǔ)的數(shù)據(jù)源配置文件獲取與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源后將租戶與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源的映射關(guān)系存儲(chǔ)于緩存中。在步驟S204中,從緩存的租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系中查找與租戶數(shù)據(jù)訪問請求中攜帶的租戶標(biāo)識對應(yīng)的數(shù)據(jù)源。在本發(fā)明實(shí)施例中,由于已經(jīng)緩存了所述租戶與數(shù)據(jù)源的映射關(guān)系,因此可根據(jù)此映射關(guān)系,從緩存中獲取所需的數(shù)據(jù)源。在步驟S205中,通過與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源訪問數(shù)據(jù)庫,獲取請求的租戶數(shù)據(jù)。在本發(fā)明實(shí)施例中,只需在第一次訪問某個(gè)租戶的數(shù)據(jù)時(shí),解析所有數(shù)據(jù)源配置文件后緩存此租戶與數(shù)據(jù)源的映射關(guān)系,后續(xù)再次訪問該租戶數(shù)據(jù)時(shí),則直接根據(jù)此租戶與數(shù)據(jù)源的映射關(guān)系,獲取數(shù)據(jù)源。使得租戶后續(xù)的訪問過程更加簡便且快速。實(shí)施例四圖3示出了本發(fā)明實(shí)施例提供的一種面向多租戶的數(shù)據(jù)獲取裝置的結(jié)構(gòu),為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部份。其中訪問接收單元1,用于接收租戶數(shù)據(jù)訪問請求,該租戶數(shù)據(jù)訪問請求中攜帶租戶標(biāo)識。映射判斷單元2,用于判斷是否緩存有租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系。此時(shí),所述配置文件解析單元在映射判斷單元的判定結(jié)果為否時(shí),解析預(yù)先存儲(chǔ)的數(shù)據(jù)源配置文件,得到租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系;所述數(shù)據(jù)源查找單元在映射判斷單元的判定結(jié)果為是時(shí),直接從緩存的租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系中查找與租戶數(shù)據(jù)訪問請求中攜帶的租戶標(biāo)識對應(yīng)的數(shù)據(jù)源,在映射判斷單元的判定結(jié)果為否時(shí),從配置文件解析單元得到的租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系中查找與租戶數(shù)據(jù)訪問請求中攜帶的租戶標(biāo)識對應(yīng)的數(shù)據(jù)源。數(shù)據(jù)源獲取單元3,用于根據(jù)租戶標(biāo)識和預(yù)先存儲(chǔ)的數(shù)據(jù)源配置文件獲取與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源,并緩存租戶與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源的映射關(guān)系。在本發(fā)明實(shí)施例中,通過一個(gè)或多個(gè)數(shù)據(jù)源配置文件配置數(shù)據(jù)源,每一個(gè)數(shù)據(jù)源配置文件代表一個(gè)數(shù)據(jù)源,每一個(gè)數(shù)據(jù)源配置文件中都含有一個(gè)或者多個(gè)與其相映射關(guān)聯(lián)的租戶標(biāo)識。除此之外,數(shù)據(jù)源配置文件還包括數(shù)據(jù)庫URL、用戶名、密碼及其他配置信息 (如連接池大小)等。通過解析所有數(shù)據(jù)源配置文件獲取所有數(shù)據(jù)源配置文件中的租戶標(biāo)識,將需要訪問數(shù)據(jù)的租戶標(biāo)識與所有數(shù)據(jù)源配置文件中的租戶標(biāo)識相比較,可知哪些數(shù)據(jù)源配置文件中含有需要訪問的租戶的標(biāo)識,與這些數(shù)據(jù)源配置文件相對應(yīng)的數(shù)據(jù)源就是與需要訪問數(shù)據(jù)的租戶相映射的。由此,得到租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系。數(shù)據(jù)獲取單元4,用于通過與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源訪問數(shù)據(jù)庫,獲取請求的租戶數(shù)據(jù)。在本發(fā)明實(shí)施例中,根據(jù)不同的應(yīng)用場景,可以實(shí)際配置一個(gè)或多個(gè)數(shù)據(jù)源配置文件。每一個(gè)數(shù)據(jù)源配置文件代表一個(gè)數(shù)據(jù)源,每一個(gè)數(shù)據(jù)源配置文件中都含有一個(gè)或者多個(gè)與其相映射關(guān)聯(lián)的租戶標(biāo)識。使得此方法可用于各種不同的應(yīng)用場景,使得其應(yīng)用更加廣泛。對于隔離性和安全性要求高的租戶,則單獨(dú)為其配置一個(gè)數(shù)據(jù)源配置文件,用于管理與此租戶相關(guān)聯(lián)的數(shù)據(jù)源。因此,進(jìn)一步滿足了某些租戶對高隔離性、高安全性的要求。本領(lǐng)域普通技術(shù)人員可以理解,實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以在存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì),如ROM/RAM、磁盤、光盤等。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種面向多租戶的數(shù)據(jù)獲取方法,其特征在于,所述方法包括以下步驟 接收租戶數(shù)據(jù)訪問請求,該租戶數(shù)據(jù)訪問請求中攜帶租戶標(biāo)識;根據(jù)租戶標(biāo)識和預(yù)先存儲(chǔ)的數(shù)據(jù)源配置文件獲取與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源; 通過與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源訪問數(shù)據(jù)庫,獲取請求的租戶數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)源配置文件為一個(gè)或多個(gè),每一個(gè)數(shù)據(jù)源配置文件代表一個(gè)數(shù)據(jù)源,且每一個(gè)數(shù)據(jù)源配置文件都含有一個(gè)或者多個(gè)與其相映射關(guān)聯(lián)的租戶標(biāo)識。
3.如權(quán)利要求2所述的方法,其特征在于,所述數(shù)據(jù)源配置文件可單獨(dú)為安全性及隔離性要求高的租戶單獨(dú)配置。
4.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)租戶標(biāo)識和預(yù)先存儲(chǔ)的數(shù)據(jù)源配置文件獲取與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源的步驟具體為解析預(yù)先存儲(chǔ)的數(shù)據(jù)源配置文件,得到租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系,并緩存租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系;從租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系中查找與租戶數(shù)據(jù)訪問請求中攜帶的租戶標(biāo)識對應(yīng)的數(shù)據(jù)源。
5.如權(quán)利要求4所述的方法,其特征在于,在所述解析預(yù)先存儲(chǔ)的數(shù)據(jù)源配置文件,得到租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系的步驟之前,所述方法還包括下述步驟判斷是否緩存有租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系,若是,直接從緩存的租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系中查找與租戶數(shù)據(jù)訪問請求中攜帶的租戶標(biāo)識對應(yīng)的數(shù)據(jù)源,否則執(zhí)行所述步驟解析預(yù)先存儲(chǔ)的數(shù)據(jù)源配置文件,得到租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系。
6.一種面向多租戶的數(shù)據(jù)獲取裝置,其特征在于,所述裝置包括訪問接收單元,用于接收租戶數(shù)據(jù)訪問請求,該租戶數(shù)據(jù)訪問請求中攜帶租戶標(biāo)識; 數(shù)據(jù)源獲取單元,用于根據(jù)租戶標(biāo)識和預(yù)先存儲(chǔ)的數(shù)據(jù)源配置文件獲取與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源,并緩存租戶與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源的映射關(guān)系;數(shù)據(jù)獲取單元,用于通過與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源訪問數(shù)據(jù)庫,獲取請求的租戶數(shù)據(jù)。
7.如權(quán)利要求6所述的裝置,其特征在于,所述數(shù)據(jù)源配置文件為一個(gè)或多個(gè),每一個(gè)數(shù)據(jù)源配置文件代表一個(gè)數(shù)據(jù)源,且每一個(gè)數(shù)據(jù)源配置文件都含有一個(gè)或者多個(gè)與其相映射關(guān)聯(lián)的租戶標(biāo)識。
8.如權(quán)利要求7所述的裝置,其特征在于,所述數(shù)據(jù)源獲取單元包括配置文件解析單元,用于解析預(yù)先存儲(chǔ)的數(shù)據(jù)源配置文件,得到租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系;數(shù)據(jù)源查找單元,用于從租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系中查找與租戶數(shù)據(jù)訪問請求中攜帶的租戶標(biāo)識對應(yīng)的數(shù)據(jù)源。
9.如權(quán)利要求8所述的裝置,其特征在于,所述數(shù)據(jù)源獲取單元還包括映射判斷單元,用于判斷是否緩存有租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系;此時(shí), 所述配置文件解析單元在映射判斷單元的判定結(jié)果為否時(shí),解析預(yù)先存儲(chǔ)的數(shù)據(jù)源配置文件,得到租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系;所述數(shù)據(jù)源查找單元在映射判斷單元的判定結(jié)果為是時(shí),直接從緩存的租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系中查找與租戶數(shù)據(jù)訪問請求中攜帶的租戶標(biāo)識對應(yīng)的數(shù)據(jù)源,在映射判斷單元的判定結(jié)果為否時(shí),從配置文件解析單元得到的租戶標(biāo)識與數(shù)據(jù)源之間的映射關(guān)系中查找與租戶數(shù)據(jù)訪問請求中攜帶的租戶標(biāo)識對應(yīng)的數(shù)據(jù)源。
10. 一種包含權(quán)利要求6至9的任一權(quán)利要求所述的裝置的系統(tǒng)。
全文摘要
本發(fā)明適用于計(jì)算機(jī)軟件領(lǐng)域,提供了一種面向多租戶的數(shù)據(jù)獲取方法、裝置及系統(tǒng)。該方法包括下述步驟接收租戶數(shù)據(jù)訪問請求,該租戶數(shù)據(jù)訪問請求中攜帶租戶標(biāo)識;根據(jù)租戶標(biāo)識和預(yù)先存儲(chǔ)的數(shù)據(jù)源配置文件獲取與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源;通過與租戶標(biāo)識對應(yīng)的數(shù)據(jù)源訪問數(shù)據(jù)庫,獲取請求的租戶數(shù)據(jù)。本發(fā)明根據(jù)不同的應(yīng)用場景,可以實(shí)際配置一個(gè)或多個(gè)數(shù)據(jù)源配置文件。使得此方法可用于各種不同的應(yīng)用場景,使得其應(yīng)用更加廣泛。對于隔離性和安全性要求高的租戶,則單獨(dú)為其配置一個(gè)數(shù)據(jù)源配置文件,用于管理與此租戶相關(guān)聯(lián)的數(shù)據(jù)源。因此,進(jìn)一步滿足了某些租戶對高隔離性、高安全性的要求。
文檔編號G06F17/30GK102456028SQ20101052175
公開日2012年5月16日 申請日期2010年10月27日 優(yōu)先權(quán)日2010年10月27日
發(fā)明者毛國雷 申請人:金蝶軟件(中國)有限公司