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

一種高效的Web服務(wù)遷移算法

2007-01-01 00:00:00劉紹華

摘要:為了滿足Web服務(wù)動(dòng)態(tài)分布的需求,并保證Web服務(wù)遷移的一致性,提出一種基于Broker的Web服務(wù)遷移算法WS Broker#65377;其在保證遷移一致性的基礎(chǔ)上了,提高了遷移效率#65377;另外,通過(guò)分析客戶請(qǐng)求之間的依賴關(guān)系,提前執(zhí)行了某些阻塞的客戶請(qǐng)求,縮短了服務(wù)中斷時(shí)間#65377;實(shí)驗(yàn)結(jié)果表明,WS Broker在保證遷移一致性的基礎(chǔ)上有效地提高了Web服務(wù)遷移的效率#65377;

關(guān)鍵詞:Web服務(wù); 服務(wù)遷移算法; 遷移一致性; 依賴關(guān)系

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

文章編號(hào):10013695(2007)04006404

0引言

Web服務(wù)以XML#65380;SOAP#65380;WSDL和UDDI為核心,支持開(kāi)放#65380;動(dòng)態(tài)的互操作模式;具有良好的封裝性和強(qiáng)大的集成能力;可極大地降低系統(tǒng)集成的復(fù)雜性和開(kāi)銷(xiāo),因此獲得了產(chǎn)業(yè)界的廣泛支持和學(xué)術(shù)界的重視[1]#65377;尤其是UDDI的出現(xiàn),使Web服務(wù)可以被動(dòng)態(tài)地發(fā)現(xiàn)和綁定#65377;但是在UDDI將代表Web服務(wù)的URL發(fā)送給客戶端,客戶端利用URL與Web服務(wù)建立連接后,它們之間的連接卻是靜態(tài)的#65377;這種靜態(tài)結(jié)構(gòu)限制了Web服務(wù)在運(yùn)行時(shí)適應(yīng)其執(zhí)行環(huán)境變化的能力,無(wú)法滿足在任意運(yùn)行時(shí)刻動(dòng)態(tài)更換運(yùn)行環(huán)境的需求#65377;為了滿足Web服務(wù)動(dòng)態(tài)分布的需求,需要實(shí)現(xiàn)Web服務(wù)的遷移#65377;

實(shí)現(xiàn)Web服務(wù)的遷移,具有以下優(yōu)點(diǎn):①Web服務(wù)在運(yùn)行期間從高負(fù)載的服務(wù)器遷移到低負(fù)載的服務(wù)器,可以提高系統(tǒng)的整體性能和吞吐量#65377;②將Web服務(wù)遷移到被訪問(wèn)數(shù)據(jù)所在服務(wù)器,可以降低網(wǎng)絡(luò)訪問(wèn)開(kāi)銷(xiāo)#65377;③服務(wù)器需要定期關(guān)機(jī)維護(hù)#65377;維護(hù)期間,可以將Web服務(wù)遷移到其他服務(wù)器#65377;當(dāng)源服務(wù)器可用時(shí),再將Web服務(wù)遷移回來(lái),可以提高Web服務(wù)的可用性#65377;

Web服務(wù)可以分為無(wú)狀態(tài)和有狀態(tài)兩類#65377;無(wú)狀態(tài)Web服務(wù)對(duì)于任意客戶端在任意時(shí)刻發(fā)出的請(qǐng)求,總能返回同一結(jié)果,如報(bào)道天氣預(yù)報(bào)的Web服務(wù)#65377;無(wú)狀態(tài)Web服務(wù)不具有運(yùn)行時(shí)狀態(tài),遷移實(shí)現(xiàn)相對(duì)較簡(jiǎn)單,不是本文研究的重點(diǎn)#65377;有狀態(tài)Web服務(wù)對(duì)于同一客戶端發(fā)出的請(qǐng)求,返回的結(jié)果可能依賴于該客戶端的上一次請(qǐng)求,如電子商務(wù)中提供購(gòu)物車(chē)服務(wù)的Web服務(wù)#65377;因此,服務(wù)器需要為訪問(wèn)有狀態(tài)Web服務(wù)的每個(gè)客戶端維護(hù)一個(gè)狀態(tài)信息#65377;與客戶端對(duì)應(yīng)的Web服務(wù)狀態(tài)信息在處理客戶端第一次請(qǐng)求時(shí)被創(chuàng)建,在處理完所有相應(yīng)的請(qǐng)求后被銷(xiāo)毀#65377;有狀態(tài)Web服務(wù)遷移就是將與它相關(guān)的某些或全部Web服務(wù)狀態(tài)信息從一臺(tái)服務(wù)器遷移到另一臺(tái)服務(wù)器#65377;本文重點(diǎn)研究有狀態(tài)Web服務(wù)的遷移#65377;下面提到的Web服務(wù)遷移表示的是有狀態(tài)Web服務(wù)的遷移#65377;

