zoukankan      html  css  js  c++  java
  • Hessian与Webservice的区别

    注:本文摘抄自:https://blog.csdn.net/jaryle/article/details/52314072

      Hessian:hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能,相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用了二进制协议,所以它很适合于发送二进制数据,Hessian主要用作面向对象的消息通信。

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

    写一个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,并访问相应的服务。

  • 相关阅读:
    UVA 1400."Ray, Pass me the dishes!" -分治+线段树区间合并(常规操作+维护端点)并输出最优的区间的左右端点-(洛谷 小白逛公园 升级版)
    SPOJ GSS3-Can you answer these queries III-分治+线段树区间合并
    洛谷 P4513 小白逛公园-区间最大子段和-分治+线段树区间合并(单点更新、区间查询)
    HDU 3074.Multiply game-区间乘法-线段树(单点更新、区间查询),上推标记取模
    HDU 3183.A Magic Lamp-区间找最小值-RMQ(ST)
    HDU 1231.最大连续子序列-dp+位置标记
    牛客网 牛客练习赛43 F.Tachibana Kanade Loves Game-容斥(二进制枚举)+读入挂
    CodeForce-811B Vladik and Complicated Book(水题)
    POJ1426——Find The Multiple (简单搜索+取余)
    POJ——3278 Catch That Cow(BFS队列)
  • 原文地址:https://www.cnblogs.com/wk-missQ1/p/13140616.html
Copyright © 2011-2022 走看看