Activiti的基本介绍

Activiti简介

Activiti 是由 jBPM 的创建者 Tom Baeyens 离开 JBoss 之后建立的项目,构建在开发 jBPM 版本 1 到 4 时积累的多年经验的基础之上,旨在创建下一代的 BPM 解决方案。

Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进行流程调度。

Activiti 作为一个遵从 Apache 许可的工作流和业务流程管理开源平台,其核心是基于Java的超快速、超稳定的 BPMN2.0 流程引擎,强调流程服务的可嵌入性和可扩展性,同时更加强调面向业务人员。

Activiti 流程引擎重点关注在系统开发的易用性和轻量性上。每一项 BPM 业务功能 Activiti 流程引擎都以服务的形式提供给开发人员。通过使用这些服务,开发人员能够构建出功能丰富、轻便且高效的 BPM 应用程序。

Activiti是一个针对企业用户、开发人员、系统管理员的轻量级工作流业务管理平台,其核心是使用Java开发的快速、稳定的BPMN e 2.0流程引擎。Activiti是在ApacheV2许可下发布的,可以运行在任何类型的Java程序中,例如服务器、集群、云服务等。Activiti可以完美地与Spring集成。同时,基于简约思想的设计使Activiti非常轻量级。

 

Activiti的特点

1)数据持久化

Activiti的设计思想是简洁、快速。有过应用开发经验的开发人员都知道应用的瓶颈体现在和数据库交换数据的过程中,针对这一点Activiti选择了使MyBatis,从而可以通过最优的SQL语句执行Command,仅凭如此就能让引擎在速度上保持最高的性能。

2)引擎service接口 

Activiti 流程引擎重点关注在系统开发的易用性和轻量性上。每一项 BPM 业务功能 Activiti 流程引擎都以服务的形式提供给开发人员。通过使用这些服务,开发人员能够构建出功能丰富、轻便且高效的 BPM 应用程序。

ctiviti.cfg.xml文件为核心配置文件,该配置文件集成在Spring的IOC容器当中,可以产生ProcessEngineConfiguration对象,这个对象就是流程引擎的配置对象,ProcessEngine对象则为流程引擎对象,该对象是工作流业务系统的核心,所有的业务操作都是由这个对象所派生出来的对象实现。

Activiti引擎提供了七大Service接口,均通过ProcessEngine获取,并且支持链式API编程风格。

3)流程设计器

在jBPM4时代有专门的Eclipse插件可以用来设计jPDL,同样Activiti团队也专门设计了用来设计BPMN 2.0规范的流程谩计器-Eclipse Designer。此外还有Signavio公司为Activiti定制的基于Web的Activiti Modeler流程设计器。喜欢用IDEA的,IDEA也有actiBPM插件支持。

4)原生支持Spring

Activiti原生支持Spring,这一点对企业应用来说尤为重要:可以很轻松地进行Spring集成,非常方便管理事务和解析表达式( Expression)。

5)分离运行时与历史数据

Activiti继承自jBPM4,在表结构设计方面也遵循运行时与历史数据的分离,这样的设计可以快速读取运行时数据,仅当需要查询历史数据时再从专门的历史数据表中读取。这种设计方式可以大幅提高数据的存取效率,尤其是当数据日积月累时依然能够快速反应。

 

Activiti架构与组件

Activiti Engine

作为最核心的模块,提供针对BPMN 2.0规范的解析、执行、创建、管理(任务、流程实例)、查询历史记录并根据结果生成报表。

Activiti Modeler

是模型设计器,其并非由Activiti公司所开发,而是由业界认可的Signavio公司赠送的(Signavio e原本是收费的产品,现在被免费授权给Activiti用户使用)。适用于业务人员把需求转换为规范流程定义。

Activiti Designer

功能和Activiti Modeler类似,同样提供了基于BPMN 2.0规范的可视化设计功能,但是目前还没有完全支持BPMN规范的定义。适用于开发人员,可以把业务需求人员用Signavio设计的流程定义(XML格式)导入到Designer中,从而让开发人员将其进一步加工成为可以运行的流程定义。

Activiti Explorer

可以用来管理仓库、用户、组,启动流程、任务办理等。此组件使用REST风格API,提供一个基础的设计模型。如果业务简单,也可以直接使用无需开发。还可以作为后台管理员的流程、任务管理系统使用。

