999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

構(gòu)件模型的容錯(cuò)體系結(jié)構(gòu)和策略研究

2007-12-31 00:00:00
計(jì)算機(jī)應(yīng)用研究 2007年12期

摘要:為了提高分布應(yīng)用的健壯性,通常需要開(kāi)發(fā)人員編寫(xiě)相應(yīng)的容錯(cuò)代碼?,F(xiàn)有的CORBA構(gòu)件模型通過(guò)定義構(gòu)件的端口特征,以組裝的方式實(shí)現(xiàn)代碼的二進(jìn)制級(jí)復(fù)用,它使用戶能夠快速開(kāi)發(fā)和部署分布應(yīng)用。在此基礎(chǔ)上,如何在構(gòu)件模型下快速靈活地建立容錯(cuò)應(yīng)用成為一個(gè)令人關(guān)注的話題。通過(guò)設(shè)計(jì)構(gòu)件模型下的容錯(cuò)體系結(jié)構(gòu),提供了快速靈活開(kāi)發(fā)容錯(cuò)應(yīng)用的機(jī)制,并提出了解決兩種失效類型的容錯(cuò)策略和算法。

關(guān)鍵詞:分布構(gòu)件;容錯(cuò);策略

中圖分類號(hào):TP311.52文獻(xiàn)標(biāo)志碼:A

文章編號(hào):1001-3695(2007)12-0134-03

隨著分布式應(yīng)用的發(fā)展,CORBA作為一種成熟的中間件技術(shù),具有跨操作系統(tǒng)、跨平臺(tái)、跨語(yǔ)言等強(qiáng)大的互操作性,但其復(fù)雜性成為它在企業(yè)中應(yīng)用的主要障礙。分布構(gòu)件技術(shù)以降低中間件平臺(tái)的復(fù)雜性、支持分布式企業(yè)應(yīng)用和代碼的二進(jìn)制重用[1,2]為目標(biāo),已成為中間件技術(shù)的主要發(fā)展方向。1997年6月,CORBA平臺(tái)上的構(gòu)件模型(CORBA component model,CCM )被正式提入OMG組織的研究日程,OMG組織發(fā)布了CCM的RFP;2002年6月,CCM正式成為CORBA 3.0規(guī)范的一部分。在此期間,許多大學(xué)和組織均對(duì)CORBA構(gòu)件技術(shù)進(jìn)行了研究,并開(kāi)發(fā)出了相應(yīng)的原型平臺(tái),如OpenCCM[3,4]、MicoCCM[5]、K2-CCM、EJCCM等。CORBA構(gòu)件模型作為一種企業(yè)計(jì)算中間件還需要具備高可用性,因此,如何在CORBA構(gòu)件模型上建立高可用的系統(tǒng)成為一個(gè)重要的課題。20世紀(jì)90年代,許多大學(xué)設(shè)計(jì)和實(shí)現(xiàn)了基于CORBA平臺(tái)的容錯(cuò)系統(tǒng)。例如Piranha[6]系統(tǒng)通過(guò)在ORB中使用組通信機(jī)制提供冗余對(duì)象的服務(wù);Eternal[7]系統(tǒng)通過(guò)使用截取器(interceptor)來(lái)實(shí)現(xiàn)容錯(cuò);容錯(cuò)CORBA規(guī)范[8]通過(guò)在一個(gè)IOR中封裝多個(gè)profile提供primary-backup容錯(cuò)策略。但是,如何充分利用CORBA構(gòu)件模型的優(yōu)勢(shì),靈活、快速地建立一個(gè)容錯(cuò)系統(tǒng)的研究還很少。

本文從分析構(gòu)件模型的優(yōu)勢(shì)入手,闡述了在分布構(gòu)件模型下快速建立容錯(cuò)系統(tǒng)的主要思想。在此基礎(chǔ)上提出了AARC(assembly architecture based on replicated component)容錯(cuò)體系結(jié)構(gòu),詳細(xì)地描述了如何在AARC結(jié)構(gòu)上建立容錯(cuò)應(yīng)用。最后給出了該結(jié)構(gòu)下的四種實(shí)用的容錯(cuò)算法。

