工作流技术方案
工工作作流流技技术术方方案案 目录目录 1概述. 3 1.1工作流现状.3 1.2建设原则.3 1.3建设目标.3 总体设计方案.4 2.1业务架构设计.4 2.1.1业务功能设计.4 2.1.2业务模型设计.5 2.2总体架构设计.6 2。2.1工作流总体结构图 . 6 2.3技术架构设计.7 2。3.1展现层.7 2.3。2控制层.7 2。3.3业务逻辑层.7 2。3.4数据持久层.8 2。3。5 缓存.8 应用系统设计.8 3.1流程定义.8 3。2流程管理和监控.8 3.3工作流引擎.8 3。4工作项列表.9 2 3 2 2 / 9 9 1 1概述概述 1.11.1 工作流现状工作流现状 工作流是实现企业业务过程建模、业务过程仿真、业务过程管理与集成,从而实现 最终业务过程自动化化的核心技术。 传统的工作流管理系统缺乏柔性, 不能及时响应变化和相互之间缺乏互操作的缺点 不能满足这种复杂业务流程管理的需要.针对这种情况,提出工作流管理平台的实现方 案,以便更好地对企业业务流程实行管理。 1.21.2 建设原则建设原则 工作流管理平台的设计主要遵循实用性、稳定性、高效性、灵活性等原则: (1) 稳定性原则:需要采用成熟的技术模型、稳定的软硬件产品、软件开发平台 和工具。 (2) 安全性原则:提供完整备份机制,提供安全的数据访问机制。 (3) 友好性原则: 考虑到平台将针对各个层面的用户群体, 使用者的计算机水平 参差不齐,所以需求平台提供的界面简便友好、操作方便。 (4) 扩展性原则: 系统设计应具有良好的可扩展性和升级能力, 可以根据新的业 务拓展,方便地追加新的模块,也可以根据运营的状况 ,自由地追加硬件, 以实现对系统有效的负载均衡。 (5) 快速开发原则:提供封装的开发构件,提供基本的系统管理模块,提供简洁 的开发模板,能够满足各类业务需求的快速开发. 1.31.3 建设目标建设目标 根据上述原则,工作流管理平台建设的主要建设目标为: (1) 实现基于 Jbpm 的流程引擎的二次开发. (2) 实现图形化的流程定义工具和流程管理监控工具. (3) 实现工作项列表(包括待办事宜、已办事宜、历史事宜)的统一管理界面。 (4) 实现在流程生命周期中应用系统对流程触发的动作的相关服务接口 :工作 流定义相关服务、工作流引擎相关服务、工作项列表相关服务。 3 3 / 9 9 2 2总体设计方案总体设计方案 2.12.1 业务架构设计业务架构设计 2.1.12.1.1业务功能设计业务功能设计 以上图表说明系统功能的物理结构及调用关系。以下分四部分说明: 系统的层次结构大致是:前台功能模块—〉后台功能模块(Action 层+Service 层 +Dao 层),即:前台功能模块通过 Ajax 与后台功能模块的 Action 交互,Action 调用 Service 层相关接口,与底层 Dao/Spring Framework 交互,完成数据的存取. 【流程定义模块】涉及到语义解析,需通过【格式转换模块】转换并被【jbpm 引擎的定义模块】处理后才能存取。 【流程管理监控模块】中的暂停/恢复/终止等管理 功能需经过【工作流公共模块】并被【 jbpm 引擎的运行时模块】处理才能完成.其查询 功能直接通过 DAO 层完成, 【工作流工作项列表模块】也是如此。 外部接口实现,【工作流提供的外部接口】及【工作流调用的外部接口】为 WebService 形式,功能由【工作流公共模块】实现。 引擎增强实现方式,一是在已有的 jbpm 引擎类上增加属性及逻辑,如【预警定 义】 , 【查询界面及处理界面设置】等功能;二是通过新增类来扩充功能 ,如【流程/流 程节点数据定义】 、 【流程参与人表达式定义】 , 【参与人表达式解析模块】 、 【多实例 (任 务/子流程)模块】等功能。 4 4 / 9 9 2.1.22.1.2业务模型设计业务模型设计 界面Url定义 组合 转移 流程数据定义 拥有 节点数据定义 参与人及表达式定义 组合 拥有 拥有 关联 组合 节点 任务 拥有 流程定义 关联 组合 关联 工作流 拥有 流程实例 关联 关联 拥有 数据实例 关联 关联 任务实例 拥有 下一步参与人 工作流分类流程令牌 关联 非工作流待办 【工作流分类】 是对工作流进行管理的目录层次, 在此目录下创建一个或多个 【工 作流】 ; 【工作流】是【流程定义】的总称,代表一个业务流程的名称 .并且它为【流程 定义】指定一个或多个可用的【界面 Url 定义】; 【界面 Url 定义】是指人工活动的操作界面或查看界面的 url 链接; 【流程定义】是【工作流】的具体内容,即一个业务流程的定义。 【流程定义】 是可变的,即有不同版本之分;【流程定义】是由【节点】和【转移】组成,并且拥有 自己的【流程数据定义】 ; 【流程数据定义】 (以及 【节点数据定义】 ) 是外部程序与工作流引擎交互的媒介。 通过它外部程序可影响到工作流的【节点】调度; 【节点】是指【流程定义】的一个活动, 【节点】中的人工活动拥有操作界面或 查看界面, 【节点】拥有一个或多个【任务】 ; 【任务】代表【节点】的一种类型,即“人工活动“, 【任务】可指定完成人工活 动的【参与人及表达式定义】 ; 【转移】是一个源【节点】跳转到下一个目的【节点】的条件; 【节点数据定义】类似【流程数据定义】 ,不同的是后者是全局数据,前者是局部 数据; 【参与人及表达式定义】是定义完成【节点】(人工活动)的参与者。 【流程实例】是工作流引擎运行时依照【流程定义】创建的一个实例。它拥有一 个或多个【流程令牌】 ; 【流程令牌】代表流程运行时的一个路径分支,指示当前运行 到达的【节点】 ;当到达一个人工活动【节点】时,将创建该【节点】的【任务】的一 个或多个实例,即【任务实例】 ,并根据【参与人及表达式定义】创建完成【任务实例】 的【下一步参与人】 ; 5 5 / 9 9 在流程的生周期的任何时刻,根据【节点数据定义】和【流程数据定义】 ,可创 建一个或多个【数据实例】 ,以影响到流程的进程。 工作流引擎按照以上规则,不断产生【任务实例】及完成【任务实例】,直到流 程结束。 【非工作流待办】是指不需要构建流程定义而任意创建的【任务实例】. 2.22.2 总体架构设计总体架构设计 2.2.12.2.1工作流总体结构图工作流总体结构图 过程定义工具过程定义工具 接接 口口 一一 建立时功能 Workflow API及互换格式及互换格式 管理管理 监控监控 工具工具 工作流执行服务工作流执行服务 接口五接口五接口四接口四 其他工作流执行服务其他工作流执行服务 工工 作作 流流 引引 擎擎 工工 作作 流流 引引 擎擎 运行时过程 实例化及控 制功能 接接 口口 二二 接接 口口 三三 客户应用客户应用被调应用被调应用 同用户及应 用软件的交 互功能 上图是 WFMC(Workflow Management Coalition)为实现不同工作流产品之间的交换, 给出的 5 类接口规范。接口一描述流程的模型及定义,接口二、三描述与应用之间的 接口(即客户端应用程序及统一框架等),接口四描述