CN101833712A - 一种支持工作流活动实例成批处理执行的方法 - Google Patents
一种支持工作流活动实例成批处理执行的方法 Download PDFInfo
- Publication number
- CN101833712A CN101833712A CN201010184944A CN201010184944A CN101833712A CN 101833712 A CN101833712 A CN 101833712A CN 201010184944 A CN201010184944 A CN 201010184944A CN 201010184944 A CN201010184944 A CN 201010184944A CN 101833712 A CN101833712 A CN 101833712A
- Authority
- CN
- China
- Prior art keywords
- batch processing
- event
- workflow
- batch
- executor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种支持工作流活动实例成批处理执行的方法,具有工作流引擎的工作流服务模块建立在支持成批处理的工作流模型上,其特征在于,工作流服务模块包括一个分组批处理调度引擎,采用事件触发机制来组织活动实例成批处理的执行过程,事件被送入事件队列,由分组批处理调度引擎中的ECA规则解释器监控事件队列,当事件队列长度发生变化,由ECA规则解释器对事件队列中的新到事件进行处理;所述的ECA规则解释器为事件-条件-动作规则解释器。本发明可实现工作流***中多个同类型活动实例的成批处理,有利于工作流***执行性能的提高,能为企业提高运营效率,降低或节约生产或经营成本提供方法指导和应用工具支撑。
Description
技术领域
本发明属于工作流技术领域,涉及一种支持工作流活动实例成批处理执行的方法。
技术背景
在制造业信息化、电子商务以及现代服务业信息基础设施中,存在大量以过程为核心的应用需求。业务流程描述了企业资源的使用方式,以自动化或者半自动化方式来管理流程能够大幅度提高业务执行的工作效率,降低成本,使企业能更快地适应不断变化的需求和业务的增长。起源于生产组织与办公自动化领域的工作流技术为实现这一目标提供了先进的技术手段。该技术自20世纪80年代中期出现以来就得到广泛关注并被大量应用于企业实际运作,也一直是研究的热点之一。1993年8月,工作流管理联盟(Workflow Management Coalition,WfMC)的成立标志着工作流技术开始进入了相对成熟的阶段。WfMC的主要职责是负责工作流及工作流管理***(Workflow Management System,WfMS)的一些标准化工作。目前该组织的成员已经超过了200个,其中包括软件厂商、科研机构与咨询机构。1994年11月29日,WfMC发布了著名的工作流参考模型(WorkflowReference Model),它详细描述了WfMS的各个主要组成部分、各部分的功能及相互之间的接口。这些标准的制定对于实现不同厂家的产品之间的互操作及基于工作流执行服务开发新的应用都具有重要而深远的影响。在过去的十年里,人们已经可以很容易的接触到工作流管理技术。除了纯粹的工作流管理***外,如Staffware、COSA、ActionWorkflow等,许多其它的软件***也都使用了工作流技术。SAP等企业资源计划(Enterprise Resource Planning,ERP)***、客户关系管理(Customer Relationship Management,CRM)***、供应链管理(SupplyChain Management,SCM)***、企业间的电子商务(Business to Business,B2B)应用等都嵌入使用了工作流技术。
为了本说明书表述的方便,这里以工作流管理联盟(WfMC)的定义为标准,给出与工作流技术相关的概念:1)工作流(Workflow):是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行;2)工作流管理***(Workflow Management System,WfMS):是一个软件***,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行;3)业务流程(Business Process):指在现实环境中,能够实现业务目标和策略的相互连接的过程和活动集。如公文处理流程,投保过程及项目开发过程等;4)工作流模型(Workflow Model,也称为过程定义,即Process Definition):是计算机所能识别的业务流程的形式化描述,用来支持运行过程的自动化。过程可分解成一些子过程和活动,其定义主要包括运行过程中涉及到的各种数据和参数,如过程的开始和终止条件、各个工作环节(活动)及相互之间的控制流和数据流关系以及其它的相关信息,如组织成员、应用和数据等。工作流模型由过程模型、组织模型、资源模型以及工作流相关数据四部分组成。过程模型用来定义工作流的过程逻辑,它包括组成工作流的所有活动以及活动间的依赖关系,它是整个工作流模型的基础与核心。组织模型用来定义企业人员的组织结构,其主要任务是为企业人员执行工作流过程提供柔性的组织定义。资源模型用来定义企业资源的组织结构。而工作流相关数据用来定义工作流执行过程中需要用到的数据;5)过程(Process):是业务流程的规范视图,由一系列为共同目标联接在一起的协同的过程活动组成;6)活动(Activity):是工作流中一个逻辑步骤或环节的工作任务,可分为人工操作和自动处理两类。活动是过程执行中可被工作流机调度的最小工作单元。它包含的信息包括:开始和结束条件;可参与到此环节中的用户;完成此活动所需的应用程序或数据;以及关于此活动应如何完成的一些限制条件(如时间上的限制等);7)过程/活动实例(Process/Activity Instance):过程实例是某个工作流过程的一次执行。在过程实例的执行过程中,WfMS负责解释相应的流程定义来生成有关的活动实例,并根据定义中的控制规则协调这些活动之间的顺序关系,同时根据数据流动关系的定义完成活动之间的数据传送。从参与者的角度来说,过程实例的执行实际上是由参与者处理它所涉及的那个环节的数据。完成该环节的任务之后由WfMS根据相应结果激活后续环节,同时通知后续参与者对之进行处理,由此依次反复直至整个过程完成。每个活动实例代表一个活动的一次调用,只和一个过程实例相关,并使用过程实例的数据。一个过程实例可能由若干活动实例组成,但一个活动实例不能同时属于几个过程实例。一般情况下每一个活动实例都将表现为一个工作项(WorkItem,它将由某个或某组用户负责完成);8)参与者(Participant):是部分或全部执行某个活动实例的资源(注:资源最根本的特征是它能够执行特定的任务)。参与者包括实际完成某个活动的人或设备,它把恰当的资源分配给某个可以开始的活动。每位参与者都必须具有属于某个(某些)角色的属性;9)工作项(WorkItem):是在一个过程实例中由工作流参与者进行的具体工作。一个活动一般包含一个或几个工作项,这些工作项构成任务给工作流参与者完成。工作项通常是通过工作列表表达给用户;10)工作项列表(Worklist):是一个参与者所负责的所有工作项的详细描述;11)代理(Agent):在工作流***中,一个独立的执行实体被定义为代理;12)角色(Role):角色标识代理在过程模型中对某项任务或相关任务集合具有的访问权限和完成能力。角色用来指定代理的职责,它表示的是责任的集合,而代理是扮演一个或多个角色的物理实体。针对不同的工作流***,同一企业组织结构的划分可能不同,角色与代理实体的映射关系由授权完成。
工作流管理***(WfMS)是支持企业经营过程高效执行并监控其执行过程的计算机软件***,能有效提高企业的信息化程度,降低企业管理成本,更好的实现企业经营目标。因此,自20世纪90年代开始,它吸引了学术界与产业界的广泛关注,大量的工作流管理技术被应用到企业的实际运作。
工作流管理***在实际***中的应用一般分为3个阶段,即模型建立阶段、模型实例化阶段和模型执行阶段。工作流管理***的实施与企业的经营过程重组以及经营过程改变是紧密相关的。实施工作流管理的目的就是要提高企业的柔性,并且能够根据市场的变化不断改进业务过程,因此其相应的工作流模型也需要不断的改进。根据经营过程及组成活动复杂程度的不同,工作流管理***可以采取许多种实施方式。从较高的层次来抽象考虑工作流管理***,所有的工作流管理***都提供了以下三种功能:
(1)建立阶段功能:主要考虑工作流过程和相关活动的定义与建模功能;
(2)运行阶段的控制功能:在一定运行环境下,执行工作流过程并完成每个过程中活动的排序和调度功能;
(3)运行阶段的人机交互功能:实现各种活动执行过程中用户与IT应用工具之间的交互。
其中,工作流管理***建立阶段的功能主要是完成经营过程的计算机化的定义。在这个阶段,利用一个或多个建模技术与工具,完成实际的经营过程到计算机可处理的形式化定义的转化,所得到的定义通常可称为过程模型、过程模板、过程元数据或过程定义。
在完成过程模型的定义后,所生成的工作流模型将工作流执行服务软件进行实例创建并控制其执行过程。工作流执行服务对使用工作流模型描述的过程进行初始化、调度并且监控过程中每个活动的执行,在需要人工介入的场合完成计算机应用软件与操作人员的交互。工作流执行服务可以包括一个或多个工作流引擎,前者是一种集中式的实现方式,而后者是一种分布式的实现方式。分布式的实现方式又可以分为同构和异构两种不同的情况。这种分布性要求客观上是由企业的实际运行环境决定的,工作流管理***可以采用不同的方法来满足企业应用对于分布性的要求。工作流引擎是工作流管理***的核心软件部件。它的主要功能有:解释过程定义,控制过程实例(创建、激活、挂起、终止等),按照过程定义已确定的业务逻辑调用各项活动,为用户工作表添加工作项,维护工作流控制数据和工作流相关数据,调用应用程序,提供监督,管理和审计功能。
在工作流建模问题上,研究人员从各自的研究背景和应用需求上提出了很多有价值的方法,目前主要的建模方法有以下几种:
1)基于状态与活动图的建模方法:它介于Petri网模型和图形化模型之间。对于用户它比Petri网更容易学习和理解,在模型的准确性方面,它比图形化模型易于验证。其欠缺方面是模型验证比Petri网模型麻烦,可视化效果比图形化模型差。
2)基于形式化表示的建模方法:如基于Petri网的建模方法。在扩展Petri网的基础上,Aalst提出了工作流网的概念,并对应用中的许多问题,如结构特性以及如何将工作流映像到Petri网等进行了研究。Aalst还研究了使用Petri网支持企业经营过程重组的问题,提出了“What,Now,and By Whom”的三个阶段。
3)基于事务模型的建设方法:事务的概念源于数据库研究领域,用于解决数据的并发访问和出错恢复问题。在数据库事务模型的基础上,研究人员提出了多种高级事务模型来描述工作流过程,包括嵌套事务模型、多层事务模型、分支/汇合事务模型等。
4)基于活动网络的建模方法:这是指以活动和活动之间的关系为基础建立的工作流模型。这是大多数工作流管理***采用的工作流建模方法,其特点是用户界面友好,易于理解,并且可以转化为Petri网络模型来进行验证。
5)基于对话模型的建模方法:这种工作流模型是从客户方与服务方这两个角色之间的语言行为交互上对工作流过程进行定义。它是在语言行为理论的基础上提出的一种基于对话的工作流模型。
“成批处理”思想最早可追溯到操作***领域,但传统的工作流模型并没有提供这一方面的支持。工作流是一类能够完全或部分自动执行的业务过程,活动是工作流中的一个逻辑步骤或者环节。工作流活动的成批处理,是指通过将同一类型活动的多个工作流活动实例进行合并处理,从而使原本多个活动实例的分别执行变为成组合并执行。成批处理可以降低活动执行成本和提高活动执行效率,而这一语义在实际应用中也非常普通,并十分重要。例如,企业或政府集中采购业务就需要对同一供应商的不同采购申请活动合成一个集中采购活动,即将来自多个采购申请部门的多张申请单合并到集中采购部门的一张采购订单来处理;物流优化配送中需要将若干个客户的订单合并为一次运输单以节省运输费用。
在工作流的实际应用中还有很多这种需要在某个阶段对过程或活动实例进行合并处理的情形。但是,传统的工作流模型中并不支持活动的成批处理,现有的工作流管理***也未提供相应的支持机制。
发明内容
本发明的目的是提出一种支持工作流活动实例成批处理执行的方法,该一种支持工作流活动实例成批处理执行的方法可实现工作流***中多个同类型活动实例的成批处理,有利于工作流***执行性能的提高,能为企业提高运营效率,降低或节约生产或经营成本提供方法指导和应用支撑。
本发明的技术解决方案如下:
一种支持工作流活动实例成批处理执行的方法,具有工作流引擎的工作流服务模块建立在支持成批处理的工作流模型上,其特征在于,工作流服务模块包括一个分组批处理调度引擎,采用事件触发机制来组织活动实例成批处理的执行过程,事件被送入事件队列,由分组批处理调度引擎中的ECA规则解释器监控事件队列,当事件队列长度发生变化,由ECA规则解释器对事件队列中的新到事件进行处理;所述的ECA规则解释器为事件-条件-动作规则解释器;
所述的事件包括正常事件、缓冲区长度低于阈值事件、定时器事件和执行者空闲事件;
所述的正常事件、缓冲区长度低于阈值事件、定时器事件产生过程如下:
步骤1:产生活动实例:工作流引擎检测到工作流模型中当前要处理的活动为可成批处理的工作流活动,则产生活动实例并送往分组批处理调度引擎;
步骤2:由分组批处理调度引擎中的缓冲区管理器将接收到的活动实例分配到对应的成批服务区缓冲区(成批服务区缓冲区即BPA缓冲区),引起成批服务区缓冲区的长度变化,当成批服务区缓冲区的长度变化达到预设的阈值,则由缓冲区管理器触发正常事件;当缓冲区管理器监测到某一个成批服务区缓冲区长度发生变化但又未达到预设阈值时,则触发缓冲区长度低于阈值事件;
缓冲区长度低于阈值事件被ECA规则解释器解释完,由分组批处理调度引擎启动定时器定时Δtl时间,当Δtl时间到,而正常事件没有被触发时,则由定时器产生定时器事件;(当Δtl时间还没有到,而正常事件已经被触发时,则定时器事件不被触发)
执行者空闲事件的产生过程为:执行者执行完,由执行者产生执行者空闲事件;由执行者将该执行者空闲事件送入到事件队列中;
活动实例与成批服务区缓冲区具有一一对应关系;
所述的对新到事件进行处理的过程为根据下表执行处理:
事件名称 | 处理过程 |
第i个执行者对应的执行者空闲事件 | 1、将由第i个成批服务区缓冲区产生的定时器清零;2、清除事件队列中与第i个成批服务区缓冲区有关的所有事件;3、开启缓冲区管理器对第i个成批服务区缓冲区监控;4、将ECA规则解释器复位以使下一次调度得以进行。 |
来自于第i个缓冲区的定时器事件 | 1、关闭缓冲区管理器对第i个成批服务区缓冲区监控;2、从第i个成批服务区缓冲区提取一组符合成批处理条件的活动实例送给第i个执行者进行批处理;3、将ECA规则解释器复位以使下一次调度得以进行; |
正常事件(来自于第i个缓冲区) | 1、关闭缓冲区管理器对第i个成批服务区缓冲区监控;2、从第i个成批服务区缓冲区提取一组符合成批处理条件的活动实例送给第i个执行者进行批处理;3.将ECA规则解释器复位以使下一次调度得以进行; |
缓冲区长度低于阈值事件(来自于第i个缓冲区) | 启动定时器,设置定时器的等待时间为Δtl,定时器开始工作。 |
1)提供了一种支持成批处理工作流模型的建模方法其特征在于:在传统的工作流模型中引入一新类型的活动-可成批处理的工作流活动,并定义了一个支持成批处理的工作流模型。
成批处理对工作流模型与工作流管理***带来了新的要求,因为分组批处理是动态的,并且要将活动实例整合成新的实例提交给参与者执行,因此必须要考虑整合的方法问题。这些必须在工作流模型中给予描述。为在工作流中支持成批处理,本发明在传统的工作流模型中引入一新类型的活动-可成批处理的工作流活动。具体定义如下:
定义1支持成批处理的工作流模型,为一个五元组<T,E,s,BT,F>。其中T是一个工作流活动的集合,可包含传统工作流活动与可成批处理的工作流活动,是活动间非循环关系的集合,s∈T是起始活动,是一个可成批处理的工作流活动的集合,是结束活动的集合。
定义1中,传统工作流活动是指传统工作流模型中所支持的工作流活动,这些活动在定义后,其活动实例在实际执行时可完全由现有工作流管理***的相关机制进行管理与维护。为说明其与可成批处理的工作流活动的区别,对其定义如下:
定义2传统工作流活动,为一个三元组<A,I,O>。其中,A是工作流活动名称,I是A的输入数据项集合,O是A的输出数据项集合,I和O又称为输入数据参数和输出数据参数。
例如在图1的申请活动等就是传统工作流活动,申请活动包含了申请人数、地点、时间等输入项,车牌号,费用开销等输出项。
定义3可成批处理的工作流活动,为一个六元组<A,I,O,BLower,Bl,BC>。其中,A是工作流活动名称,I是A的输入数据项集合,O是A的输出数据项集合,I和O又称为输入数据参数和输出数据参数;BLower,Bl为与活动实例成批处理有关的参数,BLower就是即为阈值,BLower与Bl分别表示执行一次成批处理分组选择时活动A的实例的数目的最小值与最大值;BC=<x,D,y>为A的一个成批处理特征,其中x∈I,y∈O,
例如在图1的派车活动与通知司机活动都为可成批处理的工作流活动。
2)提供了一个支持成批处理工作流模型的建模工具的实现方案。该工具整个设计框架分为四个模块,UI界面模块、控制层、模型层以及XPDL存储层,具体如图2所示。
其中,控制层模块在整个架构中的主要作用为监控UI界面事件的发生以及对节点对象的生成。其包括事件***,事件响应模块,对象生成器。事件***监听到事件的发生后,就将相应的参数交给事件响应模块进行具体的处理。在事件响应模块中,设计了两个主要的类GraphController和Handler,其中GraphController处理一些相对简单的事件,如对例外或异常的一些处理,而Handler则具体涉及到与流程实例相关的事件处理,如流程节点的添加、删除、修改以及参数的设置等等。当事件响应模块发出具体生成某节点的动作后,便由对象生成器具体生成相应的对象。
其中,模型层包括模型验证模块,其对其进行合法性验证,对于符合工作流模型规则要求的转换成XPDL,否则进行异常处理。
其中,XPDL存储层主要对XPDL文档的导入以及导出,对于通过模型验证的流程将在XPDL层中进行导出,并最终存储到磁盘中。同样,对于要导入进建模工具的XPDL文件,要先进行模型验证,如果通过验证,则在视图区进行显示,否则不予导入。
3)提供了一个基于事件驱动机制的支持成批处理的工作流执行服务***解决方案,方便在工作流引擎中完成活动实例成批处理。
工作流模型在具体执行时,将会产生该模型的过程实例。而在过程实例的执行过程中,WfMS将负责生成与工作流模型中的活动相对应的活动实例,并根据定义中的控制规则协调这些活动实例之间的顺序关系,同时根据数据流动关系的定义完成活动之间的数据传送。每个活动实例代表一个活动的一次调用,只和一个过程实例相关,并使用过程实例的数据。一个过程实例可能由若干活动实例组成,但一个活动实例不能同时属于几个过程实例。
通过本发明提供的支持成批处理工作流模型的建模工具,可实现本发明提供的支持成批处理工作流模型的可视化建模。在完成支持成批处理工作流模型模型的定义后,所生成的工作流模型将由工作流执行服务***进行实例创建并控制其执行过程。工作流执行服务***对使用工作流模型描述的过程进行初始化、调度并且监控过程中每个活动的执行,在需要人工介入的场合完成计算机应用软件与操作人员的交互。
下面如无特别说明,工作流活动都指可成批处理的工作流活动。由于传统的工作流执行服务***是不支持成批处理,为使其在执行时能支持工作流活动实例成批处理,我们需要对传统的工作流执行服务***进行功能扩展。
本发明在现有工作流执行服务***中增加了一个成批处理调度引擎,由其专门负责成批处理调度的实现。图4描述了成批处理调度引擎的体系结构及其与其它部分的关系。从图4中可看出,成批处理调度引擎由ECA规则解释器、GSA算法组件(提供了支持工作流活动实例分组的分组调度算法)、缓冲区管理器、以及ECA规则表、事件队列和一系列的缓冲区组成。每一个缓冲区代表一个成批处理区BPA,每一个BPA对应工作流模型中的一个工作流活动,即:工作流模型中第i个工作流活动在执行时的活动实例将被送入第i个BPA缓冲区中。
成批处理调度引擎在具体执行时,主要基于事件驱动的GSA-SA算法,对其可描述如下:
1、启动成批处理调度引擎,设置各执行者的初始状态为闲,各BPA缓冲区的初始状态为Empty。
2、当新的服务请求到达时,工作流引擎产生服务到达事件,并根据服务请求的要求,生成活动实例并将其送入到缓冲区管理器,然后缓冲区管理器将其送入对应的各BPA的缓冲队列中。
3、缓冲区管理器监控各BPA缓冲区的状态,当状态改变时产生相应的事件(具体详见表1),并将事件送入事件队列。(各BPA缓冲区有4种状态:Empty,Lower,Normal,Full,分别表示缓冲区空、低于警戒下限、正常、满。Lower与BLower有关,详见定义3的说明。其状态转换为:在启动时,缓冲区为Empty,当有服务到时,则转入BLower,如果此时一直有服务到达,但等待队长Q≤BLower,则仍是处于Lower状态,如果BLower<Q<Bl,则转入Normal状态,一直到Q=Bl,则进入Full状态。而在一个分组选优算法结束后会启动服务机构去处理分组Gr,用Gr.Length表示该分组中的服务个数,则其相当于从缓冲队列中WQue中删除Gr.Length个服务,即Q=Q-Gr.Length,此时有可能改变缓冲区的状态。它为服务到达的逆操作。
4、ECA规则解释器对事件队列中的事件进行监听,并负责ECA规则的解释执行。当事件队列中的事件满足某条ECA规则的执行条件时,则该条ECA规则被ECA解释器解释执行。当有由工作流***触发的退出事件(Event_Exit)发生,关闭成批处理调度引擎,算法结束。
5、当定时器按照ECA规则解释器的要求完成了一段长为Δtl的等待时间后,产生一个等待时间1到事件。
6、当GSA算法组件按照ECA规则解释器的要求对第i个BPA缓冲区中的活动实例完成一次分组批处理调度后,生成一个新的分组服务请求提交给第i个执行者处理,并产生一个分组批处理调度结束事件。其中,分组服务请求中包括了一个新的成批处理活动实例及一个与分组情况相对应的活动实例状态映射表。
7、各执行者监控是否有新的分组服务请求到达。如果有新的分组服务请求到达第i个执行者,而第i个执行者的当前状态为“闲”,将第i个执行者的状态改变为“忙”,并产生相应的忙事件(具体详见表1),并将事件送入事件队列,第i个执行者开始处理该新的分组服务请求,处理完后,并执行结果返回给工作流引擎,并将第i个执行者的状态改变为“闲”,并产生相应的忙事件(具体详见表1),并将事件送入事件队列;如果有新的分组服务请求到达第i个执行者,而第i个执行者当前状态为“忙”,则等第i个执行者的状态改变为“闲”时再处理该新的分组服务请求。(各执行者只有两种状态:“忙”,“闲”。“忙”表示执行者正在执行服务,而“闲”则表示服务结束,执行者在等待新的分组服务的到来)
8、重复2-7操作,直到算法结束为止。
步骤2-7将产生的事件可用表1来描述:
表1 GSA-SA算法涉及到的事件列表
ECA规则解释器是调度引擎的核心。在实现时Idle_Processor事件将作为开始一次新的分组调度进程的出发点(因为只有执行者空闲时,才有开始一次新的调度的必要),但在开始一次新的分组调度进程之前,必须清除与前一次分组调度有关的事件、定时器等,如不清除,则可能造成混乱。
表2描述了步骤2-7中ECA规则解释器对成批处理区i进行处理时的ECA规则及其执行语义的解释。一般的,与第i个成批处理区(即成批处理区i)对应的活动实例在实例成批处理时的分组活动ID将被设置为BPAi。而ECA规则中的各个动作在执行时都将接受BPAi的具体取值(例如BPA1、BPA2等),即:当成批处理调度引擎在执行第i个成批处理区(即BPAi)中的活动实例的成批处理时,ECA规则中的各个动作都对BPAi执行。
表2 实现GSA-SA算法的ECA规则及其执行语义的解释
在这些ECA规则中,SetTimer(),GPAlgorithm(),ResetECARule(),ClearEvent(),OpenBufferMonitor(),CloseBufferMonitor()为工作流执行服务内部函数,下面对它们的执行功能进行一般性描述,其中Para、Para1、Para2均表示参数,而这些参数在具体执行时都将如表2所示的那样被具体化:
1、SetTimer(Para1,Para2)表示设置定时器,即在等待一段时间Para2后将产生事件Para1;
2、ClearTimer(Para)表示清除为产生事件Para而设置的定时器;
3、GPA_Algorithm()表示启动GSA算法组件执行实例成批处理时的分组选择操作;
4、ResetECARule(Para)表示清除所有与成批服务区Para有关的定时器、事件,并开启缓冲区监控和重置ECA规则以使下一次调度得以进行。
5、ClearEvent(Para)表示清除事件队列中与成批处理区Para有关的所有事件;
6、OpenBufferMonitor(Para)表示允许对成批处理区Para对应的缓冲区监控,即允许产生与缓冲区有关的事件(如Lower,Normal等);
7、CloseBufferMonitor(Para)表示禁止对成批处理区Para对应的缓冲区监控,即没有与缓冲区有关的事件产生。
GSA算法组件在执行时主要依据GSA算法,假设现在对第i个成批处理区对应的缓冲区BPAi中的活动实例进行分组选择,BC=<x,D,y>为第i个成批处理区对应的可成批处理的工作流活动的成批处理特征,为便于说明GSA算法,我们引入一个符号I[D],其中I表示活动实例对应的工作流实例号,D为BC中工作流活动成批处理特征的条件项集合,I[D]表示活动实例在输入数据项子集合D上的取值。以表3中的数据为例,设D={出发时间,目的地},则t1[D]=(2005.10.13,9AM,长沙)。
GSA算法的具体描述如下:
1、创建n个空集合S1,S2,……,Sn,其中n为当前BPAi中的活动实例数目,设置一个计数器t,t的初值为1。
2、当t的值小于n时,执行步骤3;当t的值大于n时,转去执行步骤7;
3、取缓冲区BPAi中的第t个活动实例,设为It;设置一个计数器x,x的初值为1,
4、若It[D]=Ix[D],则将It放到集合Sx中,即::Sx=Sx∪{It},转去执行步骤6;若It[D]=Ix[D]不成立,则执行步骤5;
5、x=x+1,转去执行步骤4;
6、t=t+1,转去执行步骤2;
7、选择S1,S2,……,Sn中一个包含活动实例数目最多的集合,设其为Si,
假设Si={Ia,Ia+1,……,Ib},则将Ia,Ia+1,……,Ib合并为一个新的成批处理活动实例,并生成一个与分组情况相对应的活动实例状态映射表,算法结束。
通过GSA算法,缓冲区BPAi中的活动实例将依据在输入数据项子集合D上的取值进行分组选择,在D上取值相同活动实例将被分到同一个集合中,即:同一个分组中的各活动实例在D上取值上均相同。
其中,GSA算法的步骤7中的将Ia,Ia+1,……,Ib合并为一个新的成批处理活动实例,设为T,即T在输入数据项x上的取值是Ia,Ia+1,……,Ib在输入数据项x上的取值累加,而在输入数据项D上的取值与Ia,Ia+1,……,Ib均相同。即:而对于其它输入数据项的取值,在进行成批处理时可暂不考虑。
另外,GSA算法的步骤7中同时生成一个与分组情况相对应的活动实例状态映射表的数据结构如下。其中,分组时合并的输出数据项在新的成批处理活动实例被执行者处理完毕后,根据T[y]的具体取值再进行分配,分配规则为:根据分组前各活动实例在输入数据项x的取值在T[x]中的比例,分配各活动实例最后在输入数据项y的取值。
有益效果:
传统的工作流模型中并不支持活动的成批处理,传统的工作流管理***也未提供相应的支持机制。本发明通过引入了支持成批处理的工作流模型,并在工作流执行服务中加入了分组批处理调度引擎,从而可实现对工作流***中多个同类型活动实例的成批处理,有利于工作流***执行性能的提高,能为企业提高运营效率,降低或节约生产或经营成本提供方法指导和应用支撑。
本发明的支持工作流活动实例成批处理执行的方法,采用事件触发机制来组织执行过程。当一个事件发生后,由ECA规则解释器捕获该事件,并依据ECA规则(Event-Condition-Action,事件-条件-动作规则的简称)进行条件判断,选择合适的执行动作。因此,整个过程是在工作引擎与分组批处理调度引擎的作用下自动完成的,自动化程度高。
附图说明
图1为本发明提供的用于处理共享租车流程的模型图;
图2为本发明提供的工作流建模工具的设计框架示意图;
图3为本发明提供的工作流实例方面可视化建模工具功能模块图;
图4为本发明提供的支持工作流活动实例成批处理的实施过程示意图。
具体实施方式
以下将结合图和具体实施过程对本发明做进一步详细说明。
实施例1:
图1为工作流活动实例成批处理的一个案例,其由七个活动组成:“申请”、“审批”、“拒绝通知”、“派车”、“通知司机”、“通知乘车人”、“收费”。
一般情况下,***中的租车实例是独立执行的,即一辆汽车每次为一位乘客服务,但是如果汽车可容纳一个以上的乘客,那么在乘客有共同的目的地及出发时间,并同意与其它人一同乘车的前提下,一辆汽车每次可以同时为多位乘客服务。换言之,多个不同的过程实例中的活动实例按照某一规则进行分组组合,各组的多个活动实例的工作任务最终可组合成一个活动实例的执行来完成。
依本发明提供的方法,为使工作流***在执行时能支持工作流活动实例成批处理,我们需要完成下列步骤:
1、按照支持成批处理工作流模型的建模方法在支持成批处理工作流模型的建模工具中定义支持成批处理的工作流模型
2、将定义好的模型输出到支持成批处理的工作流执行服务***
3、由支持成批处理的工作流执行服务***对模型进行解释执行
下面我们将以处理图1中共享租车流程为例的详细介绍各步骤的执行过程。
用户定义好工作流模型后,将图1中虚线框中的派车活动与通知司机活动设置为可成批处理的工作流活动,具体设置如下:
对于派车活动,其输入数据项集合为{出发时间,目的地,乘车人数},输出数据项集合为{距离,费用,车次},假设执行一次成批处理分组选择时活动实例数目的最小值与最大值(即BLower与Bl)分别为6与8,<乘车人数,{出发时间,目的地},费用>为派车活动的一个成批处理特征。
对于通知司机活动,其输入数据项集合为{出发时间,目的地,车次,乘车人数},输出数据项集合为{执行开销},假设执行一次成批处理分组选择时活动实例数目的最小值与最大值(即BLower与Bl)分别为6与8,<乘车人数,{出发时间,目的地,车次},执行开销>为通知司机活动的一个成批处理特征。
当利用该工具完成建模后,该工具可自动生成XPDL文档保存刚才定义好的共享租车模型输出到支持成批处理的工作流执行服务***。
表3为共享租车模型在执行时某段时间内产生的派车活动实例,各实例的出发地点为湘潭。由于派车活动的Blower值为6,故当第7个工作流实例t7到达时,第1个成批处理区(派车活动为共享租车模型的第一个成批处理活动)对应的缓冲区BPA1中派车活动实例数超过了6个,达到成批处理分组条件。若此时第1个执行者为空闲,则Rule 3被ECA规则解释器执行,从而启动GSA算法组件执行实例成批处理时的分组选择操作,具体选择过程如下:
1、根据派车活动的成批处理特征<乘车人数,{出发时间,目的地},费用>,将缓冲区BPA1中派车活动实例按照在输入数据项集合{出发时间,目的地}({出发时间,目的地}的取值一致为本实例的成批处理条件)取值是否一致的标准,将BPA1中7个派车活动实例分为三组,分别为S1={t1,t3,t5,t6},S2={t2,t4}。
2、由于{t1,t3,t5,t6}中的派车活动实例数目最多,故{t1,t3,t5,t6}中的各派车活动实例被选择出来,并被组合成一个新的成批处理派车活动实例T1,与{t1,t3,t5,t6}及T1相对应的活动实例状态映射表如表4所示,T1的取值如表6所示。
表3共享租车过程在执行时某段时间内产生的派车活动实例
表4共享租车过程在执行时某段时间内产生的活动实例状态映射表
第1个执行者接到这个服务请求后,将状态由“闲”转为“忙”并产生执行者忙事件。当第1个执行者对新的成批处理派车活动实例T1处理完毕后,将产生表6、表7所示的信息,其中的费用取值为25的计算依据为:100*1/4=25。
表5共享租车过程在执行时某段时间内产生的成批处理派车活动实例
表6共享租车过程在执行时某段时间内产生的成批处理派车活动实例
表7共享租车过程在执行时某段时间内产生的活动实例状态映射表
当第1个执行者对新的成批处理派车活动实例T1处理完毕后,第1个执行者的状态已由“忙”转为“闲”,这时产生了执行者空闲事件,第1个缓冲区BPA1中的活动实例数目也由7个变成了3个(有4个刚才已处理),这时产生了Lower事件,于是Rule 4被ECA规则解释器解释执行,设置一个定时器等待时间Δtl。
当等待时间Δtl到达后,Rule 2被ECA规则解释器解释执行,因此对第1个缓冲区BPA1中的活动实例t2、t4、t7与t8执行实例成批处理时的分组选择、操作,具体处理过程与{t1,t3,t5,t6}的处理。而最后得到的结果如表8所示。
表8共享租车过程某段时间内产生的派车活动实例的最终执行情况
类似的,通知司机活动的实例到达情况与最终执行情况如表9、表10所示。在该实例中,如果不进行组合处理,那么汽车公司须按照申请活动数,分配8辆汽车,进行组合处理后只需分配2辆汽车,通知司机的执行开销也由原来的每乘客平均通知1次降为了每乘客平均通知1/4次。很显然组合处理操作为汽车公司节约和合理利用资源提供了一个新的处理方法,从减少开销方面为公司创造了财富。
表9共享租车过程在执行时某段时间内产生的通知司机活动实例
表10共享租车过程某段时间内产生的通知司机活动实例的最终执行情况
阈值Blower,在模型定义中设置,定时时间由***根据应用设置,在本租车实例中,定时时间为15分钟。
Claims (1)
1.一种支持工作流活动实例成批处理执行的方法,具有工作流引擎的工作流服务模块建立在支持成批处理的工作流模型上,其特征在于,工作流服务模块包括一个分组批处理调度引擎,采用事件触发机制来组织活动实例成批处理的执行过程,事件被送入事件队列,由分组批处理调度引擎中的ECA规则解释器监控事件队列,当事件队列长度发生变化,由ECA规则解释器对事件队列中的新到事件进行处理;所述的ECA规则解释器为事件-条件-动作规则解释器;
所述的事件包括正常事件、缓冲区长度低于阈值事件、定时器事件和执行者空闲事件;
所述的正常事件、缓冲区长度低于阈值事件、定时器事件产生过程如下:
步骤1:产生活动实例:工作流引擎检测到工作流模型中当前要处理的活动为可成批处理的工作流活动,则产生活动实例并送往分组批处理调度引擎;
步骤2:由分组批处理调度引擎中的缓冲区管理器将接收到的活动实例分配到对应的成批服务区缓冲区,引起成批服务区缓冲区的长度变化,当成批服务区缓冲区的长度变化达到预设的阈值,则由缓冲区管理器触发正常事件;当缓冲区管理器监测到某一个成批服务区缓冲区长度发生变化但又未达到预设阈值时,则触发缓冲区长度低于阈值事件;
缓冲区长度低于阈值事件被ECA规则解释器解释完,由分组批处理调度引擎启动定时器定时Δt1时间,当Δt1时间到,而正常事件没有被触发时,则由定时器产生定时器事件;
执行者空闲事件的产生过程为:执行者执行完,由执行者产生执行者空闲事件;由执行者将该执行者空闲事件送入到事件队列中;
活动实例与成批服务区缓冲区具有一一对应关系;
所述的对新到事件进行处理的过程为根据上表执行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101849440A CN101833712B (zh) | 2010-05-27 | 2010-05-27 | 一种支持工作流活动实例成批处理执行的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101849440A CN101833712B (zh) | 2010-05-27 | 2010-05-27 | 一种支持工作流活动实例成批处理执行的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101833712A true CN101833712A (zh) | 2010-09-15 |
CN101833712B CN101833712B (zh) | 2012-06-27 |
Family
ID=42717775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101849440A Expired - Fee Related CN101833712B (zh) | 2010-05-27 | 2010-05-27 | 一种支持工作流活动实例成批处理执行的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101833712B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141936A (zh) * | 2011-04-25 | 2011-08-03 | 山东浪潮齐鲁软件产业股份有限公司 | 工作流实现批量提交的方法 |
CN105160570A (zh) * | 2015-09-15 | 2015-12-16 | 浪潮软件股份有限公司 | 一种可水平扩展的并发在线交易处理方法 |
CN106056300A (zh) * | 2016-06-08 | 2016-10-26 | 南京理工大学 | 纵横交错的混合式资源分配规则挖掘方法 |
CN106156939A (zh) * | 2015-04-27 | 2016-11-23 | 上海宝信软件股份有限公司 | 基于作业流的分布式调度***及应用方法 |
CN107251085A (zh) * | 2014-12-15 | 2017-10-13 | 键软株式会社 | 物流支持方法、***和程序 |
CN108270666A (zh) * | 2018-01-08 | 2018-07-10 | 东莞嘉泰钟表有限公司 | 一种采购订单自动管理控制方法 |
CN109214659A (zh) * | 2018-08-16 | 2019-01-15 | 中国建设银行股份有限公司 | 一种核算触发装置 |
CN109829683A (zh) * | 2018-12-25 | 2019-05-31 | 航天信息股份有限公司 | 一种基于调度工作流的并联审批方法和*** |
CN110162413A (zh) * | 2018-02-12 | 2019-08-23 | 华为技术有限公司 | 事件驱动方法及装置 |
CN111028051A (zh) * | 2019-11-26 | 2020-04-17 | 泰康保险集团股份有限公司 | 基于流程引擎***的订单合并自动处理方法、装置和*** |
CN112069205A (zh) * | 2020-09-30 | 2020-12-11 | 北京百度网讯科技有限公司 | 用于业务应用的处理方法、装置、智能工作站和电子设备 |
CN112734189A (zh) * | 2020-12-30 | 2021-04-30 | 深圳晶泰科技有限公司 | 实验工作流模型建立方法 |
CN113673834A (zh) * | 2021-07-27 | 2021-11-19 | 杭州优云软件有限公司 | 一种通过流程监控提高审批效率的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5799297A (en) * | 1995-12-15 | 1998-08-25 | Ncr Corporation | Task workflow management system and method including an external program execution feature |
CN101354643A (zh) * | 2008-08-26 | 2009-01-28 | 中国科学院软件研究所 | 一种基于有状态方面的bpel流程运行时监控方法 |
CN101478431A (zh) * | 2009-02-10 | 2009-07-08 | 浪潮通信信息***有限公司 | 一种使用可视化流程进行管理的任务调度*** |
CN101714230A (zh) * | 2009-11-20 | 2010-05-26 | 广东金宇恒科技有限公司 | 一种用户自定义的工作流管理方法及*** |
-
2010
- 2010-05-27 CN CN2010101849440A patent/CN101833712B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5799297A (en) * | 1995-12-15 | 1998-08-25 | Ncr Corporation | Task workflow management system and method including an external program execution feature |
CN101354643A (zh) * | 2008-08-26 | 2009-01-28 | 中国科学院软件研究所 | 一种基于有状态方面的bpel流程运行时监控方法 |
CN101478431A (zh) * | 2009-02-10 | 2009-07-08 | 浪潮通信信息***有限公司 | 一种使用可视化流程进行管理的任务调度*** |
CN101714230A (zh) * | 2009-11-20 | 2010-05-26 | 广东金宇恒科技有限公司 | 一种用户自定义的工作流管理方法及*** |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141936B (zh) * | 2011-04-25 | 2016-01-20 | 浪潮软件股份有限公司 | 工作流实现批量提交的方法 |
CN102141936A (zh) * | 2011-04-25 | 2011-08-03 | 山东浪潮齐鲁软件产业股份有限公司 | 工作流实现批量提交的方法 |
CN107251085A (zh) * | 2014-12-15 | 2017-10-13 | 键软株式会社 | 物流支持方法、***和程序 |
CN106156939A (zh) * | 2015-04-27 | 2016-11-23 | 上海宝信软件股份有限公司 | 基于作业流的分布式调度***及应用方法 |
CN105160570A (zh) * | 2015-09-15 | 2015-12-16 | 浪潮软件股份有限公司 | 一种可水平扩展的并发在线交易处理方法 |
CN106056300A (zh) * | 2016-06-08 | 2016-10-26 | 南京理工大学 | 纵横交错的混合式资源分配规则挖掘方法 |
CN108270666A (zh) * | 2018-01-08 | 2018-07-10 | 东莞嘉泰钟表有限公司 | 一种采购订单自动管理控制方法 |
CN110162413A (zh) * | 2018-02-12 | 2019-08-23 | 华为技术有限公司 | 事件驱动方法及装置 |
CN109214659B (zh) * | 2018-08-16 | 2021-08-13 | 中国建设银行股份有限公司 | 一种核算触发装置 |
CN109214659A (zh) * | 2018-08-16 | 2019-01-15 | 中国建设银行股份有限公司 | 一种核算触发装置 |
CN109829683A (zh) * | 2018-12-25 | 2019-05-31 | 航天信息股份有限公司 | 一种基于调度工作流的并联审批方法和*** |
CN111028051A (zh) * | 2019-11-26 | 2020-04-17 | 泰康保险集团股份有限公司 | 基于流程引擎***的订单合并自动处理方法、装置和*** |
CN111028051B (zh) * | 2019-11-26 | 2023-08-15 | 泰康保险集团股份有限公司 | 基于流程引擎***的订单合并自动处理方法、装置和*** |
CN112069205A (zh) * | 2020-09-30 | 2020-12-11 | 北京百度网讯科技有限公司 | 用于业务应用的处理方法、装置、智能工作站和电子设备 |
CN112069205B (zh) * | 2020-09-30 | 2024-05-10 | 北京百度网讯科技有限公司 | 用于业务应用的处理方法、装置、智能工作站和电子设备 |
CN112734189A (zh) * | 2020-12-30 | 2021-04-30 | 深圳晶泰科技有限公司 | 实验工作流模型建立方法 |
CN113673834A (zh) * | 2021-07-27 | 2021-11-19 | 杭州优云软件有限公司 | 一种通过流程监控提高审批效率的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101833712B (zh) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101833712B (zh) | 一种支持工作流活动实例成批处理执行的方法 | |
van der Zee | Developing participative simulation models: Framing decomposition principles for joint understanding | |
Van der Zee | Modeling decision making and control in manufacturing simulation | |
Wang et al. | Edge computing-based real-time scheduling for digital twin flexible job shop with variable time window | |
CN106774240A (zh) | 一种面向服务的工业生产控制与监测方法及*** | |
CN101923672A (zh) | 一种工作流实例方面成批处理模式的挖掘方法 | |
Safeer et al. | Impact of business intelligence competency center in success/failure of BI applications | |
CN106127365A (zh) | 定量遥感产品在线交互式自主生产方法 | |
CN115719207A (zh) | 超自动化平台*** | |
Pena-Mora et al. | Information technology planning framework for Japanese general contractors | |
Lee et al. | Mediator approach to direct workflow simulation | |
CN116976839A (zh) | 一种基于网络协同制造的铅蓄电池生产管控方法 | |
Aksyonov et al. | Development of an automated system for analysis, modeling, and decision-making for metallurgical enterprise | |
Schoech et al. | Optimising plant layout decisions based on emulation models–technical framework and practical insights | |
Robinson | A framework for simulation conceptual modeling | |
CN113705945A (zh) | 一种生产订单管理*** | |
Emboava et al. | A comparative analysis between the quick response manufacturing and time-based competition methodologies | |
Nikishchenkov et al. | Interpretation of Parallelism of Transport Technologies Using Operator Schemes | |
Qin et al. | A New Construction of Job-Shop Scheduling System Integrating ILOG and MAS. | |
Kim et al. | Computational shipyard dynamics | |
Alves et al. | Industry 4.0: why industries should become more digital in the post-pandemic era–the kfactory case study | |
Sanchez et al. | Proposal to Improve the Dyeing Process Applying Preventive Maintenance, SMED and Standardization in an Industrial Dry Cleaner | |
Xiang et al. | Construction of digital 3D magic-cube organization structure for innovation-driven manufacturing | |
Labarta-García et al. | Application of Lean Manufacturing and SLP tools to increase productivity in an SME in the textile sector | |
Choi et al. | Applying Job Shop Scheduling to SMEs Manufacturing Platform to Revitalize B2B Relationship. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120627 Termination date: 20200527 |
|
CF01 | Termination of patent right due to non-payment of annual fee |