什么是Hessian协议呢?

目前,Web服务技术是解决异构平台系统的集成及互操作问题的主流技术。

它所基于的XML已经是Internet上交换数据的实际标准,基于通用的进程间通信协议和网络传输协议屏蔽平台的差异,可以将各种异构环境下的通信及调用请求均统一为标准的Web服务格式,但是由于SOAP协议的结构问题会使封装的数据膨胀数倍。当传输数据量比较小时,问题不是那么明显,但是当进行大数据量传输时就会导致Web服务的传输性能在实际运用中降低了很多。这对于经常有大数据量数据交换的应用系统来说是不适用的。
Caucho Technology公司制定的HBWSP(Hessian Binary Web Service Protocol)[2]在这方面的有所突破。Hessian协议和webservice常用的SOAP协议类似,也是将协议报文封装在HTTP封包中,通过HTTP信道进行传输的。因此Hessian协议具有与SOAP协议同样的优点,即传输不受防火墙的限制(防火墙通常不限制HTTP信道)。

Hessian协议的优势在于:它把本地格式的数据编码为二进制数据,仅用一个字符作为结构化标记,HBWSP封装后的数据增量明显小于SOAP封装后的数据增量。并且相对于SOAP,Hessian协议的外部数据表示有3个显著的优势:

1)采用简单的结构化标记。简单的结构化标记减少了编码、解码操作对内存的占用量。编码时,只需写少量的数据,就可以标记结构;解码时,只需读少量的数据就可以确定结构。而且,简单的结构化标记减少了编码后的数据增量。
2)采用定长的字节记录值。用定长的字节记录值,解码时,就可以使用位操作从固定长度的位获得值。这样不仅操作简单,而且可以获得较高的性能。
3)采用引用取代重复遇到的对象。使用引用取代重复遇到的对象可以避免对重复对象的编码,而且也减少了编码后的数据量。

因此使用Hessian协议传输数据量比SOAP协议要小得多。实践证明,传输同样的对象Hessian协议传输的数据量比SOAP协议低一个数量级。因此Hessian协议比SOAP协议更适用于分布式应用系统间大数据量的数据交换。

soap协议

简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息

SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。SOAP使用基于XML的数据结构超文本传输协议(HTTP)的组合定义了一个标准的方法来使用Internet上各种不同操作环境中的分布式对象

4.2 Hessian协议的实现构架
Hessian协议的实现构架如图3所示:为了实现Hessian 构架,设计了下列组件:编码组件、解码组件、通信组件、报告故障组件、代理组件、调用服务过程组件。

首先客户端发出本地请求,代理组件响应请求依据服务接口,生成客户端存根,并调用编码组件对本地请求进行基于Hessian Binary Web Service Protocol标准的二进制编码。然后调用通信组件将请求发送给服务器端。服务器端通信组件接收到请求后把请求转发给调用服务过程组件,调用服务过程组 件会首先调用解码组件,得到过程标识,将过程标识转给服务器端存根,并依据部署文件和客户端的请求加载服务过程的实现类。然后根据过程标识、过程参数调用 服务过程。最后调用编码组件将响应结果进行编码并通过通信组件返回给客户端。
当数据传输、通信发生错误的时候就需要启用报告故障组件,它可以以异常的形式,报告发送端、接收端、或者网络连接发生的故障,并把错误记录以日志的方式记录下来保存在文件中,以备日后查阅。

4.3 实现结构
针对教务管理系统互联网传输存在的一系列问题,基于互联网的主体数据平台采用基于HBWSP的轻量级跨平台通信技术实现数据交 换,如图4所示。在客户端,应用服务器从主题数据服务层中抽取数据,并按着HBWSP的外部数据表示对本地格式数据进行编码。然后通过internet网 进行传输,在服务器端,数据交换的服务负责按照HBWSP的外部数据表示对接收到的数据进行解码,然后再对数据进行分析、处理后把数据插入到服务器端的主 题数据服务层中。


图4非持久同步方式的数据交换解决方案

该解决方案的主要特点包括:
1)采用了HBWSP的二进制编码方式解决了异地、异构平台系统的通信问题,并使数据交互具有了一定的实时性。
2)由于HBWSP简洁的编码方式以及编码、解码性能高等特点使数据交换具有交换GB级数据的能力。
3)采用了HBWSP的二进制编码方式有助于缩短整个数据交换所需要的时间。其编码性能高的特点,有助于提高编码速度,减少发送方编码本地数据的时间。其解码性能高的特点,可以减少接收方解码、重构本地数据的时间。从而减少了数据交换的响应时间。
4)采用了HBWSP的二进制编码方式和数据分批传送技术有助于充分利用网络状况良好的时段。可以在网络状况良好的时段尽可能多的完成数据交换。
5)采用了断点续传技术,保证了当网络断连或响应超时导致正在进行的数据交换被中断,在故障修复后仍然可以从中断处开始,继续完成上次没有完成的数据交换的能力。断点的粒度可以调节,可以是一条数据,也可以是多条数据。
6)采用了事务保护机制,把每批要传输的数据定义为一个事务,本批要传输的数据的事务完整性不依赖于已经完成的各批数据,本批数据传输发生错误也不会对已经完成的各批数据造成影响。采用这种方法,可以在数据交换过程被中断的情况下保证数据交换事务的完整性。