目前,研究人員已經(jīng)提出了很多Web服務(wù)遷移算法#65377;但是研究?jī)?nèi)容主要集中在如何對(duì)Web服務(wù)進(jìn)行遷移,很少研究如何保證Web服務(wù)遷移的一致性#65377;然而,保證Web服務(wù)遷移一致性,對(duì)保證Web服務(wù)的可用性至關(guān)重要#65377;尤其在當(dāng)今電子商務(wù)已經(jīng)成為一些企業(yè)的主要收入來(lái)源,在對(duì)代表企業(yè)關(guān)鍵業(yè)務(wù)的Web服務(wù)進(jìn)行遷移時(shí),保證Web服務(wù)遷移前后的一致性,可以減少由于服務(wù)不可用造成的交易失敗,從而為企業(yè)贏得更多利潤(rùn)并保持良好形象#65377;保證Web服務(wù)遷移一致性,需要滿足狀態(tài)一致性#65380;引用一致性和消息一致性三個(gè)約束#65377;

本文提出的Web服務(wù)遷移算法 WS Broker可以保證Web服務(wù)遷移的一致性#65377;在保證一致性的基礎(chǔ)上,本文提出了兩種改進(jìn)遷移效率的策略:①利用基于Broker的遷移算法,減少了遷移過(guò)程中Web服務(wù)中斷時(shí)間,降低了遷移后Web服務(wù)對(duì)源服務(wù)器的依賴;②通過(guò)分析客戶請(qǐng)求之間的依賴關(guān)系,減少了客戶請(qǐng)求的阻塞時(shí)間,進(jìn)一步縮短了服務(wù)中斷時(shí)間#65377;實(shí)驗(yàn)結(jié)果表明,WS Broker可以有效地提高Web服務(wù)遷移的效率#65377;在下文中,將Web服務(wù)遷移前的服務(wù)器稱為源服務(wù)器,遷移后的服務(wù)器稱為目標(biāo)服務(wù)器#65377;

1相關(guān)工作

目前,關(guān)于Web服務(wù)遷移的研究很多,但還沒(méi)有一種有效的方法來(lái)保證Web服務(wù)遷移的一致性#65377;文獻(xiàn)[2]提出的一種端對(duì)端的 Web服務(wù)遷移框架LAMS,可以幫助移動(dòng)用戶通過(guò)WAP協(xié)議實(shí)現(xiàn)Web服務(wù)遷移;但是LAMS不能遷移Web服務(wù)的運(yùn)行時(shí)狀態(tài),只能將Web服務(wù)重新部署到目標(biāo)服務(wù)器,這顯然不能保證遷移一致性#65377;文獻(xiàn)[3]在.NET框架之上,利用面向方面的編程(AOP)技術(shù)實(shí)現(xiàn)了專門(mén)負(fù)責(zé)對(duì)象和進(jìn)程遷移的中間件;這個(gè)中間件只可以在遷移時(shí)間非常短的情況下保證遷移一致性,具有很大的局限性#65377;實(shí)際上,Web服務(wù)遷移通常需要經(jīng)過(guò)網(wǎng)絡(luò)傳輸,遷移時(shí)間是不能被輕易忽略的#65377;文獻(xiàn)[4]利用基于服務(wù)定義的邏輯檢查點(diǎn)技術(shù),提高了Web服務(wù)遷移的效率,但是忽略了在遷移過(guò)程中收到的客戶請(qǐng)求,因此它也不能保證遷移一致性#65377;文獻(xiàn)[5]重點(diǎn)研究如何利用P2P技術(shù)查找遷移后的Web服務(wù),并不保證遷移一致性#65377;文獻(xiàn)[6]中把EJB組件分為無(wú)狀態(tài)和有狀態(tài)兩類#65377;為了保證有狀態(tài)EJB組件的遷移一致性,在遷移前,需要讓其進(jìn)入安全狀態(tài),停止處理客戶請(qǐng)求#65377;這種方法雖然保證了一致性,但增加了服務(wù)中斷時(shí)間#65377;文獻(xiàn)[7]提出的Web Session遷移算法,在遷移過(guò)程中不允許改變?cè)捶?wù)器上的Web Session狀態(tài),否則不能保證遷移一致性#65377;文獻(xiàn)[8]提出一種基于操作系統(tǒng)實(shí)現(xiàn)的TCP Session遷移機(jī)制#65377;該算法雖然利用基于日志的回溯方法保證了TCP Session的遷移一致性,但是需要在操作系統(tǒng)級(jí)別對(duì)遷移進(jìn)行支持,所以不具有通用性#65377;Web服務(wù)與EJB和Web Session相比,具有很多相似性,但是也有自己的特點(diǎn)#65377;例如,Web服務(wù)不包含真正業(yè)務(wù)邏輯的實(shí)現(xiàn),所以Web服務(wù)不可照搬它們的遷移方法#65377;

