• 沒有找到結果。

IWSIP 的探討與模擬實驗

在文檔中 中 華 大 學 (頁 38-50)

第四章 問題探討說明及系統架構

4.3 問題探討

4.3.2 IWSIP 的探討與模擬實驗

本篇論文所探討的獨立 Web Services 整合問題乃是引用最少數量的 Web Services 以滿足完成一個服務請求所需要完成的所有工作任務,是為 一 個 NP-complete。本篇論文利用兩個已知的啟發式演算法,Chvatal [74]所提出的 Greedy 演算法,及 Harrold 等[76]所提出 HGS 演算法。這兩個方法,原本是用 於解決 Test Suite 最小化的問題。而在本篇論文中,用以解決獨立 Web Services 整合問題,以求得完成某一特定服務之所有工作任務時,需整合的最小 Web Services 數 量 。 本 篇 論 文 並 改 進 HGS 演 算 法 , 進 而 提 出 一 個 新 的 方 法 IHGS(Improve HGS),並實驗模擬加以比較三個演算法的效能。而 Web Services 與工作任務的支援對應關係,根據本篇論文的研究調查,提出四種不同的分佈情 況,進行模擬研究。

„ Greedy 演算法

如下圖 4.6 所示,為 Chvatal [74]所提出的 Greedy 演算法流程圖。根據 Greedy 演算法,首先是選擇步驟,從所有候選 Web Services (Candidate Web Services)中,

選擇出一個 Next Web Services,在此 Next Web Services 是指下一個選定的 Web Services,該 Web Services 為可以支援未被支援工作任務為最多的 Web Services。

選出 Next Web Services 後。第二步為分派步驟,由此 Next Web Services 去支援 所有可支援的工作任務。分派支援後,再根據剩餘未被支援的工作任務,找出所 有能支援部份或完整未支援工作任務的 Web Services,做為下一次選擇時的候選 Web Services。如此不斷的重複選擇、分派,直到所有的工作任務都被支援為止。

如此可選擇出來近似最少的 Web Services 數量以滿足支援所有需要被完成的工 作任務集合。

圖 4.6

Greedy 演算法流程圖

„ HGS 演算法

HGS 演算法為 Harrold 等[76]所提出,其流程步驟如下所示。首先計算針對 每一個工作任務,計算出可支援該工作任務的所有 Web Services 的個數,作為考 量的基數(Cardinal Number)。第二步為分派所有基數為 1 的工作任務。基數為 1 表示該工作任務只有一個 Web Services 可以支援,所以必然選擇該 Web Services

來支援。分派完基數為 1 的工作任務後,再考慮基數為 2 的工作任務,找出可以 支援基數為 2 的工作任務中所有的 Web Services,再從這些 Web Services 選出可 以支援最多工作任務的 Web Services,作為候選 Web Services (Candidate Web Services)。若候選 Web Services 只有一個,則選擇該 Web Services 來支援其可支 援的所有工作任務。若候選 Web Services 不只一個,則逐步遞增基數,將考慮基 數更多的工作任務,根據這些工作任務可支援的 Web Services 集合做交集,來減 少候選 Web Services,如此重複遞增基數以減少候選 Web Services,直到選擇出 最適合的 Next Web Services 來支援,Next Web Services 為下一個被選定的 Web Services。最後再依照這些步驟,不斷的重複,直到所有的工作任務都被分派到 Web Services 予以支援為止。

圖 4.7HGS演算法流程圖

„ IHGS 演算法

觀察上述兩種演算法,在實驗模擬時,我們發現在候選的 Web Services 數量 比較少的情況,HGS 演算法的效能會比 Greedy 好。HGS 演算法主要是考量每一 個 Web Servcies 被選擇的必要性。即可支援同一個工作任務的 Web Services 愈 少,則代表這些 Web Services 的必要性愈重。根據 HGS 演算法,先分派基數為 1 的工作任務,表示該工作任務只有 1 個 Web Services 可以支援,該 Web Services 必定被選擇,而後再考慮基數為 2 及 2 以上的工作任務。

