
工作流技术方案.docx
9页工作流技术方案目录1 概述 31.1 工作流现状 31.2 建设原则」 31.3 建设目标 32 总体设计方案 42.1 业务架构设计 42.1.1 业务功能设计 42.1.2 业务模型设计 52.2 总体架构设计 62.2.1 工作流总体结构图 62.3 技术架构设计 .72.3.1 展现层 72.3.2 控制层 72.3.3 业务逻辑层 72.3.4 数据持久层 82.3.5 缓存 83 应用系统设计 83.1 流程定义 83.2 流程管理和监控 83.3 工作流引擎 83.4 工作项列表 91概述1.1工作流现状工作流是实现企业业务过程建模、业务过程仿真、业务过程管理与集成,从而实现 最终业务过程自动化化的核心技术传统的工作流管理系统缺乏柔性,不能及时响应变化和相互之间缺乏互操作的缺点 不能满足这种复杂业务流程管理的需要针对这种情况,提出工作流管理平台的实现 方案,以便更好地对企业业务流程实行管理1.2建设原则工作流管理平台的设计主要遵循实用性、稳定性、高效性、灵活性等原则:(1) 稳定性原则:需要采用成熟的技术模型、稳定的软硬件产品、软件开发平台和工具2) 安全性原则:提供完整备份机制,提供安全的数据访问机制。
3) 友好性原则:考虑到平台将针对各个层面的用户群体,使用者的计算机水平 参差不齐,所以需求平台提供的界面简便友好、操作方便4) 扩展性原则:系统设计应具有良好的可扩展性和升级能力,可以根据新的业 务拓展,方便地追加新的模块,也可以根据运营的状况,自由地追加硬件, 以实现对系统有效的负载均衡5) 快速开发原则:提供封装的开发构件,提供基本的系统管理模块,提供简洁 的开发模板,能够满足各类业务需求的快速开发1.3建设目标根据上述原则,工作流管理平台建设的主要建设目标为:(1) 实现基于Jbpm的流程引擎的二次开发2) 实现图形化的流程定义工具和流程管理监控工具3) 实现工作项列表(包括待办事宜、已办事宜、历史事宜)的统一管理界面4) 实现在流程生命周期中应用系统对流程触发的动作的相关服务接口:工作 流定义相关服务、工作流引擎相关服务、工作项列表相关服务2总体设计方案2.1业务架构设计2・1・1业务功能设计预警定文一 m幻疣程定义篠块—A—>流程管理监控模块工作流工作项列表前台幻流程/流程节点数据定义幻工作流目录管理前台 幻工作流提供外部接口 £|流程参与人表达式定义幻工作流调用外部接口幻蔘与人表达式解析模块幻流程管理监控前台幻流程定义樓块幻流程定义前台 幻查询界面及处理界面设置幻幻工作流目录管理模块工作流目录管理模块 幻A |_却工作流工作项列表橈块幻 >工作流公艾模块 Q幻i格式转换複块IBFM流程运行模块亶]以上图表说明系统功能的物理结构及调用关系。
以下分四部分说明:系统的层次结构大致是:前台功能模块一>后台功能模块(Action层+Service层 +Dao层),即:前台功能模块通过Ajax与后台功能模块的Action交互,Action调用 Service层相关接口,与底层Dao/Spring Framework交互,完成数据的存取流程定义模块】涉及到语义解析,需通过【格式转换模块】转换并被【jbpm 引擎的定义模块】处理后才能存取流程管理监控模块】中的暂停/恢复/终止等管理 功能需经过【工作流公共模块】并被【jbpm引擎的运行时模块】处理才能完成其查 询功能直接通过DAO层完成,【工作流工作项列表模块】也是如此外部接口实现,【工作流提供的外部接口】及【工作流调用的外部接口】为 WebService形式,功能由【工作流公共模块】实现引擎增强实现方式,一是在已有的jbpm引擎类上增加属性及逻辑,如【预警定 义】,【查询界面及处理界面设置】等功能;二是通过新增类来扩充功能,如【流程/流 程节点数据定义】、【流程参与人表达式定义】,【参与人表达式解析模块】、【多实例(任 务/子流程)模块】等功能2・1・2业务模型设计界面Ur l定义转移流程数据定义6节点数据定义有参与人及表达式定义关联拥有节点拥有任务关联组合Y1工作流拥有拥有流程定义组合关联组合工作流分类流程实例流程令牌关联数据实例3关联任务实例关联下一步参与人【工作流分类】是对工作流进行管理的目录层次,在此目录下创建一个或多个【工 作流】;【工作流】是【流程定义】的总称,代表一个业务流程的名称。
并且它为【流程 定义】指定一个或多个可用的【界面Url定义】;【界面Url定义】是指人工活动的操作界面或查看界面的url链接;【流程定义】是【工作流】的具体内容,即一个业务流程的定义流程定义】 是可变的,即有不同版本之分;【流程定义】是由【节点】和【转移】组成,并且拥有 自己的【流程数据定义】;【流程数据定义】(以及【节点数据定义】)是外部程序与工作流引擎交互的媒介 通过它外部程序可影响到工作流的【节点】调度;【节点】是指【流程定义】的一个活动,【节点】中的人工活动拥有操作界面或 查看界面,【节点】拥有一个或多个【任务】;【任务】代表【节点】的一种类型,即“人工活动”【任务】可指定完成人工活 动的【参与人及表达式定义】;【转移】是一个源【节点】跳转到下一个目的【节点】的条件;【节点数据定义】类似【流程数据定义】,不同的是后者是全局数据,前者是局 部数据;【参与人及表达式定义】是定义完成【节点】(人工活动)的参与者流程实例】是工作流引擎运行时依照【流程定义】创建的一个实例它拥有一 个或多个【流程令牌】;【流程令牌】代表流程运行时的一个路径分支,指示当前运行 到达的【节点】;当到达一个人工活动【节点】时,将创建该【节点】的【任务】的一 个或多个实例,即【任务实例】并根据【参与人及表达式定义】创建完成【任务实例】 的【下一步参与人】;在流程的生周期的任何时刻,根据【节点数据定义】和【流程数据定义】,可创 建一个或多个【数据实例】,以影响到流程的进程。
工作流引擎按照以上规则,不断产生【任务实例】及完成【任务实例】,直到流 程结束非工作流待办】是指不需要构建流程定义而任意创建的【任务实例】2.2总体架构设计2.2.1工作流总体结构图过程定义工具建立时功能上图是WFMC(Workflow Management Coalition)为实现不同工作流产品之间的交换,给出的5类接口规范接口一描述流程的模型及定义,接口二、三描述与应用之 间的接口(即客户端应用程序及统一框架等),接口四描述不同工作流引擎间的集成, 接口五描述对流程的监控接口一即 XPDL(XML Process Definition Language),是由 WFMC 提出的一个工作 流描述规格,使用XML文件让不同的工作流程软件间交换商业流程定义XPDL是一个 通用的框架,据WFMC认证列表统计目前全球约有80个厂商支持该标准,包括IBM、 BEA(Oracle)、Tibco相关流程产品,目前XPDL的最新版本是2.1 (2008年4月23日 approve version)XPDL给定了流程定义间进行相互转换的XML Schema元模型,这个XML Schema可 理解为与运行控制无关的描述结构,为设计流程和运行流程提供了形式上的可分离,这 样无论开发者使用Java、.Net还是轻量级的PHP、Python语言,采用有限状态机还是 Petri网,只要外部接口符合XPDL规范,那么就可以保持相同的表示形式和互操作, 这就为厂商间标准合规性验证提供了一个通用的描述框架,更重要的是XPDL对不支持 的厂商个性场景提供了扩展,这个扩展框架约束能够保证流程对外表现形式的一致性。
正是这个定位使得XPDL在与十几年中出现的众多潜在新兴竞争标准之争中仍然保持旺 盛的生命力,并催生了不同竞争活力的工作流产品对于实现XPDL规范的工作流产品, 以XPDL为持久格式,由厂商实现的流程引擎执行该描述接口一、二、三的标准化,可以使得应用系统使用不同的工作流产品均可以平滑过 渡接口四的标准化,主要是实现工作流引擎级联2.3技术架构设计工 作 流2.3.1展现层由HTML页面组成,提供与用户进行交互接口用户在此输入数据、提交数据并得 到执行结果对于绝大多数功能,使用JSP来实现对于某些WEB页面无法完成的工作, 例如自定义报表,自定义申请单等,通过JSP中嵌套客户端程序ActiveX来实现2・3・2控制层即Web服务层,是对展现层的请求进行处理,将用户提交的数据转发给业务逻辑 层,同时还对业务逻辑层应用层的返回资料进行处理,生成相应HTML页面传送到展现 层控制层采用Struts web应用框架,Struts框架分离开页面数据处理、页面流转控 制、页面生成,使程序架构更加清晰,代码可重用性高Struts框架提供了扩充的JSP 标签库,简化开发人员开发JSP界面采用Struts框架,页面设计人员和代码编写人 员可以各司其职,开发分工更加合理。
2・3・3业务逻辑层业务逻辑层进行实际的业务逻辑处理,并将数据存储到数据持久层中业务逻辑 应用层实现业务数据库的缓冲,在业务量大的情况下可以减轻数据库的负担,提高业 务处理能力业务逻辑层采用Spring应用框架,完成IOC容器,AOP,事务管理,DAO支持等工 作;SPRING的WEB层技术没有采用Spring框架结构简单,可配置性好,实现了系统的松散耦合2・3・4数据持久层数据持久层实现数据的物理存储和使用由于控制层和业务逻辑层运行在中间件 服务器软件平台上,因此可以很容易的实现与各种各样数据库或者与企业已有的各个 信息系统的连接数据持久层使用Hibernate访问数据库2・3・5缓存将平台相关的配置信息、参数信息一次性加载到内存中,对数据的获取直接通过 共享内存取得为了不使缓存信息丢失,应用服务应该支持热部署,如果选用的应用服务器不支 持热部署,则需要考虑多机集群保证缓存信息不丢失3应用系统设计根据业务分析,工作流平台包括流程定义、流程管理和监控、工作流引擎、工作项 列表等几个部分3.1流程定义业务流程能在工作流引擎中流转的第一步就是用严谨的计算机化的方式描述业务 流程,这种严谨的描述叫做流程定义。
流程定义由活动及其关系的网络组成,它有明确 的开始和结束,活动间的逻辑关系以及特定活动的相关信息(如活动的参与人等)有 关流程定义的操作包括对其进行语法、语义的校验,以及发布、保存、导出等3・2流程管理和监控流程管理员对所有的流程实例,都能够图形化展示流转的历史记录对流程实例的 发起信息、每一步活动的处理信息、流程及活动的所有数据进行展示;对于子过程活 动,双击后能够看到对应子流程的流转全过程,实现企业级流程全貌展现;能够在流 程图上模拟流程流转的全过程特别对于运行中的流程实例,还提供暂停、恢复、终 止、删除等管理功能;对于当前流程实例中运行中的活动,提供跳过、回退、重新指 定参与者等管理功能3.3工作流引擎主要是对Jbpm的二次开发,对工作流引擎的增强,主要是要增加参与人表达式的 计算、多实例节点、预警处理、流程数据处理、流程定义格式转换、多实例子流程等参与人表达式的计算:流程定义中。
