业务活动监控的BAM与企业应用集成的关系
BAM是建立在集成平台基础上的,它将事件捕获引擎嵌入到集成平台之中,随时捕获异常事件。集成是BAM 的基础,如果没有集成,那么BAM 必须在每个应用系统中都嵌入一个引擎,每个引擎都要随时提供信息。考虑到如今众多企业信息系统的技术架构、规模及用途不一,只有借助目前日臻完善的集成技术才有可能把所有这些迥然不同的信息集成起来用于实时分析。企业有了集成平台,不仅使BAM 系统的实施费用更低,而且使其运行速度更快。并且现在的大中型企业里至少都会有几十个,甚至上百个应用系统,如果其中的某个引擎出现故障,根本无法及时发现,并且检查也很繁琐。集成平台将所有的应用系统联系起来,所有的信息都要流通于这个平台,那么只需要一个引擎就可以捕获所有的信息,而且也便于管理。在该平台上同时集成了业务流程管理(BPM),BAM 可以实时的调用它。同时BAM 将异常事件通报给信息门户,BPM 将也将异常事件的处理结果告知信息门户。信息门户将所有的信息在portal上进行反馈,并将紧急信息向相关人员报警。BAM 模块在整个系统中的位置如图1所示。
图1:BAM 模块在整个系统中的位置
BAM 系统的结构在BAM 的实时分析模块中集成了规则引擎,它可以实时调用规则库中的相应规则,来判断当前的事件是否为异常,如果为异常就将错误信息报告给信息门户。因此用户可时时监控流程,对异常事件做出迅速的反应。当前的BAM系统应该具备如下几个基本的功能: 事件捕获、信息加载、模式匹配和分析、智能反馈等,由此我们得出了BAM系统一个初步的技术架构,如图2所示。
图2:BAM 模块基本架构
也就是说,一个BAM 系统主要应该由以下4个部分构成:① 事件捕获引擎;②上下文查找;③ 实时分析;④报告引擎。其中事件捕获引擎嵌入在集成平台中,对通过平台的所有的事件进行过滤、收集;上下文查找提供与异常相关的实时和历史信息;实时分析调用规则引擎来分析事件的性质;而报告引擎将信息发送到信息门户。事件捕获引擎和报告引擎是BAM与外部系统的接口。
业务活动监控系统的工作原理BAM 是集成应用平台的一个组成部分,BAM 模块的事件捕获引擎就是嵌入在集成平台中。它可以对所有经过的事件进行收集和过滤,并将它们标识优先级后存入BAM的数据存储区。在数据存储区中有~ 个优先级队列,而上下文引擎将对队首的事件进行归类、划分,并提供其对应的应用系统或部件的相关信息。然后将其送入实时分析模块的事实库,同时将其从数据存储队列中删除。实时分析模块中的应用程序按照预定的频度扫描事实库,如果有待处理事件就立刻通知规则引擎。规则引擎被触发后迅速测试工作区中的数据对象,从规则库中发现符合条件的规则,生成规则的执行实例。实时分析模块的结构如图3所示。
事件经过规则引擎的模式匹配器匹配后,如果正常就丢弃事件,等待应用程序的触发;反之就将异常事件提交给BPM进行处理,并且将错误类型及性质提交信息门户发布。事实库中可能包含数千个事实,规则库中的每条规则又可能有2、3个前提,规则引擎必须在很短的时间内将事实与对应的规则匹配起来不是一件容易的事。不过这方面的技术已经非常成熟了,很多模式匹配器都可以在极短的时间内完成匹配。
图3:实时分析模块组成
为了提高系统的效率,规则引擎采用基于Pete算法的Java规则引擎。Pete算法是在规则匹配中利用推理机的时间冗余性和规则结构的相似性,通过保存中间运算来提高推理效率的一种模式匹配算法。
业务规则存储在规则库中,完全独立于数据和程序。规则库可以依托于文件系统或数据库管理系统,文件格式一般符合可扩展标记语言(XML)的元数据交换(XMI)标准,遵循与元数据表示和交换相关的规范。