web service 和 remoting 有什么区别
其實(shí)現(xiàn)的原理并沒有本質(zhì)的區(qū)別,在應(yīng)用開發(fā)層面上有以下區(qū)別:
1、Remoting可以靈活的定義其所基于的協(xié)議,如果定義為HTTP,則與Web Service就沒有什么區(qū)別了,一般都喜歡定義為TCP,這樣比Web Service稍為高效一些
2、Remoting不是標(biāo)準(zhǔn),而Web Service是標(biāo)準(zhǔn);
3、Remoting一般需要通過一個WinForm或是Windows服務(wù)進(jìn)行啟動,而Web Service則需要IIS進(jìn)行啟動。
4、在VS.net開發(fā)環(huán)境中,專門對Web Service的調(diào)用進(jìn)行了封裝,用起來比Remoting方便
我建議還是采用Web Service好些,對于開發(fā)來說更容易控制
Remoting一般用在C/S的系統(tǒng)中,Web Service是用在B/S系統(tǒng)中
后者還是各語言的通用接口
相同之處就是都基于XML
- 為了能清楚地描述Web Service 和Remoting之間得區(qū)別,我打算從他們的體系結(jié)構(gòu)上來說起:
Web Service大體上分為5個層次:
1. Http傳輸信道
2. XML的數(shù)據(jù)格式
3. SOAP封裝格式
4. WSDL的描述方式
5. UDDI
總體上來講,.NET 下的 Web Service結(jié)構(gòu)比較簡單,也比較容易理解和應(yīng)用:
一般來講在.NET結(jié)構(gòu)下的WebService應(yīng)用都是基于.net framework以及IIS的架構(gòu)之下,所以部署(Dispose)起來相對比較容易點(diǎn).
從實(shí)現(xiàn)的角度來講,
首先WebService必須把暴露給客戶端的方法所在的類繼承于:System.Web.Services.WebService這個基類
其次所暴露的方法前面必須有[WebMethod]或者[WebMethodAttribute]
WebService的運(yùn)行機(jī)理
首先客戶端從服務(wù)器的到WebService的WSDL,同時在客戶端聲稱一個代理類(Proxy Class)
這個代理類負(fù)責(zé)與WebService服務(wù)器進(jìn)行Request 和Response
當(dāng)一個數(shù)據(jù)(XML格式的)被封裝成SOAP格式的數(shù)據(jù)流發(fā)送到服務(wù)器端的時候,就會生成一個進(jìn)程對象并且把接收到這個Request的SOAP包進(jìn)行解析,然后對事物進(jìn)行處理,處理結(jié)束以后再對這個計算結(jié)果進(jìn)行SOAP包裝,然后把這個包作為一個Response發(fā)送給客戶端的代理類(Proxy Class),同樣地,這個代理類也對這個SOAP包進(jìn)行解析處理,繼而進(jìn)行后續(xù)操作。
這就是WebService的一個運(yùn)行過程。下面對.net Remoting進(jìn)行概括的闡述:
.net Remoting 是在DCOM等基礎(chǔ)上發(fā)展起來的一種技術(shù),它的主要目的是實(shí)現(xiàn)跨平臺、跨語言、穿透企業(yè)防火墻,這也是他的基本特點(diǎn),與WebService有所不同的是,它支持HTTP以及TCP信道,而且它不僅能傳輸XML格式的SOAP包,也可以傳輸傳統(tǒng)意義上的二進(jìn)制流,這使得它變得效率更高也更加靈活。而且它不依賴于IIS,用戶可以自己開發(fā)(Development)并部署(Dispose)自己喜歡的宿主服務(wù)器,所以從這些方面上來講WebService其實(shí)上是.net Remoting的一種特例。 - ?
總結(jié)
以上是生活随笔為你收集整理的web service 和 remoting 有什么区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用.NET创建Windows服务
- 下一篇: sizeof 操作符详解