服務組合中人員的參與是面向服務的體系結構(Service-Oriented Architecture,SOA)的一個相對較新的方面,對軟件建模業務中人員如何工作和交互的方式進行了擴展。本文描述了 IBM WebSphere® Process Server 的 Human Task Manager 提供的功能及其在門戶中的使用。
面向服務的體系結構的用戶界面
業務流程的完全自動化雖然非常不錯,但在實際中卻是不可能實現的,因為有些活動要求相關人員做出判斷,或要借助人員的專業知識(例如手動處理異常情況或審批請求等),這些活動將始終由人進行。在整個業務流程中,和任何其他任務一樣,人工任務是一項服務,不過是通過人員活動(而不是程序)實現的,由相關人員(而不是計算機)執行。
因此,在SOA 編程模型中,人員活動可以作為 Web 服務實現。該服務被調用時,將通知承擔任務的個人進行相關工作,并將輸入數據以恰當的形式傳遞給此人。任務完成后,將產生相應的結果,服務會返回到其調用方,并將此結果作為輸出數據傳遞給調用方。該結果實際由相關人員得出這一事實可能對調用方完全透明。該場景采用異步調用來支持運行時間長的服務,遠程過程調用(remote procedure call,RPC)樣式的同步調用并不適合處理人工任務(或任何其他運行時間長的服務)。
將人工任務作為 Web 服務呈現還具有另一個優勢,可以將人工實現替換為自動化步驟或自動與人工步驟的組合,而不必對業務流程剩下的部分進行重新編碼。這并不是說工作人員將由軟件替代或將來的計算機將會把人類當作奴隸!我只是要說明,將由人實現的活動建模為 Web 服務是一個合理的設計選擇,因為其他替代方法(在業務流程編排中執行幾個步驟后在需要借助人員的專業知識時直接停止,然后稍后再次重新啟動流程編排,而兩個斷開的編排序列之間不存在任何邏輯連接)有很多明顯的效率低下之處。
為了說明這一點,讓我們以一個保險索賠處理流程為例。必須在流程中的某個位置審批索賠請求,才能向索賠人支付賠償。其基本形式是這樣,工作人員接收索賠信息,并確定是批準該索賠,還是拒絕或提交給理算人。在不改變總體業務流程流的前提下,可以使用服務替代該步驟,在此服務中,使用業務規則自動化例行的審批工作,而同時將較為困難的情況提交給相關人員決定。相關的專家現在不再受例行的煩瑣事務困擾,可以將其特定的技能用于處理復雜案例上。這個變化同時改進了業務流程的結果和工作人員的工作滿意度。
但將人工任務透明封裝為 Web 服務并非總是適當的選擇??紤]一下更為復雜的流程的情況,即需要兩個人審批一個請求的情況(稱為四眼原則或職責劃分)。此類任務需要顯式地表示為人工任務,而不是透明的 Web 服務,因為用于選擇第二個審批人的規則必須將第一個審批人排除掉。
針對 Business Process Execution Language for Web services 的 BPEL4People 擴展提供了通過嵌入人工任務擴展業務流程所需的擴展功能。它可處理將手動任務呈現為不透明的獨立 Web 服務的場景(可從 BPEL 流程或采用 Java™ 編寫的程序等調用該服務)。
下面的部分將介紹人工任務的編程模型。
![]() ![]() |
![]()
|
人工任務
人工任務組件類型實現在業務流程和任意服務編排中涉及到相關人員的人工任務。人工任務在 Human Task Manager 內運行,后者是 WebSphere Process Server 內的人工任務的一個特殊容器。
為了支持此使用場景,人工任務具有僅一個操作的簡單接口。該操作具有一個輸出消息、一個輸出消息,以及零個或多個錯誤消息。例如,圖 1 中顯示了審批任務的接口。
也可以將該任務的顯示名、描述和文檔指定為屬性。display name 是任務的可供人閱讀的名稱,業務人員可以理解此名稱,用于表示任務列表上的任務。例如,審批任務可以命名為 Credit Approval。description 簡單總結任務的目的以及如何進行處理——例如,批準或拒絕記入貸方的請求。documentation 屬性提供更為詳細的信息。每個屬性——display name、description 和 documentation——均可采用多種語言呈現,以支持來自多個國家的員工。
任務還對哪些人允許進行哪些操作具有訪問控制。從業務的角度來看,務必確保只有正確的人員能夠執行審批。例如,如果在一個公司中,所有審批人員都屬于公司的 people 目錄中的 approvers 組,則審批任務的潛在所有者的人員定義可以為以下所示:
(注:只有在開發人員或業務流程分析人員首次定義人工任務時才會看到此屏幕,隨后執行這些任務的個人無法看到此屏幕。)
可以針對任務為人員定義若干角色。潛在的 owners,可以處理此任務的合格用戶。一個或多個 administrators,負責任務管理。另一組人員——除了所有者和管理員之外——可以具有讀取或編輯任務數據的權限。最后,還可以指定那些授權創建任務實例的人員。
在運行時,任務的人員設置將用于通過各種方式從公司的 people 目錄檢索匹配的用戶集,例如,通過發出輕量級目錄訪問協議(Lightweight Directory Aclearcase/" target="_blank" >ccess Protocol,LDAP)查詢或向 WebSphere 用戶注冊表發送請求。
針對客戶的服務水平協議(Service Level Agreement,SLA)可能要求業務流程中的各個階段滿足時間要求。如果人工任務完成得太慢,而無法滿足 SLA,Human Task Manager 可以發送升級通知。每個任務都具有自己的升級設置。圖 3 顯示了審批任務的升級設置。
可以為不同的任務狀態定義升級(與計時器類似)。在達到指定持續時間之前,升級(在任務達到給定狀態時啟動)不會進行任何操作。如果任務按照預期的方式進行,會將升級作為多余的內容取消。如果沒有進展,升級將觸發之前定義的一個操作,例如,向一個或多個指定的升級接收者發送電子郵件。
在圖 3 的示例中,當任務就緒(即啟動后)就會計劃在將來某種情況下調用升級。在特定時間后,如果沒有潛在所有者接收任務,將觸發升級,通過電子郵件告知潛在所有者有工作等待其處理。
在一個所有者接收了審批任務后,一系列升級將被激活。如果一個已接收的任務無法及時完成,升級鏈將向管理鏈發送通知。這就讓業務管理員有機會將此任務重新分配給其他人。
人工任務會在用戶的個人工作列表中列出。用戶只能看到其應該看到的任務,這是使用人員設置指定的(在前面進行了說明)。在具有很多用戶和很多并發任務的大型應用程序中,用戶需要能夠根據相關標準對其任務列表進行排列。任務列表可以按照名稱、優先級(僅查看具有特定優先級的任務,或首先顯示高優先級任務)和業務相關性進行排序。為了方便排序和篩選,業務還可以定義任務類型和任意自定義屬性(名稱-值對)。
門戶被廣泛用于將人們連接到現代企業中的 IT 系統。員工與門戶用戶界面(User Interface,UI)進行交互,從而完成其工作,與同事協作,以及與客戶、合作伙伴和供應商交互。通過將人工任務與門戶 UI 結合使用,提供了一種有效的方式在業務流程中實現人員參與。
在集成門戶環境中,既可以訪問任務列表(請參閱圖 4),也可以處理各項任務。對于每個任務,都有一個門戶管理員定義的任務頁。用戶可以直接在任務列表中單擊任務導航到這些頁面。
僅在用戶通過將給定任務的鏈接傳遞給 Portlet 處理該任務時(已接收),門戶才會啟動關聯的任務頁。它將提供引用 Portlet 的任務頁。而 Portlet 將顯示用于導航的鏈接,并使用引用來為用戶檢索任務相關的信息,并將結果返回給人工任務。
用戶可以啟動相同或不同類型的不同任務的多個任務頁。當用戶完成任務時,任務頁將關閉,并從用戶的導航窗格中自動消失。用戶可以根據需要關閉并重新啟動任務頁。當用戶會話結束時,將關閉所有任務頁。
處理任務的用戶還可以使用門戶所提供的一組協作功能,如即時通信、用戶配置文件等。例如,為了有助于進行協作,Human Task Manager 可以列出處理相關任務的其他同事。圖 6 顯示了說明這些功能 UI。
任務頁通常使用幾種類型的 Portlet 進行填充。任務處理 Portlet 將用戶連接到任務;它們接收任務輸入信息并顯示給用戶,然后將用戶輸入的數據作為任務輸出消息交付出去。任務處理 Portlet(請參見圖 7)可以從任務接口規范(如前面圖 1 中的接口示例)自動生成。
支持 Portlet 幫助用戶收集完成任務所需的信息。它們通常不與任務直接交互,而使用協作 Portlet 功能來與其他 Portlet 交互(如任務頁上的任務處理 Portlet)。
![]() ![]() |
![]()
|
結束語
基于人工的 Web 服務提供了將人員作為服務實現透明地包含在任意面向服務的應用程序中的功能。WebSphere Process Server 中引入的人工任務可為基于人工的 Web 服務提供基礎設施。這些任務以典型的人工工作流系統提供的功能為基礎,其功能經過了擴展,包含了成熟的升級和通知功能,以及為人工任務指定基于 WebSphere Portal 的用戶界面的功能。有關如何使用 WebSphere Portal 為 SOA 應用程序提供用戶界面的信息,請參閱本系列的第 5 部分“面向服務的用戶界面”(developerWorks,2005 年 8 月)。
人工任務概念已經得到了行業認可,其標準化工作正在進行之中。IBM 和 SAP 共同發表的白皮書(請參閱參考資料,以獲得相關網頁的鏈接)中提出了人工任務標準化的未來方向。該白皮書中描述了即將推出的 WS-BPEL 標準的一個擴展(請參閱參考資料),該擴展將人工任務包含在內,以讓相關人員參與到業務流程中。
本文討論的重點在于將人工任務作為業務流程和面向服務的應用程序中基于人工的服務實現的方法。不過,存在本文討論的內容之外的更側重于以客戶為中心的使用場景,其中相關人員使用應用程序與基于人工服務和自動化服務進行交互。例如,相關人員會使用任務列表來創建和管理自動化服務或基于人工的服務。“面向服務的用戶界面”一文詳細說明了本文未涉及的其他場景。