• 沒有找到結果。

案例說明

在文檔中 中 華 大 學 (頁 53-60)

第五章 線性順序 Web Services 整合問題

5.2 案例說明

除了上述的演算法流程說明,我們在此舉一個簡單的例子,具體描述使用 OPT 演算法的 Web Services 整合時,利用圖示來加以說明論證工作任務彼此之 間的概念及關係。假設為完成一個服務請求,需依順序完成 10 個不同功能的工 作任務;而經由系統網路服務搜尋代理者可找出 6 個不同的 Web Services,可以 支援此 10 個不盡相同的工作任務之 Web Services。而此工作任務與 Web Services 之間彼此對應關係如下圖 5.2 所示,T1~T10分別表示完成此服務請求,需要被逐 一且按照順序完成的工作任務,即 T1完成才做 T2;T2完成才做 T3,依此類推,

直到 10 個工作任務都依序被完成,即 T10被完成;而 W1~ W6,表示被搜尋出可 支援此 10 個不盡相同的工作任務之 Web Services;工作任務與 Web Services 之 間的線段,為其彼此之間的相對應關係,表示該 Web Services 可以滿足支援線段 連結的工作任務。例如 W1有 3 條線段分別連結 T1、T3及 T4,表示 Web Services

W

1可支援完成 T1、T3及 T4工作任務;W2有 2 條線段分別連結 T2及 T5,表示 Web Services W2可支援完成 T2及 T5工作任務的功能,依此類推。

圖 5.2 工作任務與 Web Services 關係圖

根據本篇論文所提出的演算法,我們先將支援多功能的 Web Services,以支 援連續的工作任務為做準則,細化成只支援單一或連續多個工作任務的 Web Services,我們稱之為微型 Web Services (Mini-Web Service)。因此,我們將 W1

細化成 ws11和 ws12;W2細化成 ws21和 ws22;W3細化成 ws31;W4細化分成 ws41 和 ws42;W5細化分成 ws51和 ws52;W6細化成 ws61。如下圖 5.3 所示,Web Services

W

1細化成微型 Web Services ws11和 ws12,而 ws11可支援工作任務 T1;ws12可支

援連續 2 個工作任務 T3及 T4;W2細化分成 ws21和 ws22,其中 ws21可支援 T2

ws

22則可支援 T5,依此類推。另外,本篇論文提出的演算法將 Web Services 細化 成微型 Web Services,並非將真實的 Web Services 分解成兩個不同的 Web Services 實體,而只是為了演算法的運作,把 Web Services 虛擬分解成只支援單一或連續 多個工作任務的微型 Web Services,也就是說經同一個 Web Services 細化後的不 同微型 Web Services,實際上,還是指相同的一個 Web Services 實體。例如 Web Services W1細化成微型 Web Services ws11和 ws12,其中微型 Web Services ws11

ws

12實際上都是指向相同的一個 Web Services 實體 W1

圖 5.3 Web Services 細化支援圖

經細分成微型 Web Services 之後,微型 Web Services 再根據支援單一或連續 的工作任務的第一個工作任務為基準做排序。如下圖 5.4 所示,為排序後的結果。

圖 5.4 工作任務與微型 Web Services 關係圖按工作任務排序

經過排序程序完成後,再根據本篇論文提出的演算法第三步驟,我們需將多 餘的微型 Web Services 移除,在此多餘的微型 Web Services 是指具有和另一個微 型 Web Services 可支援第一個工作任務相同,且可支援的工作任務比較短的微型 Web Services,換句話說,多餘的微型 Web Services 所支援的工作任務皆可由另 一個微型 Web Services 所涵括,可被完全取代。如上圖 5.4 所示,微型 Web Services

ws

22和 ws51兩者都是多餘的微型 Web Services。下圖 5.5 顯示出移除多餘的微型 Web Services ws22和 ws51的結果。

圖 5.5 移除多餘的微型 Web Services ws22和 ws51

移除多餘的微型 Web Services 後,我們開始分派工作任務給可支援完成的微 型 Web Services。分派的方法乃是從工作任務的角度著手,從排序後的微型 Web Services 中,找出第一個可以支援該工作任務的微型 Web Services,用來分派給 該工作任務以完成該工作任務。因此工作任務 T1分派給微型 Web Services ws11 完成;T2分派給 ws21完成;T3分派給 ws12完成,此時我們會發現 ws12,亦可以 支援 T4,於是亦將 T4分派給 ws12完成。當 T4分派給 ws12後,即可將 T4與 ws41 之間的對應的支援關係線段移除,因為 T4,已經分派給 ws12支援完成,故工作 任務 T4已不需要再被分派,如此,在 T4被分派後 ws41則變成多餘的微型 Web Services,將其移除。移除多餘的微型 Web Services ws41後,再來分派剩餘未分 派的工作任務,將 T5分派給 ws31,同樣地,由於 ws31亦可以支援 T6及 T7,亦將

T

6及 T7分派給 ws31執行完成,因此 ws31需執行完成 3 個連續的工作任務 T5、T6

