《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > 基于Web服務(wù)組合的主從式失效檢測器研究

基于Web服務(wù)組合的主從式失效檢測器研究

2009-08-11
作者:陳麗金, 周 婭

  摘? 要: 針對Web服務(wù)組合環(huán)境對失效檢測方法進(jìn)行研究,設(shè)計主從式失效檢測器和失效檢測算法并對其進(jìn)行分析,為Web服務(wù)組合監(jiān)測提供有效的手段,實驗?zāi)M表明,該算法能有效降低錯誤率,提高系統(tǒng)可用性。
??? 關(guān)鍵詞: 失效檢測器;Web服務(wù)組合;失效檢測算法

?

  通過Web服務(wù)組合來動態(tài)生成新的應(yīng)用系統(tǒng),以滿足企業(yè)的動態(tài)需求,已成為Web服務(wù)技術(shù)不斷向前發(fā)展的技術(shù)動力和研究熱點。但是在非可靠異構(gòu)、分布式自治和快速變化發(fā)展的網(wǎng)絡(luò)環(huán)境中,Web服務(wù)組合運行可能會受到網(wǎng)絡(luò)失效、通信模式變化、基礎(chǔ)設(shè)施變更等多種問題的影響,這都將影響所提供的服務(wù)質(zhì)量。復(fù)雜的網(wǎng)絡(luò)環(huán)境、難以預(yù)測的各類故障以及無法確定的功能變化使得業(yè)務(wù)流程的功能與服務(wù)質(zhì)量均難以得到保障,導(dǎo)致服務(wù)組合提供者可能由此失去客戶的信任,因此,Web服務(wù)組合的失效檢測研究十分重要。失效檢測器是軟件系統(tǒng)可靠性保障的基本技術(shù),其性能的好壞直接影響到系統(tǒng)容錯的能力,而失效檢測器的核心就是失效檢測算法。Web服務(wù)組合的失效檢測是指Web服務(wù)組合在運行階段的失效檢測[1]。
  當(dāng)前服務(wù)組合的容錯研究主要集中在標(biāo)準(zhǔn)協(xié)議的擴(kuò)展、成分服務(wù)的容錯以及Web服務(wù)組合容錯平臺等幾個方面。參考文獻(xiàn)[2]將監(jiān)測及檢測服務(wù)結(jié)合到面向服務(wù)架構(gòu)QoS管理中,通過監(jiān)測服務(wù)反饋的信息,診斷服務(wù)能夠檢測狀態(tài)的變化,并利用一種基于圖模型的方法對狀態(tài)變化原因進(jìn)行推斷。參考文獻(xiàn)[3]提出了一種基于模型的Web服務(wù)組合故障診斷方法,該方法向服務(wù)組合中的每個服務(wù)增加一個局部診斷器,并為整個組合服務(wù)設(shè)置一個全局診斷器,全局診斷器與局部診斷器進(jìn)行協(xié)作,并推斷Web服務(wù)組合發(fā)生故障的原因。參考文獻(xiàn)[4]提出了一種基于反射技術(shù)的Web服務(wù)失效處理方法,通過在Web服務(wù)請求者和服務(wù)提供者配置反射層,使之檢測到造成服務(wù)失效的各種狀態(tài),調(diào)整Web服務(wù)的內(nèi)部結(jié)構(gòu)和運行狀態(tài),使得Web服務(wù)適應(yīng)環(huán)境的變化,以提高Web服務(wù)的適應(yīng)性和健壯性。Marin[5]等人提出了適應(yīng)網(wǎng)絡(luò)狀況變化的失效檢測方法,適應(yīng)性失效檢測方法在一定程度上提高了失效檢測器的檢測準(zhǔn)確度,但是由于沒有考慮網(wǎng)絡(luò)丟包的影響,不能有效地減少由于網(wǎng)絡(luò)丟包而產(chǎn)生的誤判,影響了適應(yīng)性失效檢測器的檢測服務(wù)質(zhì)量。
