赵翔鹏的Blog -- Zhao Xiangpeng's Think-pad


载入中

我的分类
载入中
日志更新
载入中
最新评论
载入中
站内搜索
留言板
载入中
链接
管理我的BLOG
载入中
Blog信息
载入中

[rss] (推荐!)
(不推荐)

BPEL4People, HumanTask和BPEL2.0之间的关系
翔 发表于 2007-8-24 14:24:00
作为对BPEL的扩展,BPEL4People本来打算做一份规范,但是做到后面做成了两份,即BPEL4People和HumanTask,这两个规范要一起使用。下面我们用一个简单的例子说明它们之间的关系。

WS-BPEL2里定义了"extensionActivity",支持对标准BPEL进行扩展。BPEL4People则定义了一种特殊的extensionActivity,叫做peopleActivity,如下所示:
<sequence>
<extensionActivity>
    <b4p:peopleActivity name="electEmployeeOfTheMonth"
    inputVariable="candidates"
    outputVariable="vote"
    isSkipable="yes">
    <htd:task name="votingTask">
    ...
    </htd:task>
    <b4p:scheduledActions>...</b4p:scheduledActions>
    </b4p:peopleActivity>
</extensionActivity>
<assign>
    <copy>
    <from>$vote</from>
    <to>$electionResult/votes[i]</to>
    </copy>
</assign>
</sequence>
这个sequence先执行了一个peopleActivity,然后做了个赋值。注意peopleActivity是放在extensionActivity里面的,好让BPEL2.0引擎知道它是一个扩充活动。

BPEL4People仅仅定义了peopleActivity的接口,比如输入/输出变量,跟<invoke>的功能差不多,当然还定义了一些API函数用于取得一个peopleActivity的参数,比如可以通过getActualOwner得知,已经执行完毕的某个peopleActivity究竟是由哪个人做的。

而一个peopleActivity的主要细节,是通过WS-HumanTask来定义的,见上面例子中的<htd:task>部分。换句话说,BPEL4People规范的作用仅仅是连接WS-BPEL2.0和WS-HumanTask。下面是该HumanTask的具体内容:
<htd:task name="votingTask">
    <htd:interface operation="vote"    portType="el:votingPT"/>
    <htd:peopleAssignments>
        <htd:potentialOwners>
            <htd:from>$voters/users/user[i]</htd:from>
        </htd:potentialOwners>
    </htd:peopleAssignments>
    <htd:presentationElements/>
</htd:task>
这里只定义了该任务的potentialOwner,即哪些人有权限执行该任务;在<htd:task>里还可以定义很多细节,比如过多久之后会超时,超时后要执行什么动作(Escalation),等等。

可以说凡是跟“人”有关的东西,都定义在WS-HumanTask中。每个business process中可能需要定义一些角色,和一些人;这些"角色"和"人"也是由WS-HumanTask定义的,此外还预定义了几种角色,比如Administrator, Task initiator等。

总结一下,WS-HumanTask专注于“人”,与BPEL规范没有一点关系,甚至连名字都不一样——在BPEL中叫做Activity的东西到了这儿就变成了Task;而BPEL4People就是BPEL 2.0和HumanTask之间的桥梁。

要学习这两个规范,我建议先看WS-BPEL4People规范中的Appendix - D,这里给了个完整的例子。看过例子再读规范,就清楚得多了。

相关链接:BPEL4People规范阅读笔记

阅读全文 | 回复(3) | 引用通告 | 编辑
 

Re:BPEL4People, HumanTask和BPEL2.0之间的关系
zhaiyl(游客)发表评论于2007-8-29 9:51:00
zhaiyl(游客)不错,说得挺明白了 省了不少去读规范的时间了

个人主页 | 引用 | 返回 | 删除 | 回复
 

Re:BPEL4People, HumanTask和BPEL2.0之间的关系
zhou(游客)发表评论于2007-8-27 16:47:00
zhou(游客)哈哈哈哈哈哈哈.....完全不懂

个人主页 | 引用 | 返回 | 删除 | 回复
 

Re:BPEL4People, HumanTask和BPEL2.0之间的关系
$(游客)发表评论于2007-8-27 16:22:00
$(游客)哈哈哈哈哈哈.....完全不懂

个人主页 | 引用 | 返回 | 删除 | 回复
 

发表评论:
载入中
Powered by Oblog.