本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種多機(jī)房緩存同步功能的測(cè)試方法及裝置。
背景技術(shù):
多機(jī)房緩存同步,是一種使不同機(jī)房?jī)?nèi)的緩存設(shè)備保存的數(shù)據(jù)保持一致的技術(shù),比如,使機(jī)房1內(nèi)的緩存設(shè)備1保存的數(shù)據(jù),與機(jī)房2~機(jī)房n內(nèi)的各緩存設(shè)備保存的數(shù)據(jù)保持一致。其中,這里所說(shuō)的機(jī)房,可以是指從邏輯上對(duì)一個(gè)機(jī)房設(shè)備進(jìn)行劃分得到的子設(shè)備,也可以是指物理空間上相互獨(dú)立的機(jī)房。
該技術(shù)往往應(yīng)用在這樣的場(chǎng)景中:同一應(yīng)用系統(tǒng)在多個(gè)機(jī)房部署,且各應(yīng)用系統(tǒng)分別連接的緩存設(shè)備中的數(shù)據(jù)需要同步更新。在這樣的場(chǎng)景下,一旦有某應(yīng)用系統(tǒng)確定出需要更新該應(yīng)用系統(tǒng)所在機(jī)房(稱(chēng)本地機(jī)房)的緩存設(shè)備,則該應(yīng)用系統(tǒng)在更新該緩存設(shè)備的同時(shí),會(huì)通過(guò)本地消息代理和其他機(jī)房(稱(chēng)遠(yuǎn)端機(jī)房)中的消息代理,向遠(yuǎn)端機(jī)房中的與該應(yīng)用系統(tǒng)相同的其他應(yīng)用系統(tǒng)發(fā)送命令,使得所述其他應(yīng)用系統(tǒng)更新各自連接的緩存設(shè)備中的數(shù)據(jù),從而保持緩存設(shè)備的數(shù)據(jù)同步。
對(duì)多機(jī)房緩存同步的自動(dòng)化測(cè)試,是指對(duì)被測(cè)試的應(yīng)用系統(tǒng)(簡(jiǎn)稱(chēng)被測(cè)系統(tǒng))的多機(jī)房緩存同步功能進(jìn)行測(cè)試。其中,被測(cè)系統(tǒng)的多機(jī)房緩存同步功能,是指被測(cè)系統(tǒng)使得不同機(jī)房?jī)?nèi)的緩存設(shè)備保存的數(shù)據(jù)保持一致的能力。
現(xiàn)有技術(shù)中,為了實(shí)現(xiàn)對(duì)被測(cè)系統(tǒng)上述功能的測(cè)試,需要測(cè)試設(shè)備觸發(fā)被測(cè)系統(tǒng)向本地機(jī)房中的消息代理發(fā)送緩存設(shè)備更新指令;本地機(jī)房的消息代理會(huì)將該指令轉(zhuǎn)發(fā)給一遠(yuǎn)端機(jī)房的消息代理,以使得該遠(yuǎn)端機(jī)房的應(yīng)用系統(tǒng)(該應(yīng)用系統(tǒng)與被測(cè)系統(tǒng)相同,也可理解為就是被測(cè)系統(tǒng))根據(jù)該指令,通知包括 本地機(jī)房在內(nèi)的不同機(jī)房中的被測(cè)系統(tǒng)更新緩存設(shè)備。
在上述過(guò)程完成后,測(cè)試設(shè)備通過(guò)對(duì)不同機(jī)房中的緩存設(shè)備保存的數(shù)據(jù)進(jìn)行一致性校驗(yàn),可以得出對(duì)于被測(cè)系統(tǒng)的多機(jī)房緩存同步功能的測(cè)試結(jié)果。
現(xiàn)有技術(shù)中的該測(cè)試方法存在的問(wèn)題在于,需要本地機(jī)房和遠(yuǎn)端機(jī)房中的多個(gè)設(shè)備配合完成緩存設(shè)備的數(shù)據(jù)更新,從而耗費(fèi)的處理資源較多。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例提供一種多機(jī)房緩存同步功能的測(cè)試方法,用以利用較少的處理資源實(shí)現(xiàn)對(duì)被測(cè)系統(tǒng)的多機(jī)房緩存同步功能的測(cè)試。
本申請(qǐng)實(shí)施例還提供一種多機(jī)房緩存同步功能的測(cè)試裝置,用以利用較少的處理資源實(shí)現(xiàn)對(duì)被測(cè)系統(tǒng)的多機(jī)房緩存同步功能的測(cè)試。
本申請(qǐng)實(shí)施例采用下述技術(shù)方案:
一種多機(jī)房緩存同步功能的測(cè)試方法,包括:
攔截被測(cè)系統(tǒng)向消息代理發(fā)送的緩存設(shè)備同步指令;
將攔截到的所述指令發(fā)送給至少兩個(gè)緩存設(shè)備,以指示所述至少兩個(gè)緩存設(shè)備進(jìn)行數(shù)據(jù)更新;
根據(jù)所述至少兩個(gè)緩存設(shè)備的數(shù)據(jù)更新結(jié)果,確定對(duì)于所述被測(cè)系統(tǒng)的緩存同步功能的測(cè)試結(jié)果。
一種多機(jī)房緩存同步功能的測(cè)試裝置,包括:
消息攔截器,用于攔截被測(cè)系統(tǒng)向消息代理發(fā)送的緩存設(shè)備同步指令;
消息發(fā)送器,用于將消息攔截器攔截到的所述指令發(fā)送給至少兩個(gè)緩存設(shè)備,以指示所述至少兩個(gè)緩存設(shè)備進(jìn)行數(shù)據(jù)更新;
測(cè)試結(jié)果確定單元,用于根據(jù)所述至少兩個(gè)緩存設(shè)備的數(shù)據(jù)更新結(jié)果,確定對(duì)于所述被測(cè)系統(tǒng)的緩存同步功能的測(cè)試結(jié)果。
本申請(qǐng)實(shí)施例采用的上述至少一個(gè)技術(shù)方案能夠達(dá)到以下有益效果:
由于可以對(duì)被測(cè)系統(tǒng)向消息代理發(fā)送的緩存設(shè)備同步指令進(jìn)行攔截,并將 該指令直接發(fā)送給至少兩個(gè)緩存設(shè)備,以指示所述至少兩個(gè)緩存設(shè)備進(jìn)行數(shù)據(jù)更新,從而無(wú)需被測(cè)系統(tǒng)所在的本地機(jī)房?jī)?nèi)的消息代理、遠(yuǎn)端機(jī)房中的被測(cè)系統(tǒng)和消息代理配合完成緩存設(shè)備的數(shù)據(jù)更新,從而可以利用較少的處理資源,實(shí)現(xiàn)對(duì)被測(cè)系統(tǒng)的多機(jī)房緩存同步功能的測(cè)試。
附圖說(shuō)明
此處所說(shuō)明的附圖用來(lái)提供對(duì)本申請(qǐng)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本申請(qǐng)的示意性實(shí)施例及其說(shuō)明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:
圖1為本申請(qǐng)實(shí)施例1提供的一種多機(jī)房緩存同步功能的測(cè)試方法的實(shí)現(xiàn)流程示意圖;
圖2為現(xiàn)有技術(shù)中一個(gè)典型的多機(jī)房緩存同步架構(gòu)示意圖;
圖3為本申請(qǐng)實(shí)施例2中設(shè)計(jì)的一種測(cè)試模型的結(jié)構(gòu)示意圖;
圖4為本申請(qǐng)實(shí)施例2中測(cè)試用例的運(yùn)行過(guò)程以及多機(jī)房緩存同步校驗(yàn)組件的結(jié)構(gòu)示意圖;
圖5為本申請(qǐng)實(shí)施例2中的配置管理模塊執(zhí)行的操作示意圖;
圖6為本申請(qǐng)實(shí)施例2中的緩存操作組件執(zhí)行的第一種操作示意圖;
圖7為本申請(qǐng)實(shí)施例2中的緩存操作組件執(zhí)行的第二種操作示意圖;
圖8為本申請(qǐng)實(shí)施例2中的緩存操作組件執(zhí)行的第三種操作示意圖;
圖9為本申請(qǐng)實(shí)施例2中的消息攔截器執(zhí)行的操作示意圖;
圖10為本申請(qǐng)實(shí)施例3提供的一種多機(jī)房緩存同步功能的測(cè)試裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本申請(qǐng)的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請(qǐng)具體實(shí)施例及相應(yīng)的附圖對(duì)本申請(qǐng)技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的 實(shí)施例僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
以下結(jié)合附圖,詳細(xì)說(shuō)明本申請(qǐng)各實(shí)施例提供的技術(shù)方案。
實(shí)施例1
考慮到三個(gè)因素:1、針對(duì)多機(jī)房緩存同步過(guò)程的測(cè)試目標(biāo)而言,是為了測(cè)試被測(cè)系統(tǒng)的多機(jī)房緩存同步功能;2、就被測(cè)系統(tǒng)而言,其部署在不同機(jī)房中,即不同機(jī)房中運(yùn)行的是相同的被測(cè)系統(tǒng);3、同步兩個(gè)緩存設(shè)備和同步兩個(gè)以上緩存設(shè)備的實(shí)現(xiàn)邏輯是一樣的。因此,本申請(qǐng)實(shí)施例1中,為了利用較少的處理資源實(shí)現(xiàn)對(duì)被測(cè)系統(tǒng)的多機(jī)房緩存同步功能的測(cè)試,提供了一種多機(jī)房緩存同步功能的測(cè)試方法。
該方法的執(zhí)行主體,可以是自動(dòng)化測(cè)試框架,也可以是自動(dòng)化測(cè)試框架的運(yùn)行設(shè)備,或者是任意的測(cè)試設(shè)備。該方法的流程示意圖如圖1所示,包括下述步驟:
步驟11,攔截被測(cè)系統(tǒng)向消息代理發(fā)送的緩存設(shè)備同步指令;
其中,該緩存設(shè)備同步指令可以是數(shù)據(jù)新增指令,用于指示緩存設(shè)備新增數(shù)據(jù);也可以是數(shù)據(jù)刪除指令,用于指示緩存設(shè)備刪除數(shù)據(jù);還可以是數(shù)據(jù)修改指令,用于指示緩存設(shè)備修改數(shù)據(jù)。
本申請(qǐng)實(shí)施例中,這里所說(shuō)的緩存設(shè)備是指緩沖寄存器,比如可以是高速緩沖存儲(chǔ)器(Cache)。
步驟12,將攔截到的緩存設(shè)備同步指令發(fā)送給至少兩個(gè)緩存設(shè)備(后稱(chēng)所述至少兩個(gè)緩存設(shè)備),以指示所述至少兩個(gè)緩存設(shè)備進(jìn)行數(shù)據(jù)更新;
基于上述因素中的第2個(gè)因素,即:同步兩個(gè)緩存設(shè)備和同步兩個(gè)以上緩存設(shè)備的實(shí)現(xiàn)邏輯是一樣的,本申請(qǐng)實(shí)施例中,可以?xún)H將攔截到的該指令發(fā)送給少量的緩存設(shè)備。其中,這里所說(shuō)的“少量的緩存設(shè)備”,可以是2個(gè)緩存 設(shè)備,也可以是3個(gè)緩存設(shè)備,等等。此外,這里所說(shuō)的“少量的緩存設(shè)備”,往往包含至少兩個(gè)不同機(jī)房的緩存設(shè)備。
需要說(shuō)明的是,本申請(qǐng)實(shí)施例中,也可以將該指令發(fā)送給所有機(jī)房的緩存設(shè)備。由于該指令的發(fā)送無(wú)需本地機(jī)房的消息代理、遠(yuǎn)端機(jī)房的被測(cè)系統(tǒng),以及遠(yuǎn)端機(jī)房的消息代理的配合,因此即便將該指令發(fā)送給所有機(jī)房的緩存設(shè)備,也可以達(dá)到節(jié)省處理資源的目的。
本申請(qǐng)實(shí)施例中,緩存設(shè)備接收到的緩存設(shè)備同步指令若是數(shù)據(jù)新增指令(該指令中包含待更新的數(shù)據(jù)的信息),則根據(jù)該指令在存儲(chǔ)空間中新增數(shù)據(jù);若該指令是數(shù)據(jù)刪除指令(該指令中包含待刪除的數(shù)據(jù)的信息),則根據(jù)該指令在存儲(chǔ)空間中刪除數(shù)據(jù);若該指令是數(shù)據(jù)修改指令(該指令中包含待修改的數(shù)據(jù)的信息),則根據(jù)該指令修改存儲(chǔ)空間中的數(shù)據(jù)。
為了盡量保證所述至少兩個(gè)緩存設(shè)備都能夠根據(jù)緩存設(shè)備同步指令完成數(shù)據(jù)更新,在一種實(shí)施方式中,步驟12的具體實(shí)現(xiàn)方式可以為:循環(huán)執(zhí)行特定操作,直至所述至少兩個(gè)緩存設(shè)備均根據(jù)緩存設(shè)備同步指令完成數(shù)據(jù)更新。
其中,這里所說(shuō)的所述特定操作包括:將攔截到的緩存設(shè)備同步指令發(fā)送給所述至少兩個(gè)緩存設(shè)備,以指示所述至少兩個(gè)緩存設(shè)備進(jìn)行數(shù)據(jù)更新;以及,判斷所述至少兩個(gè)緩存設(shè)備是否均根據(jù)緩存設(shè)備同步指令完成數(shù)據(jù)更新。
步驟13,根據(jù)所述至少兩個(gè)緩存設(shè)備的數(shù)據(jù)更新結(jié)果,確定對(duì)于被測(cè)系統(tǒng)的緩存同步功能的測(cè)試結(jié)果。
所述至少兩個(gè)緩存設(shè)備的數(shù)據(jù)更新結(jié)果,可能會(huì)有下面幾種:
1、均更新失?。?/p>
2、均更新成功,但所述至少兩個(gè)緩存設(shè)備根據(jù)緩存設(shè)備同步指令分別更新后的數(shù)據(jù)不一致。比如當(dāng)所述至少兩個(gè)緩存設(shè)備包括第一存儲(chǔ)設(shè)備和第二存儲(chǔ)設(shè)備時(shí),第一存儲(chǔ)設(shè)備根據(jù)緩存設(shè)備同步指令更新后的數(shù)據(jù)為1/2/3,第二存儲(chǔ)設(shè)備根據(jù)該指令更新后的數(shù)據(jù)也為1/2/0??刹捎脭?shù)據(jù)一致性校驗(yàn)方法,判斷數(shù)據(jù)是否一致。
3、均更新成功,且所述至少兩個(gè)緩存設(shè)備根據(jù)緩存設(shè)備同步指令分別更新后的數(shù)據(jù)一致。比如當(dāng)所述至少兩個(gè)緩存設(shè)備包括第一存儲(chǔ)設(shè)備和第二存儲(chǔ)設(shè)備時(shí),第一存儲(chǔ)設(shè)備根據(jù)緩存設(shè)備同步指令更新后的數(shù)據(jù)為1/2/3,第二存儲(chǔ)設(shè)備根據(jù)該指令更新后的數(shù)據(jù)也為1/2/3??刹捎脭?shù)據(jù)一致性校驗(yàn)方法,判斷數(shù)據(jù)是否一致。
針對(duì)第一種數(shù)據(jù)更新結(jié)果,可以確定被測(cè)系統(tǒng)的緩存同步功能的測(cè)試結(jié)果為“非常差”,該測(cè)試結(jié)果可以量化為一數(shù)值,比如量化為“0”;針對(duì)第二種數(shù)據(jù)更新結(jié)果,可以確定被測(cè)系統(tǒng)的緩存同步功能的測(cè)試結(jié)果為“較差”,該測(cè)試結(jié)果可以量化為一數(shù)值,比如量化為“2”;針對(duì)第三種數(shù)據(jù)更新結(jié)果,可以確定被測(cè)系統(tǒng)的緩存同步功能的測(cè)試結(jié)果為“良好”,該測(cè)試結(jié)果可以量化為一數(shù)值,比如量化為“5”。
根據(jù)所述至少兩個(gè)緩存設(shè)備的數(shù)據(jù)更新結(jié)果,確定對(duì)于被測(cè)系統(tǒng)的緩存同步功能的測(cè)試結(jié)果,與現(xiàn)有技術(shù)中根據(jù)不同緩存設(shè)備的數(shù)據(jù)更新結(jié)果,確定對(duì)于被測(cè)系統(tǒng)的緩存同步功能的測(cè)試結(jié)果的方式類(lèi)似,此處不再贅述。
本申請(qǐng)實(shí)施例中,以自動(dòng)化測(cè)試框架為例,其在調(diào)用測(cè)試用例后,運(yùn)行測(cè)試用例的過(guò)程主要可以包括4個(gè)部分,分別為:初始化、準(zhǔn)備數(shù)據(jù)、調(diào)用被測(cè)系統(tǒng)和校驗(yàn)數(shù)據(jù)。
其中,初始化,是指對(duì)測(cè)試用例的一些狀態(tài)信息進(jìn)行配置,比如配置需要被同步更新的緩存設(shè)備的數(shù)目等;準(zhǔn)備數(shù)據(jù),是指準(zhǔn)備與該測(cè)試用例對(duì)應(yīng)測(cè)試場(chǎng)景相關(guān)的數(shù)據(jù),比如,在需要被同步更新的緩存設(shè)備中保存一些待查詢(xún)的數(shù)據(jù),或者對(duì)需要被同步更新的緩存設(shè)備執(zhí)行清空操作,等等;調(diào)用被測(cè)系統(tǒng),是指調(diào)用并運(yùn)行被測(cè)系統(tǒng);校驗(yàn)數(shù)據(jù),是指對(duì)緩存設(shè)備根據(jù)緩存設(shè)備同步指令同步更新后的數(shù)據(jù)進(jìn)行差異性校驗(yàn),以使得后續(xù)能夠根據(jù)校驗(yàn)結(jié)果確定被測(cè)系統(tǒng)的多機(jī)房緩存同步測(cè)試功能。
本申請(qǐng)實(shí)施例中,在上述“初始化”部分,可以利用配置管理單元,設(shè)置多機(jī)房緩存校驗(yàn)軟件開(kāi)關(guān),并將該開(kāi)關(guān)配置為打開(kāi)狀態(tài)。比如,可以利用標(biāo)識(shí) 位flag()來(lái)設(shè)置該開(kāi)關(guān),flag(0)表示該開(kāi)關(guān)配置為關(guān)閉狀態(tài);flag(1)表示該開(kāi)關(guān)配置為開(kāi)啟狀態(tài)。
在上述“準(zhǔn)備數(shù)據(jù)”部分,可以利用緩存操作單元,實(shí)現(xiàn)根據(jù)被調(diào)用的測(cè)試用例準(zhǔn)備數(shù)據(jù)的目的,執(zhí)行與該目的相匹配的操作。
具體而言,當(dāng)該目的包括清除緩存設(shè)備中的數(shù)據(jù)時(shí),執(zhí)行該操作,包括:清除所述至少兩個(gè)緩存設(shè)備緩存的數(shù)據(jù);
當(dāng)該目的包括先清除緩存設(shè)備中的數(shù)據(jù),再向緩存設(shè)備寫(xiě)入數(shù)據(jù)時(shí),執(zhí)行該操作,包括:清除所述至少兩個(gè)緩存設(shè)備緩存的數(shù)據(jù)后,向所述至少兩個(gè)緩存設(shè)備中分別寫(xiě)入數(shù)據(jù);
當(dāng)該目的包括查詢(xún)并獲取緩存設(shè)備中的數(shù)據(jù)時(shí),執(zhí)行該操作,包括:根據(jù)查詢(xún)關(guān)鍵詞,查詢(xún)并獲取所述至少兩個(gè)緩存設(shè)備緩存的數(shù)據(jù)。
需要說(shuō)明的是,緩存操作單元在實(shí)現(xiàn)根據(jù)被調(diào)用的測(cè)試用例準(zhǔn)備數(shù)據(jù)的目的,執(zhí)行與該目的相匹配的操作前,可以對(duì)多機(jī)房緩存校驗(yàn)軟件開(kāi)關(guān)的狀態(tài)進(jìn)行確認(rèn)。若該開(kāi)關(guān)被配置為打開(kāi)狀態(tài),則緩存操作單元根據(jù)被調(diào)用的測(cè)試用例準(zhǔn)備數(shù)據(jù)的目的,執(zhí)行與該目的匹配的操作。若該開(kāi)關(guān)被配置為關(guān)閉狀態(tài),則緩存操作單元可以通知自動(dòng)化測(cè)試框架終止測(cè)試過(guò)程。
本申請(qǐng)實(shí)施例中,被測(cè)系統(tǒng)向消息代理發(fā)送的指令可能會(huì)有多種類(lèi)型,未必會(huì)是緩存設(shè)備同步指令。因此,本申請(qǐng)實(shí)施例中為了避免對(duì)其他類(lèi)型的指令的攔截,可以先確定被測(cè)系統(tǒng)生成的指令的類(lèi)型。若根據(jù)該類(lèi)型,確定出生成的該指令為用于指示緩存設(shè)備進(jìn)行數(shù)據(jù)更新的指令,則可以在被測(cè)系統(tǒng)向消息代理發(fā)送該指令時(shí),對(duì)該指令進(jìn)行攔截。
在一種實(shí)施方式中,確定被測(cè)系統(tǒng)生成的指令的類(lèi)型的具體實(shí)現(xiàn)方式可以包括:在確認(rèn)出多機(jī)房緩存校驗(yàn)軟件開(kāi)關(guān)被配置為打開(kāi)狀態(tài)時(shí),確定被測(cè)系統(tǒng)生成的指令的類(lèi)型。
若確認(rèn)出多機(jī)房緩存校驗(yàn)軟件開(kāi)關(guān)被配置為關(guān)閉狀態(tài),則可以不再確定被測(cè)系統(tǒng)生成的指令的類(lèi)型,進(jìn)而也可以不用再對(duì)該指令進(jìn)行攔截,而是可以終 止測(cè)試流程。
需要說(shuō)明的是,實(shí)施例1所提供方法的各步驟的執(zhí)行主體均可以是同一設(shè)備,或者,該方法也由不同設(shè)備作為執(zhí)行主體。比如,步驟11和步驟12的執(zhí)行主體可以為設(shè)備1,步驟13的執(zhí)行主體可以為設(shè)備2;又比如,步驟11的執(zhí)行主體可以為設(shè)備1,步驟12和步驟13的執(zhí)行主體可以為設(shè)備2;等等。
采用本申請(qǐng)實(shí)施例1提供的上述方法,由于可以對(duì)被測(cè)系統(tǒng)向消息代理發(fā)送的緩存設(shè)備同步指令進(jìn)行攔截,并將該指令直接發(fā)送給至少兩個(gè)緩存設(shè)備,以指示所述至少兩個(gè)緩存設(shè)備進(jìn)行數(shù)據(jù)更新,從而無(wú)需被測(cè)系統(tǒng)所在的本地機(jī)房?jī)?nèi)的消息代理、遠(yuǎn)端機(jī)房中的被測(cè)系統(tǒng)和消息代理配合完成緩存設(shè)備的數(shù)據(jù)更新,從而可以利用較少的處理資源,實(shí)現(xiàn)對(duì)被測(cè)系統(tǒng)的多機(jī)房緩存同步功能的測(cè)試。
實(shí)施例2
實(shí)施例2基于對(duì)現(xiàn)有技術(shù)中多機(jī)房緩存同步架構(gòu)的介紹,引出對(duì)本申請(qǐng)實(shí)施例提供的緩存同步功能的測(cè)試方法的構(gòu)思過(guò)程的說(shuō)明,進(jìn)而再詳細(xì)說(shuō)明該方法在實(shí)際中的應(yīng)用流程。
現(xiàn)有技術(shù)中,一個(gè)典型的多機(jī)房緩存同步架構(gòu)如圖2所示。圖2中,共有n個(gè)機(jī)房,它們分別是機(jī)房1、機(jī)房2~機(jī)房n。其中,每個(gè)機(jī)房中均有三個(gè)單元,分別為消息代理(即圖中所示的MsgBroker,其為Message broker的簡(jiǎn)稱(chēng))、被測(cè)系統(tǒng)和遠(yuǎn)程高速緩存器(RemoteCache)。其中,這三個(gè)單元可以運(yùn)行在同一設(shè)備上;或者,這三個(gè)單元中至少有兩個(gè)單元分別運(yùn)行在不同設(shè)備上;等等。
這三個(gè)單元中,消息代理,用于在實(shí)現(xiàn)在不同機(jī)房之間傳輸數(shù)據(jù);被測(cè)系統(tǒng),用于根據(jù)接收到的命令,向RemoteCache發(fā)送數(shù)據(jù)同步命令,如發(fā)送數(shù)據(jù)修改命令或新增數(shù)據(jù)命令等;RemoteCache,用于根據(jù)被測(cè)系統(tǒng)發(fā)送的數(shù)據(jù)同步命令,對(duì)RemoteCache自身保存的數(shù)據(jù)進(jìn)行更新。
按照現(xiàn)有技術(shù),若要測(cè)試機(jī)房1中的被測(cè)系統(tǒng)的多機(jī)房緩存同步功能,則 可以采用下述步驟1~步驟6。其中,被測(cè)系統(tǒng)的多機(jī)房緩存同步功能,是指被測(cè)系統(tǒng)有效使得不同機(jī)房?jī)?nèi)的RemoteCache保存的數(shù)據(jù)保持一致的能力。
步驟1:利用請(qǐng)求發(fā)送設(shè)備,將業(yè)務(wù)請(qǐng)求發(fā)送至機(jī)房1中的被測(cè)系統(tǒng);
步驟2:被測(cè)系統(tǒng)在接收到該業(yè)務(wù)請(qǐng)求后,根據(jù)該業(yè)務(wù)請(qǐng)求,向RemoteCache推送“put all”命令,以使得RemoteCache利用該命令中的鍵值對(duì),對(duì)RemoteCache自身緩存的數(shù)據(jù)進(jìn)行更新;
步驟3:被測(cè)系統(tǒng)在RemoteCache自身緩存的數(shù)據(jù)被成功更新后,根據(jù)鍵值對(duì)組裝消息體,并根據(jù)將該消息體構(gòu)建一個(gè)異步消息發(fā)送給機(jī)房1中的MsgBroker;
步驟4:機(jī)房1中的MsgBroker將該異步消息發(fā)送給將另一個(gè)機(jī)房(機(jī)房2)中的MsgBroker;
步驟5:機(jī)房2中的MsgBroker將異步消息發(fā)送給機(jī)房2中的被測(cè)系統(tǒng);
步驟6:機(jī)房2中的被測(cè)系統(tǒng)從異步消息中解析出所述鍵值對(duì),并將該鍵值對(duì)put到機(jī)房1~機(jī)房n中的所有RemoteCache,即,將該鍵值對(duì)發(fā)送給機(jī)房1~機(jī)房n中的所有RemoteCache,目的是使得機(jī)房1~機(jī)房n中的所有RemoteCache分別利用該鍵值對(duì)對(duì)自身緩存的信息進(jìn)行更新。
由上述多機(jī)房緩存同步過(guò)程可知,典型的同步過(guò)程包括更新本機(jī)房緩存、組裝消息、發(fā)送消息、處理消息、更新所有機(jī)房緩存的過(guò)程,涉及到被測(cè)系統(tǒng)、MsgBroker,RemoteCache,調(diào)用鏈路較長(zhǎng),且存在較多的調(diào)用依賴(lài)。
基于上述現(xiàn)有技術(shù),考慮到三個(gè)因素:1、針對(duì)多機(jī)房緩存同步過(guò)程的測(cè)試目標(biāo)而言,是為了測(cè)試被測(cè)系統(tǒng)的多機(jī)房緩存同步功能;2、就被測(cè)系統(tǒng)而言,其部署在不同機(jī)房中,即不同機(jī)房中運(yùn)行的是相同的被測(cè)系統(tǒng);3、同步兩份緩存和同步兩分以上緩存的實(shí)現(xiàn)邏輯是一樣的。因此,本申請(qǐng)實(shí)施例中,設(shè)計(jì)了如圖3所示的測(cè)試模型。圖3所示的該測(cè)試模型的核心思想在于:對(duì)現(xiàn)有技術(shù)中的同步過(guò)程進(jìn)行簡(jiǎn)化,減少了該過(guò)程依賴(lài)的傳輸資源,僅需要一個(gè)被測(cè)系統(tǒng)以及兩份緩存。
具體而言,基于圖3所示的該測(cè)試模型,被測(cè)系統(tǒng)在接收到業(yè)務(wù)請(qǐng)求后,首先會(huì)向被測(cè)系統(tǒng)所在的機(jī)房的RemoteCache發(fā)送“put all”命令,以使得RemoteCache利用該命令中的鍵值對(duì),對(duì)RemoteCache自身緩存的數(shù)據(jù)進(jìn)行更新;之后,在RemoteCache自身緩存的數(shù)據(jù)被成功更新后,被測(cè)系統(tǒng)會(huì)根據(jù)鍵值對(duì)組裝消息體,并根據(jù)將該消息體構(gòu)建一個(gè)異步消息并發(fā)送;多機(jī)房緩存同步校驗(yàn)組件(該組件一般為運(yùn)行在硬件設(shè)備上的軟件單元,圖3中未示出)對(duì)該異步消息進(jìn)行攔截,并將攔截到的該異步消息中的鍵值對(duì)承載在“put all”命令中,分別發(fā)送給兩個(gè)機(jī)房的RemoteCache。其中,圖中帶箭頭的虛線,表示被測(cè)系統(tǒng)通過(guò)向被測(cè)系統(tǒng)所在的機(jī)房的RemoteCache發(fā)送“put all”命令,使得該RemoteCache根據(jù)該命令中的鍵值對(duì),更新RemoteCache自身緩存的信息;圖中帶箭頭的實(shí)線,表示多機(jī)房緩存同步校驗(yàn)組件在被測(cè)系統(tǒng)所在的機(jī)房1的RemoteCache根據(jù)“put all”命令中的鍵值對(duì),對(duì)RemoteCache自身緩存的信息更新成功后,將攔截到的異步消息中的該鍵值對(duì)put到機(jī)房1和機(jī)房2中的RemoteCache,以使得機(jī)房1和機(jī)房2中的RemoteCache分別利用該鍵值對(duì)對(duì)自身緩存的信息進(jìn)行更新。
相比于如圖2可知,本申請(qǐng)實(shí)施例提供的該測(cè)試模型對(duì)現(xiàn)有技術(shù)中的多機(jī)房緩存同步架構(gòu)進(jìn)行了簡(jiǎn)化,該測(cè)試模型中僅需要一個(gè)被測(cè)系統(tǒng)應(yīng)用以及兩份緩存。
以下對(duì)上述多機(jī)房緩存同步校驗(yàn)組件進(jìn)行詳細(xì)介紹。
該組件可以實(shí)現(xiàn)對(duì)現(xiàn)有單機(jī)房自動(dòng)化測(cè)試流程的擴(kuò)展,以達(dá)到在不改動(dòng)現(xiàn)有單機(jī)房自動(dòng)化測(cè)試用例的情況下,實(shí)現(xiàn)對(duì)被測(cè)系統(tǒng)的多機(jī)房緩存同步功能的測(cè)試。
本申請(qǐng)實(shí)施例中,多機(jī)房緩存同步校驗(yàn)組件位于如圖4所示的組件層,該組件主要包括配置管理模塊、緩存操作組件和消息攔截器。以下分別說(shuō)明多機(jī)房緩存同步校驗(yàn)組件各部分的功能。
1、配置管理模塊
配置管理模塊提供了多機(jī)房緩存同步測(cè)試功能的總開(kāi)關(guān),具體而言,該模塊可以通過(guò)設(shè)置環(huán)境變量來(lái)選擇是否啟用多機(jī)房緩存同步測(cè)試功能。本申請(qǐng)實(shí)施例中,啟用多機(jī)房緩存同步測(cè)試功能,表示啟用上述測(cè)試模型;而不啟用該功能,則表示仍然按照?qǐng)D2所示的現(xiàn)有技術(shù)實(shí)現(xiàn)多機(jī)房緩存同步。
具體地,該環(huán)境變量設(shè)置為1,可以用于表示啟用該功能;而該變量設(shè)置為0,表示不啟用該功能。
或者,也可以通過(guò)啟動(dòng)(或關(guān)閉)環(huán)境變量的方式,來(lái)實(shí)現(xiàn)啟動(dòng)(或關(guān)閉)該功能。
2、緩存操作組件
由于在設(shè)置測(cè)試用例時(shí),往往是針對(duì)單個(gè)機(jī)房設(shè)置測(cè)試用例,該測(cè)試用例在運(yùn)行到“準(zhǔn)備數(shù)據(jù)(詳見(jiàn)后文)”階段時(shí),僅能實(shí)現(xiàn)對(duì)單個(gè)機(jī)房的RemoteCache的操作,因此,本申請(qǐng)實(shí)施例中設(shè)置該緩存操作組件,用于協(xié)助針對(duì)單個(gè)機(jī)房設(shè)置的測(cè)試用例完成對(duì)至少兩個(gè)機(jī)房的RemoteCache的操作。
3、消息攔截器
消息攔截器,用于對(duì)被測(cè)系統(tǒng)構(gòu)建的前述異步消息進(jìn)行攔截,并將該異步消息發(fā)送給圖3中被測(cè)系統(tǒng)所在的機(jī)房1的RemoteCache,以及機(jī)房2的RemoteCache,以使得這兩個(gè)RemoteCache根據(jù)該異步消息更新存儲(chǔ)的數(shù)據(jù)。
以下對(duì)上述三個(gè)單元的功能在測(cè)試過(guò)程中的實(shí)現(xiàn)時(shí)機(jī)進(jìn)行說(shuō)明。
首先需要說(shuō)明的是,利用自動(dòng)化測(cè)試框架運(yùn)行測(cè)試用例的過(guò)程,主要可以包括如圖4所示的4個(gè)部分,分別為:初始化、準(zhǔn)備數(shù)據(jù)、調(diào)用被測(cè)系統(tǒng)和校驗(yàn)數(shù)據(jù)。
其中,初始化,是指對(duì)測(cè)試用例的一些狀態(tài)信息進(jìn)行配置,比如配置需要被同步的RemoteCache的數(shù)目等;準(zhǔn)備數(shù)據(jù),是指準(zhǔn)備與該測(cè)試用例對(duì)應(yīng)測(cè)試場(chǎng)景相關(guān)的數(shù)據(jù),比如,在需要被同步的RemoteCache中保存一些待查詢(xún)的數(shù)據(jù),或者對(duì)需要被同步的RemoteCache執(zhí)行清空操作,等等;調(diào)用被測(cè)系統(tǒng),是指調(diào)用并運(yùn)行被測(cè)系統(tǒng);校驗(yàn)數(shù)據(jù),是指對(duì)能夠體現(xiàn)被測(cè)系統(tǒng)運(yùn)行情況(這 里說(shuō)的情況比如包括:運(yùn)行情況正常和運(yùn)行情況不正常等)的數(shù)據(jù)進(jìn)行校驗(yàn),具體而言,檢驗(yàn)數(shù)據(jù)可以是指,對(duì)根據(jù)“put all”命令進(jìn)行了信息更新的各RemoteCache中的緩存數(shù)據(jù)進(jìn)行差異性校驗(yàn),以判斷被測(cè)系統(tǒng)是否成功完成了對(duì)不同RemoteCache的數(shù)據(jù)同步。
本申請(qǐng)實(shí)施例中,自動(dòng)化測(cè)試框架在調(diào)用并運(yùn)行測(cè)試用例后,即可調(diào)用并運(yùn)行如圖4所示的該多機(jī)房緩存同步校驗(yàn)組件;或者,自動(dòng)化測(cè)試框架也可以在同一時(shí)刻,分別調(diào)用和運(yùn)行測(cè)試用例和該組件。該組件包含的各部分的功能實(shí)現(xiàn)時(shí)機(jī)如下:
配置管理模塊功能的實(shí)現(xiàn)時(shí)機(jī),是上述過(guò)程中的“初始化”部分。在該部分中,配置管理模塊執(zhí)行的操作如圖5所示,包括如下步驟A~步驟D:
步驟51:設(shè)置環(huán)境變量;
步驟52:判斷是否啟用該環(huán)境變量,在判斷結(jié)果為是時(shí),執(zhí)行步驟53;在判斷結(jié)果為否時(shí),執(zhí)行步驟54;
本申請(qǐng)實(shí)施例中,配置管理模塊可以根據(jù)測(cè)試用例的類(lèi)型,判斷是否啟用該環(huán)境變量。比如,若預(yù)先規(guī)定針對(duì)類(lèi)型為“x”的測(cè)試用例,需要啟用該環(huán)境變量,則在判斷出某測(cè)試用例的類(lèi)型是“x”時(shí),執(zhí)行步驟53。
步驟53:?jiǎn)⒂铆h(huán)境變量;
步驟54:不啟用環(huán)境變量。
緩存操作組件功能的實(shí)現(xiàn)時(shí)機(jī),是上述過(guò)程中的“準(zhǔn)備數(shù)據(jù)”部分。在該部分中,若準(zhǔn)備數(shù)據(jù)的目的是為了清空至少兩個(gè)機(jī)房的RemoteCache,則緩存操作組件執(zhí)行的操作如圖6所示,包括如下步驟61~步驟64:
步驟61:判斷環(huán)境變量的狀態(tài);
步驟62:根據(jù)環(huán)境變量的狀態(tài),判斷環(huán)境變量是否被啟用,在判斷結(jié)果為是時(shí),執(zhí)行步驟63,在判斷結(jié)果為否時(shí),執(zhí)行步驟64;
步驟63:清空?qǐng)D3所示的機(jī)房1和機(jī)房2的RemoteCache中緩存的數(shù)據(jù);
步驟64:清空?qǐng)D3所示的機(jī)房1的RemoteCache中緩存的數(shù)據(jù)。
若準(zhǔn)備數(shù)據(jù)的目的是清空至少兩個(gè)機(jī)房的RemoteCache后向各清空的RemoteCache中分別寫(xiě)入相同的數(shù)據(jù),則緩存操作組件執(zhí)行的操作如圖7所示,包括如下步驟71~步驟74:
步驟71:判斷環(huán)境變量的狀態(tài);
步驟72:根據(jù)環(huán)境變量的狀態(tài),判斷環(huán)境變量是否被啟用,在判斷結(jié)果為是時(shí),執(zhí)行步驟73,在判斷結(jié)果為否時(shí),執(zhí)行步驟74;
步驟73:清空?qǐng)D3所示的機(jī)房1和機(jī)房2的RemoteCache中緩存的數(shù)據(jù)后,向機(jī)房1和機(jī)房2的RemoteCache分別寫(xiě)入期望寫(xiě)入的數(shù)據(jù);
步驟74:清空?qǐng)D3所示的機(jī)房1的RemoteCache中緩存的數(shù)據(jù)后,向機(jī)房1的RemoteCache分別寫(xiě)入期望寫(xiě)入的數(shù)據(jù)。
若準(zhǔn)備數(shù)據(jù)的目的是查詢(xún)至少兩個(gè)機(jī)房的RemoteCache中的數(shù)據(jù)是否一致,則緩存操作組件執(zhí)行的操作如圖8所示,包括如下步驟81~步驟89:
步驟81:判斷環(huán)境變量的狀態(tài);
步驟82:根據(jù)環(huán)境變量的狀態(tài),判斷環(huán)境變量是否被啟用,在判斷結(jié)果為是時(shí),執(zhí)行步驟83,在判斷結(jié)果為否時(shí),執(zhí)行步驟88;
步驟83:獲取對(duì)于圖3所示的機(jī)房1和機(jī)房2的RemoteCache中緩存的數(shù)據(jù)的查詢(xún)關(guān)鍵詞,即獲取緩存實(shí)例;
步驟84:根據(jù)各緩存實(shí)例,分別查詢(xún)并獲取圖3所示的機(jī)房1和機(jī)房2的RemoteCache中緩存的相應(yīng)數(shù)據(jù),之后執(zhí)行步驟85;
步驟85:對(duì)比通過(guò)執(zhí)行步驟84后分別從不同RemoteCache中獲取的數(shù)據(jù)一致,若一致,則執(zhí)行步驟86,否則執(zhí)行步驟87;
步驟86:返回默認(rèn)值,以使得自動(dòng)化測(cè)試框架獲知數(shù)據(jù)對(duì)比結(jié)果為數(shù)據(jù)一致;
需要說(shuō)明的是,在自動(dòng)化測(cè)試框架獲知數(shù)據(jù)對(duì)比結(jié)果為數(shù)據(jù)一致后,進(jìn)一步地,在“調(diào)用被測(cè)系統(tǒng)”部分,自動(dòng)化測(cè)試框架可以執(zhí)行運(yùn)行消息攔截器的操作。
步驟87:返回對(duì)于機(jī)房1的RemoteCache中緩存的數(shù)據(jù)的查詢(xún)關(guān)鍵詞,以使得自動(dòng)化測(cè)試框架獲知數(shù)據(jù)對(duì)比結(jié)果為數(shù)據(jù)不一致;
需要說(shuō)明的是,在自動(dòng)化測(cè)試框架獲知數(shù)據(jù)對(duì)比結(jié)果為數(shù)據(jù)不一致后,進(jìn)一步地,在“調(diào)用被測(cè)系統(tǒng)”部分,自動(dòng)化測(cè)試框架可以不執(zhí)行運(yùn)行消息攔截器的操作。
步驟88:獲取對(duì)于圖3所示的機(jī)房1的RemoteCache中緩存的數(shù)據(jù)的查詢(xún)關(guān)鍵詞,之后執(zhí)行步驟89;
步驟89:根據(jù)通過(guò)執(zhí)行步驟88獲取的查詢(xún)關(guān)鍵詞,從機(jī)房1的RemoteCache中查詢(xún)并獲取相應(yīng)數(shù)據(jù)。
消息攔截器功能的實(shí)現(xiàn)時(shí)機(jī),是“調(diào)用被測(cè)系統(tǒng)”部分。在該部分中,消息攔截器執(zhí)行的操作如圖9所示,包括如下步驟91~步驟97:
步驟91:在檢測(cè)到自動(dòng)化測(cè)試框架開(kāi)始運(yùn)行被測(cè)系統(tǒng)后,對(duì)被測(cè)系統(tǒng)發(fā)送的消息進(jìn)行攔截,并在攔截到被測(cè)系統(tǒng)發(fā)送用于同步不同機(jī)房的RemoteCache的異步消息后,執(zhí)行步驟92;
步驟92:根據(jù)環(huán)境變量的狀態(tài),判斷環(huán)境變量是否被啟用,在判斷結(jié)果為是時(shí),執(zhí)行步驟93,在判斷結(jié)果為否時(shí),執(zhí)行步驟97;
步驟93:消息攔截器將攔截到的異步消息,發(fā)送給如圖3所示的機(jī)房1和機(jī)房2的RemoteCache;或者,消息攔截器可以調(diào)用一個(gè)叫消息處理器的組件,由該消息處理器來(lái)實(shí)現(xiàn)將攔截到的異步消息,發(fā)送給如圖3所示的機(jī)房1和機(jī)房2中的RemoteCache;
步驟94:消息攔截器在等待一段時(shí)間(即sleep一段時(shí)間)后,通過(guò)對(duì)機(jī)房1和機(jī)房2的RemoteCache緩存的數(shù)據(jù)的校驗(yàn),判斷這兩個(gè)RemoteCache是否均已根據(jù)該異步消息完成數(shù)據(jù)更新,在判斷結(jié)果為否時(shí),執(zhí)行步驟95,否則執(zhí)行步驟96;
步驟95:消息攔截器在等待一段時(shí)間(即sleep一段時(shí)間)后,執(zhí)行步驟93;
步驟96:返回流程結(jié)束通知,以觸發(fā)流程進(jìn)入“校驗(yàn)數(shù)據(jù)”部分;
步驟97:消息攔截器將攔截到的異步消息,發(fā)送給機(jī)房1的MsgBroker。需要說(shuō)明的是,當(dāng)異步消息發(fā)送給機(jī)房1的MsgBroker后,基于該異步消息的后續(xù)處理步驟與前文所述的步驟4~步驟6相同,此處不再贅述。
實(shí)施例3
實(shí)施例3提供一種多機(jī)房緩存同步功能的測(cè)試裝置,用以利用較少的處理資源實(shí)現(xiàn)對(duì)被測(cè)系統(tǒng)的多機(jī)房緩存同步功能的測(cè)試。該裝置的結(jié)構(gòu)示意圖如圖10所示,包括消息攔截器101、消息發(fā)送器102和測(cè)試結(jié)果確定單元103。以下對(duì)該些功能單元的具體功能進(jìn)行詳細(xì)介紹。
消息攔截器101,用于攔截被測(cè)系統(tǒng)向消息代理發(fā)送的緩存設(shè)備同步指令(后稱(chēng)所述指令);
消息發(fā)送器102,用于將消息攔截器101攔截到的所述指令發(fā)送給至少兩個(gè)緩存設(shè)備(后稱(chēng)所述至少兩個(gè)緩存設(shè)備),以指示所述至少兩個(gè)緩存設(shè)備進(jìn)行數(shù)據(jù)更新;
測(cè)試結(jié)果確定單元103,用于根據(jù)所述至少兩個(gè)緩存設(shè)備的數(shù)據(jù)更新結(jié)果,確定對(duì)于被測(cè)系統(tǒng)的緩存同步功能的測(cè)試結(jié)果。
在一種實(shí)施方式中,消息攔截器101,可以用于:確定被測(cè)系統(tǒng)生成的指令的類(lèi)型;根據(jù)該類(lèi)型,確定出生成的指令為用于指示緩存設(shè)備進(jìn)行數(shù)據(jù)更新的指令后,在被測(cè)系統(tǒng)向消息代理發(fā)送該生成的指令時(shí),攔截該生成的指令。
在一種實(shí)施方式中,消息攔截器101,可以用于:在確認(rèn)出多機(jī)房緩存校驗(yàn)軟件開(kāi)關(guān)被配置為打開(kāi)狀態(tài)時(shí),確定被測(cè)系統(tǒng)生成的指令的類(lèi)型。
在一種實(shí)施方式中,本申請(qǐng)實(shí)施例提供的該裝置還可以包括:緩存操作單元。該緩存操作單元用于:在消息攔截器101確認(rèn)出多機(jī)房緩存校驗(yàn)軟件開(kāi)關(guān)被配置為打開(kāi)狀態(tài)時(shí),確定被測(cè)系統(tǒng)生成的指令的類(lèi)型前,根據(jù)被調(diào)用的測(cè)試用例準(zhǔn)備數(shù)據(jù)的目的,執(zhí)行與該目的相匹配的操作。具體地,緩存操作單元具 體可以用于在確認(rèn)出多機(jī)房緩存校驗(yàn)軟件開(kāi)關(guān)被配置為打開(kāi)狀態(tài)時(shí),根據(jù)該目的,執(zhí)行與該目的相匹配的操作。
在一種實(shí)施方式中,當(dāng)該目的包括清除緩存設(shè)備中的數(shù)據(jù)時(shí),緩存操作單元用于:清除所述至少兩個(gè)緩存設(shè)備緩存的數(shù)據(jù);當(dāng)該目的包括先清除緩存設(shè)備中的數(shù)據(jù),再向緩存設(shè)備寫(xiě)入數(shù)據(jù)時(shí),緩存操作單元用于:清除所述至少兩個(gè)緩存設(shè)備緩存的數(shù)據(jù)后,向所述至少兩個(gè)緩存設(shè)備中分別寫(xiě)入數(shù)據(jù);當(dāng)該目的包括查詢(xún)并獲取緩存設(shè)備中的數(shù)據(jù)時(shí),緩存操作單元用于:根據(jù)查詢(xún)關(guān)鍵詞,查詢(xún)并獲取所述至少兩個(gè)緩存設(shè)備緩存的數(shù)據(jù)。
在一種實(shí)施方式中,本申請(qǐng)實(shí)施例提供的該裝置還可以包括配置管理單元。其中,該配置管理單元可以用于在緩存操作單元根據(jù)被調(diào)用的測(cè)試用例準(zhǔn)備數(shù)據(jù)的目的,執(zhí)行與該目的匹配的操作之前,在該測(cè)試用例的初始化階段,設(shè)置多機(jī)房緩存校驗(yàn)軟件開(kāi)關(guān),并將該開(kāi)關(guān)配置為打開(kāi)狀態(tài)。
在一種實(shí)施方式中,上文所述的消息發(fā)送器102具體可以用于循環(huán)執(zhí)行特定操作,直至所述至少兩個(gè)緩存設(shè)備均根據(jù)所述指令完成數(shù)據(jù)更新。其中,這里所說(shuō)的特定操作包括:將攔截到的所述指令發(fā)送給至少兩個(gè)緩存設(shè)備,以指示所述至少兩個(gè)緩存設(shè)備進(jìn)行數(shù)據(jù)更新;判斷所述至少兩個(gè)緩存設(shè)備是否均根據(jù)所述指令完成數(shù)據(jù)更新。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)、嵌入 式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性?xún)?nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來(lái)實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類(lèi)型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤(pán)只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能光盤(pán)(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤(pán)存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問(wèn)的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
還需要說(shuō)明的是,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、商品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)......”限定的要素,并不排除在包括所述要素的過(guò)程、方法、商品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
以上所述僅為本申請(qǐng)的實(shí)施例而已,并不用于限制本申請(qǐng)。對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),本申請(qǐng)可以有各種更改和變化。凡在本申請(qǐng)的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)的權(quán)利要求范圍之內(nèi)。