文獻(xiàn)[9,10]介紹了進(jìn)程遷移算法#65377;Total Copy是最早使用的進(jìn)程遷移算法,實(shí)現(xiàn)相對(duì)較簡(jiǎn)單#65377;該算法雖然保證了進(jìn)程遷移的一致性,但是在遷移過(guò)程中,進(jìn)程掛起時(shí)間過(guò)長(zhǎng),容易導(dǎo)致客戶請(qǐng)求因超時(shí)而得不到處理#65377;為了解決這個(gè)問(wèn)題,Theime在V操作系統(tǒng)中提出了PreCopy算法#65377;PreCopy算法縮短了進(jìn)程掛起時(shí)間,但是為了保證遷移一致性,需要再次遷移不一致的進(jìn)程狀態(tài),增加了遷移成本#65377;Demand Page Algorithm算法只遷移進(jìn)程在目標(biāo)機(jī)器執(zhí)行所需要的最少狀態(tài)信息,當(dāng)進(jìn)程需要時(shí),再遷移其他狀態(tài)信息#65377;該算法雖然降低了進(jìn)程遷移的時(shí)間,但是產(chǎn)生了Residual Dependency[10]問(wèn)題#65377;與進(jìn)程相比,Web服務(wù)具有遷移粒度小,不需要遷移整個(gè)進(jìn)程狀態(tài)的特點(diǎn)#65377;所以Web服務(wù)也不可照搬進(jìn)程遷移算法#65377;

2遷移算法

2.1遷移模型

Web服務(wù)遷移是把Web服務(wù)的狀態(tài)信息從源服務(wù)器遷移到目標(biāo)服務(wù)器#65377;在遷移過(guò)程中,首先在源服務(wù)器中提取Web服務(wù)的狀態(tài)信息,然后將狀態(tài)信息從源服務(wù)器傳送到目標(biāo)服務(wù)器,最后在目標(biāo)服務(wù)器創(chuàng)建Web服務(wù),恢復(fù)其狀態(tài)#65377;每個(gè)Web服務(wù)的狀態(tài)信息包含兩部分內(nèi)容:①服務(wù)描述信息,包括客戶端可以訪問(wèn)的Web服務(wù)操作#65380;Web服務(wù)對(duì)業(yè)務(wù)邏輯實(shí)現(xiàn)的引用等信息#65377;這部分信息是由服務(wù)提供方指定的,運(yùn)行期間不會(huì)發(fā)生改變#65377;②運(yùn)行時(shí)狀態(tài),也稱為服務(wù)上下文(Service Context)#65377;它是在客戶端與服務(wù)實(shí)現(xiàn)之間傳播的對(duì)話性質(zhì)的或者上下文性質(zhì)的信息,如某種事務(wù)ID或會(huì)話ID#65377;

Web服務(wù)遷移可以只把Web服務(wù)的一部分狀態(tài)信息遷移到目標(biāo)服務(wù)器,仍保留源服務(wù)器中的Web服務(wù)讓其為其他客戶端繼續(xù)提供服務(wù),也可以將Web服務(wù)的所有狀態(tài)信息遷移到目標(biāo)服務(wù)器,然后刪除源服務(wù)器中的Web服務(wù)#65377;為了實(shí)現(xiàn)Web服務(wù)遷移, Web服務(wù)的狀態(tài)信息都必須是可以被序列化的#65377;也就是說(shuō),源服務(wù)器必須能夠把Web服務(wù)狀態(tài)信息序列化到字節(jié)流中;目標(biāo)服務(wù)器必須能夠從字節(jié)流中反序列化出Web服務(wù)的狀態(tài)信息#65377;本文只研究Java語(yǔ)言環(huán)境中的Web服務(wù)遷移#65377;Java語(yǔ)言通過(guò)Serializable接口支持對(duì)象序列化,只要代表Web服務(wù)狀態(tài)信息的Java對(duì)象實(shí)現(xiàn)Serializable接口,Java虛擬機(jī)就可以對(duì)其進(jìn)行序列化和反序列化#65377;

