soa和webservice的區別

早期的分佈計算中,兩個分佈式程序之間的通信在原始物理網絡協議的基礎上直接實現。
編程人員必須處理物理網絡的細節。通信中間件的出現,封裝了低級通信機制的技術,對開發人員隱藏了通信技術庫的細節。

按照時間出現的先後順序分別出現了以下三種通信中間件。

1、 RPC(遠程過程調用)
RPC將對遠程函數的調用就如同對本地函數的調用一樣。大多數RPC實現都基於同步式請求-應答協議。

通信步驟:
客戶應用程序->客戶佔位程序->rpc庫->(網絡協議)->rpc庫->服務端佔位程序->服務端應用程序

2、 分佈式對象
分佈式對象建立在rpc之上。由orb(對象請求代理)支持。Orb管理與可能的遠程對象通信和數據交換。Orb基於互操作對象應用的概念,允許通過對象工廠和其他輔助對象,方便地遠程創建,定位,調用和刪除對象。

通信步驟:
客戶應用程序->客戶代理->orb->網絡協->orb->服務器架構->服務器應用程序
-----------------------------------------------------------------------------------------------
創建、定位、刪除、調用

Orb實現技術有corba,dcom,rmi。

缺點:A、同步通信,客戶發出調用後,必須等待服務對象完成處理並且返回結果才能繼續執行
B、客戶和服務對象的生命週期緊密耦合,客戶進程和服務對象進程都必須正常運行,如果服務對象崩潰或者網絡故障導致客戶端請求不可達,客戶會接收到異常。
C、點對點通信,客戶一次調用只能發送給某個單獨的目標對象。

3、 MOM(面向消息的中間件)
Mom解決了以上中間件的缺點,常見的mom都是基於消息隊列實現的。發送者將消息發送給消息服務器,消息服務器將消息存放在若干隊列中,在合適的時候講消息發送給接收者。消息隊列是客戶應用程序和服務器應用程序的中介。已有的Mom系統包括IBM的Mqseries,Microsoft的MSMQ和BEA的MessageQ

發佈者---- ----- 訂閱者
消息隊列
發佈者---- ----- 訂閱者

發佈訂閱模型使得消息發佈給多個訂閱者。

雖然中間件技術解決了系統之間的通信問題。但是由於概念,標準不統一,產品過多。卻產生了副作用。Xml技術的出現很好的解決了這個問題。Xml是獨立於中間件的格式,可以在不同應用程序之間交換數據和文檔。Xml不與特定技術或者中間件標準綁定,作爲一種特殊格式來處理各個不兼容中間件平臺的數據。基於xml的webservice在以soap爲消息傳輸格式的情況下誕生了。Soap就是webservice的標準通信協議,是標準化的xml格式傳輸消息。這樣便於大家使用同一個格式,同一個標準來對話。Web service實現了服務接口的傳輸和調用的標準化,服務接口和服務實現的分離,以及web服務組件的可重用性。

SOA和webservice的區別
SOA是一個組件模型,他將應用程序的不同功能單元(服務)通過這些服務之間定義良好的接口和契約聯繫起來。SOA整合發佈平臺將完全無關的平臺所提供的各種服務整合起來發布給外界,客戶端不知道真正的服務發佈者是誰。Webservice只是實現soa的一種途徑。Webservice服務接口需要綁定具體實現的服務組件來實現服務,並且對具體的服務實現完成了封裝,他本身知道服務是如何實現的,客戶端調用webservice組件時,需要知道webservice的具體位置和傳輸協議。但是soa架構平臺只和服務接口進行綁定,實現了服務接口的透明化,服務位置的透明化,服務傳輸協議的透明化。Soa本身也不知道服務具體是如何實現的。SOA實現了更高程度的抽象。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章