首页产品库评测行情新闻|手机数码笔记本台式机DIY硬件数字家庭数码相机办公外设|软件下载游戏开发|社区

更多

数码相机
MP4
LCD
机箱
音箱

软件资讯设计 工具 系统 开发 安全 办公 陶吧 IT教育 Vista频道 | 下载中心酷我音乐盒 腾讯QQ
天极网 > 开发频道>BPEL过程组件

BPEL过程组件

2008-01-04 10:48作者:佚名出处:论坛整理责任编辑:方舟

  BPEL流程的本质就是通过BPEL的活动(Activity)将BPEL的过程组件“串起来”。所谓“串起来”就是通过BPEL的活动让BPEL的过程组件产生一种动态的交互。比如说将一个变量赋值给另外一个变量,就是一种变量之间的动态的交互。

  BPEL流程中经常用到的一些组件如下:

  1) 合作伙伴连接(Partner Links);

  2) 变量Varaibles;

  3) 相关集Correlation Sets;

  4) 错误处理Fault handles;

  5) 补偿处理(Compensation Handlers)等。

  合作伙伴连接(Partner Links)

  合作伙伴连接(Partner Links)是指在BPEL中的服务提供者,它主要分为两种,一种是BPEL流程所要调用的外部服务;另一种是指BPEL自己所要提供的服务。

  定义合作伙伴连接(Partner Links)实际上包括定义两件事情:

  1、在BPEL中定义<partnerLink>

  2、在对应的WSDL中定义<partnerLinkType>

  BPEL首先需要定义合作伙伴的<partnerLink>,然后需要在所要引入的WSDL中定义所对应的WSDL接口PortType。

  1.在BPEL中定义<partnerLink>

  如上面的实例在BPEL文件中定义Bank0这么一个partnerLink:

<bpel:partnerLink partnerRole="BankService" name="Bank0"

partnerLinkType="bk:BankPL"/>

  如果是外部服务,需要采用partnerRole来定义合作伙伴类型,如上例中:

<bpel:partnerLink partnerRole="BankService" name="Bank0"

partnerLinkType="bk:BankPL"/>

  如果是BPEL自己的接口,则通过myRole来定义了一个合作伙伴,它表示这个服务接口是BPEL自己提供服务的,如前面实例:

<bpel:partnerLink myRole="HouseLoanBrokerService" name="HouseLoanBroker"

partnerLinkType="tns:HouseLoanBrokerPL"/>

  2.在对应的WSDL中定义< partnerLinkType >

  为了使合作伙伴能够对应相应的WSDL的接口,需要在对应的bank.wsdl里面通过<partnerLinkType>定义它所对应的WSDL的portType:

<plnk:partnerLinkType name="BankPL">

<plnk:role name="BankService" portType="tns:Bank" />

</plnk:partnerLinkType>

  上面就将BPEL的partnerLinkTyp(BankPL)和WSDL的portType(Bank)对应上了。

  BPEL是通过合作伙伴的名字来调用<invoke>外部服务的,BPEL引擎也是通过合作伙伴的名字来和真正的服务提供者进行绑定的,如前面的实例将通过“Bank0”来调用外部的Bank0服务。

<bpel:invoke name="bank0" partnerLink="Bank0"

portType="bk:Bank" operation="getLoanQuote"

inputVariable="bk-loanquote-request"

outputVariable="bk-loanquote-response-0"

sm:endpoint="urn:sample:soa:bank:Bank0:bank" />

  变量Variables

  BPEL里面的变量Varaibles类似于Java的变量的概念,是一个保存数据的地方。但是BPEL和Java语言不太一样,Java语言的参数可以直接调用,比方说,Java程序的其他函数接口可以直接调用上面的double parameter1。但是作为BPEL语言是不行的。因为BPEL需要集成WSDL定义的Web Service。同一个参数名字在不同的WSDL中参数是不一样的,因为WSDL是一种XML结构,其本质是一种树状的数据结构,直接赋值是赋不进去的,所以需要先定义变量。一般来说对每一个合作伙伴,不管有多少输入参数和输出参数,定义两个变量即可,一个请求(request)变量,一个响应变量。

<bpel:variables>

<bpel:variable name="request" messageType="tns:getLoanQuoteRequest" />

</bpel:variables>

  上面房屋贷款中的变量实例,可以通过messageType将WSDL文件中的变量类型取过来,如上面的变量“request”实际上对应houseloanbroker.wsdl所定义的变量,结构如下:

getLoanQuoteRequest

|――name(String)

  这样,通过messageType可以直接定义变量的数据结构。

共3页。 123下一页
进入 最权威的Windows 7论坛 查看网友讨论

软件频道最新更新

热点推荐

IT嘉年华

编辑推荐

软件下载

热门
推荐

网友关注

软件
资料
游戏

装机推荐

文章排行

本周
本月
最新更新
天极服务|关于我们|About us|网站律师|RSS订阅|友情合作|加入我们|天极动态|网站地图|意见反馈|MSN/QQ上看天极
Copyright (C) 1999-2012 Yesky.com, All Rights Reserved 版权所有 天极网络