1 概述
-
工作流现状
工作流是实现企业业务过程建模、业务过程仿真、业务过程管理与集成,从而实现最终业务过程自动化的核心技术。
传统的工作流程管理,要么缺乏信息化在线管理和处理,效率不够高、信息不够互通,要么使用第三方软件缺乏定制化、第三方响应不够及时、不够有效,不能满足公司现实和日益增长的复杂业务流程管理和公司信息化的需要。针对这种情况,在公司信息化建设过程中,结合公司管理流程和业务流程需要,提出工作流管理平台的实现方案,以便更好的对公司业务流程实行在线管理。
-
建设原则
工作流管理平台的设计主要遵循实用性、稳定性、高效性、灵活性等原则:
-
稳定性原则:需要采用成熟的技术模型、稳定的软硬件铲平、软件开发平台和工具;
-
安全性原则:提供完整的备份机制,提供安全的数据访问机制。
-
友好性原则:考虑到平台将针对各个层面的用户群体,使用的计算机水平参差不齐,所以需求平台提供的界面简便友好、操作方便、易于理解。
-
扩展性原则:系统设计应具有良好的可扩展性和升级能力,可以根据新的业务需要进行拓展,方便地追加新的模块,也可以根据运营的状态,自由的追加硬件,以实现系统有效的负载均衡。
-
快速开发原则:提供封装的开发构件,提供基本的系统管理模块,提供简洁的开发模板,能够满足各类业务需求的快速开发。
-
建设目标
根据上述原则,工作流管理平台的主要建设目标为:
-
实现基于Activiti或Flowable或Camunda的流程引擎的二次开发。
-
实现图形的流程定义工具和流程管理监控工具。
-
实现工作项列表(包括待办事宜、已办事宜、历史事宜)的统一管理界面;
-
实现在流程全生命周期中应用系统对流程出发的动作的相关服务接口:工作流定义相关服务、工作流引擎相关服务、工作项列表相关服务。
2 总体设计方案
2.1业务架构设计
2.1.1 业务功能设计
以上图表说明系统功能的物理结构及调用关系。以下分四部门说明:
系统的层级结构大致是:前台功能模块->后台功能模块(Controller层+
Service层+Dao层),即:前台功能模块通过Ajax或Axios,与后台功能模块的Controller交互,Controller调用Service层相关接口,与底层Dao/Spring Framework交互(流程引擎已封装并提供有API),完成数据的存取。
【流程定义模块】涉及到语义解析,需通过【格式转换模块】并被【流程引擎的定义模块】处理后才能存取。【流程管理监控模块】中的暂停、恢复、终止等管理功能需经过【工作流公共模块】并被【流程引擎的运行时模块】处理才能完成。其查询功能直接通过流程引擎API完成,【工作流工作项列表模块】也是如此。
外部接口实现,【工作流提供的外部接口】及【工作流调用的外部接口】为RPC形式,功能由【工作流公共模块】实现。
引擎增强实现方式,一是在已有的流程引擎类上增加属性及逻辑,如【预警定义】、【查询界面及处理界面设置】等功能;二是通过新增类来扩充功能,如【流程/流程节点数据定义】、【流程参与人表达式定义】、【参与人表达式解析模块】、【多实例(任务/子流程)模块】等功能。
2.1.2 业务模型设计
【工作流分类】是对工作流进行管理的目录层次,在此目录下创建一个或多个【工作流】;
【工作流】是【流程定义】的总称,代表一个业务流程的名称。并且它为【流程定义】指定一个或多个可用的【界面URL定义】。
【界面URL定义】是指人工活动的操作界面或查看界面的URL链接。
【流程定义】是【工作流】的具体内容,即一个业务流程的定义。【流程定义】是可变的,及有不同版本之分;【流程定义】是由【节点】和【转移】组成,并且拥有自己的【流程数据定义】;
【流程数据定义】(以及【节点数据定义】)是外部程序与工作流引擎交互的媒介。通过它外部程序可影响到工作流的【节点】调度。
【节点】是指【流程定义】的一个活动,【节点】中的人工活动拥有操作界面或查看界面,【节点】拥有一个或多个【任务】;
【任务】代表【节点】的一种类型,即“人工活动”,【任务】可指定完成人工活动的【参与人及表达式定义】;
【转移】是一个源【节点】跳转到下一个目的【节点】的条件;
【节点数据定义】类似【流程数据定义】,不同的是后者是全局数据,前者是局部数据;
【参与人及表达式定义】是定义完成【节点】(人工活动)的参与者;
【流程实例】是工作流引擎运行时依照【流程定义】创建的一个实例。它拥有一个或多个【流程令牌】;【流程令牌】代表流程运行时的一个路径分支,指示当前运行到达的【节点】;当到达一个人工活动【节点】时,将创建该【节点】的【任务】的一个或多个实例,即【任务实例】,并根据【参与人及表达式定义】创建完成【任务实例】的【下一步参与人】;
在流程的生命周期的任何时刻,根据【节点数据定义】和【流程数据定义】,可创建一个或多个【数据实例】,以影响到流程的进程。
工作流引擎按照以上规则,不断产生【任务实例】及完成【任务实例】,知道流程结束。
【非工作流待办】是指不需要构建流程定义而任意创建的【任务实例】。
2.1.3 业务流程设计
【前端用户】首次登陆需要修改密码,选择工作流管理后台流程面板中相应流程,视用户权限能修改定义流程、停用、锁定流程,亦可在流程中心中填写自定义表单完成流程的发起;不是首次登陆系统的用户无需修改密码,直接进行后续操作;
【后端管理员】登陆后台页面,操作流程定义,完成流程类别、流程定义、流程自定义表单等操作和维护;
【工作流管理后台】提供可视化操作流程定义,由后端管理员完成流程类别、流程定义、流程自定义表单等操作和维护;
【流程中心】提供可视化流程操作,由前端用户完成表单填写、流程的发起和审批;
2.2 总体架构设计
2.2.1 工作流平台总体结构图
2.2.2 技术架构图
2.2.2.1 展现层
由HTML页面呈现,提供与用户进行交互接口。用户在此输入数据、提交数据并得到执行结果。
可选用Vue、React、Angular框架之一。