您现在的位置是:首页 > 行业 > 制造 >

基于SOA的工作流管理系统设计

2012-10-16 15:25:37作者:来源:

摘要本文设计了基于SOA的工作流管理系统。首先,对SOA服务与工作流进行了整合,然后,设计了系统工作流引擎,通过工作流管理引擎调度Web服务,实现了工作流的最优化。...

  0 引言

  工作流管理技术是一种正在快速发展的技术,正在被越来越多的企业所应用。企业的日常活动中,约有70%是属于流程类活动,如订单出货流程、生产流程、企业内各类申请表单、公文签审、信息传递与签收、公司各类支出与收付等。由于在Internet上开展电子商务的廉价与方便性,促进了企业之间的交流,扩大了企业视野,在这种环境下,工作流管理系统就暴露出了很多不足之处:缺乏柔性,不能及时响应变化和相互之间缺乏互操作等,这些显然不能满足现代企业业务流程管理的要求。

  面向服务体系结构(Service-Oriented Architecture,SOA)的出现,为解决上述难题提供了契机。SOA是为解决在Internet环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件架构。把SOA加入到工作流系统中,可以很好地解决现有工作流管理系统的柔性缺乏、不能及时响应变化和相互之间互操作性差等缺点,极大地提高了工作流系统的应用范围,促进工作流管理系统的发展。因此,研究并实现基于SOA的工作流管理系统具有重要的现实意义和广阔的应用前景。文中设计开发的工作流管理系统应用于某电力公司设备管理系统,实际应用表明,设计的工作流管理系统改善了电力公司的内外部流程,提高了工作效率,达到了预期的效果。

  1 基于SOA的工作流系统设计

  1.1 工作流系统结构设计

  设计的工作流系统结构如图1所示。

  

工作流系统结构示意图

 

  图1 工作流系统结构示意图

  其中,流程定义存储服务负责提供保存流程定义文件的服务;流程实例存储服务保存流程实例状态数据;工作流引擎服务负责从流程定义存储服务处获得流程定义,解释后执行,并通过流程实例存储服务保存流程实例数据,通过调用其它服务完成流程活动,与其它引擎服务协作可进行流程迁移或并行执行,用户则通过用户界面与工作流引擎进行交互。

  在基于SOA的工作流管理系统中,工作流的使用不再限于它的位置,任务由服务完成。只要为服务定义标准接口,它们就能被任何依据标准的应用访问到。由于一个流程不再限制于工作流引擎的位置,流程能够在任何地方设计、存储和执行。用户能够选择分布在网络环境中的任何可获得的工作流引擎服务来开始执行一个流程。在执行过程中,可以在不同引擎服务间迁移来达到负载平衡,降低不同应用和引擎服务间的通信费用,易于从错误中恢复,甚至一个流程同时在多个引擎服务上执行,以获得更高的效率。可见,基于SOA的工作流管理系统具有分布、高效、容错、负载平衡等优点,非常适应复杂信息环境的需求。

  1.2 系统模块及接口设计

  整个工作流系统由建模工具、客户端、模型分析、工作流引擎、SOA服务管理模块组成。建模工具用来进行工作流过程建模。模型建立后使用模型分析工具对模型进行完整性、约束、时间可行等方面的检查,检查后在数据库中建立对应记录。工作流引擎将数据库中的记录实例化。客户可以使用状态查询某个实例的状态,并可以控制或修改相应的流程。客户使用浏览器作为客户端,通过工作流引擎提供的功能完成对应的功能。SOA服务管理可细分为Web服务管理和Web服务注册。Web服务管理主要是将已有的Web服务组合,形成从工作流活动到Web服务的对应关系,供客户使用。Web服务注册主要是对Web服务进行注册,并由Web服务管理模块进行管理。

  工作流联盟(Workflow Management Coalition,WFMC)给出了5类接口,结合本系统的需要,将其5类接口细化为6类接口,如图2所示。

  

接口示意图

 

  图2 接口示意图

  (1)接口1:工作流服务和工作流建模工具。

  (2)接口2:工作流服务和客户应用之间的接口,客户端使用浏览器,而客户应用使用Web服务技术,所以,可以使用Java提供的标准接口。

  (3)接口3:工作流引擎和直接调用的应用程序之间的接口,即Web服务与工作流引擎之间的接口。

  (4)接口4:工作流管理系统之间的互操作接口,细化为对数据库操作的事务。各模块并不直接调用,使用对数据库的事务技术来进行互操作。

  (5)接口5:工作流服务和工作流管理工具之间的接口,细化为状态查询与数据库的实时读操作。

  (6)接口6:单个Web服务与Web服务管理系统之间的接口。

  其中,接口1为在不同物理或电子介质之间传递过程定义的信息提供了交互的形式和API调用;接口2定义了通信建立、工作流定义操作等功能;接口3激活应用程序的API函数应覆盖的几个方面的功能;接口4通过提供大量完成工作流执行服务之间需要的API来实现工作流引擎互操作,例如,2个工作流执行服务之间的直接调用或者通过网关函数;接口5主要实现对工作流的管理和监视;接口6实现工作流活动自身的管理,实现业务重组之类的功能。
(本文不涉密)
责任编辑:

站点信息

  • 运营主体:中国信息化周报
  • 商务合作:赵瑞华 010-88559646
  • 微信公众号:扫描二维码,关注我们