HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

关注

评论

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

敬畏用户

FunTester

软件测试 测试 用户 FunTester 用户思维

模块九毕业设计

以吻封笺

模块九作业:设计电商秒杀系统

Felix

容器 & 服务:Kubernetes API Server访问问题

程序员架构进阶

架构 Kubernetes 容器 Helm Charts 10月月更

stm32-HAL使用stop模式后DMA初始化的问题

良知犹存

stm32

数据库优化之explain 的使用和常用的SQL优化或索引优化

Regan Yue

数据库 数据库优化 Regan Yue 10月月更

5款良心工具,专治各种流氓顽固软件!

Jackpop

大神Jeff Dean相关的一些项目

春秋易简

别被vector最后一个元素erase错误

良知犹存

c++

半年时间,拍摄8省市10个案例,我们见到了这样的智能中国

脑极体

技术公众号小白互助网络

Felix

GitHub 微信公众号 自媒体

10. python入门速通教程之类、继承类、类中的特殊方法

梦想橡皮擦

10月月更

设计千万级学生管理系统的考试试卷存储方案

Rabbit

模块9

Geek_ywh40v

在开源项目或工作项目中使用git建立fork仓库

良知犹存

git

Linux开发coredump文件分析实战分享

良知犹存

Linux

012云原生之微服务

穿过生命散发芬芳

云原生 10月月更

微博评论高性能高可用计算架构

白开水又一杯

#架构实战营

k8s replicaset controller源码分析(1)-初始化与启动分析

良凯尔

Kubernetes 源码分析 Kubernetes源码 #Kubernetes#

产品经理职业发展框架

俞凡

产品经理 产品管理 认知

iOS开发独家秘籍-代码块Code Snippets

iOSer

ios 代码 ios开发

小程序中如何显示Markdown文本

Changing Lin

10月月更

MacBook的隐藏功能

IT蜗壳-Tango

10月月更

风雨兼程,零代码训练营第四期顺利结业

明道云

SpringBoot 实战:优雅的使用枚举参数(原理篇)

看山

Java Spring Boot Effective Spring 10月月更

stm32-HAL使用usart发送中断判断发送标志库问题

良知犹存

stm32

一文带你盘点“微服务”中的技术点

Simon郎

微服务 Spring Cloud spring cloud alibaba java

【SpringCloud技术专题】「Hystrix源码」分析故障切换的运作流程

洛神灬殇

源码分析 SpringCloud Hystrix 熔断器 10月月更

马拉车算法,其实并不难!!!

秦怀杂货店

数据结构 算法 LeetCode

业务中台数据一致性方案

慕枫技术笔记

后端 引航计划

如何进行用户故事估算——Ethan分享观后感

Bruce Talk

敏捷 随笔 Agile User Story Product Owner

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