• 沒有找到結果。

利用雲端協作模式運作之具可擴展性及可信性跨企業工作流程管理系統

N/A
N/A
Protected

Academic year: 2021

Share "利用雲端協作模式運作之具可擴展性及可信性跨企業工作流程管理系統"

Copied!
68
0
0

加載中.... (立即查看全文)

全文

(1)國立臺灣師範大學 資訊工程研究所碩士論文. 指導教授:. 黃冠寰. 博士. 利用雲端協作模式運作之具可擴展性及可信性 跨企業工作流程管理系統. Scalable and Trustworthy Cross-Enterprise WfMSs by Cloud Collaboration. 研究生: 中華民國. 高翊展. 一 零 二. 撰 年 七 月.

(2) 國立臺灣師範大學資訊工程研究所 碩士學位論文 利用雲端協作模式運作之具可擴展性及可信性 跨企業工作流程管理系統. 經考試合格特此證明 審查教授:. 指導教授: 研究所所長: 中華民國. 一 零 二. 年 七. 月.

(3) 摘 要 利用雲端協作模式之具可擴展性及可信性跨企 業工作流程管理系統 高翊展 雲端運算 (Cloud computing) 技術在學術界跟工業界已經被廣泛地研究及利 用,越來越多企業跟使用者將他們的資料以及應用程式搬移至雲端環境上。雲端 運算提供一個新的運算模式,其擁有彈性調整計算規模、由異質資源整合而成之 無容量限制的資源池 (resource pool) 以及依照需求 (on-demand) 供給計算資源 等機制。這些新的概念為工作流程管理系統 (Workflow Management System, WfMS) 的實作上帶來許多新的挑戰。若要在雲端環境建立一個具可擴展性且可 支 援 跨 企 業 運 作 的 工 作 流 程 管 理 系 統 , 則 需 要 將 現 有 的 程 序 管 理 (process management) 概念作更多的延伸以及使其適應雲端的環境。 本論文將會提出一個具有可擴展性且可在多租戶環境上運作的跨企業工作 流程系統。特別的是,工作流程程序 (workflow process) 的制定可以透過雲端協 作 (cloud collaboration) 的 機 制 來 完 成 。 我 們 不 會 將 傳 統 需 要 透 過 引 擎 (engine-based) 控制的工作流程系統架構直接佈署到雲端上,而是讓工作流程程序 實例 (workflow process instance) 擁有自我保護的能力,如此一來,也不需要另外 使用存取控制 (access-control) 的機制去保護敏感資料免受惡意竊取。因此,工作 流程實例的探索以及流程活動 (activity) 的執行就可以各自獨立並且分散執行。 另外在本論文所提出的系統中,我們採用 BigTable 來儲存所有的工作流程 程序實例以及控制工作流程程序的執行,讓系統得以成為可容納巨量資料的工作 流程系統。我們也使用元素式加密法 (element-wise encryption) 和鏈狀數位簽章.

(4) (chained digital signature) 等技術讓工作流程可以擁有身分驗證機制、資料保密性、 資料完整性以及不可否認性等安全性需求。 而且工作流程程序實例可以備份及遷移至其他相容的平台而不必依靠雲端 服務提供者的支援。因此,本論文所提出的系統也可以適用在不受信任的雲端伺 服器上。系統的相關實作細節以及實驗數據則可以展示此系統架構的可行性。. 關鍵字:雲端運算、多租戶技術、工作流程管理系統.

(5) ABSTRACT Scalable and Trustworthy Cross-Enterprise WfMSs by Cloud Collaboration by Yi-Chan Kao Cloud computing is gaining tremendous momentum in both academia and industry, with more and more people and enterprises migrating their data and applications into the cloud. Cloud computing provides a new computing model with elastic scaling, a resource pool of unprecedented size, and the on-demand resource provisioning mechanism, which bring numerous challenges in implementing workflow management systems (WfMSs) in the cloud. Establishing scalable and cross-enterprise WfMSs in the cloud requires the adaptation and extension of existing concepts for process management. This thesis proposes a scalable and cross-enterprise WfMS which can be applied in a multitenancy cloud environment. Especially, it can activate enactment of workflow processes by cloud collaboration. We do not employ the traditional engine-based WfMSs. The key idea is to have the workflow process instance to be self-protected and does not need an access-control server to secure the data therein. Thus, the process instance discovery and activity execution can be fully independently and distributed. As a result, we can employ the data storage system, BigTable, to store the process instances, which may form a big data, and control the execution of workflow processes. The applying of element-wise encryption and chained digital signature makes it satisfy major security requirements of authentication, confidentiality, data integrity, and nonrepudiation. Also, the process instance migration and replication can be fulfilled without the.

(6) supporting of the cloud provider. Therefore, the proposed system can also be applied to cloud with untrusted server. The implementation and experimental results demonstrate the feasibility of the proposed framework.. Keyword: Cloud, Multitenancy, Workflow Management System, WfMS.

(7) vii. 誌 謝 首先感謝我的指導教授黃冠寰,在這兩年的指導之下,深感受益良多,每當 研究遇到問題時,教授都會跟我仔細地推敲,找出其中最純粹的道理。出國參加 研討會時也對我多加照顧,讓我能夠打開自己的眼界,體驗真正的國際盛事。再 來要感謝口試委員婁德權教授以及孫宏民教授,謝謝兩位教授給予我的碩士論文 許多改進的意見,讓這個研究可以更加完整。我也感謝我的父母,讓我自己決定 許多事情,並培養我負責任的態度,也全力支持我取得碩士學位,使我能在讀書 當下,不需煩惱學校以外的事情。另外,我要感謝這兩年遇到的學長和同學,謝 謝哲生學長,總是從業界帶回很多新的觀念以及知識,並不吝與我們分享跟討論。 謝謝宇程學長,感謝你給我許多技術上的協助,沒有你我大概無法完成這個系統。 謝謝李祺學長,在我有疑問的時候給我許多建議以及方法。謝謝恆毅學長及柏宏 學長,在剛進實驗室的時候我有很多不懂的地方,你們都很願意教我,讓我可以 快速地適應環境。最後要感謝我的同學們,偉賢、震宗與思鋒,因為你們的陪伴, 我的碩士生涯過得很精采,真懷念我們一起寫作業,一起討論,一起奮鬥,一起 歡笑,一起到處闖蕩的時光。也感謝我的學弟裕偉,為大家帶來許多歡樂,我感 謝這些日子我身邊的所有朋友,因為你們的支持,我今天才能有這樣的成就,才 可以順利地度過這兩年的研究時光。. 高翊展 誌於 國立臺灣師範大學資訊工程研究所 民國一百零二年七月.

(8) viii. 目 錄 摘 要.............................................................................................................................. iii  ABSTRACT .................................................................................................................... v  誌 謝............................................................................................................................. vii  目 錄............................................................................................................................ viii  附表目錄........................................................................................................................ ix  附圖目錄......................................................................................................................... x  第一章 簡介................................................................................................................... 1  第一節 問題描述................................................................................................... 1  第二節 論文組織................................................................................................. 10  第二章 DRA4WfMS 的運作模式 .............................................................................. 11  第一節 DRA4WfMS 的基礎運作模式 .............................................................. 13  第二節 DRA4WfMS 的進階運作模式 .............................................................. 18  第三章 將 DRA4WfMS 應用於雲端運算環境 ......................................................... 23  第四章 利用 BigTable 建構 DRA4WfMS 文件池 ..................................................... 26  第一節 資料表架構............................................................................................. 26  第二節 流程活動的通知功能............................................................................. 29  第五章 在不受信任的雲端基礎建設上建構 DRA4WfMS ..................................... 32  第六章 實作與實驗結果............................................................................................. 34  第七章 相關文獻探討................................................................................................. 43  第八章 結論................................................................................................................. 47  附錄 A 實驗數據 ......................................................................................................... 48  參考著作....................................................................................................................... 53 .

(9) ix. 附表目錄 表六-1. 文件池中存有不同數量的文件時,同步處理的回應時間 ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ 42  表 A-1. 文件池中存有不同數量的文件時,提取文件的時間數據 ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ 48  表 A-2. 文件池中存有不同數量的文件時,驗證文件的時間數據 ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ 49  表 A-3. 文件池中存有不同數量的文件時,在文件中嵌入時間戳的時間數據 ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ 50  表 A-4. 文件池中存有不同數量的文件時,存入文件的時間數據 ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ 51  表 A-5. 文件池中存有不同數量的文件時,搜尋文件的時間數據 ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ 52 .

