写点什么

Tom Baeyens 谈过程虚拟机

  • 2008-05-04
  • 本文字数:2419 字

    阅读完需:约 8 分钟

随着 jBPM 过程虚拟机(Process Virtual Machine)最近alpha 测试版的发布,JBoss 距离实现一个支持多定义语言的过程执行语言的目标又进了一步。这次发布也标志着jBPM 受到关注的增多,最近还提供了一个更新站点。InfoQ 就这个项目,以及 PVM 如何改变 BPM 领域采访了项目的带头人 Tom Baeyens。InfoQ:您能向 InfoQ 的读者介绍一下 PVM 概念的历史和目的吗?****Tom:过程虚拟机(Process Virtual Machine)是我们在 jBPM 探索过程中核心概念的最终产物。

jBPM 一开始使用被称为 jPDL 的单一过程语言,但是在成为 JBoss 一部分后不久,用户就一直问我们是否也能支持 BPEL。那时我意识到 jPDL 实现和 BPEL 有许多重叠的地方。自从那时起,我们就一直从过程语言特殊部分中抽取公共部分。

jBPM 3 已经有了能工作的全部概念,它能运行多种过程语言,如天生就支持 jPDL 和 BPEL。但是缺点是它仍是一个大代码库,不是真正的模块。因为 BPM 和工作流领域完全都是各自为政,多种过程语言的需要日益明显。因此,我们需要一个更模块化的方法。

那就是过程虚拟机出现的原因。它是一个用来构建和执行过程图的代码库。过程语言的本地实现可以构建于过程虚拟机之上。此外,它可以运行在任何Java 环境之内,不论它是标准Java、企业Java,还是SEAM 或Spring。

InfoQ:为什么这很重要?Tom:一方面,业务过程管理(BPM)和工作流领域完全都是各自为政。有很多针对特定用例和环境的不同类型的过程语言。这和领域特定语言(DSL)有些相似;不是一门语言就可以把全部事情都搞定。目前,所有这些语言都有一套自己的单片式(monolithic)引擎,这并不实用,而且它们也很难包含到一个应用之中。

过程虚拟机提供了一个简单的统一结构来使这些过程语言运行在一个核心技术之上。

另一方面,Java 领域也同样是分裂的。与那些必须在一个单独服务器上隔离运行的传统过程引擎不同,过程虚拟机可以内嵌到你的应用中运行,不管什么Java 环境。这大大降低了使用过程技术的项目的门槛,因为过程持久化可以被透明地与应用持久化集成。

InfoQ:应用开发人员需要使用过程虚拟机本身工作吗? Tom:绝大多数的应用开发人员不用使用过程虚拟机本身工作,而是使用构建在它之上的一种过程语言,如 jPDL、BPEL 或 XPDL。

但是,应用开发人员了解过程虚拟机基本概念还是很重要的。就像开发人员为了使用关系数据库而需了解表、列、主键和 SQL 查询基本概念一样,他们需要了解过程虚拟机概念,如过程定义、执行异常和异步延拓(continuation)。

InfoQ:Bull 现在已经与 JBoss 合作来支持 PVM 概念——你们在和其他合作伙伴共事吗?

Tom:Bull 的确和我们就过程虚拟机进行合作。他们贡献了过程虚拟机中的一些基础功能,并主导 BPEL 和 XPDL 活动实现。还有些其他公司尚在联络中,但是很遗憾我们还不能透露他们。但是我们看到明显的迹象表明,过程虚拟机将巩固 BPM 领域中的 Java 的势力。
InfoQ:到现在为止,有哪些主要挑战是你们不得不克服的?

Tom:目前关于分析、实现和服务编制存在的混淆。对于过程虚拟机的应用,我们注意到了 3 个清晰分离的用例。让我们来讨论它们,并强调哪种过程语言最适合哪个用例:

  1. 对实现的分析:这是当今单纯的(pure-play)BPM 套件的目标。从一个分析图开始,然后将其转换成可执行的软件。许多传统厂商试图用大量魔法掩盖分析过程图和可执行软件间的重大区别。 这暗示着:图是负责需求的非技术人员和负责自动化的技术人员之间重要的沟通工具。但是大体上,没有技术手段能够从非技术人员的输入产出可用于生产环境的软件。

    要使分析人员和开发人员之间能够协作,可执行过程语言就必须足够灵活完全匹配分析图。像可自定义活动实现和事件监听器这样的特性对于确保分析人员在图变得可执行之后仍能认出它来说至关重要。jPDL 非常适合这个用途。它还提供了一个与 Java 技术的清晰集成,一个开发人员喜欢的简洁、易读的 XML 语法。XPDL 也支持这个用例。XPDL 的语法更加复杂和缺乏可读性,但是它的移植性更好,因为更多的厂商正在采用这种标准,虽然缓慢但是稳定。

  2. 异步 Java 架构:就使用异步架构来说,Java 的确没提供吸引眼球的解决方案。事实上,这是个大麻烦。 一方面,企业平台有用于异步消息的 JMS 和 EJB 定时器。但是,那些都非常的底层。你需要很多部署描述符来支持一个长期运行的过程,非常麻烦。而且接下来,关于事物如何关联的整体视图完全不见了。通过 jPDL,这个整体视图清晰可见,而且热部署就像做饼一样容易。只需在一个图形工具中重新配置图中的变迁(transition)并重新部署,而不是花上好几个小时书写麻烦的企业部署描述符。

    另一方面,标准 Java 平台完全不支持异步架构。jPDL 和标准 Java 平台结合得非常紧密,它利用了来自过程虚拟机的工作执行器(job executor)来提供异步延拓(continuation)和定时器。

