发明内容
为解决现有方法与业务模型UML标记标准不匹配、无法适应每个用户的实际需要、重复建模、系统成本过高、系统响应时间较长等技术问题,本发明提出了一种服务可配置的业务规则提取方法,该方法首先对业务规则进行语义规则约束,规定用户必须在既定的范围内进行一定的操作以减少出错率,然后使用一个定量的提取标准,分别从业务规则的相关性方面和业务规则间的交互进行衡量,以业务规则的重用度为度量标准实现业务提取,并通过设计程序加以实现。
为达到上述目的,本发明采用的技术方案主要包括以下步骤:
步骤1:根据量化分析后的业务规则交互关系创建业务规则交互权重矩阵;
步骤2:调整矩阵中业务规则之间的关系权重;
步骤3:根据经过步骤1和步骤2形成的带权重矩阵进行业务规则的提取;
步骤4:对提取后的业务规则进行相应的服务配置。
并且在进行步骤1 之前要先获取业务规则,业务规则包括约束规则、派生规则和行为规则。在完成步骤1和步骤2后进行步骤3之前,要先确定业务规则的提取原则,即满足以下三个原则:
(1)每个原子规则必须属于某个特定的业务规则类型;
(2)每个原子规则必须只能属于一个特定的业务规则类型;
(3)为便于专家和用户之间的沟通,提取模式应该非常的直观,能够在在自然语言和机器语言之间找到一个平衡点。
本发明的有益效果在于,能够适用于当前业务模型UML标记标准,能保证适应每个用户的实际需要。另外,采用该方法,对实体之间的每个交互不需要用户重复建模,同时能降低系统成本,减少系统响应时间,解决同步问题。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细的说明。
本发明提供一种服务可配置的业务规则提取方法,对业务规则能够进行合理的分类,每一类业务规则的表示形式给出相应的一个或几个模板,以便能够对业务规则进行修改、删除和查询等操作,同时能够被计算机识别并实现,最后对业务规则进行服务配置。图1为本发明方法的整体框架图。事先从约束规则、派生规则和行为规则中获取相应的业务规则后,本发明方法主要分以下四个步骤来完成。
步骤1:根据量化后的业务规则交互关系创建业务规则的交互权重矩阵;
对业务规则进行提取过程中首先需要将其以某种方式进行量化,将业务规则的相关性定量表示。在对业务规则特性的量化分析中,一方面要考虑业务规则中本身具有的逻辑关系,另一方面也要考虑到业务规则间的交互关系,具体做法是:将n个业务规则集合{f1, f2, ..., fn}转化成一个带权重的n*n的矩阵R(fi, fj),且i,j=1,2, ...,n,其中规则fi和自己的关系用权重最大值5表示,每个业务规则表现为一个结点,业务规则间的相连关系通过不同的权重值来体现业务规则间关系的相关度。
步骤2:调整矩阵中业务规则之间的关系权重;
根据业务规则间的相似度和层次影响关系来调整矩阵的权重,得到可体现规则间联系的带权矩阵。矩阵中的权重表示将直接影响到业务规则提取,因此所述权重必须能够表示出业务规则间的关系紧密程度,关系越紧密的规则间连线的权重应该越大,根据这一原则,对权重作出如下定义:
业务规则之间的交互有着多种不同的方式,这些方式决定了各个业务规则的交互依赖程度,本发明将依赖程度通过赋予不同权重的方式体现在业务规则关联矩阵中,并按照依赖程度的强弱依次赋予不同的权重,其中i, j=1,2,...,n且i≠j,矩阵的权重调整具体如下:
(1)若规则fi的输入依赖于规则fj的输出,则权值设定为4;
(2)若规则fi与规则fj协同,则设定权值为3;
(3)若规则fi与规则fj同属于一个流程,但不存在(1),(2)所描述的关系,则设定两者的权值为2;
(4)若规则fi与规则fj同属于不同流程,但流程间存在顺序关系,则设定两者的权值为1;
(5)若规则fi与规则fj同属于不同流程且不存在任何关系,则设定两者的权值为0。
不过仅仅考虑业务规则间的交互关系还不够,业务规则本身也存在一定的关系,该关系可以用业务规则的相似性进行描述,由于一个业务规则有可能是一个部门完成,也可能是多个部门协同完成,同时由于业务规则模型是至上而下的业务分解模型,业务规则间的层次关系也体现业务间的相似性,所以需要业务规则间的相似性来调整不同业务规则间的权重值。
所述业务规则间相似度体现在两个方面业务规则涉及的部门和业务规则所在的层数,并将m个部门集合P={p1, p2, ..., pm}和n个业务规则集合F={f1, f2, ..., fn}组成一个m*n的矩阵R(p, f),其中Rpf表示部门p使用业务规则f,如果使用了则将其值设为1,否则设为0;且规则fi和规则fj之间的业务逻辑相似度如公式(1)所示:
其中|Pi∩Pj|表示需要同时用到业务规则fi和业务规则fj的部门数。
采用两个规则的共同祖先结点的层次数L来表示所述业务规则的层次影响,若L值越大,则两个业务规则的层次关系较大,反之,则两个业务规则的层次关系联系不大;如果规则fi和规则fj两者的权值为0,则根据规则fi和规则fj的相似度进行设置,设定业务层次的深度为t层,规则fi和规则fj权值wij如公式(2)所示:
其中m表示部门集合元素个数,t表示业务层次树的深度,参数λ,且0≤λ≤1,用于调整不同的业务规则模型对业务规则间相似性和业务规则的层次的依赖程度,将规则fi和规则fj之间的权重最大值设为4,若 wij大于4,将wij设为4。
如果规则fi和规则fj两者的权值原来不为0,则调整后的权值为:
其中w'ij为规则fi和规则fj的原来的权值。
步骤3:根据经过步骤1和步骤2形成的带权重矩阵进行业务规则的提取;
在完成步骤1和步骤2后进行步骤3之前,要先确定业务规则的提取原则,即满足以下三个原则:
(1)每个原子规则必须属于某个特定的业务规则类型;
(2)每个原子规则必须只能属于一个特定的业务规则类型;
(3)为便于专家和用户之间的沟通,提取模式应该非常的直观,能够在在自然语言和机器语言之间找到一个平衡点。
完成带权重矩阵后,就可开始业务规则提取。一个业务规则可在多个业务流程中被调用,被调用的次数越多就可以认为这是一个复用度较高的规则,以此为基础提炼出的服务同样会具有较高的复用度。在业务规则模型中设置一个阀值n,将被调用超过n次的业务规则设置为一个关键业务规则,并将关键业务规则间的权重设为0,并使任何两个关键业务规则不会被放在同一个服务中。将每个与关键业务规则间权重不为0的规则分配给权重最大的关键业务规则作为初始分类,然后进一步判断非关键业务规则的服务归属问题,判断的原则是:
(1)若规则fi和规则fj都是关键规则且相互调用,则规则fi和规则fj归属于不同类别;
(2)如果规则fj只是被规则fi调用,则规则fi和规则fj属于同种类别;
(3)如果规则fj被规则fi调用外,还被其他规则调用,则需近一步的判断:
①若调用规则fj的其他规则与规则fi同属于一个类别,则规则fi和规则fj同属于一个类别;
②若其他规则和规则fi不同属于一个服务,则系统仅提供一个推荐,将调用规则fj次数最多的规则并入一个服务中并将该推荐提供给系统分析师,近一步判断规则fj的归属问题。
步骤4:对提取后的业务规则进行相应的服务配置;
完成对业务规则的提取后就可对业务规则进行服务配置,该方法主要使用业务规则引擎技术来实现。图2为本发明方法中业务规则的服务配置框架图,其中规则引擎是一种嵌入在应用程序中的组件,实现将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。本发明采用的规则引擎是基于Java的ILOG JRules 5.0规则引擎,通过该服务引擎可以进行动态的服务路由配置。
虽然本发明已以较佳实施例公开如上,但实施例和附图并不是用来限定本发明,任何熟悉此技艺者,在不脱离本发明之精神和范围内,自当可作各种变化或润饰,同样属于本发明之保护范围。因此本发明的保护范围应当以本申请的权利要求所界定的为准。