基于Http协议的Java隧道通讯 (上)

发表于:2008-06-11来源:作者:点击数: 标签:HttphttpHTTPjavaJAVA
关键字:Http协议 Java隧道通讯 摘要 基于Java平台的企业应用可以通过Java隧道技术实现应用在因特网上部署。Java隧道技术用现有的Web Server和Servlet容器就可以建立Java消息隧道和远程方法调用。由于基于Http协议,所以Java隧道是防火墙透明的隧道。Java隧道
关键字:Http协议 Java隧道通讯

摘要

   基于Java平台的企业应用可以通过Java隧道技术实现应用在因特网上部署。Java隧道技术用现有的Web Server和Servlet容器就可以建立Java消息隧道和远程方法调用。由于基于Http协议,所以Java隧道是防火墙透明的隧道。Java隧道技术对于基于Java平台的因特网企业应用是一个不错的选择。

  1.引言

  在以因特网为基础的企业应用中,穿越防火墙是企业应用系统必须面对的问题。而Http协议是唯一一个可以在因特网中自由来往的协议,防火墙只有对Http访问是透明的,其它协议都会被挡在防火墙之外。Web Service正是基于这个原因,采用Http完成异构企业应用在因特网上的整合。本文提出一个方案,可以使基于Java平台的企业应用不必等待Web Service的渐渐成熟,而利用Java隧道技术实现在因特网上的企业应用部署。

  Java隧道技术不是一个新的技术,它是Java对象序列化和Web技术的结合。2001年笔者就曾经做过基于Java隧道的试验。关于Java Servlet的书籍也有对Java隧道技术的相关论述(参考文献[2])。本文首先回顾一下Java隧道技术的基本原理,再通过一个实例来实现它。以此为后面的Java隧道回调技术和基于Java隧道技术的因特网通讯打下基础。

  本文的内容可以用于Java Web Start客户端在因特网上的部署,可以用于利用因特网互连的Java应用服务

  2.Java隧道通讯

  Web Service技术中的SOAP协议(Simple Object Application Protocol),简单的说是把对象用XML来序列化和反序列化的协议。XML表述的好处就是平台的独立性,不管对象在不同的平台中表现的形式是什么样的,最终都可以用XML来实现对象的互换。并且,基于Http协议的Web Service可以穿越防火墙。 Web Service技术整合因特网上的应用是它的强项。Web Service技术是一个很好的创意,包括IBM,Microsoft,Sun等公司都极力推出自己的相关产品。我们可以说,在未来的异构平台的集成,B2B应用中,Web Service将发挥重要的作用。

  然而,对于Java平台的企业应用,你可以用Web Service相同的原理,利用Java平台的对象序列化,再借助Web技术,完成因特网上的应用部署。这样的技术就是Java的隧道技术。因为这个技术都是利用现有的基础技术来实现的,所以可以非常容易的完成系统的构架。当然Java隧道与Web Service的定位是完全不同的,他们应该用在不同的场合。Web Service更加强大,更加通用化,是一套新兴的互相访问的标准。也正是由于Web Service的强大,所以它也更复杂。回答下面的问题,来看看你需要哪种技术来构架你的应用:

  1.互连的系统是否都是Java平台?
  2.是否要在Inte.net上部署?
  3.是否要穿越防火墙?

  如果第一个问题的答案是"否",其它问题回答"是",那么你别无选择,必须用Web Server技术;如果以上的问题的回答都是"是"的话,你可以用Web Service来构架系统,当然,你也可以用更便捷,简单,高效的Java隧道技术。

  Java隧道技术的基本构架如下图。Java隧道系统的通讯构架,由Web Server提供Http服务,Servlet容器处理Java序列化对象。对于这样的一个框架,我们可以用常见的Tomcat,Jetty等软件作为Java隧道技术的运行基础环境。

原文转自:http://www.ltesting.net