這 10 個 SOA 設計模式是如此之重要,其應用是如此之廣泛,以至于它們都有些顯而易見了。
1. 服務無關
服務無關實現對多種業務通用的邏輯。將服務無關的邏輯分離成離散的服務以方便服務的重用和整合。
原則:復用,服務整合
2. 服務無關的聲明
服務無關的服務應該顯式聲明它們是服務無關的。這樣對于后續的設計者和架構者來說能夠清楚哪些服務是被設計用來進行重復使用的。軟件架構有哪些、
原則:復用,服務整合
3. 服務無關的事務
服務無關的服務可以被封裝到具備能夠回退所有行為和改變的回滾特性的原子性的事務中。這些由事務管理的服務可以在組件層(
譯者注:SOA 系統總體劃分的三個層次:組件層、系統層、集成層)進行實現,并被多個服務進行復用。
原則:服務無狀態
4. 企業服務總線(ESB)
ESB 在消費者和服務之間扮演著一個消息代理的角色。ESB 能夠進行消息傳輸、路由以及通過不同的通信協議連接到各個應用。
原則:高內聚低耦合
5. 服務門面
服務門面處于服務和契約之間。微服務架構和分布式架構的區別。它消除了服務及其契約之間的緊密的耦合性。這樣做的目的是在更換契約的時候對服務的更改程度能夠降到最低。一個服務可以擁有多個服務門面以支持多個契約。
原則:松耦合
6. 服務回調
服務要求它的消費者通過異步的方式對其進行調用。如果消費者需要一個響應,它將提供一個回調地址。soa架構實現技術?在服務處理消費者的請求到了某個階段的時候,它將對消費者進行消息響應。這種辦法大大釋放了服務器的資源,尤其是服務將要進行長時間執行的場景。
原則:松耦合
7. 多個服務契約
一個服務可能會同時支持多個契約。這樣做可以支持向后兼容(這樣當改變一個服務的時候,所有的消費者不必隨著進行更新)。這樣做還能夠為不同的目的來為同一服務提供不同的視圖(也達到了重用的目的)。五種常見的軟件架構,
原則:復用,松耦合
8. 認證代理
認證代理為消費者認證承擔責任。消費者通過使用 token 來對服務進行訪問。
9. 消息來源認證
通過數字證書來對客戶端進行認證。
原則:服務整合
10. 消息過濾
在對消息進行處理之前先過濾掉有害數據。
原則:標準服務契約
原文鏈接:10 Soa Design Patterns Every Architect Should Know,發布日期:2010 年 9 月 7 日。web前端三大主流框架、
作者簡介:Anna Mar 是一名擁有 18 年以上金融領域經驗的首席架構師。