服務設計模式

SOAP/WSDL 和 RESTful 網路服務的基本設計解決方案

羅伯特·丹尼歐與伊恩·羅賓森合著

2011

企業應用程式的其中一項不可避免的真理是,它們並非孤島。你可能專注於解決特定業務問題,但為了做到這一點,你無法自行擷取所有需要的資料,或開發所有處理程序。即使你有時間,這些資料和處理程序也會在其他地方進行,重複既浪費時間,又會導致混亂的不一致性。因此,幾乎所有企業應用程式都需要與其他應用程式進行通訊。這些外部系統通常不在同一個組織中,而是由某些第三方組織提供。

多年來,這種協作最困難的部分之一只是取得某種通訊路徑。這些應用程式通常使用不同的平台、不同的語言,在支援不同通訊協定的不同作業系統上撰寫。但在這十年間,網路已成為解決連線問題的方案。幾乎所有系統都可以開啟埠 80,並透過它傳送文字。

但這仍然留下許多問題,例如它們應該如何傳送。它們應該使用 RPC 型 API、訊息導向 API,還是這個時髦的 REST?邏輯應該直接嵌入服務中,還是委派給底層物件?我們如何變更已在使用的服務,而不中斷客戶端?

通常在我的系列中,書籍會介紹其他地方較少探討的主題,但已經有太多關於網路服務各方面的書籍了。因此,當羅伯特的書籍草稿透過網路傳送給我時,我並不認為我會對它感興趣。改變我心意的原因是,它將這些關鍵問題彙整成一本手冊,採用我喜歡在值得一讀的技術書籍中看到的風格。

首先,他採取將主題領域分解為模式的方法,因此我們有詞彙來討論這些主題。然後,他深入探討每個模式,說明每個模式如何運作以及如何選擇它們。因此,您可以看到各種 Web 服務設計方法,並決定在您的環境中哪種方法最適合您。他提供程式碼範例,讓您可以看到這些模式如何在實務中運作,但這些模式夠通用,可套用於許多技術堆疊。

結果是一本彙整使用 Web 服務的重要設計決策點的書籍,其風格著重於儘管技術變遷,仍可能很有價值的原則。

延伸閱讀

書籍網站