日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

servlet和webservice+WEBservice 的本质。

發(fā)布時間:2025/1/21 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 servlet和webservice+WEBservice 的本质。 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

servlet和webservice應(yīng)該說沒什么聯(lián)系,兩者是不同的技術(shù)。
servlet解決的是動態(tài)網(wǎng)頁的問題,即由servlet處理,輸出HTML或其他內(nèi)容給HTTP/HTTPS請求端。(這個只要寫過Servlet的都明白。畢竟這里面明確的調(diào)用了HTTPsPONS對象)
而WebService是一種遠程對象訪問技術(shù),解決的是通過簡單的 HTTP/HTTPS協(xié)議和SOAP、WSDL、UDDI等協(xié)議實現(xiàn)遠程對象訪問。

?

?

WEBservice 的本質(zhì): 其實和ASP.NET的runat=server的按鈕一樣。點擊按鈕,信息偷偷回傳到指定的頁面。ASP.NET應(yīng)用程序域運轉(zhuǎn)這個回傳的請求,并比較是否是首次加載,再判斷是執(zhí)行了什么操作事件。

而WEBService也同樣。從頁面點擊“調(diào)用”位置來分析。點擊“調(diào)用”則發(fā)送一個請求到指定的URL。URL被ASP.NET應(yīng)用程序域解析。然后執(zhí)行事件。最后返回XML數(shù)據(jù)。

?

只不過在通訊過程中的和HTTP通訊的方式有一點不同。不必糾結(jié),因為不是這些WSDL和SOAP影響了WEB服務(wù)。而是

?

ASP.NET應(yīng)用程序域 和ASP.NET頁面模型從本質(zhì)上決定了,其運行的方式。

?

而在java中可以基于servlet 來理解。而Servlet輸出的是HTML頁面格式的數(shù)據(jù)。

?

?

web服務(wù)通過 WSDL和SOAP來把數(shù)據(jù)格式進行了轉(zhuǎn)換。這里在分析。

通過這兩個標準來? 構(gòu)成和分析 標準的數(shù)據(jù)格式。類似一邊構(gòu)成了JSON。另一個邊進行了解析。

?

?

?

?

remoting和webservice有什么區(qū)別

其實現(xiàn)的原理并沒有本質(zhì)的區(qū)別,在應(yīng)用開發(fā)層面上有以下區(qū)別:
1、Remoting可以靈活的定義其所基于的協(xié)議,如果定義為HTTP,則與Web Service就沒有什么區(qū)別了,一般都喜歡定義為TCP,這樣比Web Service稍為高效一些
2、Remoting不是標準,而Web Service是標準;
3、Remoting一般需要通過一個WinForm或是Windows服務(wù)進行啟動,而Web Service則需要IIS進行啟動。
4、在VS.net開發(fā)環(huán)境中,專門對Web Service的調(diào)用進行了封裝,用起來比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)起來相對比較容易點.
    從實現(xiàn)的角度來講,

    首先WebService必須把暴露給客戶端的方法所在的類繼承于:System.Web.Services.WebService這個基類
    其次所暴露的方法前面必須有[WebMethod]或者[WebMethodAttribute]

    WebService的運行機理
    首先客戶端從服務(wù)器的到WebService的WSDL,同時在客戶端聲稱一個代理類(Proxy Class)
    這個代理類負責與WebService服務(wù)器進行Request 和Response
    當一個數(shù)據(jù)(XML格式的)被封裝成SOAP格式的數(shù)據(jù)流發(fā)送到服務(wù)器端的時候,就會生成一個進程對象并且把接收到這個Request的SOAP包進行解析,然后對事物進行處理,處理結(jié)束以后再對這個計算結(jié)果進行SOAP包裝,然后把這個包作為一個Response發(fā)送給客戶端的代理類(Proxy Class),同樣地,這個代理類也對這個SOAP包進行解析處理,繼而進行后續(xù)操作。

    這就是WebService的一個運行過程。

    下面對.net Remoting進行概括的闡述:
    .net Remoting 是在DCOM等基礎(chǔ)上發(fā)展起來的一種技術(shù),它的主要目的是實現(xiàn)跨平臺、跨語言、穿透企業(yè)防火墻,這也是他的基本特點,與WebService有所不同的是,它支持HTTP以及TCP信道,而且它不僅能傳輸XML格式的SOAP包,也可以傳輸傳統(tǒng)意義上的二進制流,這使得它變得效率更高也更加靈活。而且它不依賴于IIS,用戶可以自己開發(fā)(Development)并部署(Dispose)自己喜歡的宿主服務(wù)器,所以從這些方面上來講WebService其實上是.net Remoting的一種特例。
    Remoting的兩種通道
      Remoting的通道主要有兩種:Tcp和Http。在.Net中,System.Runtime.Remoting.Channel中定義了 IChannel接口。IChannel接口包括了TcpChannel通道類型和Http通道類型。它們分別對應(yīng)Remoting通道的這兩種類型

    1. remoting 是MarshByReference的,可以傳變量的引用,直接對服務(wù)器對象操作。速度快,適合intranet(企業(yè)內(nèi)部互聯(lián)網(wǎng))。
    ?
    webservice 是MarshByValue的,必須傳對象的值。速度慢,可以過FIREWALL,配置比較簡單,適合internet(因特網(wǎng))。?

  • 2. 一般來說,remoting是和平臺相關(guān)的,需要客戶和服務(wù)器都是.NET,但可配置特性比較好,可以自定義協(xié)議。web service可以做到跨平臺通信,但必須采用SOAP協(xié)議。?

    3. Soap消息有rpc和文檔兩種樣式。 文檔樣式的body元素中包含一個或多個元素,可以是任何內(nèi)容,只要接受者理解就行了。rpc樣式的的body元素中包含調(diào)用的方法或遠程過程的名稱,以及代表方法參數(shù)的元素。??

    .net對這兩種樣式的實現(xiàn)就是web service 和remoting .

  • 概括的說Remoting與Web Services的區(qū)別是:
    (1)既支持TCP信道又支持HTTP信道,傳輸速度快

    (2)即可傳輸XML的SOAP包又可傳輸二進制流,效率高
    (3)Remoteing主要用于C/S結(jié)構(gòu)項目
    (4)不一定要依賴IIS服務(wù)器

總結(jié)

以上是生活随笔為你收集整理的servlet和webservice+WEBservice 的本质。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。