• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于探針的Web服務(wù)運(yùn)行時(shí)監(jiān)控方法研究

    2016-11-14 06:23:05熊達(dá)鵬1鵬1
    裝備學(xué)院學(xué)報(bào) 2016年5期
    關(guān)鍵詞:探針可靠性監(jiān)控

    陳 亮, 鄒 鵬, 熊達(dá)鵬1,, 王 華, 王 鵬1,

    (1. 裝備學(xué)院 研究生管理大隊(duì), 北京 101416; 2. 裝備學(xué)院 復(fù)雜電子系統(tǒng)仿真實(shí)驗(yàn)室, 北京 101416;3. 中國衛(wèi)星海上測(cè)控部, 江蘇 江陰 214431)

    ?

    基于探針的Web服務(wù)運(yùn)行時(shí)監(jiān)控方法研究

    陳亮1,3,鄒鵬2,熊達(dá)鵬1,2,王華3,王鵬1,2

    (1. 裝備學(xué)院 研究生管理大隊(duì), 北京 101416;2. 裝備學(xué)院 復(fù)雜電子系統(tǒng)仿真實(shí)驗(yàn)室, 北京 101416;3. 中國衛(wèi)星海上測(cè)控部, 江蘇 江陰 214431)

    為了實(shí)時(shí)、準(zhǔn)確地獲取工作流服務(wù)及其構(gòu)件服務(wù)的運(yùn)行狀態(tài),提出了一種基于探針的Web服務(wù)運(yùn)行時(shí)監(jiān)測(cè)方法。該方法采用面向方面編程(AOP)技術(shù)對(duì)Web服務(wù)進(jìn)行監(jiān)測(cè)探針插入,以捕獲Web服務(wù)運(yùn)行過程中的異常事件和服務(wù)質(zhì)量(QoS)屬性相關(guān)數(shù)據(jù),進(jìn)而實(shí)現(xiàn)對(duì)Web服務(wù)運(yùn)行狀態(tài)的實(shí)時(shí)監(jiān)測(cè);針對(duì)異常、響應(yīng)時(shí)間、可靠性以及可用性的監(jiān)測(cè)需求分別設(shè)計(jì)和實(shí)現(xiàn)基于AOP的監(jiān)測(cè)探針;在此基礎(chǔ)上,基于開放服務(wù)網(wǎng)關(guān)協(xié)議(OSGI)框架設(shè)計(jì)實(shí)現(xiàn)了一個(gè)Web服務(wù)運(yùn)行時(shí)監(jiān)測(cè)與可視分析原型系統(tǒng),并通過實(shí)驗(yàn)驗(yàn)證了方法的有效性和系統(tǒng)的可用性。

    Web服務(wù);監(jiān)測(cè)探針;運(yùn)行時(shí)監(jiān)控;面向方面編程

    隨著Web服務(wù)被以電子商務(wù)為代表的現(xiàn)代企業(yè)所廣泛應(yīng)用,出現(xiàn)了越來越多的Web應(yīng)用和服務(wù),Web應(yīng)用的組成也日趨復(fù)雜化。用戶對(duì)服務(wù)質(zhì)量的要求也越來越高,與此同時(shí),服務(wù)提供商為了提高Web服務(wù)產(chǎn)品競(jìng)爭(zhēng)力,不僅需要開發(fā)高質(zhì)量的服務(wù),而且需要及時(shí)獲知已上線服務(wù)的運(yùn)行狀態(tài)。因?yàn)?,服?wù)提供商需要時(shí)刻為用戶提供高質(zhì)量的服務(wù),一旦出現(xiàn)服務(wù)異常則會(huì)很大程度上影響用戶的體驗(yàn)。服務(wù)提供者需要對(duì)Web服務(wù)的運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控,以最快速度發(fā)現(xiàn)服務(wù)的異常情況并及時(shí)處理。因此,如何實(shí)時(shí)準(zhǔn)確的監(jiān)測(cè)Web服務(wù)的運(yùn)行狀態(tài)是服務(wù)保障的重要環(huán)節(jié)。

    為滿足Web服務(wù)運(yùn)行時(shí)監(jiān)控的實(shí)際應(yīng)用需求,本文重點(diǎn)針對(duì)Web服務(wù)運(yùn)行時(shí)監(jiān)測(cè)的實(shí)時(shí)性和有效性問題進(jìn)行研究。在盡量不影響運(yùn)行性能的前提下,實(shí)現(xiàn)對(duì)Web服務(wù)運(yùn)行狀態(tài)的實(shí)時(shí)高效監(jiān)測(cè)。

    1 Web服務(wù)運(yùn)行監(jiān)測(cè)技術(shù)分析

    當(dāng)前學(xué)術(shù)界對(duì)于Web服務(wù)的監(jiān)測(cè)技術(shù)已經(jīng)進(jìn)行了深入的研究。Web服務(wù)運(yùn)行時(shí)監(jiān)測(cè)主要包括運(yùn)行狀態(tài)監(jiān)測(cè)和服務(wù)質(zhì)量監(jiān)測(cè)兩大部分的內(nèi)容:運(yùn)行狀態(tài)監(jiān)測(cè)是通過對(duì)Web服務(wù)所在系統(tǒng)環(huán)境、運(yùn)行狀態(tài)等實(shí)時(shí)數(shù)據(jù)進(jìn)行監(jiān)測(cè)。Web服務(wù)運(yùn)行時(shí)監(jiān)控比較常見的工具有JConsole、JVisualVm、JProfiler等以Java虛擬機(jī)監(jiān)控功能接口JVMPI為基礎(chǔ)的監(jiān)測(cè)工具[1]。Li等[2-3]設(shè)計(jì)了一種網(wǎng)絡(luò)服務(wù)交互行為的運(yùn)行時(shí)監(jiān)測(cè)和驗(yàn)證框架,通過基于模式/約束的方法定義服務(wù)交互規(guī)范,監(jiān)測(cè)網(wǎng)絡(luò)服務(wù)的運(yùn)行時(shí)交互行為。張獻(xiàn)[4]提出了一個(gè)基于AOP的運(yùn)行時(shí)監(jiān)測(cè)器分類框架。該分類框架和類別檢測(cè)算法有助于用戶選擇正確監(jiān)測(cè)器和掌控監(jiān)測(cè)器的使用方法。由于上述監(jiān)測(cè)方法是從外部環(huán)境對(duì)服務(wù)狀態(tài)進(jìn)行監(jiān)測(cè),監(jiān)測(cè)數(shù)據(jù)存在一定的延時(shí)。

    對(duì)于Web服務(wù)的QoS屬性監(jiān)測(cè),Kalepu等[5]提出了一種基于第三方監(jiān)控的方法,通過獨(dú)立于服務(wù)器和客戶端之外的第三方進(jìn)行QoS屬性的監(jiān)控,以確認(rèn)服務(wù)提供商提供的服務(wù)質(zhì)量是否與實(shí)際運(yùn)行結(jié)果一致,但文中并沒有給出相關(guān)QoS屬性的具體監(jiān)測(cè)方法和計(jì)算方法。Artaiam等[6]提出了一種基于協(xié)商機(jī)制的Web服務(wù)QoS屬性監(jiān)控策略。該方法盡管構(gòu)建了多個(gè)QoS屬性的計(jì)算模型,但對(duì)于如何采集與QoS屬性相關(guān)的監(jiān)控?cái)?shù)據(jù)方法并未提及。

    從上述研究中可以看出,對(duì)于Web服務(wù)運(yùn)行數(shù)據(jù)的監(jiān)測(cè)多數(shù)是采用被動(dòng)監(jiān)測(cè)的方式。這種方法的優(yōu)點(diǎn)通?;诜?wù)容器或編程語言的擴(kuò)展來實(shí)現(xiàn),對(duì)Web服務(wù)程序本身運(yùn)行影響??;缺點(diǎn)是監(jiān)測(cè)數(shù)據(jù)的實(shí)時(shí)性和針對(duì)性不強(qiáng),監(jiān)測(cè)速度對(duì)于異常處理的時(shí)效性有著至關(guān)重要影響,通過服務(wù)容器提取的Web服務(wù)異常信息和QoS屬性信息通常在時(shí)間上都嚴(yán)重滯后。

    為此,針對(duì)Web服務(wù)運(yùn)行時(shí)監(jiān)測(cè)實(shí)時(shí)性需求,本文提出了一種基于探針的Web服務(wù)運(yùn)行時(shí)監(jiān)控方法,通過在Web服務(wù)中插裝基于AOP的探針實(shí)現(xiàn)對(duì)Web服務(wù)的異常和QoS屬性實(shí)時(shí)監(jiān)測(cè)。應(yīng)用和實(shí)驗(yàn)證明了該方法能夠?qū)崟r(shí)高效進(jìn)行Web服務(wù)的運(yùn)行時(shí)監(jiān)控。

    2 基于AOP的Web服務(wù)運(yùn)行監(jiān)測(cè)探針

    面向方面編程(AOP)是Kiczales等[7-8]于1997年在ECOOP(European Conference on Object Orientated Programming)大會(huì)上提出。AOP核心思想是通過對(duì)軟件的“橫切”,將與軟件業(yè)務(wù)流程無關(guān)的其他輔助功能代碼分離出來單獨(dú)實(shí)現(xiàn)。業(yè)務(wù)流程程序包含的是軟件功能實(shí)現(xiàn)的核心代碼;而諸如授權(quán)、監(jiān)控、安全等非業(yè)務(wù)功能的輔助程序則通過切面來實(shí)現(xiàn)。該方法最大的優(yōu)勢(shì)在于監(jiān)控代碼與核心代碼分離,使得對(duì)Web服務(wù)運(yùn)行性能的影響足夠小,且易于實(shí)現(xiàn)。監(jiān)測(cè)代碼伴隨核心代碼運(yùn)行,能夠?qū)崟r(shí)高效地捕獲異常和運(yùn)行狀態(tài)信息,從而能夠支持Web服務(wù)運(yùn)行時(shí)的實(shí)時(shí)監(jiān)測(cè)。

    對(duì)Web服務(wù)QoS屬性的監(jiān)測(cè)采用基于事件觸發(fā)的監(jiān)測(cè)方法。通過探針在服務(wù)程序運(yùn)行時(shí)對(duì)異常及QoS屬性相關(guān)的事件進(jìn)行捕獲和記錄,進(jìn)而通過分析處理和量化計(jì)算得到Web服務(wù)的QoS屬性值。QoS屬性相關(guān)事件的捕獲是通過在Web服務(wù)程序源代碼上插入探針來實(shí)現(xiàn)??紤]到盡量減低對(duì)Web服務(wù)原程序的影響,探針的實(shí)現(xiàn)和插入采用AOP技術(shù)實(shí)現(xiàn)。

    2.1異常監(jiān)測(cè)探針

    異常是指在Web服務(wù)程序執(zhí)行過程中發(fā)生的非正常事件。通常Web服務(wù)程序設(shè)計(jì)時(shí)會(huì)對(duì)可能遇到的異常情況進(jìn)行處理聲明。服務(wù)器通過捕獲服務(wù)執(zhí)行過程中拋出的異常消息,進(jìn)而才去響應(yīng)的策略進(jìn)行處理。對(duì)于Web 服務(wù)而言,比較常見的異常主要包括輸出參數(shù)錯(cuò)誤導(dǎo)致異常以及程序代碼本身執(zhí)行異常兩大類。

    對(duì)于基于Java語言開發(fā)的Web服務(wù)程序而言,Java虛擬機(jī)中已經(jīng)對(duì)常見的Java程序執(zhí)行異常類型進(jìn)行了比較全面的整理,能夠支持多數(shù)異常的捕獲。考慮到Java程序的異常屬于對(duì)象,并且在Web服務(wù)程序執(zhí)行中被以對(duì)象的方式拋出,監(jiān)測(cè)探針設(shè)計(jì)時(shí)可以考慮通過讀取Java虛擬機(jī)捕獲的異常來實(shí)現(xiàn)。但為了提高監(jiān)測(cè)的響應(yīng)速度,針對(duì)Java語言實(shí)現(xiàn)的Web服務(wù)設(shè)計(jì)源代碼級(jí)監(jiān)測(cè)探針:采用直接以主程序main()函數(shù)作為監(jiān)測(cè)實(shí)施的切入點(diǎn),設(shè)置AOP監(jiān)測(cè)探針捕獲主程序執(zhí)行過程中拋出的異常。探針切面?zhèn)未a設(shè)計(jì)如下。

    publicaspectexe.exception

    {

    pointcuttimeposttreat():execution(* *.main(..));

    around(JoinPointjoinPoint):posttreat()

    {

    try{returnjoinPoint.proceed(); }

    catch(Throwablee)

    {

    發(fā)送異常信號(hào);

    發(fā)送失效后恢復(fù)信號(hào);

    發(fā)送檢測(cè)代理異常統(tǒng)計(jì)信號(hào);

    }

    }

    切面的通知函數(shù)采用around(),這樣在整個(gè)服務(wù)程序執(zhí)行的過程中,如果發(fā)生異常,探針將會(huì)捕獲該異常,并啟動(dòng)通知部分的代碼執(zhí)行,向監(jiān)測(cè)代理發(fā)送異常消息,失效恢復(fù)消息以及統(tǒng)計(jì)請(qǐng)求消息。

    2.2服務(wù)響應(yīng)時(shí)間監(jiān)測(cè)探針

    Web服務(wù)響應(yīng)時(shí)間,指請(qǐng)求消息從服務(wù)請(qǐng)求端發(fā)出到響應(yīng)消息被服務(wù)請(qǐng)求端接收過程中耗費(fèi)的所有時(shí)間。只需要捕獲客戶端服務(wù)的請(qǐng)求開始時(shí)間和執(zhí)行結(jié)束時(shí)間,通過計(jì)算2個(gè)時(shí)刻的差值即可獲取服務(wù)運(yùn)行時(shí)間。由于響應(yīng)時(shí)間T主要包括服務(wù)運(yùn)行時(shí)間Tprc和網(wǎng)絡(luò)傳輸時(shí)間。網(wǎng)絡(luò)傳輸時(shí)間又可以分為發(fā)送請(qǐng)求的傳輸時(shí)間Ttral和返回結(jié)果的傳輸時(shí)間Tres,其中Ttral可通過簡(jiǎn)單對(duì)象訪問協(xié)議(SimpleObjectAccessProtocol,SOAP)消息的時(shí)間戳與服務(wù)端接收到請(qǐng)求的時(shí)間比較獲得。在網(wǎng)絡(luò)環(huán)境響度穩(wěn)定的情況下Tres=Ttral,根據(jù)T=Ttral+Tprc+Tres可知,只需設(shè)計(jì)服務(wù)運(yùn)行時(shí)間的監(jiān)測(cè)探針獲取運(yùn)行時(shí)間Tprc,即可獲得服務(wù)的響應(yīng)時(shí)間。

    采用基于事件的監(jiān)測(cè)方法對(duì)服務(wù)程序的運(yùn)行時(shí)間進(jìn)行監(jiān)測(cè),與服務(wù)運(yùn)行時(shí)間相關(guān)的事件是服務(wù)的執(zhí)行開始時(shí)間和執(zhí)行結(jié)束時(shí)間。因此,服務(wù)響應(yīng)時(shí)間探針只需監(jiān)測(cè)到這2個(gè)時(shí)間即可,故服務(wù)的運(yùn)行時(shí)間監(jiān)測(cè)探針切面?zhèn)未a設(shè)計(jì)如下。

    publicaspecttime

    {

    pointcuttimemonitor():execution(* *.main(..));

    before(JoinPointjoinPoint):timemonitor()

    {

    發(fā)送執(zhí)行開始時(shí)間;

    }

    after(JoinPointjoinPoint)returning():timemonitor()

    {

    發(fā)送執(zhí)行結(jié)束時(shí)間;

    }

    }

    對(duì)于工作流服務(wù)運(yùn)行時(shí)間的監(jiān)測(cè),如果采用上述探針則監(jiān)測(cè)到的結(jié)果將明顯偏小。以圖1所示工作流服務(wù)執(zhí)行時(shí)間監(jiān)測(cè)為例,如果通過監(jiān)測(cè)探針分別獲取Web服務(wù)A~D的運(yùn)行時(shí)間進(jìn)而計(jì)算工作流服務(wù)的運(yùn)行時(shí)間,則構(gòu)建服務(wù)之間數(shù)據(jù)傳輸時(shí)間被忽略了,其計(jì)算值也會(huì)明顯偏小。因此在處理工作流服務(wù)運(yùn)行時(shí)間監(jiān)測(cè)時(shí),需要將整個(gè)流程服務(wù)作為一個(gè)整體,通過獲取Web服務(wù)A的執(zhí)行開始時(shí)間和Web服務(wù)D的執(zhí)行結(jié)束時(shí)間作為工作流服務(wù)整體的執(zhí)行開始和結(jié)束時(shí)間,進(jìn)而計(jì)算服務(wù)執(zhí)行時(shí)間。

    圖1 工作流服務(wù)執(zhí)行時(shí)間監(jiān)測(cè)示例

    2.3服務(wù)可靠性監(jiān)測(cè)探針

    服務(wù)程序執(zhí)行異常的概率是導(dǎo)致可靠性降低的主要原因,因此對(duì)可靠性的監(jiān)測(cè)關(guān)鍵在于異常的監(jiān)測(cè)。與可靠性相關(guān)的事件是異常和程序執(zhí)行開始??煽啃员O(jiān)測(cè)探針切面中主要捕獲服務(wù)程序執(zhí)行異常和服務(wù)程序執(zhí)行開始事件,可靠性監(jiān)測(cè)代理設(shè)計(jì),如圖2所示。

    當(dāng)監(jiān)測(cè)探針捕獲到執(zhí)行開始事件則通知監(jiān)測(cè)代理執(zhí)行計(jì)數(shù)器+1,調(diào)用計(jì)數(shù)器當(dāng)前記錄值記為服務(wù)總執(zhí)行次數(shù)Nsum;當(dāng)探針監(jiān)測(cè)到異常時(shí),則通知異常計(jì)數(shù)器+1,異常計(jì)數(shù)器當(dāng)前記錄值即為總服務(wù)響應(yīng)失敗次數(shù)Nexception,則可靠性值

    (1)

    圖2 可靠性監(jiān)測(cè)代理設(shè)計(jì)

    可靠性是一個(gè)需要長(zhǎng)期統(tǒng)計(jì)的QoS屬性,只有服務(wù)被調(diào)用的次數(shù)達(dá)到一定量的時(shí)候才具有可信性??煽啃员O(jiān)測(cè)探針切面?zhèn)未a設(shè)計(jì)如下。

    publicaspectreliability

    {

    pointcutexceptionmonitor():execution(* *.main(..));

    before(JoinPointjoinPoint):timemonitor()

    { 發(fā)送調(diào)用統(tǒng)計(jì)信號(hào);}

    around(JoinPointjoinPoint):exceptionmonitor()

    {

    try{returnjoinPoint.proceed();}

    catch(Throwablee)

    { 發(fā)送異常統(tǒng)計(jì)信號(hào);

    發(fā)送失效后恢復(fù)信號(hào);}

    }

    after(JoinPointjoinPoint)returning():exceptionmonitor()

    {發(fā)送恢復(fù)執(zhí)行的狀態(tài);}

    }

    2.4可用性監(jiān)測(cè)探針

    可用性是指服務(wù)可被正常調(diào)用的時(shí)間比例。其值可通過計(jì)算公式TMTTF/(TMTTF+TMTTR)獲取。

    (2)

    式中,i∈(1,2,…,n)表示第i次異常;R是失效恢復(fù)標(biāo)記。平均恢復(fù)前時(shí)間TMTTF可根據(jù)下式計(jì)算

    (3)

    (4)

    (5)

    由此,對(duì)于可用性的監(jiān)測(cè)只需記錄每次異常發(fā)生的時(shí)間以及異常發(fā)生后下一次被正常調(diào)用的時(shí)間即可,故只需根據(jù)可靠性監(jiān)測(cè)探針通知函數(shù)中異常信號(hào)時(shí)間,以及相應(yīng)的下一次執(zhí)行成功信號(hào)時(shí)間即可計(jì)算出有效時(shí)間和失效時(shí)間??捎眯员O(jiān)測(cè)探針切面?zhèn)未a設(shè)計(jì)如下。

    publicaspectavailability

    {

    pointcutexceptionmonitor():execution(* *.main(..));

    around(JoinPointjoinPoint):exceptionmonitor()

    {

    try{returnjoinPoint.proceed();}

    catch(Throwablee)

    {發(fā)送異常產(chǎn)生的時(shí)間;

    發(fā)送失效后恢復(fù)信號(hào);}

    }

    after(JoinPointjoinPoint)returning():exceptionmonitor()

    {發(fā)送恢復(fù)執(zhí)行的服務(wù)狀態(tài);

    發(fā)送執(zhí)行結(jié)束時(shí)間; }

    }

    3 Web服務(wù)運(yùn)行時(shí)監(jiān)測(cè)與可視分析原型系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    3.1系統(tǒng)框架及工作原理

    為了實(shí)現(xiàn)Web服務(wù)運(yùn)行狀態(tài)的實(shí)時(shí)高效監(jiān)測(cè),本文設(shè)計(jì)實(shí)現(xiàn)了一個(gè)Web服務(wù)運(yùn)行時(shí)監(jiān)測(cè)與可視分析原型系統(tǒng)。該原型系統(tǒng)的功能模塊設(shè)計(jì)如圖3所示。系統(tǒng)主要包括6個(gè)功能模塊。

    圖3 Web服務(wù)運(yùn)行時(shí)監(jiān)控與可視分析原型系統(tǒng)功能模塊

    監(jiān)測(cè)代理:負(fù)責(zé)接收Web服務(wù)中AOP探針發(fā)出監(jiān)控信息,主要模塊包括異常信號(hào)接收器、異常信號(hào)計(jì)數(shù)器、服務(wù)執(zhí)行記錄器以及消息發(fā)送模塊等。

    監(jiān)測(cè)屬性計(jì)算模塊:負(fù)責(zé)監(jiān)測(cè)數(shù)據(jù)的計(jì)算和處理,從而獲得異常信息及各個(gè)QoS屬性的實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù),并將這些數(shù)據(jù)發(fā)送給監(jiān)測(cè)屬性訪問模塊,當(dāng)判斷異常為故障時(shí),將故障信息轉(zhuǎn)發(fā)給故障通知模塊。

    監(jiān)測(cè)屬性訪問模塊:從監(jiān)測(cè)屬性計(jì)算模塊接收實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù)和故障信息,并對(duì)其進(jìn)行持久化存儲(chǔ)。該模塊以Web服務(wù)的形式部署在服務(wù)容器中,原型系統(tǒng)通過調(diào)用該模塊來實(shí)時(shí)獲取故障信息、QoS屬性值以及監(jiān)測(cè)屬性歷史數(shù)據(jù)。

    可視化模塊:負(fù)責(zé)Web服務(wù)運(yùn)行狀態(tài)和QoS屬性的可視化展示。

    故障通知模塊:采用Javax中的郵件模塊將Web服務(wù)執(zhí)行過程中發(fā)生的故障信息通過郵件等方式發(fā)送給管理員,提供故障的及時(shí)匯報(bào)以及信息整理。

    屬性數(shù)據(jù)庫:負(fù)責(zé)存儲(chǔ)Web服務(wù)執(zhí)行狀態(tài)以及故障信息,包括每個(gè)服務(wù)的運(yùn)行情況、流程服務(wù)的執(zhí)行序列、故障信息以及監(jiān)測(cè)屬性數(shù)據(jù)等。

    圖4展示了工作流服務(wù)運(yùn)行時(shí),Web服務(wù)運(yùn)行時(shí)監(jiān)控與可視分析原型系統(tǒng)對(duì)其進(jìn)行狀態(tài)數(shù)據(jù)監(jiān)控、采集以及可視化分析的過程。部署于工作流引擎上的工作流服務(wù)被調(diào)用時(shí),引擎通過綁定具體的帶探針Web服務(wù)對(duì)工作流服務(wù)完成實(shí)例化;Web服務(wù)運(yùn)行時(shí)監(jiān)測(cè)與可視化系統(tǒng)的監(jiān)測(cè)代理模塊接收探針發(fā)送的監(jiān)測(cè)消息,然后提取相關(guān)數(shù)據(jù),并分別轉(zhuǎn)發(fā)給監(jiān)測(cè)屬性計(jì)算模塊進(jìn)行進(jìn)一步的計(jì)算和處理;屬性訪問模塊根據(jù)計(jì)算結(jié)果對(duì)日志數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行更新,并負(fù)責(zé)對(duì)屬性數(shù)據(jù)庫中數(shù)據(jù)訪問的控制;可視化模塊調(diào)用屬性數(shù)據(jù)庫中的QoS數(shù)據(jù)和異常信息進(jìn)行可視化展示。

    圖4 Web服務(wù)運(yùn)行時(shí)監(jiān)控?cái)?shù)據(jù)處理過程

    3.2系統(tǒng)實(shí)現(xiàn)

    考慮到Java語言是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,系統(tǒng)采用Java作為開發(fā)語言。監(jiān)測(cè)代理、故障通知模塊和監(jiān)測(cè)屬性計(jì)算模塊均采用Java在OSGI框架下實(shí)現(xiàn);監(jiān)測(cè)屬性訪問模塊利用Java數(shù)據(jù)庫連接(Java Data Base Connectivity,JDBC)完成;屬性數(shù)據(jù)庫使用MySQL6.0實(shí)現(xiàn)??梢暬K采用eclipse+Vaadin6界面開發(fā)工具來完成Web界面開發(fā)。

    此外,系統(tǒng)中的Web服務(wù)均是在Apache Axis2框架下開發(fā),組合服務(wù)均由業(yè)務(wù)流程執(zhí)行語言 (Business Process Excution Language,BPEL)編寫,監(jiān)測(cè)探針編寫以及與Web服務(wù)源代碼的編織都是基于Eclipese插件工具Spring AOP完成。Web服務(wù)部署在Tomcat7.0上運(yùn)行,BPEL部署于Active-BPEL引擎上運(yùn)行。

    4 實(shí)驗(yàn)分析

    4.1實(shí)驗(yàn)環(huán)境

    本實(shí)驗(yàn)運(yùn)行的硬件環(huán)境主要包括2個(gè)物理節(jié)點(diǎn):服務(wù)器端和客戶端。服務(wù)器與客戶端的軟硬件環(huán)境如表1所示。

    軟件環(huán)境方面,服務(wù)器端部署Tomcat6.10服務(wù)器,工作流引擎采用可與Tomcat集成的ActiveBPEL5.10,本節(jié)采用的實(shí)驗(yàn)案例中所有Web服務(wù)和流程服務(wù)均部署其上;Web服務(wù)運(yùn)行時(shí)監(jiān)控與可視分析原型系統(tǒng)同樣部署在服務(wù)器端;客戶端通過瀏覽器訪問監(jiān)測(cè)系統(tǒng)和服務(wù)器。

    表1 測(cè)試環(huán)境軟硬件配置

    4.2實(shí)驗(yàn)過程及結(jié)果分析

    實(shí)驗(yàn)以某商業(yè)信息綜合平臺(tái)上運(yùn)行的Web服務(wù)為監(jiān)測(cè)對(duì)象。該平臺(tái)旨在整合各商業(yè)網(wǎng)站機(jī)構(gòu)已有的商業(yè)信息和服務(wù),提供統(tǒng)一的使用方式。平臺(tái)基于面向服務(wù)體系結(jié)構(gòu)(Service-Oriented Architecture,SOA)將所有的信息和交易過程封裝成Web服務(wù),信息的查詢以及商品交易都以Web服務(wù)和工作流服務(wù)的方式完成。

    4.2.1監(jiān)測(cè)能力測(cè)試

    基于探針的Web服務(wù)運(yùn)行時(shí)監(jiān)控與可視分析系統(tǒng),被應(yīng)用于監(jiān)測(cè)某商業(yè)信息綜合平臺(tái),實(shí)現(xiàn)了對(duì)該平臺(tái)的有效監(jiān)測(cè)。通過對(duì)原平臺(tái)上的所有Web服務(wù)插入AOP監(jiān)控探針,完成了服務(wù)改造,并將其重新部署到服務(wù)器,選取Edble_Oil_Service服務(wù)作為監(jiān)測(cè)可視化能力驗(yàn)證對(duì)象,通過客戶端瀏覽器訪問監(jiān)控與可視化平臺(tái)對(duì)該服務(wù)的監(jiān)控界面進(jìn)行查看。圖5給出了2015年12月17日Edble_Oil_Service服務(wù)運(yùn)行時(shí)監(jiān)測(cè)界面截圖。

    圖6顯示Edble_Oil_Service服務(wù)的平均響應(yīng)時(shí)間并不十分穩(wěn)定,對(duì)于組合服務(wù)而言,服務(wù)的平均運(yùn)行時(shí)間是比較穩(wěn)定的,但由于網(wǎng)絡(luò)環(huán)境的不穩(wěn)定性極易對(duì)服務(wù)的請(qǐng)求/響應(yīng)傳輸時(shí)間造成影響,請(qǐng)求/響應(yīng)傳輸時(shí)間的不穩(wěn)定是造成服務(wù)平均響應(yīng)時(shí)間波動(dòng)的主要原因。

    圖5 某服務(wù)運(yùn)行時(shí)監(jiān)控截圖

    圖6 Edble_Oil_Service服務(wù)平均響應(yīng)時(shí)間監(jiān)測(cè)結(jié)果

    圖7顯示Edble_Oil_Service服務(wù)的可靠性監(jiān)測(cè)結(jié)果,其可靠性指標(biāo)值在10:12:17和12:13:35降低,其原因是在9:51:31和11:49:53發(fā)生了異常事件,如圖5顯示了2條服務(wù)故障通知。

    圖7 Edble_Oil_Service服務(wù)可靠性監(jiān)測(cè)結(jié)果

    圖8顯示Edble_Oil_Service服務(wù)的可用性監(jiān)測(cè)結(jié)果,可用性指標(biāo)值與可靠性指標(biāo)值變化一致。由此可知在9:51:31和11:49:53發(fā)生的異常事件都造成了服務(wù)訪問失敗。

    4.2.2性能影響測(cè)試

    為了評(píng)估AOP探針插入對(duì)Web服務(wù)以及服務(wù)流程執(zhí)行性能的影響,作者選取了核心代碼計(jì)算量為103、104、105、106的4個(gè)Web 服務(wù)進(jìn)行運(yùn)行時(shí)間對(duì)比實(shí)驗(yàn),分別將不帶探針的Service_3、Service_4、Service_5、Service_6和與之對(duì)應(yīng)的已編入探針的ServiceProbe_3、ServiceProbe_4、ServiceProbe_5、ServiceProbe_6,同時(shí)部署于同一個(gè)Tomcat服務(wù)器,分別對(duì)上述服務(wù)訪問30次,計(jì)算其平均響應(yīng)時(shí)間,結(jié)果對(duì)比如圖9所示。

    圖9 探針對(duì)服務(wù)執(zhí)行響應(yīng)時(shí)間影響對(duì)比

    由實(shí)驗(yàn)結(jié)果可知:首先,帶探針服務(wù)的執(zhí)行響應(yīng)時(shí)間明顯高于不帶探針的服務(wù),這表明探針的插入顯然增加了Web服務(wù)的時(shí)間開銷,對(duì)服務(wù)性能具有一定的影響,4組對(duì)比實(shí)驗(yàn)中探針的絕對(duì)平均時(shí)間開銷分別為42.778 ms、45.881 ms、53.156 ms、53.669 ms,探針開銷相對(duì)比較穩(wěn)定,與服務(wù)核心碼計(jì)算量大小不存在明顯線性關(guān)系;其次,由于探針代碼計(jì)算量穩(wěn)定,隨著核心代碼計(jì)算成指數(shù)增加,其相對(duì)開銷逐漸減小,從第一組相對(duì)開銷量40.2%下降到第四組的1.87%;最后,基于探針的監(jiān)測(cè)方法對(duì)于大型工作流服務(wù)而言,監(jiān)測(cè)效率較高,針對(duì)性和適用性都很強(qiáng);相反,對(duì)于小型服務(wù)而言,相對(duì)監(jiān)測(cè)開銷過大,對(duì)服務(wù)性能影響難以忽略,適用性也相對(duì)較低。

    5 結(jié) 束 語

    本文重點(diǎn)介紹了一種基于探針的Web服務(wù)運(yùn)行時(shí)監(jiān)測(cè)方法,該方法中首先針對(duì)Web服務(wù)運(yùn)行時(shí)的主要QoS屬性構(gòu)建了量化模型;然后針對(duì)Web服務(wù)運(yùn)行時(shí)的異常以及響應(yīng)時(shí)間、可靠性、可用性3個(gè)QoS屬性指標(biāo)分別設(shè)計(jì)了基于AOP的Web服務(wù)監(jiān)測(cè)探針,探針采用主動(dòng)推送的方式實(shí)施監(jiān)測(cè),極大地提高了監(jiān)測(cè)針對(duì)性和效率。設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)Web服務(wù)運(yùn)行時(shí)監(jiān)控與可視分析系統(tǒng)。該系統(tǒng)能夠支持Web服務(wù)運(yùn)行時(shí)監(jiān)測(cè)探針采集的監(jiān)測(cè)數(shù)據(jù)處理和可視化展示,并且能夠及時(shí)發(fā)現(xiàn)服務(wù)運(yùn)行故障。實(shí)驗(yàn)中監(jiān)測(cè)能力測(cè)試驗(yàn)證了原型系統(tǒng)和監(jiān)測(cè)探針能夠支持應(yīng)用級(jí)Web服務(wù)系統(tǒng)監(jiān)測(cè),探針性能影響測(cè)試驗(yàn)證了AOP探針插入Web服務(wù)后性能影響在可接受范圍之內(nèi)。

    References)

    [1]高偉.可定制的Web監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2012:5-6.

    [2]LI Z,HAN J,JIN Y.Pattern-based specification and validation of Web services interaction properties [C]//Service-Oriented Computing (ICSOC 2005).Amsterdam:Springer,2005:73-86.

    [3]LI Z,JIN Y,HAN J.A runtime monitoring and validation framework for Web service Interactions[C]//In Proceedings of the 2006 Australian Software Engineering Conference (ASWEC 2006).Sydeny:IEEE,2006:70-79.

    [4]張獻(xiàn).基于AOP的軟件運(yùn)行時(shí)驗(yàn)證關(guān)鍵技術(shù)研究[D].長(zhǎng)沙:國防科學(xué)技術(shù)大學(xué),2012:76-85.

    [5]KALEPU S,KRISHNASWAMY S,SENG W L .Verity:a Qos metric for selecting Web services and providers[C]//Proceedings of the Fourth International Conference on Web Information Systems Engineering Workshops.Roma:IEEE,2003:131-139.

    [6]ARTAIAM N,SENVIONGSE T.Enhancing service-side QoS monitoring for Web service[C]//Ninth ACIS International Conference on Software Engineering,Networking,and Parallel/Distributed Computing.Washington D.C.:IEEE,2008:765-770.

    [7]KICZALES G,LAMPIN J,MENDHEKAR A,et al.Aspect-oriented programming[C]//Proceedings of the 11th European Conference on Object-Oriented Programming,(ECOOP'97).Finland:Springer-Verlag,1997:220-242.

    [8]KICZALES G,HILSDALE E,HUGUNIN J,et al.An overview of AspectJ[C]//Proceedings of the 15th European Conference on Object-Oriented Programming (ECOOP'O1).Hungary:Springer Verlag,2001:327-353.

    (編輯:李江濤)

    Web Service Run-time Monitoring Method Based on Probe

    CHEN Liang1,3,ZOU Peng2,XIONG Dapeng1,2,WANG Hua3,WANG Peng1,2

    (1. Department of Graduate Management, Equipment Academy, Beijing 101416, China;2. Complex Electronic System Simulation Laboratory, Equipment Academy, Beijing 101416, China;3. China Satellite Maritime Tracking and Control Department, Jiangyin Jiangsu 214431, China)

    To know about accurate real-time operation status of the service of the work flow and its component services, this paper proposes a probe-based Web service run-time monitoring method. According to this method, by using aspect-oriented programming (AOP), the researcher can insert the monitoring probe for Web service to acquire data related to the properties of abnormal events and QoS of Web service during operation to realize the real-time monitoring on the operation status of Web service. Aiming at the monitoring demands related to abnormality, response time, reliability and availability, the paper designs and realizes AOP-based monitoring probes respectively; On this basis, based on the open service gateway protocol (OSGI) framework design, the paper implements a Web service runtime monitoring and visual analysis prototype system and then verifies the effectiveness of the method and the availability of the system.

    Web service; monitoring probe; run-time monitoring; aspect-oriented programming

    2016-06-05

    國家級(jí)課題基金資助項(xiàng)目(2012AA012902)

    陳亮(1987—),男,博士研究生,主要研究方向?yàn)樾畔⒕W(wǎng)絡(luò)安全。sky_8682@qq.com

    TP319

    2095-3828(2016)05-0100-07

    A DOI10.3783/j.issn.2095-3828.2016.05.021

    鄒鵬,男,教授,博士生導(dǎo)師。

    猜你喜歡
    探針可靠性監(jiān)控
    The Great Barrier Reef shows coral comeback
    可靠性管理體系創(chuàng)建與實(shí)踐
    你被監(jiān)控了嗎?
    Zabbix在ATS系統(tǒng)集中監(jiān)控中的應(yīng)用
    看監(jiān)控?cái)z像機(jī)的4K之道
    電子制作(2017年2期)2017-05-17 03:55:06
    多通道Taqman-探針熒光定量PCR鑒定MRSA方法的建立
    BOPIM-dma作為BSA Site Ⅰ特異性探針的研究及其應(yīng)用
    基于可靠性跟蹤的薄弱環(huán)節(jié)辨識(shí)方法在省級(jí)電網(wǎng)可靠性改善中的應(yīng)用研究
    透射電子顯微鏡中的掃描探針裝置
    石家庄市| 甘孜县| 准格尔旗| 福泉市| 许昌县| 临潭县| 应用必备| 北海市| 从江县| 开鲁县| 汶川县| 佛冈县| 扬中市| 嘉禾县| 西充县| 雷波县| 长寿区| 延长县| 健康| 北川| 玛多县| 滁州市| 清流县| 柞水县| 隆尧县| 永定县| 万山特区| 彩票| 安阳市| 穆棱市| 武威市| 务川| 抚远县| 吴忠市| 浦县| 昭觉县| 赫章县| 朝阳县| 济南市| 乌拉特后旗| 广州市|