`

集中通讯方式的比较

 
阅读更多

一、综述
本文比较了RMI,Hessian,Burlap,Httpinvoker,web service等5种通讯协议的在不同的数据结构和不同数据量时的传输性能。
RMI是java语言本身提供的远程通讯协议,稳定高效,是EJB的基础。但它只能用于JAVA程序之间的通讯。
Hessian和Burlap是caucho公司提供的开源协议,基于HTTP传输,服务端不用开防火墙端口。协议的规范公开,可以用于任意语言。
Httpinvoker是SpringFramework提供的远程通讯协议,只能用于JAVA程序间的通讯,且服务端和客户端必须使用SpringFramework。
Web service是连接异构系统或异构语言的首选协议,它使用SOAP形式通讯,可以用于任何语言,目前的许多开发工具对其的支持也很好。
 
测试结果显示,几种协议的通讯效率依次为:
RMI > Httpinvoker >= Hessian >> Burlap >> web service
RMI不愧是JAVA的首选远程调用协议,非常高效稳定,特别是在大数据量的情况下,与其他通讯协议的差距尤为明显。
HttpInvoker使用java的序列化技术传输对象,与RMI在本质上是一致的。从效率上看,两者也相差无几,HttpInvoker与RMI的传输时间基本持平。
Hessian在传输少量对象时,比RMI还要快速高效,但传输数据结构复杂的对象或大量数据对象时,较RMI要慢20%左右。
Burlap仅在传输1条数据时速度尚可,通常情况下,它的毫时是RMI的3倍。
Web Service的效率低下是众所周知的,平均来看,Web Service的通讯毫时是RMI的10倍。
 
二、结果分析
1、直接调用
直接调用的所有毫时都接近0,这说明程序处理几乎没有花费时间,记录的全部时间都是远程调用耗费的。
2、RMI调用
与设想的一样,RMI理所当然是最快的,在几乎所有的情况下,它的毫时都是最少的。特别是在数据结构复杂,数据量大的情况下,与其他协议的差距尤为明显。
为了充分发挥RMI的性能,另外做了测试类,不使用Spring,用原始的RMI形式(继承UnicastRemoteObject对象)提供服务并远程调用,与Spring对POJO包装成的RMI进行效率比较。结果显示:两者基本持平,Spring提供的服务还稍快些。
初步认为,这是因为Spring的代理和缓存机制比较强大,节省了对象重新获取的时间。
3、Hessian调用
caucho公司的resin服务器号称是最快的服务器,在java领域有一定的知名度。Hessian做为resin的组成部分,其设计也非常精简高效,实际运行情况也证明了这一点。平均来看,Hessian较RMI要慢20%左右,但这只是在数据量特别大,数据结构很复杂的情况下才能体现出来,中等或少量数据时,Hessian并不比RMI慢。
Hessian的好处是精简高效,可以跨语言使用,而且协议规范公开,我们可以针对任意语言开发对其协议的实现。目前已有实现的语言有:java, c++, .net, python, ruby。还没有delphi的实现。
另外,Hessian与WEB服务器结合非常好,借助WEB服务器的成熟功能,在处理大量用户并发访问时会有很大优势,在资源分配,线程排队,异常处理等方面都可以由成熟的WEB服务器保证。而RMI本身并不提供多线程的服务器。而且,RMI需要开防火墙端口,Hessian不用。
4、Burlap调用
Burlap与Hessian都是caucho公司的开源产品,只不过Hessian采用二进制的方式,而Burlap采用xml的格式。
测试结果显示,Burlap在数据结构不复杂,数据量中等的情况下,效率还是可以接受的,但如果数据量大,效率会急剧下降。平均计算,Burlap的调用毫时是RMI的3倍。
我认为,其效率低有两方面的原因,一个是XML数据描述内容太多,同样的数据结构,其传输量要大很多;另一方面,众所周知,对xml的解析是比较费资源的,特别对于大数据量情况下更是如此。
5、HttpInvoker调用
HttpInvoker是SpringFramework提供的JAVA远程调用方法,使用java的序列化机制处理对象的传输。从测试结果看,其效率还是可以的,与RMI基本持平。
不过,它只能用于JAVA语言之间的通讯,而且,要求客户端和服务端都使用SPRING框架。
另外,HttpInvoker 并没有经过实践的检验,目前还没有找到应用该协议的项目。
6、web service调用
       本次测试选用了apache的AXIS组件作为WEB SERVICE的实现,AXIS在WEB SERVICE领域相对成熟老牌。
为了仅测试数据传输和编码、解码的时间,客户端和服务端都使用了缓存,对象只需实例化一次。但是,测试结果显示,web service的效率还是要比其他通讯协议慢10倍。
如果考虑到多个引用指向同一对象的传输情况,web service要落后更多。因为RMI,Hessian等协议都可以传递引用,而web service有多少个引用,就要复制多少份对象实体。
Web service传输的冗余信息过多是其速度慢的原因之一,监控发现,同样的访问请求,描述相同的数据,web service返回的数据量是hessian协议的6.5倍。另外,WEB SERVICE的处理也很毫时,目前的xml解析器效率普遍不高,处理xml <-> bean很毫资源。从测试结果看,异地调用比本地调用要快,也从侧面说明了其毫时主要用在编码和解码xml文件上。这比冗余信息更为严重,冗余信息占用的只是网络带宽,而每次调用的资源耗费直接影响到服务器的负载能力。(MS的工程师曾说过,用WEB SERVICE不能负载100个以上的并发用户。)
测试过程中还发现,web service编码不甚方便,对非基本类型需要逐个注册序列化和反序列化类,很麻烦,生成stub更累,不如spring + RMI/hessian处理那么流畅简洁。而且,web service不支持集合类型,只能用数组,不方便。
分享到:
评论

相关推荐

    集中器通讯规约(广东电网)

    本规约规定了低压电力用户集中抄表系统...除短信息通讯规约外,该规约只定义了上下行的通讯数据格式,没有定义通讯方式,如:RS232串口,GPRS/CDMA无线网络,电话线,485总线等,无论选择那种通讯方式,格式保持一致。

    OpenDDS启动集中发现服务DCPSInfoRepo的多种方式.docx

    OpenDDS启动集中发现服务DCPSInfoRepo的多种方式,集中发现是OpenDDS通讯的一种基本方式,也是初学OpenDDS者常用的方式(主要是基于历史的C/S架构模式),参照样例,可快速构建集中发现服务、发布和订阅端通讯。

    Android不同Activity之间的通信方式

    android不同Activity之间的通信方式,几秒钟教会你Android中集中常用的Activity通信

    电信设备-一种基于复合通讯方式的集中抄表系统.zip

    电信设备-一种基于复合通讯方式的集中抄表系统.zip

    城市轨道交通通信集中告警系统的方案设计.pdf

    分散,因此有必要设置集中告警系统对整个通信系统进行有 效的集中维护管理。结合集中故障告警系统在苏州轨道交 通1号线的应用,说明了设置该系统的必要性。通信集中告 警系统普遍采用协调方式实现。由于采用模块...

    基于无线通信的选煤厂PLC集中控制系统

    针对现有选煤厂PLC集中控制系统与现场设备之间采用有线通信方式,存在布线复杂、通信电缆损坏率高的问题,提出了一种基于无线通信的选煤厂PLC集中控制系统设计方案。该系统通过通信模块CP340和数传电台实现下位机控制...

    通信电源-集中供电方式.pptx

    通信电源

    永湖泵站串行通信设备的集中管理设计.pdf

    直接连接和间接集中管理两种常用连接方式,并比较了两种连接方式的适用场合。针对该泵 站现场串口设备多的特点,提出了间接集中管理连接方式在深圳市东江水源工程永湖泵站中 的运用,泵站监控PLC通过嵌入式通信...

    电力线载波集中抄表系统

    电力线载波通信 1.引言 4 1.1编写目的 4 1.2参考资料 4 1.3问题反馈 4 2.广东电力线载波集中抄表系统客户端软件使用说明 5 2.0安装、运行与卸载 5 2.0.1安装客户端软件 5 2.0.2安装后设置 6 2.0.2.1 本地前置机设置 ...

    RS485通讯协议简介

    通讯协 议采用 MODBUS 标准通讯协议, 该变频器可以作为从机与具有相同通讯接口并采 用相同通讯协议的上位机(如 PLC 控制器、PC 机)通讯,实现对变频器的集中 监控,另外用户也可以使用一台变频器作为主机,通过 ...

    西门子PLC通讯详解.pdf

    介绍了西门子的集中通讯协议方式MPI网络通信(包括组态、无阻态连接),profibus网络通讯、以太网通讯

    基于集中器本地化计量控制通信方式研究

    计量采集系统由于点多且分散,有线的接入方式限制了其扩展建设的灵活性,无线方式更能适应业务的接入需求。但目前计量采集系统是由营销主站集中式管控所辖庞大的电表量,不仅给主站数据处理造成压力,而且在电表运维...

    电子通信设计资料基于单片机的电集中抄表设计论文资料

    电子通信设计资料基于单片机的电集中抄表设计论文资料提取方式是百度网盘分享地址

    双模通信技术在电力远程集中抄表系统的应用

    电力远程集中抄表系统(简称“集抄系统”)是基于计算机、通信技术为基础,对电能表进行数据采集、传输和处理的大型信息系统,它是抄表方式的一种技术进步,可以提高抄表及时率、降低人工抄表差错率、发现用电异常及时...

    串口通讯课件讲解串口芯片的实现

    讲解串口通讯的集中方式,汲取实现合历程 SPI IIC 合一线总线等等

    wincc串口通讯

    引言 本文所涉及到的通讯任务来自于某热电厂的输煤自动控制系统。...该智能仪表提供的是一个 RS232 的串行接口,且它使用8051 主从式多站通讯方式,即主机主动查询从站,从站根据不同指令分别响应不同信息。

    SR90通讯协议(1).pdf

    SR90通讯协议 modbus PLC作为一种高效、灵活、可靠的控制器,已经广泛地应用在包括数字逻辑控制、运动控制、闭环过程控制、数据处理...这种通信方式硬件投入低,通信协议灵活,可以在多个工业控制领域得到广泛的应用。

    基于DBPSK低压电力线载波通信和微功率无线通信的双模通信在低压载波集抄系统中的应用.pdf

    信方式作为通信手段,两种信道集成到一个通信模块中,通信方式以载波为主,无线为辅, 通过双通道通信方案可有效解决现场电力线载波抄表存在的盲区和孤岛问题,对建设低压集 抄采集系统具有重要意义。

    消费电子中的基于ARM的远程电表抄表系统集中器

    采集器通过总线方式(多为485总线)收集电表信息,然后再通过总线将信息传输到集中器上,集中器可通过以太网或者公网无线方式和主站管理中线通信。系统中采集器和集中器容易产生混淆。电表主要是用来测量电能的;...

    SDH自愈环保护方式选择

    指出对于集中业务,两种保护方式可提供的最大通道数相等,此时选通道保护则使系统简单。对于分散分布的业务,复用段共享保护可提供更多的通道,但引入K字节通讯增加了系统复杂性,且增长了倒换时间。

Global site tag (gtag.js) - Google Analytics