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

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

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

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

?

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


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


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

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

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

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


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


參考文獻
[1] 付曉東,鄒平.一種規(guī)則驅動的Web服務組合例外處理方法[J].計算機應用,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服務失效處理的反射中間件技術應用與實現(xiàn)[J].系統(tǒng)工程與電子技術,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應用服務器的適應性失效檢測[J].軟件學報,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.

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