Hessian:hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能,相比WebService,Hessian更简单、快捷。

采用的是二进制RPC协议,因为采用了二进制协议,所以它很适合于发送二进制数据,Hessian主要作面向对象的消息通信。

Hessian的初衷就是支持动态类型,格式紧凑,跨语言。Hessian是使用自己的序列化机制实现的编组和反编组,其支持的数据类型是有限制的,不支持复杂的对象,可以穿透防火墙。  在这里不得不说一下RMI:RMI是一组用户开发分布式应用程序的API。他使用的是Java序列化机制实现调用及返回值的编组于反编组。它使用Java语言接口定义了远程对象,它集合了Java序列化和Java远程方法协议(JavaRemote Method Protocol)。他可以被看做是RPC的Java版本,因为传统的RPC并不能很好的应用于分布式对象系统。而Java RMI 则支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。他也有它的缺点,他只能通过RMI协议来进行访问无法通过HTTP协议访问,无法穿透防火墙。     还有一种远程调用方法就是HttpInvoker:他也是将参数和返回值通过Java的序列化机制进行编组和反编组,它具有RMI的支持所有可序列化对象的优点。试使用Http协议传输二进制流的,同时又具有Hessian、Burlap(传输xml文本)的优点。

Hessian:写一个Hessian需要注意的问题:

1、JAVA服务器端必须具备以下几点:        

包含Hessian的jar包

设计一个接口,用来给客户端调用

实现该接口的动能

配置web.xml,配置相应的servlet

对象必须实现Serializable接口

对于复杂对象可以使用Map的方法传递

 2、客户端必须具备以下几点:  

java客户端包含Hessian.jar包

具有和服务器端结构一样的接口和实体类。包括命名空间都最好一样。

Hessian的优点:

1- 整个jar很小,200多K,3.1版本的,当然,我下载的for java的版本.

2- 配置很简单,基本上不需要花什么经历就配置出来了

3- 功能强大,可以将soap抛开,也可以把EJB抛开,采用二进制来传递对象

4- 拥有多种语言支持,Python c++  .net 甚至 flex 都可以做为client端

WebService简介

(1)WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。
(2)WebService实现不同语言间的调用,是依托于一个标准,webservice是需要遵守WSDL(web服务定义语言)/SOAP(简单请求协议)规范的。
(3)WebService=WSDL+SOAP+UDDI(webservice的注册),Soap是由Soap的part和0个或多个附件组成,一般只有part,在part中有Envelope和Body。
(4)Web Service是通过提供标准的协议和接口,可以让不同的程序集成的一种SOA架构。

WebService的优点

(1) 可以让异构的程序相互访问(跨平台)。
(2) 松耦合。
(3) 基于标准协议(通用语言,允许其他程序访问)。

WebService的缺点: 
(1) WebService使用了XML对数据封装,会造成大量的数据要在网络中传输。 
(2) WebService规范没有规定任何与实现相关的细节,包括对象模型、编程语言,这一点,它不如CORBA。

WebService的基本原理

(1) Service Provider采用WSDL描述服务。
(2) Service Provider 采用UDDI将服务的描述文件发布到UDDI服务器(Register server)。
(3)Service Requestor在UDDI服务器上查询并 获取WSDL文件。
(4)Service requestor将请求绑定到SOAP,并访问相应的服务。

参考链接:http://blog.csdn.net/jaryle/article/details/52314072

