应用层协议

目前,应用层协议主要有以下几种:

①远程登录协议(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 构架,设计了下列组件:编码组件、解码组件、通信组件、报告故障组件、代理组件、调用服务过程组件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值