频 道 直 达 - 新闻 - 读书 - 培训 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

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

作者: 杜玄 出处:51CTO.com  (  ) 砖  (  ) 好  评论 ( ) 条  进入论坛
更新时间:2006-11-20 11:03
关 键 词:Java  Http  隧道通讯
阅读提示:本文首先回顾一下Java隧道技术的基本原理,再通过一个实例来实现它。以此为后面的Java隧道回调技术和基于Java隧道技术的因特网通讯打下基础。本文的内容可以用于Java Web Start客户端在因特网上的部署,可以用于利用因特网互连的Java应用服务。

摘要

基于Java平台的企业应用可以通过Java隧道技术实现应用在因特网上部署。Java隧道技术用现有的WebServer和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.是否要在Internet上部署?
3.是否要穿越防火墙?

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

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

Java隧道技术的基本工作原理是这样的:首先,Java客户端把对象序列化,用Http协议包装序列化对象的字节流在Internet上传播,透过防火墙,提交到Web Server上。Servlet容器把Http协议剥离开,取出序列化的对象,再反序列化这个java对象,传递给后台的应用。

整个工作过程,就是把Java序列化对象,通过Http协议的包装完成在Internet上的通讯。由于Java序列化技术是Java 1.1版本后内置的功能,只要实现java.io.Serializable接口就可以实现。而集成Web Server的Servlet容器更是有好多实现,这里也不乏开源的优秀产品,如Tomcat,Jetty等。这些都体现了Java隧道技术构架的简便性。

下面我们通过一根例子来看看Java隧道技术是如何具体实现的。

3.实例

这里我们选择Jetty(Jetty 4.2.21)作为Web Server和Java Servlet的运行容器。编写普通的Java应用程序TunnelClient作为java隧道的客户端。编写Servlet程序TunnelServer作为java隧道的服务端。如下图,运行java隧道客户端程序,在程序内部调用隧道服务http://127.0.0.1:8080/servlets/servlet/TunnelServer。从服务器返回对象,对象内容打印在控制台上。

如下图,是Jetty服务器中TunnelServer的运行情况,我们可以看到TunnelServer从客户端获得的对象内容的屏幕打印。


共2页: 1 [2] 下一页
【内容导航】
发表
查看
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·Java基础教程 (查看52371次)
·UML类图详解 (查看46839次)
·Java编程开发手册 (查看25118次)
·UML统一建模语言 (查看24099次)
·C#技术开发指南 (查看22406次)
·Java编程开发手册 (1195个砖)
·Java基础教程 (429个砖)
·C#技术开发指南 (304个砖)
·PB开发教程 (220个砖)
·.NET开发手册 (217个砖)
·Java编程开发手册 (653个好)
·Java基础教程 (569个好)
·.NET开发手册 (251个好)
·PB开发教程 (209个好)
·Delphi开发技术手册 (174个好)
订阅技术快讯
电子杂志下载
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本
名称:2006中国IT论坛精品集合
简介:本书由“51CTO论坛推广联盟”制作完成。书中所有内容均来自各联盟成员的论坛(网站)。制作本书的目的是为了集中大家的优势资源,将更多更精彩的内容带给广大技术爱好者。本书是联盟成立以来制作的第一本书。
关键字阅读
频道精选
主编信箱 热线:010-66476606 告诉我们您想看的:专题 文章
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 意见反馈 | 网站地图
Copyright©2005-2007 51CTO.COM 版权所有