如果美国航空公司的机票报价低于达美航空公司的机票报价,则将 FlightResponseAA 变量复制到 TravelResponse 变量(我们最终将此变量返回给客户端)。否则,我们将复制 FlightResponseDA 变量。
我们已经到达此 BPEL 业务流程的最后一步 — 使用 <invoke> 活动将回调返回给客户端。对于此回调,我们使用客户端合作伙伴链接并对 ClientCallbackPT 端口类型调用 ClientCallback 操作。保存答复消息的变量为 TravelResponse:
<!– Make a callback to the client –>
<invoke partnerLink=”client”
portType=”trv:ClientCallbackPT”
operation=”ClientCallback”
inputVariable=”TravelResponse” />
</sequence>
</process>
到此,我们已经完成了我们的第一个 BPEL 业务流程规范。您可以看到,BPEL 并不是很复杂,并允许相对简单和自然的业务流程规范。
第 5 步:部署和测试
我们部署到 Oracle BPEL Process Manager 的每个 BPEL 流程都需要一个流程描述符。BPEL 标准不包括此流程描述符,且它特定于 BPEL 服务器。部署流程描述符是流程在给定平台上的唯一实现部分,必须重写它才能在不同 BPEL 引擎上运行该流程。Oracle 流程描述符是一个 XML 文件,它指定有关 BPEL 流程的以下细节:BPEL 源文件名、BPEL 流程名 (ID)、所有合作伙伴链接 WSDL Web 服务的 WSDL 位置以及可选的配置属性。流程描述符的默认文件名为 bpel.xml,但我们可以使用任何其他名称:
<BPELSuitcase>
<BPELProcess src=”Travel.bpel” id=”TravelProcessCh4″>
<partnerLinkBindings>
<partnerLinkBinding name=”client”>
<property name=”wsdlLocation”>
Travel.wsdl
</property>
</partnerLinkBinding>
<partnerLinkBinding name=”employeeTravelStatus”>
<property name=”wsdlLocation”>
http://localhost:9700/orabpel/default/Employee/Employee?wsdl
</property>
</partnerLinkBinding>
<partnerLinkBinding name=”AmericanAirlines”>
<property name=”wsdlLocation”>
http://localhost:9700/orabpel/default/AmericanAirline/AmericanAirline?wsdl
</property>
</partnerLinkBinding>
<partnerLinkBinding name=”DeltaAirlines”>
<property name=”wsdlLocation”>
http://localhost:9700/orabpel/default/DeltaAirline/DeltaAirline?wsdl
</property>
</partnerLinkBinding>
</partnerLinkBindings>
</BPELProcess>
</BPELSuitcase>
我们现在准备启动 BPEL Process Manager。可以从开始菜单(如果使用 Windows)或通过执行 c:orabpelbin 目录中的 startOraBPEL 脚本(假设 Oracle BPEL Process Manager 已经安装到 c:orabpel 中)来执行此操作。为便于访问,建议将此目录包含在 PATH 中。
Oracle BPEL Process Manager 包含一个名为 obant 的 Ant 实用程序,用于配置复杂的编译和部署方案。obant 只是一个围绕标准 Ant 的包装程序,用于设置环境,然后调用标准 Ant Java 任务。要使用它,我们必须准备相应的项目文件(通常名为 build.xml)。以下是出差示例流程的项目文件:
<?xml version=”1.0″?>
<project name=”TravelProcessCh4″ default=”main” basedir=”.”>
<property name=”deploy” value=”default”/>
<property name=”rev” value=”1.0″/>
<target name=”main”>
<bpelc home=”${home}” rev=”${rev}” deploy=”${deploy}”/>
</target>
</project>
要编译和部署此 BPEL 流程,我们只需从命令行启动 obant。
既然我们已经在 Oracle BPEL 服务器上成功部署了 BPEL 流程,那我们就执行它。Oracle BPEL Process Manager 提供了一个 BPEL 控制台,通过它可以在 BPEL 服务器域中执行、监视、管理和调试 BPEL 流程。可以通过 http://localhost:9700/BPELConsole/ 访问 BPEL 控制台。我们必须单击流程名、填写以下表单并按 Post XML Message 按钮:
图 7:BPEL 控制台
我们现在看到一个屏幕,通知我们正在异步处理流程实例。我们可以选择执行、实例审计或实例调试的可视化流。实例的可视化流以图形方式显示了 BPEL 流程实例的执行。我们可以监视流程的执行及其状态(正在运行、已完成、已取消或过时):
图 8:实例流的图形视图
结论
现在,您已经熟悉了使用 BPEL 组合 Web 服务的基本概念,您可以更深入地研究更高级的概念。我的下一篇文章将介绍一些高级 BPEL 特性,如故障处理、范围、补偿、并发活动以及事件处理。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
SAP收购CallidusCloud 与Salesforce竞争
一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]
-
API设计如龙生九子 各不相同
IT咨询管理公司CA Technologies对API产业做了个问卷调查,问卷内容涉及API设计风格以及管理部署的新动向。调查结果表明,JSON与XML可谓两分天下。
-
保险公司如何能从BPEL中获益
对于保险业整合不同系统是一件寻常的工作。但保险公司经常会面临监管条例改变和应对不同的顾客需求。为了解决这些系统问题,软件专家正在使用一种强大的工具——BPEL。
-
从头开始实现领域驱动设计
领域描述业务;它是驱动企业的概念和逻辑的集合。如果遵循领域驱动设计(DDD)这一本质,那么领域就是应用程序中最重要的组成部分。