工作流程和 SharePoint 產品及技術的技術基礎
瞭解 Microsoft 對人力工作流程的支援,需要對構成此支援的兩項基礎技術有基本的理解:Windows Workflow Foundation 及 Windows SharePoint Services。本節會予以分別簡短描述。
Windows Workflow Foundation
軟體實作某些種類的程序時,依定義的順序一一執行多個步驟是很平常的。既然已知經常使用這個方法,為何不提供明確的支援以建立這類應用程式?Windows Workflow Foundation 的目標即是分毫不差地執行此項作業。以 Workflow Foundation 建置的應用程式係由一或多個工作流程構成,每個工作流程各含數項活動。Workflow Foundation 的執行階段引擎一次執行一項工作流程的活動,執行順序係由工作流程自行決定。透過直接支援程序導向的應用程式,Workflow Foundation 可使這些應用程式更易於建立及維護。
下圖顯示 Workflow Foundation 的主要元件。從活動建置的工作流程,使用執行階段引擎執行。此執行作業取決於一組由 Workflow Foundation 提供的執行階段服務,其可允許保持工作流程的狀態及追蹤其執行狀況等。這些作業全部都在某部主機內執行,其可以是從簡易桌面應用程式到可擴展伺服器的任何 Windows 處理序。為符合不同主機及不同應用程式類型強行加諸的不同需求,如有需要可取代 Workflow Foundation 執行階段服務。
如圖所示,您可使用 Workflow Foundation 的工作流程設計工具建立工作流程。此工具在 Visual Studio 2005 內執行,提供圖形化的環境讓您將活動組織成工作流程。活動僅是類別,所以您也可以完全使用程式碼建立工作流程,如此即不需要圖形化工具。雖然工作流程可以使用開發人員選擇的任何活動,但 Workflow Foundation 仍提供基底活動庫 (Base Activity Library,BAL)。BAL 包含數項基礎活動,包括:
IfElse:執行包含在兩個或以上可能路徑中的活動,以符合條件者為準。
While:只要符合條件即重複執行一或多項活動。
Sequence:依定義的順序一次執行一組活動。
Parallel:同時執行兩組或更多組的活動。
Code:執行已定義的程式碼區塊。
Listen:等候事件集合中的其中一件,再於接收到該事件時執行一或多項活動。
InvokeWebService:呼收 Web 服務。
Policy:允許定義及執行使用 Workflow Foundation 提供之規則引擎的商務規則。
Workflow Foundation 提供兩種內建工作流程類型:
循序工作流程,依定義的順序執行活動。循序工作流程可包含 IfElse、While 及任何其他活動。
狀態機器工作流程,實作傳統的有限狀態機器。此類型的工作流程也可包含 IfElse、While 及其他活動,但依賴其他活動,例如 State 代表狀態及轉換。
您必須瞭解 Workflow Foundation 本身並非完備的工作流程應用程式。而是提供基礎讓開發人員建立工作流程型的軟體。因為所有 Windows 處理序皆可架設 Workflow Foundation,所以它可結合其他技術提供工作流程服務。Windows SharePoint Services 3.0 正是執行此項作業,所以瞭解 Microsoft 對人力工作流程支援的下一個步驟,是瞭解此技術的基本概念。
Windows SharePoint Services
共用資訊是現代生活的基本部分。無論在工作中、作為志工組織之一部分或是以某些其他方式,我們經常必須與其他人共用文件及其他資訊。Windows SharePoint Services 是 Windows Server 2003 的標準組件,使得此共用更為容易。
如下圖所示,Windows SharePoint Services 使用者可建立網站,其各自可包含文件庫及清單。每個網站包括文件及清單項目在內的資訊,都是儲存在 SQL Server 中。使用網際網路資訊服務 (IIS),人們可透過 Microsoft Office 應用程式或網頁瀏覽器 (例如 Internet Explorer) 與網站互動。使用者亦可使用網頁組件自訂瀏覽器介面,讓每位使用者建立適用個人的介面。
Windows SharePoint Services 版本 3.0 也新增對內容類型的支援。內容類型提供定義文件或清單項目的結構描述。根據預設,指定文件庫的每份文件都有相同的結構描述,如同特定清單的每個項目一樣。將內容類型附加至文件或清單項目,可讓您指定該文件或項目的結構描述,不受所屬文件庫或清單之其他元素的影響。原則亦可附加至內容類型,指定文件應保留期間等事項。這些原則隨後可套用至該原則所附加之任何文件或項目。
執行 Windows SharePoint Services 的多部機器有可能存取單一 SQL Server 資料庫或一組資料庫 (網站跨資料庫分割)。這可增進延展性,允許大量使用者存取相同的網站。還有一點很重要,雖然它們在邏輯上是分開的,對使用者而言也是不同的,但其實文件與項目的本質卻十分相似:兩者皆只是 SQL Server 表格中的項目。不過,差異還是存在的,例如,文件可以存回及取出,項目卻不能;但兩者間最大的區別在於使用者如何看待它們,而不是如何實作它們。
Windows SharePoint Services 也仰賴其他標準 Windows 技術。例如,它可使用 Active Directory 識別使用者及其使用者介面 (包括網頁組件) 是否建置在 ASP.NET 上。因為它既是標準 Windows 組件,又能處理共通的問題,所以 Windows SharePoint Services 已成為非常普遍的技術。很多組織都使用它共用許多不同種類的資訊。但在 Windows SharePoint Services 3.0 之前,並無建立工作流程的內建支援。後文會說明 3.0 版如何使其成為可能。
下載本書
本主題隨附於下列可下載的叢書中,以便於閱讀與列印:
請參閱 Office SharePoint Server 2007 可下載的內容 (英文) 上提供的完整叢書清單。