【TechTarget中国原创】尽管事实BPEL准备主要负责写长期运行的流程,它也提供一种创建复合服务的出色方式,即集合其他服务。
我们举个简单的例子:我有一个为特定公司提供股票报价的一个服务,我也有一个在两种货币间提供兑换率的服务。我可以使用BPEL连接这两个服务并提供一种服务:在我选择的币种下为某一公司提供股票报价。
所以让我们来创建股票报价服务;我们将采用两个参数创建一个简单的同步BPEL流程,两个参数为:证券报价机和所需币种。这便是随后将调用的两个外部服务。
创建股票报价服务
在开始之前,我们将创建StockService应用。随后StockService应用为添加BPEL项目。制定名称为StockQuote并选择同步BPEL流程。但这一步不要点击“完成”。

图一
通过为我们的服务单一输入输出文件,JDeveloper为服务自动创建一个简单的WSDL文件。这个股票报价服务需要通过多个领域(这就是证券报价机和所需币种)。因此我们利用预先定义的模式StockService、xsd给BPEL 流程定义输出和输入消息。如下所示:

输入StockService模式
在“创建BPEL流程”对话框中,点击“下一步”,可以看到你的流程的输入和输出选项,如下面的屏幕截图所示:

图二
覆盖JDeveloper自动生成的默认输入和输出模式元素,单击“闪光灯”(圆圈中的图标)。将弹出一个对话框允许你浏览所有BPEL流程输入的模式并从中进行选择。在我们的例子中,我们输入的任何模式都将自动在文件模式下启动“选择模式”窗口,文件模式允许我们为适合的模式搜索我们的文件系统。
找到StockService、xsd并进行选择。它将打开模式浏览对话框。浏览并选择“getquote”元素进行初始化,下面是截图:

图三
在本系类文章《Oracle SOA套件:用BPEL创建复合服务(二)》中,我们将继续为您介绍该案例中如何进行外部WEB服务的调用以及WEB服务的调用。