及 T7。同樣的道理由於 T7已分派給 ws31執行,可以將 T7與 ws42之間的關係移除,

此時 ws42則變成多餘的微型 Web Services,將其移除。依此類推,不斷的重覆分 派、移除的步驟,直到所有的工作任務皆分派到微型 Web Services 執行完成。下 圖 5.6 所示,為分派到最後的結果,T1由 ws11完成,T2由 ws21完成,T3和 T4

ws

12完成,T5、T6和 T7由 ws31完成,T8和 T9由 ws61,T10由 ws52完成。於是完 成此一服務請求的所有工作任務所引用的微型 Web Services 依序為 ws11、ws21

ws

12、ws31、ws61和 ws52,即依序引用的 Web Services W1、W2、W1、W3、W6

W

5來完成該服務請求的所有工作任務。

圖 5.6 工作任務分派最後結果

我們再舉另一個例子來詳細說明,這一個例子我們用布林矩陣資料結構來描 述 Web Services 與工作任務之間的支援關係。如下表 5.1 所示,這個例子有 20 個工作任務以及 10 個 Web Services,在下表 5.1 中,Wi代表一個 Web Services,

而其中矩陣中的布林值即表示該 Web Services 對所有工作任務之對應支援關 係,布林值為 1 表示可以 Web Services 可以支援完成工作任務;反之,布林值為 0 則表為該 Web Services 無法支援完成該工作任務。例如 Web Services W1之值 為(0,1,1,0,0,1,0,1,1,1,0,0,0,0,1,1,1,1,1,0),即表示 Web Services W1可以支援完成工 作任務 T2、T3、T6、T8、T9、T10、T15、T16、T17、T18和 T19,依此類推。

表 5.1 Web Services 與工作任務關係 Web Services supporting relationships

W1 (0,1,1,0,0,1,0,1,1,1,0,0,0,0,1,1,1,1,1,0) W2 (1,1,0,0,0,1,1,0,1,1,1,0,0,1,0,0,1,1,0,0) W3 (0,0,1,1,1,0,1,1,0,1,0,1,1,1,0,0,1,1,1,0) W4 (1,1,1,0,1,1,1,0,0,0,1,1,0,0,1,1,0,0,1,0) W5 (0,1,1,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,0,0) W6 (1,1,0,1,1,1,0,1,1,1,1,1,1,0,0,0,0,1,1,1) W7 (1,0,0,0,1,1,1,0,1,1,0,1,1,0,1,1,1,0,1,0) W8 (0,0,1,0,1,1,0,1,1,1,0,0,0,1,1,1,0,0,1,1) W9 (0,1,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1) W10 (1,1,0,0,1,0,0,1,1,0,0,0,1,1,1,0,0,0,1,1)

首先,我們將每一個 Web Services 細化成微型 Web Services (mini-Web Services),使其中每一個微型 Web Services 只支援單一或是連續工作任務。如下 表 5.2 所列,Web Services W1細化成 4 個微型 Web Services ws1.1、ws1.2、ws1.3

和 ws1.4,其中每一個微型 Web Services 包含兩個值

α

β

,分別表示該微型 Web Services 可支援連續工作任務的起始任務為 Tα和結束任務 Tβ。例如微型 Web Services ws1.1(2,3)表示微型 Web Services ws1.1可以支援完成連續工作任務 T2

和 T3;若起始任務 Tα和結束任務 Tβ的值相同,則表示該微型 Web Services 可支 援完成單一工作任務,其相同的值即表示該單一工作任務;微型 Web Services

ws

1.2(6,6)則表示微型 Web Services ws1.1可以支援完成工作任務 T6,依此類推。下 表 5.2 為 Web Services 與微型 Web Services 的關係表。

表 5.2 Web Services 與微型 Web Services 關係表

Web Services Mini-Web Services of Web Services W1 ws1.1(2,3),ws1.2(6,6),ws1.3(8,10),ws1.4(15,19)

W2 ws2.1(1,2),ws2.2(6,7),ws2.3(9,11),ws2.4(14,14),ws2.5(17,18) W3 ws3.1(3,5),ws3.2(7,8),ws3.3(10,10),ws3.4(12,14),ws3.5(17,19) W4 ws4.1(1,3),ws4.2(5,7),ws4.3(11,12),ws4.4(15,16),ws4.5(19,19) W5 ws5.1(2,4),ws5.2(6,6),ws5.3(8,10),ws5.4(15,18)

W6 ws6.1(1,2),ws6.2(4,6),ws6.3(8,13),ws6.4(18,20)

W7 ws7.1(1,1),ws7.2(5,7),ws7.3(9,10),ws7.4(12,13),ws7.5(15,17),ws7.6(19,19) W8 ws8.1(3,3),ws8.2(5,6),ws8.3(8,10),ws8.4(14,16),ws8.5(19,20)

W9 ws9.1(2,4),ws9.2(10,14),ws9.3(20,20)

W10 ws10.1(1,2),ws10.2(5,5),ws10.3(8,9),ws10.4(13,15),ws10.5(19,20)

