AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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:574414
用户头像

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

关注

评论

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

[Go WebSocket] 多房间的聊天室(一)思考篇

HullQin

Go golang 后端 websocket 9月月更

Zilliz 论文入选数据库顶会 VLDB'22

Zilliz

数据库 分布式 云原生 VLDB'22

JavaWeb -JavaBean MVC Filter 监听器 过滤器

喜羊羊

9月月更

JavaScript 基础知识

喜羊羊

9月月更

【活动预告】数据集成海外专场Meetup:走进Shopee,聊透SeaTunnel优化实践

Apache SeaTunnel

技术分享 数据同步 数据集成 社区活动

如何让开发者直接在应用后台控制用户的运动状态?

HarmonyOS SDK

Hi3861 通过UART串口协议与其它开发板进行通信

OpenHarmony开发者

OpenHarmony

调用 sap.ui.base.ManagedObject 的构造函数时,如何传递绑定路径进去

汪子熙

JavaScript SAP SAP UI5 ui5 9月月更

数据科学家、数据工程师和数据分析师三个角色的区别是什么

雨果

数据分析师 数据科学 数据工程师

客户案例|宜泊科技怎样实现智慧停车可观测

观测云

这份数据安全自查checklist请拿好,帮你补齐安全短板的妙招全在里面!

京东科技开发者

数据库 安全 数据安全 云安全 京东云

讲究卡路里多少的美食出圈了!维小饭被评为“2022中国轻食十大品牌”

联营汇聚

Java 多线程:基础

Java快了!

java;

库调多了,都忘了最基础的概念 <锁与线程篇1>

知识浅谈

线程 9月月更

4天带你上手HarmonyOS ArkUI开发

HarmonyOS开发者

HarmonyOS

降本:云原生可观测性新定义

观测云

VUE 项目本地没有问题,部署到服务器上提示错误

HoneyMoose

Linux系统安装Redis

Centos 7 redis 底层原理 9月月更

Sprint Review能不能做成Demo演示?

LigaAI

Scrum 敏捷开发 迭代增量开发 高效办公 企业号九月金秋榜

nft系统开发

开源直播系统源码

区块链 NFT 数字藏品 数字藏品软件开发

数据治理(十一):数据安全管理Ranger初步认识

Lansonli

数据治理 9月月更

Qt|自定义Widget实现互斥效果问题

中国好公民st

qt QWidget 9月月更

云数据库技术|“重磅升级”后再测TDSQL-C

数据库 polarDB 玖章算术 TDSQL-C

面试突击:什么是跨域问题?如何解决?

Java快了!

java;

【JavaWeb】Servlet系列——使用纯Servlet做一个单表的CRUD操作

胖虎不秃头

Web java; 9月月更

javaweb-JSP

喜羊羊

9月月更

TDengine支持多种写入协议,四种写入方式提效大全

TDengine

tdengine 开源 时序数据库 企业号九月金秋榜

ChaosBlade Java 场景性能优化,那些你不知道的事

Java快了!

java;

为什么越来越多博士逃离科研?

博文视点Broadview

中秋节,华为云AI送上超级大月亮制作教程,体验赢开发者键鼠套装

华为云开发者联盟

人工智能 华为云 中秋节 企业号九月金秋榜

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