写点什么

Web 服务编配引擎 Apache ODE 1.2 发布了

  • 2008-09-01
  • 本文字数:2195 字

    阅读完需:约 7 分钟

Apache ODE(编配指导引擎)团队 7 月份宣布,它的

1.2 版发布了,其中包含了很多的新特性、改进以及缺陷修订。Apache ODE 是一个 WS-BPEL 兼容的 Web 服务编配引擎,它可以使开发人员根据以 BPEL XML 语法写成的过程描述来编配 Web 服务。

本次发布的版本中包含的主要部分如下:

  • 外部变量允许业务过程变量可见,并可以直接在过程实例之外操作。举个例子来说,这种机制可以用在外部配置过程的数据库访问或者服务调用地址。
  • 支持 WSDL HTTP 绑定,并提供了允许 REST 式 Web 服务调用的扩展。
  • 支持两个通信层:一个基于 Axis2(Web 服务 http 传输),另一个基于 JBI 标准(使用 ServiceMix)。
  • 高级端点配置,它在 Apache Axis2 通信时支持对 WS-Security 和 WS-RM 的配置。
  • 一份冗长的改进与修补的列表,实现了稳定性、性能与可用性的最佳组合。

除了这些新的特性,Apache ODE 还提供如下功能:

  • 对 WS-BPEL 2.0 OASIS 标准以及遗留的 BPEL4WS 1.1 供应商规范的支持。
  • 给引擎提供的高层 API 允许你将任意通信层集成到内核中。
  • 过程(process)热部署。
  • 以编译方式转变为在命令行或者部署时提供细节分析和验证的 BPEL。
  • 过程、实例与消息的管理接口。

InfoQ 采访了 Apache ODE 的副主管

Matthieu Riou ,他还是 Apache 软件基金会成员、Intalio 项目的架构师,并参与了 Apache Tuscany。关于 ODE 1.2 最重要的特性,Matthieu 解释说:

我想我们怎么称呼外部变量是件很有趣的事。传统上,编配引擎往往表现为一个黑盒,它与系统的其它部分广 泛交流,却并不提供访问它其中内容的办法。过程执行、接收消息、处理消息并将新消息发送出去。但是过去你的过程定义、执行是相当不透明的。过程处理的数据 是最明显的。特别是在数据存储为 XML 的 WS-BPEL 中,它向传统数据存储机制的映射并不是很完善。 所以这个特性使用户可以直接在自己选择的数据库表中存储过程变量。我们提供一个简单的映射工具来使你对表结构有合理的控制 能力。所以对这个映射变量的所有读写都会被数据库表返回。这是一个相当简单的特性,但是它很大程度上开启了通向报告、业务动态监测或者甚至过程数据的热修 改的可能性。

我们还计划扩展这个特性,用以支持从一个过程变量向一个 REST 式资源的映射。这样的话,一个 REST 式 Web 服务可以被一个过程直接访问和操作。

关于在 ODE 中支持 REST 式 Web 服务的意义,Matthieu 告诉 InfoQ:

我们的一个问题是 WS-BPEL 只支持 WSDL 1.1,至少迄今为止还是这样(而且我没听到任何关于要把它升级到 WSDL 2.0 的消息)。所以我们必须处理 WSDL 1.1 和它的 HTTP 绑定的支持问题,说实话,它们支持的并不多。 所以我们对它做了一点扩展,给 WSDL 1.1 HTTP 增加了一些基本的元素。例如,我们不仅仅在绑定层接受动词,在操作层也接受。这样,WSDL 端口类型可以被映射到一个资源与对 HTTP 方法的操作。注意,如果仍然可以用 HTTP 绑定支持你的用例,那就不需要任何扩展。

所有这些对 WS-* 和 REST 的纯化论者听起来都像是异端邪说,但是这样做也让你调用 REST 式 Web 服务时有一个相当清晰的思路。我们一向非常小心,从不对 HTTP 做超出 WSDL 的滥用。

尽管这样,我们还是有一个更长期的计划来扩展 ODE,使其对 REST 式体系架构的支持更加本地化。我们希望使过程符合 REST 风格,通过一个统一接口发布它们,并且我们还有大规模扩展 WS-BPEL 的计划。对此我们已经有了我们自己的规范,叫做

REST 式 BPEL ,并且我希望每个人都去看一看并提供反馈意见。

关于 SCA 和 BPEL 的集成:

事实上这个工作已经以 ODE 与 Apache Tuscany 团队合作的方式启动了。我们有一个 SCA 组合与 BPEL 过程之间交互工作的简单场景。最新的 Tuscany SCA 发布(1.2.1)就包含了带有一个 BPEL 过程应用示范的 ODE。

当被问到他们是否计划为请求 / 应答的实现而支持 WS-Addressing 时:

我们对 WS-Addressing 已经有很多支持了。对我们来说,它的价值在于可以在过程发送的 EPR 里包含关于过程实例身份的附加信息。因此,我们不需要过程的相关性来处理交互。过程实例仅仅使用包含在消息的 WS-Addressing 头部的 EPR 来互相发现。 此外,如果你的服务实现也要使用那些头部,并且在你调用服务的时候将头部提供给过程引擎,相关性就可以被彻底的避免。

