一、關於SOA的定義,目前主要有如下三個:編程
1)W3C的定義:SOA是一種應用程序架構,在這種架構中,全部功能都定義爲獨立的服務,這些服務帶有定義明確的可調用接口,可以以定義好的順序調用這些服務來造成業務流程。安全
2)Service-architecture.com的定義:服務是精肯定義、封裝完善、獨立於其餘服務所處環境和狀態的函數。SOA本質上是服務的集合,服務之間彼此通訊,這種通訊多是簡單的數據傳送,也多是兩個或更多的服務協調進行某些活動。服務之間須要某些方法進行鏈接。網絡
3)Gartner的定義:SOA是一種C/S架構的軟件設計方法,應用由服務和服務使用者組成,SOA與大多數通用的C/S架構模型不一樣之處,在於它着重強調構件的鬆散耦合,並使用獨立的標準接口。架構
二、SOA設計原則:分佈式
1)明肯定義的接口。服務請求者依賴於服務規約來調用服務,所以,服務定義必須長時間穩定,一旦公佈,不能隨意更改;服務的定義應儘量明確,減小請求者的不適當使用;不要讓請求者看到服務內部的私有數據。模塊化
2)自包含和模塊化。服務封裝了那些在業務上穩定、重複出現的活動和構件,實現服務的功能實體是徹底獨立自主的,獨立進行部署、版本控制、自我管理和恢復。函數
3)粗粒度。服務數量不該該太多,依靠消息交互而不是遠程過程調用,一般消息量比較大,可是服務之間的交互頻度較低。網站
4)鬆耦合。服務請求者可見的是服務的接口,其位置、實現技術、當前狀態和私有數據等,對服務請求者而言是不可見的。編碼
5)互操做性、兼容和策略聲明。爲了確保服務規約的全面和明確,策略成爲一個愈來愈重要的方面。這能夠試與技術相關的內容,例如,一個服務隊安全性方面的要求;也能夠試與業務有關的語義方面的內容,例如,須要知足的費用或者服務級別方面的要求,這些策略對於服務在交互時是很是重要的。.net
三、SOA的關鍵技術
1)UDDI
統一描述、發現和集成(Universal Description Discovery and Integration ,UDDI)提供了一種服務發佈、查找和定位的方法,是服務的信息註冊規範,以便被須要該服務的用戶發現和使用它。UDDI規範描述了服務的概念,同時也定義了一種編程接口。經過UDDI提供的標準接口,企業能夠發佈本身的服務供其餘企業查詢和調用,也能夠查詢特定服務的描述信息,並動態綁定到該服務上。
2)WSDL
Web服務描述語言(Web Service Description Language , WSDL)是對服務進行描述的語言,它有一套基於XML的語法定義。WSDL描述的重點是服務,它包含服務實現定義和服務接口定義。
採用抽象接口定義對於提升系統的擴展性頗有幫助。服務接口定義就是一種抽象的、可重用的定義,行業標準組織可使用這種抽象的定義來規定一些標準的服務類型,服務實現者能夠根據這些標準定義來實現具體的服務。
服務實現定義描述了給定服務提供者如何實現特定的服務接口。服務實現定義中包含服務和端口描述。一個服務每每會包含多個服務訪問入口,而每一個訪問入口都會使用一個端口元素來描述,端口描述的是一個服務訪問入口的部署細節,例如,經過哪一個地址來訪問,應當使用怎樣的消息調用模式來訪問等。
3)SOAP
簡單對象訪問協議(Simple Object Access Protocol , SOAP)定義了服務請求者和服務提供者之間的消息傳輸規範。SOAP用XML來格式化消息,用HTTP來承載消息。經過SOAP,應用程序能夠再網絡中進行數據交換和遠程過程調用(Remote Procedure Call , RPC)。SOAP主要包括如下4個部分:
1.封裝。
2.編碼規則。
3.RPC表示。
4.綁定。
4)REST
表述性狀態轉移(Representational State Thansfer , REST)是一種只使用HTTP和XML進行基於Web通訊的技術,能夠下降開發的複雜性,提升系統的可伸縮性。它的簡單性和缺乏嚴格配置文件的特性,使它與SOAP很好地隔離開來,REST從根本上來講只支持幾個操做(POST、GET、PUT和DELETE),這些操做適用於全部的消息。REST提出了以下一些設計概念和準則:
1.網絡上的全部事物都被抽象爲資源。
2.每一個資源對應一個惟一的資源標識。
3.經過通用的鏈接件接口對資源進行操做。
4.對資源的各類操做不會改變資源標識。
5.全部的操做都是無狀態的。
四、SOA的實現方法
SOA只是一種概念和思想,須要藉助於具體的技術和方法來實現它。從本質上來看,SOA是用本地計算模型來實現一個分佈式的計算應用,也有人稱這種方法爲「本地化設計,分佈式工做」模型。CORBA、DCOM和EJB等都屬於這種解決方式,也就是說,SOA最終能夠基於這些標準來實現。
從邏輯上和高層抽象來看,目前,實現SOA的方法也比較多,其中主流方式有Web Service、企業服務總線和服務註冊表。
1. Web Service
a)服務提供者。
b)服務請求者。
c)服務註冊中心。
2.服務註冊表
a)服務註冊。
b)服務位置。
c)服務綁定。
3.企業服務總線
與企業應用集成方面,與現存的、專有的集成解決方案相比,ESB具備如下優點:
a)擴展的、基於標準的鏈接。
b)靈活的、服務導向的應用組合。
c)提升複用率,下降成本。
d)減小市場反應時間,提升生產率。