当前位置: 首页 > 工具软件 > Hessian > 使用案例 >

Hessian

宋昕
2023-12-01

首先Hessian的概念是:由 caucho 提供的一个基于 binary-RPC 实现的远程通讯 library。

那么什么是binary-RPC: Binary-RPC 是一种和 RMI 类似的远程调用的协议

来看看Binary-RPC和RMI的区别:

StepRPC 基于http协议RMIbinary-RPC   基于http协议
1执行客户端调用语句,传送参数客户调用客户端辅助对象stub上的方法客户端发起请求,按照 Binary -RPC 协议将请求信息进行填充
2调用本地系统发送网络消息客户端辅助对象stub打包调用信息(变量,方法名),通过网络发送给服务端辅助对象skeleton填充完毕后将标准格式的二进制文件转化为流,通过传输协议进行传输
3消息传送到远程主机服务端辅助对象skeleton将客户端辅助对象发送来的信息解包,找出真正被调用的方法以及该方法所在对象接收到在接收到流后转换为二进制格式文件,按照 Binary -RPC 协议获取请求的信息并进行处理
4服务器得到消息并取得参数 调用真正服务对象上的真正方法,并将结果返回给服务端辅助对象skeleton处理完毕后将结果按照 Binary -RPC 协议写入二进制格式文件中并返回
5根据调用请求以及参数执行远程过程(服务)服务端辅助对象将结果打包,发送给客户端辅助对象stub 
6执行过程完毕,将结果返回服务器句柄客户端辅助对象将返回值解包,返回给调用者 
7服务器句柄返回结果,调用远程主机的系统网络服务发送结果客户获得返回值 
8消息传回本地主机   
9客户端句柄由本地主机的网络服务接收消息  
10客户端接收到调用语句返回的结果数据  

 

Hessian的序列化与反序列化

Hessian中 AbstractSerializerFactory , AbstractHessianOutput , AbstractSerializer , AbstractHessianInput , AbstractDeserializer 是 实现序列化和反序列化的核心结构代码。

SerializerFactory有很多静态 map 用来存放类与序列化和反序列化工具类的映射,在 SerializerFactory 中,实现了抽象类的 getSerializer 方法,根据不同的需要被序列化的类来获得不同的序列化工具,一共有 17 种序列化工具, hessian 为不同的类型的 java 对象实现了不同的序列化工具,默认的序列化工具是 JavaSerializer 。

 

 

 类似资料:

相关阅读

相关文章

相关问答