文章编号:100622475(2004)0620058203收稿日期:2003207207作者简介:张苏(19692),男,河北宁晋人,铁道部第四勘测设计院电气化处工程师,京沪高速、宜方铁路项目负责人,研究方向:GIS 及其应用;唐伟(19732),女,湖北武汉人,中国工商银行湖北省分行科技处工程师,研究方向:GIS 及其应用。
基于Java 平台的完整的WebGIS 构架张 苏1,唐 伟2(1.铁道部第四勘测设计院电气化处,湖北武汉 430063;2.中国工商银行湖北省分行科技处,湖北武汉 430060)摘要:给出了一个完整的基于Java 技术的WebGIS 框架,论述了其系统功能和开发技术,并指出了其优点。
关键词:地理信息系统;国际互联网;互联网地理信息系统;Java 技术中图分类号:TP391 文献标识码:AAn I ntegrated Architecture of WebGIS B ased on Java T echnologyZH ANG Su 1,T ANG Wei 2(1.E lectrization O ffice ,The F ourth Survey &Design Institute of China Railway ,Wuhan 430063,China ;2.Department of Science and T echnology ,Hubei Branch ,Industrial and C ommercial Bank of China ,Wuhan 430060,China )Abstract :This paper proposes an integrated WebGIS frame based on Java technology ,recounts its functions and development techniques ,and indicates its advantages.K ey w ords :geographic in formation system ;W orld Wide Web ;WebGIS;Java technology0 引 言地理信息系统(G eographic In formation System ,GIS )是一种为了获取、存储、检索、分析和显示空间定位数据而建立的计算机化的数据库管理系统,它集当代最先进的图形、图像、地质、地理、遥感、测绘、人工智能、计算机科学等技术为一体,具有地图输入、数据库管理、空间分析等功能,是当前研究的热点之一。
自六十年代以来,它在全球范围内得到了广泛的重视,无论在系统理论、研究方法,还是在应用系统等方面都有着长足的发展,在未来几十年内,随着相关技术的发展和实际应用的需要,地理信息系统将向着数据标准化、数据多元化、系统集成化、系统智能化、平台网络化、应用社会化的方向发展。
1 WebGIS 的体系结构通常情况下,WebGIS 系统主要由四部分组成:(1)WebGIS 浏览器(Browser ):WebGIS 的终端用户通过浏览器连接到远程WebGIS 站点上,浏览We 2bGIS 站点中的空间数据,制作专题图,进行各种空间检索和空间分析等工作。
作为用户界面,WebGIS 浏览器含有的语意解释和转化机制能够方便WebGIS 用户的查询和分析。
(2)WebGIS 信息代理(In formation Agent ):WebGIS 信息反映着地理信息的数据结构,是空间信息网络化的关键部分。
它介于WebGIS 浏览器和WebGIS 服务器之间,主体是信息代理机制和信息代理协议,负责定义WebGIS 浏览器与WebGIS 服务器间查询请求和响应的通讯协议,提供直接访问GIS 数据库的功能。
通过消息代理机制,可以在Client/Server 结构中合理地分配各部分功能,平衡网络负载,以达到减少网络传输带宽,增大请求响应速度的目的。
(3)WebGIS 服务器(Server ):提供易于配置和管理WebGIS 的服务器,该服务器能解释中间代理请求并根据查询请求对GIS 数据库进行空间操作,实现WebGIS 浏览器和WebGIS 服务器的动态交互。
采用空间元数据库管理技术,对分布式异构的空间数据库源进行描述与索引,提供网络空间信息导航访问;结合分布式对象技术,提供对分布式超媒体GIS 数据的访问。
(4)WebGIS 编辑器(Editor ):该编辑器提供一个计算机与现代化 2004年第6期J IS UAN J I Y U XI ANDAIH UA总第106期所见即所得的编辑生成环境,具有可视化、交互式窗口的功能,能建立GIS 对象、模型和实现浏览器与服务器的动态交互,提供对空间数据库导入功能,可对多源GIS 数据按指定结构导入空间数据库。
实现编辑器与Web 服务器、浏览器及相关的子系统的无缝连接,形成完整的GIS 对象、GIS 模型和GIS 数据结构的编辑及表现环境,以嵌入式方式向浏览器及Web 服务器的网页制作提供GIS 对象编辑及表现功能。
2 基于Java 平台的WebGIS 构架结构常见的企业级互联网应用构架通常是这样组织的:分布在各地机构中的一组计算机组成一个局域网,各个局域网又组成一个庞大的广域网,数据分布存储在各地。
在最初的三层体系结构中,客户端所需的Java Applet 程序是在运行时从应用服务层中某台服务器下载的,但在一个复杂的广域网环境下,由于带宽和流量的不同,常常使得下载时间可能从秒级到分钟级,甚至更长。
这就需要一种机制来缓存各局域网中客户端经常使用的Java Applet 程序和静态数据,从而减少下载时间和网络流量。
另外,由于Java 虚拟机的安全性策略禁止一个Java Applet 程序访问任何本地或网络资源,而且它只能与源宿主机(所谓源宿主机就是向浏览器传送Java Applet 程序的机器)上运行的程序通信。
因此,客户端仅仅采用Java Applet 的形式对于复杂的WebGIS 应用是远远不够的。
在参考Sun 公司提出的互联网应用的多层构架的基础上,我们给出一个完整的基于Java 技术平台的WebGIS 解决方案如图1所示。
这里,整个系统由四层组成:客户层(Client T ier )、顶端Web 服务层(WebT op T ier )、WebGIS 服务层(WebGIS Server T ier )和数据库层(Database T ier )。
2.1 客户层客户层通常向客户提供应用的接口,它是一个图形用户界面。
在这一层运行的程序是Java Applet 程序,这些程序可以运行在一个Web 浏览器环境下,也可以运行在任何可以运行Java 软件的环境下(例如网络计算机)。
客户层不需要完成任何重要的业务逻辑,也不以任何方式直接和数据库交互,同时也不保存任何本地的状态信息,它只是提供与用户交互的功能,提供一个良好的人机界面。
这样就保证了系统中的客户机是一个真正的“瘦”客户机。
2.2 顶端Web 服务层顶端Web 服务层是Sun 公司多层体系结构中非常重要的一层,它主要起代理(Proxy )和缓存(Cache )的作用。
为了解决三层结构中存在的两个问题,Sun 公司在新的体系结构中使用两个顶端Web 服务层的模式,其中一台通常放置在一个局域网内部,为这个局域网内部的多台客户机提供服务;另一台顶端Web 服务器用缓存来存储应用需要的Java Applet 程序和静态数据,提供访问本地资源(例如用户文件和打印机)的能力,起了一个Java Applet 主机和访问其它服务的代理作用。
这一层主要包括以下几个部分:代理服务器、服务定位Servlet (Service Locator Servlet )、本地服务(Local Service )和代理Servlets (Proxy Servlets ),其中,代理服务器的作用是缓存本地各客户机经常使用的Java Ap 2plet 程序和静态数据,与普通代理服务器的作用相同;服务定位Servlet 的功能是根据客户机发来的请求寻找适当的服务,从而完成对客户机需要的数据和网络资源的存取。
本地服务主要包括文件存取、打印、登录、配置和回话等,这些服务的功能是根据各客户机的请求完成对本地资源的访问;顶端Web 服务层还包含代理Servlets ,它的功能是访问远端数据。
如果客户机需要访问远端数据,那么它向服务定位Servlet 发出请求,并从服务定位Servlet 获得一个访问“句柄”,从而通过代理Servlets 访问远端数据。
2.3 应用服务层应用服务层是多层结构中最重要的一层,它提供所有的业务逻辑处理功能。
整个系统中所有对数据库的操作都在这一层中完成。
应用服务层包括完成业务逻辑处理所需要的各种服务,这些服务以API 的方式提供,客户端通过调用这些API 来完成对数据库的操作。
例如,认证服务(Authentication Service )通过访问企业的认证数据库来验证用户口令数据是否正确。
对于每一种应用服务, 2004年第6期张苏等:基于Java 平台的完整的WebGIS 构架59都有一个代理Servlet相对应,它自动从应用服务层下载到顶端Web服务层。
当某个客户端请求某种服务时,顶端Web服务层的服务定位Servlet会传给它对应这种服务的一个“句柄”。
客户端利用这个“句柄”向一个代理Servlet发送请求,这个代理Servlet将这个请求发送到应用服务层,再由应用服务层中的某个服务来完成对这个请求的响应。
2.4 数据库层最后一层是数据库层,它的功能是存储应用中的数据。
它一般采用关系数据库(RDB)或面向对象数据库(OODB)。
数据库和应用服务层共同完成业务规则、验证和持续存储的实现。
3 基于Java平台WebGIS多层结构的内部通信方式 客户端与顶端Web服务层之间使用的协议有HTTP和RMI两种。
客户层通过HTTP协议将存储在顶端Web服务层Java Applet程序下载到本地运行;还可以通过HTTP协议调用顶端Web服务层的服务定位Servlet,服务定位Servlet返回一个RMI对象索引,然后客户层利用这个索引与代理Servlets来通信,这时使用的协议是RMI,从而获得需要的数据或服务。
顶端Web服务层与应用服务层之间使用的协议有HTTP和RMI两种。
顶端Web服务层使用HTTP 协议从应用层下载Java Applet程序和Java Servlet程序;当顶端Web服务层通过RMI获得客户层的请求时,它同样使用RMI与应用服务层中某种服务通信,转发请求,获得应用服务层发送的结果后再转发给客户层。