写点什么

Activiti 5.0 GA 发布——基于 Apache 2 许可的 BPMN 2 引擎

  • 2011-01-11
  • 本文字数:2359 字

    阅读完需:约 8 分钟

上个月,Alfresco 发布了 Activiti 5.0 GA ——基于 Apache 2 许可的 BPMN 2.0 实现。InfoQ 有幸采访到了该项目领导 Tom Baeyens 一探究竟。Tom 还是 jBPM 项目的创建者和前任项目领导。

Activiti 项目是目前市面上唯一一个基于 Apache 2 许可的 BPMN 2.0 实现。作为一个标准,BPMN 2.0 因统一了工作流社区而声名鹊起。BPMN 1.0 为业务流程建模定义了一个标准,同时还提供了众多定义良好的工作流模式。BPEL 1.0 则是另一个标准,定义了运行期中工作流的执行语义。目前,厂商已经提供了BPMN 1.0 工具以及BPEL 执行引擎,但问题由此产生,因为这些工具可以对BPEL 无法描述的BPMN 1.0 流程进行建模,这限制了BPMN 的应用。BPMN 2.0 则通过制定模型语义和执行语义解决了这个问题。

InfoQ:什么是工作流,普通的 Java 开发者为何要关注工作流?其使用案例如何?

Tom Baeyens:所谓流程,就是对 BPM 系统(如 Activiti)所能执行的一系列步骤的描述。流程的基本属性是他们可由一张图表示出来,能以有向图的形式展现出步骤与转换关系。在几乎所有的业务应用中,需求都包含了高层次步骤的序列。将这些步骤抽取到流程中会得到清晰、简化、易于维护的应用。Activiti 包含了大量的步骤,如用户任务、定时器等等,这些步骤在流程中是很容易使用的,但如果想要自己编写 Java 代码来实现就很困难了。

InfoQ:Activiti 是嵌入式的么?独立使用的?独立使用或是以嵌入式方式使用有哪些区别呢?

Tom Baeyens:Activiti 可以嵌入到任何 Java 应用中,对于 Java 开发者来说,Activiti 只不过是个 jar 文件而已,只需放到 CLASSPATH 下即可。但 Activiti 还可以独立服务器的方式使用。

InfoQ:我们为什么需要使用 Activiti?不是还有其他的 BPM 引擎么?

Tom Baeyens:Activiti 是最容易上手的引擎。我们确信所有阻碍你将其嵌入到应用中的障碍已经一去不复返了。我们提供了一个示例程序,可以让你在很短的时间内运行起 Activiti。Activiti 是透明的,这意味着它并没有什么特别之处。开发者知道他们用的是什么,如何用起来,并且能完全控制好 Activiti。这与传统的 BPM 方式不同,后者更加关注于业务用户,并没有考虑到开发者的感受。对于运行时来说,我们紧密集成了 Java 应用与 Activiti,而传统的 BPM 产品则是自成一体的,很难与应用集成起来。Activiti 的社区颇具活力,很多公司都开始将自己的产品与 Activiti 集成起来了。如果你使用 Spring Integration 或是 ESB,那就非常棒了,因为他们已经与 Activiti 实现了集成。感兴趣的读者可以查看一下团队的花名册,了解一下项目的贡献者,看看这些贡献来自于何处。

InfoQ:Activiti 下一次迭代的路线图如何?

Tom Baeyens:目前,我们的发布周期是以月为单位的。12 月 1 日,我们发布了 5.1, 1 月 1 日发布 5.2,以此类推。我们正在计划一些激动人心的特性,如规则集成、Web Service 集成、建模器中的 Activiti 类型插件等等。感兴趣的读者可以查看我们的路线图了解详细信息。

InfoQ:要想上手 Activiti,有没有什么推荐的方法呢?它与其他框架(如 Spring 框架、REST、Mule 或是其他 ESB、Java EE 6 以及企业内容管理系统)集成的很好么?

Tom Baeyens:要想上手 Activiti,我推荐大家看一下示例程序和用户指南。如果是首次使用,那么我们建议你从小处着手。一旦掌握了,那么你需要花费几周时间才能构建好应用完整的功能原型。在 Activiti 引擎的架构中,我们已经集成了所有现有的 Java 环境和框架。我们很欣喜地看到很多公司在帮助我们构建这些集成。比如说 SpringSource,整个应用可以通过在 Spring 的 context 文件中声明 Bean 来实现配置。甚至还包含平滑的事务管理集成。另外就是 MuleSoft。他们贡献了 Web Service 调用,保证可以将 Activiti 引擎平滑地嵌入到其产品当中。此外,还有一个开箱即用的 REST 接口。在下一版本中,我们计划增加关于如何在应用服务器环境中配置并运行 Activiti 的相关文档。代码基本已经写好了,但我们希望在将这些特性公开到文档前搭建好自己的的 CI 环境。

InfoQ:一般来说,Activiti 和工作流的目标市场是什么?这些工具会简化业务分析师与开发者的工作么?

Tom Baeyens:团队使用 BPM 平台如 Activiti 的方式大相径庭。一些团队只有开发者,他们只是将引擎嵌入到自己的应用中并编写流程。在其他环境中,除了开发者与系统管理员外还涉及到业务人员。每个组织都有自己的组织方式。借助于 Activiti Cycle,我们现在拥有了一个协作环境,所有人都可以在这个环境中彼此交互与协作,无需强制使用特殊的工作方式。

