remoting和webservice有什麼區別

2022-02-24 07:13:06 字數 2001 閱讀 4074

其實現的原理並沒有本質的區別,在應用開發層面上有以下區別:

1、remoting可以靈活的定義其所基於的協議,如果定義為http,則與web service就沒有什麼區別了,一般都喜歡定義為tcp,這樣比web service稍為高效一些

2、remoting不是標準,而web service是標準;

3、remoting一般需要通過乙個winform或是windows服務進行啟動,而web service則需要iis進行啟動。

4、在vs.net開發環境中,專門對web service的呼叫進行了封裝,用起來比remoting方便

我建議還是採用web service好些,對於開發來說更容易控制

remoting一般用在c/s的系統中,web service是用在b/s系統中

後者還是各語言的通用介面

相同之處就是都基於xml

為了能清楚地描述web service 和remoting之間得區別,我打算從他們的體系結構上來說起:

web service大體上分為5個層次:

1. http傳輸通道

2. xml的資料格式

3. soap封裝格式

4. wsdl的描述方式

5. uddi

總體上來講,.net 下的 web service結構比較簡單,也比較容易理解和應用:

一般來講在.net結構下的webservice應用都是基於.net framework以及iis的架構之下,所以部署(dispose)起來相對比較容易點.

從實現的角度來講,

首先webservice必須把暴露給客戶端的方法所在的類繼承於:system.web.services.webservice這個基類

其次所暴露的方法前面必須有[webmethod]或者[webmethodattribute]

webservice的執行機理

首先客戶端從伺服器的到webservice的wsdl,同時在客戶端聲稱乙個**類(proxy class)

這個**類負責與webservice伺服器進行request 和response

當乙個資料(xml格式的)被封裝成soap格式的資料流傳送到伺服器端的時候,就會生成乙個程序物件並且把接收到這個request的soap包進行解析,然後對事物進行處理,處理結束以後再對這個計算結果進行soap包裝,然後把這個包作為乙個response傳送給客戶端的**類(proxy class),同樣地,這個**類也對這個soap包進行解析處理,繼而進行後續操作。

這就是webservice的乙個執行過程。

下面對.net remoting進行概括的闡述:

.net remoting 是在dcom等基礎上發展起來的一種技術,它的主要目的是實現跨平台、跨語言、穿透企業防火牆,這也是他的基本特點,與webservice有所不同的是,它支援http以及tcp通道,而且它不僅能傳輸xml格式的soap包,也可以傳輸傳統意義上的二進位製流,這使得它變得效率更高也更加靈活。而且它不依賴於iis,使用者可以自己開發(development)並部署(dispose)自己喜歡的宿主伺服器,所以從這些方面上來講webservice其實上是.net remoting的一種特例。

1. remoting 是marshbyreference的,可以傳變數的引用,直接對伺服器物件操作。速度快,適合intranet(企業內部網際網路)。

webservice 是marshbyvalue的,必須傳物件的值。速度慢,可以過firewall,配置比較簡單,適合internet(網際網路)。

2. 一般來說,remoting是和平台相關的,需要客戶和伺服器都是.net,但可配置特性比較好,可以自定義協議。web service可以做到跨平台通訊,但必須採用soap協議。

3. s

oap訊息有rpc和文件兩種樣式。

文件樣式的body元素中包含乙個或多個元素,可以是任何內容,只要接受者理解就行了。rpc樣式的的body元素中包含呼叫的方法或遠端過程的名稱,以及

代表方法引數的元素。 

.net對這兩種樣式的實現就是web service 和remoting .

remoting和webservice有什麼區別

其實現的原理並沒有本質的區別,在應用開發層面上有以下區別 1 remoting可以靈活的定義其所基於的協議,如果定義為http,則與web service就沒有什麼區別了,一般都喜歡定義為tcp,這樣比web service稍為高效一些 2 remoting不是標準,而web service是標準 ...

Remoting和Webservice的區別

其實現的原理並沒有本質的區別,在應用開發層面上有以下區別 1 remoting可以靈活的定義其所基於的協議,如果定義為http,則與web service就沒有什麼區別了,一般都喜歡定義為tcp,這樣比web service稍為高效一些 2 remoting不是標準,而web service是標準 ...

Remoting和Webservice的區別

remoting和webservice的區別 其實現的原理並沒有本質的區別,在應用開發層面上有以下區別 1 remoting可以靈活的定義其所基於的協議,如果定義為http,則與web service就沒有什麼區別了,一般都喜歡定義為tcp,這樣比web service稍為高效一些 2 remoti...