Web服務(wù)遷移需要Web服務(wù)運(yùn)行時(shí)環(huán)境的支持#65377;Web服務(wù)運(yùn)行時(shí)環(huán)境是指在運(yùn)行時(shí)對(duì)Web服務(wù)進(jìn)行管理的軟件,如AXIS 12[11]#65380;OnceAS[12]等#65377;通過(guò)直接修改Web服務(wù)運(yùn)行時(shí)環(huán)境的源代碼,添加對(duì)Web服務(wù)遷移的支持#65377;該方法雖然比較簡(jiǎn)單,但是對(duì)于不同的Web服務(wù)運(yùn)行時(shí)環(huán)境都要重新修改,使工作量巨大,無(wú)法在實(shí)際中得到廣泛應(yīng)用#65377;本文利用AOP編程技術(shù),可以在不修改Web服務(wù)運(yùn)行時(shí)環(huán)境源代碼的基礎(chǔ)上,實(shí)現(xiàn)對(duì)Web服務(wù)遷移的支持#65377;如圖1所示,Migration Server既負(fù)責(zé)把Web服務(wù)遷移到目標(biāo)服務(wù)器,也負(fù)責(zé)接收遷移到本服務(wù)器的Web服務(wù)#65377;Migration Server可以被實(shí)現(xiàn)為一種特殊的服務(wù),專門(mén)負(fù)責(zé)服務(wù)遷移#65377;例如,在AXIS Engine中,Migration Server可以作為一個(gè)特殊的Web服務(wù);在OnceAS中,則可以作為被微內(nèi)核管理的一個(gè)系統(tǒng)服務(wù)#65377;

在遷移過(guò)程中,繼續(xù)讓W(xué)eb服務(wù)在源服務(wù)器處理客戶請(qǐng)求,提高了Web服務(wù)的可用性,卻造成Web服務(wù)遷移前后的狀態(tài)不一致#65377;為了保證遷移一致性,在遷移到目標(biāo)服務(wù)器的Web服務(wù)開(kāi)始處理客戶請(qǐng)求之前,必須與遷移前的Web服務(wù)進(jìn)行狀態(tài)同步#65377;目前,進(jìn)行狀態(tài)同步的方法大致可以分為兩類:①在Web服務(wù)遷移之后,繼續(xù)傳遞不一致的狀態(tài)#65377;這種方法增大了Web服務(wù)遷移的成本#65377;②在遷移之后,Web服務(wù)立即開(kāi)始處理客戶請(qǐng)求,需要時(shí)再對(duì)狀態(tài)進(jìn)行同步#65377;這種方法造成Residual Dependency[13]問(wèn)題,也增加了客戶請(qǐng)求的處理時(shí)間#65377;為了彌補(bǔ)這兩類方法的不足,本文在服務(wù)遷移的過(guò)程中引入了一個(gè)Broker(圖1)#65377;源服務(wù)器不再把不一致?tīng)顟B(tài)直接遷移到目標(biāo)服務(wù)器,而是存放到Broker中;目標(biāo)服務(wù)器只需要與保存在Broker中的狀態(tài)進(jìn)行同步即可#65377;這種方法降低了遷移成本,也解除了目標(biāo)服務(wù)器與源服務(wù)器的Residual Dependency#65377;Broker可以由分布式文件系統(tǒng)實(shí)現(xiàn),也可以由數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)#65377;

2.2基于操作依賴關(guān)系的性能改進(jìn)

