《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 基于Applet的WebGIS的开发技术研究

基于Applet的WebGIS的开发技术研究

2009-01-09
作者:黄金中,于大东

WebGIS是在Internet或Intranet网络环境下的一种存储、处理、分析和显示地理信息的计算机信息系统,它的基本思想就是在互联网上让用户通过浏览器浏览地理信息,或者给用户提供地理信息系统中的数据和功能服务。WebGIS是GIS在Internet上的扩展,用户可以从WWW的任意一个节点,浏览WebGIS站点中的空间数据,制作专题地图,以及进行各种空间检索和空间分析,从而使GIS走进社会生活的诸多方面。

一、基于Object Web规范的WebGIS 

大部分WebGIS采用的是CGI/Sever API方法。传统的CGI和Server API方法,数据处理在服务器端,形成瘦客户端,任何操作都在服务器端实现,因此效率低,速度慢。另外,由于浏览器不能直接读取矢量图形,矢量数据在网上传输就得先在服务器端转换成栅格图形数据,这一转换就使数据量增大许多倍,服务器端的负担变得过重,使本已拥挤的网络不堪重负,所以,这种方式对于需要进行大量数据传输的WebGIS系统显然是不合适的。为了解决这个问题,1997年6月诞生了Web的一种分布式对象方案,称为“Object Web”。 Object Web将是Internet变革中的又一个新浪潮。

基于Object Web规范的WebGIS又称为分布式对象WebGIS,这是WebGIS的最新发展方向。它提供了一种可以伸缩的、由服务器到服务器的体系结构,服务器端的对象可以运行在多个服务器上,从而可以动态平衡客户端请求的负载。

目前,有两套不同的Object Web规范正在进行着激烈的竞争:一个是Microsoft公司提出的DCOM /ActiveX标准,另一个是Object Management Group和Javasoft公司联合推出的CORBA/Java标准。DCOM/ActiveX运行效率较高,但它只能运行于32位Windows系列操作系统。CORBA/Java 在运行速度上仍然不如DCOM/ActiveX。但是,和Java一样,CORBA/Java规范的最大优势在于其跨平台能力,适用于Windows、Macintosh、UNIX、Linux等操作系统。虽然两个标准的竞争仍然相当激烈,但是我们相信,随着网络技术的进一步发展和Linux操作系统市场占有率的提高,具有跨平台能力的、基于CORBA/Java标准的WebGIS应用前景会更加广阔。下面将具体介绍基于Java Applet进行WebGIS开发的技术和优势。

二、利用Java Applet开发WebGIS客户端的优势

1、AWT中的2D API(二维应用程序接口)

JFC中AWT除了给用户提供基本的界面构件用来建立图形界面之外,AWT目前包含了大量的2D API,可以进行更高级的图形和图像操作。2D API是由一组具有2D功能的图形和图像类组成,对图形、图像及其操作提供了良好的面向对像封装。在2D API中包含的软件包如下:

Java.awt.color

Java.awt.font

Java.awt.geom

Java.awt.print

所以用户选择Java进行图形开发,首先就要看Java能否提供满足用户需要的图形和图像操作能力。Java Applet是一个扩展容器Panel类的子类,类的继承层次图如图1所示,

图1  Applet 类的继承层次图 

从图中可以看出,Applet继承了容器控件能力,它可以利用AWT所包含的一切功能。利用Applet进行开发,客户端用户完全拥有AWT的图形处理功能。那么,采用Applet开发的WebGIS应用的客户端就具有了矢量图形的处理能力,可以大大地减轻服务器端的负担。 

2、“一次编译、处处运行”的跨平台特性

IT业的竞争如此激烈,每一个软件开发者都要考虑他所开发的软件的生命周期,今天开发的软件明天能否在同一台机器上运行,硬件核心资源的变化、操作系统的变化和网络环境的变化,都可能导致软件无法继续运行。Java 虚拟机(JVM)在很大的程度上解决了这个问题,实现了“一次编译、处处运行”的目标。Java的编译机制如图2所示,只要计算机中有JVM,Java字节码就可以在那台计算机上运行,这种跨平台的特性已成为Java最为强调的优势,也是Java技术能够得到众多软件开发者青睐的主要原因

图2  Java的编译机制

3、良好的网络服务技术和安全性[3]

Java Web程序服务器提供了方便编程的各种服务技术,例如命名服务(naming service)、部署服务(deployment service)、数据连接(JDBC)、数据事务(data transaction)、安全服务(security service)和连接框架(connector architecture)等,这些技术在一般Web应用中需要用到,但Web编程者不需要自己开发的。同时,Java提供了严密的安全措施,用于保证程序资源只能由授权的用户来使用,其安全性由以下两方面来保证。首先是验证(authentication),即用户必须由验证确定其身分,验证通过者可以访问服务器,否则遭拒绝,典型的做法是使用者提供验证数据(譬如用户名和密码)。第二步是授权(authorization)。当一位被验证通过的用户设法访问程序资源时,系统要根据安全策略确定是否该用户有权限进行这样的操作。WebGIS本身就是传统GIS在Web上一种扩展,Java Web良好的网络服务性能和安全性能,为WebGIS的开发提供了又一个有利的选择。 

三、利用Java  Applet进行WebGIS开发的不足及解决策略

1、运行效率不高