1 失效檢測及其基本模型
  失效檢測(failure detection)是Web服務(wù)組合系統(tǒng)可靠性保障的基本技術(shù),它對運行時系統(tǒng)的存活狀態(tài)進(jìn)行檢測。提供失效檢測功能的組件稱為失效檢測器FD(failure detector)[6],失效檢測器是失效恢復(fù)、動態(tài)重啟、可靠性通信、集群管理等功能的基礎(chǔ)。在Web服務(wù)組合中需要提供良好的失效檢測機(jī)制來及時檢測服務(wù)器以及其中服務(wù)組件和應(yīng)用組件的失效情況,從而提高系統(tǒng)的可靠性和可用性。
  失效檢測一般采用超時機(jī)制實現(xiàn),即通過被檢測對象在規(guī)定時間內(nèi)有無應(yīng)答來判斷失效,有兩種最基本的檢測方法:心跳策略和輪詢檢測方法。下面分別對它們進(jìn)行介紹。
  心跳策略:由被檢測進(jìn)程按照一定的時間時隔定期地向失效檢測器發(fā)送心跳信息“I am alive”,通告它們依然存活。如果失效檢測器超過某一期限沒有收到心跳消息,失效檢測器則認(rèn)為其失效。該模式被檢測對象向失效檢測器“推”(push)失效事件,我們也稱為“推”模式,其消息交換如圖1所示。


  輪詢檢測:失效檢測器q定時發(fā)送查詢消息“Are you alive?”,檢查被檢測對象p的狀態(tài),被檢測對象p收到查詢消息后返回應(yīng)答消息“I am alive!”,如果失效檢測器超過一定時間間隔沒有收到應(yīng)答消息,則認(rèn)為被檢測對象失效。該模式失效檢測器從被檢測對象中“拉”(pull)失效事件,我們又稱之為“拉”模式,其消息交換如圖2所示。


??? 兩種檢測模型各有優(yōu)劣。pull模型需要失效檢測器發(fā)送查詢消息,并等待被檢測對象返回應(yīng)答,這樣導(dǎo)致失效檢測時間較長;同時,由于失效檢測器發(fā)送消息,被檢測對象返回消息導(dǎo)致同樣的性能需要兩倍數(shù)量的消息數(shù)目。然而,pull模型是一種主動檢測方式,可以只在需要的時候才發(fā)起檢測,而且,使用pull模型可以保證每個檢測消息及其延時對檢測結(jié)果的影響是獨立的。
2 主從式失效檢測算法
??? 算法基本思想:在主失效檢測器中,每個被檢測進(jìn)程周期性地向主失效檢測進(jìn)程發(fā)送不同序號的心跳消息,心跳消息的序號總是遞增的。主失效檢測器對收到的心跳消息的歷史紀(jì)錄作統(tǒng)計、分析,并計算出下一個心跳消息到達(dá)的時間上限,如果超過等待時限未收到心跳消息,系統(tǒng)自動啟動從失效檢測器。從失效檢測進(jìn)程主動發(fā)送問詢消息給被檢測進(jìn)程,如果收到對被檢測進(jìn)程的應(yīng)答消息,則認(rèn)為被檢測進(jìn)程正常,返回主失效檢測器;否則認(rèn)為被檢測進(jìn)程失效。
2.1 主失效檢測算法基本思想
??? 主失效檢測算法中,采用心跳策略。被檢測進(jìn)程p每間隔ti周期性地向推失效檢測器進(jìn)程q發(fā)送消息mpi(i為檢測消息的序號);進(jìn)程q負(fù)責(zé)接收消息。進(jìn)程q收到消息之后,首先將消息mpi的接收消息時間(Tcurrent-f)保存到滑動窗口W中。當(dāng)進(jìn)程q超過E(TD)沒有收到進(jìn)程p的發(fā)送消息mpi時,即認(rèn)為該系統(tǒng)資源失效,則啟動從失效檢測器進(jìn)行確認(rèn)。主失效檢測器算法主要步驟如下:
  ???   

2.2 從失效檢測算法基本思想
??? 從失效檢測器算法現(xiàn)實比較簡單,在主失效檢測器調(diào)用時才啟用。算法采用輪詢策略,從失效檢測器主要由進(jìn)程q發(fā)送查詢信息mqi給進(jìn)程p,p在收到該消息后發(fā)回應(yīng)答消息mai,以表明自己處于正常狀態(tài);如果進(jìn)程q沒有收到應(yīng)答消息mai則認(rèn)為進(jìn)程p失效。從失效檢測算法主要步驟如下所示:
  ???  

