APP下载

基于数据中间件的URAP整合工作流的通信研究

2017-03-30胡杰胡欣宇

物联网技术 2017年3期
关键词:工作流组件

胡杰+胡欣宇

摘 要:针对企业应用系统URAP平台与工作流系统集成中的数据通信问题,文中采用基于数据交换中间件技术的系统通信方法,降低系统之间通信的复杂度,提高整合系统的数据交换能力,有效解决了URAP系统与工作流整合后引起的无法通信问题,避免了集成对原URAP系统结构的破坏和代码的入侵。

关键词:数据中间件;工作流;组件;URAP

中图分类号:TP391 文献标识码:A 文章编号:2095-1302(2017)03-00-03

0 引 言

工作流技术指“业务过程的部分或整体在计算机应用环境下的自动化”。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述,主要用于分析、模拟、定义以及操作实现企业的业务过程,是实现企业业务过程管理和控制、过程集成、过程重组的核心技术,为实现某个业务目标,在多个参与者之间利用计算机按某种预定规则自动传递。其主要特点是使工作处理过程自动化、整合化、智能化,使人以及各种应用工具之间相互协调工作,实现数据整合和数据统计,消除信息孤岛,在恰当的时间执行正确的操作[1-4]。但目前的工作流产品还不能独立应用于企业,只有与相应的应用系统相结合,才能发挥更好的作用。当下应用系统的差异性和多样性使得工作流系统和应用系统难以实现平滑整合,往往因为方法不当导致系统高耦合,容易造成对原系统结构的破坏,降低了系统的灵活性和可扩展性,增加了维护难度[5]。

文献[6]提出了基于AOP工作流系统和企业信息系统的集成方法,通过采用AOP技术,避免了在集成过程中对企业原有应用系统的侵入,提高了应用系统的重用性。文献[7]提出了基于IoC模式的工作流与应用系统的集成方法,通过IoC容器转移组件间的依赖,在运行时动态注入,需要改变依赖时只需修改依赖关系描述文件,减少了硬编码数量,极大地提高了组件的重用,使整个系统的灵活性和可扩展性大大提高。

通用资源应用平台(Universal Resources Application Platform,URAP)基础业务平台是一个符合MVC模型的面向知识工程的多层服务构架的应用框架,是为解决应用软件开发过程中软件过程管理问题,软件质量问题,资源积累问题和软件集成问题,并为提高软件开发质量、软件开发效率,以便快速形成應用系统,使软件开发过程中的各关键部分标准化、规范化、可视化而建立的一套软件基础设施。随着企业的快速发展,迫切需要对业务流程进行有效控制和管理,目前,工作流技术是实现企业业务过程管理和控制、过程集成、过程重组且应用最广泛、最高效的核心技术。

参考文献[5-7]中提出的集成方法主要针对具体的企业信息应用平台,但对于特定通信方式的应用系统,直接嵌入工作流系统将导致系统间数据无法交互的问题出现,很难实现平滑通信。本文采用嵌入式集成模式实现工作流系统与URAP平台的集成,针对集成后系统间无法通信的问题,提出了一种基于数据交互中间件实现系统之间通信的方法,该方法对系统间交换数据的结构进行了封装,并采用统一的数据传输格式,提供了一种系统间数据交换的机制。

1 系统集成模式问题分析

根据应用系统和工作流管理系统的关系,目前可以将工作流管理系统分为嵌入式系统和自治式系统两大类。嵌入式工作流系统将工作流系统嵌入在应用程序中,通过应用程序调用WAPI(Workflow API)来实现流程控制,是流程控制和管理模块的基础构件[8];自治式工作流系统具有独立的数据库(DB)和消息中间件机制,将应用系统中所有的业务处理功能作为外部应用来调用。

在自治式工作流系统集成模式中,在工作流系统与业务应用系统的交互方式上,工作流引擎直接调用外部业务应用提供远程接口(如基于RMI,Web Service的业务接口),以远程调用方式提供WAPI[9,10]。自治式工作流系统的集成模式如图1所示。工作流引擎通过流程中的设定代理触发调用应用系统,应用系统通过WAPI访问和驱动工作流引擎。

自治式工作流系统自身就是一个单独的应用系统,如果不基于某个中间件技术,自治式工作流引擎必须自己实现网路通信处理、多线程同步等服务端技术,实现的技术复杂、成本高,集成能力受到代理方式的限制。结合自治式工作流系统集成模式自身的缺点和URAP平台自身的特点,本文采用嵌入式工作流系统集成模式。

嵌入式工作流引擎部署在应用系统中,不能单独运行,它作为应用系统的组件,用于控制企业流程的执行顺序和流程状态等,因此通过调用本地方法实现工作流集成,如图2所示。

