learun 阅读(169) 评论(0)

 

力软敏捷框架开发工作流引擎设计
1、前言
提到工作流很多人都会想到OA,AO就是典型的工作流应用,但是工作流并不仅仅局限于OA,工作流应用该算是基础框架软件,主要用于流程的重组和优化,它有广阔的应用领域。在C#下我们自己研发工作流引擎等,在.net下却几乎找不到令人满意的工作流引擎可用,当然不是说.net下没有开源的只是有些国产开源的但看了代码后就一点兴趣都没有,且不说代码质量如何,还引入了一大堆东西,想在项目中应用也是非常困难。鉴于此我还是决定自己开发一款.net工作流引擎。
2、工作流引擎设计
 工作流引擎主要解决复杂业务流程灵活定制和方便更改的问题。引擎的作用相当于一个业务流程管理器,它以一个软件组件(或者构件)的形式运行在使用它的业务应用中。在OA系统中使用工作流引攀技术,可以实现业务流程与应用程序的分离。OA系统通过工作流引擎集中管理业务流程包含的所有过程,引擎为业务流程提供执行环境,并驭动业务流程中各个过程的自动运行。所有的业务流程都在引擎的管理、监控卜运行。当业务流程变更时用户不必修改应用程序,只修改业务流程模型就可以解决流程变更的问题,从而实现了业务流程的灵活定制。
2.1 引擎设计思路
  工作流引擎的设计是从够用、灵活和低成木的设计原则出发,不追求工作流引擎的功能的完备和复杂,只实现其中必不可少的功能和特征。基于上述设计原则,引擎的设计主要从以下几个方面考虑:
  (1)引擎支持顺序、分支、并发、循环、同步、异步流程的流转;在分支上可以定义条件,实现按条件自动流转,条件转移之间还可设置逻辑关系;在并发流转中,多个活动节点可以同时激活。
  (2)用户之间相互协作,交换数据,从而提高工作流引擎处理业务流程的灵活性和适用范围。
(3)如果引擎状态异常,可对引擎进行重新启动,如果重新启动几次后仍然异常,发信号给备份服务器启动引擎,加载原有引擎工作状态,保证关键业务不被中断。
 2.2 引擎功能设计
  工作流引擎作为OA系统的核心部件,其主要功能包含:解释流程定义的业务模型;创建、解释、执行和控制流程实例,管理其运行过程;根据流程定义和工作流相关数据为流程实例的运行进行导航;根据任务之间的关联和任务的执行条件,决定并行或串行执行后续任务;确定任务项目,实现用户意图,提供接口,支持用户交互;与外部资源交互,维护工作流控制数据和工作流相关数据;监控流程实例的运行情况,对异常的流程进行处理。


工作流引擎内部功能结构如图1所示。引擎是流程处理的调度中心和资源分配中心。采用XML语言把实际业务流程描述成计算机可识别的工作流程,XML文档的内容包含预先定义好的任务,以及任务执行顺序,执行规则,执行角色等信息。控制中心负责接受用户发送的任务请求,根据任务类型、任务优先级调用相应的处理模块完成与本次任务相关的操作并将结果返回;流程解释器负责完成流程文件的解析,然后把解析出来的数据存储到数据库中;任务管理负责与流程参与者交互,通过任务管理对任务表进行管理、控制、维护:任务指派负责根据任务的类型确定执行此任务的群体;流转控制负责读取流程实例转换的条件,确定流程实例的状态;路由选扦负责辨别流程实例的状态,选择下一个执行的任务;异常处理负责监控系统内流程实例的运行情况,通过人工和白动处理相结合的方式,使工作流重新恢复到正常流程或预期状态。

力软工作流引擎结合众多行业客户经验,采用可视化开发模式,可有效提高企业开发效率,节省企业成本。作为一款敏捷开发框架,流程引擎只是基础,更多实用功能请移步体验。
官方网址:www.learun.cn
 

发表评论
切换编辑模式