基于Web Service的交互式工作流管理系统的设计

(整期优先)网络出版时间:2019-11-21
/ 2

摘要 针对目前工作流管理系统跨平台集成能力和流程描述中交互能力不足的缺陷,设计了一个基于Web Service的工作流管理系统。该系统简化了流程模型,支持可视化建模,具有良好的交互性。实际应用证明,在提高流程描述能力、降低建模复杂度、增强跨平台集成能力方面有较明显的优点。

关键词 Web Service,可视化,交互性,建模,工作流管理系统

1 引言

  工作流管理是一种正在快速发展的事务管理技术,其主要目的是提高工作效率,规范业务流程。当前,它主要应用于政府、银行、保险等企事业单位的OA自动化。主要特点是流程自动化处理和人机交互结合。目前,市场上的工作流管理系统一般基于J2EE或.NET平台,系统耦合过于紧密,跨平台集成能力不足。此外,流程模型过于复杂,流程建模可视化差,交互能力有限。

  本文根据WfMC(Workflow Manager Coalition工作流管理联盟)的定义,结合实际的开发需要,简化了复杂的工作流模型,采用Web Service技术框架,设计和实现了一个工作流系统MyWorkflow。它可视化地定义过程、活动、角色和跳转,支持活动节点图标拖放,简化了建模复杂度,并且通过Web Service方案,能方便的集成到不同系统平台,可适应异构环境的高度集成和灵活部署。

2系统设计与分析

2.1体系结构

  体系结构采用了表示层,业务层和数据持久层三层结构。体系结构(如图1)。

1022495270.gif

  表示层为用户提供工作流流程建模界面和监控界面,流程建模界面可以交互地完成用户工作流流程的定义描述,启动和监控界面则提供启动工作流实例和监控已运行的工作流实例的视图。业务层则实现了系统的流程模板描述服务和工作流引擎。持久层完成相关数据的存储,包括流程定义数据,角色和权限数据,实例运行数据和实例历史数据。

  工作流引擎作为业务层的核心,负责对过程定义进行解释,控制过程实例的创建,激活,挂起,终止和负责过程实例状态的转换,控制活动实例间的转换,对工作流的执行进行导航,监督工作流过程实例和活动实例的执行,记录工作流的历史事件和管理工作流的事务。其主要由以下模块组成:工作流模板列表服务模块,工作流实例监控模块,角色和权限管理模块,消息事件管理模块和历史记录管理模块。各模块主要功能如下:

  (1)工作流模板列表服务模块:负责从后台数据库中读取所有的已导入的工作流流程模板,并将选中的流程模板以mpg图片格式展示给用户,使其了解所选的业务流程。

  (2)工作流实例监控模块:这是引擎的核心,负责工作流实例的启动时,运行时,休眠时和终止时的运行数据的入库和导出。

  (3)角色和权限管理模块:这是一个对外的接口,负责定义系统的角色和相应的权限,同时可以让用户在业务流程中选中参与角色的成员,并验证角色成员的待做事项。

  (4)消息事件管理模块:负责通过消息队列来完成和维护工作流实例运行时的相应的消息(如:电子邮件)发送,同时也让用户了解业务流程的运行情况。

  (5)历史记录管理模块:负责记录系统相关历史信息,尤其是工作流实例运行时过程执行信息,防止工作流实例的崩溃,以便使崩溃的工作流实例得到恢复。

2.2 基于Web Service的实现方案

  为了满足快速部署,高效率,适应复杂的异构环境,业务层采用了Web Service构件技术和框架。Web Service是下一代可编程网络的核心,可用来在Internet范围内方便的表现和使用对象,与传统的组件技术不同。通常,Web Service位于网络服务器后端,客户生成的SOAP请求会被嵌入在一个HTTP POST 请求中,发送给网络服务器。网络服务器再把这些请求转发给Web Service请求处理器(Request Handler).请求处理器的作用在于解析收到的SOAP应答后,以HTTP应答的方式把它送回到客户端。这种系统能将众多的应用程序一并进行集成,大大提升了应用系统的耦合性,安全性和良好的异构性。

  Web Service的实现方案比较多。其中Apache Axis是一种开放源代码的实现方案,它为开发web服务提供了基于Java的SOAP实现方案。为了实现web服务。它采用了兼容的标准和协议,利用SOAP运行时环境和基于Java的API框架实现Web服务的核心组件。系统采用了WSDL1.1(Web Service 定义语言)规范,通过Tomcat Axis方案来实现引擎中核心功能模块。系统的每个功能服务是由描述服务的wsdl,部署服务的wsdl和相应的模块类组成。系统采用Systinet WASP中的Java2WSDL和WSDL Compiler开发工具, 框架如图2所示。

