bpel 之伙伴
一、伙伴链接类型(Partner Link Types)
1.交互过程
伙伴之间的交互过程共分为两种典型情况:
- 流程调用伙伴后同步等待返回结果。这种情况通常是伙伴能很快返回结果,流程不需要等待很长时间。
- 流程调用伙伴后异步等待返回结果。这种情况通常是伙伴需要较长时间返回结果,这时流程不需要等待,可继续执行。伙伴执行完后将回调流程接口,通知流程返回结果。
2.作用
伙伴链接类型定义了一个交互中依赖的关系。
<plnk:partnerLinkType name="NCName"> <plink:role name="NCName" portType="QName" />
<plink:role name="NCName" portType="QName" /> </plnk:partnerLinkType name="NCName">
伙伴链接类型的名字由name属性指定。角色用来描述一个交互中参与者所起的作用。角色的定义除了名字以外还引用了wsdl中定义的接口定义。任何参与这种交互并且充当该角色的服务必须实现这个接口。以下两种场景说明:
- 但角色伙伴链接类型。这意味着交互中只有一个角色,只需交互的一方实现角色中引用的接口,而对交互的另一方没有任何限制。
<plnk:partnetLinkType namee="OrderProcessPLT"> <plnk:role name="OrderProcessRole"> <plnk:portType name="wsd10:OrderProcess" /> </plnk:role> </plnk:partnetLinkType>
这个伙伴链接类型只定义了一个角色OrderProcessRole,实现该角色的接口必须实现OrderProcess接口,对交互的另一方没有任何限制,任何服务都可以参与这个交互,调用OrderProcessRole提供的服务。
- 双角色伙伴链接类型。交互中涉及到两个角色。交互的双方都必须实现相应角色接口才能正确完成一次交互。
<plnk:partnerLnkType name="ShipPartnerPLT"> <plnk:role name="ShipServiceRequester">
<plnk:portType name="ns1:ShipServiceCallBack" />
</plnk:role> <plnk:role name="ShipServiceProvider">
<plnk:portType name="ns1:ShipProduct" />
</plnk:role> </plnk:partnerLnkType>
这个伙伴链接定义了两个角色,ShipServiceRequester和ShipServiceProvider,因此参与交互的双方都必须实现各自角色的接口。比如,一个订单处理流程调用送货服务的ShipProduct接口以启动送货服务,送货完毕后调用订单处理流程实现的ShipServiceCallBack以返回确认信息。
3.伙伴链接(Partner Links)
伙伴链接可以看做是伙伴链接类型的实例。
<partnetLinks> <partnetLink name="NCName" partnetLinkType="QName" myRole="NCName" partnetRole="NCName" initializePartnetRole="yes|no"/> </partnetLinks>
定义伙伴链接需要指明它是哪种伙伴链接类型,以及它将扮演的角色。myRole指定调用者在交互中的角色,而partnerRole则指出伙伴的角色。initializePartnetRole的值指出BPEL引擎是否在第一次调用partnetRole所指定的服务时先初始化它的端点引用。
例如:
<partnerLinks> <partnetLink name="callShipServicePartnerLink" partnerLinkType="ShipPartnerPLT" myRole="ShipServiceRequester" partnerRole="ShipServiceProvider" /> </partnerLinks>
这个伙伴链接定义表明,它是送货服务的调用方,而且它会实现ShipServiceCallBack接口以便送货服务回调。
bpel 之伙伴的更多相关文章
- 使用BPEL创建Web服务组合
http://www.cnblogs.com/ahhuiyang/archive/2012/12/18/2824131.html 为简单起见,本例的Web服务组合只调用一个Web Service AP ...
- BPEL 实例教程
http://www.oracle.com/technetwork/cn/articles/matjaz-bpel1-090722-zhs.html BPEL 实例教程 作者:Matjaz Juric ...
- BPEL_Oracle BPEL新一代工作流介绍(概念)
2014-11-02 Created By BaoXinjian
- 伙伴们休息啦canvas绘图夜空小屋
HTML5 canvas绘图夜空小屋 伙伴们园友们,夜深了,休息啦,好人好梦... 查看效果:http://hovertree.com/texiao/html5/28/ 效果图如下: 代码如下: &l ...
- 《虚拟伙伴》AR增强现实应用开发总结
一.概述 1.1选题背景 随着时代的发展,人们的生活节奏越来越快,生活质量也越来越高,但却在繁忙之中忽略或者忘记了关心自己成长时代最重要或者最正确的事情和道理.虽然现在有很多社交平台,如微博,微信,f ...
- 华清远见成为ARM大学计划正式合作伙伴
来源:华清远见嵌入式学院 近日,华清远见教育集团成为ARM大学计划合作伙伴,这是ARM大学计划合作伙伴中的国内唯一教育机构.此次合作是ARM公司对华清远见教育集团的高度认可,也充分证明了华清远见这些年 ...
- BPEL是个什么东东
研究团队有个做智能服务组合的,其中用到叫BPEL的东西,因为全称是Business Process Execution Language,译成中文就是商业执行过程语言,这个东东的是整合SOA的一个执行 ...
- RESTful API的重磅好伙伴Swagger2
本文将介绍RESTful API的重磅好伙伴Swagger2,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档. 它既可以减少我们创建文 ...
- ASP.NET MVC4系列验证机制、伙伴类共享源数据信息(数据注解和验证)
一,mvc前后台验证 自定义属性标签MyRegularExpression using System; using System.Collections.Generic; using System.C ...
随机推荐
- 小甲鱼PE详解之输入表(导入表)详解(PE详解07)
捷径并不是把弯路改直了,而是帮你把岔道堵上! 走得弯路跟成长的速度是成正比的!不要害怕走上弯路,弯路会让你懂得更多,最终还是会在终点交汇! 岔路会将你引入万劫不复的深渊,并越走越深…… 在开始讲解输入 ...
- AndroidStudio
Google官方的Android集成开发环境(IDE = Integrated Development Environment),Eclipse + Adt插件的代替者. 实用设置: android ...
- HBase伪分布式环境下,HBase的API操作,遇到的问题
在hadoop2.5.2伪分布式上,安装了hbase1.0.1.1的伪分布式 利用HBase的API创建个testapi的表时,提示 Exception in thread "main&q ...
- 2016.6.23 PHP实现新闻发布系统主体部分
1.新闻发布系统的列表: <html><meta http-equiv="Content-Type" content="text/html; chars ...
- push和join
Push,向数组末尾添加元素,并返回长度. Join,将数组按照join参数连接起来. 不同浏览器对JS解析不同,Join比连接字符串快,要用大量数据测试,然后比时间.
- Android RelativeLayout 实现左右中布局
效果图如下: 代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns ...
- Codeforces Round #330 (Div. 2)
C题题目出错了,unrating,2题就能有很好的名次,只能呵呵了. 水 A - Vitaly and Night /***************************************** ...
- xml文件读写
创建xml文件,对xml文件进行添加新节点.删除节点.更新节点.创建的如下的xml文件. <?xml version="1.0" encoding="UTF-8&q ...
- Counting Squares[HDU1264]
Counting Squares Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- quick cocos 暂停场景
local MainScene = class("MainScene", function() return display.newScene("MainScene&qu ...