• 沒有找到結果。

旅遊行程轉換器

在文檔中 Travel Profile Generator (頁 33-39)

排程演算法:

3.3 旅遊行程轉換器

如上圖 3-11 所示、在 Travel Profile Generator 產生出 Travel Schedule Profile 之後,TSP 會再經由「旅遊行程轉換器」(Travel Profile Converter,TPC) 轉換成精簡資訊網服務流程語言(Simple Web Service Flow Language,SWSFL),

再轉成 BPEL。所以 TPC 是有分成兩階段的轉換,BPEL 在第二章已有完整介紹過、

以下詳細介紹 SWSFL。

SWSFL 的標籤及屬性是以比較精簡的方式來表示資訊網服務之間的互動關 係、SWSFL 的 tag 可分成三大類:共通標籤、流程控制標籤及互動標籤,分別如 下各表所示。

標籤 屬性 說明

<profile> <profile>標籤為這個 XML 文件的根元素

<address> <address>標籤紀錄 Web Service 的進入點

<input> <input>標籤紀錄輸入的參數

<source> <source>標籤紀錄參數的內容

seq Seq 屬性表示第幾個參數

<output> <output>標籤紀錄輸出的參數

標籤 屬性 說明

表 3-10 精簡資訊網服務流程語言之共通標籤及屬性意義

表 3-11 精簡資訊網服務流程語言之流程控制標籤及屬性意義

<dependency> <dependency>標籤表示執行時的相依關係 condition Condition 屬性記錄執行的條件

<switch> <switch>標籤表示分支的執行方式

<while> <while>標籤表示迴圈的執行方式

圖 3-27 為 SWSFL 的標籤結構、第 0 層為<profile>標籤,第一層為

<dependence>、<activity>、<while>、<assign>標籤,其中<assign>標籤為指 定哪個變數要複製到哪個變數。第二層的標籤<dependency>、<address>、

<input>、<output>,其中<address>標籤記錄相關的資訊網服務的 endpoint,

標籤 屬性 說明

<activity> <activity>標籤包含要互動資訊網服務的資訊 name name 屬性記錄 activity 的 name

type type 屬性記錄 activity 的類別

partner partner 屬性記錄 activity 的 partner

<copy> <copy>標籤要做變數值的設定

<from> <from>標籤設定變數值

to to 屬性紀錄變數流程

<terminate> <terminate>標籤表示要結束流程 表 3-12 精簡資訊網服務流程語言之互動標籤及屬性意義

也就是要到什麼地方去 call 這個資訊網服務。第三層的標籤<source>、

<terminate>、<from>標籤,其中<terminate>標籤表示要結束流程。

圖 3-28 為 SWSFL 的一部分範例、在例子中可看出這個 SWSFL 檔案中有兩個 partner 在互相作用、其中一個 partner 有 3 個 input 及 1 個 output ,並且其 input 的來源分別是 fst 那個 activity 的 input 的第 8、9、10 個 input。另一 個 partner 的 input 有 2 個、output 有 1 個。

圖 3-27 精簡資訊網服務流程語言之標籤結構 profile

├ dependence

├ activity

├ while

├ assign

├├ dependency

├├ address

├├ input

├├ output

├├ sequential

├├ copy

├├├ source

├├├ terminate

├├├ from

在 TPC 中是將 TSP 的檔案中 4 個類別的旅遊服務提供者都轉換成 SWSFL 中 的 activity。其中<query>標籤就是一個景點服務提供者、所以轉換成一個

<activity name="quy1" type="invoke" partner="partner2">

<address>

http://127.0.0.1:8080/axis/travel/restaurant/dongshan/dongshan2/shan2_rest_query.jws?wsdl

</address>

<input>

<source seq="1">fst:input:source[seq='8']</source>

<source seq="2">fst:input:source[seq='9']</source>

<source seq="3">fst:input:source[seq='10']</source>

</input>

<output>

<source seq="1" />

</output>

</activity>

<activity name="quy2" type="invoke" partner="partner3">

<address>

http://127.0.0.1:8080/axis/travel/site/jiaosi/jiaosi_ticket_qurey.jws?wsdl

</address>

<input>

<source seq="1">fst:input:source[seq='15']</source>

<source seq="2">fst:input:source[seq='16']</source>

</input>

<output>

<source seq="1" />

</output>

</activity>

圖 3-28 精簡資訊網服務流程語言之範例

activity、<book>標籤也是一個景點服務提供者、所以也轉換成一個 activity。

並且會自動的將 query 類別的 activity 與 book 類別的 activity 建立先後的執 行關係。圖 3-29 就顯示了原始部分 TSP 的 XML 檔案、圖 3-29 即表示轉換成 SWSFL 後的檔案。

圖 3-29 旅遊排程記錄檔之範例 <用餐>

<時間>中餐</時間>

<日期>931129</日期>

<參加人數>10</參加人數>

<人員>張曉明</人員>

<query>

http://127.0.0.1:8080/axis/travel/restaurant/jiaosi/jiaosi1/jiaosi1_rest_query.jws

</query>

<book>

http://127.0.0.1:8080/axis/travel/restaurant/jiaosi/jiaosi1/jiaosi1_rest_book.jws

</book>

</用餐>

如圖 3-30 所示其為 TPC 第一階段轉換完成的 SWSFL 的一個範例、在 TSP 檔 案中的<query>及<book>標籤都會轉換成相對應的一個 activity。在 TPC 的第二 階段會將 SWSFL 轉成 BPEL 之後的檔案,如圖 3-31 所示

圖 3-30 精簡資訊網服務流程語言之範例 <activity name="quy0" type="invoke" partner="partner1">

<address>

http://127.0.0.1:8080/axis/travel/restaurant/jiaosi/jiaosi1/jiaosi1_rest_query.jws?wsdl

</address>

<input>

<source seq="1">fst:input:source[seq='1']</source>

<source seq="2">fst:input:source[seq='2']</source>

<source seq="3">fst:input:source[seq='3']</source>

</input>

<output>

<source seq="1" />

</output>

</activity>

<activity name="bok0" type="invoke" partner="partner5">

<address>

http://127.0.0.1:8080/axis/travel/restaurant/jiaosi/jiaosi1/jiaosi1_rest_book.jws?wsdl

</address>

<input>

<source seq="1">fst:input:source[seq='4']</source>

<source seq="2">fst:input:source[seq='5']</source>

<source seq="3">fst:input:source[seq='6']</source>

<source seq="4">fst:input:source[seq='7']</source>

</input>

<output>

<source seq="1" />

</output>

</activity>

在文檔中 Travel Profile Generator (頁 33-39)

相關文件