QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

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

关注

评论

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

算法攻关 - 验证二叉搜索树 (O(n))_098

小诚信驿站

刘晓成 小诚信驿站 28天写作 算法攻关 验证二叉搜索树

这是看脸的时代吗——晕轮效应

Justin

心理学 28天写作 游戏设计

互联网人一天24小时在做些啥《打工人的那些事》

谙忆

二分查找以及变体

一个大红包

3月日更

喜讯 | 音视频云服务商拍乐云荣登「2021值得关注的中国教育公司」榜单

拍乐云Pano

音视频 在线教育 互动课堂 白板 教育科技

公平

ES_her0

28天写作 3月日更

微服务简介

insight

微服务 3月日更

推荐一款小众且好用的 Python 爬虫库

星安果

Python 爬虫 RoboBrowser

云边协同类型

lenka

3月日更

3月12日学习笔记

Nydia

Python With 关键字和语句

HoneyMoose

网页设计指南

张鹤羽

28天写作 3月日更

62图带你入门Docker

我是程序员小贱

容器 面试 3月日更

【数独问题】入门题:判断一个数独是否有效 ...

宫水三叶的刷题日记

面试 LeetCode 数据结构与算法

翻译:《实用的Python编程》05_00_Overview

codists

10 个解放双手超实用在线工具,有些代码真的不用手写

比伯

Java 编程 架构 计算机 技术宅

最简单的JVM内存结构图

叫练

JVM 堆栈 Java虚拟机 堆栈溢出 内存优化

多元化:为什么会产生不良资产?

boshi

战略思考 七日更 创业失败启示录

手机高端化,需要不同却被认同

脑极体

数据湖到底是什么?有什么用?这篇文章告诉你

关二爷大数据笔记

大数据 数据湖 实时数仓

CloudQuery, 一款基于WEB的数据库客户端(转自杨建荣的工作笔记)

BinTools图尔兹

【技术干货】如何评价一款App的稳定性和质量?

性能优化 App 应用崩溃 anr 友盟

微软的各种考试,不知道是不是真的“香”

IT蜗壳-Tango

3月日更

Wireshark 数据包分析学习笔记 Day8

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

算法喜刷刷之验证二叉树的前序序列化

Kylin

算法 3月日更 刷题笔记

(28DW-S8-Day20) 以太坊账户

mtfelix

28天写作

神了!终于有人把困扰我多年的Spring Boot讲明白了

架构 微服务 框架

DCache 分布式存储系统|List 缓存模块的创建与使用

TARS基金会

MySQL nosql 微服务 分布式缓存 TARS

分销的智能变局,华为好望云服务的铁索连环

脑极体

如何与下属沟通?

石云升

程序员 28天写作 职场经验 管理经验 3月日更

高效处理日均超 1000 亿次广告请求!Mobvista 是如何做到的?

亚马逊云科技 (Amazon Web Services)

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