(10) x. 附圖目錄 圖一.1. 集中式工作流程管理系統以及基於引擎的分散式工作流程管理系統的運作模式 .............. 2  圖二.1. DRA4WfMS 的基礎運作模式 .............................................................................................. 11  圖二.2. 工作流程程序的控制流 ..................................................................................................... 17  圖二.3. 資料隱藏所導致的問題範例 ............................................................................................. 19  圖二.4. DRA4WfMS 的進階運作模式 ........................................................................................... 20  圖三.1. 將 DRA4WfMS 應用於雲端運算環境中 ......................................................................... 24  圖四.1. DRA4WfMS 文件池的資料表架構 ................................................................................... 27  圖四.2. 工作流程範例 ................................................................................................................... 28  圖四.3. DRA4WfMS 文件池中的片段資料 ................................................................................... 28  圖四.4. DRA4WfMS 文件池中的片段資料 ................................................................................... 28  圖四.5. DRA4WfMS 通知表的片段資料 ....................................................................................... 30  圖六.1. 文件池中存有不同數量的文件時,提取文件的時間 ........................................................ 36  圖六.2. 文件池中存有不同數量的文件時,驗證文件的時間 ........................................................ 37  圖六.3. 文件池中存有不同數量的文件時,在文件中嵌入時間戳的時間 ...................................... 38  圖六.4. 文件池中存有不同數量的文件時,存入文件的時間 ........................................................ 39  圖六.5. 文件池中存有不同數量的文件時,搜尋文件的時間 ........................................................ 40 .

(11) 第一章 第一節. 簡介 問題描述. 工作流程管理系統 (Workflow Management Systems, WfMSs) 是一種軟體系統,此 系統可以讓組織內的成員彼此協調合作,使其能完成複雜的商業任務 [1-3]。在 工作流程管理系統中,商業任務通常會被自動建構成一個工作流程程序 (workflow process)。工作流程模型 (workflow model) 通常也被稱為工作流程程序 定義 (workflow process definition)。所謂工作流程程序的定義包含了這個工作流程 的起始與結束條件、在流程中所包含的流程活動 (activities) 、流程的控制以及在 流程活動之間的資料如何傳遞。在工作流程中,流程活動是一個邏輯上的步驟, 其中包含了此流程活動的起始及結束條件、被允許參與此流程活動的用戶(稱為 參與者)、完成此流程活動所需要使用的工具與資料以及流程活動應如何完成的 限制條件等資訊。在工作流程中的流程活動通常會以有向圖 (directed graph) 的形 式來表示其執行順序。在圖中的節點 (node) 代表流程活動,而邊 (edge) 則代表 控制流 (control flow)。工作流程程序實例 (workflow process instance) 代表一個工 作流程目前執行的狀態。通常會由工作流程管理系統來定義,並由工作流程引擎 (workflow engine) 來控制。 雲端運算提供了包含應用程式、資料儲存以及計算等等的服務,使用者不 需要知道實體機器在哪裡,也不需要知道用來架設服務的系統的相關設定。一 些企業以及組織越來越關注用傳統方法創建以及維護應用程式的成本,也開始 考慮將他們的應用程式移至由專門的雲端服務提供者 (Cloud Service Providers) 1.

(12) 2. 所維護的雲端環境執行。雲端運算環境的計算規模可以依照任何大小的需求隨 意擴展,不過成本會隨著計算規模的大小而增加。. A2. (A). A3. A1 A4. A5. A6. Workflow engine. Workflow engine 2 A2. A3 Public network. Public network. (B). A1 Workflow engine 1. Public network. A4. A5. A6. Workflow engine 3 Start of workflow. End of workflow. Activity. Flow control edge. Workflow engine User communication. Process instance migration Participant. 圖一.1. 集中式工作流程管理系統以及基於引擎的分散式工作流程管理系統 的運作模式. 現今將工作流程管理系統佈署到雲端環境上最常見的作法,就是將工作流程 引擎架設在雲端基礎設施上。以此做法實作的例子包含 RunMyProcess [4]、Visual Workflow [5]、Aneka [6]、Azure Services Platform [7] 以及 Google App Engine [8]。.

(13) 3. 以下我們將會為集中式 (centralized) 的工作流程管理系統以及基於引擎的分散 式 (engine-based distributed) 工作流程管理系統做一個簡單的概述。我們把幾種 將工作流程管理系統佈署到雲端環境中會發生的安全性的問題展示出來。 集中式的工作流程管理系統在單一工作流程引擎上執行工作流程程序,通常 為單一組織在單一地點執行(見圖一.1A) 。工作流程程序會被單一個工作流程引 擎執行,接著會聯絡所有此流程活動的參與者開始工作。為了適應商業環境的快 速轉變,以及電子商務 (e-business) 應用的高度負荷,工作流程系統應該要能夠 具有可擴展性以及提供必要的彈性,以應付系統負載的高峰期以及分散式的環 境。 基於引擎的分散式工作流程管理系統的運作模式如圖一.1B [9–12]。在此工作 流程程序中有六個流程活動 (A1–A6),分別由在不同地點的三個工作流程引擎所 佈署執行。建立多個工作流程引擎能夠做到:(1) 在使用者增加的時候能將負載 平衡分散在不同的工作流程引擎上。(2) 減少在流程活動中的參與者以及工作流 程引擎之間的溝通時間。因為就網路傳輸的層面來看,分散式的設計讓工作流程 引擎較為接近用戶。 基於引擎的分散式工作流程管理系統可以被用來建構跨企業 (cross-enterprise) 的工作流程管理系統,如此就可以執行跨企業的工作流程程序。 在跨企業工作流程程序的流程活動中的參與者可以屬於不同企業或組織。為了認 證的需求,這些參與者通常會在他們自己的企業或組織內與工作流程引擎連線。 在基於引擎的分散式工作流程管理系統中,儲存工作流程的狀態是工作流程引擎 不可或缺的一種功能。但因為工作流程引擎在物理空間上是分開的,流程活動之 間無法直接分享這些資訊,所以很明顯地,工作流程程序實例必須在執行的時候.

(14) 4. 被到處傳送。如圖一.1B 所示,工作流程引擎 1 必須傳送包含流程活動 A1 的執行 結果的工作流程程序實例到工作流程引擎 2 跟 3。此外,每個在分散式工作流程 管理系統中的工作流程引擎也有可能是執行在不同規格的機器上。因此,在這種 環境下,工作流程管理系統必須要支援能夠在不同類型的工作流程引擎之間交換 工作流程實例。 圖一.1B 所展示的運作模式潛藏有嚴重的安全問題,因為工作流程程序實例 會在公共網路上被傳送。因此,流程活動的執行結果有可能會被盜取,或是惡意 的使用者可能會在工作流程程序實例傳送到下一個工作流程引擎之前將其攔截 然後修改,再將其修改後的資料送到下一個工作流程引擎。雖然以上兩個問題可 以用一些確保電子交易安全性的常見手法解決,像是 SSL (Secure Sockets Layer) 協定,但這些手法沒辦法確保不可否認性 (nonrepudiation) 的需求。也就是說, 系統很難去防止一個參與者否認他在一個流程活動裡所做過的事情。在這個運作 模式下,參與者為了執行一個流程活動而連結到工作流程引擎,在工作流程引擎 以及參與者之間的溝通很像是傳統 Client/Server 的計算模式,由於參與者通常都 是透過固定的網域連接工作流程引擎,因此工作流程引擎可以很快地發現這個問 題。 由於資料保密性的需求,工作流程引擎只會讓現在要執行流程活動的參與者 看到工作流程程序實例的部分資料(像是表格、文字、圖片或檔案),然後再讓 參與者上傳執行結果(可能是ㄧ些文字或檔案)到工作流程引擎上。工作流程引 擎會將這些執行結果作為工作流程程序實例的一部分,並將其儲存在資料庫或者 是其他的儲存裝置中。在流程活動執行完之後,參與者可能會聲稱先前儲存的執 行結果可能已遭修改,或是工作流程引擎在執行流程活動的過程中所顯示給他看.