因此现在,由于有了基本的过程虚拟机基础设施,一个单一 jPDL 过程就可捕获人、Java 代码和其他事物的异步编制,并可使那个逻辑在标准和企业 Java 环境间可移植。
3. 服务编制:对于服务编制来说,BPEL 已经广泛被接受,并成为被支持的标准。它操作在企业服务总线(ESB)级别,因此它是一种集成技术。一个 BPEL 过程可以(过分简化的)被认为是 Web 服务级别的脚本。WSDL 服务可通过 BPEL 被描述成粗粒度的服务。

InfoQ:读者可以在哪里找到关于 PVM 的更多信息?Tom:首先,6 月 6 号在都柏林会举办一个 jBPM 社区日的活动。这是一次 jBPM 核心开发人员、合作伙伴、客户和其他只是想更多了解 jBPM 的人之间绝佳的沟通机会。活动是免费的,在一个周五下午。欲知详情,请查看 jBPM 社区日 Wiki 页或发邮件至 dublin@jbpm.org

其次,对于那些缺乏耐心的读者,这儿有一个已经手把手地解释如何使用它来构建活动和开始运行它的 PVM 手册

最后,这儿还有一篇 InfoQ 文章“过程组件模型:下一代工作流?”,它已于最近发布,给出了关于这一主题的更多背景资料。

查看英文原文: Tom Baeyens on the Process Virtual Machine

2008-05-04 04:171133
用户头像

发布了 255 篇内容, 共 57.4 次阅读, 收获喜欢 10 次。

关注

评论

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

一次偶然机会发现的MySQL“负优化”

骑牛上青山

MySQL 数据库 索引

玖章算术CEO叶正盛:程序员必须掌握的数据库原理

NineData

数据库 程序员 开发 dba 数据库技术

MySQL性能优化浅析及线上案例

京东科技开发者

MySQL 性能优化 索引性能 数据库· 企业号 1 月 PK 榜

Databend v0.9.0 版本发布

Databend

技术型创业公司如何把握发展与管理的节奏感?

石云升

极客时间 1月月更 技术领导力实战笔记

Cloud Kernel SIG月度动态:建立社区第三方驱动研发流程、发布ANCK 4.19-027版本 | 龙蜥 SIG

OpenAnolis小助手

内核 龙蜥社区 sig 版本发布 anck

理想问鼎销冠,数据库能帮助新能源车企赢得下半场么?

YMatrix 超融合数据库

案例分享 新能源汽车 造车新势力 超融合数据库 YMatrix

被面试官问住了,MySQL两阶段提交是什么鬼?

程序员拾山

MySQL 面试

TDengine 时序数据特色查询语法详解,助力时序场景下的应用开发

TDengine

数据库 tdengine 时序数据库

致 Tapdata 开源贡献者:聊聊 2022 年的进展和新一年的共建计划

tapdata

为什么MySQL数据删除了一半,表文件体积却没变小?

程序员拾山

MySQL

华为云云原生数据库:A Philosophy about “less”

华为云开发者联盟

数据库 后端 华为云 企业号 1 月 PK 榜

适配 Laravel 多版本的开源项目版本号规划

ModStart

一个 go-sql-driver 的离奇 bug

SOFAStack

【提升团队运营效率】交易履约之订单中心实践

京东科技开发者

平台搭建 平台赋能 数智创新 效能提升 企业号 1 月 PK 榜

Kyligence 成功签约阿斯利康,助力提升商业洞察质量和决策效率

Kyligence

数据分析 指标中台

OpenHarmony如何切换横竖屏?

OpenHarmony开发者

OpenHarmony

Appuploader内测版本详解

雪奈椰子

iOS上架 ios打包

IoTDB 可实现的基本操作 —— 数据写入、删除、导出、元数据管理、时区设置 | 小白教程文档(四)

Apache IoTDB

时序数据库 国产数据库

利用 IoTDB 替换 Druid.io 服务太极股份电厂、军工制造类项目,采集精度达纳秒级

Apache IoTDB

时序数据库 国产数据库

如何利用极狐GitLab 轻松管理NPM依赖发布与更新?

极狐GitLab

node.js DevOps npm 依赖 极狐GitLab

小场景解决大问题|明道云在京东方的落地实践

明道云

maven pom 中有用的两个配置

JefferLiu

企业内部沟通,即时通讯软件要怎么选?

WorkPlus

WorkPlus移动办公平台,助力企业随时随地“指尖办公”

WorkPlus

IoTDB 可实现的基本操作 : 数据导入、基本查询、聚合查询 | 小白教程文档(三)

Apache IoTDB

国产时序数据库

服务网格领域的百花齐放,是否存在一个更优解?

API7.ai 技术团队

Service Mesh 服务网格 APISIX

来自掘金和 InfoQ 的“新年礼物”,时序数据库 TDengine 荣登两大知名技术社区重磅榜单

TDengine

数据库 tdengine 时序数据库

北邮一号卫星搭载 IoTDB 成功发射!高效轻量数据管理,助力航天观测分析

Apache IoTDB

数据库 时序数据库 国产数据库

特定领域知识图谱(DKG)融合方案:技术知识前置【一】-文本匹配算法、知识融合学术界方案、知识融合业界落地方案、算法测评KG生产质量保障

汀丶人工智能

自然语言处理 知识图谱 实体对齐

Sealer 0.9 :帮助集群和分布式应用实现 Build、 Share、Run

阿里巴巴云原生

阿里云 开源 云原生 sealer

Tom Baeyens谈过程虚拟机_Java_Gavin Terrill_InfoQ精选文章