什么是Hessian协议呢?的更多相关文章

  1. hessian 协议

    什么是Hessian协议呢? 目前,Web服务技术是解决异构平台系统的集成及互操作问题的主流技术. 它所基于的XML已经是Internet上交换数据的实际标准,基于通用的进程间通信协议和网络传输协议屏 ...

  2. [转载] 基于Dubbo的Hessian协议实现远程调用

    转载自http://shiyanjun.cn/archives/349.html Dubbo基于Hessian实现了自己Hessian协议,可以直接通过配置的Dubbo内置的其他协议,在服务消费方进行 ...

  3. 基于Dubbo的Hessian协议实现远程调用

    Dubbo基于Hessian实现了自己Hessian协议,可以直接通过配置的Dubbo内置的其他协议,在服务消费方进行远程调用,也就是说,服务调用方需要使用Java语言来基于Dubbo调用提供方服务, ...

  4. Dubbo服务 上传文件解决方案以及Hessian协议

    ​ 协议支持 Dubbo支持多种协议,如下所示: Dubbo协议 Hessian协议 HTTP协议 RMI协议 WebService协议 Thrift协议 Memcached协议 Redis协议 在通 ...

  5. hessian 协议 版本 兼容

    环境 : 服务端:  hessian 4.0.38 , spring 4.3.6 ; spring文档指出spring4.0以上的版本只能使用hessian 4.0以上的版本 客户端: hessian ...

  6. hessian协议原理

    Hessian 原理分析 一.      远程通讯协议的基本原理 网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络 IO 来实现,其中传输协议比较出名的有 http . t ...

  7. 几种java通信(rmi,http,hessian,webservice)协议性能比较

    一.综述 本文比较了RMI,Hessian,Burlap,Httpinvoker,web service等5种通讯协议的在不同的数据结构和不同数据量时的传输性能.RMI是java语言本身提供的通讯协议 ...

  8. 几种通讯协议的比较RMI > Httpinvoker >= Hessian >> Burlap >> web service

    一.综述本文比较了RMI,Hessian,Burlap,Httpinvoker,web service等5种通讯协议的在不同的数据结构和不同数据量时的传输性能.RMI是java语言本身提供的远程通讯协 ...

  9. dubbo hessian+dubbo协议

    Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况 Hessian协议用于集成Hessian的服务,Hessian底层采 ...

随机推荐

  1. Frank Dellaert Slam Speech 20190708

    Georgia Institue of Tecknology 3D Models from Community Databases Spatiotemporal Reconstruction 4D C ...

  2. JS引擎查找属性的原理

    原型继承的原理 不断向上查找 funciton getProperty(obj,prop){ if(obj.hasOwnProperty(prop){ return obj[prop]; }else ...

  3. H5C3--仿京东首页(包含轮播图,倒计时)

    !!!很抱歉,之前的域名已经过期了,已经被别人购买了拿去做菠菜了,现在的话,京东页面我重新发布一下代码 #请看注意事项,因为有模拟请求,请在本地服务器或者IDEA类编译器打开(2019年10月10日0 ...

  4. 20190716-T1-礼物

    呵呵,我暴力WA了 这个题充分考验了大家对数学的理解(麦蒙大多在胡诌) 但是确实如此啊. 看数据范围想状压.(我额嗯嗯想到暴力?) 然后设出一个可爱的$dp$式(主语当然不是我,是出题人大佬) $f_ ...

  5. Web基础了解版06-Jsp

    Jsp Jsp全称Java Server Pages,也就是在我们JavaWeb中的动态页面. Jsp能够以HTML页面的方式呈现数据,是一个可以嵌入Java代码的HTML. Jsp其本质就是一个Se ...

  6. opencv4 java 验证码噪点 8邻域降噪

    工程下载地址https://download.csdn.net/download/qq_16596909/11503962 程序运行后,同样会把图片存放在以下路径 首先来看一下原图 二值化后,可以把这 ...

  7. vue 报错解决:TypeError: Cannot read property '_t' of undefined"

    前端报错如下: [Vue warn]: Error in render: "TypeError: Cannot read property '_t' of undefined" 是 ...

  8. 洛谷3953 (NOIp2017) 逛公园——记忆化搜索+用栈判0环

    题目:https://www.luogu.org/problemnew/show/P3953 因为K只有50,所以想到用dp[ cr ][ j ]表示在点cr.比最短路多走了 j 的方案数.(看了TJ ...

  9. jquery源码学习(二)——jquery中的变量

    jquery在 21-93 行提供了变量 var // A central reference to the root jQuery(document) rootjQuery, // The defe ...

  10. adb安装apk包时提示:device unauthorized

    adb install apk时提示device unauthorized,手机上还没出现usb是否允许调试的询问弹框: 解决方法: 1.cmd输入:adb kill-server,点击回车键 2.c ...