雖然目前現行的 Web Servciese 非常多,但大多數皆是支援單一功能的服 務,可支援多功能的 Web Services 仍為少數,因此,考慮到侯選 Web Servcies 數量少的因素,本篇論文考慮 Web Services 被選擇的必要性,改進 HGS 的演算 法,提出新的 IHGS(Improve HGS)演算法。IHGS 一開始如同 HGS 演算法一樣,

先分派基數為 1 的工作任務。再從可支援的工作任務數比較少的 Web Services 開始考慮,若該 Web Services 可支援的工作任務,亦存在其它 Web Services 可以 支援,即基數為 2 以上,則 IHGS 演算法將移除此支援關係,以降低工作任務的 基數。直到工作任務的基數降成 1,再進行分派。不斷的重覆這些步驟,即可找 出解。其流程如下圖 4.8 所示。先計算針對每一個工作任務,計算出可支援該工 作任務的所有 Web Services 的個數,作為考量的基數(Cardinal Number)。第二步 檢查看是否有基數為一的工作任務,若有,則分派所有基數為 1 的工作任務。基 數為 1 表示該工作任務只有一個 Web Services 可以支援,所以必然選擇該 Web Services 來支援。無基數為 1 的工作任務或分派完基數為 1 的工作任務後,我們 進一步去計算剩餘未被選定的 Web Services 之可支援的工作數。選擇可支援工作 數最少的 Web Services,逐一比較該 Web Services 可支援的工作任務,若該工作 任務基數大於 1,則表示該工作任務尚有其它 Web Services 可以支援,因此移除 此 Web Servcies 與該工作任務的支援關係,以降低工作任務的基數。再去計算檢 查是否有基數為 1 的工作任務,再進行分派。最後再依照這些步驟,不斷的重複,

直到所有的工作任務都被分派到 Web Services 予以支援為止。

圖 4.8

IHGS 演算法流程圖

我們舉一個簡單的例子,加以說明上述三種演算法的流程。如下表 4.1 所示 為 Web Services 與工作任務(Tasks)相對應支援關係。

表 4.1 Web Services 與工作任務支援關係表

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12

W1 X X X X X W2 X X X X X

W3 X X X X X

W4 X X X X X W5 X X X X X W6 X X X X X W7 X X X X X

W8 X X X X X

W9 X X X X X

W10 X X X X X

W11 X X X X X W12 X X X X X

由上表 4.1 所示,我們可以得知這個例子一共有 12 個 Web Service,W1~W12以及完成此一服務請求,需要滿足完成 12 個不同的工作任務 T1~T12。其中相對 應支援關係如上表 4.1 所示,W1可支援工作任務 T1

T

3

T

6

T

7及 T12;W2可支 援 T2

T

3

T

5

T

6及 T12;W3可支援 T1

T

4

T

8

T

9及 T11;以此類推。

首先本篇論文先運用 Chvatal [74]所提出的 Greedy 演算法來求得需要整合的 Web Services 數量,以滿足所有需要被完成的工作任務。根據 Greedy 演算法,

我們從所有的 Web Services 中,找出可以支援最多未分派被支援工作任務的 Web Services 來支援該 Services 可支援的所有工作任務,直到所有工作任務都被分派 支援。因此我們可以得知,工作任務 T1

T

3

T

6

T

7及 T12將由 W1來支援完成。

接下來再根據剩餘未被分派的所有工作任務中,去尋找下一個可以滿足最多未分 派工作任務的 Web Services。因此可以找到 W3可支援最多未分派工作任務數量,

為工作任務 T4

T

8

T

9及 T11共 4 個。同理,我們可以找出 W1支援完成 T2和 T5

W

8支援 T9,故根據 Chvatal 的 Greedy 演算法,在這個例子我們可以求得需要整 合使用 4 個不同的 Web Services,W1

W

2

W

3及 W8,才能滿足所有的工作任務。

