流程引擎平台化触发方法

文档序号:10534526阅读:522来源:国知局
流程引擎平台化触发方法
【专利摘要】本发明涉及流程引擎平台化触发方法,应用于流程引擎平台与业务系统之间,包括:业务系统接收数据请求,对符合预设条件的数据请求生成相应的唯一编码,并将该数据请求发送至流程引擎平台中的数据库保存;流程引擎平台根据数据请求中的执行特性将该数据请求分配至相应的流程节点并创建环节事件;流程引擎平台直接执行或通过API接口执行与该环节事件对应的触发器,以使该触发器发送通知至流程节点所对应的用户;流程引擎平台具有API接口,业务系统中设有与流程引擎平台的API接口通信的基于SOA的API接口。本发明不依赖消息平台,增强了系统的稳定性。业务逻辑和消息格式可根据自己的实际业务进行定义,不用和流程引擎平台事先协商。
【专利说明】
流程引擎平台化触发方法
技术领域
[0001]本发明涉及流程引擎平台化触发方法。
【背景技术】
[0002]业务建模是以软件模型方式描述企业管理和业务所涉及的对象和要素、以及它们的属性、行为和彼此关系,其目的是为了更好的展现、分析、规划、涉及企业的业务流程,以及涉及和构架企业请求系统。
[0003]流程引擎是系统中业务实现的强大逻辑层,不仅本身运行机制逻辑复杂,还有保障业务逻辑和自身逻辑系统工作,数据一致。因此必须寻求一致方式,来保证数据的完整性和一致性。在分布式的架构中,流程引擎和业务系统是分离构建。但流程的处理往往又是和业务逻辑紧密结合的,例如订单审核通过后,需要短信通知下单人等业务需求。这类需求的共同特点就是业务方需要流程引擎在特定事件发生时,触发特定的业务操作。如果引擎和业务系统耦合则不存在实现问题,但如果引擎是平台化的,与业务系统分离构建,在现有技术中是采用发生消息通知业务系统的方式作为联系业务系统和流程引擎的桥梁。
[0004]但是这种做法需要依赖消息平台,当事件发生时发送消息到业务系统,业务系统根据分析消息内容,判断要执行相应业务操作,所带来的缺陷是其稳定性取决于消息平台的稳定性,消息格式需要与流程引擎平台协商事先约定,扩展性不强;如果愿意系统出气并未平台化,后期业务扩展,需要改造成平台化会很复杂;业务系统需要增加消息响应机制。

【发明内容】

