5
关注BPM行业公众号: 关注公众号

BPM系统的自动层架构设计可视化开发的EAI技术

发布时间:2014/01/18 12:56  来源:www.bpmsoft.com.cn阅读量:24065

1 前言

    传统的EAI技术经历了三个阶段:数据层集成、功能层集成和代理层集成。这三种EAI技术都是通过协议转换和数据格式转换的方法来实现不同应用之间的集成,因此有三大共同特点:关注的是底层数据格式的转换;点对点的应用层的集成。以代码为中心的EAI业务开发模式。因而它们都存在着这样的弊端:关注数据格式的转换和点对点的集成使得只见树木不见森林,没有从流程的层次去认识EAI,同时也缺乏统一集中的集成管理和知识管理,从而不利于EAI业务的开发和维护;以代码为中心的开发模式使得开发不能直接反映商务流程,也使得EAI业务的开发和维护的成本和周期都太高。

    为了解决这些弊端,已经出现了许多新的EAI技术,BPM就是其中之一。BPM系统所关注的EAI中的流程,一切都是面向流程的。BPM采用流程图形化建模的方式来取代原有的代码开发模式,采用流程对流程的集成方式来取代原有的点对点的应用集成,从而从根本上解决了现有EAI技术中的弊端。

   

    BPM系统可以分为整合层、自动层和协作层。其中整合层和协作层都可以借用现在消息中间件中的系统目录层和代理层相关设计和实现,因此现在要设计实现的就是自动层了。为此本文立足于BPM的理论,设计了这样一个BPM系统自动层的架构。

2 BPM系统自动层的架构设计

    2.1 自动层架构概览

    自动层又可以分为两层:可视设计层和系统引擎层。其中可视设计层是设计阶段的路程图形化建模工具,它提供了一个图形化的建模工具让用户对自己的EAI业务流程进行建模,并生成相应的XML描述文件;系统引擎层是一个EAI工作流引擎,用于在运行阶段解析可视设计层设计的EAI业务流程。

    可视设计层是一个流程图形化建模工具,在该层要设计的就是图形化建模规则。EAI业务流程是由许多步骤组成的,每个步骤完成一件事情,在BPM中这些步骤定义为工作流元代EAI业务流程除了由步骤组成外,还有一些控制单元来控制流程的走向,在BPM中这些控制单元定义为流转处理。因此,在可视设计层中要设计的就是工作流元和流转处理,以及它们相对应的XML描述,系统引擎层将通过XML描述来解析流程。

    系统引擎层是用来解析可视设计层设计的业务流程的,在该层要设计的就是对流程的解析规则。对于工作流元和流转处理的解析规则是不一样的,因为工作流元是完成事件的,因此解析时只要调用处理事件的代码即可。但是流转处理则不同,它涉及到流程的走向,比如分支、循环等等,因此对它的解析就很复杂,本文将着重介绍对流转处理的解析规则。

    图1展示了本文设计的自动层架构,后面章节中将会详细解释这个架构的设计。


    2.2 可视设计层的设计

   

    如图1所示,在可视设计层中一共有三种工作流元和三种流转处理,下面对这六个基本对象给出定义,以及每个对象转换成XML语言描述的建模规则。

    定义1接收工作流元。接收工作流元是指EAI业务流程中接收消息的节点。接收工作流元的属性有:节点名称、接收消息类型、接收消息内容和接收接口。下面是接收工作流元的XML描述。


    定义2发送工作流元。发送工作流元是指EAI业务流程中发送消息的节点。发送工作流元的属性有:节点名称、发送消息类型、发送消息内容和发送接口。下面是发送工作流元的XML描述。定义 3消 息转换工作流元。消息转换工作流元是指EAI业务流程中转换不同数据格式消息的节点。消息转换工作流元的属性有:节点名称、源消息类型、目的消息类型和映射程序。下面是消息转换工作流元的XML描述。


    2.3 系统引擎层的设计

    在没有流转处理的连接时,工作流元之间的流转是单支顺序的,因此这也是一种流转处理,定义为默认的顺序流转处理,再加上本文定义的3种流转处理,一共有4种流转处理。本文将采用ECA规则来描述对流转处理的解析规则,见表1。


3 BPM系统的自动层建模举例


    在完成了对BPM系统的自动层架构的描述后,下面通过一个例子来展示自动层如何进行EAI业务开发。

    3.1 案例描述

    这里采用的EAI业务流程是一个自动采购的流程,具体过程如下:某公司将采购订单发送给供应商;供应商在收到采购订单后经过一番内部处理后发货,并将发货信息传回给该公司的库房部门和财务部门。这样就完成了一个自动采购的业务流程。

    3.2 BPM模式建模

    对整个业务流程的分析如下:

    接收到本公司的采购订单。

    将采购订单发送出去。

    接收供应商的发货信息。


    将供应商的发货信息格式转换为本公司的收货信息格式。

    将收货信息同时发送给本公司的库房和财务。

    从流程分析中可以知道,在这个流程中有6个工作流元和一个流转处理,6个工作流元分别是“接收采购订单(PO)”“发送(PO)”“接收发货信息”、“转换发货信息为收货信息”、“发送收货信息给库房”和“发送收货信息给财务”;一个流转处理是在发送收货信息时,要将收货信息同时发送给两个部门。得到了这些建模单元后,就可以在BPM系统的自动层中开发这个业务流程了。图2所示的就是在本太开发的BPM自动层原型系统中对上述流程的建模,图3所示的是建模完成后原型系统生成的XML描述。


4 小结

    图形化建模已是当今IT行业开发的一种趋势,对于EAI也不例外。本文对BPM系统的核心层— 自动层的设计,就是要实现用图形对代码的封装,转变传统的以代码为核心的模式为以流程为核心的新模式。从上面的例子可以看出,本文设计的架构不仅让EAI的开发具有用户容易掌握,开发周期短,开发效率高的优点,而且生成的XML描述文件也更易于系统间的交换和共享,能够满足EAI建模的要求,而且基于规则的执行系统也给运行系统提供了较大的灵活性。