本篇論文探討的第二個方法,即 Harrold 等[76]所提出 HGS 演算法。我們使 用相同的例子來加以運用。根據 HGS 演算法,我們先將計算出每一個工作任務 能支援該工作任務的 Web Services 數量,作為基數,如下表 4.2 所示,基數 C1 表示能支援工作任務 T1的 Web Services 數量為 4、C2表示能支援工作任務 T2的 Web Services 數量亦為 6,以此類推。

表 4.2 Tasks 的基數表

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12

4 6 7 3 6 7 5 4 3 1 7 7

根據 HGS 演算法,我們首先考量基數為 1 的,基數為 1 表示該工作任務只 有 1 個 Web Service 可以支援該工作任務,故先考量工作任務 T10,因此必然選擇 該 Web Services W8來支援。所以在這個例子中,我們勢必優先選擇 Web Service

W

8來支援 T4、T6、T7、T9及 T10。完成基數為 1 的所有情況之後,再進一步考慮 基數為 2 的情況,再逐一增加基數,若有多個具相同基數的情況,例如在這個例

子中,我們會發現 C1及 C8基數皆為 4,因此,根據 HGS 演算法我們將所有可部 份支援 C1及 C8的 Web Services 都列入選擇 W1、W3、W7、W9、W10及 W12。再 從這些選擇中,找出一個能支援 T1及 T8最多數量的 Web Services 做為候選者。

倘若只有一個候選者,則選擇該 Web Services 來支援該 Services 可支援的工作 任務。若候選者不只 1 個,例如 W3和 W10,皆可支援最多剩餘未支援工作任務 2 個。因此我們將 W3和 W10列為進階候選者,因進階候選者並非只有 1 個,因此,

HGS 演算法將基數加 1 的工作任務,將其可支援的 Web Services 選擇也納入考 慮,做交集以減少降底候選者的數量。直到候選者只有一個或基數已到最大時的 情況,再隨機從候選者選擇一個 Web Service 來支援。在這個例子中,候選者為

W

3和 W10,進一步將基數加 1 的選擇也納入考慮,最後進階候選者只剩一下個,

為 W10,因此最後選擇 W10來支援 T1、T2、T5及 T8。同理不斷的重複,直到所有 的工作任務都被分派到 Web Services 支援,因此,最後再由 W4支援 T2、T10

T

11。故根據 HGS 演算法共求得 3 個 Web Services 可支援所有的工作任務。

最後,根據本篇論文所提出的 IHGS 演算法,在相同的例子中,我們第一個 先計算每個工作任務的基數,如同 HGS 演算法,因此上表 4.2 即為計算結果。

因為有基數為 1 的存在,所以 IHGS 演算法先行分派基數為一的工作任務。因此,

一樣優先選擇 W8來支援 T4、T6、T7、T9及 T10。分派完基數為 1 的工作任務後,

計算剩餘的 Web Services 可支援的工作數。結果如下表 4.3 所示,其中發現 W1

為剩餘 Web Services 中,可支援工作任務數為最少。

表 4.3 Web Services 可支援的工作數

W1 W2 W3 W4 W4 W6 W7 W8 W9 W10 W11 W12

3 4 3 4 4 3 5 0 4 4 3 4

因此我們進一步考慮 W1可支援的工作任務。發現 W1可支援 T1、T3及 T12而 T1的基數為 4、T3的基數為 7、T12的基數亦為 7,皆大於 1,所以我們移除

W

1與 T1、T3及 T12的支援關係,以降底 T1、T3及 T12的基數。同理我們亦移除

W

3與 T1、T8及 T11的支援關係,移除 W6與 T3、T5及 T12的支援關係。直到有某 一工作任務的基為基數降為 1 為此,本例子中,移除完 W1、W3、W6、W11、W2

W

4及 W5後,T12的基數降為 1。再根據 IHGS 演算法,分派基數為 1 的 T12,故 分派 W12以支援 T2、T8、T11及 T12。不斷重覆相同的步驟直到所有的工作都被分 派完成為止。最後再由 W9以支援 T1、T3及 T5。下表 4.4 即整理出根據三種不同 的演算法,在這個例子所找出的支援關係。