3 算法性能評估
3.1 服務(wù)質(zhì)量指標(biāo)
??? 為了準(zhǔn)確評價失效檢測器的QoS,Chen等人提出了定量的QoS度量體系[7]。用T表示失效檢測器認(rèn)為進(jìn)程處于正常狀態(tài),S表示失效檢測器認(rèn)為進(jìn)程處于失效狀態(tài),S-transition表示失效檢測器輸出由T變?yōu)镾,T-transition表示失效檢測器的輸出S變?yōu)門。下面三個基本評價指標(biāo)分別為:
??? 檢測時間(TD):這一指標(biāo)保障失效檢測器輸出的完整性要求,是指從進(jìn)程發(fā)生失效的時刻到它開始被懷疑的時間,即到發(fā)生S-transition之間的時間。這一指標(biāo)保障失效檢測器輸出的完整性要求。
??? 錯誤間隔時間(TMR):兩次發(fā)生錯誤輸出之間的時間間隔的度量,即連續(xù)兩個S-transition之間的時間間隔,描述失效檢測的準(zhǔn)確度。
??? 錯誤持續(xù)時間(TM):檢測器修正一次錯誤懷疑所需要的時間,即從S-transition到下一個T-transition之間的時間間隔,描述失效檢測的準(zhǔn)確度。
??? 錯誤率(λM):指失效檢測器產(chǎn)生懷疑的比率,是在一次運行中出現(xiàn)的頻度就是一個常用的體現(xiàn)失效檢測系統(tǒng)準(zhǔn)確性的指標(biāo)。
3.2 計算閾值TDU
??? TDU是一個失效檢測器與被檢測對象之間的服務(wù)質(zhì)量的基本評價指標(biāo)之一, TDU是檢測時間的上界,限定了檢測速度,保證了失效檢測的完整性級別,是一個十分重要的評價指標(biāo)。
??? 圖3介紹了主從式失效檢測器的執(zhí)行過程。進(jìn)程p定時向進(jìn)程q發(fā)送心跳消息,進(jìn)程q分別在T0、T1、T2時刻收到前3個心跳消息,并預(yù)測下一個心跳消息將在T3時刻到達(dá)。而實際上進(jìn)程p在T6時刻失效,對于進(jìn)程q的時鐘而言是T5時刻,則進(jìn)程q在T3時刻未收到應(yīng)該到達(dá)的心跳消息,開始懷疑進(jìn)程p。則實際檢測時間為:T3-T5,即T3-T4+η,η為心跳消息的時間延遲。通常TDU=△ti+E(η),E(η)為平均心跳消息延遲。進(jìn)程q超過TDU時間沒有收到進(jìn)程p的心跳消息,則主動發(fā)送問詢消息,查看進(jìn)程p是否失效。如果進(jìn)程q在發(fā)送問詢消息后,超過T7-T3+TDU時間沒有收到應(yīng)答消息,則確認(rèn)進(jìn)程p失效。

