1.一种面向Web服务计算环境的数据细胞自愈方法,其特征在于,所述自愈方法包括以下步骤:第一步、结合Bigraph理论,建立一个服务组合框架,分为两阶段;
1.1、信息抽取和细胞建模:提取服务的相关描述信息,得到服务描述元数据,基于抽取的服务信息,根据服务的语法信息匹配服务操作参数与资源状态,基于Bigraph理论构建数据细胞和数据细胞簇的结构及生物特性,代表服务的状态信息与服务间潜在的调用关系;
1.2、服务组合:将数据细胞和数据细胞簇作为服务的演化行为方式的载体,选取数据细胞和细胞簇进行服务组合,模拟服务生成组合服务的行为模式,构建基于数据细胞的服务组合模型;
第二步、基于所述的框架提出的一种面向Web服务计算环境的数据细胞自愈方法,过程如下:
2.1:Web服务的信息抽取
在Web服务的信息抽取阶段,将服务的名称映射为s,每个服务对应一个控制C,唯一,组成规则为:C=s:cotrol;将服务的可用性度量映射为U,将服务的端口的ID、名称和类型分别映射为pI、pN和pT,另外将端口的控制类型映射为pC,代表此端口是输入、输出还是输入/输出;将此服务和其他服务的依赖状态映射为CL,组成规则为:CL=
2.2:细胞建模
对于服务的形式化建模需要根据映射规则,将服务的结构和消息交互行为加以映射到对应形式化结构和动作,从而通过形式化的方法对服务及其组合进行进程演算;
2.3:服务组合验证
对web服务组合的全局交互行为和局部行为建立形式化描述,并利用Bigraph一致性算法验证web服务组合参与者的动态行为能够正确交互以及全局交互行为和局部行为的一致性,保证web服务组合的有效性;
2.4:失效服务检测
通过监控服务的质量,当发现服务失效时,自动将细胞Bigraph中的该失效服务信息删除,从而达到系统对失效服务组合的预警,后期进行相关服务的替换,进而可以保障服务的质量;
2.5:细胞自愈
对服务有效性和质量进行周期性检测,通过对结构变异部分的数据细胞进行自我修复,实现服务动态行为的演化,使服务组合能够恢复预期的功能,最终达到自愈的效果。
2.如权利要求1所述的一种面向Web服务计算环境的数据细胞自愈方法,其特征在于,所述步骤2.5中,提出一种心跳机制,通过每次对服务的检测结果动态调节下一次检测的请求时间,另设置一个慢请求门限,当检测间隔时间未达到门限值时采取间隔时间单位指数增加,之后采取线性增加方式。
3.如权利要求1或2所述的一种面向Web服务计算环境的数据细胞自愈方法,其特征在于,所述步骤2.2中,给出的形式定义如下:定义1.数据细胞的Bigraph定义是一个五元组DC=:
(2)E是包含服务集的有限边集合, 称为一条连接边;
(3)Ctrl:S→C,代表服务到控制C的映射图;
(4)CP、CL为位置图和连接图,分别表示各计算服务的所在位置和服务之间的依赖关系;
(5)内部接口
定义2.服务的控制C是五元组C=
(2)P是当前服务控制上端口的有限集, 称为一个端口;
(3)CL=
(4)U是当前服务的可用性度量,是一个概率值;
定义3.服务的依赖层次DL代表该服务的组合结构,取值来自状态集{⊙《, ,》},其中⊙ ,《,》分别代表此服务和其他服务为无依赖、前置依赖、后置依赖等关系;
定义4.端口的定义是一个四元组p=
(2)pT是该端口的类型,代表接口参数的类型;
(3)pC是该端口的控制属性,取值来自状态集 其中 分别代表该
端口是输入端口、输出端口还是输入/输出端口;
数据细胞的Bigraph定义目的在于构造数据细胞的结构和生物特性,每一个数据细胞对应一个原子服务或者复合服务,从而体现服务的结构资源特点和相互依赖关系,数据细胞的具体结构和元素定义详见表1,一个数据细胞对应Bigraph中的root,数据细胞中的每个服务对应Bigraph中的节点,服务之间的依赖关系为Bigraph中节点的连接边,每个服务的基本信息和上下文关系对应Bigraph中节点的控制,服务的每个输入、输出端口对应Bigraph中节点端口的形状;
表1
由于单个数据细胞提供的服务功能相对较为单一,但在实际应用中,为满足用户日益复杂的需求,需要从网络上选择合适的服务并按照一定的业务规则进行组合,构建可伸缩的松耦合的组合,数据细胞簇基于服务组合的四种工作流模式,由多个数据细胞按照功能属性和需求调用动态聚集组合而成;数据细胞基于Bigraph的合成、并置规则从而形成数据细胞簇,数据细胞簇同样能够消化从环境中感知吸收和其他数据细胞交流的信息,智能地与其他数据细胞进行互动,从而可以提供更加精确复杂的服务功能;DCEM中数据细胞簇的相关形式定义如下:定义5.数据细胞簇的定义是一个三元组DCC=
(2)CS是数据细胞组合结构的有限集;
(3)LinkS是数据细胞簇中各端口的连接集合, 称为两个端口的连接关系;
定义6.数据细胞的组合结构cs是一个三元组cs=
(2)St是该组合数据细胞的依赖结构,取值来自状态集{·、+、||、*},分别代表这数据细胞DCi与DCi组合是顺序、选择、并行或者循环结构;
定义7.端口的连接关系是一个二元组Link=
项语言是Bigraph动态演化的形式化规约和性质验证的基础,不同工作流模式的数据细胞簇项语言定义具有通用特征,为了更好的描述不同服务结构数据细胞簇的项语言定义,归纳总结一系列符号和定义,如表2所示:符号 定义
DCm 第m个数据细胞
Sn 第n个数据服务
ei 第i条数据服务连接边
ij, 第j个内部名
Ij, 用外部名替换的第j个内部名
ok 第k个外部名
表2
通过Bigraph中项语言的表达理论和表2中基于数据细胞结构的相关定义,对上文所述的基于服务组合工作流模式构造的数据细胞簇分析,在数据细胞簇项语言形式化上下文中,定义基本代数概念,所述基本代数概念包括基调和项集;
定义8:数据细胞簇形式化定义上的基调∑由类子:数据细胞集DC、数据服务集S、边集E、内部连接集I、外部连接集O、地点集N和一系列操作符·、+、||、*组成,每个操作符f的操作数记为ar(f);
定义9:令Σ是数据细胞簇形式化定义上的基调,则基调Σ上的项集∏(Σ)是满足以下条件的最小集合:(1)每个类子变量都是项集中的元素;
(2)
(3)如果f∈Σ,且DC1,DC2,...,DCiar(f)∈∏(Σ),那么f(DC1,DC2,…,DC iar(f))∈∏(Σ);
定义10:令Σ是数据细胞簇形式化定义上的基调,∏(Σ)是基调Σ上的项集,若u(f)∈∏(Σ),则称u(f)为基于操作f的项;项的定义也可采用结构归纳定义,表示成以下形式:其中::=表示归纳定义,ELrule代表数据细胞簇Bigraph形式中边和连接的形式化定义,DCi代表单个数据细胞的项语言定义,m为数据细胞的个数;
定义11:服务组合的可靠性表示该组合方案能正确执行的可能性,以及抗失效的能力,将一个数据细胞簇的可靠性表示为CR,可以用定义2中该服务的U属性描述,其中n为数据细胞簇中的服务总个数,则数据细胞簇的可靠性为:
4.如权利要求3所述的一种面向Web服务计算环境的数据细胞自愈方法,其特征在于,所述步骤2.3中,定义12Bigraph反应规则:S=
2.3.1:判断反应规则集合R是否为空,如果为空转步骤2.3.8,否则转步骤2.3.2;
2.3.2:设置一个最大匹配时间约束timeConstraints;
2.3.3:依次解析反应规则集合R的元素,其中Rm代表其内共有m条反应规则,读取当前已经解析的反应规则ri,ri(0
2.3.4;
2.3.4:解析步骤2.3.3中的反应规则ri,通过匹配方法isMatch判断Bigraph BC中是否有服务符合匹配条件,如果存在匹配则转步骤2.3.5,并记录匹配所花费的时间spentTime,否则转步骤2.3.3;
2.3.5:如果匹配花费的时间spentTime大于timeConstraints,则转步骤2.3.6,否则转步骤2.3.5.1;
2.3.5.1:如果Bigraph BC是第一次反应替换,则将BC与ri匹配的部分进行替换,生成新的Bigraph BC',转步骤2.3.3,否则转步骤2.3.5.2;
2.3.5.2:将此时的Bigraph BC'与ri匹配的部分进行替换,生成新的Bigraph BC'替换之前的Bigraph,转步骤2.3.3;
2.3.6:该数据细胞Bigraph演化过程中此条规则未在约束时间内找到对应的服务进行匹配演化,转步骤2.3.3;
2.3.7:返回步骤2.3.5中生成最终的数据细胞演化后的Bigraph BC';
2.3.8:该演化过程的反应规则为空,不满足演化条件,返回原Bigraph BC。
5.如权利要求4所述的一种面向Web服务计算环境的数据细胞自愈方法,其特征在于,所述步骤2.3.4中的匹配算法具体步骤如下:
2.3.4.1:依次解析进行演化的数据细胞的Bigraph BC的结构,直到解析完最后一个服务结束,其中服务集合Sn代表其内共有n个数据服务,sj(0
2.3.4.2:解析反应规则ri,判断ri内是否包含数据服务sj,如果包含则转步骤2.3.4.3,否则转步骤2.3.4.6;过程如下:
2.3.4.2.1:判断sj的控制名称和ri的控制名称是否相同,如果相同则转2.3.4.2.2,否则转2.3.4.4;
2.3.4.2.2:判断sj的控制类型和ri的控制类型是否相同,如果相同则转2.3.4.2.3,否则转2.3.4.4;
2.3.4.2.3:依次检测sj的端口p,判断sj的端口ID和ri的端口ID是否相同,如果相同则转2.3.4.2.4,否则转2.3.4.4;
2.3.4.2.4:依次检测sj的端口p,判断sj的端口名称和ri的端口名称是否相同,如果相同则转2.3.4.2.5,否则转2.3.4.4;
2.3.4.2.5:依次检测sj的端口p,判断sj的端口类型和ri的端口类型是否相同,如果相同则转2.3.4.2.6,否则转2.3.4.4;
2.3.4.2.6:依次检测sj的端口p,判断sj的端口控制属性和ri的端口控制属性是否相同,如果相同则转2.3.4.2.6,否则转2.3.4.4;
2.3.4.3:说明该数据服务sj和此条反应规则ri匹配,可以进行演化;
2.3.4.4:说明此数据服务sj不满足该反应规则ri的演化条件,不可进行演化,转步骤
2.3.4.1。
6.如权利要求1或2所述的一种面向Web服务计算环境的数据细胞自愈方法,其特征在于,所述步骤2.4中,面向web基于Bigraph替换算法的服务质量监控方法流程如下:
2.4.1:设置最低服务质量的阈值Umin;
2.4.2:监控服务s的服务质量U,如果此时的服务质量低于Umin,判定该服务失去其功能,需要对包含该服务的Bigraph中的s服务信息进行删除,转2.4.2.1,否则转2.4.3;
2.4.3:该服务的服务质量正常,继续进行服务监控,一定时间后更新服务s的服务质量U,并转向2.4.2。
7.如权利要求6所述的一种面向Web服务计算环境的数据细胞自愈方法,其特征在于,所述步骤2.4.2中,对包含该服务的Bigraph中的s服务信息进行删除的流程如下:
2.4.2.1:依次解析检测的数据细胞Bigraph BC的结构,其中服务集合Sn代表其内共有n个数据服务,读取当前已经解析的服务si,si(0
2.4.2,否则转2.4.2.2;
2.4.2.2:判断步骤2.4.2中失效服务s是否和步骤2.4.2.1中的检测服务si相同。结合定义2判断两个服务的控制C是否相同,如果两个控制C的名称CN、类型CT、端口集合P、服务依赖状态CL都一致,则代表两个服务是相同服务转2.4.2.3,否则转2.4.2.6;
2.4.2.3:结合定义3检测该服务si控制中的依赖层次DL,如果为⊙则代表无依赖关系转
2.4.2.4,否则转2.4.2.5;
2.4.2.4:删除Bigraph BC中服务si的所有信息,包括删除BC的服务集合Sn中的服务si,端口集合P中si服务端口的ID信息pI、名称pN、类型pT和控制属性pC,删除BC的位置图和连接图中的节点si,删除服务si的内连接边集合X和外连接边集合Y,如果si有site,则对应也要在BC中删除site;转2.4.2.1;
2.4.2.5:删除Bigraph BC中服务si的所有信息,包括删除BC的服务集合Sn中的服务si,端口集合P中si服务端口的ID信息pI、名称pN、类型pT和控制属性pC,删除BC的位置图和连接图中的节点si,删除服务si的内连接边集合X和外连接边集合Y,如果si有site,则对应也要在BC中删除site;结合定义3检测该服务控制的依赖层次DL,如果为《代表和其他服务是前置依赖关系,转2.4.2.5.1,如果为》代表和其他服务是后置依赖关系,转2.4.2.5.2;
2.4.2.5.1:删除Bigraph BC中该服务si依赖的前置服务sprex的所有信息,包括删除BC的服务集合Sn中的服务sprex,端口集合P中sprex服务端口的ID信息pI、名称pN、类型pT和控制属性pC,删除BC的位置图和连接图中的节点sprex,删除服务sprex的内连接边集合X和外连接边集合Y,如果sprex有site,则对应也要在BC中删除site;转2.4.2.1;
2.4.2.5.2:删除BigraphBC中该服务si依赖的后置服务snext的所有信息,包括删除BC的服务集合Sn中的服务snext,端口集合P中snext服务端口的ID信息pI、名称pN、类型pT和控制属性pC,删除BC的位置图和连接图中的节点snext,删除服务snext的内连接边集合X和外连接边集合Y,如果snext有site,则对应也要在BC中删除site;转2.4.2.1;
2.4.2.6:Bigraph中的该检测服务si不是失效服务,继续对其他服务进行匹配,转
2.4.2.1。
8.如权利要求1或2所述的一种面向Web服务计算环境的数据细胞自愈方法,其特征在于,所述步骤2.5中,数据细胞自愈方法流程如下:
2.5.1:通过服务质量检测算法检测数据细胞DC对应Bigraph BC中的服务s是否失效,如果失效转2.5.2,否则转2.5.8;
2.5.2:将2.5.1返回的失效服务s与待检测数据细胞对应的Bigraph BC输入至步骤
2.4.2.1,并执行到2.4.2.6,最终返回删除失效服务s的Bigraph BC*。
2.5.3:从该服务s对应聚类的数据细胞簇DCC中选择可靠性最高的数据服务s′;
2.5.4:为了保证数据细胞结构完整性进而达到服务组合有效性,本文依据上下文环境和Bigraph反应规则,生成反应规则集合R,目的是向步骤2.5.2中最终生成的Bigraph BC*添加服务s′;
2.5.5:通过步骤2.3的Bigraph一致性算法验证Bigraph BC*能否和R进行匹配反应,如果能正常反应转步骤2.5.7,否则转2.5.6;
2.5.6:在服务s对应的数据细胞簇DCC中去掉不符合替换条件的服务s′,转2.5.3进行重新选择;
2.5.7:该服务替换完成,数据细胞自愈成功,继续进行服务监控,一定时间后更新服务s的服务质量U转步骤2.5.1;
2.5.8:该服务的服务质量正常,继续进行服务监控,一定时间后更新服务s的服务质量U,并转向2.5.1。
9.如权利要求1或2所述的一种面向Web服务计算环境的数据细胞自愈方法,其特征在于,所述步骤2.5.1的服务质量检测算法的流程如下:
2.5.1.1:记录待检测的服务s已经检测次数TN,如果TN为0,转2.5.1.2,否则转
2.5.1.3;
2.5.1.2:在初始化阶段设置初始的检测间隔时间为一个单位时间,即RI1=1,单位时间可以是一个小时、半个小时、十分钟等,具体数值由系统根据经验定值,另定义一个慢请求门限值srthresh,该值的大小由机器负载和经验值确定,TN=TN+1,转2.5.1.1;
2.5.1.3:TN=TN+1,通过步骤2.4.2的服务质量监控方法监控服务质量U判断服务s是否可用,如果可用说明该服务s没有失效,转2.5.1.4,否则转2.5.1.5;
2.5.1.4:如果发现此轮的请求间隔时间RLTN(TN=2,3,4,5…)小于或等于慢请求门限值srthresh,则定义下一轮请求间隔时间RITN+1=2*RITN,否则下一轮请求间隔时间RITN+1=RITN+1,转步骤2.5.1.3;
2.5.1.5:该服务s已经失效,直接定义下一轮的请求间隔时间RITN+1=RITN/2,并将失效服务s返回。