前面已提及,尽管Java编译器在不断改进,但是CORBA/Java 在运行速度上仍然不如DCOM/ActiveX,主要是因为Java是基于JVM的高级语言,要考虑到跨平台性,代码的执行效率不可能和C/C++执行代码的一样高,经过编译的Java字节码是一种中间码,在运行时必须先解释并加载系统信息才能运行。基于这一特点,我们可以考虑用提高硬件性能的办法加以弥补,但这不是根本的解决办法,我们期待着下一代的Java效率的提高,同时,当前已有一些厂商致力于开发Java芯片(Java chip),直接将JVM制成芯片,再将芯片植入系统中,这样可以大大地提高运行速度,我们相信Java前景光明。

2、安全限制而导致的网络传输瓶颈[3]

要获得好的网络传输率,就要突破Applet具有的安全限制,这是一对矛盾。采用Java Applet 进行WebGIS开发时,客户端必须处理空间数据,空间数据要在拥挤的网络上传输,例如某省1:25万地图(Shapefile格式),空间数据包括行政区界,公路,河流,公共设施,各级标注,经过处理后数据量仍有10Mb以上。因此,由于空间数据量大而造成网络传输慢成了系统最大的瓶颈。为了提高网络传输速度和用户操作处理响应速度,可以采取了以下一些技术措施: 

2.1 保密要求不高的情况下,可以突破Applet安全限制 

Java Applet具有Applet数字签名技术,使得Applet在下载到客户端之前要进行身份认证,只有得到用户的信任才可以下载,用户通过签名者的身份决定是否信任它,认证不通过者不能在客户端进行任何读写操作。在不要求保密或只在内部网中使用WebGIS系统可以突破Applet签名限制以提高网络的传输率。 

2.2 将空间数据进行多级存储 

空间数据可以分级存储在客户本地、Web服务器、数据库服务器上,当客户端要读取数据时,先从本地读取,若本地没有,则向GIS应用服务器发出请求,GIS应用服务器程序先从Web服务器上读取数据,若Web服务器上没有该数据,则生成Sql语句向数据库发出请求,由数据库处理请求并返回查询结果。系统的一部分空间数据可以存放在客户端,这样,可以减少必须通过网络传输的空间数据量,因此提高了运行效率。数据库系统可以采用Oracle8.1.6以上,首先将Shapefile格式的空间数据导入到Oracle中,采用Oracle的shp2sdo及SQL Loader工具来完成或用Oracle免费提供的Java类包编程实现。再将部分空间数据以自定义文件格式复制存放在Web服务器端。当客户机访问该网站时,如果信任该网站就下载部分固定的空间数据存放于客户端。由于存取本地数据比存取网络数据速度快多了,可以大大提高系统的运行速度。 

2.3 矢量数据和栅格数据有机结合,减少大量矢量数据在网络上的传输。 

当对大量矢量数据进行运算和传输时,可以用栅格图像来代替它。在系统启动时,首先显示整幅地图作为底图。即使只调入部分矢量图层数据,一次性装载这些数据并进行标绘,加上下载Applet程序,将花费很长时间而导致用户不耐烦。如果预先生成一幅地图栅格图像,系统启动时,首先显示该栅格图像,并用一个后台进程读取矢量数据进行运算,达到“以假乱真”的效果;另外,如果客户端从Web服务器或Oracle数据库查询较大的空间数据时,可以在应用服务器上先生成相应的栅格图像,然后传输栅格图像给客户端显示,客户的操作以命令参数形式传送到GIS应用服务器,由服务器程序处理这些请求并返回结果。 

2.4 网络数据流压缩 

在网络上传输空间数据或栅格图像时,发送端对这些数据进行压缩(采用Zip或其它形式),接收端解压。显然,这些数据的传输速度关键取决于网络传输率,本机的压缩、解压缩时间相对于网络传输来说是很小的,因此,进行压缩处理是很有意义的。Java中Java.util.zip类包,压缩率通常可达3倍以上,能够明显地提高系统运行效率。 

客户层 

业务逻辑层 

数据层 

四、基于Java  Applet的进行WebGIS开发的基本框架

WebGIS的客户端是Web浏览器,通过下载Java Applets,运行客户端的Applet程序,实现客户端的GIS计算任务。业务逻辑层提供完成所有业务逻辑和数据访问的功能,主要由两部分组成:一部分是Web服务器,它通过HTTP协议向客户层提供Applet 程序;另一部分是GIS应用服务器,它包含了完成业务逻辑所需要的各种服务,它一方面通过自定义协议或RMI/IIOP与运行在客户层的Applet程序通信,另一方面与数据层进行通信,GIS数据一般有两种存储形式,一种是直接以文件的形式存储,一种是采用具有空间数据存储功能的分布式数据库,如Oracle8i以上版本等,通过JDBC访问存储在数据库中的空间数据,同时还可以利用分布式数据库系统本身提供的功能,方便地实现空间数据的存储、查询和分析功能,并且能够满足海量数据存储要求。 

结束语: 

现在,利用CORBA/Java技术和规范开发出来的GIS产品层出不穷,如MapInfo ProServer 、Internet Map Server(IMS)、ModelServer/Discovery和    OpenMap等,虽然这些产品都没有提供完美的解决方案,但随着Internet技术进一步发展和Java技术的日益完善,WebGIS应用将更加普及、前景看好,同时竞争也将更加激烈。

参考文献: 

[1]《地理信息系统原理与方法》吴信才 武汉测绘学院 2002 

[2]《WebGIS概述》宋关福  图形图象学报 2003 

[3]《基于Java Applet的WebGIS系统开发的瓶颈问题》林志贤,林宏基 2003 

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。