getRequest
|――parameter1(double)
|――parameter2 (double)
|――processType (String)
也就是说getRequest下面的所有参数都包含进去了。
2)创建接收<bpel:receive>
<bpel:receive name="request" partnerLink=" CaculatorService " |
Receive是整个BPEL的起点,所定义的变量request-bpel从服务请求中得到赋值,整个后面的业务过程将以这个请求变量作为触发点。
3)创建条件<bpel:switch/case>
程序将根据不同的条件调用不同的服务,所以先要设立各种条件:
<bpel:switch> |
上面的程序表示在request-bpel的变量中取出路径为getRequest/ processType所对应的变量值,如果满足这个值为“add”的条件时,可以在里面加入程序,完成相应的任务。
<bpel:otherwise> |
如果上面的所有条件都不满足时,可以在里面加入程序,完成默认的任务。
4)给所要调用的服务的请求变量赋值<bpel:assign/copy>
为了调用外部服务,先要给外部服务赋值:
<bpel:assign> |
上面表示将BPEL过程所收到的初始变量赋给加法服务的请求变量。
5)调用外部服务<bpel:invoke>
<bpel:invoke name="addService" partnerLink="AddService" |
上面将会调用加法服务AddSerivce,其中request-add为输入变量。
6)将服务的结果赋给BPEL的返回变量<bpel:assign/copy>
在完成了外部服务的调用之后,就可以将外部服务的输出结果赋给BPEL流程的返回变量。文法同步骤4。
7)调用<bpel:reply>
调用BPEL的reply命令,将BPEL流程的返回变量返回给服务请求者。
<bpel:reply name="response" partnerLink="CaculatorService" |
这里比较一下步骤2的<bpel:receive>和步骤6的<bpel:reply>,可以看到它们的partnerLink的名字、portType的名字、operation的名字都是一样的。它们是调用的同一个服务下面的同一个接口操作,只是两个命令的变量不一样。<bpel:receive>是收到请求消息的变量值,<bpel:reply>是将响应变量的结果返回给服务请求者。
事实上,BPEL运行环境执行<bpel:receive>后,就在等待<bpel:reply>的返回结果。
上面通过实例介绍了BPEL的基本创建过程,有了这些基本的BPEL整体创建思路后,就可以为更好地理解一些具体的语法打下了基础。
浏览地址: http://www.qqread.com/other-devtool/o391064.html进入讨论组讨论。相关专题
- BPEL的基本思想 (1次浏览)
- 动态和静态程序设计语言的可伸缩性 (0次浏览)
- 在Shell中执行vi/cp/mv时自动备份源文件 (0次浏览)