Activiti REST

提供Restful风格的服务,允许客户端以JSON的方式与引擎的REST API交互,通用的协议具有跨平台、跨语言的特性。

 

Activiti与jBPM5的对比

jBPM5 和 Activiti 同样支持 BPMN2.0 规范,但是实际上jBPM5 已经推翻了 jBPM3 和 jBPM4 的架构,使用了 Drools Flow 作为工作流架构,这对于原来使用 jBPM3 和 jBPM4 的用户来说是非常郁闷的一件事(从零开始重新学习 jBPM5),而 Activiti 更像是原来 jBPM4 的延续,因此对于原来使用 jBPM3 和 jBPM4 的用户来说,更推荐使用 Activiti,但是由于 JBoss 中有一些优秀的项目(例如规则引擎 Drools、Seam 等),jBPM5 与这些项目进行整合具有先天的优势,因此如何进行选择还需要进行权衡。

从技术组成来看,Activiti最大的优势是采用了PVM(流程虚拟机),支持除了BPMN2.0规范之外的流程格式,与外部服务有良好的集成能力,延续了jBPM3、jBPM4良好的社区支持,服务接口清晰,链式API更为优雅;劣势是持久化层没有遵循JPA规范。jBPM最大的优势是采用了Apache Mina异步通信技术,采用JPA/JTA持久化方面的标准,以功能齐全的Guvnor作为流程仓库,有RedHat(jBoss.org被红帽收购)的专业化支持;但其劣势也很明显,对自身技术依赖过紧且目前仅支持BPMN2。

序号

技术组成ActivitijBPM5

1

数据库持久层ORMMyBatis3Hibernate3

2

持久化标准

EJB JPA规范

3

事务管理

MyBatis机制/Spring事务控制

Bitronix,基于JTA事务管理

4

数据库连接方式

Jdbc/DataSource

Jdbc/DataSource

5

支持数据库

Oracle、SQL Server、MySQL、H2、内存数据库等

Oracle、SQL Server、MySQL、内存数据库等

6

设计模式

命令(Command)模式、观察者模式等

7

内部服务通讯

Service间通过API调用

基于Apache Mina异步通讯

8

集成接口

SOAP、Mule、RESTful

消息通讯

9

支持的流程格式

BPMN2、xPDL、jPDL等(由PVM实现)

目前仅只支持BPMN2 xml

10

引擎核心

PVM(流程虚拟机)

Drools

11

技术前身

jBPM3、jBPM4

Drools Flow

12

所属公司

Alfresco

jBoss.org

jBPM5 和 Activiti的主要相似之处:

1)都是BPMN2过程建模和执行环境。

2)都是BPM系统(符合BPM规范)。

3)都是开源项目-遵循ASL协议( Apache的 软件许可)。

4)都源自JBoss(Activiti5是jBPM4的衍生,jBPM5则基于Drools Flow)。

5)都很成熟,从无到有,双方开始约始于2年半前。

6)都有对人工任务的生命周期管理。 Activiti5和jBPM5唯一的区别是jBPM5基于WebService - HumanTask标准来描述人工任务和管理生命周期。 如有兴趣了解这方面的标准及其优点,可参阅WS - HT规范介绍 。