[0005]针对上述技术问题,本发明的目的在于提供一种流程引擎平台化触发方法,其不依赖消息平台,扩展性强。
[0006]为实现上述目的,本发明采用如下技术方案:
[0007]流程引擎平台化触发方法,应用于流程引擎平台与业务系统之间,包括如下步骤:
[0008]步骤一:业务系统接收数据请求,对符合预设条件的数据请求生成相应的唯一编码,并将该数据请求发送至流程引擎平台中的数据库保存;
[0009]步骤二:流程引擎平台根据数据请求中的执行特性将该数据请求分配至相应的流程节点并创建环节事件;
[0010]步骤三:流程引擎平台直接执行或通过API接口执行与该环节事件对应的触发器,以使该触发器发送通知至流程节点所对应的用户;
[0011]其中,流程引擎平台具有API接口,业务系统中设有与流程引擎平台的API接口通信的基于SOA的API接口。
[0012]优选的,所述步骤一具体包括如下子步骤:
[0013]步骤11:业务系统接收数据请求,判断该数据请求是否符合预设条件,若是,执行步骤12,否则,将该数据请求退回至提出数据请求的发起方;
[0014]步骤12:将该数据请求生成相应的唯一编码,并将该数据请求发送至流程引擎平台中的数据库保存。
[0015]优选的,步骤三中,当与环节事件对应的触发器设于流程引擎平台中,流程引擎平台直接执行该触发器;当与环节事件对应的触发器设于业务系统中,流程引擎平台通过API接口执行该触发器。
[0016]优选的,所述步骤三中“通过API接口执行与该环节事件对应的触发器”具体包括如下子步骤:
[0017]步骤a:流程引擎平台获取与该环节事件对应的触发器的名称,对该名称进行封装得到基于SOA的函数返回值;
[0018]步骤b:将封装好的基于SOA的函数返回值通过API接口返回至业务系统中;
[0019]步骤c:业务系统根据该基于SOA的函数返回值直接执行与环节事件对应的触发器,以使该触发器发送通知至流程节点所对应的用户。
[0020]优选的,所述触发器的名称为class全路径名称。
[0021]优选的,所述触发器的名称为spring的beanID。
[0022]相比现有技术,本发明的有益效果在于:
[0023]本发明不依赖消息平台,增强了系统的稳定性。业务逻辑和消息格式可根据自己的实际业务进行定义,不用和流程引擎平台事先协商。
【附图说明】
[0024]图1为本发明的流程引擎平台化触发方法的流程图。
【具体实施方式】
[0025]下面,结合附图以及【具体实施方式】,对本发明做进一步描述:
[0026]流程引擎作为应用系统的一部分,并为之提供对各应用系统有决定作用的、并根据角色、分工和条件的不同信息传递路由、内容等级等核心解决方案。工作流引擎包括了流程的节点里、流向管理、时限管理等重要功能,是系统中业务实现的强大逻辑层。API是应用程序编程接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。SOA为面向服务的体系结构,是一个组件模型,它将应用程序的不同功能单一(称为服务)通过这些服务之间定义良好的接口和契约关系联系起来,接口是采用中立的方式定义的,它应该独立于实现服务的硬件平台、操作系统和编程语音,使得构建在各种各样的系统中服务可以使用一种统一和通用的方式进行交互。
[0027]参见图1,本发明提供一种流程引擎平台化触发方法,通过设置编码器解决以往需要依赖消息平台将流程引擎平台与业务系统联系起来的缺陷,编码器实际是编程好的处理程序语言,可以分为本地触发器和远程触发器,其包括如下步骤:
[0028]步骤S1:业务系统接收数据请求,对符合预设条件的数据请求生成相应的唯一编码,并将该数据请求发送至流程引擎平台中的数据库保存;本步骤属于业务处理,将本次数据请求进行保存,该保存包括缓存,用于后续阶段失败时该数据请求还原操作使用。在数据库都持久化了每个数据请求的唯一编码,使得数据不会因并发导致还原错误。
[0029]对于步骤SI,可具体分为如下步骤:
[0030]步骤11:接收数据请求,判断该数据请求是否符合预设条件,若是,执行步骤12,否贝1J,将该数据请求退回至提出数据请求的发起方;发起方提出数据请求,系统接到数据请求之后进行判断是否符合预设条件;
[0031]步骤12:将该数据请求生成相应的唯一编码,并将该数据请求保存至数据库中。通过生成唯一编码,让系统可以快速判断并避免同时操作同一流程。
[0032]步骤S2:流程引擎平台根据数据请求中的执行特性将该数据请求分配至相应的流程节点并创建环节事件;
[0033]流程引擎平台内有业务相关代码和页面,例如,发起的数据请求为请假,发起方通过业务系统创建数据请求,业务系统会发送给流程引擎平台处理。而发起方申请请假,包括了执行特性,如请假一天,该天数即是执行特性。
[0034]发起方发起请假一天的请求,首先判断该发起方还是否有年假,如果有才执行下一步流程,如果没有,就直接退回至发起方,这里的是否还有年假就是判断是否符合预设条件,假如年假足够时(足够年假即为预设条件),在流程引擎平台内预设的请假业务代码为请假大于一天时分配至经理审核的流程节点,当请假天数等于一天或一天之内的分配至主管审核的流程节点,因而在本举例中,将数据请求分配至主管审核的流程节点,并创建环节事件。
[0035]步骤S3:流程引擎平台直接执行或通过API接口执行与该环节事件对应的触发器,以使该触发器发送通知至流程节点所对应的用户;
[0036]其中,流程引擎平台具有API接口,业务系统中设有与流程引擎平台的API接口通信的基于SOA的API接口。
[0037]在步骤S3中,分两种情况。第一种情况,当与环节事件对应的触发器设于流程引擎平台中,流程引擎平台直接执行该触发器;这种情况属于集成部署方式,也就是业务系统中的业务代码和流程引擎平台的核心代码放在一个WEB服务器中,此时该触发器即是本地触发器,此时,当发起方的数据请求进入至主管审核的流程节点,由于该触发器的代码和流程引擎平台的核心代码都在WEB服务器中,可直接运行,因此流程引擎平台只需获取触发器的名称就可直接执行该触发器。
[0038]第二种情况,当与环节事件对应的触发器设于业务系统中,流程引擎平台通过API接口执行该触发器。这种情况下属于分布式方式部署,也就是说,业务系统的业务代码和流程引擎平台的核心代码分别处于不同的WEB处理器。由于触发器的代码和流程引擎平台的核心代码是分开部署,流程引擎平台只有定义信息,不可以直接运行,因此流程引擎平台获取与该环节事件对应的触发器的名称,对该名称进行封装得到基于SOA的函数返回值,通过API接口将该封装好的基于SOA的函数返回值返回至业务系统中,在业务系统中的SOA架构为流程引擎S0A,因而该流程引擎SOA拿到返回值时可直接执行该触发器,达到了流程在流程引擎平台流转,而触发器在业务系统执行的目的,这种触发器也就是远程触发器。
[0039]执行触发器后,可发送通知至对应流程节点的用户,提醒该用户对数据请求进行处理。
[0040]流程引擎平台的API接口和业务系统中基于SOA的API接口为统一接口,通过Spring的接口注入机制,统一核心接口实现两套,分别是上述的两个接口。方便系统实施部署时可做到嵌入式(集成式)部署和分布式平台部署灵活切换,只需要放入对应实现的封装好的jar机壳,同时,也可以简化开发环境的搭建,使得开发环境简洁,无需因为现场是分布式平台部署,开发人员就必须搭建分布式平台部署的开发环境才能开发。由于两种部署方式都是API兼容的,因此可以在嵌入式部署的简单开发环境下开发流程,直接可将开发好的流程代码升级到现场分布式平台部署正式运营环境中运行。
[0041 ]触发器的名称为class全路径名称或spring的beanID,这种名称简单,同时可支持spring框架和非spring框架开发,无线另外一套唯一标示规则,就能达到编码唯一。
[0042]对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。
【主权项】
1.流程引擎平台化触发方法,应用于流程引擎平台与业务系统之间,其特征在于,包括如下步骤: 步骤一:业务系统接收数据请求,对符合预设条件的数据请求生成相应的唯一编码,并将该数据请求发送至流程引擎平台中的数据库保存; 步骤二:流程引擎平台根据数据请求中的执行特性将该数据请求分配至相应的流程节点并创建环节事件; 步骤三:流程引擎平台直接执行或通过API接口执行与该环节事件对应的触发器,以使该触发器发送通知至流程节点所对应的用户; 其中,流程引擎平台具有API接口,业务系统中设有与流程引擎平台的API接口通信的基于SOA的API接口。2.如权利要求1所述的流程引擎平台化触发方法,其特征在于,所述步骤一具体包括如下子步骤: 步骤11:业务系统接收数据请求,判断该数据请求是否符合预设条件,若是,执行步骤12,否则,将该数据请求退回至提出数据请求的发起方; 步骤12:将该数据请求生成相应的唯一编码,并将该数据请求发送至流程引擎平台中的数据库保存。3.如权利要求1所述的流程引擎平台化触发方法,其特征在于,步骤三中,当与环节事件对应的触发器设于流程引擎平台中,流程引擎平台直接执行该触发器;当与环节事件对应的触发器设于业务系统中,流程引擎平台通过API接口执行该触发器。4.如权利要求1所述的流程引擎平台化触发方法,其特征在于,所述步骤三中“通过API接口执行与该环节事件对应的触发器”具体包括如下子步骤: 步骤a:流程引擎平台获取与该环节事件对应的触发器的名称,对该名称进行封装得到基于SOA的函数返回值; 步骤b:将封装好的基于SOA的函数返回值通过API接口返回至业务系统中; 步骤c:业务系统根据该基于SOA的函数返回值直接执行与环节事件对应的触发器,以使该触发器发送通知至流程节点所对应的用户。5.如权利要求4所述的流程引擎平台化触发方法,其特征在于,所述触发器的名称为class全路径名称。6.如权利要求4所述的流程引擎平台化触发方法,其特征在于,所述触发器的名称为spring的beanIDo
【文档编号】G06F9/44GK105893055SQ201610261402
【公开日】2016年8月24日
【申请日】2016年4月22日
【发明人】杨学刚, 杨志成, 曹雄, 朱江, 凌宏喜, 樊冠群, 任占山
【申请人】广东凯通软件开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1