在細化 Web Services 之後,下一個步驟即是排序,將微型 Web Services 根據 支援工作任務的起始值

α

為基準做排序。排序後的結果如下表 5.3 所示。以工 作任務 T1為例,一共有 5 個微型 Web Services 的支援起始工作任為工作任務 T1 分別是 ws2.1、ws4.1、ws6.1、ws7.1和 ws10.1。從排序後的結果我們可以很快的發現 所有多餘的微型 Web Services。即擁有相同起始支援工作任務值

α

,具結束支援 工作任務的值

β

較其它微型 Web Services 小的,即是多餘微型 Web Services。

例如從表 5.3 中,我們可以發現以工作任務 T1為例,微型 Web Services ws2.1

ws

6.1、ws7.1和 ws10.1都屬於多餘的微型 Web Services。以工作任務 T2為例,微型 Web Services ws1.1屬於多餘的微型 Web Services,依此類推。移除所有多餘的微 型 Web Services,如下

表 5.4 所示,為移除多餘微型 Web Services 後,工作任務與有順序的微型 Web Services 清單關係表。

表 5.3 排序後工作任務與微型 Web Services 關係表

Start task Mini-Web Services

T1 ws2.1(1,2), ws4.1(1,3), ws6.1(1,2), ws7.1(1,1), ws10.1(1,2) T2 ws1.1(2,3), ws5.1(2,4), ws9.1(2,4)

T3 ws3.1(3,5), ws8.1(3,3) T4 ws6.2(4,6)

T5 ws4.2(5,7), ws7.2(5,7), ws8.2(5,6), ws10.2(5,5) T6 ws1.2(6,6), ws2.2(6,7), ws5.2(6,6)

T7 ws3.2(7,8)

T8 ws1.3(8,10), ws5.3(8,10), ws6.3(8,13), ws8.3(8,10), ws10.3(8,9) T9 ws2.3(9,11), ws7.3(9,10)

T10 ws3.3(10,10), ws9.2(10,14) T11 ws4.3(11,12)

T12 ws3.4(12,14), ws7.4(12,13) T13 ws10.4(13,15)

T14 ws2.4(14,14), ws8.4(14,16)

T15 ws1.4(15,19), ws4.4(15,16), ws5.4(15,18), ws7.5(15,17) T16 --

T17 ws2.5(17,18), ws3.5(17,19) T18 ws6.4(18,20)

T19 ws4.5(19,19), ws7.6(19,19), ws8.5(19,20), ws10.5(19,20)

T20 ws9.3(20,20)

表 5.4 工作任務與有順序的微型 Web Services 清單關係表

Start task Mini-Web Services Start task Mini-Web Services T1 ws4.1(1,3) T11 ws4.3(11,12)

T2 ws5.1(2,4), ws9.1(2,4) T12 ws3.4(12,14) T3 ws3.1(3,5) T13 ws10.4(13,15) T4 ws6.2(4,6) T14 ws8.4(14,16) T5 ws4.2(5,7), ws7.2(5,7) T15 ws1.4(15,19)

T6 ws2.2(6,7) T16 --

T7 ws3.2(7,8) T17 ws3.5(17,19) T8 ws6.3(8,13) T18 ws6.4(18,20)

T9 ws2.3(9,11) T19 ws8.5(19,20), ws10.5(19,20) T10 ws9.2(10,14) T20 ws9.3(20,20)

移除多餘的微型 Web Services 之後,開始分派工作任務給微型 Web Services 支援完成。於是我們從 T1開始分派,從上

表 5.4 中選擇微型 Web Services ws4.1,而且將 T1、T2和 T3皆交由 ws4.1來支 援完成。由於 T2和 T3亦由 ws4.1所分派,故需要變更將支援起始工作任務為 T2 和 T3的微型 Web Services 之起始工作任務值

α

,即將微型 Web Services 與 T2

和 T3之間的關係移除,故更新 T2和 T3列中微型 Web Services 的起始支援工作任 務為 4,即該微型 Web Services 支援工作任務變更成從 T4開始。變更後再重覆移 除多餘的微型 Web Services。移除完成後接下來,從 T4開始選,即選擇 ws6.2然後 T4、T5和 T6皆交由 ws6.2來完成,依此類推,不斷的重覆移除、分派、更新 的步驟,直到所有的工作任務皆分派到微型 Web Services 執行完成,因此我們可 以得到 T1、T2和 T3由 ws4.1完成;T4、T5和 T6由 ws6.2完成;T7和 T8由 ws3.2完成;

T

9、T10、T11、T12和 T13由 ws6.3完成;T14、T15和 T16由 ws8.4完成;T17、T18

T

19由 ws1.4完成;T20則由 ws6.4完成。依序完成此 20 個工作任務將依序由 ws4.1

ws

6.2、ws3.2、ws6.3、ws8.4、ws1.4和 ws6.4共七個微型 Web Services 來完成,如下圖 5.7 所示。

圖 5.7 微型 Web Services 支援工作任務對照圖

在文檔中 中 華 大 學 (頁 53-60)

相關文件