程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> web service 和 remoting 有什麼區別

web service 和 remoting 有什麼區別

編輯:關於C#
 

其實現的原理並沒有本質的區別,在應用開發層面上有以下區別:
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. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved