服務設計模式:SOAP/WSDL與RESTful Web服務設計解決方案是Web服務設計領域的經典著作,由美國程序員Robert Daigneau編著。本書是利用SOAP/WSDL或者遵循REST架構風格的Web服務設計解決方案的縱覽,將基本的Web服務設計概念收錄其中。每種模式都描述了一種對于某個反復出現的設計問題已知的且經過證明的解決方案。書中的模式都是開發人員經過長期的努力識別出來的,這些開發人員注意到,某些問題可以使用類似的設計方法解決,全書總結并規范化了這些思路,非常適合專業企業架構師、解決方案架構師和開發人員們下載閱讀。
內容介紹
《服務設計模式:SOAP/WSDL與RESTful Web服務設計解決方案》是Web服務設計領域的經典著作,Amazon五星級暢銷書,Web服務領域資深專家撰寫,Maritn Fowler和Ian Robinson等大師級人物親自作序推薦。本書不僅詳細講解了SOAP、WSDL、RESTful 3種Web服務API的風格和20多種常用Web服務設計模式,而且還深入闡述了每一種模式的原理,以及這些模式的適用場景、可以解決的問題、采用之后的影響、詳細的解決方案、需要考慮的因素,以及相應的示例,是Web服務設計開發人員、企業架構師和解決方案架構師必讀的一本書。
服務設計模式共分為7章:第1章概括了Web服務模式的作用以及實現方法,第2章主要探索Web服務使用的主要API風格,第3章介紹所有客戶-服務交互的基礎知識,第4章說明了用于管理Web請求和響應的常見服務層模式,第5章關注每種服務方法的實施結果,第6章討論了與客戶端和服務開發人員相關的基本的架構關注點,第7章研究導致中斷的因素,并討論兩種常見的版本策略。
服務設計模式章節目錄
譯者序
Martin Fowler所作的序
Ian Robinson所作的序
前言
致謝
第1章 從對象到Web服務
1.1 Web服務是什么
1.2 從本地對象到分布式對象
1.3 為什么使用Web服務
1.4 Web服務的考慮因素和替代方案
1.5 服務和松散耦合的承諾
1.6 SOA是什么
1.7 總結
第2章 Web服務API風格
2.1 引言
2.2 設計Web服務API的考慮因素
2.3 RPC API
2.4 消息API
2.5 資源API
第3章 客戶端與服務之間的交互
3.1 引言
3.2 請求/響應模式
3.3 請求/確認模式
3.4 媒體類型協商模式
3.5 鏈接服務
第4章 請求和響應管理
4.1 引言
4.2 服務控制器
4.3 數據傳輸對象
4.3.1 數據綁定考慮因素
4.3.2 總體考慮因素
4.4 請求映射器
4.5 響應映射器
第5章 Web服務實現風格
5.1 引言
5.2 Web服務實現的設計考慮因素
5.3 事務腳本
5.4 數據源適配器
5.5 操作腳本
5.6 命令調用器
5.7 工作流連接器
第6章 Web服務基礎結構
6.1 引言
6.2 服務連接器
6.3 服務描述符
6.4 異步響應處理器
6.5 服務攔截器
6.6 冪等重試
6.7 SOA基礎結構模式簡述
6.7.1 服務注冊表
6.7.2 企業服務總線
6.7.3 編排引擎
第7章 Web服務的演化
7.1 導言
7.2 導致破壞性變化的因素
7.2.1 對媒體類型或者消息的結構性修改
7.2.2 服務描述符變化
7.3 常見版本控制策略
7.4 單消息參數
7.5 數據集修改
7.6 寬容閱讀器
7.7 消費者驅動契約
7.8 模式對服務演化的促進或者妨礙
附錄 對外部模式的引用
詞匯表
參考書目
服務設計模式精彩文摘:
從對象到Web服務Web服務在現實中已經應用了很多年。在此期間,就如何使用web務而言,開發人員和架構師們經常會遇到一些反復出現的設計挑戰。我們了解到,在解決某些特定的問題時,有些特定的設計方法的確比其他方法更有效。本書的讀者應該是那些正在使用Web服務或者正在考慮使用wCb服務的軟件開發人員和架構師。本書的目的是讓他們了解一些常見的和基礎的Web服務設計方案,并幫助他們決定何時使用這些設計方案。這里討論的所有概念都源于現實生活中的經驗教訓,并通過一些代碼示例來演示這些經過實踐驗證的方案。
服務開發人員會遇到一系列問題,如下所述。
如何創建服務API,普通風格的API是什么樣的,特殊風格的API應該在什么時候使用?
在復雜會話中,多個參與方可以在一段持續的時間內交換數據。那么,客戶端和服務如何進行通信,創建復雜會話的基礎是什么?
實現服務邏輯有哪些可供選擇的方法,什么時候應該使用特定的某種方法?
如何減少客戶端與服務所使用的底層系統的耦合?
如何發現關于服務的信息?
如何在客戶端或服務端提供對身份驗證、數據校驗、緩存和日志記錄等通用功能的支持7
對服務進行的哪些改變會中斷客戶端的應用?
服務的版本管理有哪些常用的方法?
如何設計服務,才能讓它既支持業務邏輯的不斷演化,又不必強制客戶端頻繁地升級?
以上這些問題只是我們必須回答的問題中的一小部分。本書將會幫助你找到合適你的應用場景的解決方案。
在本章中,你將會學習服務到底是什么,Web服務是如何解決之前服務的不足之處的。1.1 Web服務是什么
從技術角度來說,服務(seivice)這個術語可以指任何軟件功能,比如執行一項業務任務、提供文件訪問(如文本、文檔、圖片、視頻、音頻等),或者執行一些通用功能(如身份驗證或曰志記錄)。對于這些目標,服務實現可以使用自動化的工作流引擎、屬于領域模型(DomaiModel)的對象〔POEAA〕、商業軟件包、傳統應用程序的API、面向消息的中間件(Message一0riented。Middleware,MOM),當然,還有數據庫。用許多方法都可以實現服務。事實上,各種各樣的技術,例如CORBA和D、為REST和SOAP/WSDL開發的新式軟件框架等,都可以用來創建服務。
本書主要介紹如何使用服務在不同應用之間共享邏輯功能,以及如何使運行于不同計算平臺上的軟件互相協作。這些平臺可以是硬件、操作系統(如Linux、Windows、z/OS、Android、iOS)、軟件框架(如.Java、.NET、Rails)和編程語言的任意組合。本書所討論的服務,我們都假設它們是在處理客戶端應用之外的機器上執行的。服務可以在與客戶端在同一臺機器上進行處理,不過,服務通常都是在另一臺機器上進行處理的。雖然可以用諸如CORBA和DC()M之類的技術來創建服務,但本書的重點是Web服務。Web服務為集成不同的系統提供了方法,并通過來輸出可重用的業務功能。這些服務或者是將作為一種簡單的信息運輸工具,通過它來承載數據(如SOAP/WSDL服務);或者是將作為一種完整的應用控制協議,為服務行為定義各種語義(如R:ESTful服務)。
術語
Web服務開發人員經常使用不同的術語來稱呼角色相當的概念。遺憾的是,這已經導致了很多混淆。因此,我們用下面這兩列澄清這些術語,并將其作為參考。列列舉了幾個用于表示發送請求或觸發事件的軟件處理過程的名稱。第二列包含了用于描述對這些請求和事件做出響應或反應的軟件功能的術語。每列包含的這些術語都是同義詞。
……
使用說明
1、下載并解壓,得出pdf文件
2、如果打不開本文件,請務必下載pdf閱讀器
3、安裝后,在打開解壓得出的pdf文件
4、雙擊進行閱讀




