摘 要:本文給出了指揮業(yè)務(wù)服務(wù)可靠性的度量方法,然后對(duì)指揮業(yè)務(wù)組合服務(wù)的可靠性評(píng)價(jià)模型進(jìn)行了分析,最后提出了一種基于冗余的指揮業(yè)務(wù)組合服務(wù)可靠性計(jì)算方法。
關(guān)鍵詞:指揮業(yè)務(wù);組合服務(wù);可靠性
1 指揮業(yè)務(wù)服務(wù)的可靠性度量
指揮業(yè)務(wù)服務(wù)的可靠性定義指的是在規(guī)定條件下和約束時(shí)間內(nèi),指揮業(yè)務(wù)服務(wù)滿足用戶需求且完成既定功能的能力。在實(shí)際計(jì)算指揮業(yè)務(wù)服務(wù)的可靠性時(shí),指揮業(yè)務(wù)服務(wù)的可靠性可以通過(guò)在服務(wù)調(diào)用端統(tǒng)計(jì)服務(wù)執(zhí)行成功次數(shù)與被調(diào)用總次數(shù)之比來(lái)計(jì)算其可靠性,如式1所示:
其中countstotal代表服務(wù)被調(diào)用次數(shù),countssucceed代表countstotal次調(diào)用中成功返回服務(wù)執(zhí)行結(jié)果的次數(shù)。該方法是目前最常用的Web服務(wù)可靠性計(jì)算方法,本文也采用此算法來(lái)計(jì)算指揮業(yè)務(wù)服務(wù)的可靠性。
2 基于冗余的指揮業(yè)務(wù)組合服務(wù)可靠性評(píng)價(jià)模型
指揮調(diào)度系統(tǒng)指揮業(yè)務(wù)組合服務(wù)流程可以被定義為一個(gè)具有不同業(yè)務(wù)功能的指揮業(yè)務(wù)相互關(guān)聯(lián)形成一組具有依賴關(guān)系的組合任務(wù),從而形成更大粒度的指揮業(yè)務(wù)服務(wù),滿足指揮力量的更高級(jí)的指揮業(yè)務(wù)需求。本文將指揮業(yè)務(wù)服務(wù)組合流程限制為由最常用的順序流程結(jié)構(gòu)、分支流程結(jié)構(gòu)、并行流程結(jié)構(gòu)和循環(huán)流程結(jié)構(gòu)這四種結(jié)構(gòu)之間有限次的遞歸嵌套。目前,組合服務(wù)的可靠性研究都是基于非儲(chǔ)備的可靠性模型進(jìn)行研究,而本文借鑒軟件容錯(cuò)的思想,即在指揮業(yè)務(wù)服務(wù)組合流程上的各個(gè)任務(wù)選取多個(gè)待執(zhí)行的備選指揮業(yè)務(wù)服務(wù),每個(gè)指揮任務(wù)不是只對(duì)應(yīng)一個(gè)服務(wù)實(shí)例來(lái)執(zhí)行,通過(guò)冗余的指揮業(yè)務(wù)來(lái)保證組合服務(wù)流程的可靠性。下面對(duì)指揮業(yè)務(wù)服務(wù)的原子業(yè)務(wù)以及四種組合服務(wù)流程的可靠性評(píng)價(jià)模型進(jìn)行詳細(xì)介紹。
2.1 原子業(yè)務(wù)
原子業(yè)務(wù)是指完成某類特定指揮業(yè)務(wù)的單個(gè)指揮業(yè)務(wù)服務(wù),是指揮業(yè)務(wù)服務(wù)組合流程的最小單元。其構(gòu)成可描述為:<原子業(yè)務(wù)標(biāo)識(shí),原子業(yè)務(wù)名稱,原子業(yè)務(wù)描述,可靠性描述,執(zhí)行效率>等;設(shè)原子業(yè)務(wù)taski所對(duì)應(yīng)的第j個(gè)指揮業(yè)務(wù)服務(wù)的可靠度為CSi,jR,則原子業(yè)務(wù)taski的可靠度taskiR可由并聯(lián)系統(tǒng)公式寫出:
2.2 順序流程結(jié)構(gòu)
指揮業(yè)務(wù)組合服務(wù)中的每個(gè)任務(wù)對(duì)應(yīng)多個(gè)指揮業(yè)務(wù)服務(wù),則順序流程結(jié)構(gòu)在基于冗余情況下的可靠性模型如圖1所示,圖中假設(shè)流程中的每個(gè)任務(wù)均為原子業(yè)務(wù)。
設(shè)該流程結(jié)構(gòu)中有n個(gè)任務(wù),則整個(gè)順序結(jié)構(gòu)的組合服務(wù)可靠度sf.R又可用串聯(lián)系統(tǒng)公式得到:
由于每個(gè)任務(wù)均為原子業(yè)務(wù),則該流程結(jié)構(gòu)的組合服務(wù)可靠性sf.R為:
2.3 分支流程
基于冗余的思想,指揮業(yè)務(wù)組合服務(wù)中的每個(gè)任務(wù)應(yīng)該對(duì)應(yīng)多個(gè)備選服務(wù),則分支流程的可靠性模型如圖2所示,圖中假設(shè)流程中每個(gè)分支均由原子任務(wù)組成。
設(shè)該流程結(jié)構(gòu)共有n個(gè)分支,由圖2可知,每個(gè)分支上的任務(wù)都有可能被選取執(zhí)行,所以分支結(jié)構(gòu)的可靠性值應(yīng)等于分支結(jié)構(gòu)上所有任務(wù)的可靠度最小值,公式如5所示。
2.4 并行流程
指揮業(yè)務(wù)組合服務(wù)并行流程的可靠性評(píng)價(jià)模型如圖3所示,圖中假設(shè)每個(gè)并行路徑均由原子任務(wù)組成。
設(shè)該流程共有n個(gè)并行分叉,由圖3可以看出,并行結(jié)構(gòu)與順序結(jié)構(gòu)的處理方法應(yīng)該相同,故計(jì)算方法類似,如公式6所示。
2.5 循環(huán)流程
指揮業(yè)務(wù)循環(huán)流程的組合服務(wù)可靠性模型,如圖4所示,圖中假設(shè)被循環(huán)執(zhí)行的路徑由一個(gè)原子任務(wù)組成。
其中g(shù)為循環(huán)次數(shù),則該循環(huán)結(jié)構(gòu)可看成g個(gè)順序結(jié)構(gòu)串聯(lián)而成,則其處理方法與順序流程類似,如公式7所示。
3 基于冗余的指揮業(yè)務(wù)組合服務(wù)可靠性計(jì)算方法
按照本文的定義,指揮業(yè)務(wù)組合服務(wù)是由順序、分支、循環(huán)和并行結(jié)構(gòu)經(jīng)過(guò)有限次的遞歸嵌套組合而成,為了計(jì)算組合業(yè)務(wù)的可靠性首先需要計(jì)算出原子業(yè)務(wù)的可靠性,而原子業(yè)務(wù)的可靠性由與其對(duì)應(yīng)的候選服務(wù)的可靠性決定。對(duì)于分支流程來(lái)說(shuō),分支流程的可靠性由所有分支中各個(gè)任務(wù)的待執(zhí)行備選服務(wù)中可靠性最小的任務(wù)決定;對(duì)于并行結(jié)構(gòu)來(lái)說(shuō),可靠性的計(jì)算方法與順序結(jié)構(gòu)的計(jì)算方法相同,在此基礎(chǔ)上按照在組合流程中嵌套的層次進(jìn)行遞歸處理,就能求出任意嵌套層次中每個(gè)任務(wù)的可靠性值。根據(jù)上節(jié)中針對(duì)不同流程的指揮業(yè)務(wù)組合服務(wù)的可靠性計(jì)算公式,本文提出一種基于冗余的組合服務(wù)可靠性計(jì)算方法,該算法流程圖如圖5所示。
其中ComputeR()的算法描述如下:
【算法1】基于儲(chǔ)備的組合服務(wù)可靠性計(jì)算算法
// sct代表欲被計(jì)算的順序復(fù)合任務(wù),算法執(zhí)行后其可靠性保存在sct.R中;
//sct包含的任務(wù)task的可靠性保存在task.R中。
function ComputeR(inout sct)
{
begin_task←sct包含的開始任務(wù)節(jié)點(diǎn);
end_task←sct包含的開始任務(wù)節(jié)點(diǎn);
sct.R←1;
for(task= begin_task to end_task) do
{
task.R←1;
if(task是原子任務(wù))
{
//加載task關(guān)聯(lián)的待執(zhí)行備選服務(wù)狀態(tài)
task.R← ;
}
else
{
switch task的復(fù)合任務(wù)
{
//根據(jù)任務(wù)的復(fù)合任務(wù),遞歸計(jì)算其可靠性
case LOOP:
rf←task中被循環(huán)執(zhí)行的流程;
ComputeR(rf);
//計(jì)算該循環(huán)復(fù)合任務(wù)的可靠性
task.R←(rf.R)g;
case CONDITION:
for(each branch flow of the task)
{
bf←當(dāng)前分支路徑;
ComputeR(bf);
//計(jì)算該分支復(fù)合任務(wù)的可靠性
task.R←Min(task.R,bf.R);
}
case PARALLEL:
for(each synchronized branch flow of the task)
{
ff←當(dāng)前分叉路徑;
ComputeR(ff);
//計(jì)算該并行復(fù)合任務(wù)的可靠性
task.R←task.R*ff.R;
}
}//switch ends
}//if ends
//將task的可靠性匯總到整個(gè)順序復(fù)合任務(wù)
sct.R←sct.R* task.R;
}//for ends
}//function ends
本文中指揮業(yè)務(wù)組合服務(wù)被等效視為一個(gè)順序復(fù)合流程,故可以直接調(diào)用算法1來(lái)計(jì)算指揮業(yè)務(wù)組合流程中各個(gè)嵌套層次復(fù)合流程的可靠性。
[參考文獻(xiàn)]
[1]Belli F,Jedrzejowicz P.An Approach to the Reliability Optimization of Software with Redundancy[J].IEEE Transactions on Software Engineering,1991,17(3).
[2]溫小云,師宇杰,牛忠霞.系統(tǒng)可靠性模型綜述[J].電子產(chǎn)品可靠性與環(huán)境試驗(yàn),2005,6.
[3]盧明銀,徐人平.系統(tǒng)可靠性[M].北京:機(jī)械工業(yè)出版社,2008.
[4]王一飛,吳素芹,王榕.Web服務(wù)組合建模的研究[J].通信技術(shù),2009,42(7).