一种流程化的事件处理机制的改进方法
【技术领域】
[0001] 本发明涉及计算机软件程序技术领域,尤其是涉及一种流程化的事件处理机制的 改进方法。
【背景技术】
[0002] 现在很多公司在开发产品时,为了保证产品的生命周期延续性以及加快产品的更 快开发与推出,都会将其中可重用的部分提取出来作为基本库或者平台功能使用。事件处 理机制即为其中之一。所谓事件处理机制是指在程序正常流程过程中,在一些关键点上提 供产生事件,并通过激活事件的方式与第三方进行互动的机制。数据事件处理机制在事件 处理机制上更加专业化,其只关注数据对象,并针对数据对象更新操作(包括添加前、添加 后、修改前、修改后、删除前、删除后)产生数据事件并与第三方提供互动。
[0003] 现有的事件处理机制中用于响应事件的第三方可以有多个,大部分实现方式中多 个响应事件是以注册次序顺序执行。此时事件处理机制没有考虑到第三方之间的逻辑关 系,导致多个第三方无法进行协作工作,如图1所示。
[0004] 目前还没有有效的方案来解决上述问题。
【发明内容】
[0005] 本发明所解决的技术问题是提供一种程序实现的灵活框架,本发明将流程化的事 件处理过程与事件处理机制相结合,解决了第三方之间工作协调的问题。本发明可以丰富 事件处理机制的处理能力,为更加灵活的程序开发提供有力工具。
[0006] 为了解决上述技术问题,本发明提供了一种流程化的事件处理机制的改进方法, 包括:
[0007] Sl :事件生产者预定义产生的事件;
[0008] S2 :所述事件生产者在关键业务流程处生产所述事件;
[0009] S3:所述事件生产者使用流程化事件处理框架提供事件传递接口将生产的所述事 件传递给事件处理线程;
[0010] S4 :事件监听者对生产的所述事件通过事件监听器进行监听,并通过所述事件处 理框架提供的注册方式注册到所述事件监听器缓存中;
[0011] S5 :所述流程化事件处理框架的事件处理流程嵌入到关键业务流程中的事件传递 接口调用处;当每次产生新的事件并进行推送时,依据事件监听器缓存中的信息进行事件 运行。
[0012] 优选的,所述步骤Sl中,所述事件由事件标识和事件细节信息两部分组成;所述 事件标识是一个能够表示事件意义但是又全局唯一的字符串,在系统范围保证其唯一性; 所述事件细节信息用于存储与事件相关的数据信息,所述数据信息将传递给事件消费者, 事件细节信息结构可变,但需要满足流程化事件处理框架的要求。
[0013] 更加优选的,所述步骤S2中,所述关键业务流程为关键的程序动作;所述关键业 务流程包含数据对象增加前/后,数据对象更新前/后以及数据对象删除前/后。
[0014] 更加优选的,所述流程化事件处理框架包括:流程化事件缓存、流程化事件注册、 流程化事件处理流程和事件传递接口。
[0015] 更加优选的,所述流程化事件缓存是指:修改列表性事件监听器缓存为流程化事 件监听器缓存,缓存采用能够存储多种流程逻辑的数据结构。
[0016] 更加优选的,所述流程化事件注册是指:所述流程化事件处理框架在初始化时 会扫描事件注册存储区中的注册方式,所述注册方式包括:程序代码、Spring配置文件、 Properties配置文件和数据库事件信息存储表;上述方式支持一种或多种方式混合使用; 通过所述注册方式,读取到所有事件监听器描述信息,组合成流程化的事件监听器数据结 构,并存储到所述流程化事件监听器缓存中。
[0017] 更加优选的,所述流程化事件处理流程是指:基于流程化事件监听器缓存的事件 运行框架,支持顺序事件执行、条件事件执行、循环事件执行和条件循环事件执行的方式; 上述事件执行的方式通过链接、嵌套方式整合在一起,形成具有完善逻辑的流程化事件流 程来执行。
[0018] 更加优选的,所述事件传递接口是指:所述流程化事件处理框架提供给事件生产 者,通过事件传递接口将产生的事件传递给框架的所述流程化事件处理流程进行处理。
[0019] 更加优选的,所述步骤S5的具体过程是:
[0020] (a)获取流程化事件处理框架内置的事件运行起始流程,启动事件处理,并依照事 件监听器缓存的内容建立运行执行过程;
[0021] (b)运行第一个事件处理流程;
[0022] (C)运行完毕后检查下一流程监听器指针是否存在,
[0023] 如果已经存在则针对下一流程返回步骤b ;
[0024] 如果不存在则继续下面的步骤d ;
[0025] (d)执行流程化事件处理框架内置的事件运行终止流程,回收执行资源,返回执行 结果。
[0026] 其中,所述数据事件处理机制是一种提供数据对象更新过程中以事件方式提供额 外嵌入式操作的框架,例如在数据对象增加前可以通过事件机制进行额外的操作,甚至取 消数据增加。
[0027] 本发明与现有技术相比,具有如下有益效果:
[0028] 本发明提供了一种程序实现的灵活框架,将流程化的事件处理过程与事件处理机 制相结合,解决了第三方之间工作协调的问题。本发明可以丰富事件处理机制的处理能力, 为更加灵活的程序开发提供有力工具。
【附图说明】
[0029] 图1示例性的示出了现有的事件处理机制的流程示意图;
[0030] 图2示例性的示出了本发明的流程示意图。
【具体实施方式】
[0031] 为了更好的理解本发明所解决的技术问题、所提供的技术方案,以下结合附图及 实施例,对本发明进行进一步详细说明。此处所描述的具体实施例仅用以解释本发明的实 施,但并不用于限定本发明。
[0032] 在优选的实施例中,与图1进行对比,图2示例性的示出了经过改进后的本发明的 事件处理机制流程示意图;包括:
[0033] 步骤一:事件生产者预定义产生的事件;
[0034] 步骤二:所述事件生产者在关键业务流程处生产事件;
[0035] 步骤三:所述事件生产者使用流程化事件处理框架提供事件传递接口将生产的事 件传递给事件处理线程;
[0036] 步骤四:事件监听者对所述生产的事件通过事件监听器进行监听,并通过所述事 件处理框架提供的注册方式注册到所述事件监听器缓存中;
[0037] 步骤五:所述流程化事件处理框架的事件处理流程嵌入到关键业务流程中的事件 传递接口调用处;当每次产生新的事件并进行推送时,依据事件监听器缓存中的信息进行 事件运行。
[0038] 在更加优选的实施例中,所述步骤一中,所述事件由事件标识和事件细节信息两 部分组成;所述事件标识是一个能够表示事件意义但是又全局唯一的字符串,在系统范围 保证其唯一性;所述事件细节信息用于存储与事件相关的数据信息,所述数据信息将传递 给事件消费者,事件细节信息结构可变,但需要满足流程化事件处理框架的要求。
[0039] 在更加优选的实施例中,所述步骤二中,所