表 4.4 Greedy、HGS 與 IHGS 演算法支援關係集合

Greedy HGS IHGS

個數 4 3 3

關係

W

1

(T

1

,T

3

,T

6

,T

7

,T

12

) W

3

(T

4

,T

8

,T

9

,T

11

) W

2

(T

2

,T

5

)

W

8

(T

10

)

W

8

(T

4

,T

6

,T

7

,T

9

,T

10

) W

10

(T

1

,T

2

,T

5

,T

8

) W

5

(T

3

,T

11

,T

12

)

W

8

(T

4

,T

6

,T

7

,T

9

,T

10

) W

12

(T

2

,T

8

,T

11

,T

12

) W

9

(T

1

,T

3

,T

5

)

本篇論文將三種不同的演算法進行簡易的模擬。且根據[47][49][51]等論文的 探討研究,我們可以發現,現行的 Web Services,成長至今大約存在兩千多個不 同的 Web Services。而且每單一個 Web Services 所支援的功能數,大部份皆為 5 個以內,只有少數會有支援超過 20 以上功能,且根據[47][49][51]等論文的收集 分析,我們可以發現 Web Services 支援功能數,以 5 為一個高峰呈現波氏分佈 (Poisson Distribution)之離散機率模型。因此本篇論文實驗模擬時,對於 Web Services 與工作任務支援關係,除了採用隨時及限定支援關係外,亦加入常態分 佈(Normal Distribution)及波氏分佈(Poisson Distribution)兩種情況進行模擬比 較。實驗模擬四種不同的支援關係,其平均 Web Services 支援工作任務數量皆為 5 個。下圖 4.9 為兩種分佈的機率曲線圖,下表 4.5 則為常態分佈及波氏分佈的 機率值。

0.000 0.050 0.100 0.150 0.200

1 4 7 10 13 16 19 22 25 28

單一Web Services支援功能數

分佈機率值

常態 波氏

圖 4.9 常態與波氏機率分佈曲線圖

表 4.5 常態分佈與波氏分佈機率值

常態分佈機率值 波氏分佈機率值

1 0.041 11 0.036 21 0.008 1 0.034 11 0.008 21 0.000

2 0.043 12 0.033 22 0.007 2 0.084 12 0.003 22 0.000

3 0.045 13 0.030 23 0.005 3 0.140 13 0.001 23 0.000

4 0.046 14 0.027 24 0.004 4 0.175 14 0.000 24 0.000

5 0.046 15 0.024 25 0.003 5 0.175 15 0.000 25 0.000

6 0.046 16 0.021 26 0.002 6 0.146 16 0.000 26 0.000

7 0.045 17 0.018 27 0.002 7 0.104 17 0.000 27 0.000

8 0.043 18 0.015 28 0.001 8 0.065 18 0.000 28 0.000

9 0.041 19 0.012 29 0.001 9 0.036 19 0.000 29 0.000

10 0.039 20 0.010 30 0.001 10 0.018 20 0.000 30 0.000 我們以服務請求包含 100 個不同的工作任務為基準,分別模擬 50、100、500、

1000 及 2000 個候選 Web Services 採用三種不同的演算法,經過 100 次的模擬演 算取得平均,作為求得支援此 100 個工作任務的平均 Web Services 數量。Web Services 支援工作任務的關係,本模擬實驗採用的隨機支援關係是指 Web Services 支援工作任務的關係是隨機產生,而限定個數則指的是 Web Services 支 援工作任務的個數皆限制數。本篇論文模擬限定個數為 5,即每個 Web Services 可支援 5 個不盡相同的工作任務。另外常態機率分佈,如上表 4.5 所示,工作任 務數為 6 的機率值為 0.046,表示在所有的候選 Web Services 中。有 0.046 比例 的 Web Services 數是支援工作任務個數為 6 的。波氏機率分佈亦同。

在文檔中 中 華 大 學 (頁 38-50)

相關文件