用于业务密集型领域的业务过程管理方法和系统
技术领域
本发明涉及一种支持业务密集领域的业务过程管理方法,尤其是一种融合宏观的业务实体和微观的业务逻辑来描述业务过程,并且通过映射规则分别映射到企业内部和企业之间业务过程执行语言的方法,以及支持该方法的实现系统,属于信息系统技术领域。
背景技术
在业务密集型领域中,如金融、保险、证券等领域,业务逻辑具有复杂性和动态性特点,而如何在成本和质量指标的约束下快速构建满足用户个性化需求的应用系统,并且适应用户的动态变化,是支持该类型领域的应用系统所面临的挑战。由于业务过程管理系统提供了业务过程模型驱动的领域应用系统执行方式,可以满足用户的不同需求并且适应系统运行中用户需求的动态变化,因而得到了广泛的应用。
目前,支持业务密集型领域的业务过程管理系统可以分为两类,一类是从工作流管理技术发展而来的业务过程管理系统,其业务过程模型表现为将业务逻辑分解为多项活动,通过活动之间的控制一来和数据一来关系来表达具体的业务逻辑,并且通过工作流引擎驱动执行业务过程模型,从而实现业务过程的自动执行;另一类是从业务规则管理系统发展而来的业务过程管理系统,其业务过程模型表现为通过产生式规则来表达具体的业务逻辑,并且通过业务规则引擎来推理得到业务过程的自动执行。上述两类系统各有不同的侧重点,第一类系统可以方便地反映业务逻辑中结构的动态性,即业务逻辑中任务数目或执行顺序的变化,第二类系统便于反映业务逻辑中功能的动态性,即业务逻辑中认为的具体操作方式的变化,从而支持系统执行中业务逻辑的动态变化。由于业务密集型领域中业务逻辑的复杂性和动态性,因此,如何能够构建一个统一的业务过程管理系统,同时体现上述两类应用系统的特点,成为支持业务密集型领域的业务过程管理系统的关键。
业务过程管理系统通过业务过程模型驱动来执行,因而在模型层提供统一的业务过程模型成为构建业务过程管理系统的起点。一般来说,业务过程式企业或组织内部与外部活动的集合,通过活动之间结构化的逻辑偏序和依赖关系实现预定的目标。为了适应业务密集型领域中业务逻辑的复杂性和动态性,业务过程模型应该具有下述特点:一是可以从微观层面描述领域知识或领域逻辑的内容,如政策和法规约束等,即领域应用是做什么的;二是可以从宏观层面描述领域应用中各个实体之间的关系,如前驱和后继依赖等,即领域 应用是如何做的。同时,业务过程管理系统还需要提供支持上述业务过程模型的业务过程引擎。在现有技术中,我们尚未发现有任何面向业务密集型领域应用的、融合宏观业务实体和微观业务逻辑的统一业务过程管理方法和支持系统。
发明内容
针对上述问题,本发明的目的在于提供一种用于业务密集型领域的业务过程管理方法,该方法的核心在于利用一种融合宏观的业务实体和微观的业务逻辑的业务过程建模方法,为面向业务密集型领域的业务过程管理提供统一、灵活的管理方法,该方法包括以下步骤:
第一步、根据领域应用中各部分功能结构关系定义业务过程模型的基本元素集,所述的基本元素集包括:
A、活动集,或业务实体元素集,其反映了领域应用中的基本实体对象;
B、规则集,或业务逻辑集,其是业务过程模型的业务逻辑元素,反映了业务实体或业务实体间的业务逻辑;
C、活动之间的结构关系集,描述了领域应用中相邻活动之间结构上的控制一来,
D、事件集,定义了活动集和规则集、规则集和活动间结构关系集相互联结的方式;该步骤由业务过程模型编辑器执行;
第二步、根据约定的映射规则,将所定义的业务过程模型中元素映射至可执行业务过程语言;
进一步地,所述的步骤一中包含四个与所述的四个集合相对应的动作:
1)定义活动集中的各项活动并构建活动集:
活动分为两类,一类是粗粒度的递阶型活动,其可以细分为一个完整的或部分子业务过程;二是细粒度的原子活动,其不可以再进行细分,同时,原子活动中包括虚活动,其不执行任何操作,只用于构造复杂的活动之间的结构关系。
活动集中元素的构建遵循从顶到下、逐步细化的原则,即,首先识别领域应用中的顶层活动集,该集合中活动一般为递阶型,不包括虚活动;接着对顶层活动集中递阶型活动进行分解,直至其所有子活动都为原子活动为止,由此得到聚合程度不同的多层次活动集。
2)构建活动之间的结构关系集:
结构关系包括与分支/汇聚、或分支/汇聚、异或分支/汇聚、条件分支/汇聚关系,其中,条件分支/汇聚关系属于扩展结构关系,可以通过增加虚活动来表达复杂的条件约束。
3)构建规则集中的规则:
规则分为两类,一是结构规则,表示相邻或非相邻活动之间的约束一来关系,二是行 为规则,表示活动内部或外部资源的约束。
4)构建事件集中的各个事件:
事件包括三种类型,分别是活动、规则和时间。
进一步,上述动作2)还包括以下步骤:
①建立各层活动集中活动之间结构上的控制依赖,即确定每一活动的前驱和后继活动,建立邻接和非邻接活动之间的结构关系,并可加入虚活动来满足复杂的结构约束;
②确定递阶型活动的类型,递阶型活动至少包括如下类型:{AS,RS,RuleS,ES}、{AS,ES}、{RuleS,ES}、{AS,RS,ES}和{AS,RuleS,ES},其中AS、RS、RuleS和ES分别表示活动集、活动间结构关系集、规则集和事件集。
③确定一般型活动的属性和状态,一般型活动至少包括属性:标识、状态、类型、输入数据、输出数据、输入或输出数据变量的赋值表达式、活动的外部激活应用和活动的执行者,其中活动类型分为两个聚类,分别用于表示企业内部和企业间活动;活动状态一般而言包括就绪、运行、取消、终止和完成5项状态。
动作3)还可以进一步包括以下步骤:
①针对活动集中每项活动分析其内部行为或外部资源约束,构建活动的结构规则,包括:
A、定义业务过程中的基本实体对象、对象属性以及业务过程资源和外部引用为术语;
B、定义术语之间的关系为事实,包括比较、成员、属性、参与和继承;
C、根据具体的领域应用扩展术语之间关系;
②对行为规则进行分类,然后通过基本规则词表示行为规则之间的关系。行为规则至少可以分为条件、一致性和权属规则,其中,条件规则定义给定条件下某种结果,一致性规则为永真断言,权属规则定义某主体是否有某行为的权利,授权规则定义主体有权(或被允许)进行某行为;所述的基本规则词可以包括如“如果-则”、“必须”、“允许”和“禁止”等。
所述第二步骤中的映射规则可分为两类,一类是面向集中式计算环境中业务过程执行语言的映射规则,一类是面向分布式计算环境中业务过程执行语言的映射规则。
其中,面向集中式计算环境中XPDL语言的映射步骤是:根据业务过程模型中元素分析XPDL的语义相近元素,对语义相近元素进行映射;若业务过程模型中元素在XPDL中不存在相近语义元素,则将其映射到XPDL中基本元素的扩展属性或进行语义转换;
面向分布式计算环境中BPEL4WS语言的映射步骤是:业务过程模型中规则映射为WebService,并且定义message、portType和property等WebService属性;一般活动映 射为BPEL4WS的基本活动或块活动,复合活动映射为BPEL4WS的块活动;事件映射为BPEL4WS的基本活动。
上述两个步骤描述了本发明方法的系统建模和映射过程,本领域的技术人员应当理解,后续的执行过程是显而易见的,即,映射完成后通过业务过程引擎自动执行可执行业务过程语言是本领域的公知常识,其不属于本发明内容的范畴,因此本说明书就不再对其进行详细描述。
本发明的另一个目的在于提供一种支持上述方法的业务过程管理系统,该系统以软件的方式实现,可用于支持和实现所述的业务过程管理方法。
如图1所示,该系统包括:
1)业务过程模型编辑器,用于编辑融合宏观的业务实体和微观的业务逻辑的业务过程模型;
2)业务过程映射器,用于将业务模型编辑器中输出的业务过程模型映射为标准的可执行业务过程语言后输出可执行的业务模型;
3)业务过程引擎,用于驱动可执行的业务模型,实现业务过程管理系统的自动执行。
其中,所述的业务过程模型编辑器中至少包括两个模块,如图2所示:
活动实体构件模块,其中至少包括两类活动元素,一是粗粒度的递阶型活动,其可以细分为一个完整的或部分子业务过程;二是细粒度的原子活动,不可以再进行细分,同时,原子活动中包括虚活动,即其不执行任何操作,只用于构造复杂的活动之间结构关系;
规则实体构件模块,其至少包括三类规则子模块:一是规则术语构建子模块,二是规则事实构建子模块,其中规则术语子模块定义了规则中的基本元素,规则事实构建子模块定义了术语之间的关系,至少包括比较、成员、属性、参与和继承关系,三是行为规则构建子模块,至少包括条件、一致性和权属规则,其中条件规则定义给定条件下某种结果,一致性规则为永真断言,权属规则定义某主体是否有某行为的权利,授权规则定义主体有权(或被允许)进行某行为。在规则术语构建子模块、规则事实构建子模块和行为规则构建子模块中,规则术语构建子模块是规则事实构建子模块的基础模块,而规则事实构建子模块则是行为规则构建子模块的基础模块。
在业务过程编辑器中,活动的属性其至少包括事件、规则空间名称和规则名,事件类型至少包括活动执行前、执行中和执行后,规则空间制订了规则的命名方式和规则所在的位置(URL或其它绝对、相对位置),规则名定义了可以为单条规则的名称或多条规则组成的集合名称。
其中,活动实体构建模块中的活动和规则实体构建模块中的活动实体通过活动的属性 相连接,即活动的事件属性中设定规则的触发事件点,活动的规则空间名称和规则名称属性中分别设定规则空间名和规则名。
如图2所示,所述的业务过程映射器包括三个模块:
语法分析模块,用于检查所定义模型的正确性和合理性;
元素映射模块,用于将所定义业务过程模型中元素根据映射规则映射至可执行业务过程语言;
输出模块,用于将映射后的元素输出为可执行业务过程语言。
语法分析模块的输出数据是元素映射模块的输入数据,即只有语法分析模块分析正确后的模型才能在元素映射模块中进行元素映射;元素映射模块的输出数据是输出模块的输入数据。
所述的业务过程引擎包括三个模块:
工作流引擎模块,用于控制活动之间的数据流;
规则引擎模块,用于对活动内部功能逻辑进行推理;和
事件触发引擎模块,用作工作流引擎和规则引擎互操作接口;
可执行文件载入引擎,用于将可执行业务文件中的相关数据载入到系统中,是工作流引擎和规则引擎中获取数据的来源。。
其中,工作流引擎模块还包括活动队列管理器、活动资源管理器和事件管理器,其中活动队列管理器类是根据活动之间的结构关系,依次将待执行的活动置入队列;活动资源管理器将待执行的活动通知相应的资源,从而使活动可以开始执行;事件管理器通过设置活动的事件点,从而使活动可以在每个事件点触发相应的动作。活动队列管理器中活动引用活动资源管理器中的资源数据,从而满足活动的执行条件;同时,事件管理器可以维护活动队列管理器中活动的事件点,并且在活动的事件点触发事件触发引擎。
所述的规则引擎模块至少包括:
规则实例化管理器,用于将术语和事实载入系统缓存;
规则匹配管理器,用于根据约定的算法比较规则和缓存中的数据,并执行冲突检测;
规则事件管理器,用于响应事件触发引擎中触发的事件,由此触发规则实例化管理器。
规则匹配管理器是规则引擎的核心模块,其引用的数据通过规则实例化管理器载入;规则事件管理器维护规则匹配管理器中规则或规则集的事件点,从而在每个事件点触发事件触发引擎。
本发明的技术效果在于,将业务过程分为宏观的业务实体和微观的业务逻辑两个部分,并给出了业务实体和业务逻辑的具体表达,同时给出了面向集中式和分布式计算环境中业 务过程执行语言的映射规则,为面向不同计算环境的业务过程描述和分析提供了统一的业务过程建模方法,适应于领域应用支撑平台中不同领域业务过程建模的需要。本发明提供的融合宏观业务实体和微观业务逻辑的业务过程建模方法及其支持系统,为业务密集型领域应用系统提出了新的更为实用和有效的解决方案。
附图说明
图1是用于业务密集型领域的业务过程管理系统的结构示意图;
图2是图1中系统的详细结构展开示意图;
图3是将本发明方法应用于具体的软件外包管理过程的示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步的说明,但不构成对本发明的限制。
本发明首先是提供了一种支持领域应用基础平台的业务过程模型的实现方法,该方法将业务过程分为融合宏观业务实体和微观业务逻辑两部分,通过事件语义两部分可以进行交互,并且可以分别建立模型面向集中式和分布式业务过程可执行语言的映射方法。
下面结合图2和图3,以某企业一个具体的软件外包过程来说明本发明的实施步骤。
在一个软件外包客户企业中,软件外包的一般过程是:客户首先根据项目的具体情况制定项目计划,包括定义外包的目的和范围,外包投入的预算、时间和所需的资源;其次,确定基线及供应商的服务水平,包括人员规模、人员技能等;第三,确定外包项目的具体规程,包括合同条款等;最后,供应商执行规定任务,完成外包过程。在上述4个步骤中,在步骤一已经完成的情况下,步骤二和三可以并行执行,完成后再执行步骤四;同时,客户和供应商位于不同的地理区域中,并且客户方中项目基线和具体规程的确定由分布环境中不同团队的人员完成,因此整个外包过程处于分布式计算环境。
在本实施例中,本发明方法的实现过程如下:
步骤1、根据外包中各部分的功能结构关系定义对业务过程的基本元素集:一是业务实体元素集,也称之为活动集;二是活动之间结构关系集;三是业务逻辑集,也称之为规则集;四是活动或规则的触发事件集。
其中,活动集和活动之间结构关系集是业务过程模型中的宏观元素,规则集是业务过程模型中的微观元素,是业务过程模型的主体;事件集是业务过程模型中宏观元素和微观元素之间的连接元素,是业务过程模型的从属体。
在本实施例中,总体上将软件外包业务过程模型分为宏观业务实体、微观业务实体以及事件集三部分。
上述的步骤1具体实施过程为:
1)首先识别领域应用中的顶层活动集。顶层活动集一般为递阶型活动,不包括虚活动;确定顶层活动后,根据活动的具体功能需求递阶分解递阶型活动直至原子活动。
在本实施例中,首先确定外包过程的顶层活动为项目计划、需求分析、规程设计和任务操作。为了便于说明,上述4项活动都认为是原子活动,不能再进行递阶,同时也不需要引入新的虚活动。
2)构建活动之间的结构关系集,包括与分支/汇聚、或分支/汇聚、异或分支/汇聚关系、条件分支/汇聚关系,具体步骤为:
①确定相邻活动和非相邻活动之间的结构关系,若活动之间存在复杂的条件依赖关系,则引入虚活动;若活动中存在递阶型活动,则确定递阶型活动的类型,包括{AS,RS,RuleS,ES}、{AS,ES}、{RuleS,ES}、{AS,RS,ES}和{AS,RuleS,ES},其中AS、RS、RuleS和ES分别表示活动集、活动间结构关系集、规则集和事件集;
②确定一般型活动的属性和状态:
在本实施例中,项目计划活动执行完成后,需求分析和规程设计活动并行执行,其执行完成后任务操作活动开始执行,执行完成后流程结束,同时,活动之间不再存在其它结构上的条件依赖关系,不需要引入虚活动,因此,流程中活动之间依赖结构为“与分支/汇聚”;另外,确定各个活动的标识和状态:项目计划、需求分析、规程设计和任务操作的标识分别为T1、T2、T3和T4,每个活动只考虑“完成”的状态;各个活动类型都设定为Invoke。
3)构建过程的规则集:
首先,构建规则集中的结构规则:定义结构规则的术语,包括基本实体对象、对象属性以及业务过程资源和外部引用;同时,定义结构规则的事实,包括比较、成员、属性、参与和继承;
其次,构建规则集中的行为规则,其至少分为条件、一致性和权属规则,其中条件规则定义给定条件下某种结果,一致性规则为永真断言,权属规则定义某主体是否有某行为的权利,授权规则定义主体有权(或被允许)进行某行为;
最后,根据规则词构建行为规则,规则词至少包括“如果-则”、“必须”、“允许”和“禁止”。
在本实施例中,首先定义结构规则中的术语为:价格、期限、技能和人员,其次,根据规则词构建结构规则中的事实为:价格包括人力费用和设备费用、期限是外包部分的提交时间、技能指开发人员的专业证书、人员包括管理人员和开发人员;然后,构建规则集 中的行为规则:外包价格必须低于15万美元、如果人员数少于50,禁止作为卖方、如果期限超出,则需要付违约金、技能证书必须是**类型。
4)事件集构建步骤是:定义活动、规则和时间事件的事件标识和事件触发点,其中活动类型的触发点包括起动、执行、取消、异常、补偿和终止,结构规则类型的触发点包括起动和执行,行为规则类型触发点包括起动、执行、取消、异常和终止,时间类型的触发点包括起动和执行。
在本实施例中,定义两类活动事件:活动起动和活动终止,其标识和事件触发点分别为E1、E2和起动、终止。
步骤2、根据领域应用的不同,将构建的过程模型映射到不同的执行语言:一类是面向集中式计算环境中XPDL语言,一类是面向分布式计算环境中BPEL4WS语言,具体过程如下:
1)面向集中式计算环境中XPDL语言的映射步骤:每类事件至少包括事件标识和事件触发点,其中活动类型的触发点包括起动、执行、取消、异常、补偿和终止,结构规则类型的触发点包括起动和执行,行为规则类型触发点包括起动、执行、取消、异常和终止,时间类型的触发点包括起动和执行。
2)面向分布式计算环境中BPEL4WS语言的映射步骤:业务过程模型中规则映射为WebService,并且定义message、portType和property等WebService属性;一般活动映射为BPEL4WS的基本活动或块活动,复合活动映射为BPEL4WS的块活动;事件映射为BPEL4WS的基本活动。
在本实施例中,由于软件外包管理过程中各个活动处于分布式计算环境中,因此所建立的软件外包管理过程模型映射到BPEL4WS语言:项目计划、需求分析、规程设计和任务操作活动映射为BPEL4WS中的invoke基本活动,结构规则和行为规则映射为WebService。
至此得到了可执行的业务过程模型,后续的执行步骤就不再详细描述。
下面结合图3说明支持业务过程模型的系统实现。
根据上述业务过程管理方法,本实施例的系统实现为如图2所示的结构,其中所包含的模块已经在发明内容中揭示,以下结合上述方法实施例中的具体对象对系统各组成模块之间的关系进行详细说明:
参照图2所示,本实施例中的业务过程管理系统包括业务过程模型编辑器、业务过程映射器和业务过程引擎。其中,业务过程模型编辑器包括活动实体构建模块和规则实体构建模块,活动实体构建模块用于创建活动之间的结构约束关系,规则实体构建模块用于创建活动内部的业务逻辑。
在本实施例中,活动实体构建模块创建了图3中软件外包过程中各个活动之间的结构约束关系,即表示项目计划制定完成后,并发进行规程设计和需求分析,完成后进行相关的任务操作。
在本实施例中,需求分析活动中的业务逻辑需要通过规则实体构建模块来定义,即首先在规则构建模块的术语构建子模块中定义软件外包过程的相关术语为:价格、期限、技能和人员,其次在事实构建子模块中定义需求分析活动中的事实为:价格包括人力费用和设备费用、期限是外包部分的提交时间、技能指开发人员的专业证书、人员包括管理人员和开发人员,在行为规则构建模块中定义行为规则为:外包价格必须低于15万美元、如果人员数少于50,禁止作为卖方、如果期限超出,则需要付违约金、技能证书必须是**类型,并且定义该4条行为规则的名称为RuleA1,其规则命名空间名为RuleNS1.。
在本实施例中,为了将需求分析活动与其相关的规则进行关联,在需求分析活动的属性中定义规则的事件触发点为活动执行前,并且规则命名空间和规则名称属性分别为RuleNS1和RuleA1。
已经建立完成业务过程模型后,通过业务过程映射器将业务过程模型映射至标准的XPDL语言,具体步骤为:首先进行业务过程模型的语法分析,其次将分析正确后的模型元素映射至XPDL中元素,然后通过输出模块将所XPDL文件持久化输出。
得到XPDL文件后,业务过程引擎首先通过XPDL载入管理器将业务过程模型的相关数据载入系统,然后事件触发引擎驱动工作流引擎执行活动,并且事件引擎在活动中的事件属性点触发规则推理引擎,规则推理完成后将结果返回工作流引擎,工作流引擎执行直至XPDL模型执行完成。
在本实施例中,在业务过程引擎中XPDL载入管理器将软件外包过程载入系统后,事件触发引擎触发项目计划活动,由于项目计划活动未定义规则触发事件点,因此其不触发规则引擎;项目计划活动执行完成后工作流引擎同时触发规程设计活动和需求分析活动,由于需求分析活动中定义了规则的事件触发点为活动执行前,因此在需求分析活动开始执行前事件触发引擎驱动规则引擎子模块,规则引擎推理执行完成后将结果返回,工作流引擎得到结果继续执行,直到软件外包过程执行完成。上面对本发明所述的支持业务密集领域的业务过程管理系统和方法进行了详细的说明,但显然本发明的具体实现形式并不局限于此。对于本技术领域的一般技术人员来说,在不背离本发明所述方法的精神和权利要求范围的情况下对它进行的各种显而易见的改变都在本发明的保护范围之内。