服務關聯性導向的服務品質計算與網路服務組合
沈惟嘉
凌網科技
[email protected]
吳秀陽、馬啟銘
國立東華大學資訊工程學系
[email protected]
摘要
本文提出以服務關聯性為導向的服務品質計 算機制,作為在網路服務組合執行時,動態選擇網 路服務的依據;首先使用圖形理論來表述與分析服 務之間的關聯性,並以極大獨立集合成功的解決服 務關聯性而造成的衝突;針對選擇最適當的網路服 務部分,設計了最多關聯性、最大覆蓋、最多折扣 及最大服務品質等關聯性選擇策略。考量工作流互 斥與平行的執行對於服務組合所造成的影響,在工 作流互斥執行部分,設計權重計算方式來評估各元 件被執行之可能性以輔助服務品質計算;在工作流 平行執行部分,採用漸進最佳化的方法來改善服務 品質。實驗顯示,考量服務關聯性的服務品質計算 機制可以更精準挑選出適合的網路服務,對於以網 路服務為主之跨企業電子商務系統,提供更堅實的 理論基礎與應用的實務價值。 關鍵詞:網路服務、網路服務組合、工作流、服務 品質、服務關聯性一、前言
網路服務(Web Services)的應用對於以網際網 路為基礎的電子商務系統已經是一門成熟的技 術,當單一的網路服務無法滿足複雜的資訊系統需 求時,組合現有的網路服務成為一個全新且功能更 強 的 組 合 稱 為 網 路 服 務 組 合 (Web services composition)。網路服務組合的出現為企業的電子 商務帶來了新的應用思維,現階段的研究採用了工 作流(workflow) 來表示網路服務組合的流程,並利 用服務品質(QoS, Quality of Service) 計算,經由評 量挑選出最適合使用者喜好的網路服務。 結合網路服務與工作流自動化是跨企業電子 商務系統在建置過程中非常重要的選項,加入以服 務關聯性為基礎的服務品質計算,在挑選網路服務 時可以更符合電子商務環境的實際需求。但現階段 網路服務挑選只考慮到單一網路服務的服務品質 計算,並未考量到服務關聯性而影響到整體的服務 品質計算,因此產生了研究的動機,提出以服務關 聯性為導向作為服務品質計算的依據;首先探討服 務與服務之間的關聯性,說明因工作流的特性所造 成的影響,對於活動控制圖(AC-Diagram)[1]的每個 元件加入權重的設計,用以評估每個網路服務被執 行的可能性,並設計了四種挑選服務關聯性的策 略,最後以漸進式最佳化的方式找到全域最佳化的 解。 為達成上述目標,本文將分以下步驟來進行, 包括:1、使用活動控制圖作為網路服務組合的塑 模工具;2、進一步分析活動控制圖的語意特性以 計算網路服務組合裡各元件在服務品質上的權 重;3、設計服務品質模型;4、明確的定義服務關 聯性的服務品質計算;5、.探討因服務關聯性產生 可能的衝突,設計不同特性之關聯性挑選策略及以 服務關聯性為基礎之網路服務組合;6、針對工作 流的平行執行特性採用漸進最佳化方法達到全域 最佳化的目標;7、系統實作與效能評估。二、相關研究
在網路服務組合研究上,目前所面臨的最大的 問題是如何在動態連接的階段由眾多功能相近的 網路服務中挑選出最適合使用者的元件,常見的研 究是利用服務品質作為挑選網路服務的依據; Liu[2]利用,例如:服務的價值、執行的時間、使用 者評價、可靠性等功能性質當作品質標準(Quality Criteria)來評估一個網路服務的服務品質,再依據 使用者對於品質標準的喜好給予權重,重新計算出 網路服務上的服務品質分數,作為動態連接時網路 服務元件的選擇依據,但以上的作法未考量服務關 聯性而影響到整體服務品質的計算;Zang[3]提出 了區域與全域服務品質最佳化的觀念,Zang 利用 整數線性規劃(Integer Linear Programming)找出最 適合的網路服務組合元件,Canfora[5]則使用基因 演算法(Genetic Algorithm)來挑選網路服務,但是 也未加以討論服務之間的影響。 觀察現實生活,當網路服務成長為一種商業行 為時,會因為策略聯盟而使得兩個不同的網路服務 必須同時使用,服務之間的相互影響就產生了,進 而影響到整體的服務品質計算,以上的現象命名為 服務關聯性(Service dependency);以現實生活為 例,當某些商品合在一起購買時商家才提供折扣, 部分的消費者會因為考量到折扣而增加購買的商 品;同樣的道理,當兩個以上的網路服務同時北使 用時,彼此間產生影響,應該將關聯性所帶來的影 響列入網路服務選擇的考慮因素中。工作流(Workflow)是目前最常被使用在網路 服 務 組 合 上 的 技 術 , 其 中 WfMC(Workflow Management Coalition)在技術上的發展及規格的制 定[4],Wu[1]在樣板的建立及研究都趨於成熟,至 於網路服務組合塑模語言,如 BPEL4WS[6] 及 BPML[7]等,Aalst[9]曾對眾多的塑模語言做過詳 細的介紹,並以工作流樣板(Workflow Template)的 角度來比較網路服務組合塑模語言的優劣。 本文採用活動控制圖做為分析與塑模網路服 務組合的基礎,但因為活動控制圖本身並沒有考量 互斥執行造成的影響,也沒有服務品質的計算方 式,所以我們除了分析活動控制圖各種元件的語意 特性及設計出權重計算的方式之外,也定義了一個 完整的服務品質模型來探討服務間的關聯性。
三、活動控制圖塑模網路服務組合
(一) 活動控制圖 完整的活動控制圖必須是一個 bipartite graph 包含一組活動圖件、一組控制圖件和一組關係來表 示活動與控制之間的流程與相互關係。現存的流程 描述工具只有通用的活動圖示,而未提供類似活動 圖件的機制。在工作流的設計上須明確訂出活動的 類別、語意性質,特別是資訊傳輸流向,有助於使 用者的商務流程模式化的過程及系統的自動化分 析和處理。 活動圖件用來描述商務活動,我們採用如圖 3-1 活動圖件,展示的一般活動,讓企業的商務活 動描述更有彈性。 圖 3-1 活動圖件 圖 3-2 控制圖件,顯示的控制圖件可用來描述 各種流程定義中所需要用到的控制結構,完整的表 達了商務活動之間的複雜關係。在完成商務程序之 活動控制圖設計後,商務模式化系統可以依據正規 語意,自動的將活動控制圖轉換成 XML 工作流規 範(XML workflow specification),成為跨企業代理 人交易系統之輸入。交易系統的任務,正是將此一 商務流程在網際網路上順利執行,同時保證流程執 行的交易特性。 圖 3-2 控制圖件 (二) 網路服務組合之塑模 一個工作流程被定義為 ( , , )A C R 1 2 { , ,..., n| , i } Aa a a A ,i a 代表所有活動圖件的集合。 1 2 { , ,..., m| , i } Cc c c C ,i c 代表所有控制圖件的集合 {( , , ) | , , } R I c O IA OA c 。C 代表所有關係的集合。 在本文中,我們將網路服務組合視為一個工作 流,所有的活動圖件都視為網路服務呼叫,但是網 路服務組合裡面所呼叫的網路服務是在執行時才 動態決定的,所以須重新定義網路服務組合為 ( , , )T C R ,其中T { , ,..., }t t1 2 tn 是網路服務組合裡需 被執行的任務集合,安排相對應的網路服務來執行 網路服務組合裡的任務,稱之為網路服務組合之執 行計劃,定義 p 為一個網路服務組合的執行計劃: 1 1 2 2 { , , , ,..., n, n } p t s t s t s , 其中t t1, ,...,2 t 為網路服務組合裡所有的任務n 之集合,且s s1, ,...,2 sn分別為執行任務t t1, ,...,2 t 所n 安排之網路服務,有了執行計劃後便可以將之轉換 為真正的工作流程來執行。 (三) 活動控制圖之權重分析 在工作流程裡面,由於存在互斥性質的元件而 導致每個元件被執行到的機率不同,因此需評估所 有元件被執行到的機率,如此才能判斷不同的元件 會對整體的工作流造成的影響程度,但是活動控制 圖跟傳統工作流語言的差別在於,傳統工作流語言 是一個分支(Split)對應一個結合(Join),而活動控制 圖允許,如圖 3-3. 彈性之分支結合結構,來源相同之分支連接至不同的結合的情況發生,所以無法 用機率來判斷元件被執行的可能性,因此我們改以 權重的概念來模擬機率的發生,作法是每個元件都 被分配到一個權重
w
,其中0
w
,當權重的值越 大代表元件影響整體工作流的程度越大,我們分別 定義w c
c( )
、w e
e( )
為元件c
及連結e
的權重。 圖 3-3. 彈性之分支結合結構 我們將活動控制圖裡的活動圖件跟控制圖件 分為三大類型來說明,並列出其權重的計算方式, 其中c
代表圖件本身: 循序(Sequence)類型: 此類型包含了 SEQUENCE、LOOP 及所有的 活動圖件,特徵是只有一個輸入及輸出的連結,其 中i
代表c
輸入的連結,o
代表c
輸出的連結。 對 SEQUENCE 圖件及其他的活動圖件來說, 因為沒有分支也沒有結合,所以我們定義這類型圖 件輸出的連結之權重及圖件本身之權重都等於輸 入的連結之權重: ( ) ( ) c e w c w i,
( ) ( ) e e w o w i。
對 LOOP 圖件而言,因為所包含的模組圖件可 能會被執行多次,所以我們根據過去執行的經驗來 得出平均執行其模組圖件的次數,我們為其記錄一 個表格,格式為number times, ,number 代表曾 經發生過的連續執行其模組的次數, times 為連續 執行 number 次模組之次數,我們假設此表格為NT 且NT{ 1,times1, 2,times2 ,..., n times, n,} n 為目前為止發生過的最多連續執行模組次數,相 關權重計算方式如下: 1 1 ( ) ( ) n i i c e n i i i times w c w i times
,
( ) ( ) e e w o w i。
我們得出平均模組被執行之次數之後再乘上 輸入連結之權重來成為這個 LOOP 元件之權重,輸 出連結之權重則跟輸入連結之權重一樣。LOOP 元 件本身的權重是所有權重計算中唯一有可能超過 1 的元件。 分支(Split)類型: 此類型包含了 AND、OR、XOR、CHOICE 、 CONDITION、COUNT 及 PRIORITY 等控制圖件, 其中i
為c
輸入的連結,O{ ,o o1 2,..., }on 為c
所有 輸出連結之集合。 對 AND 圖件而言,此圖件會對所有的分支平 等對待且平行地執行,所其權重設定為: ( ) ( ) c e w c w i,
( ) ( ), e e w o w i o O。
每個輸出分支之權重都等於輸入連結之權重,代表 所有的分支均會被執行。 對 OR 及 XOR 圖件而言,這兩個圖件都會選 擇任一分支往下執行,若所選擇的分支執行失敗, OR 會嘗試執行其他分支,但是 XOR 則不會。對 這兩個圖件的權重設定為: ( ) ( ) c e w c w i,
( ) ( ) / , e e w o w i n o O。
因為每個分支被選到的機率是相等的,表示每個分 支被執行的機率為1/ n。
對 CHOICE 圖件而言,其元件上只有兩個分 支,分別代表此圖件要求的條件是成立或是失敗而 執行,在此我們利用過去的執行經驗來判斷權重, 首先我們先定義 p 為分支 e 在此網路服務組合中e 到目前為止的成功執行機率: 0 且pe 1 e 1 e O p
。 相關的權重設定如下: ( ) ( ) c e w c w i ( ) ( ) , e e o w o w i p o O 用機率來決定權重以符合我們 CHOICE 的語意。 對 CONDITION 圖件而言,只要目前的執行狀 況能夠符合分支的執行條件,分支即可往下執行, 跟 CHOICE 最大的不同是 CONDITION 的分支沒 有互斥的性質。在此也是使用過去的經驗來判斷分 支的權重,首先定義p 為分支 e 目前為止的成功執e 行機率,其中 0 ,其權重的設定為:pe 1 ( ) ( ) c e w c w i,
( ) ( ) , e e o w o w i p o O。
因為 CONDITION 元件只要分支的條件成立 即會繼續執行下去,所以我們藉著過去經驗來求出 所有分支各自成功的機率,然後再將輸入連結之權 重乘上成功執行機率來計算分支的權重。 對 COUNT 圖件而言,當執行到此圖件時會任 選 COUNT 指 定 數 目 的 分 支 往 下 執 行 , 假 設 COUNT 指 定執 行的 數目為m
的話,權重為: ( ) ( ) c e w c w i ,任一分支會被選擇繼續執行的機率 為: 1 1 n m n m C C ,相關權重計算方式如下:1 1 ( ) ( ) nm , n m C e e C w o w i 。o O 為符合了 COUNT 圖件的語意,每個分支的權重都 等於輸入的權重乘上 1 1 n m n m C C ,。 對 PRIORITY 圖件而言,會根據優先權的高低 來一一執行分支直到有任一分支成功為止,在此也 用過去的執行經驗來判斷權重,首先先定義 p 為e 分支 e 到目前為止使得 PRIORITY 能夠繼續往下 執行的機率,其中 0 pe 1
且
e 1 e O p
,
權重設定的如下: ( ) ( ) c e w c w i,
( ) ( ) , e e o w o w i p o O。
如同 CHOICE 一樣,用機率的方式來判斷我們該 如何切割權重。 結合(Join)類型: 此 類 型 包 含 了 AND_JOIN 、 OR_JOIN 、 COUT_JOIN、PRIORITY_JOIN 等控制圖件,其中 1 2 { , ,..., }n Ii i i 為c
所有輸入連結之集合, o 為 c 的 輸出連結。 對 AND_JOIN 圖件而言,此圖件必需等到所 有的輸入連結都到達才可以繼續往下執行,其權重 的設定為: 1 2 ( ) min( ( ), ( ),..., ( )) c e n w c w i we i we i , 1 2 ( ) min( ( ), ( ),..., ( )) e e n w o w i we i we i 。 對所有權重取最小值是因為 AND_JOIN 這個圖件 包含了必須等待所有輸入完成的語意,所以我們找 出所有輸入連結權重的最小值,作為 AND_JOIN 的權重以符合圖件的語意。 對 OR_JOIN 圖件而言,此圖件只要有任一輸 入完成,即可繼續往下執行,其權重的設定為: 1 2 ( ) max( ( ), ( ),..., ( )) c e n w c w i we i we i , 1 2 ( ) max( ( ), ( ),..., ( )) e e n w o w i we i we i 。 對所有權重取最大值是因為 OR_JOIN 只要有任一 輸入完成即可往下執行,所以我們取最大值的權重 以符合這個圖件的語意。 對 COUNT_JOIN 圖件而言,此圖件必需等待 至少指定的數目之輸入完成才能繼續往下執行,相 當於是 AND_JOIN 跟 OR_JOIN 的結合,假設 COUNT_JOIN 至少要完成的輸入之數目為m
的 話,那麼會有 n m C 種組合情況讓 COUNT_JOIN 判斷 執行,對這 n m C 種情況單獨分開來看的話,相當於 是必須等待 m 個輸入的 AND_JOIN,再將這 n m C 種 情況結合起來的話,相當於是一個有 n m C 個輸入的 OR_JOIN , 根 據 上 面 我 們 為 AND_JOIN 跟 OR_JOIN 所 定 義 的 權 重 設 定 , 推 出 對 COUNT_JOIN 的權重設定應該是先對C 種情況mn 各自取最小值之後再取其中之最大值,式子可化簡 為: 1 2 ( ) the m largest of ( ( ), ( ),..., ( )) c e e e n w c w i w i w i 1 2 ( ) the m largest of ( ( ), ( ),..., ( )) e e e e n w o w i w i w i 或 1 2 ( ) the (n-m+1) smallest of ( ( ), ( ),..., ( )) c e e e n w c w i w i w i 1 2 ( ) the (n- m+1)smallest of ( ( ), ( ),..., ( )) e e e e n w o w i w i w i 因為 n m C 種情況都要取最小值,這時所有權重 中比第 m 個大的權重都會被忽略掉,而 n m C 種情況 裡的最小值之中最大的剛好就是第 m 大的權重,所 以再取最大值的時候就可找出第 m 大的權重。 對 PRIORITY_JOIN 圖 件 而 言 , 因 為 PRIORITY_JOIN 的語意是除了優先權最高的輸入 到達之後才可直接往下執行,其他的則是要等到 PRIORITY_JOIN 本身的等待時間結束後來會根據 優先權由高向低檢查是否有輸入完成,有的話才會 根據成功的輸入連結資料繼續往下執行,不過等待 的性質跟 OR_JOIN 圖件一樣,只要有任一成功的 輸入即可,其權重的設定為: 1 2 ( ) max( ( ), ( ),..., ( )) c e n w c w i we i we i , 1 2 ( ) max( ( ), ( ),..., ( )) e e n w o w i we i we i 。 跟 OR_JOIN 一樣,取所有輸入權重的最大值。四、服務關聯性模型
用 來 評 估 服 務 品 質 所 使 用 的 品 質 標 準 (quality criteria),分 成基本網路 服務(Elementary Web service) 及 組 合 網 路 服 務 (Composite Web service)兩部分,分別說明服務品質的計算方式。(一) 基本網路服務之品質標準
我們使用了五個品質標準,分別是:執行價格 (Execution price)、執行時間(Execution duration)、 使用者評價(Reputation)、可靠性分數(Reliability) 及可得性(Availability)分數[10],其定義及計算方式 分述如下: 執行價格: 定義qprice( ,s op 為呼叫網路服務 s 中的 op 功) 能所要支付給服務提供者的費用。 執行時間: 定義qduration( ,s op 為呼叫網路服務 s 中的 op) 功能所需要花費的平均時間,時間的計算是從送出 呼叫訊息開始,到接收到回傳訊息為止的時間,計 算方式如下: 1 ( , ) ( , ) n i i duration T s op q s op n
,計算出服務 s 中的 op 功能每次呼叫平均花費的時 間,成為服務 s 執行時間之品質條件。 使用者評價: 設定使用者評價的分數是從 1 到 10 的整數分 數,最高評價分數是 10,最低是 1。定義網路服務 s 的使用者評價計算方式如下: 1 ( ) n i i reputation R q s n
, 其中 n 為目前為止網路服務 s 被呼叫過的次數,Ri 表示第 i 次的評價。 可靠性分數: 設定分數的範圍從 0 到 10,最高分數是 10 分,最低是 0 分。網路服務s
的可靠性分數計算方 式定義為: ( ) ( ) c 10 rscore N s q s k , 其中N 為目前為止網路服務 s 被呼叫過且成功的c 次數, k 表示目前為止被呼叫過的總次數。 可得性分數: 設定分數的範圍從 0 到 10,最高分數是 10 分,最低分數是 0 分。網路服務 s 的可得性分數計 算方式定義為: ( ) ( ) a 10 ascore T s q s , 其中T 為最近a 秒內網路服務 s 正常回應秒數,其 中的設定可以隨著網路服務類型的不同以及對 服務要求的不同來調整,例如當網路服務具迅速變 動的特性時,可設為小一點的值,如即時的查詢 服務。 根據上面對所有品質條件的定義,對每個網 路服務 s 及所要呼叫的功能 op 而言,會有一個服 務品質的向量,此向量為 ( ,q s op ,其定義如下:)( , ) ( price( , ), duration( , ), reputation( ), rscore( ), ascore( ))
q s op q s op q s op q s q s q s (二) 組合網路服務之品質標準 網路服務組合在本文中被視為一個樣板,裡面 並沒有包含網路服務,真正定義的服務品質計算方 式其實是針對網路服務組合的執行計劃,在此先假 設 p 為網路服務組合 wsc 的執行計劃: 1 2 { , n , , n ,... n, n } p t s t s t s 相同於基本網路服務之服務品質條件,在網路 服務組合中亦區分為執行價格、執行時間、使用者 評價、可靠性分數及可得性分數[10]等五項條件: 執行價格: 定義qprice( )p 為網路服務組合 wsc 之執行計劃 p 的執行價格,並定義計算方式如下: 1 ( ) ( , ( )) ( ) n i price price i i c i q p q s op t w t
其中op t 為任務( )i ti所呼叫之功能,算出每個網 路服務各自的價格乘上各自的權重並加總之後 來成為此執行計劃之價格。 執行時間: 定義qduration( )p 為網路服務組合 wsc 之執行計 劃 p 的執行時間,因為執行時間的評估需要考量到 工作流的特性,所以用傳送時間的方式來評估執行 時間。從 START 元件開始,根據不同的元件來傳 送時間給下一個連接的元件直到到達 END 為止, 在 此 定 義 qcptime( )c 為 元 件c
上 的 傳 送 時 間 、 ( ) eptime q e 為連結 e 往下傳送的時間。 根 據不同元 件的特色 來改變 時間傳送 的方 式,例如 AND_JOIN 需要等待所有的輸入都完成, 所以傳送給下一個元件的時間即是所有輸入工作 流裡最長的時間;而 OR_JOIN 只需要一個輸入完 成即可,但是在此取得是平均值而不是最小值,這 是因為所有的時間都有乘上相對應的權重,如果取 最小值的話,那便有可能取到權重很小但是執行時 間很長的工作流之時間而失去客觀,所以用平均值 來代替最小值;對 COUNT_JOIN 而言,先為 n m C 種 情況各自取最大值,然後再對這 n m C 個最大值再取 平 均 值 來 當 作 COUNT_JOIN 的 傳 送 時 間 , 1 2 { , , n} Cmmtime mtime mtime 代表我們對 n
m C 種情況各 自取最大值的結果。 此外除了 JOIN 類型的控制元件,其他的控制 元件都沒有等待的性質,所以直接傳送原先輸入的 時間給下一個元件。當執行時間傳送到 END 元件 end 之後,時間傳送便停止。在此定義: ( ) ( ) duration cptime q p q end END 元件上的qcptime即是執行計劃的執行時間。 使用者評價: 定義qreputation( )p 為網路服務組合 wsc 之執行 計劃 p 的使用者評價,並定義計算方式如下: 1 ( ) ( ) ( ) n i reputation reputation i c i q p q s w t
跟執行價格一樣,計算出各自的評價分數乘上權重 並加總。 可靠性分數: 定義qsescore( )p 為網路服務組合 wsc 之執行計 劃 p 的可靠性分數,並定義計算方式如下: 1 ( ) ( ) ( ) n i rscore rscore i c i q p q s w t
跟執行價格一樣,計算出各自的分數乘上權重並加 總。 可得性分數: 定義qascore( )p 為網路服務組合 wsc 之執行計 劃 p 的可得性分數評價,並定義計算方式如下: 1 ( ) ( ) ( ) n i ascore ascore i c i q p q s w t
跟執行價格一樣,計算出各自的分數乘上權重並加 總。 根據網路服務組合上之執行計劃的服務品質條件 之定義,對每個網路服務組合之執行計劃 p 可得出 一個服務品質的向量,此向量為:( ) ( price( ), duration( ), reputation( ), sescore( ), ascore( ))
q p q p q p q p q p q p 但是在本文中所設計的服務挑選演算法並沒有利 用到網路服務組合之服務品質的計算方法,不過為 了能跟其他方法挑選出來的執行計畫做一個客觀 的比較,所以在此仍要定義出網路服務組合在各個 服務品質之計算方式。 (三)服務品質之服務相關性 根據現實世界的情況,我們發現許多不同種類 不同性質的關聯性,除了影響價格的方式不同之 外,也有的關聯性要求要全部條件都符合,例如指 定的商品都要購買才有折扣,也有的關聯性只需要 部分符合即可,例如四種商品只要任購三種即可發 生關聯性,下面為不同種類之關聯性的介紹: 相同折扣率: 當商品發生關聯性時,所有的商品都會根據相同 的折扣率打折,例如商品 A 跟商品 B 有關聯性, 同時購買符合這個關聯性之時,兩種商品都會有 九折的優惠。 相異折扣率: 當商品發生關聯性時,不同的商品有不同的折扣 率,例如商品 A 跟商品 B 有關聯性,但是商品 A 的折扣率是九折,商品 B 則是八折,兩種商品 的折扣率不同。 根據使用次數的不同折扣率: 當某消費者對同一種關聯性使用次數累加到一 種程度之後,折扣率會改變,例如商品 A 跟商 品 B 有關聯性,一開始的折扣率為九折,但是只 要同一位消費者使用關聯性的次數超過三次以 上之後,從下次開始折扣將會變成八折。 指定價格: 當商品發生關聯性時,所有商品的價格之總和會 被指定為一個較便宜之價格,例如商品 A 的單 價為一百元,商品 B 的單價為兩百元,兩個一起 購買只需兩百五十元。 額外附贈: 當滿足關聯性之時,會直接贈送其他商品或是給 予某種滿足關聯性的證明,下次即可使用此證明 來得到某種優惠,例如同時購買商品 A 及商品 B,可以得到商品 C 的八折優待卷,下次購物時 便可直接使用。也有其他不同情況的例子,例如 商品 D 可以買二送一等。 其他應該還有許多不同情況之關聯性,而且不 止侷限在價格方面的影響,如果兩個不同的服務是 同一家公司所提供的話,那麼一起使用它們便可節 省網路上傳遞的時間,這就是執行時間方面的關聯 性,但是在本文中,現階段只考慮最常見的價格影 響,其他服務品質方面的影響則不列入考慮。 上 面雖然列 舉了不同 影響價 格方式的 關聯 性,不過在本文中只考量相同折扣率以及指定價 格,而且只考量整體性的關聯性,並不考量部分性 質的關聯性,也就是假設所有的關聯性都會要求指 定的網路服務全部都要符合才行。在此定義UD 代 表 相 同 折 扣 率 , FP 代 表 指 定 價 格 , 接 著 定 義 { , } DUD FP 為這兩種關聯性之集合,然後定義服 務關聯性 sd : , , sdS dt d , 1, 1 2, 2 { , ,..., n, n } S s op s op s op 。 為發生關聯性 sd 所必需包含的所有網路服務及對 應的功能之集合,dt 為關聯性的種類且 dt ,dD 為關聯性相關的變數,如果 dt UD 的話便代表折 扣率, dt AP的話便代表指定價格。定成定義關 聯性之後,得重新定義具關聯性之價格品質條件的 計 算 方 式 , 當 一 個 關 聯 性 sd S dt d, , 且 1, 1 2, 2 { , ,..., n, n } S s op s op s op 發生的條件 成立時,定義qdprice( ,s op 為網路服務)
s
上的功能 op 在發生關聯性情況下之價格,其中當 dt = UD 時:qdprice( ,s op)qprice( ,s op) * ,d s op, ,當S dt = FP 時:qdprice( ,s op)d n/ ,s op, 。S 藉著重新定義價格品質條件的計算方式,可以 明確地知道當發生關聯性時這些服務的價格該怎 麼根據關聯性的種類來變動,以便在服務挑選期 間,發生關聯性之時可以計算出正確的服務價格。 (四)網路服務組合架構 我們介紹了網路服務組合塑模工具—活動控 制圖,針對活動控制圖的語意特性設計了權重計 算,接著是所設計的服務品質模型以及服務關聯性 模型等,這四個部分的關係如圖 4-1 模型架構圖所 示。 我 們先用活 動控圖設 計網路 服務組合 之樣 板,接著每當有任何使用者要求呼叫這網路服務組 合時,同時這個使用者會給予他對各個服務品質喜 好的權重設定以及喜好之關聯性挑選策略,然後即 時地計算出網路服務組合裡頭每個元件對整體服 務所應具有的權重之後,並根據使用者的喜好以及 使用者所喜好之關聯性挑選策略,利用服務品質的計算找出最符合使用者所要求的特性之網路服 務,例如最省錢或是執行速度最快等,最後組合成 一個真正的網路服務組合,將之轉化為活動控制圖 引擎可執行之格式,執行完之後將結果回傳給使用 者。至於相關的服務挑選演算法以及關聯性挑選策 略,將在下一節說明。 圖 4-1 模型架構圖
五、網路服務的選擇
(一) 目標設計與相關假設 我們的方法特色在於提供處理服務關聯性的 機制,考量網路服務組合裡各自網路服務的權重而 且兼顧全域最佳化的議題。以下列出希望達成的目 標及使用的方法: 針對各服務被執行之不等機率而評估出對整體 網路服務組合影響之權重。 透過對活動控制圖的分析,設計出一套權重計算 的方法,每當有使用者要求使用網路服務組合時, 便即時地算出各元件該佔有之權重,再將權重列入 服務品質計算的考量之中。 能夠處理服務關聯性。 為了能夠處理服務關聯性,除了分析及了解關 聯性之間是否會產生衝突之外,另外也設計了四種 關聯性的挑選策略,讓使用者能夠根據自己的喜好 來決定關聯性挑選的方式。 考量全域最佳化的概念。 提出了漸進最佳化的想法,分析有可能產生全 域最佳化議題的平行執行工作流,並找出可改善服 務品質之網路服務來替換。 此外定義一些研究假設假設,以釐清問題的範 圍,以下列出相關的假設: 假設 1、語意相符之網路服務: 假設已經建立了完善的網路服務註冊機制,能 夠準確查詢出所有網路服務組合裡各任務所對應 語意相符之網路服務,供我們的演算法來從中挑 選,本文所提的方法是建立在知識基礎已經建立完 成的假設之上,所以不會發生任何語意不符合的情 況。 假設 2、服務關聯性的註冊機制 假 設已經建 立良好之 服務關 聯性的註 冊機 制,為網路服務組合挑出一群候選的網路服務時, 能夠同時查詢到這些對應至不同任務的網路服務 之間,哪些是有服務關聯性存在及相關的特性或資 料等。 (二) 區域最佳化 區域最佳化顧名思義即是針對各自的任務挑 出一個網路服務,最後整合成網路服務組合,在挑 選的過程中不會考量到其他任務的網路服務;至於 如何從眾多網路服務中挑選出最適合使用者喜好 的網路服務,就要靠服務品質分數之計算。 我們為每個網路服務計算出一個服務品質的 總分,最後挑選出分數最高的網路服務。在本文中 使 用 之 前 介 紹 的 服 務 品 質 模 型 並 假 設 1 2 { , ,..., }n S s s s 為候選的網路服務集合,q 為網路i 服務s
i的服務品質向量,將所有網路服務的服務品 質 向 量 建 立 成 一 個 二 維 的 矩 陣 Q 且 , ( i j;1 ,1 5) QQ ,第 i 列為網路服務i n j si 的服務品質向量,因為只有五個服務品質條件,所 以 j 必須大於等於 1,小於等於 5。並不是每種服 務品質條件都是越大越好或是越小越好,而且不同 的服務品質條件的數字範圍又不相同,所以我們必 須對 Q 做轉向及一般化的動作,使得所有的值都能 介於 0 到 1 之間,且值越大代表越好。 下面是轉向及一般化的公式,假如服務品質 j 是逆向性質,也就是越小越對使用者有利,例如執 行時間,可利用下面的式子為其做轉向及一般化: min , max min , max min 0 i j j i j j j j j Q Q V if Q Q Q Q , max min , 1 0 i j j j V if Q Q 。 完成上述的工作之後會得到一個矩陣 V , , ( i j;1 ,1 5) V V ,再根據使用者對這五i n j 個服務品質所提供的權重設定 W ,W 代表對第 jj 個服務品質的權重: [0,1] j W 且 5 1 1 j j W
, 接著使用下面的公式來計算出每個網路服務 的服務品質分數:5 , 1 ( )i i j j j Score s V W
。 其中Score s 代表網路服務( )i s 的區域服務品i 質分數,當所有網路服務的服務品質分數都計算出 來之後,挑選其最高分來成為這個任務所需之網路 服務。 (三) 服務關聯性衝突 不 同的服務 關聯性在 同一個 網路服務 組合 裡,可以混用也有會產生衝突的情況,在此我們使 用了圖形的概念來解決這個問題,首先將每個關聯 性都當成是圖形裡面的節點,假如兩個關聯性之間 只要有一各自的網路服務是對應到網路服務組合 裡相同的任務且對應到相同任務之兩個網路服務 並不是同一個網路服務的話,那就稱這兩個關聯性 有衝突關係。 為這兩個關聯性的節點加上連結,最後會得到 一個服務關聯性的衝突圖形(Conflict Graph)。只要 找出這個衝突圖形所有的極大獨立集合(Maximal Independent Set),每一個極大獨立集合裡的所有關 聯性便代表可以同時使用在同一個網路服務組合 裡而不會導致有衝突發生,找出衝突圖形請參考表 5-1 極大獨立集合演算法。 表 5-1 極大獨立集合演算法 MIS(G )M
//M is a set of set of vertex for each vertex vV //V is set of vertexdo I V{ }v
//Adj v[ ] is adjacency-list of vertex v for each uAdj v[ ]
do I I{ }u
if I
then S { }v // S is a set of vertex
M M{ }S
else for each vertex iI
S I //
S
is a set of vertex for each uAdj i[ ]do S S{ }u S S{ }v M M{ }S return M (四) 關聯性挑選策略 解決關聯性衝突的問題後,接著便要決定關聯 性挑選的方式,考量執行的效率,我們直接從所有 關聯性極大獨立集合中挑選其一,並全部將關聯性 代入網路服務組合裡面。在此設計了四種挑選策 略,分別介紹如下:
最多關聯性策略(Maximal Dependency Strategy) 從所有極大獨立集合當中,挑選出內含數量最 多的項目,亦即關聯性最多的項目,代表在網路服 務組合之中可能地使用最多的關聯性。
最大覆蓋策略 (Maximal Coverage Strategy) 從所有極大獨立集合當中,挑選出所有關聯性 能夠處理最多網路服務組合裡的任務之項目,如果 能夠處理的任務數量一樣多的話,我們則會選擇關 聯性數量的項目,意即完成最多任務中使用最少關 聯性的項目。
最多折扣策略 (Maximal Discount Strategy) 從所有極大獨立集合當中,挑選出所有關聯性 都使用的情況之下,能節省最多價格之項目。作法 是將所有極大獨立集合裡的關聯性都套用的情況 之下,找出所有關聯性裡的網路服務各自節省下的 價格乘上其對應的任務之權重後並加總。 最大改善服務品質策略 (Maximal Improvement Strategy) 在所有極大獨立集合當中,挑選出所有關聯性 都使用的情況之下,能夠改善區域最佳化最多服務 品質之項目,做法是針對每個極大獨立集合中所有 的關聯性都使用的情況之下,求出其改善區域服務 品質乘上相對應的任務之權重並加總,跟最大節省 策略的作法幾乎一樣,只是從價格上的考量變為所 有服務品質的考量。 當使用關聯性挑選策略選擇出服務關聯性並 對應至網路服務組合後,可能無法兼顧到所有的任 務,因為一個網路服務組合裡所有的任務不太可能 完全被包含在所有的關聯性之下,也就是說扣掉使 用關聯性決定的網路服務,還會有許多網路服務組 合裡頭的任務尚未被決定對應的網路服務,因此採 用區域最佳化來處裡這些尚待挑選的任務,以找出 區域內最適當的網路服務。 (五) 全域最佳化改善服務品質 當使用關聯性選擇策略挑選出所要使用之關 聯性之後,也用區域最佳化來補上其他空著的任務 所對應之網路服務後,還可以再針對 Zeng[3]所提 出因為工作流平行執行而使得區域最佳化無法成 為全域最佳化的問題做改善。 改善的方式根據現實的情況來選擇要不要對 關聯性做過濾,接著對已過濾後的關聯性或是沒過 濾的關聯性做衝突上的判斷,然後根據使用者喜好 的策略來做關聯性的挑選,再來是利用區域最佳化 找到網路服務,以滿足剩餘沒被關聯性包含到的任 務,最後可以選擇要不要針對全域最佳化來做漸進 式的改善。
六、系統實作與效能分析
(一) 發展環境介紹
我們選擇 Java 程式語言作為系統開發工具, 實 驗 中 採 用 AMPL(A Modeling Language for Mathematical Programming)[9]來實作使用整數線 性規劃之全域最佳化網路服務挑選。AMPL 為數學 問題塑模軟體,可搭配其他 Solver 處理如線性規 劃、整數線性規劃以及其他的排程問題,本研究的 實驗是在 Pentium 4 3.0 GHZ、512MB RAM,作業 系統為 Gentoo Linux 2006 上執行。 (二) 實驗假設 我們使用了圖 6-1.旅遊服務圖所示之旅遊服 務來做實驗,實驗中設計讓每個任務能夠挑選的網 路服務從 5 個成長到 50 個,接著設計訂房和訂機 票服務,以及訂機票與租車服務會產生關聯性,關 聯性數量的期望值為每個任務可挑選之網路服務 數乘上 0.1,且這兩種關聯性都設定為固定折扣, 折扣為八折,除此之外關聯性會固定在區域最佳化 服務品質分數排名前 75%的範圍內發生,藉此模擬 現實世界中有關聯性的情況下。 圖 6-1 旅遊服務圖 (三) 服務品質分數分析比較 首先先比較使用不同策略挑選關聯性及使用 整數線性規劃之全域最佳化和區域最佳化,討論這 幾種方法所找出的網路服務在服務品質上的分數 表現。圖 6-2.QoS 分數比較圖 1,比較結果為四個 關聯性挑選策略在不做過濾但是使用了漸進最佳 化的情況下,其中最多關聯性、最大覆蓋、最多折 扣的表現初期都比整數線性規劃來得好,但是到後 期因為可選擇的網路服務越來越多,所以這三種比 較屬於啟發式的挑選方法表現變得比整數線性規 畫差,而最大改善策略則是一直表現得比所有的策 略以及其他的方法好。 QoS Comparison 0.65 0.7 0.75 0.8 0.85 0.9 5 10 15 20 25 30 35 40 45 50 Service per Task
Q oS S co re Local Optimization Max Dependency Max Coverage Max Discount Max Improvement ILP 圖 6-2. QoS 分數比較圖 1 圖 6-3. QoS 分數比較圖 2,為所有的關聯性加 上了區域最佳化過瀘的動作所得出的結果,本來三 種策略到後期會表現得比整數線性規劃還差,但是 加上過瀘的動作之後,到後期仍然能跟整數線性規 劃表現得差不多,而最大改善策略則是一直表現的 很好,過瀘動作似乎對此策略沒什麼太大的改善。 QoS Comparison 0.65 0.7 0.75 0.8 0.85 0.9 5 10 15 20 25 30 35 40 45 50 Service per Task
Q oS S co re Local Optimization Max Dependency Max Coverage Max Discount Max Improvement ILP 圖 6-3. QoS 分數比較圖 2 (三) 演算法效能評估 此小節將比較演算法的效能,分別比較區域最 佳化、全域最佳化以及本文所提出的方法,實驗環 境延續上一小節的設定,但是每個任務能夠挑選之 網路服務則是從 12 成長到 60。 圖 6-4. 演算法效能比較圖 1,,實驗結果發現 本文提的方法除了能夠挑選服務關聯性之外,效能 的表現上也比使用整數線性規劃之全域最佳化來 得好。另外值得注意的當為四種策略加上過濾的動 作之後,反而會比沒有過濾來得快,那是因為過濾 後關聯性變少了,所以在計算所有極大獨立集合時 省下的時間比過濾的時間還要多,因此效能表現比 較好;另外在四種策略之中,因為最大改善服務品 質的策略要對所有的極大獨立集合做服務品質分 數上詳細的比較,所以跟其他的策略比起來,很明 顯的比較慢。 Performance 0 100000 200000 300000 400000 500000 600000 700000 800000 900000 1000000 12 18 24 30 36 42 48 54 60 Service per Task
E x ec u tio n T im e( n an o se co n d) ILP Local Optimization Max Dependency Max Coverage Max Discount Max Improvement Max Dependency + Filter Max Coverage + Filter Max Discount + Filter Max Improvement + Filter
圖 6-4. 演算法效能比較圖 1 從現實世界的觀點來看,關聯性要發生變動的 頻率不大,每個關聯性都是維持一段時間之後才會 有所改變,所以每次在使用者要求網路服務組合時 才即時地計算極大獨立集合是不適當的,極大獨立 集合的問題應該先被預先處理,當關聯性有變動的 時候才再重新算過。 圖 6-5. 演算法效能比較圖 2,預先處理極大獨 立集合之後的結果,沒有做過濾的關聯性挑選策略 效能非常的好,處理速度非常接近區域最佳化,甚
至最多關聯性策略還有發生比區域最佳化還快的 情況;可是有過濾動作的關聯性挑選策略卻因為要 即時的過濾,不能預先處理關聯性衝突的問題,所 以在效能的表現上便比沒過濾但有預先處理極大 獨立集合問題的策略差,不過仍然比使用整數線性 規劃的全域最佳化要來得快很多。 Performance 0 100000 200000 300000 400000 500000 600000 700000 800000 900000 1000000 12 18 24 30 36 42 48 54 60 Service per Task
E xe cu tio n T im e( na no se co nd ) ILP Local Optimization Max Dependency Max Coverage Max Discount Max Improvement Max Dependency + Filter Max Coverage + Filter Max Discount + Filter Max Improvement + Filter
圖 6-5. 演算法效能比較圖 2 (四) 關聯性挑選策略分析比較 在 此針對本 文所提出 的四種 關聯性挑 選策 略,用實驗的方式來找出不同的影響之下,何種策 略表現較佳,以及各種參數對關聯性的影響。首先 我們先設計了三個實驗,利用這三個實驗來分析出 各策略的特性。 實驗一:在這個實驗中設定小型的服務關聯性 在價格上之折扣會比大型的服務關聯性來得高,亦 即關聯性所包含之網路服務越多折扣率越差。所有 的服務關聯性會在區域最佳化排名過後之前 75% 的地方發生,用意是在模擬現實世界中有關聯性的 情況大部分都會比沒關聯性來得好。 圖 6-6. 關聯性挑選策略比較圖 1,實驗結果顯 示最多關聯性及最多折扣表現的比最大覆蓋要來 得好,服務品質的分數都比最大覆蓋來得高,由此 可知在小型關聯性折扣較佳以及大部分關聯性都 能比單獨服務好的情境之下,最多關聯性及最多折 扣找出的關聯性會比最大覆蓋好,而最大改善服務 品質之策略永遠都會比其他三個策略來得好。 關聯性挑選策略比較 0.65 0.7 0.75 0.8 0.85 0.9 10 20 30 40 50 60 70 80 90 100 Service per Task
Q o S Sc or e Max Dependency Max Coverage Max Discount Max Improvement 圖 6-6. 關聯性挑選策略比較圖 1 實驗二:在這個實驗中,設定跟上一個實驗相 反的情況,越大型的關聯性折扣會越好,亦即關聯 性包含的網路服務越多,折扣率就越高。 圖 6-7. 關聯性挑選策略比較圖 2,實驗結果顯 示最大覆蓋跟最多折扣表現的比最多關聯性策略 來得好。由此可知在越大型關聯性越有利以及大部 分關聯性都還不錯的情況之下,最大覆蓋跟最多折 扣都會表現得比最多關聯性好,而最大改善服務品 質一直會都有很不錯的表現。 關聯性挑選策略比較 0.65 0.7 0.75 0.8 0.85 0.9 10 20 30 40 50 60 70 80 90 100 Service per Task
Q o S Sc or e Max Dependency Max Coverage Max Discount Max Improvement 圖 6-7. 關聯性挑選策略比較圖 2 實驗三:在此實驗中,固定每個任務對應到的 網路服務各為 100 個且所有的關聯性無論包含多 少網路服務,折扣率都差不多。但是關聯性發生的 範圍會改變,先用區域最佳化排名之後,從原先的 100%一直拉大到前 20%,讓發生關聯性的服務從 可能大部分會比單獨服務差到最後可能大部分的 關聯性會比單獨的服務來的來。 圖 6-8. 關聯性挑選策略比較圖 3,實驗結果一 開始關聯性較差的時候,最大折扣策略表現得比較 差,當隨著關聯性可能會越來越好的時候,最多折 扣的表現跟最多關聯以及最大覆蓋互有輸贏,由此 實驗可知當不能確定關聯是否保證一定會有優勢 的時候,最大折扣策略並不適用。 關聯挑選策略比較 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 100% 92% 84% 76% 68% 60% 52% 44% 36% 28% 20% Occurred Scope of Dependency
Q o S S co re Max Dependency Max Coverage Max Discount Max Improvement 圖 6-8.關聯性挑選策略比較圖 3 (五) 最佳化之正確性測試與效能評估 在此將針對漸進式最佳化做測試,為了能夠更 明確地看出漸進式最佳化的效果,在這個實驗之中 不考慮服務關聯性,只針對區域最佳解的結果做漸 進式最佳化,然後跟區域最佳解以及全域最佳解的 結果來做比較。因為漸進式最佳化是屬於啟發式的 演算法,並不保證一定會是最佳解,所以我們預測
漸進式最佳化所求出之服務品質的分數應該大於 等於區域最佳解,以及小於等於全域最佳解。 圖 6-9.全域最佳化 QoS 比較圖是服務品質方 面的實驗結果,可以看到大部分的情況漸近式最佳 化都能找出跟全域最佳化同樣的結果,而且範圍也 在我們預測的界於區域最佳化以及全域最佳化的 中間,證明漸進最佳化理論是正確的。 圖 6-10. 全域最佳化效能比較圖,因為我們所 使用的 AMPL 版本有變數數量上的限制,無法處 理超過 300 個變數,所以差不多只能測到每個任務 各 60 個左右的網路服務,而且 AMPL 只能測量到 千分之一秒的單位,在時間測量上不是很準確,所 以測試出來的時間不是很準確而且數據的震盪很 大,但是由實驗中可以觀察到漸近最佳化和區域最 佳化會比整數線性規劃的全域最佳化要來得要有 效率多了。 全域最佳化QoS比較圖 0.8 0.81 0.82 0.83 0.84 0.85 0.86 0.87 20 23 26 29 32 35 38 41 44 47 Service Per Task
Q o S Sc or e Local Optimization Incremental Optimization Global Optimization 圖 6-9. 全域最佳化 QoS 比較圖 全域最佳化效能比較圖 0 100000 200000 300000 400000 500000 600000 700000 800000 20 23 26 29 32 35 38 41 44 47 50 Service per Task
E xe cu tio n T im e (n an o se co n d) Local Optimization Incremental Optimization Global Optimization 圖 6-10.全域最佳化效能比較圖
七、結論與未來展望
本文的研究目標在於探討服務關聯性所引起 之服務品質的改變,並利用服務關聯性帶來的好 處,來幫助挑選適當的網路服務,組合現有的網路 服務成為全新且功能更強的網路服務組合,除此之 外,還要能夠兼顧網路服務組合裡的網路服務被執 行之可能性,因為被執行的可能性不相同會對服務 品質造成不同的影響程度。研究中,利用圖形理論 的極大獨立集合的概念來解決關聯性可能會產生 衝突的情況,提出四種關聯性挑選策略使得網路服 務組合的服務品質能夠更好。針對工作流互斥執行 的可能性,分析了活動控制圖的語意特性,並使用 權重的概念來評估所有基本網路服務對整體服務 品質的影響程度,解決了之前相關研究在這方面的 缺失。在全域最佳化方面,我們也分析了活動控制 圖的特性,找出可能造成全域最佳化比區域最佳化 更好的情況,並使用漸進最佳化的方法來改善服務 品質,使其能夠有效率地逼近全域最佳化的結果, 不使用的暴力法或是效率不佳的整數線性規劃。 經由這一次的研究,發覺到值得進一步研究的 議題,包括:定義更完整的關聯性類型,找尋各種 服務品質相關的關聯性,設計更有效率的極大獨立 集合演算法,並針對特定結構之工作流進行更有效 率之網路服務挑選及建構完善之網路服務架構。八、參考文獻
[1] Wu, S.-y. and K.-C. Lin, “Cross Enterprise Business Modeling with AC Diagrams and Workflow Patterns.”Proceedings of the Seventh IEEE International Conference on E-Commerce Technology (CEC 2005), pp. 110-117, July 2005.
[2] Liu, Yutu, Anne H. Ngu and Liang Z. Zeng, “QoS Computation and Policing in Dynamic Web ServiceSelection.”Proceedings of the 13th International World Wide Web Conference on Alternate track papers & posters, pp. 66-73,
May 2004.
[3] Zeng, Liangzhao, Boualem Benatallah, Anne H.H. Ngu, Marlon Dumas, Jayant Kalagnanam and Henry Chang,“QoS-Aware Middleware for Web ServicesComposition.”IEEE Transactions on Software Engineering, 30(5):311-327, May
2004.
[4] WfMC(Workflow Management Coalition). http://www.wfmc.org/.
[5] Canfora, Gerardo, Massimiliano Di Penta, Raffaele Esposito and Maria Luisa Villani, “An Approach for QoS-aware Service Composition based on GeneticAlgorithms.”Proceedings of the Conference on Genetic and Evolutionary Computation (GECCO '05), pp. 1069-1075,
2005.
[6] Business Process Execution Language for Web Services.
http://www-128.ibm.com/developerworks/webs ervices/library/specification/ws-bpel/.
[7] BPML.http://bpmi.org/.
[8] Aalst, Wil M.P. van der, Marlon Dumas and Arthur H.M. ter Hofstede, “Web Service Composition Languages: Old Wine in New Bottles?” Proceedings of the 9th Euromicro
[9] AMPL(A Modeling Language for Mathematical Programming).http://www.ampl.com/.
[10] Benatallah, Boualem, Quan Z. Sheng, and Marlon Dumas,“TheSelf-Serv Environment for Web Services Composition.” IEEE Internet