InfoQ:如果遇到问题去哪问呢?

Tom Baeyens:我们的用户论坛是提问的最好去处。

InfoQ:有什么特别的原因要去使用 BPMN 2 么?为何要从私有的标记语言如 jBPM 的 jPDL 转换到 BPMN 2 呢?

Tom Baeyens:BPMN 2.0 好的一点是整个业界都围绕着这一标准进行操作。在这之前,所有工具和引擎都在使用自己的私有语言,现在大量的工具都兼容于 Activiti,因为我们支持 BPMN 2.0 这一标准。

InfoQ:如果使用 BPMN 2 有问题,那么可以定制 Activiti 并添加新的行为么?

Tom Baeyens:创建 jBPM 的一个主要目标就是创建可插拔的活动。这意味着我们可以将新的步骤插入到流程图中并加以配置。我们通过流程虚拟机(PVM)成功实现了这个目标。现在,Activiti 也基于流程虚拟机这个原则。但这次我们将同样的活动可插拔性这一概念延伸到了工具上。Activiti 包含了一个基于 Web 的建模器和一个图形化的流程设计器 Eclipse 插件。现在的目标是你只需使用标签名和其他信息将实现了运行期行为的类注解起来就行了。目前,设计器 Eclipse 插件已经可以从类中加载这些信息,将新的活动类型添加到面板中并向用户提供漂亮的表单来输入这些活动的详细配置信息。

查看英文原文: Activiti 5.0 GA, the Apache 2 Licensed BPMN 2 Engine Released

2011-01-11 08:574338
用户头像

发布了 88 篇内容, 共 264.0 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

Linux系统安装MySQL

MySQL Centos 7 navicat 9月月更

《小米创业思考》之三:互联网七字诀

郭明

读书笔记

自适应熔断原理分析与源码解读

万俊峰Kevin

Go golang 熔断 go-zero 限流熔断

LeetCode-20. 有效的括号(java)

bug菌

9月日更 Leet Code 9月月更

嗖的一下就码出一个CLI

蛋先生DX

typescript 前端 命令行 cli 代码生成

美团前端一面常见面试题

beifeng1996

JavaScript 前端

我用WireShark结合一款神器成功绘画出入侵者的地图!

wljslmz

Wireshark 9月月更

Spring 源码阅读 29:基于 XML 配置初始化 Spring 上下文过程总结(10+详细流程图)

Java快了!

xml

喜提“双黄蛋” | 旺链科技亮相2022世界人工智能大会

旺链科技

区块链 产业区块链 企业号九月金秋榜 人工智能大会

数据治理(九):Atlas界面操作

Lansonli

数据治理 Atlas 9月月更

边缘服务网格 osm-edge 数据平面基准测试

Flomesh

Service Mesh 服务网格

数据库的视图怎么用?

阿柠xn

MySQL 运维 视图 数据库· 9月月更

如何重新评估未完成的工作

ShineScrum

Scrum 敏捷 DoD 未完成的工作

Hugging Face:成为机器学习界的“GitHub”

OneFlow

神经网络 机器学习

你真的理解C语言的灵魂 “ 指针 ” 吗?(初阶篇)

Albert Edison

指针 C语言 野指针 9月月更

Java进阶(八)Java加密技术之对称加密、非对称加密、不可逆加密算法

No Silver Bullet

对称加密 非对称加密 9月月更 不可逆加密

看得懂又好看的数学书,万人亲测的硬核教程!

博文视点Broadview

【FAQ】接入华为应用内支付服务常见问题解答

HarmonyOS SDK

[极致用户体验] 在微信大字号模式下,网页样式乱了怎么办?

HullQin

CSS JavaScript html 前端 9月月更

分布式中灰度方案实践

Java 架构

京东前端面试题

loveX001

JavaScript 前端

库调多了 都忘了最基础的概念-进程/线程篇

知识浅谈

9月月更 线程与进程

NFT商城开发——NFT数字收藏平台开发解决方案

开源直播系统源码

NFT 元宇宙 数字藏品 数字藏品开发

Spring5源码14-SpringMVC-HandlerMapping

Java快了!

springmvc

New Wireless Technologies to Help Meet Aviation Demands IPQ6018/IPQ6000/IPQ6010/Wallys

wallys-wifi6

IPQ6010 ipq6018 IPQ6000

从系统架构分析安全问题及应对措施

京东科技开发者

网络安全 安全 系统架构 信息安全 ssl

消除 JavaScript 的一些“异味”

掘金安东尼

JavaScript 前端 9月月更

数据中台改名DaaS平台?究竟什么是数据即服务(DaaS)?

雨果

DaaS数据即服务

SPL工业智能:发现时序数据的异常

石臻臻的杂货铺

SPL 9月月更

资深技术笔译总结的这7条建议,看完提PR效率倍增

OpenHarmony开发者

OpenHarmony

LeetCode-14. 最长公共前缀(java)

bug菌

9月日更 Leet Code 9月月更

Activiti 5.0 GA发布——基于Apache 2许可的BPMN 2引擎_Java_Josh Long_InfoQ精选文章