(15) 5. 的資料的格式不一致,抑或是這些資料已經被非法地修改了。基於以上理由,使 用者可能會否認他先前的執行。這是因為在工作流程管理系統的管理領域中有超 級使用者 (superuser) 的存在。舉例來說,一個關聯性資料庫 (relational database) 的管理者有權限去更新資料庫裡的資料跟紀錄。 在基於引擎的工作流程系統(不管是集中式或是分散式)運作模式中,有 一個特點是工作流程引擎必須被管理者所管理,因為工作流程程序實例通常會 存在引擎中或是靠近他們的資料庫伺服器中 [4-8]。用戶透過網路與這些被管理 的工作流程引擎連接溝通,以參與工作流程管理系統中流程活動的執行。工作 流程程序實例的安全性是被伺服器所保證而不是實例本身。在跨企業的工作流 程系統中,工作流程引擎可能會被分散式網路環境中的不同企業或組織所管理。 如果這個安全機制被打破(例如在此架構中的任何一個伺服器被駭客攻破) ,則 在其中的工作流程程序實例都可能可以被訪問或是被存取。因此,整體的安全 性是不夠的。隨之而來的問題就是如何在跨企業(或者跨組織)工作流程系統 的工作流程引擎上去設計一個信任模型 (trust model) 。 多租戶 (Multitenancy) 技術指的是一種軟體架構,其可以讓在伺服器上的 一個軟體實例服務多個租戶 (tenants),也就是客戶端的組織 [15]。共享的基礎 建設改變了企業應用的經濟模式,讓供應商只需維護一個應用程式實例就可以 服務成千上萬的客戶。在多租戶的雲端環境中,許多供應商使用相同的基礎建 設,也可以存取以及分享相同的計算資源。多租戶架構讓經濟模式具有隨用即.

(16) 6. 付 (pay-as-you-go) 服務的性質 [16]。有許多不同的方法可以實做多租戶技術, 包含虛擬化以及共享資料庫。虛擬化 (Virtualization) 是一個可以簡單實現多租 戶技術的技巧,特別是在基礎架構即服務 (IaaS) 模式中:在一個實體機器裡有 許多的虛擬機器,使其可以服務許多租戶,這被視為是最簡單的多租戶技術應 用。一些雲端系統可以支援更先進的多租戶架構,像是共享一個資料庫或者是 共享一個資料庫中的資料表 [17, 18]。隨著多租戶架構的發展,應用程式的設 計會傾向將資料以及配置分離。客戶端的組織則可使用客製化的應用程式實例 來工作。雲端應用程式採用多租戶架構的重要原因之一是為了實現高成本效益 以及可以帶來低成本。真正的雲端服務都使用某種模式的多租戶架構來支援可 讓許多客戶端組織共享相同的應用程式、資料或者是計算資源的能力。多租戶 架構可讓一個工作流程程序實例被許多不同的企業所存取,所以能夠符合跨企 業的工作流程管理系統的資料共享需求。然而,開發一個多租戶的工作流程系 統不只可以帶來低成本,也是為了實現跨企業的工作流程管理系統。因為在一 個跨企業的工作流程程序中,來自不同組織的參與者可能會需要彼此溝通或是 交換資料,因此一個跨企業的工作流程管理系統中所需要的功能,會比多租戶 技術所能提供的來得更多。 文件的雲端協作 (Cloud collaboration) 是一個新興的方法,透過雲端共享 及共同創作文件,也就是被傳上雲端的文件或是物件可以被其他人存取,例如 像是 Google document 以及 Google Calendar [19, 20]。雲端協作技術讓使用者.

(17) 7. 可以在雲中上傳以及編輯文件或物件。在過去的幾年裡,越來越多企業開始使 用雲端協作。雲端協作也為雲端運算跟協同工作帶來新的進展,使其在一個日 益全球化的世界中變得越來越需要。協作是指在同一家公司的員工可以同時一 起做一件特定的工作。藉由雲端協作,使用者不需要在同個地點,或者在同個 城市,也可以有效率地朝著一個共同的目標一起努力。在全球化社會的當今, 對於一個組織來說,擁有有效合作的能力是很重要的發展方向,雲端協作工具 對於促進這一點是個理想的方式。在過去,大部分的文件協作都需要面對面工 作。然而,協作會隨著需要與在世界各地的人同時以不同設備進行各種不同類 型的工作而變得更加複雜。在雲端協作的機制中,除了多租戶技術的特性外, 參與者可以不受其他參與者干擾,而獨立執行自己的工作,需要時也可以與其 他參與者共享資料。 跨企業工作流程程序需要不同組織的參與者一起工作,並透過工作流程定 義共享資料。這促使我們去研究如何設計一個可以透過雲端協作技術來提供工 作流程執行服務的跨企業的工作流程管理系統。 在一個多租戶的雲端運算環境套用基於引擎的工作流程管理系統會增加安 全性的問題。因為工作流程引擎通常被安裝在不被使用引擎的公司跟組織所管 理的伺服器上。可信任執行的議題在不受信任的雲端基礎建設上備受關注[21]。 舉例來說,在雲端儲存中,對於不信任的伺服器有很多的解決方法,像是儲存 備份 (replication) [22, 23, 24, 25]、違規 (violation) 檢測 [26, 27] 以及審計.

(18) 8. (auditing) [28]。對於在不受信任的雲端基礎建設中建構工作流程系統,除了不 可否認性的需求,客戶端的組織可能需要系統支援能讓其自行控制且受保護的 工作流程程序實例遷移 (migration) 及備份。在這個狀況下,工作流程程序實 例不能被特定的工作流程引擎綁定。在工作流程程序實例遷移及備份之後,對 於身分認證、資料保密性、資料完整性以及不可否認性等安全性的需求也應該 持續維護。. 在本論文中,我們提出一個受保護的、可擴展的,且具有多租戶架構的工作 流程管理系統,並支援透過雲端協作技術來執行工作流程。首先,為了支援跨 企業的工作流程管理系統,我們必須解決在基於引擎的工作流程管理系統中所 擁有的安全性問題。其次,我們認為在一個工作流程程序裡,可能有來自任何 組織的參與者,這些參與者在一個工作流程程序的運作時間中可以被動態地決 定。因此,我們必須要在一個資料庫中容納多個租戶。工作流程程序的執行過 程實際上是一種雲端協作。最後,大量的工作流程程序實例儲存在系統中,形 成海量資料 (Big data)1,系統應該要服務數量龐大的客戶端組織。 我們採用了一種稱為文件路由架構的工作流程管理系統 (Document Routing Architecture for WfMS, DRA4WfMS [30])。DRA4WfMS 是一個文件路由的系統, 工作流程程序的執行可以藉由在流程活動參與者之間傳送受保護的工作流程程 序實例而被滿足。這不僅是分散式的工作流程管理系統,也是完全的無引擎. 1. Big data 是大量且複雜的數據集的集合,其難以用手動控制的資料庫管理工具來處理。[29]..

(19) 9. (engine-less) 工作流程管理系統 – 流程活動的執行不會被任何引擎控制,而是 由安裝在參與者本地端電腦上的代理軟體 (software agent) 來執行。代理軟體 可以被安裝在任何地方或是任何型態的裝置。我們採用了在 XML 安全議題中 常用的元素式加密法 [31, 32] 以及提出一個將文件中嵌入的數位簽章鏈結起 來的方式。這個方法能夠確保一個 DRA4WfMS 文件的安全,而不需要存取控 制伺服器。一個 DRA4WfMS 文件包含受保護的工作流程定義、工作流程程序 實例以及一些數位簽章。在一個流程活動執行的過程中,代理軟體解析收到的 DRA4WfMS 文件,接著驗證先前的數位簽章、將文件解密、將工作流程程序 實例中的資訊展示給該參與者、在收到的 DRA4WfMS 文件中加入該參與者輸 入的資料以及嵌入該參與者的新的數位簽章,最後根據 DRA4WfMS 文件中所 定義的協議 (protocol) 來將修改過的 DRA4WfMS 文件傳給下一個參與者。此 系統擁有以下的特點: . 不需要由管理者維護的集中式工作流程引擎也可以運作. . 工作流程程序實例可以被儲存成一個能夠實現身分認證、資料保密性、 資料完整性以及不可否認性等安全性要素的格式. . 可以支援動態流程控制以及在執行時支援動態安全策略. . 雖然流程活動的執行沒有被工作流程引擎控制,系統仍然可以支援工 作流程的監控 (monitoring)。.

(20) 10. . 受保護的工作流程程序實例遷移以及備份可以在不需要雲端服務提 供者支援的狀況下實現。. 第二節. 論文組織. 本論文由下列部分組成。在第二章,我們會介紹 DRA4WfMS 的基本運作 模式與進階運作模式。將 DRA4WfMS 應用在雲端運算環境上的方法在第三章 會介紹。我們將 bigtable 應用在 DRA4WfMS 的方法在第四章會介紹。第五章 討論如何在不受信任的雲端基礎建設上建構具有可信性的 DRA4WfMS。實驗 結果將呈現在第六章。文獻探討以及結論分別在第七及第八章。.