1AARC體系結(jié)構(gòu)

分布構(gòu)件技術(shù)將一個(gè)應(yīng)用劃分為構(gòu)件和容器兩部分。其中構(gòu)件是應(yīng)用的業(yè)務(wù)邏輯,容器提供了應(yīng)用的運(yùn)行和管理環(huán)境。容器概念的引入為應(yīng)用服務(wù)器對(duì)象的容錯(cuò)策略和機(jī)制提供了良好的空間。基于構(gòu)件平臺(tái)的容錯(cuò)策略和機(jī)制的實(shí)現(xiàn)應(yīng)當(dāng)使構(gòu)件的開(kāi)發(fā)者不必編寫(xiě)與容錯(cuò)相關(guān)的代碼就可以選擇多種容錯(cuò)策略,并按照要求生成各種容錯(cuò)代碼。這樣,CCM用戶就可以快速地開(kāi)發(fā)容錯(cuò)應(yīng)用,并聲明他需要使用的由容器提供的容錯(cuò)策略。

基于上述思想,筆者提出了一種基于CCM平臺(tái)的容錯(cuò)體系結(jié)構(gòu)。為方便建模首先給出相關(guān)定義。

定義1管理域Domain=∪ni=0ComponentServeri。應(yīng)用涉及的構(gòu)件服務(wù)器構(gòu)成一個(gè)管理域。

定義2構(gòu)件服務(wù)器ComponentServer={〈Container,Component〉i|0≤i<n|}。構(gòu)件服務(wù)器由多個(gè)容器和構(gòu)件的序偶組成。

定義3容器Container={Policyi|0≤i<n}。容器管理了相應(yīng)構(gòu)件的各種運(yùn)行時(shí)策略。

定義4組裝件Assembly={Componenti,Connectionjk|0≤i, j,k<n}。組裝件由一系列構(gòu)件以及它們之間的連接構(gòu)成。構(gòu)件的組裝是CCM代碼復(fù)用的集中體現(xiàn)。

組裝件是構(gòu)成用戶應(yīng)用的基石,建立具有容錯(cuò)功能的組裝件可以增強(qiáng)應(yīng)用的可用性。因此,在筆者的CCM系統(tǒng)中定義了與容錯(cuò)相關(guān)的策略集FPolicie。其中FPolicies={fail-silent,LMRT-fail-silent,Byzantine,F(xiàn)PoliciesContainer,LMRT-Byzantine}。

定義5容錯(cuò)構(gòu)件ReplicatedComponent={Agent,Componenti|0≤i<n,Componentj=Componentk,0≤j,k<n}。

2AARC的容錯(cuò)研究

在AARC中,利用冗余的構(gòu)件來(lái)提高組裝件的可用性對(duì)CCM的調(diào)用機(jī)制提出了新的要求。對(duì)于處理Byzantine類型的失效需要同時(shí)將請(qǐng)求發(fā)送到多個(gè)冗余的構(gòu)件中才能發(fā)現(xiàn)這種失效并進(jìn)行恢復(fù)。因此,需要將一個(gè)同步的請(qǐng)求分解為多個(gè)異步請(qǐng)求來(lái)達(dá)到多個(gè)請(qǐng)求并行執(zhí)行的目的。文獻(xiàn)[7]中使用了CORBA的異步消息調(diào)用機(jī)制來(lái)完成請(qǐng)求的并行激發(fā)。但是,CORBA的異步調(diào)用機(jī)制由ORB內(nèi)核提供,應(yīng)答處理對(duì)象由ORB管理,這樣很難將一個(gè)冗余的請(qǐng)求與多個(gè)應(yīng)答對(duì)應(yīng)起來(lái)。基于異步消息的冗余機(jī)制需要內(nèi)核的支持,這會(huì)影響系統(tǒng)的互操作性。

