论文部分内容阅读
业务流程管理是企业管理和计算机领域的交叉学科,已成为近年来企业信息化关注的热点之一。业务流程管理对企业业务流程进行提炼,划分成多个活动,并建立相应的流程模型,将这些活动按照企业业务逻辑进行组织,再通过流程引擎实现流程实例的运转,完成业务流程自动化管理。然而,随着信息技术的迅猛发展,人们对于系统的快速反应能力需求迫切,每时每刻都会有海量数据在系统间传递,这些数据看似杂乱无章,事实上,如果能从中快速提取有效信息,并对其加以分析整理,将得到对企业决策有重大意义的信息。 本文设计了基于复杂事件处理的业务流程引擎,使用事件作为流程执行的触发条件,实时分析由系统中各种事件组成引的事件云,通过对事件的过滤、模式匹配,得到有意义的聚合事件。使擎更加符合人们的日常思维习惯,不仅可以完成一般流程的执行,还能实时收集分析流程执行过程中产生的事件。在事件存储到磁盘之前,根据预先定义的事件模式,实时持续的分析事件云,从而鉴别出新的关联业务,即复杂事件,并在毫秒(或更短)的时间内对这些复杂事件做出响应。 首先,本文分析了现有流程建模语言、国内外开源的流程引擎和复杂事件处理引擎的研究现状,详细介绍了业务流程管理和复杂事件处理的相关知识,并分析了业务流程管理系统中的复杂事件处理。 其次,对业务流程建模语言(Business Processing Modeling Notation,BPMN)进行多方面扩展,提出了一种支持复杂事件处理的流程建模语言(CE-BPM)。(1)为了与简单事件进行区分,提出一种事件分层方法。根据事件来源的不同,将业务流程中的事件分为0,1,2三层;(2)对BPMN的描述能力进行扩展,增加复杂事件和复杂事件处理网关两个表示元素,对其进行形式化定义,并给出图形表示;(3)为了分析CE-BPM,通过一个购物流程来说明用BPMN建模时遇到的问题以及如何用CE-BPM建模解决问题的。 然后,设计并实现了基于复杂事件处理的业务流程引擎。(1)给出基于复杂事件处理的业务流程引擎架构和详细设计;(2)抛弃了“状态驱动”的思想,使用基于有限状态机的“事件驱动”的算法作为引擎的核心调度算法,当特定事件发生时去触发业务流程的状态转换;(3)开发了相应的引擎原型,并通过运行购物流程来测试引擎的功能。说明引擎能按照预定义的事件模式发现流程运行过程中的复杂事件,帮助系统及时作出反应。 最后,对本文所做的工作进行总结,并指出不足和今后的研究方向。