基于复杂性度量的BPEL过程数据流错误预测方法与流程

文档序号:14735867发布日期:2018-06-19 20:28阅读:178来源:国知局
基于复杂性度量的BPEL过程数据流错误预测方法与流程

本发明属于服务计算领域,具体涉及一种基于复杂性度量的BPEL过程数据流错误预测方法



背景技术:

伴随着计算机和信息技术的不断创新、进步和普及,软件已经渗透到人们的生活,并成为了我们日常生活不可或缺的一部分。而由于Internet使得计算机软件所处的网络环境变得愈加复杂和多变,由原来的封闭走向开放、由静态转向动态和由可控变得更加难以控制。在此背景之下,一些先进的技术和思想随之产生,其中包括软件即服务(Software as a service,简称SaaS)和面向服务的体系结构(Service Oriented Architecture,简称SOA)。SaaS和SOA有一个共同的特点就是都围绕服务展开,并以此为基础和核心。为了适应服务计算和云计算等前沿技术的快速发展,不同种类的资源被封装成可调用的Web服务。Web服务技术(Web services)产生于SOA之前,为SOA的发展提供了重要的借鉴作用。

单一的Web服务功能不仅结构简单且功能非常有限,无法满足现有业务需求的复杂化,因此Web服务组合技术随之产生。Web服务组合是根据业务需求,将这些已有的原子Web服务通过重新组合得到新的一个服务,从而实现了服务的重新利用和增强服务潜在的实用价值。目前国内外主流服务组合技术利用Web业务过程执行语言(Web Services Business Process Execution Language,WS-BPEL简称BPEL)来实现的。由于Web服务数量的日益庞大,基于Web服务的业务过程已经成为大规模的应用程序开发的重要方法和途径。顺应着这种方向和发展趋势,BPEL因此成为构建基于Web服务业务过程的大规模编程语言,并已经发展成为了描述Web服务事实上的业界一致认可的标准。BPEL尽管已经发展了十多年,但是BPEL工作者编写的部分BPEL质量依然低于我们的期望,常常造成一些不当的问题和错误的实践,从而造成巨大的经济损失。在BPEL过程中,我们把所有的这种重复出现的不当设计产生的错误模式,称之为反模式(anti-patterns)。

尽管反模式可以有多种不同的形式或者种类,但是在业务过程中,目前最受关注的、最基础的两个方面是控制流反模式和数据流反模式。由于BPEL是基于通用的XML格式编写的业务过程语言,而且BPEL过程具有优良的块结构的特点,因此在BPEL过程中控制流相关的不良的错误不太容易发生。与之相反的是,在BPEL过程中数据流相关的错误相对更加比较容易产生一些,其主要原因有以下两点:首先,BPEL过程支持并发执行,并发的不同分支活动能够通过条件(数据相关的)link表达同步依赖;其次,是因为在BPEL过程中部分数据变量常常来自于动态且多变的外部Web服务。BPEL过程中常见的三种数据流反模式分别是输入缺失(input missing)、输出冗余(output redundancy)和输出丢失(output lost)。

现有方法大多采用模型检验或规则匹配等技术,这类方法检测数据流错误往往面临着状态空间爆炸问题,且缺少对数据流错误的实证研究特性,不能够体现数据流错误的发生究竟与哪些错误息息相关。



技术实现要素:

本发明的目的在于提供一种基于复杂性度量的BPEL过程数据流错误预测方法。

实现本发明目的的技术解决方案为:一种基于复杂性度量的BPEL过程数据流错误预测方法,用于分类预测BPEL过程是否存在数据流错误,以解析BPEL过程数据集得到的复杂性度量指标和数据流错误的数据为输入,以分类预测准确度和最终选择的复杂性度量指标为输出结果,特征为复杂性度量指标,分类变量为是否具有数据流错误,该预测方法具体步骤为:

步骤1,解析数据集中的BPEL过程,计算每个适用于BPEL过程的复杂性度量指标的值并检测该过程中所包含的数据流错误;

步骤2,将复杂性度量指标和是否具有数据流错误两者进行分析,筛选出候选特征;

步骤3,将候选特征进行枚举组合,并以此为输入特征,而分类变量为是否具有数据流错误,运用WEKA数据挖掘软件中分类算法对数据流错误进行分类预测,根据所得的分类预测准确度结果,确定最终选择的特征。

本发明与现有技术相比,其显著优点为:(1)本发明是一种根据复杂性度量指标的特性作为分类特征的BPEL服务组合数据流错误的分类预测方法,该方法不但能够分类预测一个BPEL过程是否具有数据流错误,而且能够分析数据流错误与哪些复杂性度量指标有关,数据流错误的发生都与哪些结构或数据流特性;(2)相较于传统方法,本发明所提方法更具服务组合的特点,不会存在路径爆炸等相关问题,且能够取得很好的准确度,从而有效地预测一个BPEL过程中是否存在数据流错误。

附图说明

图1是本发明基于复杂性度量的BPEL过程数据流错误预测方法流程图。

图2是本发明筛选候选特征的流程图。

具体实施方式

结合图1,一种基于复杂性度量的BPEL过程数据流错误预测方法,用于分类预测BPEL过程是否存在数据流错误,以解析BPEL过程数据集得到的复杂性度量指标和数据流错误的数据为输入,以分类预测准确度和最终选择的复杂性度量指标为输出结果,其中特征为复杂性度量指标,分类变量为是否具有数据流错误,其具体步骤为:

