服務實現的途徑(Service Implementation Mediums)
將SOA看成是一個架構模型非常重要,它獨立於任何技術平臺。對於企業來說,可以根據它當前自身的技術優勢來實現SOA,從而達到戰略目標。
當前,服務可以通過以下三種方式實現:
- 元件(component)
- Web服務(Web service)
- REST服務(REST service)
(以上三種是Thomas Erl在SOA Design Patterns裡提出的)
本質上說,我們選取任何技術在一個分散式系統中實現SOA。這個系列中將會介紹的多數設計模式都與實現方式無關,也有一些與實現相關。裡面有些例子基於Web services,因為它從面向服務的歷史上看是最為流行的。
服務即元件(Services as Components)
一個元件是為一個分散式系統設計一部分程式,它提供一個介面(interface),傳統的API通常是將它的能力作為方法暴露,讓其他的程式進行顯性訪問,與傳統API不同的是,元件通常依賴於具體平臺的開發和執行時技術。比如,元件可以通過Java或者.NET工具開發,然後部署到執行環境中,與其他元件相互通訊以支援技術需求。
服務即Web Services(Services as Web Services)
Web service提供物理上解耦的技術契約(contract),這個契約包括了WSDL定義,一個或多個XML Schema的定義以及可能的WS-Policy的表示式。面向服務的思想可以應用到對於Web services的設計之中。Web services 提供了一個架構模型,它利用服務契約(service contract)來進行物理解耦,在面向服務的過程中,它的技術中立性(vendor-neutral)也有助於達到設計上的某些目的。
REST服務(REST Services)
表述性狀態轉移(REST)為分散式系統提供了一種基於資源(resources)的實現方式。REST services(或RESTful Services)是一個強調簡單、可伸縮性和可用性的輕量程式。REST services也可以被用來應用面向服務的原則。
參考:《SOA設計模式》 由Thomas Erl及其他供稿者合著,作為Thomas Erl關於面向服務計算叢書的一部分,於2009年1月由Prentice Hall出版,ISBN 0136135161,版權所有2009 SOA System Inc.。