论文部分内容阅读
摘 要:本文给出了指挥业务服务可靠性的度量方法,然后对指挥业务组合服务的可靠性评价模型进行了分析,最后提出了一种基于冗余的指挥业务组合服务可靠性计算方法。
关键词:指挥业务;组合服务;可靠性
1 指挥业务服务的可靠性度量
指挥业务服务的可靠性定义指的是在规定条件下和约束时间内,指挥业务服务满足用户需求且完成既定功能的能力。在实际计算指挥业务服务的可靠性时,指挥业务服务的可靠性可以通过在服务调用端统计服务执行成功次数与被调用总次数之比来计算其可靠性,如式1所示:
其中countstotal代表服务被调用次数,countssucceed代表countstotal次调用中成功返回服务执行结果的次数。该方法是目前最常用的Web服务可靠性计算方法,本文也采用此算法来计算指挥业务服务的可靠性。
2 基于冗余的指挥业务组合服务可靠性评价模型
指挥调度系统指挥业务组合服务流程可以被定义为一个具有不同业务功能的指挥业务相互关联形成一组具有依赖关系的组合任务,从而形成更大粒度的指挥业务服务,满足指挥力量的更高级的指挥业务需求。本文将指挥业务服务组合流程限制为由最常用的顺序流程结构、分支流程结构、并行流程结构和循环流程结构这四种结构之间有限次的递归嵌套。目前,组合服务的可靠性研究都是基于非储备的可靠性模型进行研究,而本文借鉴软件容错的思想,即在指挥业务服务组合流程上的各个任务选取多个待执行的备选指挥业务服务,每个指挥任务不是只对应一个服务实例来执行,通过冗余的指挥业务来保证组合服务流程的可靠性。下面对指挥业务服务的原子业务以及四种组合服务流程的可靠性评价模型进行详细介绍。
2.1 原子业务
原子业务是指完成某类特定指挥业务的单个指挥业务服务,是指挥业务服务组合流程的最小单元。其构成可描述为:<原子业务标识,原子业务名称,原子业务描述,可靠性描述,执行效率>等;设原子业务taski所对应的第j个指挥业务服务的可靠度为CSi,jR,则原子业务taski的可靠度taskiR可由并联系统公式写出:
2.2 顺序流程结构
指挥业务组合服务中的每个任务对应多个指挥业务服务,则顺序流程结构在基于冗余情况下的可靠性模型如图1所示,图中假设流程中的每个任务均为原子业务。
设该流程结构中有n个任务,则整个顺序结构的组合服务可靠度sf.R又可用串联系统公式得到:
由于每个任务均为原子业务,则该流程结构的组合服务可靠性sf.R为:
2.3 分支流程
基于冗余的思想,指挥业务组合服务中的每个任务应该对应多个备选服务,则分支流程的可靠性模型如图2所示,图中假设流程中每个分支均由原子任务组成。
设该流程结构共有n个分支,由图2可知,每个分支上的任务都有可能被选取执行,所以分支结构的可靠性值应等于分支结构上所有任务的可靠度最小值,公式如5所示。
2.4 并行流程
指挥业务组合服务并行流程的可靠性评价模型如图3所示,图中假设每个并行路径均由原子任务组成。
设该流程共有n个并行分叉,由图3可以看出,并行结构与顺序结构的处理方法应该相同,故计算方法类似,如公式6所示。
2.5 循环流程
指挥业务循环流程的组合服务可靠性模型,如图4所示,图中假设被循环执行的路径由一个原子任务组成。
其中g为循环次数,则该循环结构可看成g个顺序结构串联而成,则其处理方法与顺序流程类似,如公式7所示。
3 基于冗余的指挥业务组合服务可靠性计算方法
按照本文的定义,指挥业务组合服务是由顺序、分支、循环和并行结构经过有限次的递归嵌套组合而成,为了计算组合业务的可靠性首先需要计算出原子业务的可靠性,而原子业务的可靠性由与其对应的候选服务的可靠性决定。对于分支流程来说,分支流程的可靠性由所有分支中各个任务的待执行备选服务中可靠性最小的任务决定;对于并行结构来说,可靠性的计算方法与顺序结构的计算方法相同,在此基础上按照在组合流程中嵌套的层次进行递归处理,就能求出任意嵌套层次中每个任务的可靠性值。根据上节中针对不同流程的指挥业务组合服务的可靠性计算公式,本文提出一种基于冗余的组合服务可靠性计算方法,该算法流程图如图5所示。
其中ComputeR()的算法描述如下:
【算法1】基于储备的组合服务可靠性计算算法
// sct代表欲被计算的顺序复合任务,算法执行后其可靠性保存在sct.R中;
//sct包含的任务task的可靠性保存在task.R中。
function ComputeR(inout sct)
{
begin_task←sct包含的开始任务节点;
end_task←sct包含的开始任务节点;
sct.R←1;
for(task= begin_task to end_task) do
{
task.R←1;
if(task是原子任务)
{
//加载task关联的待执行备选服务状态
task.R← ;
}
else
{
switch task的复合任务
{
//根据任务的复合任务,递归计算其可靠性
case LOOP:
rf←task中被循环执行的流程;
ComputeR(rf);
//计算该循环复合任务的可靠性
task.R←(rf.R)g;
case CONDITION:
for(each branch flow of the task)
{
bf←当前分支路径;
ComputeR(bf);
//计算该分支复合任务的可靠性
task.R←Min(task.R,bf.R);
}
case PARALLEL:
for(each synchronized branch flow of the task)
{
ff←当前分叉路径;
ComputeR(ff);
//计算该并行复合任务的可靠性
task.R←task.R*ff.R;
}
}//switch ends
}//if ends
//将task的可靠性汇总到整个顺序复合任务
sct.R←sct.R* task.R;
}//for ends
}//function ends
本文中指挥业务组合服务被等效视为一个顺序复合流程,故可以直接调用算法1来计算指挥业务组合流程中各个嵌套层次复合流程的可靠性。
[参考文献]
[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]温小云,师宇杰,牛忠霞.系统可靠性模型综述[J].电子产品可靠性与环境试验,2005,6.
[3]卢明银,徐人平.系统可靠性[M].北京:机械工业出版社,2008.
[4]王一飞,吴素芹,王榕.Web服务组合建模的研究[J].通信技术,2009,42(7).
关键词:指挥业务;组合服务;可靠性
1 指挥业务服务的可靠性度量
指挥业务服务的可靠性定义指的是在规定条件下和约束时间内,指挥业务服务满足用户需求且完成既定功能的能力。在实际计算指挥业务服务的可靠性时,指挥业务服务的可靠性可以通过在服务调用端统计服务执行成功次数与被调用总次数之比来计算其可靠性,如式1所示:
其中countstotal代表服务被调用次数,countssucceed代表countstotal次调用中成功返回服务执行结果的次数。该方法是目前最常用的Web服务可靠性计算方法,本文也采用此算法来计算指挥业务服务的可靠性。
2 基于冗余的指挥业务组合服务可靠性评价模型
指挥调度系统指挥业务组合服务流程可以被定义为一个具有不同业务功能的指挥业务相互关联形成一组具有依赖关系的组合任务,从而形成更大粒度的指挥业务服务,满足指挥力量的更高级的指挥业务需求。本文将指挥业务服务组合流程限制为由最常用的顺序流程结构、分支流程结构、并行流程结构和循环流程结构这四种结构之间有限次的递归嵌套。目前,组合服务的可靠性研究都是基于非储备的可靠性模型进行研究,而本文借鉴软件容错的思想,即在指挥业务服务组合流程上的各个任务选取多个待执行的备选指挥业务服务,每个指挥任务不是只对应一个服务实例来执行,通过冗余的指挥业务来保证组合服务流程的可靠性。下面对指挥业务服务的原子业务以及四种组合服务流程的可靠性评价模型进行详细介绍。
2.1 原子业务
原子业务是指完成某类特定指挥业务的单个指挥业务服务,是指挥业务服务组合流程的最小单元。其构成可描述为:<原子业务标识,原子业务名称,原子业务描述,可靠性描述,执行效率>等;设原子业务taski所对应的第j个指挥业务服务的可靠度为CSi,jR,则原子业务taski的可靠度taskiR可由并联系统公式写出:
2.2 顺序流程结构
指挥业务组合服务中的每个任务对应多个指挥业务服务,则顺序流程结构在基于冗余情况下的可靠性模型如图1所示,图中假设流程中的每个任务均为原子业务。
设该流程结构中有n个任务,则整个顺序结构的组合服务可靠度sf.R又可用串联系统公式得到:
由于每个任务均为原子业务,则该流程结构的组合服务可靠性sf.R为:
2.3 分支流程
基于冗余的思想,指挥业务组合服务中的每个任务应该对应多个备选服务,则分支流程的可靠性模型如图2所示,图中假设流程中每个分支均由原子任务组成。
设该流程结构共有n个分支,由图2可知,每个分支上的任务都有可能被选取执行,所以分支结构的可靠性值应等于分支结构上所有任务的可靠度最小值,公式如5所示。
2.4 并行流程
指挥业务组合服务并行流程的可靠性评价模型如图3所示,图中假设每个并行路径均由原子任务组成。
设该流程共有n个并行分叉,由图3可以看出,并行结构与顺序结构的处理方法应该相同,故计算方法类似,如公式6所示。
2.5 循环流程
指挥业务循环流程的组合服务可靠性模型,如图4所示,图中假设被循环执行的路径由一个原子任务组成。
其中g为循环次数,则该循环结构可看成g个顺序结构串联而成,则其处理方法与顺序流程类似,如公式7所示。
3 基于冗余的指挥业务组合服务可靠性计算方法
按照本文的定义,指挥业务组合服务是由顺序、分支、循环和并行结构经过有限次的递归嵌套组合而成,为了计算组合业务的可靠性首先需要计算出原子业务的可靠性,而原子业务的可靠性由与其对应的候选服务的可靠性决定。对于分支流程来说,分支流程的可靠性由所有分支中各个任务的待执行备选服务中可靠性最小的任务决定;对于并行结构来说,可靠性的计算方法与顺序结构的计算方法相同,在此基础上按照在组合流程中嵌套的层次进行递归处理,就能求出任意嵌套层次中每个任务的可靠性值。根据上节中针对不同流程的指挥业务组合服务的可靠性计算公式,本文提出一种基于冗余的组合服务可靠性计算方法,该算法流程图如图5所示。
其中ComputeR()的算法描述如下:
【算法1】基于储备的组合服务可靠性计算算法
// sct代表欲被计算的顺序复合任务,算法执行后其可靠性保存在sct.R中;
//sct包含的任务task的可靠性保存在task.R中。
function ComputeR(inout sct)
{
begin_task←sct包含的开始任务节点;
end_task←sct包含的开始任务节点;
sct.R←1;
for(task= begin_task to end_task) do
{
task.R←1;
if(task是原子任务)
{
//加载task关联的待执行备选服务状态
task.R← ;
}
else
{
switch task的复合任务
{
//根据任务的复合任务,递归计算其可靠性
case LOOP:
rf←task中被循环执行的流程;
ComputeR(rf);
//计算该循环复合任务的可靠性
task.R←(rf.R)g;
case CONDITION:
for(each branch flow of the task)
{
bf←当前分支路径;
ComputeR(bf);
//计算该分支复合任务的可靠性
task.R←Min(task.R,bf.R);
}
case PARALLEL:
for(each synchronized branch flow of the task)
{
ff←当前分叉路径;
ComputeR(ff);
//计算该并行复合任务的可靠性
task.R←task.R*ff.R;
}
}//switch ends
}//if ends
//将task的可靠性汇总到整个顺序复合任务
sct.R←sct.R* task.R;
}//for ends
}//function ends
本文中指挥业务组合服务被等效视为一个顺序复合流程,故可以直接调用算法1来计算指挥业务组合流程中各个嵌套层次复合流程的可靠性。
[参考文献]
[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]温小云,师宇杰,牛忠霞.系统可靠性模型综述[J].电子产品可靠性与环境试验,2005,6.
[3]卢明银,徐人平.系统可靠性[M].北京:机械工业出版社,2008.
[4]王一飞,吴素芹,王榕.Web服务组合建模的研究[J].通信技术,2009,42(7).