步骤1,解析数据集中的BPEL过程,计算每个适用于BPEL过程的常用复杂性度量指标的值并检测该过程中所包含的数据流错误;具体为:

步骤1.1,由于BPEL基于XML编写的语言,具有天然的块结构特性,因此将统计到的复杂性度量指标中的不适用的度量指标去掉;

步骤1.2,计算剩下的复杂性度量指标值和运用现有的数据流错误检测方法检测得到数据流错误。

步骤2,将复杂性度量指标和是否具有数据流错误两者进行分析,筛选出候选特征;具体包括以下步骤:

步骤2.1,进行相关性分析。将所有的复杂性度量指标和数据流错误进行相关性分析,相关性分析采用的是Spearman相关性计算方法,使用统计分析工具SPSS进行相关分析计算;

步骤2.2,从所有复杂性度量指标中除去与数据流错误相关性强度为中等以下的复杂性度量指标;

步骤2.3,将剩下的复杂性度量指标根据度量指标的类别和类型进行分组;即先按照控制流和数据流分大类,再按照复杂性度量指标的类型分组;

步骤2.4,基于每组中复杂性指标与数据流错误最大相关性的原则,从每组中挑选相关性最大的一个指标加入到候选度量指标集合中,最终得到候选度量指标的集合。

步骤3,将候选特征进行枚举组合,并以此为输入特征,而分类变量为是否具有数据流错误(二分类变量),运用WEKA数据挖掘软件中分类算法对数据流错误进行分类预测,根据所得的分类预测准确度结果,确定最终选择的特征。

进一步的,其中去除中等以下相关性强度是指去除相关性强度0.5以下的复杂性度量指标。

本发明实现对BPEL过程三种常见数据流错误的分类预测,知道哪些复杂性度量指标对数据流错误的产生有着至关重要的影响。

下面结合实施例对本发明进行详细说明。

实施例

在BPEL过程数据流错误中,最常见的数据流错误是输入缺失、输出冗余和输出丢失。在介绍三个数据流错误之前,先说明trace的概念。trace为从开始结点和终止结点的一个执行路径,即它是一个活动执行的序列。在一条trace中,一个活动具有输入缺失错误当且仅当存在一个输入变量没有定义;换言之,就是在该活动变量执行之前没有活动将该变量作为输出变量。在一条trace中,一个活动具有输出冗余错误当且仅当存在一个输出变量没有使用;换言之,就是在该活动变量执行之后没有活动将该变量作为输入变量。在一条trace中,一个活动具有输出丢失错误当且仅当存在一个输出变量没有来得及使用时,另外一个活动重新定义了该变量;换言之,就是在该两个活动之间没有其它活动将该变量作为输入变量。

本发明就是对所提出的方法分类预测服务组合数据流错误的具体实现。下面结合附图对本发明做进一步说明。

本发明基于复杂性度量的BPEL过程数据流错误预测方法,其整体流程如图1所示。首先,计算得到适用于BPEL过程的复杂性度量指标的值和数据流错误;然后,分析复杂度度量指标和数据流错误的关系,筛选出候选特征;最后,根据候选特征进行枚举组合,从而进行分类预测,根据准确度的结果确定最终选择的复杂性度量指标;具体为:

第一步,计算得到适用于BPEL过程的复杂性度量指标的值和数据流错误。由于BPEL本身是基于XML编写的语言且BPEL过程具有块结构的特性,因此部分复杂性度量指标并不适用,因此需要去掉这一部分复杂性度量指标。使用DOM4J的JAR包帮助解析BPEL文件,根据统计得到的复杂性度量的定义计算得到每一个BPEL过程的对应的每个复杂性度量指标的值。同样,根据三种常见数据流错误的定义,运用现有的检测方法得到每一个BPEL过程是否具有数据流错误,本实施例采用枚举法。

第二步,分析复杂度度量指标和数据流错误的关系,筛选出候选特征。其流程如图2所示:

(1)相关性分析

首先将复杂性度量指标(Metrics)值与数据流错误进行相关性分析。使用Spearman相关性计算方法,借助SPSS统计分析软件帮助计算,其中数据流错误是一个二元值0或1,表示不存在数据流错误或存在数据流错误。

(2)去除相关性强度不强的复杂性度量指标

由(1)可知不同复杂性度量指标与是否具有数据流错误间的相关性强度数值,而相关性强度数值绝对值大于0.5为强相关,0.3到0.5为中等相关,0.1到0.3为弱相关。这里将中等相关以下的复杂性度量指标去掉,且将那些不符合正相关或负相关的复杂性度量指标去掉。

(3)分组

将剩下的复杂性度量指标进行分组。首先根据控制流相关的和数据流相关的复杂性度量指标进行大类分组;然后根据每一个大类中的复杂性指标的类型进行分组,类型包括Size类型、Density类型、Partitionability类型。

(3)挑选

在每个分组中挑选出一个复杂性度量指标作为候选特征。根据每个分组中的复杂性度量指标与是否具有数据流错误的相关性强度大小,每组挑选出一个相关性强度最大的复杂性度量指标,从而得到候选特征的复杂性度量指标集合。

第三步,根据候选特征进行枚举组合作为特征,使用常用的数据挖掘分类算法(朴素贝叶斯、支持向量机、K近邻和决策树)并借助WEKA数据挖掘软件进行分类预测.根据准确度的结果确定最终选择的特征(复杂性度量指标)。本着准确度高和特征少的原则,确定最终选择的特征组合。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1