基於事件的 SOA 治理解決方案

isoa發表於2010-02-01

轉自:http://www.ibm.com/developerworks/cn/webservices/ws-eventbasedsoagovernance/index.html

隨著更多 SOA 解決方案得到部署,對自動化的、事件驅動的 SOA 治理解決方案的需求也在增加。本文介紹了可基於治理事件自動處理治理流程的解決方案。

簡介

隨著越來越多的 SOA 解決方案得到部署,對自動化的、事件驅動的 SOA 治理模型和解決方案的需求也在增加。當前,IBM 已開發了一種 SOA 治理方法 —— SOA Governance and Management Method (SGMM),和數種與 SOA 治理相關的產品,例如 WebSphere Service Registry and Repository (WSRR) 和 Rational Method Composer (RMC)。然而,在客戶專案中,仍然存在一些問題:

  • 如何基於治理事件自動處理治理流程?
  • 是否存在基於行業的治理解決方案?

為解決這些問題,我們開發了基於保險業的 SOA 治理解決方案。此解決方案包含 IBM WebSphere Service Registry and Repository,和一種新近採用的業務事件處理產品 WebSphere Business Event (WBE)。本文將詳細介紹此解決方案。

解決方案架構

在一些專案中,客戶需要監控服務生命週期,並需要一種方法以根據事件而觸發服務生命週期變更。這些事件可以是業務事件(如新經營戰略公告)或 IT 時間(例如其他獨立服務的生命週期變更)。圖 1 描述瞭解決方案架構。


圖 1. 解決方案架構
解決方案架構

WebSphere Service Registry and Repository

WebSphere Service Registry and Repository (WSRR) 是面向服務描述的主後設資料儲存庫。其概念有二:登錄檔 (Registry) 和儲存庫 (Repository)。登錄檔支援後設資料釋出,而儲存庫提供儲存、管理後設資料的功能。除了基本功能之外,WSRR 還通過以下能力而支援服務生命週期管理:

  • 服務工件的模型生命週期;
  • 在多種開發環境中管理服務在生命週期各階段的提升;
  • 執行影響分析,將變更傳達至受到治理的服務後設資料。

業務模型

為了促進業務的表示和管理,WSRR 支援與下例相似的業務模型配置,下例表示了與業務角色有關的實體的型別。這裡定義了 5 個基本業務模型概念:業務應用程式、流程、服務、組織和合同。使用者能夠建立和更新基於 Web Ontology Language (WOL) 檔案的業務模型。

  1. 業務應用程式:“業務應用程式” 表示可滿足直接業務需求的高階業務應用程式。“應用程式” 支援將業務應用程式對映到 IT 裝置。
  2. 業務流程:“流程” 表示公共的(由多個應用程式共享的)業務流程。“流程” 依賴於其他流程和服務,通常由那些相關服務的組合通過例如 WebSphere Integration Developer (WID) 等工具而執行,並通過 WebSphere Process Server (WPS) 而實現。
  3. 業務服務:“業務服務” 表示公共的(共享的)業務級服務。這是 SOA 中有效的 “編目” 專案。WSDL 介面和端點將從這裡引用。
  4. 組織:“組織” 表示一個業務級的組織單元 —— 有效的業務線。SOA 中通常需要這種高階表示,以識別服務的提供者或使用者,以及組織觀念上的主要 “所有者”。“組織” 也可能用於對應 UDDI “businessEntity”,儘管治理檔案中不包含與 UDDI 的同步。
  5. 合同:“合同” 表示兩個組織之間的協議,涉及所提供的服務以及提供者和使用者組織之間認可的策略。

技術模型

除了業務模型,WSRR 還基於 WSDL 和 XSD 中表示的服務定義而維護一種服務登錄檔。例如,對於一個實際 WSDL 檔案而言,如果它載入到 WSRR 中,就會生成相關的 WSRR 後設資料:WSDLDocument 表示文件本身,相應地,WSDLService、WSDLPort、WSDLBinding 和 WSDLPorttype 是從 WSDLDocument 中分析的邏輯物件。還存在技術層,物理物件和邏輯物件(例如 Service、ServiceEndpoint、ServiceBinding 和 ServiceInterface 物件)都與之連結。

業務模型和技術模型並不完全分離。從業務模型可控制相應的技術模型,反之亦然。

治理生命週期和治理策略

WSRR 是 SOA 治理的主要產品之一。WSRR 具有預設生命週期,作為標準安裝的一部分而安裝。使用者可定義服務生命週期模型,此模型能使用 IBM WebSphere Integration Developer 工具開發並載入到 WSRR 中。生命週期階段、運營狀態、服務定義狀態都用於提供一種機制,以實現使用、重用、可視性和運營穩定性以及健康。

WSRR 提供了處理治理策略的功能。在這裡我們利用這種特性來處理是否允許發生服務轉換的條件。

