简述WebService与.NET Remoting的区别及适应场合
生活随笔
收集整理的這篇文章主要介紹了
简述WebService与.NET Remoting的区别及适应场合
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
為了能清楚地描述Web Service 和Remoting之間的區(qū)別,我打算從他們的體系結(jié)構(gòu)上來(lái)說(shuō)起:
Web Service大體上分為5個(gè)層次:
1. Http傳輸信道
2. XML的數(shù)據(jù)格式
3. SOAP封裝格式
4. WSDL的描述方式
5. UDDI
總體上來(lái)講,.NET 下的?Web Service結(jié)構(gòu)比較簡(jiǎn)單,也比較容易理解和應(yīng)用:
一般來(lái)講在.NET結(jié)構(gòu)下的WebService應(yīng)用都是基于.net framework以及IIS的架構(gòu)之下,所以部署(Dispose)起來(lái)相對(duì)比較容易點(diǎn).
從實(shí)現(xiàn)的角度來(lái)講,
首先WebService必須把暴露給客戶端的方法所在的類繼承于:System.Web.Services.WebService這個(gè)基類
其次所暴露的方法前面必須有[WebMethod]或者[WebMethodAttribute]
WebService的運(yùn)行機(jī)理
首先客戶端從服務(wù)器的到WebService的WSDL,同時(shí)在客戶端聲稱一個(gè)代理類(Proxy Class)
這個(gè)代理類負(fù)責(zé)與WebService服務(wù)器進(jìn)行Request 和Response
當(dāng)一個(gè)數(shù)據(jù)(XML格式的)被封裝成SOAP格式的數(shù)據(jù)流發(fā)送到服務(wù)器端的時(shí)候,就會(huì)生成一個(gè)進(jìn)程對(duì)象并且把接收到這個(gè)Request的SOAP包進(jìn)行解析,然后對(duì)事物進(jìn)行處理,處理結(jié)束以后再對(duì)這個(gè)計(jì)算結(jié)果進(jìn)行SOAP包裝,然后把這個(gè)包作為一個(gè)Response發(fā)送給客戶端的代理類(Proxy Class),同樣地,這個(gè)代理類也對(duì)這個(gè)SOAP包進(jìn)行解析處理,繼而進(jìn)行后續(xù)操作。
這就是WebService的一個(gè)運(yùn)行過(guò)程。
下面我們對(duì).net Remoting進(jìn)行概括的闡述:
.net Remoting?是在DCOM等基礎(chǔ)上發(fā)展起來(lái)的一種技術(shù),它的主要目的是實(shí)現(xiàn)跨平臺(tái)、跨語(yǔ)言、穿透企業(yè)防火墻,這也是他的基本特點(diǎn),與WebService有所不同的是,它支持HTTP以及TCP信道,而且它不僅能傳輸XML格式的SOAP包,也可以傳輸傳統(tǒng)意義上的二進(jìn)制流,這使得它變得效率更高也更加靈活。而且它不依賴于IIS,用戶可以自己開(kāi)發(fā)(Development)并部署(Dispose)自己喜歡的宿主服務(wù)器,所以從這些方面上來(lái)講WebService其實(shí)上是.net Remoting的一種特例。
比較
再次我們對(duì)WebService 以及Remoting做一個(gè)比較
WebService的特點(diǎn)是:平臺(tái)獨(dú)立性(Platform-independent)、跨語(yǔ)言(只要能支持XML的語(yǔ)言都可以) 以及穿透企業(yè)防火墻;
net ? webservice是基于http的是無(wú)狀態(tài)的;
但是它的缺點(diǎn)也很明顯,就是需要部署一臺(tái)Web Server;而且速度比較慢;
.net Remoting的特點(diǎn)是
他的優(yōu)點(diǎn)是用戶既可以使用TCP信道方式進(jìn)行二進(jìn)制流方式通信,也可以使用HTTP信道進(jìn)行SOAP格式的性通信
效率相對(duì)WebService要高不少;
remoting可以用于有狀態(tài)的情況;
但是它的缺點(diǎn)也很明顯,.net remoting只能應(yīng)用于MS 的.net framework之下。
使用場(chǎng)合
?如果互動(dòng)雙方都是支持 ? .NET技術(shù)的環(huán)境,并且在操作系統(tǒng)上能提供一致的驗(yàn)證機(jī)制,而且很重視溝通雙方作業(yè)的效率,就是 ? .NET ? Remoting上場(chǎng)的時(shí)機(jī)。相反的,如果溝通雙方是異質(zhì)環(huán)境,又或溝通的模式就是無(wú)狀態(tài)的情況,持續(xù)進(jìn)行的互動(dòng)作業(yè)前后是沒(méi)有關(guān)聯(lián)的,Web ? Service就是理想選擇了。
Web Service大體上分為5個(gè)層次:
1. Http傳輸信道
2. XML的數(shù)據(jù)格式
3. SOAP封裝格式
4. WSDL的描述方式
5. UDDI
總體上來(lái)講,.NET 下的?Web Service結(jié)構(gòu)比較簡(jiǎn)單,也比較容易理解和應(yīng)用:
一般來(lái)講在.NET結(jié)構(gòu)下的WebService應(yīng)用都是基于.net framework以及IIS的架構(gòu)之下,所以部署(Dispose)起來(lái)相對(duì)比較容易點(diǎn).
從實(shí)現(xiàn)的角度來(lái)講,
首先WebService必須把暴露給客戶端的方法所在的類繼承于:System.Web.Services.WebService這個(gè)基類
其次所暴露的方法前面必須有[WebMethod]或者[WebMethodAttribute]
WebService的運(yùn)行機(jī)理
首先客戶端從服務(wù)器的到WebService的WSDL,同時(shí)在客戶端聲稱一個(gè)代理類(Proxy Class)
這個(gè)代理類負(fù)責(zé)與WebService服務(wù)器進(jìn)行Request 和Response
當(dāng)一個(gè)數(shù)據(jù)(XML格式的)被封裝成SOAP格式的數(shù)據(jù)流發(fā)送到服務(wù)器端的時(shí)候,就會(huì)生成一個(gè)進(jìn)程對(duì)象并且把接收到這個(gè)Request的SOAP包進(jìn)行解析,然后對(duì)事物進(jìn)行處理,處理結(jié)束以后再對(duì)這個(gè)計(jì)算結(jié)果進(jìn)行SOAP包裝,然后把這個(gè)包作為一個(gè)Response發(fā)送給客戶端的代理類(Proxy Class),同樣地,這個(gè)代理類也對(duì)這個(gè)SOAP包進(jìn)行解析處理,繼而進(jìn)行后續(xù)操作。
這就是WebService的一個(gè)運(yùn)行過(guò)程。
下面我們對(duì).net Remoting進(jìn)行概括的闡述:
.net Remoting?是在DCOM等基礎(chǔ)上發(fā)展起來(lái)的一種技術(shù),它的主要目的是實(shí)現(xiàn)跨平臺(tái)、跨語(yǔ)言、穿透企業(yè)防火墻,這也是他的基本特點(diǎn),與WebService有所不同的是,它支持HTTP以及TCP信道,而且它不僅能傳輸XML格式的SOAP包,也可以傳輸傳統(tǒng)意義上的二進(jìn)制流,這使得它變得效率更高也更加靈活。而且它不依賴于IIS,用戶可以自己開(kāi)發(fā)(Development)并部署(Dispose)自己喜歡的宿主服務(wù)器,所以從這些方面上來(lái)講WebService其實(shí)上是.net Remoting的一種特例。
比較
再次我們對(duì)WebService 以及Remoting做一個(gè)比較
WebService的特點(diǎn)是:平臺(tái)獨(dú)立性(Platform-independent)、跨語(yǔ)言(只要能支持XML的語(yǔ)言都可以) 以及穿透企業(yè)防火墻;
net ? webservice是基于http的是無(wú)狀態(tài)的;
但是它的缺點(diǎn)也很明顯,就是需要部署一臺(tái)Web Server;而且速度比較慢;
.net Remoting的特點(diǎn)是
他的優(yōu)點(diǎn)是用戶既可以使用TCP信道方式進(jìn)行二進(jìn)制流方式通信,也可以使用HTTP信道進(jìn)行SOAP格式的性通信
效率相對(duì)WebService要高不少;
remoting可以用于有狀態(tài)的情況;
但是它的缺點(diǎn)也很明顯,.net remoting只能應(yīng)用于MS 的.net framework之下。
使用場(chǎng)合
?如果互動(dòng)雙方都是支持 ? .NET技術(shù)的環(huán)境,并且在操作系統(tǒng)上能提供一致的驗(yàn)證機(jī)制,而且很重視溝通雙方作業(yè)的效率,就是 ? .NET ? Remoting上場(chǎng)的時(shí)機(jī)。相反的,如果溝通雙方是異質(zhì)環(huán)境,又或溝通的模式就是無(wú)狀態(tài)的情況,持續(xù)進(jìn)行的互動(dòng)作業(yè)前后是沒(méi)有關(guān)聯(lián)的,Web ? Service就是理想選擇了。
轉(zhuǎn)載于:https://www.cnblogs.com/KimSky/archive/2008/11/18/1335513.html
總結(jié)
以上是生活随笔為你收集整理的简述WebService与.NET Remoting的区别及适应场合的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 试管婴儿长方案好还是短方案好?
- 下一篇: asp.net mvc使用的心得和问题的