(1) 组件扩展:通过调用工作流接口实现流程驱动并由流程组件扩展原有业务组件。显示组件访问特定流程组件,实现对已有系统增加工作流管理的功能。

(2) 工作流扩展:业务组件为工作流扩展中的最小功能点,由工作流引擎直接驱动工作流代理的流程组件。显示层组件直接访问工作流接口,适合面向流程的应用系统开发。

这两种扩展方式各有其优缺点,组件扩展适合业务组件不能确保都满足工作流原子的事务约定,而工作流扩展适合于设计按照工作流标准组织(WfMC)制定的标准系统。

针对URAP系统的特点采用嵌入式工作流系统集成模式组件扩展的方式,将工作流集成到URAP系统中,集成过程通过数据交换中间件实现系统之间的平滑通信,实现流程控制的自动化,支持企业定制和快速实施。

2 数据交换中间件技术研究与实现

2.1 数据交换中间件技术分析与研究

数据中间件是信息系统平台中用于封装及组织数据的组件,用于应用系统内各层之间以及各应用系统之间的数据传输及交换[11]。Udata是URAP平台和工作流系统采用的统一数据传输结构。该数据结构对系统间交换数据的格式进行了封装,为程序间数据交换提供了一种机制和标准,是应用平台与工作流系统运作的通信基础;系统自动实现封包解包工作,完全屏蔽了底层数据的交换细节,开发人员不用关心具体的数据交换机制,只需把精力集中于业务数据的组织,这样便实现了数据交换的模块化和灵活性。JSP前端页面与Service后台应用间交互、后台应用之间数据交互均采用数据结构为Udata的标准数据交换,如图3所示。

一个Udata由属性区和若干数据块区(UdBlock)组成,在属性区可以设置Udata的相关属性。每个数据块区(UdBlock)相当于一个按行列组织的二维数组,以行号和列名为关键字检索数据。每个数据块的列信息由独立的UdColumn对象描述。每个数据块有自己的属性区,可以设置该块的属性信息。数据交换中间件由标准属性区、扩展属性区及数据块集合区构成。标准属性区以键/值对形式存放数据集的标准属性,只有统一信息系统平台定义的数据集标准属性才能存放在标准属性区,用户自定义属性(即扩展属性)无法存放在该区中;扩展属性区以键/值对形式存放用户自定义的扩展属性;数据块集合区,存放数据块集合。

数据交互中间件结构图如图4所示。

数据块是数据交换中间件中用于组织类似表结构数据的单元,数据块由标准属性区、扩展属性区、列定义区及数据区构成。标准属性区以键/值对形式存放数据集的标准属性,只有统一信息系统平台定义的数据块标准属性才能存放在标准属性区,用户自定义属性(即扩展属性)无法存放在该区中; 扩展属性区,以键/值对形式存放用户自定义的扩展属性; 列定义区,存放数据列定义集合; 数据区,存放数据行(即具体的数据)集合。

2.2 数据交换中间件的实现

Udata主要包含Udata、UdBlock、UdBlockMeta和UdColumn四個对象,对象间的相互关系为:一个Udata对象包含若干个UdBlock对象;一个UdBlock对象代表一个数据块。其中包含一个UdBlockMeta对象用以描述该数据块中相关数据的列信息;包含一个list对象描述该数据块中的所有数据。list中的每一行数据以Map结构表示;一个UdBlockMeta对象代表列的集合。用以描述UdBlock对象对应的数据块的所有列信息。其中包含若干个UdColumn对象;一个UdColumn对象代表一个列。用以描述数据块的具体列信息。

根据Udata数据结构的特点,平台采用三段式规则对一个数据进行存取、传输和解析:blockId-rowNum-columnName(指定块名-指定行号-指定列名) 。数据交互中间件Udata部分接口如图5所示。

按照标准的MVC模式以及目前主流的J2EE开发框架,一般分为JSP,Service,Dao三个层次。JSP前端将数据提交后台会根据相关约定规则自动封装成Udata数据结构并交给相应的应用程序进行处理,应用程序将处理完成后的数据再次封装为Udata格式的信息返回前台响应,前台根据Udata格式的信息自动渲染成相应的响应页面。Service属于后台,主要功能是对外界提供所有函数的input与output参数封装为Udata数据格式。通过Udata数据结构来规范Service的input与output操作,有利于应用系统对Service的集中灵活调度,避免用户花费更多的精力在Service的内部逻辑中。嵌入式集成系统层次结构如图6所示。

开发者可以利用平台提供的丰富页面套件及标签库完成JSP的编写。

