BPEL中的partnerlink和partnerlinktype
来源:互联网 发布:深入浅出数据分析 csv 编辑:程序博客网 时间:2024/06/07 05:25
转自:http://www.blog.edu.cn/user1/2746/archives/2005/241277.shtml#cmt
partnerlink是bpel与外界实体通讯的管道。下面是我对partnerlink和partnerlinktype个人的理解,不敢保证完全正确。(以下都省略partner前缀,简称link和linktype)
根据其中定义的role的个数是一个还是两个,linktype分为单向和双向的。linktype只定义通道,但没有定义通道的“方向”,即哪一 端是bpel,哪一端是客户(相对于bpel)。对双向的linktype而言,这个link中用myrole和partnerrole说明这个link 的“方向”。
单向的linktype说明这个link通道中的信息流动是单向的。所以对应的link中只能指定myrole或者partnerrole,不能二者兼有。
一个linktype可以定义多个link。比如loan-approval的例子(见bpel规范),一个叫customer的link和一个叫 approver的link都是同一个linktype——loanApprovalLinkType,这个linktype只有一个role,叫 “approver”。
bpel是真实approver的代理,从顾客customer的观点来看,顾客认为bpel就是approver。所以customer link中把approver定为“myrole”。相对于真正的approver而言,bpel是客户(准确的说是客户的代理),真正的 approver是bpel的“partner”。所以approver link中,把approver认作“partnerrole”。这里xxx link很容易混淆其含义。记住,link的名字都是相对bpel而言的。
可以推知,凡是link中定义了myrole的地方,都是外界要调用bpel的地方,必然对应receive操作。
另外,这种“代理”的用法可以认为是对原先接口的重载。在loan-approval例子中,并不是所有的request都要经过真正的 approver;准确的说,真正的approver只处理数量>10000的货物。小额的货物就被bpel直接通过了。可以理解为如下的代码:
bool bpel::approve (request)
{
if (request.amount > 10000)
approver.approve(request);
else
...
}
因为是同一个role,对应同一个portType,所以接口是完全相同的。
- BPEL中的partnerlink和partnerlinktype
- PartnerLink,PartnerLinkType详解
- BPEL流程的状态与形式化定义---第二部分:partnerLink与partnerLinkType
- 终于明白了bpel中partnerLink中role的含义
- BPEL中的原子事务和补偿服务区别和联系
- BPEL中的基本活动
- BPEL研究(3):BPEL和WFMC
- BPEL和Java- -
- BPEL和Java
- BPEL和WSDL关系
- BPEL和Java[收藏]
- BPEL和WSDL关系
- BPEL
- BPEL
- BPEL
- BPEL
- BPEL
- BPEL
- Div+CSS布局入门教程之一:页面布局与规划
- Div+CSS布局入门教程之二:写入整体层结构与CSS
- Spring定时任务的简单例子
- Div+CSS布局入门教程之三:页面顶部制作之一
- 未来游戏设计的十大技术挑战
- BPEL中的partnerlink和partnerlinktype
- 想到了一种进度条的表达方法
- Div+CSS布局入门教程之四:页面顶部制作之二
- Div+CSS布局入门教程之五:页面制作-用好border和clear
- csdn终于开博了,希望能坚持写下去
- 你属于哪种人--读书笔记
- 谁能帮我推荐几款游戏制作软件?_百度知道
- [转]AWT和Swing中的绘画
- 中国工程师的真实写照