• 沒有找到結果。

第四章 利用 BigTable 建構 DRA4WfMS 文件池

第一節 資料表架構

Bigtable 是一種分散式的儲存系統,其目的是為了管理結構化的資料。

Bigtable 讓資料規模可以擴展到非常巨大:petabyte 大小的資料存放在數以千 計的商用伺服器上 [36]。這是其中一個以資料表結構儲存結構化 bigdata 的解 決方案。我們可以利用 MapReduce 計算框架來對 bigdata 更有效的搜尋。原

生在 MapReduce 中的可延展性讓他可以適合用於多租戶系統。我們使用 Apache Hadoop [37] 來實作 DRA4WfMS 文件池,其中的結構是由 HBase 資 料庫來建構。HBase 是一個開源的 BigTable 架構實現以及分散式的列導向 (column-oriented) 資料庫,其建構在 HDFS(Hadoop 的分散式檔案系統)的上 層。當我們需要在非常大的資料集合內進行實時 (read-time) 讀取/寫入隨機存 取時,對於 Hadoop 來說 HBase 是最合適的應用程式。一份 DRA4WfMS 文 件被儲存在一個 HBase 資料表中的一個列 (row) 中的一個資料單元 (cell)。

第一節 資料表架構

Bigtable 是一種稀疏的、分散式、持久且排序的多維 map。在 map 中的 每一個值都是由行名 (row key)、列名 (column key) 以及時間戳 (timestamp) 這三個值來作為指標。每個列又歸屬於各自的列族 (column family),而一個列

27

由其列族以及修飾詞 (qualifier) 來命名,其格式為「列族:修飾詞」。時間戳代

表此筆資料的「版本」,每筆資料可以擁有若干個版本,而顯示只會顯示最新 的一筆。圖四.1 展示了 DRA4WfMS 文件池的資料表架構。

Row DraDoc:XML Activity: NextActivities Activity: UpdateTime

圖四.1. DRA4WfMS 文件池的資料表架構

當一個參與者完成流程活動 A 的執行時,他會將 DRA4WfMS 文件 X 傳給入口伺服器。入口伺服器會新增一個新的行來儲存 X′′ ,並且會將其放在

“DraDoc:XML” 中。“Row” 代表是由”公司名稱”、”工作流程編號”、”程序編 號”以及”索引”所組成的行名,例如:“tw.edu.ntnu_WF3456_P1029890_A1_0001”。

“Activity:UpdateTime” 儲存時間戳,記錄此文件何時上傳完成。雖然時間戳已 經被嵌入在 “DraDoc:XML” 所儲存的 DRA4WfMS 文件裡,我們還是將其用

另外的資料單元儲存,以作為快速查詢之用。入口伺服器應該要能夠得知隨後 的流程活動以及其相對應的參與者,並將其儲存在 “Activity:NextActivities”。

圖四.3 展示了當圖四.2 的工作流程在執行時會在文件池中產生的一些資料。第 一列中的 “A_0 (A_Agency)” 代表他隨後的流程活動及參與者分別是 “A_0”

以及 “A_Agency”。要注意的是,“A” 是流程活動的編號,而 “0” 是流程活動 的索引,“A_Agency” 可以代表一個參與者的編號或是一個身分。很明顯地,

這個格式可以支援在一個流程活動中有多數的參與者,舉例來說,“A_0 (John,

Mary, TA_Agency)” 則代表了在 A_0 這個流程活動中有 John、Mary 以及 Attachment is insufficient.

Row DraDoc:XML Activity: NextActivities Attribute: UpdateTime

tw.edu.ntnu_WF3456_P1029890_Init A DRA4WfMS

document A_0 (A_Agency) (Timestamp)

tw.edu.ntnu_WF3456_P1029890_A_0 A DRA4WfMS document

B1_0 (B1_COM1)

B2_0 (B2_COM2) (Timestamp) tw.edu.ntnu_WF3456_P1029890_B1_0 A DRA4WfMS

document C_0 (C_Agency) (Timestamp)

tw.edu.ntnu_WF3456_P1029890_B2_0 A DRA4WfMS

document C_0 (C_Agency) (Timestamp)

tw.edu.ntnu_WF3456_P1029890_C_0 A DRA4WfMS

document D_0 (D_Agency) (Timestamp)

tw.edu.ntnu_WF3456_P1029890_D_0 A DRA4WfMS

document t End (Timestamp)

圖四.3. DRA4WfMS 文件池中的片段資料

Row DraDoc:XML Activity: NextActivities Attribute: UpdateTime

tw.edu.ntnu_WF3456_P1029890_Init A DRA4WfMS

document A_0 (A_Agency) (Timestamp)

tw.edu.ntnu_WF3456_P1029890_A_0 A DRA4WfMS document

B1_0 (B1_COM1)

B2_0 (B2_COM2) (Timestamp) tw.edu.ntnu_WF3456_P1029890_B1_0 A DRA4WfMS

document C_0 (C_Agency) (Timestamp)

圖四.4. DRA4WfMS 文件池中的片段資料

29