基于Activiti的流程应用开发平台JSAAS-WF V5.3
第1章 产品概述及体系架构
1.1.概述
红迅JSAAS-WF工作流平台V5是广州红迅软件有限公司面向合作伙伴以及有IT运维团队中大型企业提供新一代的流程管理产品,它基于流行的JAVA开源技术上构建,扩展容易,学习成本低,同时满足中国本土企业对于业务管控流程的需要。产品全面覆盖流程的建模、配置、运行、管理、监控等流程管理的功能,利用红迅工作流V5上的各类功能,可以非常容易满足金融、电信、互联网、医疗、政府等各行各业的电子流程化及其他应用系统的开发的管理需求。
1.2.设计理念
红迅软件JSAAS-WF工作流平台V5是以组件化为产品设计的指导思想的,所谓的组件化思想就是把系统的功能全部组件化,而在功能上又可以灵活配置,从而可以更大在产品的功能扩展上提供更多开发可能性,使得系统在适应企业未来的业务增长或调整提供最强的保证。而在流程上的管理上遵行灵活原则,即流程建模、流程配置、流程运行、组织权限配置均实现可视化配置,灵活调整,调整过程中减少系统管理员、流程配置人员、业务流程的使用人员的冗余投入,实时为用户的业务流程提供稳定的系统运行支撑。以达到在时间、资金投入最小、收益最大的目的。
JSAAS-WF设计上的优势,提高了该平台上承担着更多的业务职责的可能,如通过对用户的内部、外部的业务流程的整个生命周期进行规划设计、自动化管理、流程监控、流程优化,加快了各类业务流程的运转效率,降低了用户在投入平台的用户成本、最终形成企业内部重要的核心的业务流程管理平台。
如基于JSAAS-WF的协同扩展,与ERP的应用扩展均是业内比较成功的应用。
1.3.平台体系架构
JSAAS-WF 工作流平台面向用户提供具有高度灵活性、开放性、稳定可靠的企业级业务流程自动化及管理体系架构,能完全满足各行各业对业务流程电子化及管理的需求。其包括以下的组成部分:
- 平台基础组件:消息监听及通知(短信、邮件、微信),任务调度,脚本引擎,数据库访问、事务管理、日志管理
- 平台引擎组件:流程引擎组件、组织架构组件、流程表单组件、报表引擎、脚本引擎
- 平台整合接口:提供给第三方调用的接口,如流程启动接口、待办获取接口、待办任务执行接口等。
- 设计工具:提供流程建模设计、表单建模设计、组织架构设计工具、流程业务解决方案配置管理等可视化工具等,方便终端用户或开发用户在平台上构建业务管理。
- 应用工具:提供我的待办、我的代理、转办、催办、已办等流程查询管理界面,方便用户灵活使用。
- 管理干预工具:提供给用户对待办任务进行人员变更、任务节点跳转或回退、沟通、加签等干预工具,方便管理员对流程业务进行人工干预以应变用户对流程的人为干预需要。
- 应用套件:JSAAS-WF V5.0提供丰富的面向用户的内部管理的业务流程解决方案,如协同应用。
1.4.平台的技术架构
JSAAS-WF是基于JAVA EE平台上构建新的一代流程开发平台,它使用流行的Spring开源技术,并且整合了众多的成熟的企业应用的管理组件,如ORM访问服务、AOP事务控制、Activiti开源流程引擎、JMS消息管理、Spring Security安全管理,它可企业内部的各种应用开发扩展。
- JDK 1.6+
- Spring Core核心容器
- Spring MVC 4
- Spring AOP
- Spring Security
- Groovy动态脚本语言
- MiniUI前端JS框架
- JSTL JSP标签库
- JQuery UI库
- Hibernate JPA、MyBatis Or JDBC数据持久层框架
- Maven版本控制
- Log4j Java XML API
- Scheduling Quartz定时任务
- Alfresco Activiti 5流程引擎
- VUE 前端手机框架
- UEditor
第2章 功能模块及产品特色
2.1.功能模块
JSAAS工作流平台V5按功能可划分为以上五部分,其中流程引擎是平台的核心。
- 流程引擎:实现BPMN2语法标准的流程引擎、流程驱动、流程任务状态跳转、流程事件脚本调用等。
- 设计工具:流程模型设计、表单设计、业务模型设计、流程调试
- 管理工具:流程实例监控、待办管理、流程实例或任务的干预、流程分析日志;
- 应用工具:系统流水号、系统SQL自定义、工作流Portal中心
- 协同应用:我的待办、我的已办、我的流程申请、我的消息、知识管理、公文管理、项目管理、会议管理、邮件管理等。
2.2.流程引擎
流程建模、流程配置、流程数据交互、流程实例管理及干预是整个工作流系统的核心部分。红迅JSAAS-WF流程基于Spring与有着10多年开源流程引擎Activiti 5.X的基础上构建,它支行于JAVA EE应用服务器,而又不需要依赖特定的中间件或服务器,可以在业务处理、数据持久化等各个方面与应用系统进行灵活集成;引擎采用组件化设计,为开发者灵活选择流程引擎的功能、自定义已有功能和拓展新功能提供了无限可能;流程引擎的轻量级化大幅度降低了部署的复杂度,使系统更加容易设计实现。用户可以将流程引擎作为业务流程管理的基础,在此基础上实现业务流程的电子化以及业务流程统一管理。
流程引擎可支持多种服务模式,如可作为独立的流程中心使用,也可作为应用强大的开发平台,基于上构建自己的流程业务,也可为多个机构的流程中心,每个机构的流程独立运行,互不干扰。
流程引擎功能:
序号 | 功能 | 简介 |
1 | 流程流转方式 | 支持人工任务的顺序、并行、同步、独占式选择、简单聚合、多重选择、同步聚合、多重聚合、分支模式,支持人工或子流程的任意循环、手工终止、串行、并行的会签、加签等 |
2 | 多种任务节点 | 支持单人任务节点、多人并行任务节点、多人顺序人工节点,支持多个的会签投票的办理,支持邮件通知节点、支持脚本节点、支持外部接口或服务的任务节点,支持自动的任务节点,支持多实例的循环审批节点,支持其他自定义的任务节点。 |
3 | 丰富的事件及监听配置管理 | 引擎创建、关闭事件,活动创建事件、活动完成的事件、活动删除事件、流程变量创建事件、流程变量删除事件、人工任务创建事件、人工任务完成事件、人工任务分配事件、流程启动事件、流程完成事件、流程异常结束事件,流程取消事件,自定义扩展的事件。 |
4 | 异常处理 | 支持各种异常的处理,包括:全局超期、节点超期、节点无人员等异常及异常处理的扩展机制:
消息通知:在异常发生时,给流程发起人、管理员或其他指定人员发送异常消息通知。
超时处理:可以忽略、跳转、挂起、终止或自定义处理方式 |
5 | 支持子流程 | 支持启动一个或多个子流程,支持主从流程问的同步与异步流及数据相互传递。 |
6 | 支持接口与流程交互 | 支持外部系统通过认证与流程引擎进行交互调用,如调用接口口获得流程方案列表、流程图、流程待办列表、流程任务办理、流程结束等 |
7 | 任务人员的多种办理设置 | 支持按子公司、部门、角色、岗位、项目方式设置节点的办理人;
支持按表单字段动态来获取流程办理人 支持根据流程变量来设置节点的办理人员 支持多种人员或组的关系来设置节点的人员 支持动态脚本获得人员来设置节点的人员 支持自定义接口实现人员查找算法来设置节点的人员 |
8 | 支持流程定义的多版本 | 支持流程定义的多版本管理,支持启用一个版本,多个版本同时运行的方式 |
9 | 运行流程表单的多版本 | 支持流程表单的多个版本同时运行 |
10 | 组织人员、组及关系设置 | 支持多种内置的人员关系设置,如从属关系、上下级关系、汇报关系、项目关系,部门负责人,支持可视化的新型关系配置及维护。 |
11 | 支持沟通协办 | 支持在办理过程中沟通别人以及协办 |
12 | 支持流程阅读 | 支持配置流程的阅读权限以决定可访问该流程实例的用户 |
13 | 支持办理人为空通知管理员 | 支持配置流程节点不能跳过,并且通知管理员进行干预 |
14 | 支持代办 | 支持设置流程的代办人,任务自动转办 |
15 | 支持重复办理自动跳过 | 支持配置相同审批人是否自动跳过 |
16 | 办理时限设置 | 支持按工作日、自然日历设置办理时限、超期的自动处理的配置项 |
17 | 催办 | 支持按照内置的计划任务定期给流程办理人员、相关负责人进行催办消息的推送。 |
18 | 引擎对表单的支持 | 支持流程节点的表单设置,允许流程挂接多个流程表单 |
19 | 流程表单数据持久化两种方式的支持 | 支持表单的数据以JSON持久化、支持表单数据物理表存储。 |
20 | 流程引擎的操作权限 | 可以按主办、协办、阅读者、创建者、管理员不同身份,对流程实例具有不同的操作权限。 |
21 | 表单访问权限 | 按流程实例的按照主办、协办、阅读者、创建者、管理员提供不同的表单访问权限 |
22 | 节点表单设置权限 | 支持流程实例优先使用局部的节点配置,若无则才使用全局的节点配置。 |
23 | 流程引擎支持操作 | 流程支持同意、会签中的充权、沟通、追回、转办、催办、回退、回退原路返回、自由跳转、人工自由干预跳转、加签、作废、传阅、替换处理人、终止流程,暂停流程等流程操作 |
24 | 支持多路网关及接口条件 | 选择网关,并行网关、条件网关及规则配置,支持外部动态脚本配置。 |
25 | 流程定义设计工具支持 | 可使用支持BPMN2的设计工具,如Activiti Modeler Designer或在线的Activiti BPMN Modeler或其他支持BPMN的设计工具均可。 |
26 | 组织结构 | 支持读取第三方组织结构进行节点人员配置及使用平台的组织架构 |
27 | 支持多种流行的数据库 | 平台支持多种数据结构化的数据库,如MySql,Oracle,Sql Server,达梦数据库等。 |
28 | 支持流程引擎对应的事件调用外部接口 | 支持在对应的事件中调用外部系统的接口。 |
29 | 流程导出 | 支持将流程、表单、节点配置等相关属性导出成XML文件格式。可支持单个或多个。 |
30 | 流程导入 | 支持导入流程XML文件,或一个或多个流程定义的导入 |
31 | 流程文件的导出及打开修改 | 支持在线下载流程定义文件并且进行编辑修改再上传 |
32 | 流程定义分类管理 | 对流程定义进行分类管理 |
33 | 流程调试 | 支持流程测试,可输入流程参数、变量、发起人等进行模拟测试及删除。 |
34 | 流程实例管理 | 支持查看及管理所有的流程实例,对流程 实例进行恢复版本、暂停流程、恢复流程、 结束流程、替换处理人、删除实例、更新流程、打印列表、导出操作,修改流程变量,更改执行路径。 |
35 | 待办事项管理 | 支持查看所有的流程事项,支持更换人员、更改审批路径,沟通,更改流程变量。 |
36 | 消息跟踪 | 对待办、短信、邮件、即时消息进行显示 |
37 | 工作日历 | 支持全单位或公司使用同一份工作日历,以实现有效的办理期限。 |
38 | 动态脚本支持 | 支持Groovy脚本,可在引擎中调用任何引擎中的任何组件以及自定义的服务,甚至包括外部的接口服务均可使用它来调用。 |
2.3. 管理工具
JSAAS-WF V5管理工具提供包括系统管理、流程管理、组织机构管理三大模块,以实现流程的集中管控,方便平台的管理员、开发人员通过管理工具有效实现流程业务的管理,减轻流程业务开发及运维的成本。红迅JSAAS-WF管理工具功能列表如下所示:
序号 | 模块 | 功能 | 简介 |
1 | 系统管理
|
多机构管理 | 支持多个机构或租户使用平台,可以有效实现多个机构共享使用平台的功能,租户仅使用SAAS功能,非SAAS功能无权限访问及使用 |
2 | 菜单管理 | 支持平台上动态加上开发的功能URL地址 | |
3 | 流水号 | 支持在流程表单中使用动态的流水号 | |
4 | 自定义SQL | 通过自定义SQL,可以返回JSON值,用于选择框,下拉列表、树控件展示的数据来源。 | |
5 | 数据源管理 | 支持多种数据库的配置,实现数据源管理 | |
6 | 报表管理 | 支持通过报表工具制作模板,上传报表展示 | |
7 | 调度管理 | 支持定时调用特定一段程序执行完成特定的工作,如数据同步的工作。 | |
8 | 工作日历管理 | 支持设置部门或个人的工作日历,用于计算员工的工作时间 | |
9 | 流程管理 | 流程定义 | 支持自定义设计BPMN2的流程定义 |
10 | 流程表单 | 支持自定义的表单设计,支持在线各种表单的展示 | |
11 | 表单模板 | 支持种各种表单模板,如手机表单 | |
12 | 手机表单 | 支持生成手机表单 | |
13 | 流程实例管理 | 支持流程实例的管理,停止、恢复、作废实例、干预流程实例 | |
14 | 流待办管理 | 支持流程的待办管理,支持人员变更、任务跳转、代办等 | |
15 | 流程解决方案管理 | 支持流程定义的组装,配置变量、配置表单、配置节点事件等 | |
16 | 流程授权管理 | 支持流程的授权,以支持每个流程对应的访问权限 | |
17 | 组织管理 | 用户管理 | 支持系统的用户信息的管理 |
18 | 用户账号管理 | 支持系统的安全登录账号管理 | |
19 | 关系管理 | 支持用户间的关系、用户组间的关系,如汇报关系等。 | |
20 | 组织维度管理 | 管理多个维度下的用户组的分类 | |
21 | 组织架构管理 | 管理用户组及组下的用户及关系维护 | |
22 | 角色授权管理 | 管理系统的角色的功能授权 |
2.4. 设计工具
设计工具可以通过在线进行系统的功能配置,以减少开发人员或系统人员投入的时间。
2.5.应用工具
应用工具支持用户方便使用流程工具进行流程事务管理。
2.6.流程协同应用
系统的协同应用可以把该平台作为企业的协同应用系统使用,以支持企业内部的一些应用管理。
2.7. 平台开发特色
2.7.1. 中国式的流程引擎支持
基于开源Activiti的流程引擎上构建,使用BPMN2语法,支持比较多的流程语法描述,同时红迅软件基于上面构建,以支持更多的中国式的流程管理需要,表现在以下一些特性上的支持:
- 流程变更及多版本
- 自由流程
- 流程回退及原路返回、追回
- 流程催办(基于工作日)及过期动作设置
- 流程任务的人员更改
- 流程会签、加签、投票
- 流程表单权限配置及模板打印
- 流程的串行、并行、多路分发、汇总、自动脚本执行
- 流程的撤办、转办、传阅、提交、暂存、复制
- 流程异常挂起、无人员跳过或相同人员跳过
- 支持流程的沟通、协办
- 流程导入、导出
2.7.2. 流程定义及执行缓存
流程引擎在执行过程中,优先使用应用系统的缓存,以支持在并发下的快速流程响应,平台支持Redis以及Memory Cache的流程缓存管理。
2.7.3. 丰富的二次开发接口
- 安全登录认证接口
- 组织结构接口
- 消息通知接口
- 功能开发扩展接口
- 流程启动接口
- 流程实例管理接口
- 流程待办管理接口
- 流程引擎扩展接口(如分支条件、人员查找、流程图展示)
2.7.4. 可视化的流程配置及开发
2.7.4.1. 流程定义可视化
基于BPMN2的流程设计器,可快速实现流程的在线设计及发布管理。
2.7.4.2. 流程表单可视化
基于Ueditor下的不同流程控件的支持,可快速实现流程定义表单的设计。
2.7.4.3. 手机表单可视化
提供生成手机H5的可视化表单编辑模板功能,以支持在不同手机平台上访问使用。
2.7.4.4. 流程执行可视化
提供可视化的流程执行的支持,可查看当前已走过的审批环节以及未执行的流程环节。
2.7.4.5. 流程执行干预可视化
可对当前各个环节执行人员、流程变量、审批表单、流程执行的配置等进行干预管理。
2.7.5. 流程中心化
基于JSAAS-WF上构建的流程中心,可以有效为企业带来业务运行效率上的提升,它带来的好处与优势如下:
2.7.6. 流程源码开放
目前平台采用不同的授权模式,有项目授权、企业内授权、集团内授权、合作伙伴合作模式。为企业或用户开放对应的源代码进行合作开发,以真正实现业务的上共赢。
2.7.7. 多种浏览的支持
JSAAS-WF支持主流的浏览器,如IE8+,360,Google Chrome,Firefox,Microsoft Edge。甚至对于手机上的Web Kit内核的浏览均可支持。
2.7.8. 组件化开发
平台提供丰富完善的组件封装,可以大大加快应用开发的速度,如文件上传、用户选择框、组织选择框、表格编辑控件、树型控件、Tab控件、下拉树控件、流程选择控件等超过100多个控件,大大方便开发人员的功能开发。
2.7.9. 开发辅助工具—代码生成器
代码生成器是为了加快项目开发而提供的辅助开发工具,它可以基于平台的架构以及业务功能表来生成对应的业务基础类、逻辑代码、页面、资源文件、配置等,通过修改模板,可以生成我们想要的代码方式。其原理图如下所示:
平台功能一键生成
2.7.10. SAAS应用支持
平台支持多个租户的共用SAAS模式的访问,即每个租户机构单独使用平台进行功能应用的访问使用,其SAAS的模式如下:
2.7.11. 移动端审批一体化
JSAAS-WF支持Android、IOS、微信端的手机端访问。
第3章、部署方式
3.1. 简易部署
3.2. 集群部署
3.3. 云部署
3.4. 运行软、硬环境
服务器 | 硬件参数 | 软件环境 | 备注 |
前端负载均衡服务器(一台) | Intel Xeon
主频3000MHz以上(四核) 内存 8G+ 硬盘:20G+ 网卡:千兆网卡 |
l CentOs 7.0
l Nginx 1.10.1
|
可以达到20000在线的连接 |
BPM流程管理器
(2台) |
Intel Xeon
主频3000MHz以上(四核) 内存 16G+ 硬盘:50G+ 网卡:千兆网卡 |
l CentOs 7.0
l Tomcat 8.0 l JDK 1.8 |
|
Oracle数据库服务器(2台) | Intel Xeon
主频3000MHz以上(四核) 内存 16G+ 硬盘:50G+ 网卡:千兆网卡 |
l CentOs 7.0
l Oracle 11g R2
|
|
文件服务器 | 可使用磁盘陈列来替代 |
第4章、联系我们
- QQ:1361783075
- 邮箱:lwmailhj@foxmail.com
- 地址:广州市庭园路163号北座909-910