(21) 第二章 DRA4WfMS 的運作模式. DRA4WfMS 是一個基於文件路由架構以及無引擎管理的工作流程管理系 統。在我們解釋為何 DRA4WfMS 可以應用在 bigtable 的架構下之前,我們要 先介紹為什麼一個工作流程程序的執行可以藉由在流程活動參與者之間傳送受 保護的工作流程程序實例來完成。DRA4WfMS 文件會傳送給在不同位置的流 程活動參與者。在文件傳送的過程,每次流程活動的執行結果會被附加在文件 中。因此,一份 DRA4WfMS 文件中會包含靜態以及動態的資訊。. AEA. AEA. AEA A1. A2 Start. X″ A1. …. A3. X″ A2. Workflow definition The secured initial document X″ A0. X″ A3. Digital signature embedded by the workflow designer. Digital signature embedded by a workflow participant. Execution result of the activity. 圖二.1. DRA4WfMS 的基礎運作模式. 靜態資訊實際上是指初始文件的內容。文件裡包含工作流程定義以及被工 作流程設計師嵌入的數位簽章。在初始文件裡,這個數位簽章簽署了工作流程 定義,流程活動參與者需要去驗證此文件是否為合法的工作流程程序。工作流. 11.

(22) 12. 程定義的第一部分包含了工作流程程序的起始及結束條件、程序裡的流程活動、 流程活動之間的控制流與資料流以及每個流程活動會產生的請求與回應。工作 流程定義的第二部分描述了工作流程程序執行中的安全策略,包含如何加密工 作流程程序實例中的資料。事實上,因為每個流程活動會被不同的參與者執行, 所以一些在工作流程程序實例中的不同位置要用不同的金鑰 (key) 加密。這也 叫元素式加密法 [31, 32]。加密一份 XML 文件最常用的方法就是以現有的密 碼學方法來加密整份文件。收到被加密過的 XML 文件之後,就用適合的金鑰 跟演算法去解密。然而,一些研究者認為加密整份 XML 文件而不將其作分割 是很笨重的,因此提出了元素式加密法來讓加密的範圍維持在元素的層級。 每個流程活動的執行結果就是 DRA4WfMS 文件中一部分的動態資訊。為 了完成身分認證、資料保密性、資料完整性以及不可否認性等安全性需求,執 行結果應該被單獨加密以及簽署數位簽章。當需要做工作流程程序的監控時, 一些時間戳 (timestamp) 應該要嵌入 DRA4WfMS 文件中。所有在工作流程程 序執行過程中被附加或被嵌入 DRA4WfMS 文件中的資料都被認為是動態資訊。 以下我們首先會呈現 DRA4WfMS 的基礎運作模式,再來會介紹 DRA4WfMS 的進階運作模式。.

(23) 13. 第一節 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) 產生的。 第三,以方括號包住並以逗號分隔的資料物件,是代表這些物件被連結,並且.

(24) 14. 會以密碼學的方法來加密這些物件。舉例來說, 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 Sig X Def. 是在. X. 。在. 密過後的執行結果 R. , Sig X. X , R. X , R. 。最後,AEA 在 X , R. , Sig X. 中所嵌入的數位簽章,也就是說 R R. , R. , Sig X. 嵌 ,. Sig X. =. 中,裡面包含了 A 加. ,以及為了維護不可否認性所嵌入的數位簽章 。 我 們 將 其 稱 為 流 程 活 動 A. 的特有執行結果.

(25) 15. (characteristic execution result),為了簡化,我們以 CER(A )來表示流程活動 A 的特有執行結果。因為工作流程程序的執行包含許多流程活動的執行,一份 DRA4WfMS 文件可能會包含許多流程活動的特有執行結果。 舉例來說,X =X , R =. , R Def. , Sig X , 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 R. , R.  Set_of_CER X , Sig X. , Sig X. ,我們可以得知:.  ...  Set_of_CER X , . . . , Sig X. , ..

(26) 16. 需要注意的是,流程活動 A 所產生的文件 X. 必須包含一個簽署了所有. 前任流程活動所嵌入的數位簽章的數位簽章。事實上,CER 被用數位簽章鏈結 起來,這是 DRA4WfMS 中擁有不可否認性的基礎。以下我們會提供一些例子 來展示 DRA4WfMS 文件的結構。圖二.2 展示了一個工作流程程序中的控制流。 首先我們可以得知: X. Def. , Def. = CER(A ),. X. Def. , Def. , R. , R. , Sig X. , R. , R. , Sig X. ,. , R. , Sig X. = CER(A ), CER(A ), X. Def. , Def. R. , R. , Sig X. = CER(A ), CER(A ), CER(A ), and X. Def. , Def. , R. = CER(A ), CER(A ). 流程活動 A 有兩個前任流程活動,分別是 A 知X = Set_of_CER X R. , R.  Set_of_CER X. , 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 ). 與 A 。因此我們可以得.

(27) 17. = Def. , Def. , R. R. , R. , Sig X. R. , R. , Sig X. , R. , Sig X. , R. , R. , Sig X. , , Sig X. ,. .. A0 A1. A3. A2 A4 圖二.2. 工作流程程序的控制流. 應該要考慮的另一個狀況是一個工作流程程序的執行可能包含迴圈。為了 在我們的系統中支援有迴圈的工作流程程序執行,我們擴充我們的符號使用, 在 [30] 中有更詳細的介紹。.

(28) 18. 第二節 DRA4WfMS 的進階運作模式 以下我們會介紹 DRA4WfMS 的進階運作模式。其支援工作流程管理系統 的監控以及更加複雜的安全性架構。我們有充分的理由認為基礎運作模式在某 些狀況下是不足的。首先,有時候會需要做工作流程程序的監控。監控涵蓋追 蹤一個獨立的程序,因此可以很簡單的看到執行的狀態以及統計一個或多個程 序的效能 [34]。我們必須放入一個流程活動完成時間的時間戳以及應該有一種 方法來查詢工作流程程序的執行進度或狀態。第二,分散式地執行組織間的工 作流程可能會引發一些安全性議題,包含在相互競爭的組織間的利益衝突 [35]。 直觀地說,可能需要用元素式加密法來加密流程活動的執行結果,以維護在工 作流程程序執行期間的安全性策略。在 [35] 中展示了一個例子:控制流的資 訊不應該透露給負責轉發工作流程文件的參與者。因為參與者不能看到控制流 的資訊,他就無法決定要如何傳送文件以進行隨後流程的執行。這也導致另一 個問題:AEA 因為不知道下一個參與者是誰,而無法得知要如何加密文件。我 們用圖二.3 來描述這個藉由流程資訊被隱藏而產生的問題。圖二.3A 展示了一 部分的工作流程定義,圖二.3B 則是根據這個流程定義的相對應的資料流描述。 在流程活動 A 和 A ,參與者 Peter 和 Tony 分別負責要給變數 X 跟 Y 輸入 值。然而,安全性策略要求 Peter 輸入的變數 X 的值應該要被 Amy 的公鑰 加密以備後用。流程活動 A 的參與者 Tony 沒有被允許能看到 X 的值,在 流程活動 A 之後,有一個條件的分支。A 或 A 的其中一個將會被執行,.

(29) 19. 執行與否依據布林函數 Func(X) 的值來決定。變數 Y 是一個機密資料,其應 該在傳輸期間被加密。如果 A 被執行,變數 Y 應該被 John 的公鑰加密。 否則,他應該被 Mary 的公鑰加密。由於在 A 時 Tony 無法確認 X 的值, 他不可能去執行正確的加密並且傳送文件。這個問題在基於引擎的工作流程管 理系統中可以簡單地被解決,因為有工作流程引擎來負責控制流程,而工作流 程引擎總是擁有可以參考所有在工作流程執行中產生的資訊的權利。然而,在 DRA4WfMS 中 , 我 們 沒 有 工 作 流 程 引 擎 去 控 制 流 程 活 動 的 執 行 , 要 在 DRA4WfMS 保護資料的唯一方法就是透過元素式加密法的應用。. ……. Input X. (A). ……. A1. A2 Peter. Input Y. A3. ……. A4. If Func(X)=True. John. OR-split. Tony ……. A5. If Func(X)=False. Mary …… EncryptAmy(X) EncryptJohn(Y). (B). ……. X. EncryptAmy(X). OR-split …… EncryptAmy(X) EncryptMary(Y). 圖二.3. 資料隱藏所導致的問題範例.

