第10部分: 使用WebSphere Process Server和WebSphere Service Registry and Repository提供對服務消費的治理
通常,SOA 治理的重點是服務提供者,特別是在服務生命週期方面。很少將注意力放在消 費方或訂閱者。誰應該能夠看到或發現相關的服務端點?或者,探索服務的人怎樣發送請求 以使用該服務?或者,與授權訪問該服務相關的流程是什嗎?這些問題的答案因客戶而異。 本文在一個稱為 Jivaro Bank 的虛擬原型組合應用程式的上下文中回答了這些問題,同時還 介紹了如何使用 WebSphere Service Registry and Repository 和 WebSphere® Process Server 實現對服務消費和訂閱的治理。
引言
Jivaro Bank 是一個虛擬 原型組合應用程式,它可在名為 Jivaro Bank Service Registry 的自訂 WebSphere Service Registry and Repository 中發布銀行服務。這些服務將由其他內部客戶使用(假 定內部客戶擁有使用者註冊中心的使用者帳戶)。本系列中的第一篇文章構建 SOA 組合商務服務 ,第 1 部分:開發 SOA 組合應用程式來支援商務服務介紹了 Jivaro 銀行應用程式支援的 一些情境。Jivaro Bank 安全架構使用一個基於 Tivoli® Directory Server 的 LDAP 使用者註冊來進行身分識別驗證。為了進行授權,它將 Tivoli Access Manager 用作其 WebSphere Portal 前端和其 WebSphere Process Server 後端的授權策略決策點。當內部客戶能夠在運 行時調用 Jivaro 銀行服務之前,需要對其進行授權,並且該客戶還需要同意服務消費者與 提供者之間達成的契約中規定的特定條款及條件。
為了對訂閱者和消費方進行治理 ,Jivaro Bank 制定了以下策略:
沒有服務提供者的事先授權,服務訂閱者不得查看 和使用服務端點資訊。
服務訂閱者可以通過通過完成服務提供者提供的在服務註冊 中心中的表格或契約在給定的服務中註冊感興趣的內容。
得到批准後,服務訂閱者應能夠查看端點資訊,有權調用該端點,自動獲得任何服務元數 據更新的通知。
服務提供者應能夠與該服務註冊中心的服務訂閱者一起來管理服務契約。
任何發布的服務都可以有多個端點,可以將這些端點歸類為公用或專用以及測試或生產。 允許服務訂閱者僅查看公用端點。
本文概述了如何使用 WebSphere Process Server 和 WebSphere Service Registry and Repository 在 Jivaro Bank 中實現這些策略。
在圖 1 顯示的樣本中,潛在訂閱者 James Hu 先生想在其商務程序中(如應付帳款流程 )調用發布的 Jivaro 銀行服務(在本例中為用於自動清算檢查的 Jivaro Bank Batch ACH Service)。首先,他需要訂閱發布的服務。在訂閱得到管理員批准後,他才可以找到此服務 的公用端點並將其用於自己的商務程序中。應付賬款流程中的調用將通過 Jivaro Bank Batch ACH Service 中介模組路由,該模組將基於多個標準把該調用路由到其中一個專用端 點中。該中介模組將批處理請求中的檢查數量用作確定將此請求路由到哪個內部端點的標準 。有關如何將 WESB 中介模組與 WebSphere Service Registry and Repository 一起使用的 樣本,請參閱參考資料。
Jivaro Bank 在 Jivaro 服務註冊中心註冊了兩個內部端點:
highVolumeEndPoint(成本:每檢查一次 5 分;回應時間:每檢查一次 2 毫秒;10000 > 每批檢查數量 > 1000)
lowVolumeEndPoint(成本:每請求一次 3 分;回應時間:每檢查一次 20 毫秒;1000 > 每批檢查數量 > 1)
圖 1. Jivaro 銀行服務訂閱者授權流程概述