WebGIS概述
所谓 WebGIS,通俗 的来说 ,就是地 理信息系统同互联 网络的结合。通过 Internet技术 ,可以在 Web上实现空间数据的分享 ,让用户能够对这些空间数据进行浏览 以及使用等。在 WebGIS中,通过 WW1N的某个节点 ,互联网用户就可以对 WebGIS站点中的各种空间数据进行访问 ,还可以进行专题图制作 ,进行空间检索 以及空 间分析等活动。综上所述 ,WebGIS就是由主机 、数据库 、终端组成的,通过 Intenet/In—tranet形成 的网络信息系统。在 WebGIS中 ,GIS功能层以及数据管理层为网络 Client端 ,通过 Client端来获取和应用各种信息 ;此外 ,网络 Server端就是信息数据维护层 ,主要进行信息数据的提供 以及进行系统服务等。因此 ,WebGIS系统从结构上 主要分为 4个部分 :用来显示空间数据信息以及进行 Client端在线处理的 WebGIS涮览器 ;用来均衡 网络负载 ,促进空间信息更加网络化的 WebG1S信息代理 ;还有用来对客户端查询请求以及空间分析请求进行处理的 We—bGIS服务器 ;最后是 WebGIS编辑器 ,主要是进行空间数据处理等工作。
WebGIS项目的开发主要是B/S架构。最流行的是客户端javascript,服务器端java。 另外还有flex客户端。
客户端主要完成用户交互、向服务器端发送请求并传参以及组织显示服务器端返回的结果等。 服务器端则完成数据库增删查改、业务功能等。
服务器端最底层是数据层,完成对数据的增删查改。常用的数据库有oracle、mysql等。最基本的方法是, java语言使用jdbc,组织相应的sql语句实现数据库操作。 更便捷的方法是使用第三方框架,如hibernate。 hibernate实现了数据库表与java类对象的映射orm,利用hql语句方便的进行数据库操作。
数据层上面是逻辑事务层。逻辑事务层对应着各个功能模块,功能模块实现特定的功能,功能模块的底层一般包含对数据库DAO类的调用。这一层中包含接受客户端请求的特殊类,如servlet类、acTIon类等。 可用的框架有spring、structs2等。
客户端是由界面和脚本(响应函数)构成的。 html+javascript的组合: 界面是由div等标签+css样式组合渲染而成;脚本则完成界面初始化、单击、跳转等事件的响应。
客户端最重要的一个工作就是向服务器端发送请求并获取响应结果。 这里不得不提到AJAX。 不同的js框架都提供了自己的AJAX实现。 dojo提供了xhrPost、xhrGet等实现提交请求、传递参数、获取响应结果并进行相应的处理。
客户端也可以通过调用webservice的方式来获取需要的结果。
WebG1S实现技术分析
随着 WebGIS的发展 ,当下常用的 WebGIS实现技术有 :公共网关接 口,也就是 CGI;服务器应用程序接 口,通常所说 的 ServerAPI;动态服务 器端页 面(AcTIveServerPage)以及插件 法(Plugins)、客户端控件(AeTIveXContro1)和 Java技术等。下 面分别进行介绍和分析。
CGl技 术
公共 网关接 口(CommonGateInterface)也就是说的 CGI,是一种 WWW服务器主机进行各种对外服务的一个标准接 口。CGI技术是一种最早用来进行 Web动态性 以及交互性增强的技术方法 ,进行 Web互动时 ,远程客户端通过浏览器来进行数据操作请求 ,然后服务器对数据请求进行理解 ,通过后台 CGI程序对数据进行处理 ,最后将处理结果反馈给远程用户。利用 CGI技术来进行 WebServer扩充 ,操作起来更加简单 ,对程序的调用 只需要通过某个简单的命令参数就可 以进行 ,其次 ,CGI程序也能够进行独立运行 ,更容易进行调试 。同时 ,网络 Server在 CGI访问控制方面比较严格 ,也很好的保证 了系统的安全性。最后 ,以 CGI技术为规范的应用程序可 以在 WebServer上进行移植 ,为计算机平 台的数据操作提供 了很大的便利。但是 ,CGI技术模式的 WebGIS也存在一定 的缺陷。
(1)性能方面。
应用 CGI技术时 ,面对大负荷的请求环境 ,CGI往往会出现性能不佳的问题。在 CGI技术环境下 ,面对一个新请求 ,Server都会对该请求进行新进程的构建 。这些新程序构建所造成的负荷给 Server的运行造成了很大的负担。
(2)运行状态 。
在 WebGIS应用 中,不同的 CGI程序对数据的共享不能够 自然区别开来 ,因此 ,每个程序进程都是相对独立的 ,也不能利用内部存储变量等方法来进行信息传递。采用外部存储技术来进行信息传递,严重影响了webCCI的运行状态。
(3)网络传输负荷大。
在 CGI技术应用 中,服务器端以及客户端传输的空间数据信息都是 JPEG以及 CIF格式的图像 ,直接影响了对空间数据进行可视化操作 以及分析。客户端进行空 间数据传输时 ,多次数据传输之间不能形成必要的联系 ,直接造成网络传输负荷增大。
ServerAPI技术
相对 于 CGI技术 来 说 ,ServerAPI对 WebServer的扩充更为有效。在 ServerAPI环境下 ,原来 的 CGI程序被应用函数所替代 ,例如微软 的 ISAPI。应用 函数属于共享库 的一部分 ,共享对象 只进行一次加载 ,在加载完成之后 ,加载 内容在 Server中占用一段地址空间 ,当该加载项再次进行请求 时 ,就只需要进行一次函数调用就可以了。因此 ,相对于 CGI技术来说 ,ServerAPI对进程的扩 充 ,大大减少 了程序创建所造成 的通信负载 ,因此 ,具有更快 的运行速度 。但是 ,ServerAPI技术环境下 ,客户端不能很好 的进行数据管理 ,因此 ,在 WebCGI技 术解决方面 ,ServerAPI技术同样存在网络传输负荷大的缺陷。
ASP技术
AcTIveServerPage技术是微 软开发 的一套 服务器端脚本环境 ,利用 ASP技术 ,能够将 HTML网页 、ASP指令以及 ActiveX控件等结合起来 ,创建一个动态 、交互 以及高效的应用程序。在该 Web服务器应用程序中,服务器端用来进行 ASP文件存储 ,客户端对ASP文件发送请求时 ,服务器端对 ASP文件进行解释,然后形成 HTML网页 ,反馈和传递给客户端。相对 于 CGI技术来说 ,ASP技术 在接 口对象化方 面进行 了有效的改善 ,对收集 的各种数据进行 自动分析 ,起到了很好 的数据处理效果。最后 ,ASP技术存在同CCI以及 ServerAPI技术一样 的缺陷,没有对网络传输 负荷问题进行有效 的解决 ,进行 WebGIS网络传输时 ,同样承担着很大的压力
Plug—in以及 ActiveXControl技 术
Plu in和 ActiveXControl就是通 常所说 的插件和控件 ,利用 Plug—in以及 ActiveXControl技术 ,能够对浏览器的功能进行扩充 ,从而对一些 自定义 的GIS数据文件格式进行分析和解释。例如 Plug—in技术 ,在浏览器启动的过程中 ,可以 自动对 Plu in动态链接库进行装载 ,当浏览器访问页面 中嵌入某种格式元素 ,浏览器就能够在插件链接库中寻找匹配的插件 ,进而对格式元素进行分析 和解释。因此 ,插件技术利用本地代码来进行数据执行 ,运行速度快 ,在浏览器处理功能方面,插件和空间技术也能够很好的进行矢量地图数据处理。同时 ,插件和空间技术在一定程度上开始具备客户端逻辑 ,这样就可以实现客户 同服务器之间的负载平衡 ,减少了网络带宽压力 。但是对于用户来说 ,需要在本地机器上安装浏览器嵌人功能模块 ,这就造成很大的不便 ,同时也不够安全。
Java语言
Java技术诞生于 1994年 ,Java语言 自从推 出以来 ,就得到广泛推广 。Java语言应用简单 、操作性 、动态性好 ,安全性高 ,也能够进行移植 。是一种跨平台、适合分布式计算机的编程语言 。Java语言对网络平台上的各种资源都具有较高 的兼容性 ,因此 ,Java语言对互联网以及分布式语言环境十分适应。在用户端上下载 Java程序 ,就可 以在服务器上运行各种操作 ,因此 ,到 目前为止 ,Java语言是实现 webGIS技术开发和应用的最理想的技术。Java语言在 WebGIS中的开发和实现主要分 2种 。
(1)仅仅客户端采用 Java技术的 WebGIS系统。
当只有客户端采用 Java技术时 ,服务器端 以现有系统代码为基础 ,通过 CGI数据传输协议来实现Java程序交互功能。在这种情况下 ,系统开发就相当简单了 ,系统和程序的开发时间被大大缩短 ,也能够保证系统的功能功能 ,满足制图以及地理空间分析等工作 的需要 ,同时也能够实现一定程度上的跨平 台服务 。
(2)客户端 以及服务器均采用 Java技术 的 We—bGIS系统
在这种模式下 ,Java语言技术的优势能够最大限度的发挥出来 ,借助 Java技术为客户端 以及服务器端之间建立服务 网络提供技术支持这一优势 ,可 以很好的实现 WebGIS系统开发 。但是 ,值得注意的是 ,目前 大量 的系统都 是基 于 c/c++的 GIS系统 ,因此 ,需要对这些 系统都开发相应 的 Java版本 ,这些直接造成 了系统开发的难度 。同时 ,进行 Java技术系统开发时 ,程序 的执行速度慢也是一个难题 ,为了解决这一问题 ,一些软件公 司通过编译器来进行解决 ,在Java程序执行前对字节码进行 翻译 ,然后借助 CPU进行运行 ,极大 的提高了 Java技术 的程序执行速度 。因此 ,相对于传统 c/c++程序 ,Java在开发时间上大大缩短 了,应用性能大大提高 ,文件执行过程 中占用的系统资源也 比较少 。同时 ,Java技术具有很好的跨平台优势 ,在技术支持以及执行速度等方面 同样具有很好 的优势。利用 Java技术进行 WebGIS开发可 以兼容各种资源 ,很好的促进浏览器 的运行 ,进行各种空间数据操作等 ,对于 WebGIS技术的发展 ,作用是十分重要 的
通过对各种 WebGIS开发技术 的介绍 ,分析 了CGI、ServerAPI、ASP等技术的优缺点 ,最终得出利 用Java技术进行 WebGIS系统开发和应用 ,是一个很好的选择 ,通过 Java技术为 WebGIS系统开发和发展提供有效 的的技术支持 ,为用户对系统使用提供便利 ,促进地理信息系统的发展 ,同时也可 以实现 WebGIS朝着大众化 ,社会化的方向发展。
技术专区
- 睿赛德科技喜迁新址 ,RT-Thread进入新的加速发展阶段
- 可靠性高、控制灵活、低功耗可调速风扇散热系统
- 安防监控摄像头LED驱动解决方案
- 如何定制嵌入式Linux发行版
- 基于SoC实现的数据采集系统详解