`
阅读更多
目前,应用层协议主要有以下几种:

①远程登录协议(Telnet);

②文件传送协议(file transfer protocol,FTP);

③简单邮件传送协议(simple mail ttransfer protocol,SMTP);

④域名系统(domain name system,DNS);

⑤简单网络管理协议(simple network management protocol,SNMP);

⑥超文本传送协议(hyper text transfer protocol,HTTP).

webservice、rpc、rmi、jms实现远程方法调用的区别

webservice、jms、rpc、rmi的区别

 

web service提供的服务是基于web容器的,底层使用http协议,类似一个远程的服务提供者,

比如天气预报服务,对各地客户端提供天气预报,是一种请求应答的机制,是跨系统跨平台的。

就是通过一个servlet,提供服务出去。

 

RPC可以灵活的定义其所基于的协议,如果定义为HTTP,则与Web Service就没有什么区别了,

一般都喜欢定义为TCP,这样比Web Service稍微高效一些。

 

RPC一般需要通过一个WinForm或是Windows服务进行启动,而Web Service则需要web服务进行启动

 

即 RPC 支持多种语言,而 RMI 只支持 Java 写的应用程序。 

另外 RMI 调用远程对象方法,允许方法返回 Java 对象以及基本数据类型。

而 RPC 不支持对象的概念,传送到 RPC 服务的消息由外部数据表示 (External Data Representation, XDR) 语言表示,

这种语言抽象了字节序类和数据类型结构之间的差异。只有由 XDR 定义的数据类型才能被传递, RPC 不允许传递对象。

可以说 RMI 是面向对象方式的 Java RPC 。

 

JMS 与RMI 

 Java 消息服务 ( Java Messaging Service, JMS ) 是一种允许应用程序创建、发送、接受和读取消息的Java API 。 

 JMS 与 RMI 的区别在于,采用 JMS 服务,对象是在物理上被异步从网络的某个 JVM 上直接移动到另一个 JVM 上

 (支持消息通知?如xmpp协议)JMS 消息的两种模式(Point-to-Point(P2P)和Publish/Subscribe(Pub/Sub) )

 而 RMI 对象是绑定在本地 JVM 中,只有函数参数和返回值是通过网络传送的(是请求应答机制)。

 

代理模式为其他对象提供一种代理以控制对目标对象的访问,Java动态代理则为代理模式提供了一种简单易用的框架。基于HTTP协议的Java对象隧道技术实现对象消息传递,可以方便地把这个技术集成到应用系统中。在介绍Java代理模式和基于HTTP协议的Java对象隧道技术的基础上,提出了基于二者的一种RMI框架的设计与实现。该框架不但可以穿越企业内外网防火墙,而且使得部署RMI应用与普通Web应用一样简单。

 

目前,Web服务技术是解决异构平台系统的集成及互操作问题的主流技术[1]。它所基于的XML已经是Internet上交换数据的实际标准,基于通用的进程间通信协议和网络传输协议屏蔽平台的差异,可以将各种异构环境下的通信及调用请求均统一为标准的Web服务格式[3]。
但是由于SOAP协议的结构问题会使封装的数据膨胀数倍。当传输数据量比较小时,问题不是那么明显,但是当进行大数据量传输时就会导致Web服务的传输性能在实际运用中降低了很多。这对于经常有大数据量数据交换的应用系统来说是不适用的。
Caucho Technology公司制定的HBWSP(Hessian Binary Web Service Protocol)[2]在这方面的有所突破。Hessian协议和web service常用的SOAP协议类似,也是将协议报文封装在HTTP封包中,通过HTTP信道进行传输的。因此Hessian协议具有与SOAP协议同样的优点,即传输不受防火墙的限制(防火墙通常不限制HTTP信道)。Hessian协议的优势在于:它把本地格式的数据编码为二进制数据,仅用一个字符作为结构化标记,HBWSP封装后的数据增量明显小于SOAP封装后的数据增量。并且相对于SOAP,Hessian协议的外部数据表示有3个显著的优势:
1)采用简单的结构化标记。简单的结构化标记减少了编码、解码操作对内存的占用量。编码时,只需写少量的数据,就可以标记结构;解码时,只需读少量的数据就可以确定结构。而且,简单的结构化标记减少了编码后的数据增量。
2)采用定长的字节记录值。用定长的字节记录值,解码时,就可以使用位操作从固定长度的位获得值。这样不仅操作简单,而且可以获得较高的性能。
3)采用引用取代重复遇到的对象。使用引用取代重复遇到的对象可以避免对重复对象的编码,而且也减少了编码后的数据量。
因此使用Hessian协议传输数据量比SOAP协议要小得多。实践证明,传输同样的对象Hessian协议传输的数据量比SOAP协议低一个数量级。因此Hessian协议比SOAP协议更适用于分布式应用系统间大数据量的数据交换。
4.2 Hessian协议的实现构架
Hessian协议的实现构架如图3所示:为了实现Hessian 构架,设计了下列组件:编码组件、解码组件、通信组件、报告故障组件、代理组件、调用服务过程组件。

分享到:
评论

相关推荐

    应用层协议识别算法综述

    应用层协议识别算法是计算机网络领域的一个重要研究方向,它主要关注如何在复杂的网络环境中准确地识别出不同的应用层协议,从而实现对网络流量的有效管理和优化。应用层协议识别算法的发展,不仅对于网络安全、网络...

    电力系统实时数据通信应用层协议

    电力系统实时数据通信应用层协议是电力自动化领域中至关重要的技术之一,它规范了电力系统内部设备间数据交换的方式和格式。在电力系统的运行与维护中,高效、准确的数据通信对于确保电网的安全稳定运行至关重要。...

    CAN总线应用层协议.pdf

    CAN总线应用层协议.pdf

    应用层协议与应用

    应用层协议与应用应用层协议与应用应用层协议与应用

    嵌入式系统TCP_IP应用层协议_11031410.rar

    嵌入式系统TCP/IP应用层协议是网络通信中的一个重要组成部分,尤其在当今物联网技术日益发展的时代,嵌入式设备与互联网的交互变得越来越普遍。应用层是TCP/IP协议栈的最高层,它负责处理特定的应用程序,如HTTP、...

    C++网络编程实例文件之第五章 应用层协议及编程实例

    第五章 应用层协议及编程实例 第六章 传输层协议及编程实例 第七章 网络层协议和数据链路层 第八章 Internet通信原理以及编程实例 第九章 基于Windows API的虚拟终端实现 第十章 多线程网络文件传输的设计与实现 第...

    DLT 476-2012 电力系统实时数据通信应用层协议

    ### DLT 476-2012 电力系统实时数据通信应用层协议 #### 知识点一:电力系统实时数据通信的重要性 在现代电力系统中,实时数据通信对于确保电网的安全稳定运行至关重要。随着电力系统的日益复杂化以及智能电网技术...

    应用层协议与应用.rar

    在互联网的世界里,应用层协议是网络通信的核心组成部分,它定义了应用程序如何通过网络进行数据交换。本资源“应用层协议与应用.rar”显然聚焦于这个主题,旨在深入解析应用层的各种协议及其在网络中的作用。这里...

    VC++_应用层协议及编程实例

    《VC++_应用层协议及编程实例》是一个针对VC++初、中级学习者以及对VC++设计有热情的读者的专业教程。本教程旨在深入讲解如何使用VC++进行网络通信,特别是涉及应用层协议的编程实践。通过这个教程,你可以了解到...

    第4部分:应用层协议规范

    由于给定文件信息中描述的内容重复且未提供实质性的技术内容,因此我将基于【标题】中提及的“hart应用层协议规范”进行知识点的阐述。HART (Highway Addressable Remote Transducer) 协议是一种广泛应用于工业自动...

    SAEJ1939_应用层协议

    SAEJ1939 应用层协议 CAN 恒润科技内部培训资料

    CAN 应用层协议分析

    对CAN应用层协议给予了详细的描述。通过本文可以对CAN应用层协议有个概括性的了解。

    [TCP/IP指南(卷2)应用层协议_清晰版].CharlesM.Kozierok.pdf.zip

    《TCP/IP指南(卷2)应用层协议》是由Charles M. Kozierok编著的一本深入解析TCP/IP协议栈中应用层协议的专业书籍。这本书是TCP/IP指南系列的一部分,全面且详细地介绍了网络通信中最高层次——应用层的各种协议,帮助...

    TCPIP应用层协议分析视频

    教程名称:TCPIP 应用层协议分析视频课程目录:【】TCPIP 第一部分 FTP【】TCPIP 第三部分 HTTP【】TCPIP 第二部分 Telnet【】TCPIP 第五部分 SSL【】TCPIP 第六部分 SNMP【】TCPIP 第四部分 SMTP POP3 资源太大,传...

    计算机网络协议分析(数据层、网络层、传输层、应用层协议分析)

    **应用层协议分析** 应用层是用户直接交互的层级,协议如HTTP(超文本传输协议)用于网页浏览,FTP(文件传输协议)用于文件传输,DNS(域名系统)则负责将人类可读的域名转换为IP地址。HTTP是基于TCP的,保证了...

    应用层协议识别

    该论文可以有效识网络中传输数据的协议,准确率高,效率高。

    GBZ25105.2-2010工业通信网络现场总线规范类型10PROFINETIO规范第2部分:应用层协议规范

    GBZ25105.2-2010工业通信网络现场总线规范类型10PROFINETIO规范第2部分:应用层协议规范

    计算机网络应用层协议-测试题.pdf

    计算机网络应用层协议测试题 计算机网络应用层协议是计算机网络中的一层,负责在网络中提供各种服务,例如文件传输、电子邮件传输、域名解析等。应用层协议是计算机网络中最高的一层,直接面向用户,提供了各种服务...

    DNP3应用层协议规范

    DNP3协议由多个层次组成,其中应用层协议规范是其核心部分之一,负责数据的提取和传输。本文档作为DNP3协议规范的第二卷,聚焦于详细解读应用层协议规范。 首先,DNP3协议的设计目的是在通信网络中提供可靠的、事件...

Global site tag (gtag.js) - Google Analytics