InfoQ

新闻

WS-BPEL4People走向OASIS

作者 Arnon Rotem-Gal-Oz译者 胡键 发布于 2007年6月27日 上午12时54分

社区
SOA
主题
Web服务,
工作流/业务流程管理,
编制,
Web服务标准
标签
Web服务,
WS-BPEL,
标准化

今天,由IBM、Adobe、SAP、Oracle、BEA systems和Active Endpoints所组成的厂商,发布了有关新提议的WS-*规范的最终草案,它有个有趣的名字——“WS-BPEL4People”。相比于处理业务过程自动化的WS-BPEL,WS-BPEL4People规范(它已被秘密制定了近两年),旨在给SOA增加一般的人类工作流能力,尤其是对最近被批准的WS-BPEL 2.0规范。

WS-BPEL4People包含2个补充性规范。第一个是WS-BPEL extension for people,它定义了在WS-BPEL上处理人类交互和任务的层级,或者如规范的摘要所说的:

Web服务业务过程执行语言,版本2(WS-BPEL 2.0,或简称BPEL)引入了基于Web服务的业务过程模型。

一条BPEL过程编制(orchestrates)不同Web服务间的交互。该语言包含描述复杂控制流程所需要的特性,包括错误处理和补偿行为。然而,在实践中,很多业务过程场景都需要人类交互。一个过程定义应该将人类合并为另一类参与者,因为人类也可能参与业务过程并影响过程执行。

该规范引入一个BPEL扩展来解决BPEL中的人类交互,并将它的作为一等公民。它定义了一种新的基本活动类型,它使用人工任务作为实现,允许任务可以在本地的过程中,也可在过程定义之外。这个扩展基于WS-HumanTask规范。

第二个引入的规范则是WS-Human任务,它定义了允许将人类任务作为服务引入SOA的接口,这些接口独立于WS-BPEL。它的想法是使非人类服务有一种一致、标准的与人类交互的方式。规范定义目标如下:

人类任务,或简称任务,能将人类集成到面向服务应用中。本文档提供了用于人类任务的符号、状态图和API,以及一个协作协议,它允许与人工任务以更面向服务的风格交互并且同时控制任务的自治。该文档被称为Web服务人类任务(在本文档的其余部分简称为WS-HumanTask)。

人类任务是由人类"实现的"服务。它们将人类集成到面向服务应用中。一个人类任务有2个接口。一个接口暴露任务提供的服务,如翻译服务或批准服务。第二个接口允许人类处理任务,如查询等待他们的人类任务,以及从事这些任务。人类任务有被分配给的人类。这些分配定义了任务上的某个角色应该由谁扮演。人类任务也可能指定任务元数据在不同设备或应用上应该被如何呈现,使之在不同类型的软件间可移植和互操作。人工任务可以被定义成超时反应,触发一个合适的增加动作。

这同样适合于通知。通知是一类特殊的人类任务,它允许给人类发送值得注意的业务事件新息。通知总是单向的,它们以一种发射即忘记(fire-and-forget)的方式被传递:发送者给人们推出通知,并不等待人们确认已接收它们。

厂商们计划将两个规范都提交给Oasis,并且将它们批准成为另一个WS-*标准。

微软的John Evdemon,他曾是核准WS-BPEL 2.0的Oasis委员会主席之一,希望在这些规范被批准成为标准之前:

......他们可以修正一些问题(如people resolution),并拿出一个听起来不太搞笑(punchline)的名字。:)

另一方面,SAP的Alan Rickayzen对新标准感到非常激动。在他的博客中,你可以看到一幅这两个标准的组件图,以及一个简短解释它们的pod-cast

你的想法是什么呢?--我们需要另一个WS-*标准吗?新标准会受到Jon Udell所说的“只有WS才是对的(WS-Justright)”的影响吗 ?

查看英文原文:WS-BPEL4People on its way to OASIS

没有回复

回复

独家内容

专访开源项目Amoeba架构师陈思儒

DBA notes站长冯大辉(Fenng)代表InfoQ中文站采访了分布式数据库Proxy开源项目Amoeba的架构师和主要开发者陈思儒,内容包括Amoeba项目的起因、功能及其愿景等。

使用JSF、Ajax和Seam开发Portlets(2/3)

作为三期系列文章的第二部分,本文延续了上一期内容,介绍了RichFaces,包括如何把RichFaces集成到之前提到的示例应用中、如何部署RichFaces porlet和RichFaces的多种特性和功能。

Jeff Barr谈论Amazon Web服务

Amazon Web Services(AWS)的传道者Jeff Barr讨论了SimpleDB、S3、EC2、SQS、云计算、Amazon的不同服务如何与应用交互、AWS的起源、SimpleDB和微软SQL Server Data Services、AWS cloud的全球化、三月份的AWS停机。

用Erlang实现领域特定语言

Erlang的并发模型很有名,它的健壮性也很有名。但其他方面呢?在这篇文章里,Dennis Byrne演示了如何用Erlang建立内部DSL。

基于Rails的企业级应用剖析

本视频主要以FreeWheel为例,对一个基于Rails的企业级应用进行了剖析。其中包括:FreeWheel的架构、部署、数据库的问题、REST API、敏捷开发过程、如何去写测试以及持续集成等等。

JavaFX技术预览

JavaFX显示了Sun的Java系列产品市场方向的一个重大转变。随着1.0版的即将发布,InfoQ以JavaFX预览版为参考,与Sun高级工程师Joshua Marinacci探讨了即将发布的1.0正式版。

剖析短迭代

敏捷教练Dave Nicolette提出:我们应该如何设定迭代长度?是要根据发布周期的时间么?使用短迭代又有哪些好处?

应用JSF、Ajax和Seam开发Portlets(1/3)

本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。