(30) 20 AEA. AEA. TFC Server. A1. TFC Server. …. A2 Start. Workflow definition. Digital signature embedded by the workflow designer Execution result of the activity. Digital signature embedded by the workflow participant Time stamp embedded by the timestamp server. 圖二.4. DRA4WfMS 的進階運作模式. 進階運作模式展示在圖二.4,是根據以上所提到的問題而對圖二.1 所做的改 善。因為 AEA 可能無法正確地加密以及傳送文件,DRA4WfMS 文件執行完之 後會先被送到時間戳與流程控制伺服器 (Timestamp and Flow Control server, TFC server) 上。這個伺服器類似一個公證人,並且擁有法律權利來見證流程活 動完成的時間。要注意的是 TFC 伺服器不是一個工作流程引擎,他只負責在 DRA4WfMS 文件中嵌入時間戳,以及協助文件的轉發。因為參與者可能沒有 足夠的資訊在他的執行結果上去運作正確的元素式加密法,所以對 AEA 來說, 也可能沒辦法去建構一個像是先前提到的 X  的文件。TFC 伺服器協助產生 一個正確的 DRA4WfMS 文件,並將其傳給隨後的流程活動。此外為了工作流 程程序的監控,TFC 可以保留從他轉發出去的文件的備份,也可以做文件處理 的紀錄,這樣工作流程程序執行的狀況可以藉由檢驗這些紀錄而得知。在進階 運作模式中,與基礎運作模式同樣有受保護的初始文件,表示為X Def. , Def. 。如果一個流程活動 A 只有一個前任流程活動 A ,.

(31) 21. A 的 AEA 會產生一份中間文件 (intermediate document),表示為 X ,相當 於下列的表示式:. X. = X , R R. R. , R. , Sig X. 代表 A 的執行結果 R. = X , CERit(A ).. 被 TFC 伺服器的公鑰所加密。. 只能被 TFC 伺服器解密。. 我們稱. R. , R. , Sig X. 為 A 的中間特有執. 行結果 (intermediate character execution result),以 CERit(A ) 來表示。 中間文件 X 接收到 X. 會被送到 TFC 伺服器來做後續的處理跟傳送。當 TFC 伺服器. 之後,會先確認數位簽章,之後解密文件以得到 R 。. 最後,TFC 伺服器會準備一個文件像是下面所示: X . X , R. , t, R. , t, Sig X. = X , CERit(A ), CER(A ). 在 TFC 伺服器得到 R 然後產生 R. 之後,會根據 CER(A ) 定義的安全性策略來加密 R ,. 。“t” 代表 TFC 伺服器處理這份文件的時間戳。. 在 DRA4WfMS 中,資料保密性由被元素式加密法加密的初始文件 X. 所. 維 護 。 被 嵌 入 在 CER 中 的 執 行 結 果 必 須 要 被 數 位 簽 章 簽 署 。 在 一 份 DRA4WfMS 文件中若有非法的元素改動,在驗證數位簽章的時候會產生錯誤。.

(32) 22. 因此,我們可以實現資料完整性的需求。一份 DRA4WfMS 文件包含許多 CER。 每個 CER  都有自己的不可否認性範圍 (nonreputiation scope)。一個 CER  的不可否認性範圍包括在  內被數位簽章所鏈結的 CER 的集合。如果一個 CER  有一個不可否認性範圍 ,產生 CER  的參與者不能否認有接收到包 含在  內的 CER 的 DRA4WfMS 文件並且依據這份文件產生了 CER 。.

(33) 第三章 將 DRA4WfMS 應用於雲端運算環境. 圖三.1 展示了如何將第二章中 DRA4WfMS 的進階運作模式應用於雲端環 境 中 。 一 個 使 用 者 連 接 其 中 一 個 入 口 伺 服 器 (portal server) 以 連 接 DRA4WfMS 雲端系統,之後伺服器會檢查這個使用者即將要執行的流程活動。 因為工作流程程序實例以 DRA4WfMS 文件的方式儲存,入口伺服器只會傳送 DRA4WfMS 文件 X ′′ 的複本給參與者。參與者使用 AEA 來執行流程活動, 之後嵌入 CER 而產生 DRA4WfMS 文件 X AEA 傳送帶有執行結果的文件 (X. ,然後送回給入口伺服器。當. ) 到入口伺服器的時候,入口伺服器會做. 驗證以及在文件中嵌入時間戳,之後將 X ′′. 儲存到 DRA4WfMS 文件池. (document pool)。經由檢查文件,DRA4WfMS 雲端系統可以通知之後流程活動 的參與者。. 23.

(34) 24. DRA4WfMS documents pool (3) (6). Portal servers. (1). DRA4WfMS Cloud system. ……. (2). (5). (4). AEA A2. A1. AEA. 圖三.1. 將 DRA4WfMS 應用於雲端運算環境中. 為了開始執行工作流程程序,參與者必須從 DRA4WfMS 雲端系統下載受 保護的初始 DRA4WfMS 文件。受保護的初始 DRA4WfMS 文件可以由使用 者事先上傳至系統中。DRA4WfMS 雲端系統應該提供一個介面讓使用者搜尋 以及管理 DRA4WfMS 文件。AEA 與 DRA4WfMS 雲端系統的其中一個入口 伺服器連接。入口伺服器會驗證使用者的資訊,然後可以進行以下的操作: — 搜尋 DRA4WfMS 文件:使用者可以獲得一個 DRA4WfMS 文件的連結 列表,使用者會是這些流程活動的參與者之一。這與工作流程系統中的待 辦列表 (TO-DO list) 的概念類似。.

(35) 25. — 提 取 DRA4WfMS 文 件 : 根 據 搜 尋 的 結 果 , 使 用 者 可 以 提 取 一 份 DRA4WfMS 的文件複本,然後可以在 AEA 上執行該流程活動。 — 儲存 DRA4WfMS 文件:由 AEA 產生帶有執行結果的 DRA4WfMS 文件 應該被儲存在 DRA4WfMS 的文件池中。 — 通知之後的參與者:在帶有執行結果的 DRA4WfMS 文件被儲存之後,入 口伺服器應該要通知隨後流程活動的參與者。 — 工作流程的監控跟統計分析:使用者可以看到工作流程中流程活動執行的 相關的狀態跟資訊。.

(36) 第四章 利用 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),而一個列. 26.

(37) 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,.

(38) 28. Mary, TA_Agency)” 則代表了在 A_0 這個流程活動中有 John、Mary 以及 TA_Agency 三個參與者。. Attachment is insufficient.. B1 Initial document. Andsplit. A. Andjoin. C. D Accept. B2 Start of workflow. End of workflow. Condition. Activity. Connection edge. TFC Server. 圖四.2. 工作流程範例. Row. DraDoc:XML. tw.edu.ntnu_WF3456_P1029890_Init tw.edu.ntnu_WF3456_P1029890_A_0 tw.edu.ntnu_WF3456_P1029890_B1_0 tw.edu.ntnu_WF3456_P1029890_B2_0 tw.edu.ntnu_WF3456_P1029890_C_0 tw.edu.ntnu_WF3456_P1029890_D_0. A DRA4WfMS document. Activity: NextActivities. Attribute: UpdateTime. A_0 (A_Agency). (Timestamp). A DRA4WfMS. B1_0 (B1_COM1). document. B2_0 (B2_COM2). A DRA4WfMS document A DRA4WfMS document A DRA4WfMS document A DRA4WfMS document t. (Timestamp). C_0 (C_Agency). (Timestamp). C_0 (C_Agency). (Timestamp). D_0 (D_Agency). (Timestamp). End. (Timestamp). 圖四.3. DRA4WfMS 文件池中的片段資料. Row. DraDoc:XML. tw.edu.ntnu_WF3456_P1029890_Init tw.edu.ntnu_WF3456_P1029890_A_0 tw.edu.ntnu_WF3456_P1029890_B1_0. A DRA4WfMS document. Activity: NextActivities. Attribute: UpdateTime. A_0 (A_Agency). (Timestamp). A DRA4WfMS. B1_0 (B1_COM1). document. B2_0 (B2_COM2). A DRA4WfMS document. C_0 (C_Agency). 圖四.4. DRA4WfMS 文件池中的片段資料. (Timestamp) (Timestamp).

