《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > WFMS中自动执行分布式引擎的实现
WFMS中自动执行分布式引擎的实现
王 伟,张 钢
天津大学 计算机科学与技术系,天津300072
摘要: 介绍工作流管理系统中自动执行分布式引擎的实现及总体流程。
Abstract:
Key words :

摘   要: 介绍工作流管理系统中自动执行分布式引擎的实现及总体流程。
关键词: WFMS  分布式引擎  自动执行  XML  解析器

  随着网络技术和市场经济的发展,信息管理变得越来越重要。尤其是在企业管理中,由于资源的扩充,员工的增加,情况的变动,使企业时刻处于变化中,所以就需要有一种管理系统使得企业具有自适应和重配置的能力,于是工作流技术应运而生。工作流就是业务流程的计算机化或自动化,必须有一种对工作流进行管理和控制的工具,即工作流管理系统。工作流管理系统是一种能够完整地定义、管理和执行工作流的系统,这些功能通过一组软件的执行来实现,而这组软件的执行顺序由一种计算机化的工作流逻辑表示来完成。工作流是一项快速发展的技术,各种行业都在逐渐地采用工作流技术。其主要特点是过程的自动化处理,特别是对那些与IT应用程序和工具交互相关的过程进行自动处理。工作流技术正广泛用于保险、银行、法院和行政管理等环境。
1  FlowStep介绍
  FlowStep是一个基于Web的分布式工作流管理系统。主要由工作流控制台、XML文件解析器和工作流引擎三个部分组成。这三个组成部分部署于一个共同的分布式环境中。
  工作流控制台是FlowStep系统提供给各类用户的基于Web浏览器的管理界面。工作流控制台具备在任务表中显示、处理和删除任务项的功能。任务表中的各条记录对应着每一次实例化后某一手工型活动的实例,即任务。
  不管是使用建模工具,还是直接进行工作流程定义,都要生成XML文件,其中的每个任务都成为一个活动,被分解为步幅XML文件。最主要的作用是对当前要执行的任务的XML文件进行解析,从中取得这次任务的参数信息,根据这些信息,由引擎来执行当前任务。XML文件解析器所负责的工作应该是属于工作流执行服务的一个组成部分。
  工作流引擎是FlowStep系统的核心部分,直接对应着参考模型体系结构中的工作流执行服务部分,它的部分功能分给了XML文件解析器去完成。工作流引擎是过程定义的解释器,它是工作流执行服务的核心。其主要功能包括:解释过程定义;创建过程实例并控制其执行;调度各项活动,控制过程实例间的转换,包括串行或并行的操作、工作流相关数据的解释等;为用户工作表添加工作项等。
2  现有工作流管理系统的缺陷
  目前市场上很多工作流管理系统并没有实现真正的分布式引擎。集中式引擎已经过时,不能满足现代企业的要求,还有一些略带分布式性质的工作流管理系统,如:工作流引擎惟一存在于一台主机,流程处理器收到任务信息,根据任务类型,将任务分发给相应的处理引擎线程,这些引擎都存在于一台主机上,增加了服务器的负担。由于各个线程都在运行,随时准备接收任务,也使得系统变得更加复杂。
对于一个大型企业(或者是跨国公司),其销售部、研发部、客户支持部可能分布在不同的城市(甚至是不同的国家)。若有一个业务流程需要这三个部门协作完成,三个部门的相关资源都在自己的部门,则集中式的工作流引擎便不能完成这项工作, 因此工作流必然向分布式发展。
3  分布式引擎的概念和不足
  分布式引擎使用一组分布在不同节点上的工作流引擎共同协作来完成整个工作流实例的执行。每个工作流引擎完成其中一部分实例的执行,不同工作流引擎之间通过可靠的通信机制实现协作。分布式的工作流执行服务中,每个工作流引擎只控制过程执行的一部分,并与这部分过程中的活动所涉及的用户及应用工具进行交互。实现分布式引擎,企业就可以根据部门划分引擎,使得各个部门之间即合作又不互相干扰。
但是,目前的工作流管理系统WFMS中除了要实现分布式引擎,还需要实现任务的自动顺序执行。因为每个工作流程中都存在很多不同类型的任务,如图1所示。如果分布式引擎只是执行完相应的任务,再由主引擎继续分配任务给相应引擎,这样就增加了很多消息的传送,不但增加了流程执行时间,还给系统增加了复杂度,所以采用一种自动执行任务的机制是很有必要的。

