本發(fā)明涉及以隔離方式為來自多個組織的租戶提供服務(wù)的多租戶架構(gòu),并且更具體地,涉及將存儲在單個數(shù)據(jù)庫中的信息對象分割為單獨片段的自動管理的方法。
多租戶可用于在單個服務(wù)中(裝置或部署)以隔離方式為來自各種組織的租戶(即獨立訂戶)提供服務(wù)。關(guān)鍵是確保訂戶保持互相隔離。
背景技術(shù):
已知的現(xiàn)有技術(shù)包括解決方案us2013/086322a1,其描述了通過添加一個或多個字段(列)用作分隔符來分割表格數(shù)據(jù)的方法。
然而,由于每次一個或多個新的分隔符列必須被添加至每個表格或目錄,因此該方法傾向于相當(dāng)耗時。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是創(chuàng)建一種用于靈活管理數(shù)據(jù)分割的機制和方法,即通過使對于相同的應(yīng)用解決方案啟用或禁用數(shù)據(jù)分割,例如,以確保它可以在本地(“桌面”)模式下工作,并且可以在多個訂戶訪問相同的網(wǎng)絡(luò)服務(wù)(“云分割”)的模式下工作,而對于應(yīng)用解決方案本身的架構(gòu)沒有顯著修改。
本發(fā)明的技術(shù)成果提供完整的和部分的數(shù)據(jù)分割。例如,一些數(shù)據(jù)可由所有組織(例如,銀行的目錄)共享,而諸如業(yè)務(wù)或財務(wù)數(shù)據(jù)的其他數(shù)據(jù)是租戶特定的并且僅為特定組織顯示和可用。
定義
配置是基于1c平臺的應(yīng)用解決方案,并且是算法、表格和數(shù)據(jù)結(jié)構(gòu)的組合。任何配置的主要目的是正確的記錄保存,例如用于會計目的。1c平臺是一組用于存儲特定于主題區(qū)域的數(shù)據(jù)的專用對象:常量、目錄、文檔和賬戶的圖表。
屬性是顯示在應(yīng)用解決方案中的要填寫的目錄或文檔的字段。每個屬性都以指定其存儲的值類型以及用戶可以如何使用它的性質(zhì)為特征。
分隔符(共享屬性)是使能夠為多個配置對象(目錄、文檔、賬戶的圖表、常量等)使用單個屬性的元數(shù)據(jù)對象(配置對象)。配置開發(fā)人員可添加和配置“共享屬性”,以避免對標(biāo)準(zhǔn)配置對象的修改。換句話說,開發(fā)人員可為所有或一些對象設(shè)定和管理共享屬性,而不是為每個現(xiàn)有目錄(在現(xiàn)有技術(shù)中被稱為“表格”)添加分隔符列?!肮蚕韺傩浴睂ο缶哂心承╊A(yù)定義的性質(zhì),諸如名稱、內(nèi)容(對象或目錄的列表,其中要使用共享屬性)、值、分割數(shù)據(jù)的使用。
元數(shù)據(jù)是描述相關(guān)數(shù)據(jù)布局及其與數(shù)據(jù)庫的交互的配置對象。
會話參數(shù)是共享配置對象。某個當(dāng)前值被設(shè)定并存儲在當(dāng)前的1c:企業(yè)會話中。例如,會話參數(shù)可用來限制對入門級的數(shù)據(jù)的訪問。
技術(shù)成果通過將如下所述的本發(fā)明的優(yōu)點組合起來實現(xiàn)。在本發(fā)明的第一實施方式中,對存儲在單個數(shù)據(jù)庫中的信息對象進(jìn)行分割的自動管理的方法包括:初步創(chuàng)建至少一個元數(shù)據(jù)對象,“共享屬性”,該元數(shù)據(jù)對象用作分隔符并存儲對至少一個分割信息對象的引用以及該分隔符的值的源;設(shè)定定義如何在至少一個分割信息對象中使用它的“共享屬性”參數(shù);設(shè)定名為“會話參數(shù)”的元數(shù)據(jù)對象,名為“會話參數(shù)”的元數(shù)據(jù)對象存儲需要被授權(quán)訪問各種分割信息對象的租戶和/或租戶組的id,并且還存儲當(dāng)前的分隔符值;識別特定的租戶和/或租戶組,并在數(shù)據(jù)庫會話開始時定義每個分隔符元數(shù)據(jù)對象的當(dāng)前值;向每個租戶和/或租戶組分配隔離的數(shù)據(jù)區(qū)域,所述區(qū)域包含具有添加的“共享屬性”的元數(shù)據(jù)對象;當(dāng)將數(shù)據(jù)寫入添加了“共享屬性”元數(shù)據(jù)對象的分割信息對象時,將“共享屬性”值寫入對應(yīng)的列中;生成查詢以便從分配給具體“租戶”和/或租戶組的數(shù)據(jù)區(qū)域獲得數(shù)據(jù)。
在本發(fā)明的具體實施方式的情況下,如果相對于“共享屬性”參數(shù)的“自動使用”性質(zhì)被設(shè)為“使用”,則創(chuàng)建的“共享屬性”自動添加到所有現(xiàn)有的配置對象以及所有新創(chuàng)建的配置對象。如果相對于“共享屬性”參數(shù)的“自動使用”性質(zhì)被設(shè)為“不使用”,則屬性不自動添加到配置對象;使用分隔符的“內(nèi)容”性質(zhì)選擇需要添加分隔符的對象。
在本發(fā)明的第二實施方式中,對存儲在單個數(shù)據(jù)庫中的信息對象進(jìn)行分割的自動管理的方法包括:初步創(chuàng)建要被用作分隔符的至少兩個“共享屬性”元數(shù)據(jù)對象,每個對象存儲對至少一個分割信息元數(shù)據(jù)對象的引用以及分隔符的值的源;包括對包含條件分割標(biāo)志“真”或“假”的可分割常量的引用,該可分割常量是在引用分割信息對象的分隔符中的另一個分隔符本身的一部分;設(shè)定名為“會話參數(shù)”的元數(shù)據(jù)對象,名為“會話參數(shù)”的元數(shù)據(jù)對象存儲需要訪問各種分割信息對象的租戶和/或租戶組的id并且還存儲當(dāng)前的分隔符值;一旦數(shù)據(jù)庫會話開始,識別特定的租戶和/或租戶組,從而定義每個分隔符的值;向每個租戶和/或租戶組分配隔離數(shù)據(jù)庫,所述數(shù)據(jù)庫包含元數(shù)據(jù)對象并且用于通過由“共享屬性”值和條件分割標(biāo)志值進(jìn)行過濾,來向每個租戶和/或租戶組分配數(shù)據(jù)區(qū)域;當(dāng)將數(shù)據(jù)寫入分隔符引用的分割信息對象時,將分隔符值寫入對應(yīng)的分隔符列中;生成查詢以便從分配給具體租戶和/或租戶組的數(shù)據(jù)區(qū)域獲得數(shù)據(jù)。
在本發(fā)明的具體實施方式的情況下,除了分割信息對象之外,數(shù)據(jù)庫還包含至少一個共享對象,不管會話參數(shù)和條件分割標(biāo)志值如何,該共享對象可以由所有用戶訪問以至少用于讀取操作。除了其內(nèi)容和值,“共享屬性”對象還包含分割數(shù)據(jù)是否可以在共享模式下使用的指示,該共享模式可以具有兩個值“真”或“假”中的至少一個,并且當(dāng)數(shù)據(jù)庫會話開始時,識別租戶和/或租戶組,并且設(shè)定當(dāng)前會話參數(shù)。如果共享模式被設(shè)為“真”并且這些用戶調(diào)用數(shù)據(jù)庫中的信息對象,則忽略當(dāng)前會話參數(shù)并且授權(quán)訪問分割信息對象中的取決于程序控制的一組分隔符值的隨機的一組條目,以至少用于讀取操作。
數(shù)據(jù)分割的管理必須靈活,以為相同的應(yīng)用解決方案提供啟用或禁用數(shù)據(jù),例如以確保其可以在本地(“桌面”)模式下工作,并且可以在多個訂戶訪問相同的網(wǎng)絡(luò)服務(wù)(“云分割”)的模式下工作,而對應(yīng)用解決方案本身的架構(gòu)沒有顯著修改。此外,需要啟用和禁用分割在(諸如表格)的存儲器中的特定對象,以便部分地隔離數(shù)據(jù)并使其對單個訂閱租戶可用,而其他數(shù)據(jù)可由所有或一些租戶共享。
數(shù)據(jù)分割的原理是基于新的配置對象,“共享屬性”。
共享屬性操作的模式使用數(shù)據(jù)分割性質(zhì)進(jìn)行設(shè)定。這個配置對象有兩種模式:
1.如果“數(shù)據(jù)分割”性質(zhì)被設(shè)為“不使用”,則所創(chuàng)建的配置對象僅用作包括在多個(全部)配置對象中的屬性。
2.如果“數(shù)據(jù)分割”性質(zhì)被設(shè)為“分割”,則共享屬性用作數(shù)據(jù)分隔符。
這種方法提供了在信息庫中存儲的數(shù)據(jù)分割的管理和應(yīng)用解決方案操作的管理。
所要求保護(hù)的發(fā)明的第一實施方式表示使用至少一個分隔符進(jìn)行分割的相對簡單的方法。
在第二實施方式中,描述了使用兩個或更多個分隔符的更復(fù)雜的數(shù)據(jù)分割的方法。這種方法的優(yōu)點在于其能夠使用條件數(shù)據(jù)分割來管理數(shù)據(jù)分割。
以分割方法為特征的分割機制提供了部分和完整的數(shù)據(jù)分割。例如,一些數(shù)據(jù)可由所有組織(例如,銀行目錄)共享,而諸如業(yè)務(wù)或財務(wù)數(shù)據(jù)的其他數(shù)據(jù)是租戶特定的并且僅為特定組織顯示和可用。
這種方法大大簡化了當(dāng)單個應(yīng)用解決方案用于多個組織中的記錄保存時的應(yīng)用解決方案情況的管理和更新。
分割方法的第一實施方式包括創(chuàng)建用作分隔符的單個共享屬性元數(shù)據(jù)對象。分隔符存儲對一個或多個分割信息對象的引用。還指示了分隔符的值的源。為分隔符指定了定義如何在一個或多個分割元數(shù)據(jù)對象中使用分隔符的參數(shù)。設(shè)定名為“會話參數(shù)”的元數(shù)據(jù)對象。名為“會話參數(shù)”的元數(shù)據(jù)對象存儲需要訪問各種分割信息對象的租戶和租戶組的id。它還存儲當(dāng)前的分隔符值。當(dāng)數(shù)據(jù)庫會話開始時,識別特定的租戶和/或租戶組,并且定義每個分隔符元數(shù)據(jù)對象的當(dāng)前值。該方法還包括向每個租戶和/或租戶組分配包含具有添加的“共享屬性”的元數(shù)據(jù)對象的隔離的數(shù)據(jù)區(qū)域。此外,當(dāng)信息被寫入具有共享屬性的數(shù)據(jù)庫中的分割信息對象中時,共享屬性的值被寫入對應(yīng)的列中。因此,生成查詢以便從分配給具體“租戶”和/或租戶組的數(shù)據(jù)區(qū)域獲得數(shù)據(jù)。
如果創(chuàng)建的共享屬性需要自動添加到所有現(xiàn)有的和所有新創(chuàng)建的配置對象中,則將共享屬性參數(shù)中的“自動使用”性質(zhì)設(shè)為“使用”。然而,如果“自動使用”性質(zhì)被設(shè)為“不使用”,則屬性不自動添加到配置對象;使用分隔符的“內(nèi)容”性質(zhì)來選擇需要添加分隔符的對象。
在分割方法(兩個或更多個分隔符)的另一實施方式中,還創(chuàng)建共享屬性元數(shù)據(jù)對象并且該共享屬性元數(shù)據(jù)對象用作分隔符。不同于第一實施方式中,在這個實施方式中,創(chuàng)建至少兩個共享屬性元數(shù)據(jù)對象。假設(shè)分隔符應(yīng)包括對常量以及來自由該分隔符引用的數(shù)據(jù)庫的分割信息對象的引用。包含條件分割標(biāo)志“真”或“假”的常量,是另一分隔符的一部分并且也被分割。類似于第一實施方式,設(shè)定名為“會話參數(shù)”的元數(shù)據(jù)對象。當(dāng)租戶被識別并且會話開始時,包含元數(shù)據(jù)對象的隔離數(shù)據(jù)庫被分配并且被用于通過由“共享屬性”值和條件分割標(biāo)志值過濾來為每個租戶和/或租戶組分配數(shù)據(jù)區(qū)域。類似于第一實施方式,這個實施方式還包括當(dāng)將信息寫入數(shù)據(jù)庫中的信息對象中時將分隔符值寫入對應(yīng)的分隔符列中,并且生成查詢。
此外,數(shù)據(jù)庫包含分割信息對象以及共享對象,其不管會話參數(shù)和條件分割標(biāo)志值如何,該共享對象可由所有用戶訪問以至少用于讀取操作。
除了其內(nèi)容和值之外,“共享屬性”還包含分割數(shù)據(jù)是否可以在共享模式下使用的指示。該模式可具有兩個值:“真”或“假”中的至少一個。當(dāng)數(shù)據(jù)庫會話開始時,識別特定的租戶和/或租戶組,即設(shè)定當(dāng)前的會話參數(shù)。
具體實施方式
在本發(fā)明的第一實施方式中,“數(shù)據(jù)分割”性質(zhì)被設(shè)為“不使用”。
讓我們考慮這個實施方式可以如何在1c軟件中使用。
在軟件啟動之前,默認(rèn)在設(shè)計器中創(chuàng)建至少一個分隔符。該分隔符用于自動將共享信息庫自動分割成單獨的隔離信息庫,每個隔離信息庫由其自身的管理員管理。
例如,共享信息庫可能包括多個信息庫,每個信息庫包含特定組織的所有文檔。如果組織分隔符在設(shè)計器中用作標(biāo)準(zhǔn)分隔符,則共享信息庫被分割成多個信息庫,信息庫中的每個信息庫是隔離的并且在其自身配置下操作,而不能訪問來自其他隔離數(shù)據(jù)庫的文檔。
然后創(chuàng)建“共享屬性”元數(shù)據(jù)對象。例如,您可以通過選擇共享——共享屬性——在配置窗口中添加新對象來完成。
接下來,指定個共享屬性的性質(zhì)。
a)在默認(rèn)性質(zhì)中指定共享屬性的名稱。
b)在使用性質(zhì)中:
使用配置編輯窗口中顯示的下拉菜單(即配置對象的列表)來指定共享屬性的內(nèi)容(內(nèi)容性質(zhì)),配置對象的列表中編譯了將要添加的共享屬性。
用于編輯共享屬性內(nèi)容的窗口被分割為兩部分,每個部分包含有關(guān)共享屬性是否應(yīng)該應(yīng)用于具體對象的信息(“使用列”):
-上部分列出可以包括在共享屬性內(nèi)容中的所有配置對象;
-下部分列出具有不同于由共享屬性的自動使用性質(zhì)定義的默認(rèn)設(shè)定的設(shè)定的對象。
如果該性質(zhì)被設(shè)為“使用”,則窗口的下部分列出不包括在共享屬性內(nèi)容中的對象。
如果該性質(zhì)被設(shè)為“不使用”,則窗口的下部分列出包括在共享屬性內(nèi)容中的對象。
配置對象可以在窗口的上部分或下部分中編輯。編輯的配置對象將根據(jù)使用列中的值而在窗口的部分之間移動。
對于每個配置對象,使用列可被設(shè)為以下三個值之一:
1.自動:將配置對象分配給共享屬性取決于共享屬性的自動使用性質(zhì)的值:
-使用:配置對象包括在共享屬性內(nèi)容中;
-不使用:配置對象不包括在共享屬性內(nèi)容中。
2.使用:無論自動使用性質(zhì)值如何,配置對象都包括在共享屬性內(nèi)容中。
3.不使用:無論自動使用性質(zhì)值如何,配置對象都不包括在共享屬性內(nèi)容中。
以下配置對象可以被包括在共享屬性內(nèi)容中:目錄、文檔、特征類型的圖表、賬戶的圖表、計算類型的圖表、業(yè)務(wù)流程、任務(wù)、信息寄存器、累積寄存器、會計登記、計算寄存器以及交換計劃。
c)然后,配置窗口中的下拉菜單用于選擇如何與內(nèi)容性質(zhì)中列出的對象關(guān)聯(lián)地使用共享屬性(自動使用性質(zhì))。
如果自動使用性質(zhì)被設(shè)為“使用”,則創(chuàng)建的共享屬性自動添加到所有現(xiàn)有的配置對象(如果對于這些對象啟用了使用共享屬性的話)和所有新創(chuàng)建的配置對象。
如果“自動使用”性質(zhì)被設(shè)為“不使用”,則該屬性將不自動添加到配置對象;使用“內(nèi)容”性質(zhì)來選擇需要添加共享屬性的對象。
如果共享屬性是自動使用的,則也使用該性質(zhì),但是還有一些不應(yīng)添加共享屬性的對象。
然后指定名為“會話參數(shù)”的元數(shù)據(jù)對象。名為“會話參數(shù)”的元數(shù)據(jù)對象存儲需要訪問各種分割信息對象的實體(租戶)和/或?qū)嶓w組(租戶組)的id。
因此,當(dāng)系統(tǒng)啟動時,初始化設(shè)定會話參數(shù)值。這些值基于啟動命令行或為信息庫用戶指定的值的選項來存儲使用分隔符的指示和分隔符的值。
然后系統(tǒng)分析輸入的數(shù)據(jù),具體地:
-識別特定的租戶和/或租戶組,或者另外設(shè)定當(dāng)前會話參數(shù)(例如基于機器id),從而為每個元數(shù)據(jù)對象定義一個值;
-識別要用于分割共享信息庫的特定的分隔符值(例如,如果分隔符被設(shè)為組織,則系統(tǒng)將共享數(shù)據(jù)庫分割為由組織隔離的數(shù)據(jù)庫);
-識別是否設(shè)定了共享屬性,如果是,則確定該共享屬性需要被添加至哪個配置對象。
當(dāng)設(shè)定了所有的參數(shù)時,共享信息庫被分割成多個隔離的信息庫,在這些信息庫中,創(chuàng)建的共享數(shù)據(jù)基于指定的參數(shù)被添加到由管理員使用的配置對象。
如果共享屬性分割被有條件地禁用:
1.當(dāng)讀取和寫入數(shù)據(jù)時,忽略定義分隔符值和使用的會話參數(shù)的當(dāng)前值。
相反,使用以下值。
使用屬性——真(使用默認(rèn)分隔符);
分隔符值——分隔符類型的默認(rèn)值。
2.當(dāng)讀取和寫入信息庫用戶時,忽略定義分隔符值和使用的會話參數(shù)的當(dāng)前值。
相反,使用以下值。
使用屬性——假(不使用分隔符)。
分隔符值——未使用。
在本發(fā)明的第二實施方式中,“數(shù)據(jù)分割”性質(zhì)被設(shè)為“分割”。
1.在啟動之前,在設(shè)計器中創(chuàng)建至少兩個分隔符。
-將多個分隔符中的至少一個設(shè)定為標(biāo)準(zhǔn)(主)分隔符,并且該標(biāo)準(zhǔn)(主)分隔符默認(rèn)用于自動將共享信息庫分割為單獨的隔離數(shù)據(jù)庫,每個隔離數(shù)據(jù)庫由其自身的管理員管理。
例如,共享信息庫可能包括多個信息庫,每個信息庫包含特定組織的所有文檔。如果在設(shè)計器中使用組織分隔符作為標(biāo)準(zhǔn)分隔符,則共享信息庫被分割為多個信息庫,信息庫中的每個信息庫是隔離的并且在其自身數(shù)據(jù)區(qū)域中操作,而不能訪問來自其他隔離數(shù)據(jù)庫的文檔。
-另一分隔符表示新創(chuàng)建的共享屬性配置對象(從屬分隔符),例如,其可以通過選擇共享——共享屬性——在配置窗口中添加新對象來創(chuàng)建。
2.然后,如上所示,設(shè)定共享屬性性質(zhì),諸如其名稱、使用和內(nèi)容。
3.然后使用配置窗口中的下拉菜單,以便相對于內(nèi)容性質(zhì)中列出的對象來選擇共享屬性分割參數(shù)(數(shù)據(jù)分割性質(zhì))。
在這個實施方式中,數(shù)據(jù)分割性質(zhì)被設(shè)為分割。
用作分隔符的共享屬性具有額外的性質(zhì),該性質(zhì)影響系統(tǒng)的行為并且修改包括在分隔符內(nèi)容中的配置對象的行為。
4.然后使用配置窗口中的下拉菜單,以便選擇如何相對于分隔符內(nèi)容中包括的對象使用分隔符(分割數(shù)據(jù)使用性質(zhì))。
如果分割數(shù)據(jù)使用性質(zhì)被設(shè)為“獨立”,則如果當(dāng)前信息庫會話不使用分隔符,就不允許調(diào)用分割對象。在這種情況下,在對象模型、查詢語言、xml和xdto格式中轉(zhuǎn)儲以及數(shù)據(jù)訪問限制中,分隔符也不可用。當(dāng)寫入分割數(shù)據(jù)時,系統(tǒng)用當(dāng)前會話中設(shè)定的值來自動填充共享屬性值。
當(dāng)應(yīng)用解決方案僅使用來自單個數(shù)據(jù)區(qū)域的數(shù)據(jù)時,可以使用這個模式。
如果分割數(shù)據(jù)使用性質(zhì)被設(shè)為“獨立和共享”,則可以使用或忽略分隔符。在這種模式下,由所使用的分隔符的值定義的數(shù)據(jù)區(qū)域是可用的。在這種情況下,分隔符在對象模型、查詢語言、xml和xdto格式中轉(zhuǎn)儲以及數(shù)據(jù)訪問限制中也是可用的。
如果會話不使用分隔符中的包括某個對象的一些分隔符,則使用該對象的工作變得低效。
當(dāng)應(yīng)用解決方案主要使用來自單個數(shù)據(jù)區(qū)域的數(shù)據(jù)時(例如在輸入文檔時),使用這個模式,而在某些模式下,它可能使用來自多個或所有區(qū)域的數(shù)據(jù),例如,用于鞏固的報告。
5.然后使用配置窗口中的下拉菜單,以便選擇存儲當(dāng)前會話中設(shè)定的分隔符值的會話參數(shù)(數(shù)據(jù)分割值性質(zhì))。會話參數(shù)類型應(yīng)該完全匹配分隔符類型。
6.然后使用配置窗口中的下拉菜單,以便選擇如何相對于當(dāng)前會話中的配置對象使用共享分隔符(數(shù)據(jù)分割使用性質(zhì))。
使用共享屬性分隔符管理是基于布爾或常量類型:如果指定的會話參數(shù)被設(shè)為“真”,則在該會話中使用(從屬)分隔符。
7.然后使用配置窗口中的下拉菜單以選擇條件分割參數(shù)。
當(dāng)應(yīng)用解決方案要用在分割和非分割模式下時,使用條件分割。
例如,可以脫機使用應(yīng)用解決方案(在這種情況下,不使用分隔符,盡管它們包含在解決方案中),或者應(yīng)用解決方案可用于互不相關(guān)(并且在信息庫中具有獨立的數(shù)據(jù)組)的多個訂戶。
這種行為方式可以使用條件分割來實現(xiàn):如果解決方案是脫機,則禁用分割;在分割模式下,啟用分割。
條件分割運行如下:
-可以為分隔符(或分隔符內(nèi)容中包括的對象)設(shè)定存儲分隔符狀態(tài)的對象。
-改變該對象的值,可以為所有對象(如果為分隔符設(shè)定條件分割)或所選對象(如果為分隔符內(nèi)容中包括的對象設(shè)定條件分割)啟用或禁用使用該分隔符的分割。
-如果分隔符被有條件地禁用,則使用該分隔符類型的默認(rèn)值。
作為下一步,指定名為“會話參數(shù)”的元數(shù)據(jù)對象。名為“會話參數(shù)”的元數(shù)據(jù)對象存儲需要訪問各種信息對象的實體(租戶)和/或?qū)嶓w組(租戶組)的id。
因此,當(dāng)系統(tǒng)啟動時,初始化設(shè)定會話參數(shù)值。這些值基于啟動命令行或為信息庫用戶指定的值的選項來存儲使用分隔符的指示和分隔符的當(dāng)前值。
然后系統(tǒng)分析輸入的數(shù)據(jù),具體地:
-識別特定的租戶和/或租戶組,或者另外設(shè)定當(dāng)前會話參數(shù)(例如基于機器id),從而為每個分隔符元數(shù)據(jù)對象定義當(dāng)前值;
-識別要用于分割共享信息庫的指定的當(dāng)前分隔符值(例如,如果分隔符被設(shè)為組織,則系統(tǒng)將共享數(shù)據(jù)庫分割為由組織隔離的數(shù)據(jù)庫);
-識別是否設(shè)定了共享屬性;
-識別共享屬性使用模式(在這個實施方式中共享屬性用作分隔符);
-識別需要由共享屬性分割的配置對象;
-識別共享屬性的分割模式。
當(dāng)設(shè)定了所有的參數(shù)時,共享信息庫被分割成多個隔離數(shù)據(jù)庫,在每個隔離數(shù)據(jù)庫內(nèi),配置對象被共享屬性分割(過濾)并且基于指定的參數(shù)組合在新的數(shù)據(jù)庫中。
實例
實例1.使用共享屬性性質(zhì)中設(shè)定的常量進(jìn)行的條件分割。
可以使用不由屬性分割的布爾類型常量(“真”或“假”)來完全禁用分隔符。
配置包含商品目錄,并且數(shù)字型公司共享屬性包括在元數(shù)據(jù)中。由splitbycompany常量管理的條件分割用于公司共享屬性。
如果splitbycompany=假,則表示不使用分隔符(分割被禁用),反之亦然。
如果分割被禁用,則商品目錄的可用性將取決于分割數(shù)據(jù)使用性質(zhì)。
如果后者被設(shè)為“獨立”,則任何租戶(公司)都將不被授權(quán)訪問商品目錄中的條目。
如果共享屬性的性質(zhì)被設(shè)為“獨立和共享”,則所有租戶將可以訪問商品目錄中的所有條目。
實例2.對于對象(在內(nèi)容性質(zhì)中)設(shè)定的條件分割
可以為分隔符的內(nèi)容中包括的每個配置對象設(shè)定條件分割。在這種情況下,只有對于已經(jīng)建立條件分割的對象,分割才是禁用的。
使用常量的條件數(shù)據(jù)分割的實施方式。
假設(shè)開發(fā)人員以客戶和存貨會計為主要目標(biāo)創(chuàng)作了應(yīng)用解決方案。其中,應(yīng)用解決方案包含兩個數(shù)據(jù)存儲實體:商品目錄和承包商目錄。
該解決方案已經(jīng)為本地“桌面”模式做好了準(zhǔn)備;然而,現(xiàn)在需要適配至云網(wǎng)絡(luò)服務(wù)模式。預(yù)期至少兩個訂戶將被授權(quán)在線訪問該解決方案,并且該訂戶中的每個訂戶將代表其附屬結(jié)構(gòu)中的至少兩個來保留會計記錄。
假設(shè)有兩個訂戶,每個訂戶都代表多個附屬公司而保留會計記錄。訂戶的任意列表和它們對應(yīng)的附屬公司表示如下。
訂戶a
-公司1,
-公司2。
訂戶b
-公司3,
-公司4,
-公司5。
所有組織的數(shù)據(jù)都存儲在兩個目錄:承包商和商品中的單個信息庫中。然而,在最普遍的情況下,某個組織的用戶必須只能訪問這個特定組織的記錄。
進(jìn)一步假設(shè)訂戶a想要組織1和組織2,因為它們附屬于相同的所有者并由其管理,以訪問整個商品目錄。因此,組織3、4和5必須在它們各自的數(shù)據(jù)區(qū)域內(nèi)完全隔離,而組織1和2以及稍后要注冊并由訂戶a組控制的任何其他組織必須共享對商品目錄的訪問,并且能夠查看與訂戶a的商品相關(guān)的所有記錄。同時,承包商目錄的數(shù)據(jù)區(qū)域仍然由組織嚴(yán)格地分開,而無論他們屬于哪一個訂戶。
分隔符包括多個目錄;其中的兩個:承包商和商品被分割。在后一個目錄中,根據(jù)分割商品常量(“真”或“假”)的當(dāng)前值進(jìn)一步設(shè)定條件分割,在這種情況下,分割商品常量由訂戶分割,即其值對于每個訂戶是不同的。通過對于用戶a將該常量設(shè)定為“真”并且對于訂戶b設(shè)定為“假”,來實現(xiàn)期望的效果。
本發(fā)明獨立權(quán)利要求中所列舉的優(yōu)點的組合足以實現(xiàn)要求保護(hù)的技術(shù)成果。
作者認(rèn)為,要求保護(hù)的解決方案符合發(fā)明專利性的所有標(biāo)準(zhǔn)。