根據(jù)21節(jié)的分析,遷移到目標(biāo)服務(wù)器的Web服務(wù)在執(zhí)行客戶請(qǐng)求之前需要先進(jìn)行狀態(tài)同步#65377;但是根據(jù)Web服務(wù)的特點(diǎn),每個(gè)客戶請(qǐng)求可以對(duì)應(yīng)Web服務(wù)的一個(gè)操作,通過(guò)分析請(qǐng)求之間的依賴關(guān)系,可以讓某些阻塞的請(qǐng)求提前執(zhí)行,不必等待狀態(tài)同步完成#65377;例如,由類Account封裝成的Web服務(wù)提供了setOperation和getOperation兩種操作#65377;setOperation對(duì)類Account的某個(gè)私有屬性進(jìn)行寫(xiě)操作,getOperation返回這個(gè)私有屬性的值#65377;如果在服務(wù)遷移過(guò)程中,源服務(wù)器繼續(xù)執(zhí)行了Web服務(wù)的getOperation操作,而getOperation只是把結(jié)果返回給客戶端,并不改變Web服務(wù)的狀態(tài)#65377;遷移之后,在目標(biāo)服務(wù)器進(jìn)行狀態(tài)同步之前,如果后續(xù)請(qǐng)求要求執(zhí)行setOperation操作,setOperation就不必等待同步完成#65377;

類Account描述如下:

定義1Web服務(wù)定義為Service={Property,Operation}#65377;其中,Property是Service包含的屬性集合,Property={pi},i=1,…,N,N為屬性的數(shù)目;Operation是Service包含的操作集合,Operation={oj},j=1,…,M,M為操作的數(shù)目#65377;

定義2在Property和Operation之間存在兩種關(guān)系,即Read和Write#65377;其中,Read={|pi∈Property,oj∈Operation},表示操作對(duì)屬性具有讀操作,即屬性出現(xiàn)在操作內(nèi)部某個(gè)表達(dá)式的右側(cè);Write={|pi∈Property,oj∈Operation},表示操作對(duì)屬性具有寫(xiě)操作,即屬性出現(xiàn)在操作內(nèi)部某個(gè)表達(dá)式的左側(cè)#65377;

定義3readj={pi|∈Read,1≤i≤N}表示與操作oj具有讀操作關(guān)系的屬性集合;writej={pi|∈Write,1≤i≤N},表示與oj具有寫(xiě)操作關(guān)系的屬性集合#65377;

定義4如果(readi∩writej)∪(writei∩writej)≠,則oi依賴于oj,表示為oi→oj#65377;如果(readi∩writej)∪(writei∩writej)=,則oi不依賴于oj#65377;需要注意的是這種依賴關(guān)系具有自反性,但不具有傳遞性#65377;

定義5在遷移過(guò)程中源服務(wù)器處理的客戶請(qǐng)求對(duì)應(yīng)的操作集合表示為UnSynOperation,UnSynOperationOperation#65377;在目標(biāo)服務(wù)器同步過(guò)程中需要阻塞的客戶請(qǐng)求所對(duì)應(yīng)的操作集合表示為DepOperation,DepOperationOperation#65377;

類Account中,設(shè)getName→setName,getTotalAmount→save,inqiryInterest→save,save→save#65377;如果在遷移過(guò)程中,服務(wù)在源服務(wù)器繼續(xù)執(zhí)行了setName和inqiryInterest操作,即UnSynOperation為{setName,inqiryInterest},則DepOperation集合為{getName,setName}#65377;顯然,后續(xù)請(qǐng)求到達(dá)時(shí),只有g(shù)etName和setName需要阻塞,其他方法可以繼續(xù)執(zhí)行#65377;

在把不一致?tīng)顟B(tài)保存到Broker之前,源服務(wù)器需要把Web服務(wù)在遷移過(guò)程中執(zhí)行的客戶請(qǐng)求所對(duì)應(yīng)的操作集合,即UnSynOperation集合發(fā)送給目標(biāo)服務(wù)器#65377;目標(biāo)服務(wù)器根據(jù)UnSynOperation集合,生成DepOperation集合#65377;為了提高運(yùn)行時(shí)效率,用Hash表存放DepOperation集合,可以在O(1)時(shí)間復(fù)雜度內(nèi),判斷后續(xù)請(qǐng)求是否出現(xiàn)在DepOperation集合中#65377;需要注意的是Web服務(wù)各操作之間的依賴關(guān)系,是由Web服務(wù)提供方在部署前提供的#65377;

23遷移一致性約束

為了保證Web服務(wù)遷移一致性,必須滿足下面三個(gè)約束:

(1)狀態(tài)一致性約束#65377;設(shè)t1是Web服務(wù)在源服務(wù)器停止處理客戶請(qǐng)求的時(shí)刻,t2是Web服務(wù)在目標(biāo)服務(wù)器開(kāi)始繼續(xù)處理客戶請(qǐng)求的時(shí)刻#65377;狀態(tài)一致性約束表示為Web服務(wù)在t1時(shí)刻的狀態(tài)信息等于在t2時(shí)刻的狀態(tài)信息#65377;