筆者提出了一個(gè)基于one way調(diào)用和構(gòu)件事件端口的容錯(cuò)機(jī)制。首先引入一個(gè)特殊的構(gòu)件稱做代理構(gòu)件,它負(fù)責(zé)接收其他構(gòu)件發(fā)送過(guò)來(lái)的調(diào)用請(qǐng)求,并將請(qǐng)求同時(shí)發(fā)送給多個(gè)冗余的服務(wù)構(gòu)件以達(dá)到多個(gè)冗余請(qǐng)求的并行執(zhí)行。代理構(gòu)件還負(fù)責(zé)收集所有的應(yīng)答并進(jìn)行過(guò)濾,最后將正確的結(jié)果返回給調(diào)用者構(gòu)件。例如下面的構(gòu)件描述構(gòu)成組裝件的一部分。組裝件中的其他構(gòu)件會(huì)使用math構(gòu)件的the_comp刻面來(lái)進(jìn)行對(duì)數(shù)運(yùn)算。

interface Compute {

double ln(in long val);

};

component Maths {

privodes Compute the_comp;

};

通過(guò)一個(gè)特殊的容錯(cuò)構(gòu)件編譯器,筆者將這個(gè)構(gòu)件描述映射為一個(gè)容錯(cuò)的IDL 3.0的描述。映射后的構(gòu)件描述如下:

eventtype Ret_Compute_ln {

public CORBA::Cookie cookie;

public double ret;

factory create(in CORBA::Cookie id, in long ret);

};

interface Compute {

oneway void ln(in CORBA::Cookie id, in long val);

};

component Maths {

privodes Compute the_comp;

publishes Ret_Compute_ln

the_ Ret_Compute_ln;

};

此外還要為該容錯(cuò)版本的構(gòu)件映射一個(gè)代理構(gòu)件的描述,代理構(gòu)件封裝了容錯(cuò)邏輯的細(xì)節(jié)。其描述如下:

eventtype Ret_Compute_ln {

public CORBA::Cookie cookie;

public double ret;

factory create(in CORBA::Cookie id, in long ret);

};

interface Compute {

double ln(in CORBA::Cookie id, in long val);

};

component Maths {

privodes Compute the_comp;

consumes Ret_Compute_ln

the_ Ret_Compute_ln;

};

容錯(cuò)應(yīng)用的開(kāi)發(fā)者只需要按照通常方式描述一個(gè)構(gòu)件,并通過(guò)容錯(cuò)工具為構(gòu)件生成容錯(cuò)的IDL 3.0映射和為容錯(cuò)構(gòu)件生成構(gòu)件實(shí)現(xiàn)的包裝類,來(lái)簡(jiǎn)化和加速容錯(cuò)應(yīng)用的開(kāi)發(fā)。在代理構(gòu)件的生成代碼中,容錯(cuò)工具為構(gòu)件的各種策略均生成了相應(yīng)的代碼。容錯(cuò)構(gòu)件在部署和組裝后就可以從容器中獲取相應(yīng)的容錯(cuò)策略來(lái)執(zhí)行相應(yīng)的容錯(cuò)算法。

3AARC的容錯(cuò)算法

本節(jié)討論代理構(gòu)件針對(duì)上述四種容錯(cuò)策略提供的容錯(cuò)算法。為了方便算法描述,本文進(jìn)行如下定義:

a)容錯(cuò)構(gòu)件由n個(gè)副本構(gòu)成,它們刻面的引用分別為 refi。其中0≤i<n。

b)容錯(cuò)構(gòu)件的客戶請(qǐng)求為request,代理構(gòu)件的應(yīng)答為reply。

c)每一個(gè)構(gòu)件的副本應(yīng)答為replyi。其中0≤i<n。

此外,算法中還需要一個(gè)同步變量,它由event標(biāo)志。

