Oracle SOA套件:用BPEL创建复合服务(二)

日期: 2010-03-07 作者:Matt Wright翻译:张培颖 来源:TechTarget中国 英文

调用外部WEB服务   下一步是调用外部WEB服务;股票报价服务将使用Xignite的报价WEB服务,这个服务延时交付来自美国的股票交易所得均价。(纽约证交所、纳斯达克、美国证交所、纳斯达克场外交易公告板和粉单市场)   在BPEL中调用WEB服务,首先需要创建PartnerLink。从组建板选择“服务”拖拽下来,并拽“PartnerLink”到“服务”泳道进入到BPEL流程中。下图为弹出的窗口:   图4   首先输入PartnerLink的名称,例如XigniteQuote。

然后为PartnerLink制定WSDL文件。JDeveloper提供以下的方式:   浏览WSDL文件:我们可以为……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

调用外部WEB服务

  下一步是调用外部WEB服务;股票报价服务将使用Xignite的报价WEB服务,这个服务延时交付来自美国的股票交易所得均价。(纽约证交所、纳斯达克、美国证交所、纳斯达克场外交易公告板和粉单市场)

  在BPEL中调用WEB服务,首先需要创建PartnerLink。从组建板选择“服务”拖拽下来,并拽“PartnerLink”到“服务”泳道进入到BPEL流程中。下图为弹出的窗口:

  图4

  图4

  首先输入PartnerLink的名称,例如XigniteQuote。然后为PartnerLink制定WSDL文件。JDeveloper提供以下的方式:

  浏览WSDL文件:我们可以为WSDL文件定义服务浏览系统文件。

  服务浏览器:我们可以浏览在复合应用(如其它BPEL流程或者ESB服务)中已经定义好的服务。

  定义继承服务:我们可以在BPEL环境中直接定义继承服务。

  输入URL:为WSDL文件直接输入URL到匹配域。

  为了我们的目的,我们为Xignite的Quote有一个WSDL的本地复制,称为XigniteQuote,wsdl。单击“浏览WSDL文件”图标(先前截图中的高亮显示),然后浏览选择这个文件(如果提示创建文件本地复制,选择“是”。)

  JDeveloper将从语法上分析WSDL,假设它是成功的,将弹出一个窗口说在最近的WSDL中没有PartnerLink类型定义,并询问你是否希望为该文件创建PartnerLink:单击“是”。JDeveloper就会为WSDL中的每个端口类型创建“PartnerLinkType”。

  本例子中我们有多样的PartnerLink类型,需要指明流程中使用哪一个。单击拖拽“PartnerLinkType”并选择合适的。本例中我们选择“XigniteQuoteSoap_PL”,如下图:

图5

  图5

    要指明PartnerRole和MyRole。当调用同步服务的时候。将有一个WSDL单独的对象定义,代表服务提供者。因此为PartnerRole指明这个并遗留MyRole作为未指明。

  调用WEB服务

  一旦我们为WEB服务定义了PartnerLink,下一步就是调用它。作为其同步服务,我们需要使用<invoke>活动来调用它。

  在组件板上,确保“流程活动”的子菜单是挑选出来的,然后从中拖出“Invoke”活动到你的BPEL流程。

  接下来,将鼠标箭头放置在下一个“Invoke”活动;单击并按住鼠标在PartnerLink上拖拽箭头,然后释放。下图所示:

图6

图6

  随后弹出“Edit Invoke”活动窗口,如下图所示:

图7

图7

  我们需要指明许多值进行配置调用活动,命名:

  •   名称:我们想指派给调用活动的名称,可以是任何值。为“GETQUOTE”指派一个有意义的值。
  •   PartnerLink:我们想要调用服务的PartnerLink的值;被设定在使用XigniteQuote中,我们已经将这个活动链接到PartnerLink。
  •   运行:一旦我们制定PartnerLink,我们需要指明我么希望调用哪一个运行。
  •   输入变量:我们必须指定变量,这个变量包含将要通过WEB服务调用的数据。消息类型的可变因素非常重要。这是运行中预期的消息类型。这个最简单的方式确保得到JDeveloper创建正确的变量输入域。将提出“创建变量”的窗口,如下图所示。看可以看到JDeveloper为变量创建了一个默认的名称,你可以用任何有意义的内容覆盖。
  •   输出变量:最后,我们必须指明在WEB服务之后的变量返回值。通过输入变量,应该是消息类型,响应为选择运行在WSDL文件中定义的输出消息。用最简单的方式确保JDeveloper创建你需要的变量。

图8

图8

   如上所述,为所有这些定义好值,单击“确定”。

  在下一篇文章中,我们将继续为您介绍,如何未变量赋值以及调用WEB服务汇率。

翻译

张培颖
张培颖

云计算网站编辑

相关推荐

  • 保险公司如何能从BPEL中获益

    对于保险业整合不同系统是一件寻常的工作。但保险公司经常会面临监管条例改变和应对不同的顾客需求。为了解决这些系统问题,软件专家正在使用一种强大的工具——BPEL。

  • 2013年业务流程执行语言(BPEL)现状

    在SOA领域中,BPEL拥有属于自己的集成系统和自动化工作流,为协调完全异构系统而提供一致的流程。

  • 如何开发BPEL复合应用

    大多数软件架构师对应用的组件化、SOA和工作流或者服务总线流程非常熟悉,也对组合应用如何将这些基本元素结合在一起非常熟知。

  • 如何在SOA中执行BPEL测试?

    几乎所有面向服务架构(SOA)用户都在使用业务流程执行语言(BPEL)。作为编排粗粒度的业务流程流工具,BPEL实际上是行业的标准,但是还是会引起测试问题。