(2)引用一致性約束#65377;Reference表示W(wǎng)eb服務(wù)不可被遷移的引用集合,如Web服務(wù)對(duì)業(yè)務(wù)邏輯的引用#65380;在運(yùn)行時(shí)打開(kāi)的文件句柄或Socket鏈接等#65377;引用一致性約束表示為Web服務(wù)在遷移后可以重新更新Reference集合的引用#65377;

(3)消息一致性約束#65377;設(shè)Request表示客戶請(qǐng)求,Result1表示W(wǎng)eb服務(wù)在不遷移的情況下返回的客戶結(jié)果,Result2表示W(wǎng)eb服務(wù)在遷移過(guò)程中返回的客戶結(jié)果#65377;消息一致性約束表示為對(duì)于同一客戶請(qǐng)求,Web服務(wù)在遷移過(guò)程中返回的結(jié)果Result2等于在不遷移的情況下返回的結(jié)果Result1#65377;需要注意的是丟失客戶請(qǐng)求是違反了Web服務(wù)的消息一致性的一種特殊情況#65377;

2.4算法實(shí)現(xiàn)

在Web服務(wù)遷移之前,Migration Server首先決定何時(shí)進(jìn)行遷移,即遷移策略#65377;本文中實(shí)現(xiàn)的Migration Server可以根據(jù)服務(wù)器的CPU利用率或內(nèi)存利用率,主動(dòng)發(fā)起遷移;也可以按照用戶命令對(duì)Web服務(wù)進(jìn)行遷移#65377;Migration Server其次選擇目標(biāo)服務(wù)器#65377;如果用戶已經(jīng)預(yù)先指定好目標(biāo)服務(wù)器的地址,Migration Server可直接向目標(biāo)服務(wù)器發(fā)送遷移請(qǐng)求;否則,Migration Server廣播遷移要求,其他Migration Server接收到遷移請(qǐng)求后,如果發(fā)現(xiàn)具備遷移的條件,就返回應(yīng)答#65377;Migration Server收到響應(yīng)后,就向目標(biāo)服務(wù)器發(fā)起遷移#65377;

圖2是算法的執(zhí)行步驟:

(1)源服務(wù)調(diào)用用戶實(shí)現(xiàn)的PostHandler接口,處理文件句柄等不可遷移的資源#65377;

(2)源服務(wù)器把Web服務(wù)的描述信息發(fā)送到目標(biāo)服務(wù)器#65377;

(3)目標(biāo)服務(wù)器開(kāi)始部署Web服務(wù),創(chuàng)建Web服務(wù)執(zhí)行所需要的必要信息#65377;

(4)源服務(wù)器把Web服務(wù)運(yùn)行時(shí)狀態(tài)信息發(fā)往目標(biāo)服務(wù)器#65377;

(5)目標(biāo)服務(wù)器調(diào)用用戶實(shí)現(xiàn)的PostHandler接口,處理文件句柄等不可遷移的資源#65377;

(6)源服務(wù)器暫停Web服務(wù)執(zhí)行#65377;在暫停Web服務(wù)執(zhí)行的時(shí)刻,如果Web服務(wù)正在執(zhí)行某個(gè)客戶請(qǐng)求,則必須等待Web服務(wù)處理完該請(qǐng)求,再暫停其執(zhí)行#65377;

(7)目標(biāo)服務(wù)器恢復(fù)Web服務(wù)的狀態(tài),檢查Web服務(wù)對(duì)業(yè)務(wù)邏輯實(shí)現(xiàn)的引用是否正確#65377;如果引用為本機(jī)地址或相對(duì)地址,則更新為絕對(duì)地址#65377;

(8)源服務(wù)器將遷移過(guò)程中改變的狀態(tài)信息保存到Broker中#65377;

(9)源服務(wù)器將遷移過(guò)程中執(zhí)行過(guò)的客戶請(qǐng)求對(duì)應(yīng)的操作集合發(fā)送給目標(biāo)服務(wù)器#65377;

(10)目標(biāo)服務(wù)器與保存在Broker中的狀態(tài)信息進(jìn)行同步#65377;

(11)目標(biāo)服務(wù)器開(kāi)始處理客戶請(qǐng)求,按照23節(jié)定義的操作依賴關(guān)系,判斷是否需要阻塞將要處理的客戶請(qǐng)求#65377;

(12)源服務(wù)器把收到的客戶請(qǐng)求轉(zhuǎn)發(fā)到目標(biāo)服務(wù)器#65377;

