在取得與客戶X相關(guān)的所有數(shù)據(jù)。在另一個(gè)示例中,請(qǐng)求可規(guī)定用戶正在取得與客戶X的SLA相關(guān)的所有數(shù)據(jù)。
[0049]如上所述,方法(400)包括:基于該請(qǐng)求和管理員定義的過濾器,通過API過濾(403)數(shù)據(jù)庫中的數(shù)據(jù),以創(chuàng)建過濾的數(shù)據(jù)。在一個(gè)示例中,API遵守源自基本類的規(guī)則(例如具有基本管理器的API),以促使安全引擎能夠應(yīng)用系統(tǒng)過濾器。由于安全引擎實(shí)現(xiàn)在基本類中,容易支持遵守規(guī)則的所有公共API的安全引擎。在一個(gè)示例中,具有基本管理器的API為應(yīng)用提供公共服務(wù),并且將公共服務(wù)的執(zhí)行授權(quán)給DAO。DAO執(zhí)行請(qǐng)求并且從持久層返回過濾的數(shù)據(jù)(例如,實(shí)體bean)。此外,結(jié)束DAO執(zhí)行之前,公共服務(wù)可調(diào)用幾個(gè)DAO。
[0050]此外,安全引擎可包括安全過濾器。安全過濾器集成在API中作為服務(wù)群。在一個(gè)示例中,每個(gè)服務(wù)群包括管理器。例如,兼容管理器負(fù)責(zé)狀態(tài)以及所有操作信息。存儲(chǔ)庫管理器負(fù)責(zé)SLA模型。
[0051]在一個(gè)示例中,基于該請(qǐng)求和管理員過濾器,通過API過濾(403)數(shù)據(jù)庫中的數(shù)據(jù),以創(chuàng)建過濾的數(shù)據(jù)包括:使管理員定義的過濾器能夠限定用戶可用的數(shù)據(jù),并且使用戶定義的過濾器能夠進(jìn)一步過濾數(shù)據(jù)庫中的數(shù)據(jù)。在一個(gè)示例中,使能的系統(tǒng)過濾器是容易辨認(rèn)的。例如,用DAO執(zhí)行請(qǐng)求之前,請(qǐng)求可用運(yùn)營商的選擇的請(qǐng)求將使能運(yùn)營商過濾器。
[0052]圖5是根據(jù)本文描述的原理的一個(gè)示例,用于過濾數(shù)據(jù)庫中的數(shù)據(jù)的方法的示例流程圖。在一個(gè)示例中,方法(500)包括:基于用戶的標(biāo)準(zhǔn),在持久層獲取(501)管理員定義的過濾器,將用戶的登錄配置文件與管理員定義的過濾器關(guān)聯(lián)(502),接收(503)來自用戶的從數(shù)據(jù)庫獲取數(shù)據(jù)的請(qǐng)求,基于該請(qǐng)求和管理員定義的過濾器,通過API過濾(504)數(shù)據(jù)庫中的數(shù)據(jù),以創(chuàng)建過濾的數(shù)據(jù),從數(shù)據(jù)庫取得(505)過濾的數(shù)據(jù),以及在從數(shù)據(jù)庫取得過濾的數(shù)據(jù)之后,禁用(506)與用戶關(guān)聯(lián)的系統(tǒng)過濾器、管理員定義的過濾器或其組合。
[0053]如上所述,方法(500)包括:將用戶的登錄配置文件與管理員定義的過濾器關(guān)聯(lián)(502)。為了基于管理員定義的過濾器過濾數(shù)據(jù)庫中的數(shù)據(jù),將每個(gè)管理員定義的過濾器與用戶關(guān)聯(lián)。例如,利用登錄配置文件。在一個(gè)示例中,用戶X可具有例如用戶X登錄的登錄配置文件。在這個(gè)示例中,將用戶X登錄與用戶X的管理員定義的過濾器關(guān)聯(lián)。結(jié)果,在用戶X登錄到過濾系統(tǒng)時(shí),使能與用戶X關(guān)聯(lián)的所有管理員定義的過濾器。類似地,可將用戶的登錄配置文件與用戶定義的過濾器關(guān)聯(lián)。
[0054]如上所述,方法(500)包括:從數(shù)據(jù)庫取得(505)過濾的數(shù)據(jù)。如上所述,應(yīng)用Π創(chuàng)建或重用API管理器。在一個(gè)示例中,API管理器是用于描述負(fù)責(zé)一組服務(wù)的具體的API管理器的通用術(shù)語。例如,兼容管理器用于請(qǐng)求一組服務(wù)(例如,與SLA兼容相關(guān)的所有服務(wù)),以詳述SLA目標(biāo)的當(dāng)前值和狀態(tài)。
[0055]此外,API管理器具有強(qiáng)制init()函數(shù),用于調(diào)用用戶的登錄配置文件。在一個(gè)示例中,API管理器從與支持的所有過濾器類型關(guān)聯(lián)的數(shù)據(jù)庫加載系統(tǒng)過濾器。例如,一個(gè)客戶選擇系統(tǒng)過濾器、一個(gè)服務(wù)提供選擇系統(tǒng)過濾器以及一個(gè)SLA選擇系統(tǒng)過濾器。
[0056]此外,在應(yīng)用調(diào)用服務(wù)(例如,getSlaStatusesO)以取得當(dāng)前參考周期的有效SLA的狀態(tài)列表時(shí),從數(shù)據(jù)庫加載與SLA關(guān)聯(lián)的過濾器,以取得所有特性及其(以及過濾器)與有效SLA關(guān)聯(lián)的xml內(nèi)容。解析XML內(nèi)容并將XML內(nèi)容轉(zhuǎn)換成過濾器java對(duì)象。在一個(gè)示例中,利用負(fù)責(zé)持久層的過濾器處理器這樣做。此外,過濾器對(duì)象緩存在內(nèi)部列表中,以避免同樣的用戶會(huì)話中的另一次解析。然后,API管理器使用過濾器生成器使能正確的持久層過濾器。
[0057]此外,從數(shù)據(jù)庫取得(505)過濾的數(shù)據(jù)包括:映射用戶過濾器、系統(tǒng)過濾器或其組合的標(biāo)準(zhǔn)可用的字段或具體標(biāo)識(shí)符的列表。例如,與客戶表可用的所有其他字段一樣,具體的標(biāo)識(shí)符(例如,CUSTOMER_NAME)將為客戶系統(tǒng)過濾器的一部分。
[0058]在另一個(gè)示例中,內(nèi)部映射用于在取得過濾的數(shù)據(jù)時(shí),在實(shí)體bean層面識(shí)別正確的過濾器名字以使能。在一個(gè)示例中,由過濾器生成器用運(yùn)算符完成過濾器名字。此外,與過濾器名字關(guān)聯(lián)的值可用作參數(shù)。例如,依賴于所用的運(yùn)算符的零個(gè)、一個(gè)、或兩個(gè)參數(shù)。
[0059]過濾器生成器執(zhí)行之后,使能系統(tǒng)過濾器以及用戶過濾器,并且API管理器調(diào)用關(guān)聯(lián)的DAO以執(zhí)行請(qǐng)求以及取得與系統(tǒng)過濾器匹配的過濾的數(shù)據(jù)。此外,通過API管理器取得所有數(shù)據(jù)。結(jié)果,外部請(qǐng)求不被允許。
[0060]如上所述,方法(500)包括:在從數(shù)據(jù)庫取得過濾的數(shù)據(jù)之后禁用與用戶關(guān)聯(lián)的系統(tǒng)過濾器、管理員定義的過濾器或其組合。執(zhí)行請(qǐng)求之后,API管理器禁用所用的所有過濾器,以恢復(fù)巢服務(wù)的過濾器環(huán)境。例如,如果使能過濾器X、過濾器Y和過濾器Z以從數(shù)據(jù)庫取得過濾的數(shù)據(jù),則在從數(shù)據(jù)庫取得過濾的數(shù)據(jù)之后,禁用過濾器X、過濾器Y和過濾器Zo
[0061]圖6是根據(jù)本文描述的原理的一個(gè)示例的過濾系統(tǒng)的示例圖。過濾系統(tǒng)(600)包括獲取引擎(602)、接收引擎(604)以及過濾引擎(606)。在這個(gè)示例中,過濾系統(tǒng)(600)還包括關(guān)聯(lián)引擎(608)、取得引擎(610)以及禁用引擎(612)0引擎(602、604、606、608、610、612)指的是硬件和執(zhí)行指定功能的程序指令的組合。每個(gè)引擎出02、604、606、608、610、612)可包括處理器及存儲(chǔ)器。程序指令存儲(chǔ)在存儲(chǔ)器中,并且引起處理器執(zhí)行引擎的指定功能。
[0062]獲取引擎(602)基于用戶的標(biāo)準(zhǔn),在持久層獲取管理員定義的過濾器。在一個(gè)示例中,獲取引擎(602)獲取一個(gè)管理員定義的過濾器。在另一個(gè)示例中,獲取引擎(602)獲取數(shù)個(gè)管理員定義的過濾器。此外,在一個(gè)示例中,獲取引擎(602)允許管理員定義用戶過濾器的管理員定義的過濾器。
[0063]接收引擎(604)接收來自用戶的從數(shù)據(jù)庫獲取數(shù)據(jù)的請(qǐng)求。在一個(gè)示例中,接收引擎(604)接收從數(shù)據(jù)庫獲取數(shù)據(jù)的一個(gè)請(qǐng)求。在另一個(gè)示例中,接收引擎(604)接收從數(shù)據(jù)庫獲取數(shù)據(jù)的數(shù)個(gè)請(qǐng)求。
[0064]過濾引擎(606)基于請(qǐng)求和管理員定義的過濾器,通過API過濾數(shù)據(jù)庫中的數(shù)據(jù),以創(chuàng)建過濾的數(shù)據(jù)。在一個(gè)示例中,過濾引擎(606)基于請(qǐng)求和管理員定義的過濾器,通過API過濾一個(gè)數(shù)據(jù)庫中的數(shù)據(jù),以創(chuàng)建過濾的數(shù)據(jù)。在另一個(gè)示例中,過濾引擎(606)基于請(qǐng)求和管理員定義的過濾器,通過API過濾數(shù)個(gè)數(shù)據(jù)庫中的數(shù)據(jù),以創(chuàng)建過濾的數(shù)據(jù)。此夕卜,過濾引擎(606)使管理員定義的過濾器能夠限定用戶可用的數(shù)據(jù)。在另一個(gè)示例中,過濾引擎(606)使用戶定義的過濾器能夠進(jìn)一步過濾數(shù)據(jù)庫中的數(shù)據(jù)。
[0065]關(guān)聯(lián)引擎(608)將用戶的登錄配置文件與管理員定義的過濾器關(guān)聯(lián)。在一個(gè)示例中,關(guān)聯(lián)引擎(608)將用戶的一個(gè)登錄配置文件與管理員定義的過濾器關(guān)聯(lián)。在另一個(gè)示例中,關(guān)聯(lián)引擎(608)將用戶的數(shù)個(gè)登錄配置文件與管理員定義的過濾器關(guān)聯(lián)。
[0066]取得引擎(610)從數(shù)據(jù)庫取得過濾的數(shù)據(jù)。在一個(gè)示例中,取得引擎(610)從一個(gè)數(shù)據(jù)庫取得過濾的數(shù)據(jù)。在另一個(gè)示例中,取得引擎(610)從數(shù)個(gè)數(shù)據(jù)庫取得過濾的數(shù)據(jù)。
[0067]禁用引擎(612)在從數(shù)據(jù)庫取得過濾的數(shù)據(jù)之后,禁用與用戶關(guān)聯(lián)的系統(tǒng)過濾器、管理員定義的過濾器或其組合。在一個(gè)示例中,禁用引擎(612)在從數(shù)據(jù)庫取得過濾的數(shù)據(jù)之后,僅禁用與用戶關(guān)聯(lián)的系統(tǒng)過濾器。在另一個(gè)示例中,禁用引擎(612)在從數(shù)據(jù)庫取得過濾的數(shù)據(jù)之后,僅禁用管理員定義的過濾器。
[0068]圖7是根據(jù)本文描述的原理的一個(gè)示例的過濾系統(tǒng)的示例圖。在這個(gè)示例中,過濾系統(tǒng)(700)包括與存儲(chǔ)資源(704)通信的處理資源(702)。處理資源(702)包括至少一個(gè)處理器以及用于處理程序指令的其他資源。存儲(chǔ)資源(704)通常表示能夠存儲(chǔ)過濾系統(tǒng)(700)使用的數(shù)據(jù)(例如,程