• 沒有找到結果。

資源限制的一致性

Chapter 2. 背景說明

2.4 資源限制的一致性

2.4.1 資源

在一個工作流程中,activity process 常常需要存取部分資源以協助其完成 預期的工作內容。資源包含軟體、硬體設備,例如印表機、文件資料,亦或是 中央資料庫中的一筆記錄等等。

資源大致上可分為共享資源或是私有資源,由於私有資源屬於該活動點自 我運作時參照使用,所以不需列入資源一致性分析。共享資源當中,允許多個 活動同時存取、或是依據活動存取模式決定資源可否被存取的類型,也不列入 考量。就是僅考量屬於嚴格的不可同步存取的資源。[2]

2.4.2 潛在的資源衝突

資源衝突是指兩個或兩個以上的activity processes,在執行時期同時間參考 到共同的資源。在同一工作流程規格中,兩個 activity processes 會產生潛在資 源衝突 ( potential resource conflict ),須符合下列兩項檢驗條件:

(1) activity processes ni,njNi ≠ ,若 j n ,i nj 所需要存取的資源有

交集,亦即 Ri IRj ≠φ,則稱 n ,i nj 有「資源相依」關係。( resource

dependency )

(2) n ,i nj 不在同一條路徑上,且其最近共通祖先點 (nearest common ancestor) 有 AND-SPLIT 類型的控制點。也就是說,n ,i nj 處在可能 同時執行的兩條平行路徑上。

以上是 Hongchen Li [2] 採用結構的分析,對資源一致性的檢測。這些檢 測工作,是在整個流程規格規劃完畢後,才進行檢測,而檢測方式也是依序以 每一個 process 作出發,去檢查整個流程架構中其他 process,先判斷是否有用 到相同資源的,接著比較彼此間是否互相可以到達 (reachable),所謂可以到達 的意思,就是處在同一條路徑 (path) 上,因為同一路徑上的 activity processes,

意味著執行的先後順序,可以確保不會同時執行,這樣便不用繼續檢查。若是 檢查到的此兩processes 未符合上述條件,而且有資源相依的關係,那麼就要接 著判斷他們的最近共通祖先點 (nearest common ancestor),然後藉由判斷此 control process 的特性,若是 XOR-SPLIT 則表示兩個 processes 的執行為互斥、

執行時期不會同時進行的兩條路徑上,但若是 AND-SPLIT 就可能形成潛在的 資源衝突。

2.4.3 加入時間因素考量的資源衝突

如上一小節所提到,資源相依的兩個processes 處在平行且其最近共通祖先 為 AND-SPLIT 的情況下,才可能導致潛在的資源衝突。然而即使同時執行的 平行路徑上具資源相依的兩個processes,也未必會形成資源衝突,原因是彼此 的工作時間區段未必會有交集。

Marjanovic [4] 針對時間分析定義了 activity process 的最小工作時限 (duration) 與最大工作時限的觀念,藉由這兩項定義,我們可以推導出各相關 process 的最早開始工作時間 (earliest start time) EST 與最晚完成工作時間 (latest end time) LET 值。Figure 6 介紹這些相關的計算方式。其中 d(A) 與 D(A) 分別表示 process A 的最小工作時限值與最大工作時限值。

Figure 6 Estimated active interval

因此若是工作流程規格的定義,能夠記錄各 activity processes 的最小與最 大工作時限,便可以利用這些記錄,去推算各activity process 的 EST 與 LET

EST(D) = MIN{EST(B)+d(B),EST(C)+d(C)}

LET(D) = MAX{LET(B),LET(C)} + D(D)

(3) n ,i nj 各別預估的工作時間區段,有所交集。即 [EST(n ), LET(i n )] i I

[EST(n ), LET(j n )]j ≠ 。其中 [EST(φ n ), LET(i n )] 意味著點 i n 最大i 的可能工作時間區段 (EAI, Estimated active interval)。