• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    無刷新Web遠(yuǎn)程過程調(diào)用技術(shù)綜述*

    2012-05-26 11:20:52楊華千蒲昌玖
    關(guān)鍵詞:序列化服務(wù)器端調(diào)用

    胡 飛,楊華千,彭 濤,蒲昌玖

    (重慶教育學(xué)院網(wǎng)絡(luò)中心,重慶 400067)

    在龐大的互聯(lián)網(wǎng)上服務(wù)器平臺和應(yīng)用越來越多,如何讓異構(gòu)的服務(wù)器平臺連接為一個整體?在十年前還是一個遙不可及的技術(shù)。近年來Web遠(yuǎn)程過程調(diào)用技術(shù)的迅猛發(fā)展,從最初簡單的Iframe嵌入式頁面到后來的Web Service,已經(jīng)解決了此問題。異構(gòu)服務(wù)器之間只需要通過基于HTTP協(xié)議的應(yīng)用即可相互調(diào)用方法和內(nèi)容。Web Service是這方面的技術(shù)龍頭,但是其使用復(fù)雜、對編程能力要求高、需要刷新整個頁面從而浪費帶寬和服務(wù)器資源等缺點,由此提出了一種在不刷新頁面的前提下,對遠(yuǎn)程方法進(jìn)行調(diào)用,且對編程能力要求不高的技術(shù):Web遠(yuǎn)程過程調(diào)用(以下簡稱WebRPC)。在一些場合下,甚至成為不可替代的實現(xiàn)方式。WebRPC的實現(xiàn)方式經(jīng)歷了從普通URL讀取,隱藏幀,IFrame,XMLHTTP乃至Flash等。

    1 無刷新技術(shù)的優(yōu)勢

    以前傳統(tǒng)的遠(yuǎn)程調(diào)用技術(shù)會帶來頁面刷新問題,頁面刷新的時候會重新向服務(wù)器提交請求,服務(wù)器經(jīng)過運算后返回運算結(jié)果,客戶端得到運算結(jié)果并重新繪制整個頁面。如圖1所示,在此過程中會帶來以下問題:首先,用戶提交請求只是改變頁面上某個區(qū)域的數(shù)據(jù),而客戶端服務(wù)器卻會向遠(yuǎn)程服務(wù)器遞交整個頁面的刷新請求,這樣在遠(yuǎn)程服務(wù)器上就會對整個頁面的所有數(shù)據(jù)進(jìn)行運算;其次,遠(yuǎn)程服務(wù)器返回客戶端服務(wù)器以及客戶端服務(wù)器返回用戶的數(shù)據(jù)是整個頁面,這樣會暫用大量互聯(lián)網(wǎng)帶寬;最后,還要耗費客戶端資源來重繪頁面。

    圖2是無刷新技術(shù),該技術(shù)只需要在遠(yuǎn)程服務(wù)器上運算需要改變的那段數(shù)據(jù),在互聯(lián)網(wǎng)上傳輸改變的數(shù)據(jù),客戶端上也只繪制改變的內(nèi)容,這樣對服務(wù)器,對互聯(lián)網(wǎng)和對客戶端而言都節(jié)約了大量資源,并且由于改變的數(shù)據(jù)只是頁面上一小部分,所以對各方面而言運算出錯的幾率也大大降低。圖2和圖1最大的不同出現(xiàn)在步驟2、步驟3和步驟4。

    圖1 傳統(tǒng)遠(yuǎn)程過程調(diào)用技術(shù)

    圖2 無刷新遠(yuǎn)程過程調(diào)用技術(shù)

    2 無刷新Web遠(yuǎn)程過程調(diào)用技術(shù)(WebRPC)

    WebRPC的實現(xiàn)方式經(jīng)歷了從普通URL讀取,隱藏幀,IFrame,XMLHTTP乃至 Flash等,技術(shù)發(fā)展也越來越成熟。下面對幾種WebRPC技術(shù)分別作介紹,比較它們之間的優(yōu)缺點[1]。

    2.1 MSRS(Microsoft Remote Scripting)[2] & JSRS(Javascript Remote Scripting)[3]

    MSRS通過一個applet類以及頁面上的參數(shù)配置與服務(wù)器端交互,從而實現(xiàn)了遠(yuǎn)程調(diào)用。采用此項技術(shù)實際上將頁面不刷新的工作交給了一個名為rsproxy.class的不可見Applet完成。此方法的優(yōu)點:輕而易舉跨瀏覽器,缺點:由于服務(wù)器端采用微軟asp導(dǎo)致applet加載緩慢。此方法不支持?jǐn)?shù)據(jù)類型序列化/反序列化,同時支持異步/同步方式。

    JSRS是一種基于Javascript技術(shù)的無刷新遠(yuǎn)程內(nèi)容調(diào)用技術(shù),等同于目前的AJAX技術(shù)。支持兩種遠(yuǎn)程調(diào)用方式:HTTP GET方式(動態(tài)加載JS文件),HTTP POST方式(用JS動態(tài)創(chuàng)建一個Iframe,在其中提交一個表單),支持簡單數(shù)據(jù)的序列化/反序列化。圖3來自BlueShoes網(wǎng)站[3],瀏覽器和Web服務(wù)器之間通過Javascript腳本發(fā)生交互,在Web應(yīng)用程序驗證數(shù)據(jù)有效性的時候,瀏覽器端用戶可以繼續(xù)填寫頁面中其他文本表單。瀏覽器端開發(fā)人員可以創(chuàng)建無縫,交互式Web應(yīng)用程序來調(diào)用Web服務(wù)器的后臺數(shù)據(jù)。

    圖3 JSRS運行原理

    圖4 DWR運行原理

    2.2 XML-RPC[4] & DWR(Direct Web Remoting)[5]

    XML-RPC用XML語言對數(shù)據(jù)進(jìn)行編碼,編碼后的數(shù)據(jù)通過HTTP協(xié)議來供遠(yuǎn)程客戶端調(diào)用。它定義了一種協(xié)議規(guī)范,由于它的輕量級、概念完整,因此目前絕大多數(shù)語言都有實現(xiàn),包括Java(Apache xml-rpc),PHP,javascript,VBScript,python等等。最大的交流方式Blog協(xié)議,管理方法也遵循XML-RPC規(guī)范。優(yōu)點:絕大多數(shù)語言都支持,并且此語言簡單規(guī)范。缺點:Java實現(xiàn)對數(shù)據(jù)類型序列化支持有限。

    采用xmlhttp傳遞請求,服務(wù)器端利用反射找到相應(yīng)方法執(zhí)行后將結(jié)果返回。較有創(chuàng)意的是將服務(wù)器端需要進(jìn)行遠(yuǎn)程調(diào)用的代碼動態(tài)轉(zhuǎn)換為相應(yīng)的js代碼,前端可以直接顯式調(diào)用??梢宰鳛閃ebRPC學(xué)習(xí)入門。不支持?jǐn)?shù)據(jù)序列化。圖4來自DWR網(wǎng)站[6],Javascript函數(shù)eventHandler()是客戶端瀏覽器的一個訪問事件,它調(diào)用getOptions()方法,就好像AjaxService是一個Javascript對象一樣。開發(fā)人員可以讓DWR來完成客戶端和服務(wù)器端之間的數(shù)據(jù)通信。

    2.3 JSON-RPC[7] & Burlap[8] & XINS(XML Interface for Network Services)[9]

    與XML-RPC類似,JSON-RPC也是一個輕量級遠(yuǎn)程調(diào)用協(xié)議。在此協(xié)議之上進(jìn)行數(shù)據(jù)調(diào)用,采用xmlhttp發(fā)送/接受請求,支持完整的數(shù)據(jù)序列化/反序列。目前,jason Web框架采用json-rpc為底層方式。jabsorb(Java to JavaScript Object Request Broker)作為一個輕量級的Ajax/Web 2.0框架,使用JSON-RPC協(xié)議作為數(shù)據(jù)傳輸機制的,通過JavaScript來調(diào)用遠(yuǎn)程服務(wù)器上的Java Web應(yīng)用程序。在遠(yuǎn)程服務(wù)器端封裝或者未封裝的對象和客戶端之間的來回數(shù)據(jù)通信都可以通過jabsorb進(jìn)行處理。JSON完全使用了JavaScript自己的特性完成了數(shù)據(jù)的解析,在獲取遠(yuǎn)程服務(wù)器上數(shù)據(jù)的時候無需刷新整個Web頁面,通過JSON讀取遠(yuǎn)程服務(wù)器數(shù)據(jù)并在頁面局部區(qū)域呈現(xiàn)出來。

    Burlap是一個輕量級的機遇XML語言的協(xié)議,多用在移動設(shè)備Java應(yīng)用上,用于連接遠(yuǎn)程Resin服務(wù)器,支持?jǐn)?shù)據(jù)序列化。通過Burlap提供的API發(fā)起數(shù)據(jù)請求,然后基于XML-RPC協(xié)議將請求信息轉(zhuǎn)化為符合協(xié)議的XML格式,轉(zhuǎn)化為流進(jìn)行傳輸,客戶端瀏覽器接收到序列化的流數(shù)據(jù)后再根據(jù)XML-RPC協(xié)議進(jìn)行還原,返回結(jié)果寫入XML中,由Burlap返回至調(diào)用端。

    XINS是一個開源的Web服務(wù)框架,支持REST、SOAP、XML-RPC、JSON、JSON-RPC等HTTP協(xié)議。它由兩部分構(gòu)成,一個是基于XML語言的文檔描述格式,另一個是基于Java語言的應(yīng)用程序框架。圖5來自XINS官方網(wǎng)站[9],各種函數(shù)、類型等都由XML書寫,XML和XINS結(jié)合生成客戶端API(.jar)、java服務(wù)器代碼模板(.war)、WSDL文檔描述或者其他開放文檔格式。

    圖5 XINS工作原理

    圖6 WEBParts構(gòu)成一個完整頁面

    2.4 WebService behavior[10] & Web JS

    遠(yuǎn)程服務(wù)器上基于SOAP協(xié)議的Web服務(wù)常規(guī)下要通過編程來引用,而WebService behavior允許客戶端通過Javascript腳本來調(diào)用。這種客戶端腳本調(diào)用方式為程序員帶來了很大方便,程序員不需要去了解SOAP協(xié)議復(fù)雜的實現(xiàn)機制。這種方式通過一個HTML控件(HTC)文件來實現(xiàn),可用于IE5或以上版本的瀏覽器。除了微軟有一個Webservice.htc控件,mozilla也有相應(yīng)的Webservice訪問方式。因此,在HTML中訪問Webservice也是可行的。WebService behavior采用XML形式在客戶端和服務(wù)器端傳輸數(shù)據(jù),雖然這種數(shù)據(jù)傳輸方式的實時性比基于TCP/IP的Socket技術(shù)要弱,但其方便、簡單、開放的實現(xiàn)方式使其有著較強的競爭優(yōu)勢。

    作為無刷新遠(yuǎn)程內(nèi)容調(diào)用技術(shù)的后起之秀,Web JS實現(xiàn)起來更為方便,且首次引入了WebPart的概念。本技術(shù)把網(wǎng)頁頁面看做是由多個小區(qū)域構(gòu)成,這些小區(qū)域稱之為WebPart。如圖6所示,每個紅色矩形框起來的區(qū)域就是一個WebPart,每個WebPart的內(nèi)容都是調(diào)用遠(yuǎn)程服務(wù)器上的內(nèi)容,多個WebPart一起構(gòu)成一個完整的頁面,如果需要對頁面中的某個數(shù)據(jù)進(jìn)行更改,只需要更改該WebPart對應(yīng)的遠(yuǎn)程服務(wù)器上的內(nèi)容即可,本技術(shù)支持序列化。

    3 結(jié)束語

    無刷新Web遠(yuǎn)程過程調(diào)用技術(shù)是目前的研究熱點,其最大的優(yōu)點,可以在不刷新頁面的情況下調(diào)用服務(wù)端的數(shù)據(jù)。這種技術(shù)使用簡單,即使是缺乏專業(yè)編程技術(shù)的網(wǎng)站管理員也可以很方便的調(diào)用遠(yuǎn)程服務(wù)器上的數(shù)據(jù),實現(xiàn)本地網(wǎng)站動態(tài)內(nèi)容加載的功能。在此對本研究領(lǐng)域的集中常見技術(shù)進(jìn)行了對比,有利于研究者對本研究領(lǐng)域全面的了解,方便進(jìn)行更深入的研究。

    [1]WEB(Javascript)遠(yuǎn)程調(diào)用方案清單.mechiland的專欄[EB/OL].http:∥blog.csdn.net/mechiland/archive/2005/02/28/305740.aspx,[2005-02-08]

    [2]MSRS.微軟官方網(wǎng)站[EB/OL].2005-07.http:∥msdn.microsoft.com/library/default.asp?url=/library/en-us/rmscpt/Html/rmscpt1.asp,2005-07

    [3]JSRS.BlueShoes官方網(wǎng)站[EB/OL].http:∥www.blueshoes.org/en/javascript/jsrs/

    [4]SURU D,PIERRE W,MITRA W.Utilizing XML-RPC or SOAP on an Embedded System[M].Proceedings of the 24th International Conference on Distributed Computing Systems Workshops-W7:EC(ICDCSW'04).Mar.2004

    [5]SAMI S.DWR Java AJAX Applications[M].Packt Publishing,2008

    [6]DWR官方網(wǎng)站.http:∥directwebremoting.org/dwr/overview/dwr/

    [7]王魁生,王曉波.利用JSON進(jìn)行網(wǎng)站客戶端與服務(wù)器數(shù)據(jù)交互[J].軟件導(dǎo)刊,2010(3):147-149

    [8]Burlap.Caucho Technology,Inc[EB/OL].http:∥www.caucho.com/resin-3.1/doc/burlap.xtp

    [9]XINS.XINS官方網(wǎng)站[EB/OL].http:∥xins.sourceforge.net/index.html

    [10]楊啟亮,崇大平,刑建春,等.WebService Behavior技術(shù)及其應(yīng)用研究[J].計算機應(yīng)用與軟件,2008(2):146-149

    猜你喜歡
    序列化服務(wù)器端調(diào)用
    如何建構(gòu)序列化閱讀教學(xué)
    甘肅教育(2020年14期)2020-09-11 07:58:36
    核電項目物項調(diào)用管理的應(yīng)用研究
    LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
    淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
    成功(2018年10期)2018-03-26 02:56:14
    基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
    Java 反序列化漏洞研究
    在Windows中安裝OpenVPN
    作文訓(xùn)練微格化、序列化初探
    語文知識(2015年12期)2015-02-28 22:02:15
    利用RFC技術(shù)實現(xiàn)SAP系統(tǒng)接口通信
    網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
    甘泉县| 中山市| 扬州市| 云阳县| 长武县| 贵定县| 门头沟区| 久治县| 景洪市| 依兰县| 宜兰市| 镇原县| 周至县| 庄浪县| 吉木萨尔县| 玛沁县| 陆川县| 毕节市| 封开县| 许昌市| 如东县| 普陀区| 元氏县| 绥阳县| 荥阳市| 黄浦区| 灵台县| 娄底市| 宜兰市| 正阳县| 陵川县| 察隅县| 马山县| 高邮市| 三亚市| 宝应县| 临桂县| 齐齐哈尔市| 临澧县| 江华| 嵊州市|