JSP页面交互的数据统一约定为Udata格式,方法的输入参数和返回参数均以Udata对象作为标准,例如:

Udata info = (Udata) request.getAttribute(“id”);

public Udata jobCreate(Udata Udata); //根据传入的信息,创建任务

public Udata jobExecute(Udata Udata); //根据指定的任务信息,立即启动任务的执行

public Udata startACParamJob(Udata inInfo);//根据传入的作业信息启动其执行

在JSP页面中引入urap.core.ei.*和/tlds/EF.tld标签就可调用数据交换中间件中的方法; Service是使用URAP时应用关注的主要部分。开发人员通过编写Service来实现业务逻辑。

public class ServiceEE11 extends ServiceEPBase {

public Udata query(Udata inInfo) {

//…… 业务逻辑……

}

}

其设计与具体业务关系极大,具体的划分方法由设计人员自行决定,但划分的基础不可超过本模块的边界。在项目中,若无例外情况,则Service的划分和服务范围可以模块或页面为单位,提供一个与“界面功能代号”对应的Service,进行页面的初始化载入处理。对Service类中处理页面功能的方法和进行业务交互的方法的编写要求是:方法的输入参数为Udata对象,输出参数为一个新的Udata对象。平台提供了一个通用的Action(DispatchAction),页面端的所有请求都可以通过DispathAction进行服务调用转发,它将页面提交的数据自动组织成一个Udata对象,同时根据指定的ServiceName和MethodName动态调用相应的业务服务方法。在一般情况下应用模块无需专门设计Action,只需调用DispatchAction即可。public Udata initLoad(Udata inInfo) {…}接口调用适用于项目间调用和项目内部一级模块间的相互调用,接口交互的数据统一约定为Udata数据格式,接口方法的输入参数和返回值类型均以Udata数据对象作为标准,调用方法通过指定的svcName(服务名称)和mthdName(方法名称)进行,采用SOAMng.call函数调用,被调用的函数采用设置Udata数据格式返回值的函数通知主调函数,由主调函数根据返回Udata数据格式的状态码和自身的业务逻辑进行事务处理。

3 结 语

本文针对工作流系统与URAP系统集成后无法正常通信的问题,提出一种基于数据中间件URAP平台整合工作流的通信技术。该技术采用统一的数据传输结构Udata,对系统间数据交换的结构进行了封装,实现了与URAP平台的良好通信,克服了系统间不能平滑通信的弊端,优化了系统结构,提高了通信效率,促进了URAP平台中各模块之间的交互和信息共享。

参考文献

[1] WfMC.The workflow reference model[Z].1999.

[2] ZHOU Jian-tao, SHI Mei-lin , YE Xin-ming.State of arts & trends on flexible workflow technology[J].Computer Integrated Manufacturing Systems,2005,11(11):1501-1510.

[3] Construction Research Congress, West Lafayette, Indiana, United States: 2012[Z].

[4]侯志松,余周,馮启高.工作流管理系统开发实录-基于JBoss JPBM实现[M].北京:中国铁道出版社,2010:196-246,284-297.

[5] C Kahraman.Research on the realization method of workflow engine in enterprise information management[J].Journal of Enterprise Information Management, 2013,24(4): 380-400

[6] LI Qing,WENJing qian,ZHAOMeng . Research on AOP—based integration of workflow system with enterprise information systems[J].Computer Integrated Manufacturing Systems,2006,12(3):401-406.

[7] ZHAO Hong-yi, MENG De-en. Research and design of workflow system integration based on SOA[J]. Modern Electronics Technique,2012,35(12):29-32.

[8] MUEHLEN M.Workflow classification:embedded&autonomous workflow management systems[Z].

[9]何建校.基于J2EE的嵌入式工作流引擎[J].微计算机信息,2006,22(20):28-30.

[10] Christoph Moenninghoff, Lale Umutlu, Christian Kloeters, et al. Workflow Efficiency of Two 1.5 T MR Scanners with and without an Automated User Interface for Head Examinations[J].Academic Radiology,2013,20(6):721-730.

[11]陈锦平.通信层数据交换中间件设计实现[J].计算机工程与设计,2013,34(3):955-959.

[12] Ao Limin, XD ZHU, W ZHOU.Integration of Workflow with Application System Based on Inversion of Control Pattern[J].Computer Engineering,2009,35(18):69-71.

猜你喜欢

工作流组件
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
桥梁组件搭配分析
基于工作流2.0的智慧教室设计与研究
工作流在电力生产管理信息系统中的设计和应用
风起新一代光伏组件膜层:SSG纳米自清洁膜层
16%——Manz再度刷新CIGS光伏组件转换效率世界纪录