最佳實務:在未岔斷的情況下變更外部服務

當您要設計系統或開發模組時,在模組與模組所要呼叫的外部服務之間放置媒介模組,有時可以讓您獲得一些好處。如果您正在使用 SCA 連結,則只要使用這裡所說明的方式即可。

使用媒介模組的好處之一,就是可以在未岔斷的情況下變更您的應用程式所要呼叫的外部服務或應用程式。這個範例利用 Web 服務匯入來說明這個概念。

下面第一張圖顯示一個含有匯入作業的模組 A,它會透過直接連接來呼叫遠端服務。如果您希望模組 A 呼叫不同的遠端服務,就必須更新邏輯。若要更新邏輯,則必須停止舊版模組,然後從伺服器將它解除安裝。這樣才能安裝及啟動新版模組。在進行此程序的期間,會岔斷對模組 A 所進行的服務。


本圖顯示一個直接連接到 Web 服務的模組。

如果您在您的應用程式中使用媒介模組,且利用 SCA 連結將該模組連接到模組 A,則在運用上會有更大的彈性。下圖顯示該項配置。模組 A 有一項匯入作業,該項匯入作業會連接至媒介模組或調解模組(模組 B)的匯出作業。這兩種模組必須有相符的介面。在本主題所說明的實務中,它們必須有 SCA 連結。模組 B 會呼叫服務。模組 B 是一個 Facade;模組 A 則包含真實的商業邏輯。

另外,本圖解還顯示另一項服務 - 遠端 Web 服務 2。為了準備使用該項服務,已利用 WebSphere 測試環境建置及測試模組 C 及其 Web 服務匯入。


第二張圖顯示模組 A 透過媒介模組(模組 B)來連接到服務。

當這個新模組已準備好可以部署時,您可以利用 WebSphere Process Server 管理主控台,將模組 A 中的 SCA 匯入從舊目標模組(模組 B)指向新目標模組(模組 C)中的 SCA 匯出,藉此建立緊密的轉換程序來轉換到已更新的服務。下圖顯示新的部署。這個方法可讓您在未岔斷服務的情況下更新應用程式。


第三張圖顯示新的模組現在是透過新的媒介模組連接到新的服務。

以上型樣也可以用在外部匯出。例如,模組可以透過 Web 服務匯出來顯現服務。一般而言,如果需要更新模組邏輯,通常都會岔斷服務。不過,如果 Facade 模組用在 Web 服務匯出,就可以在未中斷服務的情況下更新商業邏輯。

關於這個設計原則,WebSphere Process Server 的文件有更完整的說明;請參閱有關區隔模組和目標,以及變更目標的指示。

意見
(C) Copyright IBM Corporation 2005, 2006. All Rights Reserved.