(39) 29. 第二節. 流程活動的通知功能. 對於工作流程管理系統來說,支援通知 (notification) 功能是很常見的。當 一個流程活動已經準備好讓某個參與者執行時,系統就會立刻通知他。然而, 在這個資料表裡所包含的資訊,對於入口伺服器來說並不足以讓其去決定是否 應該要通知隨後流程活動的參與者。舉例來說,對照圖四.4 來看,在圖四.2 的 工作流程中的流程活動 “A_0” 以及 “B1_0” 已經執行完成。當流程活動 “B1_0” 執行完成時,系統會新增第三列,然後得知隨後的流程活動跟參與者 分別是 “C_0” 以及 “C_Agency”。然而,因為在流程中,流程活動 “C_0” 前 有個包含流程活動 “B1_0” 及 “B2_0” 的 “AND-join”,“C_Agency” 不應該被 通知開始執行 “C_0”。這個 “AND-join” 表示 ”C_0” 只有在流程活動 “B1_0” 以及 ”B2_0” 都執行完成的時候才能開始執行。我們建議為每個工作流程建構 一個像是圖四.5 的通知表 (notification table),此通知表的內容是基於圖四.2 的 工作流程定義而建立。對照到這個表的第四列,根據 “ID WF3456” 的工作流 程定義,當流程活動 “B1_i” 以及 “B2_i” 都完成之後,流程活動 “C_i” 才能 開始執行。這裡的 i 代表著流程活動的索引。第一列代表 “A_0” 應該在工作流 程程序開始執行時才應該執行,而 “A_i” 要在 “D_i-1” 完成之後才能執行。.

(40) 30. Row. Activity:Notification. tw.edu.ntnu_WF3456_A_i. START (i=0) | Finished[D_(i-1)]. tw.edu.ntnu_WF3456_B1_i tw.edu.ntnu_WF3456_B2_i. Finished[A_(i)] Finished[A_(i)]. tw.edu.ntnu_WF3456_C_i. Finished[B1_(i)] & Finished[B2_(i)]. tw.edu.ntnu_WF3456_D_i. Finished[C_(i)]. 圖四.5. DRA4WfMS 通知表的片段資料. 一般來說,當我們必須要提取跟儲存 DRA4WfMS 文件時,是不需要使用 MapReduce 計算的。當一個參與者接收到包含工作流程定義編號、工作流程程 序編號、流程活動編號以及索引等資訊的通知,並要求他執行一個流程活動時, 參 與 者可以使用這些資訊跟 入口伺服器提出提取的請求,去提取需要的 DRA4WfMS 文件。在流程活動執行結束之後,他可以根據通知內所包含的資 訊來上傳帶有執行結果的 DRA4WfMS 文件到入口伺服器上。 通知的資訊可以透過 E-mail 或者是其他任何種類的通訊系統傳送給參與 者。當參與者收到通知資訊時通常會將其儲存,並且根據其資訊來開始執行流 程活動。然而,通知資訊是有可能會遺失的。直觀的來說,這個問題的其中一 個解決方案就是讓系統維護一份所有參與者的待辦列表。然而,參與者的待辦 列表有可能會隨著其身分的變換而動態地改變。當參與者的通知訊息遺失或是 參與者的身分改變,我們必須搜尋整個 DRA4WfMS 文件池來得知該使用者的 待辦列表。因為我們支援多租戶架構,我們必須提供有效率的方法去搜尋資料.

(41) 31. 表。很幸運地,Hadoop 支援 MapReduce 計算框架來對 HBase 資料表中的行 做平行處理。為了得知參與者的待辦列表,我們在 DRA4WfMS 文件池中使用 MapReduce 計算。每行會被平行處理,“Activity:NextActivities” 的資料單元會 被檢查,以找出該流程活動的隨後流程活動的參與者是否包含某個參與者的編 號。隨後,我們使用 DRA4WfMS 通知表來決定某個流程活動是否準備開始執 行。.

(42) 第五章 在不受信任的雲端基礎建設上建構 DRA4WfMS 儲存在 DRA4WfMS 雲端系統的 DRA4WfMS 文件通常帶有重要的資料。將 重要資料放在雲端儲存通常伴隨著一些安全風險。服務提供者可以洩漏敏感資料、 修改資料或者回傳給使用者不一致的資料。這些問題可能會因為程式臭蟲、當機、 操作錯誤或者是配置錯誤而發生。此外,比起偶然發生的意外,防範惡意的安全 性攻擊更加困難,其比起意外也更具有破壞性。外部的對手可能會非法地訪問雲 端儲存服務提供者營運的伺服器,或者雲端服務提供者的員工可能會從內部攻擊。 即使雲端儲存服務提供者實現了強大的安全性措施,這些安全性的漏洞還是可能 存在的。 沒有任何一個現今的雲端儲存服務在他們的服務層級協議 (Service-Level Agreements, SLAs) 中有提供安全性保證。舉例來說,Amazon S3 [38] 以及 Azure [39] 的服務層級協議只保證可用性:如果可用性低於 99.9%,客戶可以 得到契約上所約定的賠償。元素式加密法以及鏈狀 CER 讓 DRA4WfMS 滿足 身分認證、資料保密性、資料完整性以及不可否認性等安全性要素。即使儲存 工作流程程序實例的伺服器無法被公司所控制,公司也不需要去擔心工作流程 程序的安全性問題。然而,客戶仍然不能確保他們存放在 DRA4WfMS 文件池 中的資料不會遺失。面對這個問題的基本想法是不信任雲端伺服器以及將重要 資料備份 [22, 23, 24, 25]。從市場的角度來看,伺服器提供者們不可能同意用 32.

(43) 33. 一個簡單且標準的方法去存取他們的服務,因為這會帶給客戶完全的自由,讓 他們可以隨意更換服務提供者,導致更多的開放以及與其他提供者的直接競爭。 我們認為,對一個公司來說,他們不情願將他們的工作流程管理系統放在雲端, 除非該公司可以自行遷移及備份他們的工作流程程序實例,而不需要雲端服務 提供者的支援。. 首先,如果一間公司不滿意某個雲端服務提供者所提供的服務,該公司應該 有完全的控制權可以把自己的資料轉換到另一個雲端服務提供者。為了轉換, 公司通常需要遷移正在執行的以及已經完成的工作流程程序實例,因為未完成 的工作流程程序必須要繼續執行,以及已經完成的工作流程程序裡通常包含了 重要的資料。其次,即使服務提供者提供某種的服務層級協議,像是可用性。 顧客可能仍然感覺在任何狀況下,任何工作流程程序實例的遺失,包含未完成 或是已完成的工作流程程序,是不能接受的。由於在圖三.1 中的架構,參與者 可以在流程活動執行期間自己透過 AEA 從一些商業的雲端儲存伺服器中進 行備份以得到完整的 DRA4WfMS 文件。工作流程程序實例的複製很簡單,而 且可以不需要原本的服務提供者協助。因為我們有所有 DRA4WfMS 文件的備 份,我們可以簡單的將其遷移到其他的服務提供者。.

(44) 第六章 實作與實驗結果. 在此章,我們將展示我們的實驗結果。我們根據圖三.1 的模式來實現 DRA4WfMS 文件池以及入口伺服器。DRA4WfMS 文件池以 Hadoop 來實做。 入口伺服器是一個 Apache server,讓可以 AEA 透過 HTTP 協定跟入口伺服器 溝通。我們進行了以下實驗:(1) 在 DRA4WfMS 文件池中進行提取、儲存、 搜尋文件等操作的執行時間。(2) 在入口伺服器處理 DRA4WfMS 文件的執行 時間。(3) 系統的同步處理能力。. 我們建構了兩個 Hadoop 集群來實做 DRA4WfMS 文件池。一個叫做 “ICLAB cluster”,由五台 PC、五個節點組成。每個節點都有 3.0GHz Intel Core 2 Quad processor 的 CPU、2 GB 的記憶體、500 GB 的硬碟空間、Ubuntu 10.04 LTS 的作業系統以及 Java Development Kit 6。另一個叫做 “CSIE cluster”,由 三十六台虛擬機器、三十六個節點組成,這些虛擬機器分佈在三台實體機器上。 每個節點都有 Intel(R) Xeon(R) CPU E5-2620 @ 2.00GHz 的 CPU、1 GB 的記憶 體、18 GB 的硬碟空間、CentOS release 6.3 的作業系統以及 Java Development Kit 6。DRA4WfMS 文件的大小範圍在 7,304 bytes 與 47,591 bytes 之間。我們 進行實驗去評估若 DRA4WfMS 文件池中存放不同數量的文件時,系統的執行 效能為何。. 34.