3算法一致性分析

下面簡(jiǎn)要分析WS Broker算法是如何滿足Web服務(wù)遷移一致性約束的#65377;

性質(zhì)1WS Broker可以滿足Web服務(wù)遷移的狀態(tài)一致性約束#65377;WS Broker算法中,在源服務(wù)器把不一致?tīng)顟B(tài)存放到Broker的過(guò)程中,通常需要經(jīng)過(guò)網(wǎng)絡(luò)傳輸,所以遷移時(shí)間不可被輕易忽略#65377;因此,在遷移不一致?tīng)顟B(tài)之前,WS Broker算法暫停Web服務(wù)執(zhí)行,即不再讓W(xué)eb服務(wù)處理客戶請(qǐng)求#65377;在暫停Web服務(wù)執(zhí)行的時(shí)刻,如果Web服務(wù)正在執(zhí)行某個(gè)客戶請(qǐng)求,必須等待處理完該請(qǐng)求,再暫停其執(zhí)行#65377;Web服務(wù)在目標(biāo)服務(wù)器開(kāi)始執(zhí)行前,必須先與Broker內(nèi)的不一致?tīng)顟B(tài)進(jìn)行同步#65377;在WS Broker算法中,為了遷移效率,提前執(zhí)行了某些阻塞的客戶請(qǐng)求,但是通過(guò)對(duì)客戶請(qǐng)求之間依賴關(guān)系的分析,算法仍然可以滿足狀態(tài)的一致性約束#65377;通過(guò)以上分析可見(jiàn),WS Broker算法可以滿足狀態(tài)一致性約束#65377;

性質(zhì)2WS Broker可以滿足Web服務(wù)遷移的引用一致性約束#65377;在源服務(wù)器開(kāi)始傳送Web服務(wù)的狀態(tài)信息前,WS Broker算法執(zhí)行用戶實(shí)現(xiàn)的PostHandler接口,處理文件句柄#65380;Socket鏈接等不可被遷移的引用#65377;遷移之后,WS Broker算法在恢復(fù)服務(wù)狀態(tài)前,首先調(diào)用PostHandler接口,重新建立與Web服務(wù)相關(guān)的文件句柄#65380;Socket鏈接等;其次檢查并更新Web服務(wù)對(duì)業(yè)務(wù)邏輯的引用#65377;因此,WS Broker算法可以滿足引用一致性約束#65377;

性質(zhì)3WS Broker可以滿足Web服務(wù)遷移的消息一致性約束#65377;WS Broker算法中,在Web服務(wù)遷移過(guò)程中,源服務(wù)器的Web服務(wù)繼續(xù)執(zhí)行,所以不會(huì)丟失服務(wù)遷移過(guò)程接收到的客戶請(qǐng)求#65377;源服務(wù)器暫停Web服務(wù)執(zhí)行后,如果收到客戶請(qǐng)求,由源服務(wù)器負(fù)責(zé)轉(zhuǎn)發(fā)給目標(biāo)服務(wù)器,從而保證了客戶請(qǐng)求的不丟失#65377;另外,根據(jù)性質(zhì)1,WS Broker雖然提前執(zhí)行了某些阻塞的客戶請(qǐng)求,但是仍然可以滿足消息的一致性約束#65377;通過(guò)以上分析可見(jiàn),WS Broker算法可以滿足消息一致性約束#65377;

由性質(zhì)1~3得,WS Broker算法可以滿足Web服務(wù)遷移的一致性約束#65377;

4實(shí)現(xiàn)與評(píng)價(jià)

本文在中國(guó)科學(xué)院軟件所自主研發(fā)的SOAP處理引擎SOAPExpress中,實(shí)現(xiàn)了遷移算法的原型#65377;為了評(píng)估遷移算法的性能,本文也實(shí)現(xiàn)了另外兩種遷移算法: WS Total Copy和 WS PreCopy#65377;WS Total Copy算法是指在Web服務(wù)遷移之前,源服務(wù)器暫停Web服務(wù)執(zhí)行;遷移后,目標(biāo)服務(wù)器再繼續(xù)執(zhí)行Web服務(wù)#65377;WS PreCopy類似于本文提出的遷移算法,不同點(diǎn)在于,WS PreCopy在狀態(tài)同步完成前,必須阻塞所有的后續(xù)客戶請(qǐng)求#65377;

