1、基于技术的 【摘 要】地理信息系统的发展需要走开放式的道路,Web GIS 的发展更应根据实际情况采用当前的主流技术。比较了 Web GIS 的各种实现技术,研究如何用 JSP 技术来实现 Web GIS。 【关键词】JSP Web GIS Java JavaBean 数据库 服务器端 客户端 1 Web GIS 概述 Web GIS 是利用互联网技术,完善和扩展传统的地理信息系统功能的一门新技术。通过网络,GIS 的功能得以扩展,真正成为一种大众使用的工具。用户可以浏览 Web GIS 站点中的空间数据、制作专题地图,进行各种空间检索和分析。与传统的 GIS 相比,Web GIS 体系结构发
2、生了根本性的转变,它基于浏览器/服务器体系(浏览器、中间件服务器、数据库服务器),三层客户机/服务器模型(用户界面层、中间件服务器、GIS 数据层),以及 Web 环境,采用 TCP/IP 通信协议来扩大空间数据共享范围。采用客户端/服务器多层体系结构提高系统的安全性,可重用性。在应用层采用 HTTP 议增强 GIS 的开放性。 Web GIS 的发展为 GIS 数据与信息的获取、发布、共享与操作开辟了广阔的前景,和传统的 GIS 相比,具有以下优点: (1)更广泛的访问范围。 (2)平台独立。 (3)系统成本降低。 (4)操作简单。 2 Web GIS 的实现技术 随着网络技术的发展,出现了
3、多种实现 Web GIS 方法,如CGI,ISAPI,Java,ASP 等。 2.1 基于 CGI 和 Web API 的被动式 Web GIS CGI(Common Gateway Interface)是最早用来建立动态 Web 资源的技术,它是外部应用程序和 Web 服务器之间的接口标准,可让浏览器与服务器之间产生互动的关系。基于 CGI 技术的 Web GIS 系统在用户发出一个请求时,服务器把请求通过 CGI 转发给后端 GIS 应用程序,应用程序生成的结果又通过服务器传回客户端。基于 CGI 技术实现 Web GIS 的优势在于服务器软件之间的可移植性,缺陷是其浏览器的请求与生成的进
4、程一一对应,它的进程通常都不在常驻系统内,只要有客户需求送置,服务器就要建立一个新的进程,致使多个用户同时访问时,系统资源占用过多,执行效率低。 Web API 是建立在 CGI 技术之上的另一类应用程序接口,实际应用中主要有 Microsoft 的 ISAPI。它用动态链接库取代 CGI 程序,不会在系统中产生新的进程,资源共用,因而响应速度比 CGI 要高。但基于 Web API的 Web GIS 与服务器联系较紧,用户发出的所有请求都在服务器端完成,客户端仅起了一个图形终端的作用,对服务器性能要求较高,程序移植难度大,也容易使服务器瘫痪,并且其没有统一标准,通用性差。 2.2 基于 AS
5、P 和 Java 的主动式 WebGIS ASP 是微软公司推出的动态网页技术,可以在 HTML 程序码中内嵌VBScript 或 JavaScript,服务器端还需安装适当的编译程序引擎。客户端请求 ASP 网页时,ASP 文件由服务器端的 ASP Engine 解释执行,源程序不会传到浏览器,但它的安全性仍不是很好,必需随时注意微软公司的新补丁,以便更新系统。基于 ASP 的 Web GIS 还必须和 IIS(Internet Information Server), ActiveX 紧密相连,ADO(ActiveX Data Object)作为数据库访问控件,用它使客户端的程序通过 BC
6、 和 OLE DB 来操纵 GIS数据。并且 ASP 执行环境仅限于 Microsoft Internet Information Server,Microsoft Site Server 和 Personal Web Server,缺乏跨平台的特性。另一方面,每当客户端请求 ASP 网页时,服务器端都必须重新编译一次,在执行效率上略显不足。 Java 语言正是针对 Internet 应用而开发的编程语言,也是一种面向对象、支持多线程、体系结构独立的解释型动态语言,具有高度的安全性、可移植性和代码重用性,它具有“一次编译,处处运行”的效果,支持 Web 计算模式,能实现 Web 的数据分布和操
7、作分布。Java 的特殊性质使它成为开发 Web GIS 的主流技术。它利用 URL 对象可以分布式访问具有 URL 的数据对象,通过在客户端下载 Java Applet 小程序完成 GIS功能,实现对分布式数据的操作,但在实现大型 GIS 任务时能力受限制。3 基于 JSP 技术实现 Web GIS 3.1JSP 简介 JSP(Java Server Pages)是由 Sun 微系统公司于 1999 年 6 月推出的一种建构在 Servlet 技术之上的 Web 技术,JSP 将 Servlet 中的 HTML 代码脱离了出来,从而可以加速 Web 应用开发和页面维护。在这种技术中你可以将
8、Java 代码嵌入到 HTML 文件,服务器将自动为页面创建一个Servlet。利用 JSP 可以建立跨平台的、更加先进和安全的动态网站。 JSP 的最大特点是将内容的生成与显示分离。使用 JSP 技术,Web 页面开发人员可以使用 JSP 标记或小脚本来生成 Web 页面上的动态内容。生成内容的逻辑被封装在 JSP 标记和 JavaBean 组件中并运行于服务器端,由 JSP 引擎解释执行。 在 JSP 中大量的 Java 程序代码可以封装于与平台无关的 JavaBean中,而只留下极少的标记用于调用 Bean,这样就避免了代码的混乱性。除了 JavaBean 外,Enterprise Ja
9、va Bean (EJB)和 Remote MethodInvocation (RMI)等对象都可以很容易在 JSP 中访问到。 JSP 使用 JDBC(Java DataBase Connectivity)/JDO 技术访问数据库,对于只有 ODBC 的数据库,使用 SUN 公司的 JDBC-ODBC 桥程序来连接访问。服务器端生成的结果以 HTML 或 XML 页面的形式返回,保护了代码的安全性。 JSP 属于服务器端程序设计语言,基于 Web 层(三层)客户机/服务器应用模型,将用户界面层、事物逻辑层和数据层分开来,利用 Java 的跨平台性,具有一次编写,处处运行的优点。以服务器端调用
10、 JSP 的方式来分,它的基本模型一般情况下可分两种:一是服务器请求 JSP,由 JSP调用可重用的 JavaBean 组件来执行任务,譬如访问数据库、设置属性等。另一种是不用 JavaBean,服务器只请求一个 Servlet,它生成响应所要包含的动态内容,再激活一个 JSP 用来表示生成的内容。 3.2 基于 JSP 的 Web GIS 基于 JSP 的 Web GIS 由于与数据库联系较紧,一般采用 JavaBean 组件技术。JSP 用 Java 组件 JavaBean 执行确定任务和封装对象数据,JSP与 JavaBean 的关系就像 ASP 与 COM 的关系,COM 对象常用于帮
11、助从 ASP网页中分离出逻辑或计算的代码,可以在任何允许标准对象模型的语言中引用,而 JavaBean 仅限于 Java 程序设计语言,比 COM 更易于开发,只要通晓 Java,就很容易掌握 JavaBean 的结构。在 ASP 中使用 COM 对象必须在服务器上注册,对象改变时,服务器需重新启动,而 JavaBean 不需在服务器上注册,对象改变时,只需重新启动对象即可。 用 JSP 技术实现的 Web GIS, JSP 应用程序置于 Web 服务器端,当用户请求 JSP 网页时,JSP 程序将自动送给 JSP 引擎(JSP Engine)处理,它将程序中的 Java 代码分离出来,生成
12、Servlet,若无语法错误,则编译成 class 文件后,载入 Java VM(Java Virtual Machine)执行(这是JSP 程序的惟一一次执行)。当客户端有请求时,JSPEngine 会同时为每一个请求产生一个请求对象(Request)和回应对象(Response)传入Servlet 的_JSPService ( )方法,JSP 调用封装了访问 GIS 数据库、撷取和提供内部属性功能的 JavaBean,将请求参数传给 Bean 组件,由Bean 动态计算处理结果,JSP 获取相关信息后传回 HTML 形式表现结果。这样客户端看到的只是转换过的 HTML 文件,有效地隐藏了
13、JSP 源代码,保证了安全性,由于 JSP 不需要每次请求都编译,速度有所提高。 4 实际应用 Web GIS 用 JSP 从 Oracle 数据库中读取数据与用户进行交互,在客户端下载 Java Applet,实现地图的发布、比例放缩、信息查询功能。系统采用浏览器/服务器结构模式,由浏览器发出请求给 Web 服务器(Apache/Tomcat 等等),Web 服务器将请求送给相应的由 JSP 中的 Java代码生成的 Servlet,Servlet 负责激活设定了相关属性的 JavaBean,由JavaBean 与数据库相连接,在服务器端进行数据的各种查询、分析、检索等操作,这样每次 JSP
14、 询问 JavaBean 组件属性时,JavaBean 动态处理并将结果传给浏览器,由浏览器显示结果给用户。 5 结束语 本文对 JSP 技术与 Web GIS 其他实现技术进行了介绍,由于 JSP 使用 Java 作为脚本语言,具有跨平台性,JSP 与 JavaBean 技术相结合,为Web GIS 的开发带来了极大的便利。实践证明,使用 JSP 技术开发 Web GIS 优越于以前的 CGI,ASP 等等技术。相信在不久的将来,JSP 技术会日益成熟,并将有力推动 Web GIS 的发展。 参考文献: 1陈俊杰,陈灿章.Web GIS 技术及其实现方法J.太原理工大学学报,2000,31(4):394-396. 2周炎坤,李满春.Web GIS 开发方法比较研究J.计算机应用研究. 3戚铭尧,池天河,霍亮.Web GIS 的企业级解决方案探讨C.华南师范大学学报(自然科学版),2001,7:50-55.