一個(gè)簡單的BPEL文件看起來會像如下所示:
<?xml version="1.0"?>
<process name="changeAddress" ...>
<variables>
<variable messageType="..." name="...">
</variables>
<flow>
<receive .../> <!– for this request (operation and input) -->
<invoke .../> <!– call other service -->
<assign .../> <!– map data -->
<reply .../> <!– return data -->
</flow>
整個(gè)process是一個(gè)由不同操作組成的Web Services。XML文件按如下方式組織:
l Variable節(jié)定義流程的變量。類似的,還可以定義錯(cuò)誤處理,以及其他服務(wù)的鏈接
l 接下來定義頂層活動,這通常是一個(gè)sequence(順序執(zhí)行的子活動)或flow(定義了一個(gè)或者多個(gè)同時(shí)執(zhí)行的子活動)
l 一個(gè)receive通常是操作的開始,它定義了操作的名字和輸入數(shù)據(jù)
l 然后由各種活動定義出流程。這些活動包括用invoke來調(diào)用其他服務(wù),以及用asign來影射數(shù)據(jù)和給數(shù)據(jù)賦值
被重命名為WS-BPEL,是因?yàn)樗鼊?chuàng)建的“流程“按Web Service方式提供。于是,要調(diào)用這些流程和服務(wù)----必須使用Web Service;
當(dāng)然,這種業(yè)務(wù)流程建模標(biāo)準(zhǔn)并不是只能應(yīng)用于Web Service技術(shù)。用BPEL XML文件方式組合的流程和服務(wù)包括兩部分:一部分是業(yè)務(wù)流程的結(jié)構(gòu),另一部分是一個(gè)綁定,把該結(jié)構(gòu)與具體被調(diào)用或者被使用的技術(shù)操作關(guān)聯(lián)起來。提供到了Web Service的標(biāo)準(zhǔn)綁定,當(dāng)然你也可以使用其他綁定。 比如,對于將數(shù)據(jù)庫查詢當(dāng)做基本服務(wù)使用,Oracle BPEL工具提供了直接的支持。