Matthieu 被问到了是否有计划去实现 BPEL4People 和 WS-HumanTask,对此他回答道:

ODE 的覆盖面远远不止 WS-BPEL,它还包括编配和人类工作流。从历史上说,我们曾经更加关注 BPEL 和编配,但是我们中的一个委员(Assaf Arkin,他也参与了前面提到的 REST 式 BPEL 规范的编写)目前在做一个很酷的项目的经理,这个项目叫 Singleshot。它是在 Rails 上实 现的,用一个友好的人机界面将我们的 BPEL 引擎弥补得极为完善。 与此同时,Intalio 也有一个开源的工作流产品,叫做 Tempo,它实现了 BPEL4People 白皮书。

最 后,我们计划支持包含在 BPEL4People 中的 WS-BPEL 扩展,如同 peopleActivity。不过做这些对我们来说还不到时候。如果社区中 还有人想它发生的早一点,我们会对他致以毫无保留的感激。ODE 最令人印象深刻的一点就是它是一个 Apache 项目。正因如此,我们在一个商业友好的许可 下开发,并且我们欢迎任何类型的贡献,代码以及简单的反馈、文档、测试或者仅仅是你的热情。

随着这个新版本的发布,Apache ODE 巩固了它在基于 BPEL 的开源编配实现领域的领导地位。扩展 ODE 到一个更完整的人机交互工作流实现的工作也已经开展了。

2008-09-01 02:561251
用户头像

发布了 29 篇内容, 共 36256 次阅读, 收获喜欢 2 次。

关注

评论

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

透过 3.0 Preview 看 Dubbo 的云原生变革

阿里巴巴云原生

容器 运维 云原生 dubbo 应用服务中间件

这个GItHub上的Java项目开源了,2021最全的Java架构面试复习指南

Java 程序员 面试

Datadog 能成为最大的云监控厂商吗

睿象云

运维 运维平台 Datadog 云监控

从解决Github TimeOut到经典面试题:从输入URL到浏览器显示页面发生了什么?

秦怀杂货店

GitHub TCP 网络 HTTP DNS

实现跨生态互联,区块链赋能智能家居新体验

旺链科技

区块链应用 智能家居

电子证照上链--助推智慧政务

13530558032

定义结构体访问结构成员的三种方法

Emotion

基于深度学习的两种信源信道联合编码

华为云开发者联盟

深度学习 通信 编码 信源编码 信道编码

单账户实时记账能力达2万笔每秒 蚂蚁启用新一代高性能记账引擎

DT极客

阿里面试官:Android开发真等于废人?已拿offer附真题解析

欢喜学安卓

android 程序员 面试 移动开发

为了跳槽刷完1000道Java面试真题,没想到老板直接给我升职了

Java 程序员 架构 面试

低代码是什么?低代码价值主要体现在哪?

优秀

低代码

程序员去大公司面试,小程序FMP优化实录,已拿offer入职

欢喜学安卓

android 程序员 面试 移动开发

可能是绝唱!阿里资深工程师深度解读Netty底层核心源码

Java架构追梦

Java 源码 架构 面试 Netty

python编译器中出现了绿色波浪线,光标放上去出现的提示是什么意思?

Emotion

我在阿里实习做开源

阿里巴巴云原生

阿里巴巴 云原生 dubbo 个人提升 中间件

主数据建设的挑战与发展

EAWorld

如何正确使用Python临时文件

华为云开发者联盟

Python 安全 临时文件 tempfile 库函数

字节抖音iOS客户端实习 123hr面 面经

iOSer

ios 字节跳动 面试 抖音

2021最新分享三面百度提前批(Java开发岗)面经 已拿Offer

比伯

Java 编程 架构 面试 程序人生

OpenKruise 如何实现 K8s 社区首个规模化镜像预热能力

阿里巴巴云原生

Serverless 容器 云原生 k8s 调度

为什么python中程序的结果会一直输出,需要怎么解决

Emotion

LeetCode题解:92. 反转链表 II,迭代,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

被MySQL慢日志查询搞废了?3分钟教你快速定位慢查询问题!

观测云

云计算

​Autonomous Dream Works的独创力杰作EGGNetwork EFTalk

币圈那点事

Golang号称最快的Json解析器速度可达5623ns/op

happlyfox

学习 3月日更 Go 语言

力扣(LeetCode)刷题,简单题(第13期)

不脱发的程序猿

面试 LeetCode 28天写作 算法面经 3月日更

困扰一周的奇葩bug:重复相似代码多,导致单片机程序跑飞

不脱发的程序猿

28天写作 硬件设计 嵌入式软件 单片机 3月日更

推荐 2 款必备的 Django 开发神器

星安果

Python django Web 后端

区块链中药溯源--区块链为中医药溯源认证

13530558032

能源绿色管控:天然气站启动数字化转型,工业企业该如何突围?

一只数据鲸鱼

物联网 数据可视化 智慧城市 能源管理 天然气

Web服务编配引擎Apache ODE 1.2发布了_SOA_Boris Lublinsky_InfoQ精选文章