7)都使用了不同风格的 Oryx 流程编辑器对BPMN2建模。 jBPM5采用的是 Intalio 维护的开源项目分支。 Activiti5则使用了Signavio维护的分支。

  • 7
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
《疯狂Workflow讲义:基于Activiti的工作流应用开发》内容概括: 本书是一本介绍Java工作流领域的书,以Activiti为核心,内容囊括了多个流行的企业级Java EE框架,全书主要可分为以下几个部分。 第1部分:对Activiti的基础知识进行讲解,包括框架起源、基本的设计模式、数据库设置以及框架配置等,该部分知识可以帮助读者对Activiti的基础有一个更深入的认识,对Activiti的设计有一个初步的印象,该部分内容也可以作为整合Activiti到项目中的参考。 第2部分:从源代码的实现上讲解Activiti各个模块的API,除了讲述这些API的作用外,还会引领读者深入到这些API的内部,此部分内容可以作为一份详细的Activiti API的帮助文档。 第3部分:详细讲述了BPMN 2.0规范的内容,包括目前Activiti对该规范的实现情况,在讲解BPMN 2.0规范时,将规范与Activiti的实现进行结合,在通俗易懂的案例下,帮助读者对Activiti的实现以及BPMN 2.0规范有更深入的了解。 第4部分:如何在实际企业应用中使用Activiti,并与其他流行的开源框架进行整合,包括企业应用开发所必需的Web Service、企业服务总线、规则引擎、IoC框架和ORM框架等,除了本书主要的Activiti知识外,这些企业中常用框架的知识,也可以在该部分内容得到体现,通过学习这部分内容,可以极大丰富读者的实战知识,让读者可以成为一个更全面的技术人员。 第5部分:在第17章中讲述了Activiti的核心架构流程虚拟机以及Activiti的表单知识,本书最后一章,通过讲解一个办公自动化系统的开发过程,让读者更了解Activiti在实际生产中的使用,让本书的内容不仅仅停留在理论的层次,更为读者开辟了实践的道路。
### 回答1: "Activiti 实战 pdf" 是一本介绍Activiti流程引擎实战的电子书。该书主要介绍Activiti架构、流程设计、流程部署、活动和事件处理、任务管理、用户管理、历史记录、定时任务等内容。通过该书的学习,读者可以了解Activiti基本原理,掌握Activiti基本使用方法,在实际项目中使用Activiti开发高效、可靠的业务流程应用。 Activiti是一个开源的BPM流程引擎,它实现了BPMN 2.0规范,并提供了基于Java和Spring的API和服务。Activiti可以方便地与各种应用和平台集成,例如Spring、Spring Boot、Camunda、Drools、MuleSoft等。Activiti被广泛应用于企业级业务流程管理、工作流、电子商务、人力资源、金融等领域。 该书的作者是Tijs Rademakers、Ronald van Luttikhuizen、Jos Dirksen等人,他们是Activiti架构师和专家。该书除了提供详尽的文档和指导外,还包含了一些实践案例和示例代码,可以帮助读者更好地理解和运用Activiti。无论是初学者还是有经验的开发者,都可以从该书中获得收益,它是一本不可多得的Activiti学习资源。 ### 回答2: Activiti 实战 PDF 是一本关于 Activiti 工作流引擎的实践指南书籍,该书适合对工作流引擎有一定了解并希望使用 Activiti 实现工作流的开发人员和架构师阅读。 该书主要涵盖了 Activiti基本概念和使用方法,包括工作流引擎的基础知识、流程定义和流程实例的创建、流程图的绘制、任务分配和处理、流程监控和报表等。 这本书通过丰富的实例代码和图示,展示了 Activiti 在实际项目中的应用场景,并详细介绍了如何配置和使用 Activiti,如如何在 Java 代码中使用 Activiti API,如何使用 Spring 集成 Activiti 等。 此外,该书还包含了一些高级的话题,如如何自定义 Activiti 服务、如何在 Activiti 中使用规则引擎和消息中间件等,这些内容对于需要深入了解 Activiti 的开发人员来说具有很大的价值。 总之,Activiti 实战 PDF 对于掌握 Activiti 工作流引擎的开发人员和架构师来说是一本非常实用的实践指南,它不仅能够帮助读者掌握 Activiti基本概念和使用方法,还能够帮助他们实现更加复杂的工作流场景。 ### 回答3: Activiti 实战 PDF 是一本关于 Activiti 工作流引擎的实战指南,主要面向开发者和系统管理员,并以实际案例为基础,介绍Activiti 的核心概念、基本流程的构建以及高级特性等内容。 本书由熟悉 Activiti 的领域专家撰写,详细介绍Activiti 的工作原理、配置和使用方式。其中涵盖了多种流程设计方法,包括界面设计、BPMN 规范和 XML 定义等,并结合实际案例演示了如何使用 Activiti 构建自定义流程应用。 此外,本书还阐述了 Activiti 中的用户、任务、表单、数据和事件等概念,以及如何使用 Activiti Explorer 管理和监控流程的运行与执行情况。最后,本书还介绍了使用 Activiti 进行流程自动化部署、管理与维护的技巧和方法。 总的来说,Activiti 实战 PDF 为初学者和高级用户提供了深入学习 Activiti 工作流引擎的最佳实践方法,帮助用户将其应用于实际开发项目中,提高工作效率和流程管理的可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值