`

强烈推荐使用 Hessian/Burlap 作为J2EE分布式系统内

阅读更多

强烈推荐使用 Hessian/Burlap 作为J2EE分布式系统内部 的 远程服务方案

    在J2EE分布式系统中,我们需要选取某种远程服务协议,在分布的进程之间进行交互。可供选择的协议 EJB、 基于SOAP的Web Service 这些重量级的,也有像RMI、Socket这种比较原始的。但最近了解到了Caucho公司的 Hessian/Burlap方案,我觉得这种方案才是最合适的,因为它没有上文所述其他几种方案的缺点,而且,如果把Hessian/Burlap与Spring结合使用,设计者将感到无比的方便。

   下面就逐个说说这些“不好的”方案,再介绍Hessian/Burlap方案。

 

      a.EJB。 这就不用说了,EJB极其笨重,配置会累死人,性能也糟糕。

 

      b.基于SOAP的Web Service。 有着和EJB类似的缺点。声明一个服务很麻烦,而且用SOAP协议传输数据会浪费大量的带宽,因为SOAP基于XML,而XML中大部分的数据并不一定是业务数据,而仅仅是元数据。

 

      c.RMI。 如果与Spring结合使用,配置不算麻烦。但是其服务接口受到制约(必须继承java.rmi.Remote接口),而且RMI服务只能使用1109端口。

 

      d.Socket。 这应该是最让程序员放心的协议了,因为程序员想怎么搞就怎么搞。但有两个代价:
          i.要做很多底层的、基础性的事情。比如说,程序员不得不手写烦人的Socket客户端和服务端代码,要直接与 Socket、InputStream、OutputStream 等底层类打交道;要手工实现安全性、并发、转码、日志等功能;Socket服务器也要通过一个独立的MAIN程序来启动,而不能放到J2EE服务器产品运营,也就是说利用不了J2EE服务器的监控功能。
         ii.使用SOCKET方式交互,需要设计交互的报文规范。这是一件非常累人的工作。报文既要使用统一的方式来组报和解报、又要保证报文不会引起歧义。当远程服务的接口变更时,报文可能要做极大的变更。举个例子,在原来的报文中插入一个字段,其后面的字段位置都要后移,这样的话,组报、解报代码可能都要大改。

 

      e.Hessian/Burlap。 它的优点就是解决了以上几种方案的缺点。
          i.易用性。非常方便,服务不需要继承奇怪的接口,也没有多少配置,只需包装成一个Servet即可。与Spring的注入机制结合使用的话,客户端和服务端都会很舒服。
          ii.性能好。Burlap也是用XML传输数据,但比SOAP简约的多;而Hessian是二进制协议,更加节省带宽。
          iii. 它也是基于Http的,它可以穿透防火墙,其实它也是Web Service的一种协议,
          iv.为程序员免去了底层性、基础性的工作。因为它是一个Servlet,底层性的工作,比如 输入输出流、并发、日志等事情 都可以交给Tomcat之类的、现成的服务器; 有了应用服务器,还可以获得其他的一些功能,比如监控、集群什么的;它还可以配置用户名和密码,安全性的工作也包干了

          v.不用设计报文了。因为服务端的服务是以 JAVA方法 的方式 暴露给客户端的。JAVA方法 很容易作到无歧义,而且改变签名也是件很简单的事情(比如Eclipse就有这种重构功能),这比Socket报文好侍侯多了。

 

    综上所述,真的没有理由不选取 Hessian/Burlap方案。
文章出处:飞诺网(www.firnow.com):http://dev.firnow.com/course/3_program/java/javajs/20100105/186270.html

分享到:
评论

相关推荐

    Spring配置hessian远程服务

    使用eclipse maven工程搭建hessian远程服务demo 分服务端的整合和客户端 建议阅读相关博客http://blog.csdn.net/heisemuyangquan/article/details/79460528

    Spring中集成Hessian的问题

    在Spring框架中集成Hessian是为了实现远程方法调用(Remote Method Invocation, RMI),这是一种轻量级的序列化协议,可以高效地传输Java...通过深入学习和实践,我们可以更好地利用Hessian来构建高性能的分布式系统。

    用hessian c#桌面程序调用J2EE后台服务

    在IT行业中,跨平台通信是常见的需求,尤其是在分布式系统中。本文将重点讲解如何使用Hessian协议和C#编写桌面应用程序来调用J2EE后台服务。Hessian是一种高效的二进制RPC(远程过程调用)协议,由Caucho Technology...

    java 使用hessian进行两台服务器资源之间同步实例

    Java 使用Hessian进行两台服务器资源之间同步是一个常见的分布式服务通信技术应用。Hessian是由Caucho公司开发的一种高效的二进制RPC(远程过程调用)协议,它能够使Java对象像本地方法一样在不同的服务器之间进行...

    用Hessian协议实现Android手机与J2EE系统集成的研究.pdf

    通过Hessian,Android应用可以与J2EE系统进行快速且高效的通信。文章以图书查询应用为例,阐述了这一集成过程。 【图书查询案例】案例展示了一个Android应用如何利用Hessian协议与J2EE服务器进行通信。服务器端使用...

    使用hessian简单使用【续】- 与spring结合使用

    综上所述,Hessian与Spring的结合使用可以方便地实现跨网络的远程方法调用,极大地简化了分布式系统的开发。通过合理配置和理解Hessian的工作原理,我们可以构建高效、可靠的分布式服务。同时,利用Spring的IoC特性...

    闲着没事Hessian开发WebService的总结(一)

    标题中的“闲着没事Hessian开发WebService的总结(一)”表明这是一篇关于使用Hessian框架开发Web服务的文章,作者可能在其中分享了个人的经验和理解。Hessian是一种轻量级的远程调用协议,它允许Java和.NET之间进行...

    Hessian

    Hessian的目标是简化分布式系统之间的通信,通过减少网络传输的数据量来提高性能。与其他基于XML的RPC协议(如SOAP)相比,Hessian更简洁、快速,因为它使用了二进制编码,而非文本格式。 **一、Hessian协议基础** ...

    Java学习之路-Spring的HttpInvoker学习

    如果数据模型非常复杂,那么Hessian/Burlap的序列化模型可能无法胜任了。  Spring开发团队意识到RMI服务和基于HTTP的服务之前的空白,Spring的HttpInvoker应运而生。  Spring的HttpInvoker,它基于HTTP之上提供...

    android端使用hessian跟web服务器通讯

    如果使用的是Gradle构建系统,可以添加如下依赖: ```groovy dependencies { implementation 'com.caucho:hessian-android:4.0.67' } ``` 2. 创建Hessian服务代理:在Android客户端,我们需要创建一个Hessian服务...

    Hessian 使用小结

    这个实现类需要继承`HessianServlet`,这样它才能作为Servlet运行并处理Hessian请求。 3. **配置Servlet**:接着,在服务端的`web.xml`配置文件中,配置一个Servlet来映射这个业务接口的实现,以便客户端可以通过...

    hessian使用小例子

    在Java环境中,Hessian被广泛用于构建高效的分布式系统。 首先,我们来理解一下Hessian的工作原理。Hessian基于HTTP协议,它将Java对象转换为二进制流进行传输,减少了网络传输的数据量,同时也提高了序列化和反...

    使用hessian进行服务器-客户端通讯

    Hessian是一种二进制Web服务协议,它提供...总之,Hessian是一种强大的工具,可以帮助我们在分布式系统中实现高效的服务器-客户端通信。通过理解和实践这个案例,你将能够熟练地在Java项目中使用Hessian进行远程调用。

    hessian入门小例子

    然后在Tomcat的web.xml配置文件中添加如下配置,将`MyService`绑定到/hessian/myService路径: ```xml ... <servlet-name>HessianService</servlet-name> <servlet-class>...

    Hessian和Spring集成示例

    在IT行业中,Hessian和Spring的集成是服务端开发中常用的一种技术,它允许我们将Java对象作为远程服务进行调用,极大地提高了开发效率和系统的可扩展性。下面将详细讲解Hessian与Spring集成的关键知识点。 首先,...

    C#中Hessian的使用例子

    为了使用Hessian协议,我们需要配置客户端的终结点,指定`HessianMessageEncoder`作为消息编码器。 以下是一个简单的例子: ```csharp // 服务端接口 [ServiceContract] public interface IMyService { ...

    hessian 使用实例

    Hessian是一种高效的二进制RPC(远程过程调用)协议,它被广泛应用于分布式系统中,以实现轻量级的服务间通信。Hessian提供了一种简单、快速的方式将Java对象序列化为字节流,然后在服务端和客户端之间进行传输。...

    hessian

    Hessian是一种二进制Web服务协议,由Caucho ...理解和使用Hessian可以帮助我们构建更快速、更灵活的远程服务调用系统。通过深入研究源码和利用相关工具,我们可以更好地利用Hessian的优势来优化我们的应用程序。

    Hessian实例下载

    Hessian的目标是提供一种快速、简单的方式来进行跨网络的对象方法调用,使得分布式系统开发更为便捷。在这个“Hessian实例”中,我们可以找到Hessian在实际应用中的具体示例和相关库文件。 标题提及的“Hessian实例...

Global site tag (gtag.js) - Google Analytics