(45) 35. 首先,我們計算從 DRA4WfMS 文件池中提取一份文件的執行時間。在這 個 狀 況下,參與者已經根據他所收到的通知訊息,而獲得了他要提取的 DRA4WfMS 文件的列名,也就是圖四.1 裡的 “Row”。這就是圖中的步驟 (1) 或 (4)。提供列名,系統直接訪問 DRA4WfMS 文件池而不需要搜尋所有文件 池中的文件。我們設定 DRA4WfMS 文件池中存有的文件數量分別為 10、100、 1000、10000 以及 100000 份文件。根據圖六.1,“ICLAB cluster” 獲得文件需 要花費不到一秒的時間,而 “CSIE cluster” 獲得文件需要花費一秒到三秒的時 間。由此可知,不管 DRA4WfMS 文件池中存有多少數量的文件,系統都可以 在幾乎固定的時間內取得文件。我們可以發現流程活動 C_0 跟 C_1 會花較多 的時間提取文件。這是因為流程活動 C_0 跟 C_1 必須要從 DRA4WfMS 文 件池中提取兩份文件。.

(46) 36. ICLAB cluster CSIE cluster. Time of retrieve a document at  100 documents in the document pool. 3000. 3000. 2500. 2500. Time (ms). Time (ms). Time of retrieve a document at  10 documents in the document pool. 2000 1500 1000. CSIE cluster. 2000 1500 1000 500. 500. 0. 0 A_0 B1_0 B2_0 C_0. D_0 A_1 B1_1 B2_1 C_1. A_0 B1_0 B2_0 C_0. D_1. D_0. A_1 B1_1 B2_1 C_1. D_1. Activity. Activity Time of retrieve a document at  1000 documents in the document pool. ICLAB cluster CSIE cluster. Time of retrieve a document at  10000 documents in the document pool. 3000. 3000. 2500. 2500. Time (ms). Time (ms). ICLAB cluster. 2000 1500 1000. ICLAB cluster CSIE cluster. 2000 1500 1000 500. 500. 0. 0 A_0 B1_0 B2_0 C_0. D_0. A_1 B1_1 B2_1 C_1. Activity. A_0 B1_0 B2_0 C_0. D_1. D_0 A_1 B1_1 B2_1 C_1. D_1. Activity. Time of retrieve a document at  100000 documents in the document pool. ICLAB cluster CSIE cluster. 3000. Time (ms). 2500 2000 1500 1000 500 0 A_0. B1_0 B2_0. C_0. D_0. A_1. B1_1 B2_1. C_1. D_1. Activity. 圖六.1. 文件池中存有不同數量的文件時,提取文件的時間 (詳細數據請參考附錄表 A-1). 實驗的第二部分,我們去量測執行圖三.1 中的步驟 (2) 或 (5) 需要多少時 間。其包含了三個子步驟:(1) 入口伺服器驗證參與者上傳的 DRA4WfMS 文 件 。 (2) 將 時 間 戳 嵌 入 驗 證 過 的 文 件 中 。 (3) 將 擁 有 時 間 戳 的 文 件 存 進 DRA4WfMS 文件池中。根據圖六.2 跟圖六.3,我們分別展示了在 DRA4WfMS.

(47) 37. 文件中驗證數位簽章以及嵌入時間戳的所需時間。事實上,這些操作都在入口 伺服器上執行,與 DRA4WfMS 文件池中的文件數量多寡無關。完成這些操作 需要花費小於 0.5 秒。 Time of verify a document at  10 documents in the document pool. Time of verify a document at  100 documents in the document pool. ICLAB cluster CSIE cluster. 200. 150. 150. Time (ms). Time (ms). 200. 100 50. 100 50. 0. 0 A_0. B1_0 B2_0. C_0. D_0. A_1. B1_1 B2_1. C_1. D_1. A_0 B1_0 B2_0. C_0. Activity. D_0. A_1 B1_1 B2_1. C_1. D_1. Activity. Time of verify a document at  1000 documents in the document pool. ICLAB cluster CSIE cluster. Time of verify a document at  10000 documents in the document pool. 200. ICLAB cluster. 200. Time (ms). 150 100 50. 150 100 50 0. 0 A_0. B1_0 B2_0. C_0. D_0. A_1. B1_1 B2_1. C_1. A_0. D_1. B1_0 B2_0. C_0. D_0. A_1. B1_1 B2_1. Activity. Activity Time of verify a document at  100000 documents in the document pool. ICLAB cluster CSIE cluster. 200 150. Time (ms). Time (ms). ICLAB cluster CSIE cluster. 100 50 0 A_0. B1_0. B2_0. C_0. D_0. A_1. B1_1. B2_1. C_1. D_1. Activity. 圖六.2. 文件池中存有不同數量的文件時,驗證文件的時間 (詳細數據請參考附錄表 A-2). C_1. D_1.

(48) 38 Time of embed timestamp in a document with 100 documents in the document pool. Time of embed timestamp in a document  with 10 documents in the document pool 500. 300 200. ICLAB cluster CSIE cluster. 400. Time (ms). 400. Time (ms). 500. ICLAB cluster CSIE cluster. 300 200 100. 100. 0. 0 A_0. B1_0 B2_0. C_0. D_0. A_1. B1_1 B2_1. C_1. A_0. D_1. B1_0 B2_0. C_0. D_0. Time of embed timestamp in a document  with 1000 documents in the document pool 500. B1_1 B2_1. C_1. D_1. Time of embed timestamp in a document  with 10000 documents in the document pool 500. ICLAB cluster CSIE cluster. 300 200. ICLAB cluster CSIE cluster. 400. Time (ms). 400. Time (ms). A_1. Activity. Activity. 300 200 100. 100. 0. 0 A_0. B1_0 B2_0. C_0. D_0. A_1. B1_1 B2_1. C_1. A_0. D_1. B1_0 B2_0. C_0. D_0. A_1. B1_1 B2_1. C_1. D_1. Activity. Activity Time of embed timestamp in a document  with 100000 documents in the document pool 500. ICLAB cluster CSIE cluster. Time (ms). 400 300 200 100 0 A_0. B1_0. B2_0. C_0. D_0. A_1. B1_1. B2_1. C_1. D_1. Activity. 圖六.3. 文件池中存有不同數量的文件時,在文件中嵌入時間戳的時間 (詳細數據請參考附錄表 A-3). 在入口伺服器處理完 AEA 上傳到入口伺服器的文件之後,入口伺服器應 該要將文件儲存到 DRA4WfMS 文件池中。根據圖六.4,我們可以觀察到隨著 不同文件數量而成長的儲存時間。在 DRA4WfMS 文件池中提取以及儲存文件 的時間非常相似,並且也與文件池中所存有的文件數量無關。.

(49) 39 Time of store a document at  100 documents in the document pool. ICLAB cluster CSIE cluster. 2500. 2500. 2000. 2000. Time (ms). Time (ms). Time of store a document at  10 documents in the document pool. 1500 1000 500. 1500 1000 500 0. 0 A_0 B1_0 B2_0 C_0. D_0. A_1 B1_1 B2_1 C_1. Activity. Time of store a document at  1000 documents in the document pool. A_0 B1_0 B2_0. D_1. ICLAB cluster CSIE cluster. 2500. 2500. 2000. 2000. 1500 1000 500. C_0. D_0. A_1 B1_1 B2_1. Activity. Time of store a document at  10000 documents in the document pool. Time (ms). Time (ms). ICLAB cluster CSIE cluster. 0. C_1. D_1. ICLAB cluster CSIE cluster. 1500 1000 500 0. A_0 B1_0 B2_0 C_0. D_0. A_1 B1_1 B2_1 C_1. D_1. A_0 B1_0 B2_0 C_0. Activity. D_0. A_1 B1_1 B2_1 C_1. D_1. Activity. Time of store a document at  100000 documents in the document pool. ICLAB cluster CSIE cluster. 2500. Time (ms). 2000 1500 1000 500 0 A_0. B1_0 B2_0. C_0. D_0. A_1. B1_1 B2_1. C_1. D_1. Activity. 圖六.4. 文件池中存有不同數量的文件時,存入文件的時間 (詳細數據請參考附錄表 A-4). 在實驗的第三部分,我們測量在 DRA4WfMS 文件池中搜尋所有文件所需 要的時間。在這個狀況下,參與者想要在文件池中搜尋是否有任何文件是自己 身為其隨後參與者的。雖然當某份文件應該要被該使用者處理時,使用者應該 會收到通知資訊,但那些資訊有可能會遺失。入口伺服器可以在其文件池中根 據資料表中的 “Activity:NextActivities” 行來進行搜尋。我們實做了兩種不同的 搜尋方法。第一個方法,我們稱為 “Direct Scan”,資料表中的每列會依序地被.