圖 2 例示了完整服務生命週期以及控制點和可交付成果。


圖 2. 完整服務生命週期示例
完整服務生命週期示例

WebSphere Business Event

2008 年,IBM 公佈了 WebSphere Business Event (WBE),此產品旨在管理系統和人員間流動的業務事件,目標是提供感知和響應不斷變化的業務條件的能力。它在產品設計中採用了 Business Event Processing (BEP) 的重要概念。它允許業務使用者以業務語言描述業務事件和模式,及時檢測、評估和反應,以實現業務目標。

WBE 包括 3 個無縫整合的元素:設計環境、執行時環境和資產儲存庫。有兩種設計工具,一種面向 IT 開發人員,另一種面向業務人員。IT 開發人員識別接觸點和聯結器以及業務物件,業務物件提供後設資料定義層以允許資料在接觸點之間通過 Design Data 無縫地移動。業務人員指定 Interaction Set,它確定了業務系統如何彼此互操作;一個 Interaction Set 包含一個 Event、一個或多個 Action,可能有 Filter。可選擇應用 Filter 來確定是否應當採取某 Action,還能使用 Filter 來檢查 Event 模式以確定評估當前 Event 的條件是否存在。下圖為組成元素及其關係。


圖 3. WebSphere Business Event 元素和關係
WebSphere Business Event 元素和關係

此解決方案中使用 WBE 來接收在 WSRR 或其他渠道中發放的服務治理事件並進行處理。使用預定義的治理流程模式,WBE 能幫助解決決策問題、動態地對 SOA 治理中人員、流程和資訊之間簡單或複雜的關係作出反應。

Event Handler

本解決方案中的 Event Handler 目標在於監聽並處理 WSRR 中發生的服務轉換。在這裡,定義了一個治理通知外掛,它編寫為可實現 com.ibm.serviceregistry.governance.ServiceRegistryGovernanceNotifier2 介面的 Java Class。ServiceRegistryGovernanceNotifier2 介面擴充套件了原始 ServiceRegistryGovernanceNotifier 介面,提供更多功能。以下是類層次。從中我們能夠看到 ServiceRegistryGovernanceNotifier2 相比 ServiceRegistryGovernanceNotifier 介面,多出三種方法:makeGovernable()removeGovernance()validate()

一旦服務轉換事件被監聽,事件處理程式就將之轉換為 WBE 可接受的事件格式,並將事件傳送到 WBE。


圖 4. Event Handler 實現
Event Handler 實現 

保險業 P&C Underwriting 業務

本解決方法的技術特性如上所述。下面使用一個行業示例來著重介紹用例。我們將使用保險業中 Property & Casualty (P & C) Underwriting 的典型業務。

P&C Underwriting 業務

Underwriting 將管理必要活動,以支援對合同(新合同和有效合同)的風險評估,從而確定接受、改變或拒絕所提出的風險。所以 P&C Underwriting 為 P&C 保險策略提供建議,描述了公司可接受的保證和條件,考慮了所有風險和客戶狀況。準備好提供資訊,以便對公司可接受的保證和條件作出決議。這將構成與客戶進行協商、建議接受或拒絕風險的根據。資訊準備工作明顯包括指定初步 Terms & Conditions、計算可選保險費以及評估是否需要再保險。

業務模型和技術模型

其業務模型如下圖所示。


圖 5. P&C 業務模型
P&C 業務模型

業務管理將其載入 WSRR。接下來,定義並開發相應的結束模型,例如 WSDL、XSD,並將這些檔案釋出到 WSRR 中。

同樣,服務管理開發了業務模型生命週期和技術模型生命週期以治理流程。

下圖顯示了業務模型生命週期和狀態和轉換:


圖 6. P&C 業務模型生命週期
P and C 業務模型生命週期

圖 7. 業務狀態和轉換
業務狀態和轉換

下面的圖 8 和圖 9 顯示了技術模型生命週期、狀態和轉換。


圖 8. P&C 技術模型生命週期
P&C 技術模型生命週期

圖 9. 技術狀態和轉換
技術狀態和轉換

事件互操作集合

在本例中,因為 P&C Underwriting 業務流程包含多個在 WBE 中開發和成熟的業務服務和 IT 服務,所以可根據以下清單定義一個互操作集合:


清單 1. 範例互操作集合定義

				
if Allof(P&CUnderwritingService.State = "Published")
then P&CUnderwritingBusinessProcess.State = "Realized"
			

當 WBE 檢測到任何由 Event Handler 發出的、指定組成服務轉換狀態的事件時,將不會執行任何操作。當所有組成服務狀態為 “Published” 時,WBE 採取措施,將 P&C Underwriting 業務流程狀態轉換為 “Realized”。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14780828/viewspace-626566/,如需轉載,請註明出處,否則將追究法律責任。

相關文章