Hessian与Webservice的区别的更多相关文章

  1. http和webservice接口区别

    httpservice通过post和get得到你想要的东西webservice就是使用soap协议得到你想要的东西,相比httpservice能处理些更加复杂的数据类型   http协议传输的都是字符 ...

  2. WebAPI和WebService的区别

    WebAPI和WebService的区别 WebAPI用的是http协议,WebService用的是soap协议 WebAPI无状态,相对WebService更轻量级.WebAPI支持如get,pos ...

  3. RPC和WebService的区别

    最近分析的这个系统,逻辑架构中有一层是RPC interface.之前对RPC不熟悉,就上网搜索了一下资料,在此总结一下: RPC是Remote Procedure Calling,远程过程调用的缩写 ...

  4. WCF与WebService的区别

    1.WebService:严格来说是行业标准,不是技术,使用XML扩展标记语言来表示数据(这个是夸语言和平台的关键).微软的Web服务实现称为ASP.NET Web Service.它使用Soap简单 ...

  5. 使用hessian开发WebService,轻量级,更简单、快捷

    Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单.快捷.采用的是二进制RPC协议,因为采用的是二进制协 ...

  6. Remoting和Webservice的区别

    其实现的原理并没有本质的区别,在应用开发层面上有以下区别:1.Remoting可以灵活的定义其所基于的协议,如果定义为HTTP,则与Web Service就没有什么区别了,一般都喜欢定义为TCP,这样 ...

  7. MQ与webservice的区别,MQ的区别

    Webservice 和MQ(MessageQueue)都是解决跨平台通信的常用手段,两者有哪些区别呢? 个人认为最本质的区别在于 Webservice近乎实时通信,而MQ却通常是延时通信. 什么意思 ...

  8. MQ与Webservice的区别

    Webservice 和MQ(MessageQueue)都是解决跨平台通信的常用手段,两者有哪些区别呢? 个人认为最本质的区别在于 Webservice近乎实时通信,而MQ却通常是延时通信. 什么意思 ...

  9. HttpClient和WebService的区别和介绍

    1. HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.  HttpClient用来调用服务,它是模拟 ...

随机推荐

  1. PAIR PROJECTS 附加题

    [附加题] 改进电梯调度的interface 设计, 让它更好地反映现实, 更能让学生练习算法, 更好地实现信息隐藏和信息共享. 答:首先,就原有的StopAtEach方法而言,此算法的实现既是非常低 ...

  2. 使用kbmMW#1轻松实现REST

    使用kbmMW很容易创建REST服务器. 首先,我们制作服务器应用程序(或服务......取决于您). 在这种情况下,我们将添加一个简单的Form,为我们的kbmMW组件提供GUI和位置. 在Delp ...

  3. Swift 编程语言入门教程

    1   简介 今天凌晨Apple刚刚发布了Swift编程语言,本文从其发布的书籍<The Swift Programming Language>中摘录和提取而成.希望对各位的iOS& ...

  4. SIM800C 透传模式

    /******************************************************************************* * SIM800C 透传模式 * 说明 ...

  5. nmap扫描时的2个小经验

    http://pnig0s1992.blog.51cto.com/393390/367558/ 1.我肉鸡的环境是Windows XP sp3,在使用nmap扫描外网的时候,提示我 pcap_open ...

  6. java反射+java泛型,封装BaseDaoUtil类。供应多个不同Dao使用

    当项目是ssh框架时,每一个Action会对应一个Service和一个Dao.但是所有的Ation对应的Dao中的方法是相同的,只是要查的表不一样.由于封装的思想,为了提高代码的重用性.可以使用jav ...

  7. web 分享代码片段

    <div class="bshare-custom icon-medium-plus"><a title="分享到QQ空间" class=&q ...

  8. apache隐藏web服务器的版本信息

    curl -I yourdomain.com 能看到什么? Server: Apache xxx PHP xxx XXX xxx 我们不妨看看 curl -I www.google.com 结果如何: ...

  9. SELENIUM如何调用FIREFOX时加载插件

    当selenium调用firefox时,会发现这个firefox里干净的如同一盆清水,自己定制安装的那些插件都不翼而飞了,这个时候那些插件自然就不能使用了,但是当前又必须使用插件该如何是好呢? 解决办 ...

  10. vue 知识点

    Vue 中的 slot: 概念:槽/slot是组件在模板中为调用者预留的位置,使用<slot>元素声明一个 槽.在最终的视图中,调用者模板中被调用组件的内容,将填充<slot> ...