3.3 算法證明
??? 在Web服務(wù)組合失效檢測中,失效檢測器為應(yīng)用程序提供失效檢測等價于◇P類的失效檢測器,即失效檢測器需達(dá)到強(qiáng)完整性和強(qiáng)準(zhǔn)確性級別。通過以下分析說明本失效檢測器等價于◇P類失效檢測器。
??? (1)強(qiáng)完整性。在任意一次運行中,每一個發(fā)生失效的進(jìn)程最終都會被所有正確的進(jìn)程永遠(yuǎn)判定為失效。
??? 證明:假設(shè)在一個正確的進(jìn)程q檢測進(jìn)程p。需要證明:如果p發(fā)生失效,那么存在某一時刻對于任一的T>t,失效檢測的結(jié)果都將判定p失效。在p失效之后,將不會發(fā)出任何消息,也就是說,進(jìn)程q此后將收不到任何消息,因此,E(TD)將不會發(fā)生變化。假設(shè)mpi是q在時刻tlast從p收到的最后一個應(yīng)答消息,則i值將永遠(yuǎn)一個常數(shù)。此后,在任何查詢時刻tcurrent>tlast,都有△T=Tcurrent-f,隨著tcurrent的增長,△T將嚴(yán)格單調(diào)遞增。因此,對于應(yīng)用程序A,在任意時刻tcurrent>tlast查詢,都會將p判定為失效進(jìn)程。
??? (2)強(qiáng)準(zhǔn)確性。在任意一次運行中,在某個時刻t之后,每個正確的進(jìn)程都不會被錯誤認(rèn)為發(fā)生失效。
??? 證明:同上面的證明進(jìn)行同樣的假設(shè),需要證明:在某個時刻t之后,應(yīng)用程序A將不會錯誤地認(rèn)為p發(fā)生失效。因為此屬性具有最終(eventual)性。假設(shè)mpi是p發(fā)出的第i個消息,發(fā)送時刻為ts,進(jìn)程處理消息時間和消息的傳遞時間都有上界,分別記為tp和tt。因此,對于任意檢測消息mpi(j≥i),其檢測時間TDt≤tp+tt。那么,對于任意的查詢時刻tcurrent>ts,△T存在一個上界。只要TDU>TDt,那么,對于任意的查詢時刻tcurrent>ts+tp+tt,A都不會懷疑進(jìn)程p。
3.4 性能分析
??? 本文對主從式失效檢測算法進(jìn)行了編碼方式仿真,實驗操作系統(tǒng)為Microsoft Windows XP,配置1.6 GHz和1 GB內(nèi)存,在Microsoft Visual Studio.NET環(huán)境中,使用C#開發(fā)了對失效檢測算法進(jìn)行有效性驗證的模擬程序。心跳周期△ti設(shè)定為1 000 ms,進(jìn)行了算法準(zhǔn)確性測試。
??? 為了測試系統(tǒng)的準(zhǔn)確性,與Marin等人提出適應(yīng)網(wǎng)絡(luò)狀況變化的失效檢測方法作比較測試,比較結(jié)果如圖4所示。從圖4可以看出,本失效檢測較Marin有較低的誤判率,當(dāng)被檢測對象數(shù)目超過300時候表現(xiàn)尤其明顯,差距也越來越大,原因是這時候系統(tǒng)負(fù)載過高,系統(tǒng)錯誤數(shù)提高,誤判率就隨之上升。


??? 為了適應(yīng)復(fù)雜的網(wǎng)絡(luò)生態(tài)環(huán)境,增強(qiáng)了系統(tǒng)的可用性,本文設(shè)計了主從式失效檢測算法,對相應(yīng)的主從式失效檢測器進(jìn)行性能測試和分析。新算法減少了失效檢測器在網(wǎng)絡(luò)延時出現(xiàn)的誤判情況,進(jìn)一步適應(yīng)應(yīng)用環(huán)境,實驗證明,在相同情況下,主從式失效檢測算法準(zhǔn)確性有明顯提高,優(yōu)化了失效檢測器的檢測服務(wù)質(zhì)量,增強(qiáng)了系統(tǒng)的可用性,為流程執(zhí)行時業(yè)務(wù)功能與服務(wù)質(zhì)量的保障提供了一種有效的機(jī)制。


參考文獻(xiàn)
[1] 付曉東,鄒平.一種規(guī)則驅(qū)動的Web服務(wù)組合例外處理方法[J].計算機(jī)應(yīng)用,2007,27(8):1984-1990.
[2] WANG G J, WANG C Z, CHEN A, et al. Service levelmanagement using qos monitoring, diagnostics, and adaptation for networked enterprise systems[C]//Proceedings of the 9th IEEE International EDOC Enterprise Computing Conference. Washington, DC: IEEE ComputerSociety, 2005:
239-250.
[3] ARDISSONO L, CONSOLE L, GOY A, et al. Enhancing Web services with diagnostic capabilities[C]//Proceedings of the 3 IEEE European Conference on Web Services. Washington: IEEE Computer Society, 2005:182-191.
[4] 徐新衛(wèi),周良,丁秋林. Web服務(wù)失效處理的反射中間件技術(shù)應(yīng)用與實現(xiàn)[J].系統(tǒng)工程與電子技術(shù),2007,29(8):1371-1376.
[5] BERTIER M, MARIN O, SENS P. Implementation and Performance Evaluation of an Adaptable Failure Detector[C]. Proc. IEEE Int’l Conf. Dependable Systems and Networks(DSN’2002), 2002:354-363.
[6] 陳寧江,魏峻,楊波,黃濤.Web應(yīng)用服務(wù)器的適應(yīng)性失效檢測[J].軟件學(xué)報,2005,16(11):1929-1938.
[7] CHEN W, TOUEG S, AGUILERA M K. On the Quality of Service of Failure Detectors. IEEE Tran on Computers, 2002,51(5):561-580.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。