东方易维
 


 
可自管理的分布式工作流引擎的设计与实现 
  
文/辛 鹏·北京东方易维软件有限公司  
   



    摘要:针对当前企业和政府对分布式工作流应用的需求趋势,给出了一个基于JMX(Java Management Extensions)-Java管理扩展框架和Observer观察者模式的可自管理的分布式工作流引擎(Self-Management Distributed Workflow Engine)的设计与实现。在该实现中以观察者模式作为主控引擎与各个执行引擎进行分布式协作的实现机制。利用JMX  Notification Model(JMX通知模型)和JMX Timer Service(JMX时间服务)实现观察者模式的异步特性。主控引擎充当目标对象,所有的执行引擎充当观察者并关注主控引擎的状态改变。主控引擎的调度机采用轮转法为所有的实例活动动态分配执行引擎。执行引擎通过在启动时自动注册到主控引擎,关闭时自动从主控引擎注销,实现了整个系统的可自管理性,而以工作流命名空间(WorkflowNameSpace)的形式对工作流相关数据的封装和EJB容器提供的良好的事务特性,保证了整个系统的可靠性。 
 
    关键词:java管理扩展框架;观察者模式;分布式工作流引擎  

    文献标识码:A   中图分类号:TP391 
  
1 引言 
  
    工作流技术是实现企业业务过程建模、业务过程仿真分析、业务过程优化、业务过程管理与集成,从而最终实现业务过程自动化的核心技术[1]。早期的工作流应用系统都是集中式的,即由一个工作流引擎去完成整个流程实例的执行。随着计算机和网络技术的发展更加迅速和成熟,特别是Internet 应用日益普及的情况下,现代企业和政府的信息资源越来越表现出一种异构、分布、松散耦合的特点,信息共享、资源整合、协同办公已成为当前众多企业和政府的共同需求,而随着EJB、RMI、Web Service等分布式技术的日益成熟,分布式工作流的研究已成为当前众多组织和厂商的共同方向。 
  
1.1 分布式工作流引擎概述 
  
    “分布式工作流引擎”的概念是相对于早期的集中式工作流引擎而言的,即整个工作流管理系统只有一个核心引擎,这个核心引擎负责解析工作流的流程定义,将工作流定义加载为运行时定义,然后调度和监控流程中每个活动的执行。对于人工活动结点,负责为参与者生成相关的工作项,对于自动活动结点,负责调用外部的具体应用(如企业中的HR、CRM等应用,或者是执行某项操作的一个JavaBean)[2],这种集中式的工作流管理系统由于主要的负荷全集中在一个工作流引擎上,因此在可扩展性、健壮性以及吞吐量等方面都不能满足企业执行大规模复杂应用的需求,尤其是当基于此集中式的工作流引擎的应用同时被大量用户访问时,将有可能导致工作流服务器的过载而瘫痪[3]。 
 
    所谓分布式工作流引擎是指采用一组分布在不同节点上的工作流引擎来共同协作完成整个工作流实例的执行。每个工作流引擎负责完成其中一部分活动实例的执行,不同的工作流引擎之间通过可靠的通信机制实现协作[4]。通过分布在不同网络节点上的多个工作流引擎的协作来运行工作流流程,可以明显改善集中式工作流引擎的性能瓶颈问题。 
  
1.2  研究现状 
  
    在分布式工作流的研究领域,以IBM公司的基于“持久消息队列”、瑞士苏黎士大学的基于“事件驱动”和美国达特茅斯大学的基于“可移动代理”的分布式工作流系统较具典型性和可行性[1]。 
基于“持久消息队列”的分布式工作流―Exotica/FMQM(FlowMark on Message Queue Manager),以“消息传送”为实现机制。执行节点接收到消息后,执行当前活动,执行完当前活动后,根据当前活动的输出连接弧向其它节点发送消息,从而推动整个过程实例的进程。 

本新闻共9页,当前在第1页  1  2  3  4  5  6  7  8  9  


 
 
北京东方易维软件有限公司@版权所有 建议使用1024*768分辨率