`
fancyboy2050
  • 浏览: 238825 次
  • 性别: Icon_minigender_1
  • 来自: 皇城根儿下
社区版块
存档分类
最新评论

Hessian学习

阅读更多
组长说要大家一起学习下Hessian,于是开始各个网站搜寻相关信息,然后组织了一遍。
个人觉得这个东西会用就行,它的原理对我们好像没什么太大的价值。^_^

Hessian介绍:
Hessian是一个轻量级的remoting on http工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据 【百度百科】
下面几种常用通讯协议的比较:
http://www.360doc.com/content/08/1123/11/56145_1984046.shtml

Hessian的优点:
二进制传输,速度快
易用性:编码简单
基于http协议,可以穿透防火墙

Hessian原理:
客户端:
客户端主要是通过 HessianProxyFactory 的 create 方法就是创建接口的代理类,该类实现了接口, JDK 的 proxy 类会自动用 InvocationHandler 的实现类(该类在 Hessian 中表现为 HessianProxy )的 invoke 方法体来填充所生成代理类的方法体。
服务端:
Hessian的server端通过HessianServlet处理客户端发送过来的请求,匹配到相应的Hessian服务进行处理。

Hessian的使用方式:
1. 不使用其他框架配合,纯的Hessian.jar的调用
2. Hessian与Spring整合【现在大多数都使用这个组合】
Hessian通过HessianServlet提供远程服务,纯的使用Hessian时可在web.xml配置相应的映射到Hessian服务。如果与spring整合,则Spring的DispatcherServlet可将匹配模式的请求转发到Hessian服务,web.xml只是定义了请求转发器,该转发器将匹配相应模式的请求截获,转发给context的bean处理。而HessianServiceExporter提供bean服务。
1:通过DispatcherServlet来拦截URL请求。
2:HessianServiceExporter提供bean服务,Spring使用HessianServiceExporter,将一个常规bean导出成Hessian服务

Hessian编程:
Hessian的远程调用,完全使用动态代理实现,推荐使用面向接口的编程,所有的服务以接口的形式提供给客户端,这样在大部分情况下,当服务端的具体实现有变化时,无需重新分发jar包给客户端,我们只需要把服务端进行修正发布即可,这样当有多个客户端对当前服务端有远程调用时,实用性更明显。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics