本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及針對具有循環(huán)依賴關(guān)系的數(shù)據(jù)的處理技術(shù)。
背景技術(shù):
循環(huán)依賴,就是兩個或多個類的對象相互在各自的域中持有對方的引用,比如circlea引用circleb,circleb引用circlec,circlec引用circlea,則它們最終反映為一個環(huán)。循環(huán)依賴由于存在循環(huán)調(diào)用問題,在進行代碼編譯的過程中,往往就不會通過。
針對循環(huán)依賴問題,現(xiàn)有技術(shù)中存在一些解決方案,比如注入中介法,即相互依賴的類對象不直接持有對方的引用,而是通過持有中間對象(即中介)來間接獲取對方的引用。然而,中介注入法會產(chǎn)生對象和中介對象之間的依賴關(guān)系,加劇了軟件模塊之間的耦合性。除此之外,現(xiàn)有技術(shù)中還存在用延遲注入法解決循環(huán)依賴問題的方案,即相互依賴的類對象在構(gòu)造時不持有對方的引用,而是在構(gòu)造完成后再相互注入到對方的域中去。由于延遲注入法將對象的構(gòu)造邏輯和構(gòu)造本身進行了分離,在構(gòu)造完成到注入完成之前,對象將處于殘缺狀態(tài),這種不完整的狀態(tài)隨著系統(tǒng)模塊的復(fù)雜性的增加會顯著擴大其持續(xù)時間,增加了系統(tǒng)的不穩(wěn)定性。同時因為構(gòu)造邏輯被分離到構(gòu)造本身之外,而在一定程度上降低了系統(tǒng)的可理解性。
因此,需要一種更加有效的循環(huán)依賴數(shù)據(jù)處理方法。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例提供了一種數(shù)據(jù)處理方法、裝置及電子設(shè)備,至少部分的解決現(xiàn)有技術(shù)中存在的問題。
第一方面,本發(fā)明實施例提供了一種數(shù)據(jù)處理方法,包括:
構(gòu)建具有類型參數(shù)屬性的延遲代理類;
使用所述延遲代理類生成延遲代理對象;
基于所述延遲代理對象,以延遲加載的方式生成具有循環(huán)依賴關(guān)系的目標(biāo)對象。
根據(jù)本發(fā)明實施例的一種具體實現(xiàn)方式,所述方法還包括:
構(gòu)建用于生成對象的過程類接口。
根據(jù)本發(fā)明實施例的一種具體實現(xiàn)方式,所述使用所述延遲代理類生成延遲代理對象,包括:
在所述延遲代理類中生成所述過程類接口的對象;
基于所述過程類接口的對象,生成所述延遲代理對象。
根據(jù)本發(fā)明實施例的一種具體實現(xiàn)方式,在所述基于所述過程類接口的對象,生成所述延遲代理對象之后,所述方法還包括:
在所述延遲代理類的對象為空的情況下,保存所述延遲代理類第一次生成的延遲代理對象;
當(dāng)所述延遲代理對象被再次調(diào)用時,直接使用保存的延遲代理對象。
根據(jù)本發(fā)明實施例的一種具體實現(xiàn)方式,所述基于所述延遲代理對象,以延遲加載的方式生成具有循環(huán)依賴關(guān)系的目標(biāo)對象,包括:
以匿名函數(shù)的方式生成具有循環(huán)依賴關(guān)系的目標(biāo)對象。
根據(jù)本發(fā)明實施例的一種具體實現(xiàn)方式,所述基于所述延遲代理對象,以延遲加載的方式生成具有循環(huán)依賴關(guān)系的目標(biāo)對象,包括:
當(dāng)所述延遲代理類被加載時,所述延遲代理類定義的延遲代理對象不被初始化。
根據(jù)本發(fā)明實施例的一種具體實現(xiàn)方式,所述基于所述延遲代理對象,以延遲加載的方式生成具有循環(huán)依賴關(guān)系的目標(biāo)對象,包括:
判斷所述延遲代理對象是否處于被使用狀態(tài);
當(dāng)所述延遲代理對象被使用時,對所述延遲代理對象執(zhí)行初始化操作,并基于所述延遲代理對象方式生成具有循環(huán)依賴關(guān)系的目標(biāo)對象。
根據(jù)本發(fā)明實施例的一種具體實現(xiàn)方式,所述具有循環(huán)依賴關(guān)系的目標(biāo)對象的數(shù)目為兩個以上;
所述延遲代理對象的數(shù)目與所述具有循環(huán)依賴關(guān)系的目標(biāo)對象的數(shù)目相同。
根據(jù)本發(fā)明實施例的一種具體實現(xiàn)方式,所述使用所述延遲代理類生成延遲代理對象,包括:
在具有循環(huán)依賴關(guān)系的目標(biāo)對象的類中,以私有方式定義所述延遲代理類生成的所述延遲代理對象。
第二方面,本發(fā)明實施例還提供了一種數(shù)據(jù)處理裝置,包括:
第一構(gòu)建模塊,用于構(gòu)建具有類型參數(shù)屬性的延遲代理類;
第一生成模塊,用于使用所述延遲代理類生成延遲代理對象;
第二生成模塊,用于基于所述延遲代理對象,以延遲加載的方式生成具有循環(huán)依賴關(guān)系的目標(biāo)對象。
根據(jù)本發(fā)明實施例的一種具體實現(xiàn)方式,所述裝置還包括:
第二構(gòu)建模塊,用于構(gòu)建用于生成對象的過程類接口。
根據(jù)本發(fā)明實施例的一種具體實現(xiàn)方式,所述第一生成模塊,還用于:
在所述延遲代理類中生成所述過程類接口的對象;
基于所述過程類接口的對象,生成所述延遲代理對象。
根據(jù)本發(fā)明實施例的一種具體實現(xiàn)方式,所述裝置還包括:
保存模塊,用于在所述延遲代理類的對象為空的情況下,保存所述延遲代理類第一次生成的延遲代理對象;
使用模塊,用于當(dāng)所述延遲代理對象被再次調(diào)用時,直接使用保存的延遲代理對象。
根據(jù)本發(fā)明實施例的一種具體實現(xiàn)方式,所述第二生成模塊還用于:
以匿名函數(shù)的方式生成具有循環(huán)依賴關(guān)系的目標(biāo)對象。
根據(jù)本發(fā)明實施例的一種具體實現(xiàn)方式,所述第二生成模塊還用于:
當(dāng)所述延遲代理類被加載時,所述延遲代理類定義的延遲代理對象不被初始化。
根據(jù)本發(fā)明實施例的一種具體實現(xiàn)方式,所述第二生成模塊還包括:
判斷模塊,用于判斷所述延遲代理對象是否處于被使用狀態(tài);
執(zhí)行模塊,用于當(dāng)所述延遲代理對象被使用時,對所述延遲代理對象執(zhí)行初始化操作,并基于所述延遲代理對象方式生成具有循環(huán)依賴關(guān)系的目標(biāo)對象。
根據(jù)本發(fā)明實施例的一種具體實現(xiàn)方式,所述具有循環(huán)依賴關(guān)系的目標(biāo)對象的數(shù)目為兩個以上;
所述延遲代理對象的數(shù)目與所述具有循環(huán)依賴關(guān)系的目標(biāo)對象的數(shù)目相同。
根據(jù)本發(fā)明實施例的一種具體實現(xiàn)方式,所述第一生成模塊還用于:
在具有循環(huán)依賴關(guān)系的目標(biāo)對象的類中,以私有方式定義所述延遲代理類生成的所述延遲代理對象。
第三方面,本發(fā)明實施例還提供了一種電子設(shè)備,該電子設(shè)備包括:
至少一個處理器;以及,
與該至少一個處理器通信連接的存儲器;其中,
該存儲器存儲有可被該至少一個處理器執(zhí)行的指令,該指令被該至少一個處理器執(zhí)行,以使該至少一個處理器能夠執(zhí)行前述任第一方面或第一方面的任一實現(xiàn)方式中的數(shù)據(jù)處理方法。
第四方面,本發(fā)明實施例還提供了一種非暫態(tài)計算機可讀存儲介質(zhì),該非暫態(tài)計算機可讀存儲介質(zhì)存儲計算機指令,該計算機指令用于使該計算機執(zhí)行前述第一方面或第一方面的任一實現(xiàn)方式中的數(shù)據(jù)處理方法。
第五方面,本發(fā)明實施例還提供了一種計算機程序產(chǎn)品,該計算機程序產(chǎn)品包括存儲在非暫態(tài)計算機可讀存儲介質(zhì)上的計算程序,該計算機程序包括程序指令,當(dāng)該程序指令被計算機執(zhí)行時,使該計算機執(zhí)行前述第一方面或第一方面的任一實現(xiàn)方式中的數(shù)據(jù)處理方法。
本發(fā)明實施例提供的數(shù)據(jù)處理方法、裝置、電子設(shè)備、非暫態(tài)計算機可讀存儲介質(zhì)及計算機程序,通過基于延遲代理對象,以延遲加載的方式生成具有循環(huán)依賴關(guān)系的目標(biāo)對象,能夠保證構(gòu)造產(chǎn)生的對象在構(gòu)造完成時就可以使得對象處于相對完整狀態(tài),達到形式和邏輯上的統(tǒng)一,避免了殘缺對象的存在。同時,由于僅通過延遲代理對象生成具有循環(huán)依賴關(guān)系的目標(biāo)對象,在系統(tǒng)耦合度上相比中介注入法,這里只會產(chǎn)生對象到代理對象、代理對象到依賴對象之間的兩條單向耦合關(guān)系,降低了系統(tǒng)的耦合性。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1為本發(fā)明實施例提供的一種數(shù)據(jù)處理方法的流程示意圖;
圖2為本發(fā)明實施例提供的一種生成延遲代理對象方法的流程示意圖;
圖3為本發(fā)明實施例提供的一種延遲代理對象初始化的流程示意圖;
圖4為本發(fā)明實施例提供的另一種數(shù)據(jù)處理方法的流程示意圖;
圖5為本發(fā)明實施例提供的一種數(shù)據(jù)處理裝置的示意性框圖;
圖6為本發(fā)明實施例提供的另一種數(shù)據(jù)處理裝置的示意性框圖;
圖7為本發(fā)明實施例提供的另一種數(shù)據(jù)處理裝置的示意性框圖;
圖8為本發(fā)明實施例提供的第二生成模塊的示意性框圖;
圖9為本發(fā)明實施例提供的一種電子設(shè)備的結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明實施例進行詳細描述。
應(yīng)當(dāng)明確,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
圖1為本發(fā)明實施例提供的一種數(shù)據(jù)處理方法,參見圖1,該方法包括以下步驟:
s101,構(gòu)建具有類型參數(shù)屬性的延遲代理類。
針對循環(huán)依賴問題,假設(shè)我們有一個類productiondepartment,它包含了另外一個類marketingdepartment的對象marketing,同時類marketingdepartment也包含了一個類productiondepartment的對象production。那么此時不管實例化哪一個類,都會產(chǎn)生因為循環(huán)依賴導(dǎo)致編譯通不過或者異常提醒的問題。
為了解決此類的對象循環(huán)依賴問題,可以給類productiondepartment的對象production寫一個代理類lazyproxy,這樣類marketingdepartment的對象包含的不再是marketing而是代理類lazyproxy,這樣就利用了第三方來解決循環(huán)依賴問題。以java為例,可以構(gòu)建延遲代理類如下:
此處定義lazyproxy的類型參數(shù)為t,t為可以預(yù)先定義的對象類型。
s102,使用所述延遲代理類生成延遲代理對象。
具體的,可以在具有循環(huán)依賴關(guān)系的類中使用步驟s101中定義的延遲代理類生成延遲代理對象。在生成延遲代理對象之前,需要預(yù)先定義具有循環(huán)依賴關(guān)系的類,以productiondepartment類為例,定義如下:
classproductiondepartment{
privatelazyproxy<marketingdepartment>marketing
}
通過上述方式,在productiondepartment的類中用延遲代理類lazyproxy定義了marketingdepartment的對象marketing,當(dāng)productiondepartment類被系統(tǒng)初始化時,可以利用lazyproxy類生成productiondepartment的對象marketing。
基于同樣的方式,也可以采用lazyproxy在marketingdepartment的類中生成productiondepartment的對象production:
classmarketingdepartment{
privatelazyproxy<productiondepartment>production;
}
s103,基于所述延遲代理對象,以延遲加載的方式生成具有循環(huán)依賴關(guān)系的目標(biāo)對象。
具體的,在需要調(diào)用具有依賴關(guān)系的對象的運行函數(shù)中,可以首先聲明以需要使用的對象,這些對象采用lazyproxy類進行封裝生成,比如:
lazyproxy<productiondepartment>production
lazyproxy<marketingdepartment>marketing
在生成對象的過程中,與傳統(tǒng)的類加載即生成對象不同,此處需要指定需要生成的目標(biāo)對象采用延遲加載的方式產(chǎn)生,即,僅在目標(biāo)對象被使用時才進行生成,而在其他情況下則不生成目標(biāo)對象。
作為一種實現(xiàn)方式,可以采用java中的lazy匿名函數(shù)實現(xiàn)上述功能,在實現(xiàn)該功能的過程中,為了簡化實現(xiàn)邏輯,可以采用lambda表達式實現(xiàn)上述功能,如下所示:
this.production=lazy(()->newproductiondepartment(this,″production″))
this.marketing=lazy(()->newmarketingdepartment(this,″marketing″))
在步驟s101~s103中,以延遲加載的方式生成具有循環(huán)依賴關(guān)系的目標(biāo)對象,能夠保證構(gòu)造產(chǎn)生的對象在構(gòu)造完成時就可以使得對象處于相對完整狀態(tài),達到形式和邏輯上的統(tǒng)一,避免了殘缺對象的存在。
在解決循環(huán)依賴的過程中,除了上述實施例中的步驟s101~s103之外,可選的,參見圖2,生成延遲代理對象方法還可以包括如下步驟:
s201,構(gòu)建用于生成對象的過程類接口。
通過定義過程類接口,可以在延遲代理中引用定義的過程類,并將該過程類的對象作為中介進行參數(shù)傳遞。具體的,可以按照如下方式定義:
interfaceprovider<t>{
tget();
}
s202,在所述延遲代理類中生成所述過程類接口的對象。
過程類接口被定義之后,在延遲代理類中可以定義該過程類,并生成該過程類的對象,如下所示:
classlazyproxy<t>{
privateprovider<t>provider;
}
s203,基于所述過程類接口的對象,生成所述延遲代理對象。
通過在延遲代理中調(diào)用過程類接口的對象,可以生成延遲代理對象,具體的延遲代理對象的內(nèi)容,可以根據(jù)輸入的參數(shù)來確定,舉例如下:
publiclazyproxy(provider<t>provider){
this.provider=provider;
s204,在所述過程類接口的對象為空的情況下,保存所述延遲代理類第一次生成的延遲代理對象。
為了保證對象的調(diào)用效率,可以重復(fù)調(diào)用第一次生成的延遲代理對象,為此,可以設(shè)置函數(shù)判斷是否存在延遲代理對象,當(dāng)存在延遲代理對象時,對第一次生成的延遲代理對象進行保存,如下所示:
s205,當(dāng)所述延遲代理對象被再次調(diào)用時,直接使用保存的延遲代理對象。
通過該實施例中的技術(shù)方案,能夠靈活的定義延遲代理類的對象,并且提高了生成的延遲代理類對象的使用效率。
可選的,本發(fā)明實施例還提供了一種延遲代理對象初始化的方法,參見圖3,該方法包括如下步驟:
s301,當(dāng)所述延遲代理類被加載時,所述延遲代理類定義的延遲代理對象不被初始化。
為了能夠保證延遲代理類定義的延遲代理對象不被初始化,需要采用特定的方式定義對象的初始化方式,作為一種具體的實現(xiàn)方式,可以采用lazy匿名函數(shù)實現(xiàn)該功能。
s302,判斷所述延遲代理對象是否處于被使用狀態(tài)。
監(jiān)控延遲代理對象的狀態(tài),用以判斷延遲代理對象是否被調(diào)用。當(dāng)延遲代理對象被調(diào)用或使用時,轉(zhuǎn)至步驟s303,否則,不執(zhí)行操作。
s303,對所述延遲代理對象執(zhí)行初始化操作,并基于所述延遲代理對象方式生成具有循環(huán)依賴關(guān)系的目標(biāo)對象。
通過該實施例中的方式,能夠保證構(gòu)造產(chǎn)生的對象在構(gòu)造完成時就可以使得對象處于相對完整狀態(tài),達到形式和邏輯上的統(tǒng)一。
在實現(xiàn)步驟s102的過程中,參見圖4,可以具體采用如下方式來具體實現(xiàn):
s401,在具有循環(huán)依賴關(guān)系的目標(biāo)對象的類中,以私有方式定義所述延遲代理類生成的所述延遲代理對象。
具體的,可以采用private的方式定義延遲代理類生成的所述延遲代理對象,通過該定義方式,延遲代理類生成的所述延遲代理對象只能在本類中被訪問到,在其他的類中無法進行訪問,提高了數(shù)據(jù)的安全性。以在productiondepartment類中定義marketing為例,舉例如下:
classproductiondepartment{
privatelazyproxy<marketingdepartment>marketing;
}
圖5為本發(fā)明實施例提供的一種數(shù)據(jù)處理裝置,參見圖5,該數(shù)據(jù)處理裝置50包括:
第一構(gòu)建模塊501,用于構(gòu)建具有類型參數(shù)屬性的延遲代理類。
針對循環(huán)依賴問題,假設(shè)我們有一個類productiondepartment,它包含了另外一個類marketingdepartment的對象marketing,同時類marketingdepartment也包含了一個類productiondepartment的對象production。那么此時不管實例化哪一個類,都會出現(xiàn)stackoverflowerror錯誤。
為了解決此類的對象循環(huán)依賴問題,可以給類productiondepartment的對象production寫一個代理類lazyproxy,這樣類marketingdepartment的對象包含的不再是marketing而是代理類lazyproxy,這樣就利用了第三方來解決循環(huán)依賴問題。以java為例,可以構(gòu)建延遲代理類如下:
此處定義lazyproxy的類型參數(shù)為t,t為可以預(yù)先定義的對象類型。
第一生成模塊502,用于使用所述延遲代理類生成延遲代理對象。
具體的,可以在具有循環(huán)依賴關(guān)系的類中使用步驟s101中定義的延遲代理類生成延遲代理對象。在生成延遲代理對象之前,需要預(yù)先定義具有循環(huán)依賴關(guān)系的類,以productiondepartment類為例,定義如下:
classproductiondepartment{
privatelazyproxy<marketingdepartment>marketing
}
通過上述方式,在productiondepartment的類中用延遲代理類lazyproxy定義了marketingdepartment的對象marketing,當(dāng)productiondepartment類被系統(tǒng)初始化時,可以利用lazyproxy類生成productiondepartment的對象marketing。
基于同樣的方式,也可以采用lazyproxy在marketingdepartment的類中生成productiondepartment的對象production:
classmarketingdepartment{
privatelazyproxy<productiondepartment>production;
}
第二生成模塊503,用于基于所述延遲代理對象,以延遲加載的方式生成具有循環(huán)依賴關(guān)系的目標(biāo)對象。
具體的,在需要調(diào)用具有依賴關(guān)系的對象的運行函數(shù)中,可以首先聲明以需要使用的對象,這些對象采用lazyproxy類進行封裝生成,比如:
lazyproxy<productiondepartment>production
lazyproxy<marketingdepartment>marketing
在生成對象的過程中,與傳統(tǒng)的類加載即生成對象不同,此處需要指定需要生成的目標(biāo)對象采用延遲加載的方式產(chǎn)生,即,僅在目標(biāo)對象被使用時才進行生成,而在其他情況下則不生成目標(biāo)對象。
作為一種實現(xiàn)方式,可以采用java中的lazy匿名函數(shù)實現(xiàn)上述功能,在實現(xiàn)該功能的過程中,為了簡化實現(xiàn)邏輯,可以采用lambda表達式實現(xiàn)上述功能,如下所示:
this.production=lazy(()->newproductiondepartment(this,″production″))
this.marketing=lazy(()->newmarketingdepartment(this,″marketing″))
在本實施例中的方案中,以延遲加載的方式生成具有循環(huán)依賴關(guān)系的目標(biāo)對象,能夠保證構(gòu)造產(chǎn)生的對象在構(gòu)造完成時就可以使得對象處于相對完整狀態(tài),達到形式和邏輯上的統(tǒng)一,避免了殘缺對象的存在。
數(shù)據(jù)處理裝置50,除了包括上述模塊之外,可選的,參見圖6,數(shù)據(jù)處理裝置50還可以包括:
第二構(gòu)建模塊601,用于構(gòu)建用于生成對象的過程類接口。
通過定義過程類接口,可以在延遲代理中引用定義的過程類,并將該過程類的對象作為中介進行參數(shù)傳遞。具體的,可以按照如下方式定義:
interfaceprovider<t>{
tget();
}
可選的,參見圖7,數(shù)據(jù)處理裝置50還可以包括:
保存模塊701,用于在所述延遲代理類的對象為空的情況下,保存所述延遲代理類第一次生成的延遲代理對象。
使用模塊702,用于當(dāng)所述延遲代理對象被再次調(diào)用時,直接使用保存的延遲代理對象。
可選的,參見圖8,第二生成模塊503,可以包括:
判斷模塊5031,用于判斷所述延遲代理對象是否處于被使用狀態(tài)。
執(zhí)行模塊5032,用于當(dāng)所述延遲代理對象被使用時,對所述延遲代理對象執(zhí)行初始化操作,并基于所述延遲代理對象方式生成具有循環(huán)依賴關(guān)系的目標(biāo)對象。
圖5-8對應(yīng)的實施例中的功能模塊所執(zhí)行的具體內(nèi)容與其所對應(yīng)的方法實施例中的內(nèi)容一一對應(yīng),在此不在贅述。
圖9示出了本發(fā)明實施例提供的電子設(shè)備90的結(jié)構(gòu)示意圖,電子設(shè)備90包括至少一個處理器901(例如cpu),至少一個輸入輸出接口904,存儲器902,和至少一個通信總線903,用于實現(xiàn)這些部件之間的連接通信。至少一個處理器901用于執(zhí)行存儲器902中存儲的計算機指令,以使所述至少一個處理器901能夠執(zhí)行前述任一數(shù)據(jù)處理方法的實施例。存儲器902為非暫態(tài)存儲器(non-transitorymemory),其可以包含易失性存儲器,例如高速隨機存取存儲器(ram:randomaccessmemory),也可以包括非易失性存儲器(non-volatilememory),例如至少一個磁盤存儲器。通過至少一個輸入輸出接口904(可以是有線或者無線通信接口)實現(xiàn)與至少一個其他設(shè)備或單元之間的通信連接。
在一些實施方式中,存儲器902存儲了程序9021,處理器901執(zhí)行程序9021,用于執(zhí)行前述任一數(shù)據(jù)處理方法實施例中的內(nèi)容。
該電子設(shè)備可以以多種形式存在,包括但不限于:
(1)移動通信設(shè)備:這類設(shè)備的特點是具備移動通信功能,并且以提供話音、數(shù)據(jù)通信為主要目標(biāo)。這類終端包括:智能手機(例如iphone)、多媒體手機、功能性手機,以及低端手機等。
(2)超移動個人計算機設(shè)備:這類設(shè)備屬于個人計算機的范疇,有計算和處理功能,一般也具備移動上網(wǎng)特性。這類終端包括:pda、mid和umpc設(shè)備等,例如ipad。
(3)便攜式娛樂設(shè)備:這類設(shè)備可以顯示和播放多媒體內(nèi)容。該類設(shè)備包括:音頻、視頻播放器(例如ipod),掌上游戲機,電子書,以及智能玩具和便攜式車載導(dǎo)航設(shè)備。
(4)特定服務(wù)器:提供計算服務(wù)的設(shè)備,服務(wù)器的構(gòu)成包括處理器、硬盤、內(nèi)存、系統(tǒng)總線等,服務(wù)器和通用的計算機架構(gòu)類似,但是由于需要提供高可靠的服務(wù),因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。
(5)其他具有數(shù)據(jù)交互功能的電子設(shè)備。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個......”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說明書中的各個實施例均采用相關(guān)的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。
尤其,對于裝置實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認為是用于實現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實現(xiàn)在任何計算機可讀介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備(如基于計算機的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設(shè)備取指令并執(zhí)行指令的系統(tǒng))使用,或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用。就本說明書而言,″計算機可讀介質(zhì)″可以是任何可以包含、存儲、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用的裝置。計算機可讀介質(zhì)的更具體的示例(非窮盡性列表)包括以下:具有一個或多個布線的電連接部(電子裝置),便攜式計算機盤盒(磁裝置),隨機存取存儲器(ram),只讀存儲器(rom),可擦除可編輯只讀存儲器(eprom或閃速存儲器),光纖裝置,以及便攜式光盤只讀存儲器(cdrom)。另外,計算機可讀介質(zhì)甚至可以是可在其上打印所述程序的紙或其他合適的介質(zhì),因為可以例如通過對紙或其他介質(zhì)進行光學(xué)掃描,接著進行編輯、解譯或必要時以其他合適方式進行處理來以電子方式獲得所述程序,然后將其存儲在計算機存儲器中。
應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。
在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(pga),現(xiàn)場可編程門陣列(fpga)等。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以權(quán)利要求的保護范圍為準(zhǔn)。