zoukankan      html  css  js  c++  java
  • 面向OA系统的工作流引擎研发(下)

    2 基于工作流引擎的OA系统

      一次业务流程的充成通常需要在一个部门的多名用户之间或多个部门的不同用户之间协作交互进行,通过设置用户的访问与操作权限,将需要协作交互完成的任务发送到协作人的工作区,从而实现业务流程的协作交互处理。基于工作流引擎的OA系统的设计采用二层体系架构,组件化的思想。这二层分别是:客户层、业务处理层、数据层。系统架构如图3所示。

      

    图3 基于工作流引擎的OA系统架构

      图3 基于工作流引擎的OA系统架构

      OA系统通过调用工作流引擎对文档的流动、交互、控制、管理进行动态管理,并随时跟踪和监督文档处理过程,实现部门之间、人员之间的协作阁。工作流引擎的作用不仅仅是处理流程,使信息从一个地方流向另一个地方,而且管理这些规则与流程的运作,工作组成员间依据一组己定义的规则及己制定的共同目标交换文档或与任务相关的信息。

      流程定义管理对业务流程进行集中管理,首先设计业务流程的数学模型,然后用XML语言进行描述,最后生成该业务流程的XML文档。本文采用XML语言定义了流程描述模式(Schema),如图4所示。在XML Schema中,通过对元素的定义和元素关系的定义来实现对整个流程定义文档性质和内容的定义,流程定义每个步骤的描述只有符合XML Schema的要求,才能被工作流引擎解释器解析。该模式描述了任务状态名称、任务名称、执行任务的角色、任务的下一个状态名称等信息。用户可以根据实际情况添加、修改、删除、查找描述某业务流程的XML文档,从而可以对业务流程进行灵活的定制,实现了业务过程逻辑与信息支撑系统的分离。

      

    图4 XML Schema

      图4 XML Schema

      传统的权限控制是土体与客体直接发生关系,主体能对客体直接访问,但不能控制主体对客体的间接访问。本文采用基于角色的权限控制,引入中间介质角色,将角色作为用户与权限联系的中间桥梁,用户通过被授予一定的兔色而获得相应权限,从而大大简化权限管理,客服了传统权限控制的不足,是一种高效灵活的权限控制策略。系统将角色的权限与办公人员绑定,用户登录后,依据角色的不同,系统所提供的功能也不相同。流程处理中角色和工作流状态接点绑定,通过工作流自身的逻辑对权限验证后,根据实际的流程继续往下执行。

      图3中其它业务逻辑组件的功能如下:

      任务表:等待用户处理的由仟务项组成的队列。

      系统应用组件:信息的处理、存储和检索;系统管理、使用权限设置等操作。

      数据统计分析:对文档数据中心进行数据分析、统计汇总等操作。

      流程监控:从工作流引擎中获得各个流程实例的运行状况资料,监督正在执行的任务,可以进行相关的查询、统计,如果发生流程异常状况,可以迅速地反应。

      组织、角色管理:设定角色的权限,并把角色分配给用户和部门。

      用户通过任务管理启动工作流引擎,调用数据库中的流程定义文档,解析流程定义,推动流程实例的执行,流程实例执行过程如图5所示。

      

    图5 流程运行过程

      图5 流程运行过程

      3 应用举例

      以某公司的发文流程为例,说明系统如何实现流程的动态变更。该公司发文流程为:系统管理员使用XML语言对该发文流程进行描述,并通过流程定义管理生成一个发文流程的XML文档,发文流程必须按照XML Schema进行编写,如图6所示。如果发文流程变更为:拟稿→部门负责人审核→分管该部门的副总审核→总经理签发→校对→分发→归档,系统管理员只需通过流程定义管理找到发文流程,并依据XML Schema修改该发文流程定义,不需修改应用程序,只需修改流程的XML文档就可以实现发文流程的变更,变更后的发文流程如图7所示。当用户再次执行发文流程时,工作流引擎就会调用数据库中变更后的发文流程定义推动流程的执行。

      

    图6 变更前的流程

      图6 变更前的流程

      

    图7 变更后的流程

      图7 变更后的流程

      4 结束语

      本文运用工作流的理论、方法设计开发了面向OA系统的工作流引擎,组件化的体系结构使信息的收集、存储、处理、流转、发布相分离,既保证了系统的可靠性,又保证了系统的柔性和扩展性。基于工作流引擎的OA系统是一个易于动态修改办公业务流程,便于权限控制,支持协同办公的系统。该系统在某企业使用后,极大地提高了办公效率,规范了业务流程处理,减少了违规操作,缩短了流程处理的生命周期,有效地推动了企业的发展。

      系统在流程可视化定义方面未做深入地研究,仅依据工作流管理联盟的规范直接把业务流程转换成XML文档,并对XML文档进行管理,用户在进行流程定义时操作不便,下一步将深入研究流程的可视化定义,开发出一个界面友好,易于操作的流程定义工具。

  • 相关阅读:
    Pytest学习之 autouse=True,自动调用fixture功能
    Pytest学习之xfail使用
    Pytest学习之use fixtures
    python
    python
    python
    python
    python
    python
    python
  • 原文地址:https://www.cnblogs.com/vipk/p/1684432.html
Copyright © 2011-2022 走看看