• 沒有找到結果。

第一章 簡介

第一節 問題描述

第一章 簡介

第一節 問題描述

工作流程管理系統 (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)

所維護的雲端環境執行。雲端運算環境的計算規模可以依照任何大小的需求隨

Workflow engine 2

Workflow engine 3 Workflow

engine 1

Start of

workflow End of workflow Activity Flow control

edge Participant 引擎架設在雲端基礎設施上。以此做法實作的例子包含 RunMyProcess [4]、Visual Workflow [5]、Aneka [6]、Azure Services Platform [7] 以及 Google App Engine [8]。

3

以下我們將會為集中式 (centralized) 的工作流程管理系統以及基於引擎的分散 式 (engine-based distributed) 工作流程管理系統做一個簡單的概述。我們把幾種 將工作流程管理系統佈署到雲端環境中會發生的安全性的問題展示出來。

集中式的工作流程管理系統在單一工作流程引擎上執行工作流程程序,通常 為單一組織在單一地點執行(見圖一.1A)。工作流程程序會被單一個工作流程引 擎執行,接著會聯絡所有此流程活動的參與者開始工作。為了適應商業環境的快 速轉變,以及電子商務 (e-business) 應用的高度負荷,工作流程系統應該要能夠 具有可擴展性以及提供必要的彈性,以應付系統負載的高峰期以及分散式的環 境。

基於引擎的分散式工作流程管理系統的運作模式如圖一.1B [9–12]。在此工作 流程程序中有六個流程活動 (A1–A6),分別由在不同地點的三個工作流程引擎所 佈署執行。建立多個工作流程引擎能夠做到:(1) 在使用者增加的時候能將負載 平衡分散在不同的工作流程引擎上。(2) 減少在流程活動中的參與者以及工作流 程引擎之間的溝通時間。因為就網路傳輸的層面來看,分散式的設計讓工作流程 引擎較為接近用戶。

基 於 引 擎 的 分 散 式 工 作 流 程 管 理 系 統 可 以 被 用 來 建 構 跨 企 業 (cross-enterprise) 的工作流程管理系統,如此就可以執行跨企業的工作流程程序。

在跨企業工作流程程序的流程活動中的參與者可以屬於不同企業或組織。為了認 證的需求,這些參與者通常會在他們自己的企業或組織內與工作流程引擎連線。

在基於引擎的分散式工作流程管理系統中,儲存工作流程的狀態是工作流程引擎 不可或缺的一種功能。但因為工作流程引擎在物理空間上是分開的,流程活動之 間無法直接分享這些資訊,所以很明顯地,工作流程程序實例必須在執行的時候

結果的工作流程程序實例到工作流程引擎 2 跟 3。此外,每個在分散式工作流程 管理系統中的工作流程引擎也有可能是執行在不同規格的機器上。因此,在這種 環境下,工作流程管理系統必須要支援能夠在不同類型的工作流程引擎之間交換 工作流程實例。

圖一.1B 所展示的運作模式潛藏有嚴重的安全問題,因為工作流程程序實例 會在公共網路上被傳送。因此,流程活動的執行結果有可能會被盜取,或是惡意 的使用者可能會在工作流程程序實例傳送到下一個工作流程引擎之前將其攔截 然後修改,再將其修改後的資料送到下一個工作流程引擎。雖然以上兩個問題可 以用一些確保電子交易安全性的常見手法解決,像是SSL (Secure Sockets Layer) 協定,但這些手法沒辦法確保不可否認性 (nonrepudiation) 的需求。也就是說,

系統很難去防止一個參與者否認他在一個流程活動裡所做過的事情。在這個運作 模式下,參與者為了執行一個流程活動而連結到工作流程引擎,在工作流程引擎 以及參與者之間的溝通很像是傳統 Client/Server 的計算模式,由於參與者通常都 是透過固定的網域連接工作流程引擎,因此工作流程引擎可以很快地發現這個問 題。

由於資料保密性的需求,工作流程引擎只會讓現在要執行流程活動的參與者 看到工作流程程序實例的部分資料(像是表格、文字、圖片或檔案),然後再讓 參與者上傳執行結果(可能是ㄧ些文字或檔案)到工作流程引擎上。工作流程引 擎會將這些執行結果作為工作流程程序實例的一部分,並將其儲存在資料庫或者 是其他的儲存裝置中。在流程活動執行完之後,參與者可能會聲稱先前儲存的執 行結果可能已遭修改,或是工作流程引擎在執行流程活動的過程中所顯示給他看

5

的資料的格式不一致,抑或是這些資料已經被非法地修改了。基於以上理由,使 用者可能會否認他先前的執行。這是因為在工作流程管理系統的管理領域中有超 級使用者 (superuser) 的存在。舉例來說,一個關聯性資料庫 (relational database) 的管理者有權限去更新資料庫裡的資料跟紀錄。

在基於引擎的工作流程系統(不管是集中式或是分散式)運作模式中,有 一個特點是工作流程引擎必須被管理者所管理,因為工作流程程序實例通常會 存在引擎中或是靠近他們的資料庫伺服器中 [4-8]。用戶透過網路與這些被管理 的工作流程引擎連接溝通,以參與工作流程管理系統中流程活動的執行。工作 流程程序實例的安全性是被伺服器所保證而不是實例本身。在跨企業的工作流 程系統中,工作流程引擎可能會被分散式網路環境中的不同企業或組織所管理。

如果這個安全機制被打破(例如在此架構中的任何一個伺服器被駭客攻破),則 在其中的工作流程程序實例都可能可以被訪問或是被存取。因此,整體的安全 性是不夠的。隨之而來的問題就是如何在跨企業(或者跨組織)工作流程系統 的工作流程引擎上去設計一個信任模型 (trust model) 。

多租戶 (Multitenancy) 技術指的是一種軟體架構,其可以讓在伺服器上的 一個軟體實例服務多個租戶 (tenants),也就是客戶端的組織 [15]。共享的基礎 建設改變了企業應用的經濟模式,讓供應商只需維護一個應用程式實例就可以 服務成千上萬的客戶。在多租戶的雲端環境中,許多供應商使用相同的基礎建 設,也可以存取以及分享相同的計算資源。多租戶架構讓經濟模式具有隨用即

付 (pay-as-you-go) 服務的性質 [16]。有許多不同的方法可以實做多租戶技術,

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

文件的雲端協作 (Cloud collaboration) 是一個新興的方法,透過雲端共享 及共同創作文件,也就是被傳上雲端的文件或是物件可以被其他人存取,例如 像是Google document 以及 Google Calendar [19, 20]。雲端協作技術讓使用者

7

可以在雲中上傳以及編輯文件或物件。在過去的幾年裡,越來越多企業開始使 用雲端協作。雲端協作也為雲端運算跟協同工作帶來新的進展,使其在一個日 益全球化的世界中變得越來越需要。協作是指在同一家公司的員工可以同時一 起做一件特定的工作。藉由雲端協作,使用者不需要在同個地點,或者在同個 城市,也可以有效率地朝著一個共同的目標一起努力。在全球化社會的當今,

對於一個組織來說,擁有有效合作的能力是很重要的發展方向,雲端協作工具

對於一個組織來說,擁有有效合作的能力是很重要的發展方向,雲端協作工具