(50) 40. 掃瞄,以找出符合條件的文件。第二個方法,我們稱為 “MR Search”,我們利 用 Hadoop 中的 MapReduce 計算框架在資料表的每列做平行搜尋。我們測量 兩種方法在不同文件數量時的成長。根據圖六.5,因為 MapReduce 計算本身 有其基本系統開銷(像是要佈署 mapper 跟 reducer 的程式到 Hadoop 集群的 節點上) ,我們可以看到當文件池內的文件數量大於 10000 的時候,“MR Search” 是優於 “Direct Scan” 的。一個完整的工作流程管理系統通常要支援能監控執 行中與已完成的工作流程程序實例以及收集這些程序實例的統計資料的功能。 這些功能通常需要搜尋所有的工作流程程序實例。所以,一個擁有大量工作流 程程序實例的多租戶工作流程管理系統應該提供可以平行搜尋工作流程程序實 例的能力。. MR Search Direct Scan. 1500. Time of search a document @ CSIE cluster 1500 Time (s). Time (s). Time of search a document @ ICLAB cluster 2000. 1000 500 0 10. 100 1000 10000 100000 No. documents. MR Search Direct Scan. 1000 500 0 10. 100 1000 10000 100000 No. documents. 圖六.5. 文件池中存有不同數量的文件時,搜尋文件的時間 (詳細數據請參考附錄表 A-5). 最後,我們進行實驗以計算當大量參與者進行操作時,系統的同步處理能 力。當參與者想要執行他的工作時,他需要與其中一個入口伺服器連接。然而,.

(51) 41. 我們只有一個 DRA4WfMS 文件池,所有的工作流程程序實例都會儲存在 bigtable 中,以提供跨企業以及多租戶的需求。因此,DRA4WfMS 文件池可 能必須去處理參與者的同步操作。我們測量當不同數量的參與者同時存取以及 在文件池中存有不同數量的文件時系統的反應時間。這個實驗在 “ICLAB cluster” 上進行,此集群中只有一個入口伺服器。我們的 AEA、入口伺服器以 及 DRA4WfMS 文件池位於同一個網段內。與之前的實驗類似,我們在文件池 中設置了不同數量的文件:10、100、1000、10000 以及 100000 份文件。根據 表六-1,在所有情況下,當只有一個參與者時,單一操作(隨機讀取或寫入) 的反應時間都小於 350ms。最差的狀況是有 1000 個參與者同時存取存有 10000 份工作流程程序實例的 DRA4WfMS 文件池,最短時間、平均時間以及 最長時間分別為 919 ms、11413 ms 以及 21907 ms。但就算是最差的狀況,系 統依然可以讓一個參與者在平均 11 秒內就可以完成他的工作。若我們能夠取得 規格更好的機器,則一定可以呈現出更好的實驗數據。由以上的實驗結果可以 顯示出本系統的可行性,在文件數量龐大的時候,本系統依然可以正常運作, 而在大量用戶同時存取的時候,本系統也能夠快速地處理所有請求。.

(52) 42. 表六-1. 文件池中存有不同數量的文件時,同步處理的回應時間 (A) 10 documents in the DRAWfMS documents pool  1 10. : Number of concurrent participants Maximal (ms) Average (ms) Minimal (ms) 310 310 310 512 580 546.  1 10 100. (B) 100 documents in the DRAWfMS documents pool Maximal (ms) Average (ms) Minimal (ms) 271 271 271 487 543 515 778 2673 1725.5.  1 10 100 1000. (C) 1000 documents in the DRAWfMS documents pool Maximal (ms) Average (ms) Minimal (ms) 300 300 300 503 579 541 733 2657 7695 863 21369 11116. (D) 10000 documents in the DRAWfMS documents pool  Minimal (ms) Maximal (ms) Average (ms) 1 298 298 298 10 499 532 515.5 100 720 2717 1718.5 1000 919 21907 11413 (E) 100000 documents in the DRAWfMS documents pool Maximal (ms) Average (ms)  Minimal (ms) 1 306 306 306 10 474 551 512.5 100 759 2767 1763 1000 840 21452 11146.

(53) 第七章 相關文獻探討. 各大 IT 廠商開始在雲端環境提供 BPM (Business Process Management) 服 務,像是 RunMyProcess [4]、Visual Workflow [5]、Aneka [6]、Azure Services Platform [7] 以及 Google App Engine [8]。一般來說,他們是平台即服務 (Platform as a Service ,PaaS) 的系統,他們的平台支援基於工作流程管理系統的 函式庫,讓客戶可以建造自己的工作流程管理系統。舉例來說,Aneka container 是一個中介軟體的組件以及執行雲端應用程式的運行環境 [6]。Aneka cloud 的 構造 (fabric) 層可以包含私有雲的物理資源以及像是 Amazon、IBM 或是 Microsoft 等公有雲的虛擬資源。基於引擎的工作流程管理系統被安裝在 Aneka container 中。Frece 等人總結了超過十四個基於引擎的工作流程管理系 統的雲端要素 [40],包含了資料獨立性、效能獨立性以及是否有雲端管理的可 用工具等。他們認為,隨著當前 BPMS (Business Process Management Suite) 的 實現,特定的組織無法完全地遷移到雲端上,因為他們不能遵守所有關於資料 隱私的法律規定。一般來說,這些工作流程管理系統會佈署在供應商的伺服器 上,這些伺服器會由供應商事先安裝在一些虛擬機器中。多租戶技術能夠透過 以許多虛擬機器來共享一個實體機器的方式來獲得。客戶必須信任供應商的伺 服器。因為工作流程程序實例的格式或形式沒有被公開,因此在不同的供應商 之間執行客戶端的工作流程程序實例遷移及備份似乎是不可能的。並且,他們 43.

(54) 44. 全部都是基於引擎的工作流程管理系統。 最近,許多研究者試圖去提出一個新興的基於雲端的工作流程管理系統架 構。Pathirage 等人提出了一個 BPEL (Business Process Execution Language) 的 多租戶架構 [16]。他們激發了多租戶工作流程管理系統的重要性。他們使用 Apache ODE [41] 作為 BPEL 的執行環境。他們所提出的多租戶架構是利用 WSO2 Carbon 對於多租戶技術的支援來實做 [42]。WSO2 Carbon 平台提供使 用者一個註冊表 (registry) 來儲存他們的資料。註冊表是一個可支援多租戶技 術 (multi-tenant aware) 的結構,其透過在資源表中加入一個租戶列 (tenant column) 以及經由在執行時重寫 (rewriting) 查詢語句驗證及過濾查詢的結果 以提供跨租戶的資料獨立性。Anstett 等人解決了在雲端環境中執行 BPEL 程序 的相關議題 [43]。他們的結論是,一個 BPEL 引擎若有支援多租戶的需求, 會伴隨著傳送模式的複雜化。當處於組織內運作 (on-premise) 以及 IaaS 模式 時,可以使用底層作業系統的機制,處於 PaaS 與 SaaS 模式時,在運作模式 上,甚至是程序實例層級上都需要多租戶技術。Han 等人認為會發生企業不樂 意將他們的敏感資料放在雲端上的狀況,因為他們害怕當他們為了進行處理而 發布資訊到雲端時,他們會失去他們對於資料的控制權。他們也提出了一個基 於雲端的 BPM 架構,將非計算密集的流程活動以及敏感資料儲存在使用者端 的引擎內 [44]。Muthusamy 與 Jacobsen 解決了雲端工作流程系統的可擴展性 議題 [45]。在他們的架構中,集中式引擎可以被備份,工作流程程序實例在副.

參考文獻

相關文件

藝文及運動服務業、休閒服務業工作、製造業工作、批發業及其

(A)因為用 Terminal Services 可以不用安裝 ERP 的程式在 Client 端上可以減少 MIS 維護系 統的時間(B)沒有防毒軟體 (C)建置防火牆的系統 (D) APP-Server 與 DB

最後特別提出說明,本研究用戶端作業系統為 Win 2000 Professional,伺服 器端作業系統為 Windows 2000 Server 並啟動 Active Directory

4、設施工程類:污水處理廠、礫 間處理設施、焚化廠、環境工 程設備設施組裝系統、電業設

建議多協助學生進 行運用工具實作的 機會,亦可嘗試將 部分概念以圖像化 (如流程圖、太陽 圖等)的形式呈現

(A)憑證被廣播到所有廣域網路的路由器中(B)未採用 Frame Relay 將無法建立 WAN

‡ Verio 提供網站代管公司完整的軟體、運算 與網路資源,也提供網路零售業者開發電子 商務及網站代管的服務 V i 也提供小型 商務及網站代管的服務。

Google Drive 雲端硬碟..