分享
 
 
 

WEB(Javascript)远程调用方案清单

王朝html/css/js·作者佚名  2008-05-20
窄屏简体版  字體: |||超大  

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

支持,不同的平台上各有扩展

同步+异步

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有