Hessian学习(一)——Hessian原理分析

一、远程通讯协议的基本原理:

        网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络 IO 来实现。

        其中传输协议比较出名的有 http 、tcp 、udp 等等, http 、tcp 、udp 都是在基于 Socket 概念上为某类应用场景而扩展出的传输协议。

        网络IO主要有 bio 、nio 、aio 三种方式,所有的分布式应用通讯都基于这个原理而实现,只是为了应用的易用,各种语言通常都会提供一些更为贴近应用易用的应用层协议。

二、应用级协议 Binary-RPC:

       Binary-RPC 是一种和 RMI 类似的远程调用的协议,它和 RMI 的不同之处在于它以标准的二进制格式来定义请求的信息 ( 请求的对象、方法、参数等 ) 。这样的好处是在跨语言通讯的时候也可以使用。

 Binary -RPC 协议的一次远程通信过程:

        1 、客户端发起请求,按照 Binary -RPC 协议将请求信息进行填充;

        2 、填充完毕后将二进制格式文件转化为流,通过传输协议进行传输;

        3 、接收到在接收到流后转换为二进制格式文件,按照 Binary -RPC 协议获取请求的信息并进行处理;

扫描二维码关注公众号,回复: 280912 查看本文章

        4 、处理完毕后将结果按照 Binary -RPC 协议写入二进制格式文件中并返回。

 Binary-RPC相关问题总结:

        1 、传输的标准格式是?

           ——— 标准格式的二进制文件。

        2 、怎么样将请求转化为传输的流?

           ———    将二进制格式文件转化为流。

        3 、怎么接收和处理流?

           ———通过监听的端口获取到请求的流,转化为二进制文件,根据协议获取请求的信息,进行处理并将结果写入 XML 中返回。

        4 、传输协议是?

          ———Http 。

三、Hessian ——一种实现远程通讯的 library

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

1 、是基于什么协议实现的?

       ——基于 Binary-RPC 协议实现。

2 、怎么发起请求?

      ——需通过 Hessian 本身提供的 API 来发起请求。

3 、怎么将请求转化为符合协议的格式的?

      ——Hessian 通过其自定义的串行化机制将请求信息进行序列化,产生二进制流。

4 、使用什么传输协议传输?

      ——Hessian 基于 Http 协议进行传输。

5 、响应端基于什么机制来接收请求?

      ——响应端根据 Hessian 提供的 API 来接收请求。

6 、怎么将流还原为传输格式的?

      ——Hessian 根据其私有的串行化机制来将请求信息进行反序列化,传递给使用者时已是相应的请求信息对象了。

7 、处理完毕后怎么回应?

      —— 处理完毕后直接返回, hessian 将结果对象进行序列化,传输至调用端。

猜你喜欢

转载自guwq2014.iteye.com/blog/2398189