3.1針對(duì)fail-silence失效的容錯(cuò)算法

Fail-silence失效也稱做fail-stop失效。當(dāng)一個(gè)構(gòu)件不能工作時(shí),該構(gòu)件不會(huì)對(duì)相應(yīng)的請(qǐng)求給出應(yīng)答。針對(duì)這種失效,筆者提出了相應(yīng)的溫備份算法FSR(fail-silence recovery)。FSR算法如下:

input request, replicated components group

G={refi|0≤i

output reply

for each replicated component refi∈G

create Event

send request to refi

wait Event

if has no system exception then

reply ← replyi

return reply

end if

end for

throw exception

相應(yīng)的代理構(gòu)件接收應(yīng)答算法RR(reply receive)如下:

input notification service event, Event

output replyi

if no exception received then

replyi←retrieve reply form notification service event

set Event

else

exceptioni←system exception

set Event

end if

算法FSR和RR共同完成單個(gè)構(gòu)件的fail-silence失效恢復(fù)。之所以稱為溫備份是由于處于備份狀態(tài)的構(gòu)件,通常情況下在一次調(diào)用中不接收和處理請(qǐng)求,只有在主構(gòu)件失效時(shí)才參加到處理請(qǐng)求的任務(wù)中。該算法可以處理多個(gè)構(gòu)件副本發(fā)生fail-silence失效的情況。其中失效的同類構(gòu)件副本書(shū)不能大于n-1;否則算法拋出構(gòu)件失效異常。

3.2減少fail-silence失效的平均恢復(fù)時(shí)間

LMRT-fail-silence容錯(cuò)策略針對(duì)fail-silence失效提供了一種最小平均恢復(fù)時(shí)間的容錯(cuò)算法LMRT-FSR(least mean recovery time-Fail-silence recovery),其描述如下:

input request, replicated components group

G={refi| 0≤ i

output reply

for each replicated component refi ,refj∈G

create Event

send request to refi

send request to refj

wait Event

if replyi is not 1 then

reply←replyi

else if replyj is not 1

reply←replyj

end if

if reply is not 1 then

return reply

end if

end for

throw exception

相應(yīng)的代理構(gòu)件接收應(yīng)答的算法也使用上述RR算法。算法LMRT-FSR和RR 結(jié)合使用,通過(guò)同時(shí)將請(qǐng)求發(fā)送給兩個(gè)構(gòu)件副本的熱備份方法進(jìn)行容錯(cuò)。處理請(qǐng)求的兩個(gè)構(gòu)件副本在本次請(qǐng)求中稱為活躍構(gòu)件。處理請(qǐng)求的兩個(gè)副本中,只要有一個(gè)給出應(yīng)答,代理構(gòu)件就可以將應(yīng)答返回給實(shí)際的調(diào)用者。LMRT-FSR算法在一個(gè)活躍構(gòu)件副本fail-silence失效時(shí)仍然能夠繼續(xù)工作,并且它的平均恢復(fù)時(shí)間t≈0。這是通過(guò)花費(fèi)額外的計(jì)算資源得到的。實(shí)際應(yīng)用中,可以根據(jù)應(yīng)用的需求擴(kuò)大活躍備份構(gòu)件的數(shù)目。

3.3針對(duì)Byzantine失效的容錯(cuò)算法

通常在軟件中,常見(jiàn)的失效除了fail-silence外,還可能發(fā)生Byzantine失效。當(dāng)一個(gè)構(gòu)件發(fā)生Byzantine失效時(shí),它不會(huì)發(fā)生任何異常,也不會(huì)拒絕請(qǐng)求。相反,它會(huì)針對(duì)其請(qǐng)求偶然地給出一個(gè)錯(cuò)誤的應(yīng)答,構(gòu)件的使用者很難發(fā)現(xiàn)構(gòu)件的失效。上述FSR和LMRT-FSR算法不能解決Byzantine失效帶來(lái)的問(wèn)題。針對(duì)前面定義的Byzantine策略,設(shè)計(jì)了一個(gè)恢復(fù)Byzantine失效的容錯(cuò)算法BR,其描述如下:

input request, replicated components group

G={refi| 0≤i

output reply

for each replicated component refi ,refj∈G

create Event1

create Event2

send request to refi

send request to refj

wait Event1

wait Event2

if has no exception then

if replyi equals replyj then

reply←replyi

return reply

end if

end if

end for

throw exception

算法BR與RR一起可以發(fā)現(xiàn)和恢復(fù)Byzantine失效的構(gòu)件請(qǐng)求。BR通過(guò)比較來(lái)自兩個(gè)活躍構(gòu)件副本的應(yīng)答來(lái)發(fā)現(xiàn)Byzantine失效。一旦發(fā)生失效,則重新執(zhí)行處理過(guò)程。BR算法與LMRT-Fail-silence算法相比,使用了等量的計(jì)算資源。盡管帶來(lái)了額外的應(yīng)答處理開(kāi)銷,但是它卻能夠發(fā)現(xiàn)和恢復(fù)更高級(jí)的失效類型。

3.4降低Byzantine失效容錯(cuò)算法的恢復(fù)時(shí)間

為了達(dá)到更少的平均恢復(fù)時(shí)間,構(gòu)件平臺(tái)提供了一種LMRT-Byzantine策略。這種策略供構(gòu)件的部署者使用,通過(guò)它聲明在失效管理中使用LMRT-BR容錯(cuò)算法。LMRT-BR算法如下:

input request, replicated components group

G={refi|0≤i

output reply

for each replicated component refi,refj,refk∈G

create Event1, Event2, Event3

send request to refi

send request to refj

send request to refk

wait Event1, Event2,Event3

if has no more than one exception then

if replyi equals replyj then

reply←replyi

return reply

else if replyj equals replyk then

reply ← replyj

return reply

else if replyk equals replyi then

reply ← replyk

return reply

end if

end if

end for

throw exception

對(duì)應(yīng)LMRT-BR的應(yīng)答處理算法同RR算法。它通過(guò)增加一次請(qǐng)求中活躍副本的個(gè)數(shù)達(dá)到減少平均恢復(fù)時(shí)間的目的。只要有至少兩個(gè)副本給出應(yīng)答,并且應(yīng)答的結(jié)果相同就可以認(rèn)為執(zhí)行成功。這樣,不僅在最多只有一個(gè)活躍構(gòu)件發(fā)生Byzantine失效的情況恢復(fù)了正確的應(yīng)答,而且平均恢復(fù)時(shí)間t≈0。這極大地提高了系統(tǒng)的可用性。實(shí)際應(yīng)用中,可以通過(guò)修改和配置算法的參數(shù)對(duì)多個(gè)活躍構(gòu)件發(fā)生Byzantine失效的情況進(jìn)行恢復(fù)。

4結(jié)束語(yǔ)

本文提出了一個(gè)在分布構(gòu)件模型下快速建立容錯(cuò)應(yīng)用的AARC體系結(jié)構(gòu)。以對(duì)數(shù)計(jì)算構(gòu)件的例子闡述了該模型下,通過(guò)IDL描述隱式地將構(gòu)件普通定義轉(zhuǎn)換為容錯(cuò)定義的方法。使用構(gòu)件的事件端口,在將一個(gè)同步請(qǐng)求分解為多個(gè)異步請(qǐng)求的基礎(chǔ)上,給出四種高可用的容錯(cuò)算法,并對(duì)它們的特點(diǎn)進(jìn)行了詳細(xì)的分析。在進(jìn)一步研究中,將這些容錯(cuò)結(jié)構(gòu)和算法與負(fù)載均衡綜合考慮,從而推動(dòng)CCM構(gòu)件技術(shù)逐步走向?qū)嵱煤统墒臁?/p>

參考文獻(xiàn):

[1]EDDON G,EDDON H.Inside distributed COM[M].Redmond,WA:Microsoft Press,1998.

[2]BOX D.Essential COM[M].Mass:Addison-Wesley,1998.

[3]MARVIE R,MERLE P. CORBA component model: discussion and use with OpenCCM[EB/OL].[2006].http://corbaweb.lifl.fr/OpenCCM/CCM.html.

[4]MERLE P. OpenCCM[C]//Proc of the 1st Object Web Conference.Paris: [s.n.],2001:30-31.

[5]The MICO CORBA component project[EB/OL].[2006].http://www.fpx.de/MicoCCM.

[6]MAFFIES S. Piranha: a CORBA tool for high availability[J].IEEE Computer, 1997,30(4): 59-66.

[7]NARASIMHAN P,MOUSER L E,MELLIAR-Smith P M.Exploiting the Internet inter-ORB protocol to provide CORBA with fault-tolerance[C]//Proc of the 3rd USENIX Conference on object-Oriented Technologies and Systems(COOTS). Oregon:[s.n.],1997.

[8]OMG. Fault tolerant CORBA specification v1.0[S].2000.

“本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文”

主站蜘蛛池模板: 欧美日韩中文国产| 国产黄网永久免费| 熟女视频91| 精品三级网站| 亚洲中文字幕在线观看| 午夜视频免费试看| 在线视频精品一区| 人人澡人人爽欧美一区| 日本中文字幕久久网站| 思思99热精品在线| 中文成人无码国产亚洲| 日韩大乳视频中文字幕 | 伊在人亚洲香蕉精品播放| …亚洲 欧洲 另类 春色| 国产一级裸网站| av在线5g无码天天| 青青网在线国产| 欧美α片免费观看| 欧美精品一区二区三区中文字幕| 就去色综合| 亚洲欧洲AV一区二区三区| 久久久久久久久久国产精品| 天天激情综合| 88av在线看| 久久精品免费国产大片| 88av在线| 欧美97欧美综合色伦图| 欧美亚洲国产精品久久蜜芽| 久久精品最新免费国产成人| 国产三级韩国三级理| 中文天堂在线视频| 色妺妺在线视频喷水| 精品无码一区二区三区电影| 麻豆精品久久久久久久99蜜桃| 久久久久久尹人网香蕉| 青青操视频免费观看| 中文成人在线视频| 91色在线观看| 中文字幕无码中文字幕有码在线| 全部免费毛片免费播放| 99国产精品免费观看视频| 国产精品自在自线免费观看| 人禽伦免费交视频网页播放| 久久亚洲欧美综合| 香蕉在线视频网站| 99999久久久久久亚洲| 色老头综合网| 女人爽到高潮免费视频大全| 一本二本三本不卡无码| 99这里只有精品免费视频| 亚洲成人在线免费观看| 精品国产自在现线看久久| 亚洲国产高清精品线久久| 91精品国产一区自在线拍| 亚洲天堂精品在线| 亚洲中文字幕久久精品无码一区| 国产成年女人特黄特色大片免费| 日本高清免费不卡视频| 日本午夜精品一本在线观看| 精品伊人久久大香线蕉网站| 免费全部高H视频无码无遮掩| 国产精彩视频在线观看| 欧美va亚洲va香蕉在线| 亚洲av无码成人专区| 日韩精品亚洲精品第一页| 亚洲成人播放| 国外欧美一区另类中文字幕| 亚洲成a人在线观看| 日韩 欧美 国产 精品 综合| 国内a级毛片| 国产一区在线视频观看| 成年av福利永久免费观看| 国产一区二区三区在线观看免费| 国产91在线|中文| 亚洲区一区| 九色视频线上播放| 日本一区二区三区精品国产| 97人人模人人爽人人喊小说| 中国国产高清免费AV片| 日韩精品一区二区三区swag| 日韩毛片在线播放| 国产打屁股免费区网站|