實(shí)驗(yàn)環(huán)境由兩臺(tái)軟硬件環(huán)境相同的機(jī)器組成,CPU為Pentium 4 28GHz,內(nèi)存為512MB,網(wǎng)卡10Mbps,操作系統(tǒng)是Windows XP SP2, HTTP服務(wù)器軟件為T(mén)omcat 501#65377;利用SOAPTest模擬1 000個(gè)并發(fā)客戶端,訪問(wèn)其中一臺(tái)服務(wù)器#65377;當(dāng)被訪問(wèn)服務(wù)器的CPU利用率超過(guò)50%時(shí),Migration Server主動(dòng)遷移服務(wù)到另外一臺(tái)服務(wù)器#65377;如表1所示,實(shí)驗(yàn)結(jié)果表明,本文提出的遷移算法WS Broker在服務(wù)遷移時(shí)間和服務(wù)中斷時(shí)間上都要優(yōu)于WS Total Copy和 WS PreCopy算法#65377;

表1Web服務(wù)遷移開(kāi)銷(xiāo)

5結(jié)束語(yǔ)

保證Web服務(wù)遷移一致性,對(duì)于提高服務(wù)可用性具有重要意義#65377;本文提出的基于Broker的Web服務(wù)遷移算法 WS Broker,在保證Web服務(wù)遷移一致性的基礎(chǔ)上,提高了服務(wù)遷移效率#65377;在今后的工作中,將對(duì)算法作以下改進(jìn):①還需要進(jìn)一步分析Web服務(wù)狀態(tài)的組成部分,遷移Web服務(wù)在目標(biāo)服務(wù)器執(zhí)行所需要的最小狀態(tài)集合,進(jìn)一步減少遷移時(shí)間#65377;②如何擴(kuò)展WSDL文檔,在部署時(shí)得到Web服務(wù)各操作之間的依賴關(guān)系#65377;

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

主站蜘蛛池模板: 99久久国产综合精品2023| 一级成人a毛片免费播放| 亚洲有无码中文网| 中文字幕在线一区二区在线| 无码人中文字幕| 欧美中文字幕在线播放| 国产精品污视频| 麻豆精品国产自产在线| 欧美午夜一区| 久爱午夜精品免费视频| 永久免费精品视频| 毛片国产精品完整版| 欧美综合中文字幕久久| 四虎永久在线| 精品一区二区三区视频免费观看| 国产精品一线天| 亚洲成年网站在线观看| 最新精品久久精品| 国产玖玖视频| 亚洲日韩久久综合中文字幕| 国产高清不卡| 日韩欧美中文字幕一本| 国产视频 第一页| 国产9191精品免费观看| 久久综合伊人77777| 亚洲欧洲日韩国产综合在线二区| 手机精品福利在线观看| 国产网站免费观看| 亚洲国产清纯| 亚洲天堂网2014| 国产麻豆aⅴ精品无码| 国产黄在线观看| 国产第三区| 久久精品人人做人人综合试看| 直接黄91麻豆网站| 欧洲极品无码一区二区三区| 不卡的在线视频免费观看| 午夜激情婷婷| 亚洲精选高清无码| 国产欧美精品午夜在线播放| a在线亚洲男人的天堂试看| 欧美成人精品一级在线观看| 又黄又爽视频好爽视频| 国产精品美人久久久久久AV| 久久香蕉国产线看观看精品蕉| 亚洲一欧洲中文字幕在线| 久久精品人人做人人爽电影蜜月| 国产精品伦视频观看免费| 亚洲狠狠婷婷综合久久久久| 国产97视频在线| 国产精品美女自慰喷水| 欧美午夜在线观看| 国产精品嫩草影院视频| 91最新精品视频发布页| 91欧美亚洲国产五月天| 国产日韩精品欧美一区灰| 亚洲一区二区三区国产精品| 呦视频在线一区二区三区| 国产凹凸视频在线观看| 美女国产在线| 日韩精品亚洲人旧成在线| 欧美激情福利| 91丨九色丨首页在线播放| 国产精品免费入口视频| 精品无码一区二区三区电影| 国产精品一区在线观看你懂的| 亚洲中文字幕精品| 99精品国产电影| 国产美女免费网站| 日韩久草视频| 免费人成网站在线观看欧美| 福利在线一区| 欧美三级视频网站| 国产亚洲欧美日韩在线一区| 国产日韩精品欧美一区喷| 狠狠操夜夜爽| 婷婷五月在线视频| 国产丰满成熟女性性满足视频| 中文字幕 欧美日韩| 99成人在线观看| 亚洲成a人片77777在线播放| 国产你懂得|