本编文章将详细介绍什么是流程引擎,为什么学习,以及为什么选择activiti作为学习的开源框架。并且将介绍本专栏的一个详细学习目录。
1.什么是流程引擎?
流程引擎说白了就是用来驱动业务按照我设定的固定流程去流转的东西,在复杂多变的业务情况下,使用既定的流程能够大大降低我们设计业务的成本,并且保证了我们业务执行的准确性。
eg1 : 企业常见审批
eg2:网上购物业务
2.为什么需要学习流程引擎?
早期 | 现在 |
---|---|
企业OA | 电商购物 |
CRM | 金融出行 |
流程审批 | 中台支撑 |
… | … |
流程引擎较为常见的应用系统是在“OA”等需要企业办公系统中,为无纸办公,信息化办公带来了巨大的作用。目前成熟的流程引擎已经广泛运用到“电商”等领域,新的应用则是在中台系统中做业务拓展的支撑。
为什么要学习流程流引擎总结为以下几点:
1.流程引擎在互联网公司快速盛行,不可或缺
2.流程引擎是java中高级工程师进阶利器
3.掌握流程引擎技术可以提升技术架构和业务建模能力
4.为你的技能栈填上重重的一笔,有效提高你大型互联网公司面试的资本
流程引擎对业务和开发可以起到非常良好的作用:可以快速响应、灵活调整线上流程;业务和开发基于流程模型进行沟通,基于业务建模快速部署;流程可视化,方便查看流程的运行进展
流程机制对团队的作用:提高效率,减少等待;规范行为,落实制度;协同内外,快速响应;监控全面,提升执行。
3.为什么选择activiti?
activiti官网
activiti与jBPM的对比:
1.目前这二者基本趋势可以看到activiti是越来越比jBPM运用广泛,这是大势所趋
2.二者主要特性对比如下:
技术组成 | Activiti | jBPM5 |
---|---|---|
数据库持久层ORM | MyBatis3 | Hibernate3 |
持久化标准 | 无 | JPA规范 |
事务管理 | MyBatis机制/Spring事务控制 | Bitronix,基于JTA事务管理 |
数据库连接方式 | Jdbc/DataSource | Jdbc/DataSource |
支持数据库 | Oracle、SQL Server、MySQL等多数数据库 | Oracle、SQL Server、MySQL等多数数据库 |
设计模式 | Command模式、观察者模式等 | |
内部服务通讯 | Service间通过API调用 | O基于Apache Mina异步通讯 |
集成接口 | SOAP、Mule、RESTful | 消息通讯 |
支持的流程格式 | BPMN2、xPDL、jPDL等 | 目前仅只支持BPMN2 xml |
引擎核心 | PVM(流程虚拟机) | Drools |
技术前身 | jBPM3、jBPM4 | Drools Flow |
所属公司 | Alfresco | jBoss.org |
总结如下:
activiti是java实现了工业领域BPMN2.0的规范标准框架,老牌、成熟稳定
目前用户众多、社区活跃、趋势较好
易于上手,基于Spring、MyBatis常用互联网技术堆栈