• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • WEB(Javascript)遠程調用方案清單

    發表于:2007-06-21來源:作者:點擊數: 標簽:
    Web遠程過程調用(以下簡稱WebRPC)是在不刷新頁面的前提下,對遠程方法進行調用,是最近的一個熱點;在一些場合下,他甚至成為不可替代的實現方式。WebRPC的實現方式經歷了從普通URL讀取,隱藏幀,IFrame, XMLHTTP乃至 Flash等。 本文將對目前存在的WebRpc

       

      Web遠程過程調用(以下簡稱WebRPC)是在不刷新頁面的前提下,對遠程方法進行調用,是最近的一個熱點;在一些場合下,他甚至成為不可替代的實現方式。WebRPC的實現方式經歷了從普通URL讀取,隱藏幀,IFrame, XMLHTTP乃至 Flash等。

    本文將對目前存在的WebRpc方案(產品)進行列表,并作簡單評價。



      評價將在以下幾個方面進行:客戶端實現方式,服務器端實現方式,是否自行封裝協議,是否支持序列化/反序列化,序列化支持是否完備(原子類型,對象類型),是否支持異步/同步方式。注意,由于Web方式的遠程調用沒有得到大規模運用。筆者自己并沒有在企業應用中采用WebRPC的經驗,但在娛樂應用、在線游戲中,已經得到了相當好的運用。這些應用已經在《面向異步消息的Web應用(AMOWA)》中得到詳細論述,有興趣的可以在產品指南欄目中閱讀這篇文章。



      1 MSRS (Microsoft Remote Scripting)




      地址:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/rmscpt/Html/rmscpt1.asp


     


      簡介:在網頁出現的早期,瀏覽器功能有限。Applet的出現,為MSRS提供了平臺。在這項方案中,MSRS通過一個applet類以及頁面上的參數配置,來與服務器端交互,從而實現了遠程調用。采用此項技術實際上將頁面不刷新的工作交給了一個名為rsproxy.class的不可見Applet完成。我見過早期的在線Web象棋采用此項方案。優點:輕而易舉跨瀏覽器;缺點:服務器端采用微軟asp, applet加載緩慢;不支持數據類型序列化/反序列化。



      2 JSRS (Javascript Remote Scripting)




      地址:http://www.blueshoes.org/en/javascript/jsrs/


     


      簡介:支持兩種數據訪問方式:HTTP GET方式(動態加載JS文件),HTTP POST方式(用JS動態創建一個Iframe, 在其中提交一個表單)。不用刷新頁面,支持簡單數據的序列化/反序列化。



      3 XML-RPC




      地址:http://www.xmlrpc.org/


     


      簡介:XML-RPC定義了一種協議規范,由于它的輕量級、概念完整,因此目前絕大多數語言都有實現,包括Java(Apache xml-rpc), PHP, javascript, VBScript, python等等。最大的交流方式Blog協議,管理方法也遵循XML-RPC規范。優點:絕大多數語言都支持,簡單,規范。缺點:Java實現對數據類型序列化支持有限



      4 dwr (Direct Web Remoting)




      地址:https://dwr.dev.java.net/


     


      簡介:一個在適當時候提出適當概念的小東西。采用xmlhttp傳遞請求,服務器端利用反射找到相應方法執行后將結果返回。較有創意的是,他將服務器端需要進行遠程調用的代碼動態轉換為相應的js代碼,前端可以直接顯式調用。簡單,可以作為WebRPC學習入門。不支持數據序列化



      5 JSON-RPC




      地址:http://oss.metaparadigm.com/jsonrpc/


     


      簡介:采用一種沒聽說過的數據交換協議JSON(JavaScript Object Notation, http://www.crockford.com/JSON/) 作為協議基礎,在此之上進行數據調用,采用xmlhttp發送/接受請求,支持完整的數據序列化/反序列。目前,jason Web框架采用json-rpc為底層方式。



      6 Burlap (http://caucho.com/burlap/index.xtp)




      簡介:也許會奇怪,為什么Burlap也能夠算得上遠程協議。實際上,與Hessian實現方式基本相同的Burlap(前者為二進制,后者為文本), 在協議完整性上能夠超過上述任一產品。目前我已經實現了JS調用Burlap服務的代碼,是目前所有遠程調用方式中最為優雅的實現。



      7 XINS (XML Interface for Network Services)




      地址:http://xins.sourceforge.net/index.html


      簡介:按照官方網站的說法,SOA + Java + XML + code_generation - complexity => XINS。這個龐大的東西需要定義一攬子描述文件然后才能在HTML中進行調用。從外觀上看,這是最像樣子的解決方案。對其了解不多,不做評價。



      8 WebService, SOAP




      簡介:除了微軟有一個webservice.htc控件,mozilla也有相應的webservice訪問方式。因此,在HTML中訪問webservice也是可行的。只是這種協議過于笨重,除非必要,沒有人會在web客戶端中使用。





































































     



    客戶端實現方式


    服務器端實現方式


    是否自行封裝協議


    序列化/反序列化


    同步方式/異步方式


    MSRS


    Applet


    Microsoft ASP





    不支持


    同步+異步


    JSRS


    Iframe/動態加載js


    多種,php, java等





    不支持


    同步


    XML-RPC


    Xmlhttp等多種方式


    絕大多數語言都有支持


    XML-RPC


    支持,Java實現有限支持,不支持自定義對象


    同步+異步


    DWR


    Xmlhttp


    Java





    很弱


    同步+異步


    JSON-RPC


    Xmlhttp


    Java


    JSON


    支持


    同步+異步


    Burlap


    Xmlhttp


    Java


    Burlap


    完全支持


    同步+異步


    XINS


    Xmlhttp


    Java





    支持


    同步+異步


    WebService


    IE采用.htc, mozilla內置支持


    不定,遵循webservice規范以及SOAP協議


    SOAP


    支持,不同的平臺上各有擴展


    同步+異步

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>