当前位置: 首页 > news >正文

BPEL中的partnerlink和partnerlinktype

转自: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,所以接口是完全相同的。

相关文章:

  • jdbc连接mysql的步骤_JDBC链接数据库的几个步骤
  • 介绍一种全新的哲学思想
  • linux mysql 导入数据库脚本_思维导图学 Linux Shell攻略之干货篇 mysql数据库脚本管理系统...
  • 哲学作为一门学说的可能
  • 批处理修改mysql密码_批处理脚本一键重置mysql的root密码
  • mysql 存储过程查询条数_mysql存储过程,查询多个重复的数据数据出现次数
  • 哲学与哲学的未来
  • 电脑命令执行mysql sql文件路径_MySQL命令执行sql文件的两种方法
  • 解 冻 哲 学
  • html网页内容和打印预览不同_分享8款网站开发中最好用的打印页面插件
  • 链接mysql 504_phpMyAdmin错误代码:504 MySQL查询
  • 做网络安全为啥非要抓服务器
  • js字符串最大长度_JS 实现两个大数相加?
  • 获取网站的实时股票数据
  • python3 自定义函数无法被调用_Access查询中如何调用自定义函数
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 10个确保微服务与容器安全的最佳实践
  • bearychat的java client
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • Electron入门介绍
  • JavaScript新鲜事·第5期
  • Java教程_软件开发基础
  • Mithril.js 入门介绍
  • python_bomb----数据类型总结
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • Vue2.x学习三:事件处理生命周期钩子
  • 大数据与云计算学习:数据分析(二)
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 缓存与缓冲
  • 聚类分析——Kmeans
  • 力扣(LeetCode)22
  • 实习面试笔记
  • 双管齐下,VMware的容器新战略
  • 微信公众号开发小记——5.python微信红包
  • 应用生命周期终极 DevOps 工具包
  • 阿里云服务器如何修改远程端口?
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​iOS实时查看App运行日志
  • #include到底该写在哪
  • #传输# #传输数据判断#
  • (done) 两个矩阵 “相似” 是什么意思?
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (第61天)多租户架构(CDB/PDB)
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (分布式缓存)Redis持久化
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (六)软件测试分工
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)visual stdio 书签功能介绍