• 沒有找到結果。

第二章 DRA4WfMS 的運作模式

第一節 DRA4WfMS 的基礎運作模式

我們在圖二.1 展示了 DRA4WfMS 的基礎運作模式。在流程活動 A 開始 執行之前,DRA4WfMS 文件 X 會傳給流程活動 A 的參與者,參與者要使 用叫做流程活動執行代理 (Activity Execution Agent, AEA) 的軟體工具來執行 流程活動。首先,AEA 會解析 X 並且驗證裡面嵌入的所有數位簽章來確保 X 中的工作流程定義是合法的,以及確保先前流程活動所儲存的所有執行結

果是有效的。第二,AEA 會檢查這個參與者是不是現正要執行的流程活動的參 與者。第三,AEA 會去查看這個流程活動的需求以及回應,並且將這些資訊在 圖形化使用者介面 (GUI) 上顯示給可以執行這個流程活動的參與者。第四,

AEA 會將參與者的執行結果(像是回應)附加到 X (最後會產生的文件就 是 X )。第五,AEA 會嵌入數位簽章來簽署參與者的執行結果以及一些在先 前流程活動被嵌入的數位簽章(最後會產生的文件就是X )。最後,AEA 會檢 查在工作流程定義中所定義的控制流資訊,然後將 X 傳送給之後流程活動的

參與者(或是AEA)。

以下我們會正式地描述 DRA4WfMS 文件的操作。我們會使用一些符號來 代表有應用的密碼學操作。首先,我們用 O 來表示一個資料物件 O 已被元 素式加密法所加密。第二,我們用 O 來表示一個在資料物件 O 上的數 位簽章,且這個簽章是被流程活動 A 的參與者以其私鑰 (private key) 產生的。

第三,以方括號包住並以逗號分隔的資料物件,是代表這些物件被連結,並且

會以密碼學的方法來加密這些物件。舉例來說, O , O , O 表示流程活 動 A 的參與者以其私鑰產生數位簽章來簽署資料物件O 、O 以及 O 。

以 下 我 們 會 描 述 DRA4WfMS 文 件 的 結 構 。 首 先 , 初 始 文 件 表 示 為 X Def ,“Def” 包含一個唯一的程序編號、工作流程程序的定義以及工作

流程程序的安全性策略。唯一的程序編號是為了支援讓工作流程程序可擁有多 個實例,以及抵擋重送攻擊 (replay attack) [14]。工作流程程序的定義包含了工 作流程程序的起始及結束條件、程序裡的流程活動、流程活動之間的控制流與 資料流以及每個流程活動會產生的請求與回應。因為工作流程定義可能會包含 機密資訊,所以需要被保護。我們用 X Def , Def 來表示 一個受保護的 DRA4WfMS 初始文件,其將會傳送給之後流程活動的參與者,

以開始工作流程程序的執行。其中 Pri(A ) 表示工作流程設計師的私鑰。我們 假設隨後的流程活動只有一個 A 。所以 X X 。根據 X ,A 的參與者 使用 AEA 來開始執行 A 以及產生執行結果 R 。將元素式加密法加密之後 的執行結果 R 加到 X 之後, X X , R 。最後,AEA 在 X 嵌 入一個數位簽章,然後產生 X X , R , R , Sig X , Sig X 是 在 X 中 所 嵌 入 的 數 位 簽 章 , 也 就 是 說 Sig X =

Def 。在 R , R , Sig X 中,裡面包含了 A 加

密過後的執行結果 R ,以及為了維護不可否認性所嵌入的數位簽章

R , Sig X 。 我 們 將 其 稱 為 流 程 活 動 A 的 特 有 執 行 結 果

15

(characteristic execution result),為了簡化,我們以 CER(A )來表示流程活動 A

的特有執行結果。因為工作流程程序的執行包含許多流程活動的執行,一份 DRA4WfMS 文件可能會包含許多流程活動的特有執行結果。

舉例來說,X =X ,

R , R , Sig X

= Def , Def , R , R , Sig X

= CER A , CER A .

雖 然 “Def” 不是流程活動的執行結果,但我們可以用 CER A 來表示 X Def , Def 。 我 們 用 Set_of_CER(d) 來 表 示 在 一 份 DRA4WfMS 文件 d 中所包含的 CER 的集合。

舉例來說,Set_of_CER(X )={CER(A ), CER(A )}。

如果一個流程活動 A 只有一個前任 (predecessor) 流程活動,我們可以得知 X Set_of_CER X , R , R , Sig X = X , CER(A ).

需要注意的是工作流程可能會需要支援在流程控制中會有 AND-split 以及 AND-join [33]。在這個狀況,一個流程活動會有很多的前任流程活動,如果一 個流程活動 A 有 n 個前任流程活動 A , A , ..., A ,我們可以得知:

X Set_of_CER X  Set_of_CER X  ...  Set_of_CER X , R , R , Sig X , Sig X , . . . , Sig X .

需要注意的是,流程活動 A 所產生的文件 X 必須包含一個簽署了所有 前任流程活動所嵌入的數位簽章的數位簽章。事實上,CER 被用數位簽章鏈結 起來,這是 DRA4WfMS 中擁有不可否認性的基礎。以下我們會提供一些例子 來展示 DRA4WfMS 文件的結構。圖二.2 展示了一個工作流程程序中的控制流。

首先我們可以得知:

X Def , Def = CER(A ),

X Def , Def , R , R , Sig X

= CER(A ), CER(A ),

X Def , Def , R , R , Sig X , R , R , Sig X

= CER(A ), CER(A ), CER(A ), and

X Def , Def , R , R , Sig X

= CER(A ), CER(A ).

流程活動 A 有兩個前任流程活動,分別是 A 與 A 。因此我們可以得 知X = Set_of_CER X  Set_of_CER X ,

R , R , Sig X , Sig X

= CER(A ), CER(A ), CER(A ), CER(A ),

R , R , Sig X , Sig X

= CER(A ), CER(A ), CER(A ), CER(A ), CER(A )

17

= Def , Def , R , R , Sig X ,

R , R , Sig X , R , R , Sig X , R , R , Sig X , Sig X .

A

0

A

1

A

4

A

3

A

2

圖二.2. 工作流程程序的控制流

應該要考慮的另一個狀況是一個工作流程程序的執行可能包含迴圈。為了 在我們的系統中支援有迴圈的工作流程程序執行,我們擴充我們的符號使用,

在 [30] 中有更詳細的介紹。