4  自动执行分布式引擎的实现
  如图2所示,结合FlowStep举例说明自动执行分布式引擎的实现。对于一个企业来说,企业数据可能包含文档、人员和联系邮件,因此可以将文档管理、人员管理、邮件管理分为三个引擎分别放在client1、client2、client3三台主机上,各自执行不同的任务。在client0上设置一个master主控工作流引擎,用户使用建模工具所定义的工作流过程将统一以数据库的形式保存在服务器上,master工作流引擎也布置在这个服务器上,管理工作流定义数据库。建模得到的流程定义需要转换为XML语言表示的文件才可以被工作流引擎解释执行。若无建模工具,则直接由XML语言进行工作流程定义。

  在自动执行分布式引擎的实现中,消息传递是一个比较重要的机制。实现了分布式,就意味着除了用户与引擎之间外,引擎与引擎之间的消息传递变得比较频繁,FlowStep直接采用JMS的消息传递方式。
  Java消息服务(JMS)是SUN提出的旨在统一各种MOM系统接口的规范,它包含点对点(Point to Point,PTP)和发布/订阅(Publish/Subscribe,Pub/Sub)两种消息模型,提供可靠消息传输、事务和消息过滤等机制。JMS(Java Messaging Service)的工作机制为:一个发送者将消息发送到一个目的地;另一个接收者从这个目的地得到这个消息,该目的地充当桥梁的作用。发送者和接收者不需要知道对方的信息,只需要知道消息的目的地和消息的格式。JMS的目的就是要提供给消息系统用户一个固定的接口,与消息提供者无关。这样,客户端的应用程序可以在不同的机器和操作系统中使用。
  FlowStep采用的JMS消息传输是点对点队列方式,即消息从一个发送者发送到一个接收者。WebLogic服务器会充当消息服务器,在收到新消息后将其保存到一个文件中;消息的接收方没有必要一直监听消息端口,而是可以自由地完成当前的任务,直到队列中没有新的消息激活该模块为止。
  master工作流引擎主要用来记录各个执行工作流引擎的配置情况,并对执行工作流引擎的状态进行监控,另外还应具有故障处理的能力。需要注意的是master和slave工作流引擎必须具有对XML文件进行解析的功能,这样才能对任务进行识别并执行。
  当工作流程被定义的时候,主控工作流引擎解析流程XML文件,得到第一个要执行的任务,不同的任务由不同的标识符来表示。如果第一个要执行的任务是文档方面的(如图3所示), master工作流引擎解析得到<docmanage>后,将流程XML文件传递给client1的文档管理引擎,由文档管理引擎来执行。文档管理引擎内部根据需要也定义了子引擎,如文档编辑、文档处理、文档属性,分别标识为<docedit>、<doc>、<docpropertity>。文档管理引擎解析XML文件的过程中,识别到这些标识符之后,便交由相应子引擎来执行,一旦文档引擎识别到</docmanage>,则说明当前任务结束。继续识别到下一个标识符为<mailmanage>,于是向邮件管理引擎发送消息,并将流程XML文件传送给邮件管理引擎继续解析执行,一直执行下去,直到整个流程文件执行完毕,向master工作流引擎返回成功消息。中间如果发生错误,则向主引擎发送消息,由主引擎进行处理。

  图4显示的底层数据库主要用来存储各个引擎处理的数据。使用一个集中的数据库而不是在各个引擎上分别建立数据库,以便使引擎之间可以互相访问各自数据库并且方便数据库的维护。
 

5  总体流程
  (1)web浏览器提供一个可视化界面,使用户可以清晰地看到工作流的过程。
  (2)master工作流引擎先将得到的建模定义转化为XML文件(可以为直接的过程定义XML文件),然后根据解析得到的任务类型,将XML文件和任务分配到首先要执行的任务引擎。
  (3)相应引擎执行任务,执行完毕后根据下一个任务标识符将XML文件发送到下一个引擎执行。
  (4)每个引擎执行过程中都会访问底层数据库服务器,进行数据的读取和存储。
6  总  结
  随着经济的发展,企业对管理系统的要求也越来越高,自动执行分布式引擎的管理系统才是真正可以适应现代企业需求的。对于一个企业来说,能够快速方便的增加或者删除任务处理引擎是比较重要的。这样,随着企业机构及职能的变化,可以及时更新管理系统,快速投入使用,节约时间和成本,使得企业管理更加灵活。
参考文献
1   范玉顺,罗海滨,林慧苹等.工作流管理技术基础——实现企业业务过程重组、过程管理与过程自动化的核心技术.北京:清华大学出版社,施普林格出版社,2001
2   陈鹏飞,张钢,王庆节.工作流管理原型系统的设计与实现.  微处理机,2003;(5)
3   Tolksdorf R.Workspaces:A Web-Based Workflow Management System.IEEE Internet Computing,2002;(9)
4   张宏展,蔡宗琰,吴欣.实战J2EE与WebLogic Server应用开发.北京:电子工业出版社,2004
5   方美琪.XML及其在电子商务中的应用.北京:清华大学出版社,2003

此内容为AET网站原创,未经授权禁止转载。