1022499626.gif

  系统的Web Service服务端采用Java语言,Web Service客户端可以采用不同的语言。这样使得系统能适应不同的客户端,从而可以快速、方便和灵活地集成到现有的不同平台系统。

2.3可视化交互式建模

  建模主要是详细描述具体的业务中流程模型。WfMC统一了工作流管理系统中所涉及到的名词术语,并给出了核心元素过程的概念。过程是业务过程的形式化描述,用来支持工作流管理系统的建模和执行的自动化。过程包括一系列活动和活动间的关系、过程的起始和终止信息,以及有关个体的信息,如参与者、有关的应用和数据等。

  目前,多数工作流系统采用直接web的建模的实现方式,缺乏拖放功能和良好的可视性。MyWorkflow的工作流流程建模设计采用了基于Applet的可视化B/S结构,主要完成过程中的活动(Active)和连接(Link)等核心元素的定义。整个流程建模用支持拖放的图标表示活动节点,箭头表示流程标,使得用户可以随意安排界面。最后用户用本地XML文件保存所定义的流程业务,通过在线上传和导入XML文件来完成流程模板的入库。整个建模界面分三部分:工作区、活动节点或转移的详细信息设置区和流程视图区(如图3)。

1022497359.jpg

图3 建模界面

3 实例

  绍兴文理学计算机系办公平台是基于.Net平台,已经运行两年。根据实际需要,我们在保留原系统结构和资源的前提下,进行了系统工作流功能的扩充。将MyWorkflow集成到原办公平台上。整个操作流程如下:

  (1)用户通过登陆后,可以根据具体的工作业务选择流程模板。

  (2) 在选择相应的模板后,系统启动该工作流程的一个实例并根据模板自动进行处理。例如,申请人员选择了购买审批流程(如图2)模板后,则系统产生相应的流程实例。

  (3)审批人员可在待做栏中发现需处理流程业务,根据流程模板描述,进行相应的处理。系统将会以邮件形式把处理结果告知申请人员。图4给出了系办主任处理该购买审批流程的处理界面。

1022491135.jpg

图4 处理界面

4  结语

  本文系统地介绍了一个基于Web Service的技术架构的工作流系统MyWorkflow的体系结构和核心设计方案。该系统面向应用需求,遵循WfMC标准并结合网络服务特点,具有良好的交互性、耦合性和集成性。

  下一步工作,系统将采用XML配置文件,发挥Java语言的优势,达到类的动态装入和加载,使得用户能够方便地选择核心业务逻辑模块和数据库,从而实现系统的高可重用性和灵活性,以及非编译扩展性。

参考文献

[1] 赵文.工作流元模型的研究与应用. 软件学报[J].2003(06):1052.

[2] 张涛,战洪飞,孙静,等. 基于Web 的企业工作流管理系统的研究[J ] . 计算机应用研究.2002 (05 ):130.

[3] “The Workflow Reference Model” .1995-01. http://www.wfmc.org

[4] “WF-XML2.0 XML Based Protocol for Run-Time Integration of Process Engines” .2003-10. http://www.wfmc.org

[5]“Workflow Process Definition Interface—XML Process Definition Language” .2002-10. http://www.wfmc.org

[6]“Workflow Patterns” .2004-4. http://www.huihoo.rog/jfox/jfowflow/workflow_model_fox999.pdf

[7] (美)David A. Chappell Tyler Jewell. Java Web Services. 北京:中国电力出版社. 2003-3-1