1. hessian简介:
提起hessian,文章里基本都会提到这几个关键词,“WebService”,“二进制”,“RMI(远程方法调用)”,“接口暴露”,“Binary RPC协议”,“配置简单”等。
简单摘录一下,hessian是一种高效简洁的远程调用框架,它采用的是二进制RPC协议(Binary),具有轻量、传输量小、平台无关的特点,特别适合于目前网络带宽比较小的手机网络应用项目。
类似于WebService,不过不使用SOAP协议,而是用Binary RPC协议,相比webservice而言更简单、快捷。
它把协议报文封装到http封包中,通过HTTP信道传输。Hessian是通过servlet提供远程服务,完全使用动态代理来实现的,推荐采用面向接口编程,因此,Hessian服务建议通过接口暴露。
2.hessian优缺点:
提起一个技术,要使用它就是因为它的优点,并且相应的就会有其缺点。由于资料链接①中的内容写的很详细了,我就照搬过来了。
2.1.优点:
(1)简单易用,面向接口,通过接口暴露服务,jar包只有200、300k,不需要配置防火墙
(2)效率高,复杂对象序列化速度仅次于RMI,简单对象序列化优于RMI,二进制传输
(3)多语言支持:wiki、Java、Flash/Flex、Python、C++、.NET C#、PHP、Ruby、Objective-C
(4)可与spring集成,配置简单,使用HessianServiceExporter提供bean服务
2.2.缺点:
(1)缺乏安全机制,传输没有加密处理
(2)异常机制不完善,总是报一些错误,错误原因也是千奇百怪,提示信息不足
(3)事务处理欠缺
(4)版本问题,spring 2.5.6对照3.1.3版,spring 3对照4.0及以上版本,需要使用spring MVC部分内容
3. Q&A
同样照搬资料链接①。
1、是基于什么协议实现的?
基于Binary-RPC协议实现。
2、传输的标准格式是?
标准格式的二进制文件。
3、怎么发起请求?
需通过Hessian本身提供的API来发起请求。
4、怎么将请求转化为符合协议的格式的?
Hessian通过其自定义的串行化机制将请求信息进行序列化,产生二进制流。
5、使用什么传输协议传输?
Hessian基于Http协议进行传输。
6、响应端基于什么机制来接收请求?
响应端根据Hessian提供的API来接收请求。
7、怎么将流还原为传输格式的?
Hessian根据其私有的串行化机制来将请求信息进行反序列化,传递给使用者时已是相应的请求信息对象了。
8、处理完毕后怎么回应?
处理完毕后直接返回,hessian将结果对象进行序列化,传输至调用端。
4. 相关技术的比较:
wocao,资料链接①中整理的好详细,原本想多看几篇文章理解一下的,现在看来,这篇文章就够了。点链接看吧。
写的都不算原创了,就tag为转载吧。。。。。
文章链接:(主要参考了资料①和②,其中①对Hessian基础的超详细,可作面使用,②主要是原作者是叫孤傲苍狼的博主,超喜欢,安利。③就是扩展知识储备吧)
①.hessian 的简单介绍
http://blog.sina.com.cn/s/blog_71ec1eb50101atz2.html
②.Hessian学习总结(一)——Hessian入门
http://www.cnblogs.com/xdp-gacl/p/3897534.html
③.JAVA中都有哪几种分布式实现方式,各有什么优缺点
http://www.dewen.net.cn/q/2430