还不了解WebGIS?看这篇
经过短短的一段时间,从接触基本概念到借助网上资源完成一个简易的WebGIS页面,小编了解到WebGIS组成基本要素是:浏览器—中间件—数据层,如所有的Web项目一样,前端由HTML、CSS、JS等语言组成。根据需求和语言的特性,选择合适的语言进行开发是至关重要的。最近我也花了些许时间捣鼓了前端三剑客,还是蛮有趣的。
1.1WebGIS的产生背景
1.传统GIS发展面临信息孤岛、互操作性差、数据冗余、分享能力有限、成本高昂的问题;
2.地理信息共享和互操作的迫切要求;
3.面向普通大众提供各类地理信息服务的需求。
1.2WebGIS产生的原因
1.地理数据共享是GIS网络化的原动力;
2.地理信息处理共享是GIS网络化的推动力量;
3.GIS互操作是GIS网络化的促进因素;
4.GIS应用不再是面向局部和少数人群。
1.3WebGIS特点
1.3.1全球化的服务器应用
全球范围内任意一个WWW节点的Internet用户都可以访问WebGIS服务器提供的各种GIS服务,甚至还可以进行全球范围内的GIS数据更新。
1.3.2真正大众化的GIS
由于Internet的爆炸性发展,Web服务正在进入千家万户,WebGIS给更多用户提供了使用GIS的机会。现在流行的WebGIS平台有: ARCIMS;Mapgis IMS;Super Map IS;TopMap World;MapXtreme等国内外成熟产品。WebGIS可以使用通用浏览器进行浏览、查询,也可通过浏览器上的插件(plug-in)、ActiveX控件和Java Applet来进行WebGIS功能的访问,浏览器和这些插件都是免费的,易获取的,很大程度上扩大了GIS的潜在用户范围。而以往的GIS由于成本高和技术难度大,往往成为少数专家拥有的专业工具,很难推广。
1.3.3良好的可扩展性
WebGIS很容易跟Web中的其他信息服务进行无缝集成,可以建立灵活多变的GIS应用。
1.3.4跨平台特性
在WebGIS以前,尽管一些厂商为不同的操作系统(如:Windows、UNIX、Macintosh)分别提供了相应的GIS软件版本,但是没有一个GIS软件真正具有跨平台的特性。而基于Java的WebGIS可以做到"一次编程,到处运行 (write once, run anywhere)" ,把跨平台的特点发挥得淋漓尽致。
1.4WebGIS的功能
1.4.1地理信息的空间分布式获取
WebGIS可以在全球范围内通过各种手段获取各种地理信息。将已存在的图形数据语言通过数字化转化为 WebGIS的基础数据,使数据的共享和传输更加方便。
1.4.2地理信息的空间查询、检索和联机处理
利用浏览器的交互能力, WebGIS 可以实现图形及属性数据的查询检索,并通过与浏览器的交互使不同地区的客户端来操作这些数据。
1.4.3空间模型的分析服务
在高性能的服务器端提供各种应用模型的分析与方法,通过接收用户提供的模型参数,进行快速的计算与分析,即时将计算结果以图形或文字等方式返回至浏览器端。
1.4.4互联网上资源的共享
互联网上大量的信息资源多数都具有空间分布的特征,利用WebGIS对这些信息进行组织管理,为用户提供基于空间分布的多种信息服务,提高资源的利用率和共享程度。
2.1常用前端框架对比
2.2WebGIS的四个组成部分
1.客户端
2.Web服务与应用服务
3.GIS服务
4.数据服务
客户端:客户端是用户在Web GIS中与空间对象和分析功能进行交互的场所。它也是互联网GIS程序向用户呈现输出的地方。
Web服务器和应用程序服务器:Web服务器通过HTTP响应来自Web浏览器的请求。当Web服务器将请求传递给其他程序时,它会从应用程序服务器请求服务。应用程序服务器充当Web服务器和GIS服务器之间的转换器或连接器。
GIS服务器:GIS服务器是一个主要的主力组件,它可以完成空间查询,进行空间分析,并根据用户的请求生成并向客户端提供地图。
数据服务器:数据服务器在关系或非关系数据库结构中提供空间和非空间数据。
2.3WebGIS技术框架
2.3.1基于J2EE的分布式WebGIS
(1)J2EE概述
J2EE是使用Java技术开发企业级应用的一种事实上的工业标准,它是Java技术不断适应和促进企业级应用过程中的产物。目前,Java平台有三个版本:适用于小型设备和智能卡的J2ME(Java 2 Platform Micro Edition)、适用于桌面系统的J2SE(Java 2 Platform Standard Edition)和适用于企业级应用的J2EE。
Sun推出J2EE的目的是为了克服传统Client/Server模式的弊端,迎合Browser/Server架构的潮流,为应用Java技术开发服务器端应用提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。J2EE是一个标准,而不是一个现成的产品。J2EE不仅巩固了标准版中的许多优点,如便利的数据存取特性、可靠的网络数据安全等,同时还全面支持对Java Servlets API,JSP(Java Server Page),EJB(Enterprise Java Beans)以及XML技术。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
2.3.2基于EJB技术的WebGIS结构
EJB是一个服务端组件结构,具有层析性,这也正适应了WebGIS应用程序的开发需要。在通常情况下,基于EJB技术的WebGIS系统模型包括三层结构如图10-3所示。
①表示层
表示层主要用来满足用户对整个系统的各种访问需求,并完成以下任务:接收用户输入的请求,对请求进行分析检查并做相应处理;显示由服务器传来的响应结果。该层通常由客户进程组成,这些进程由浏览器动态的创建和撤销。
②业务逻辑层
业务逻辑层由Web服务器和应用服务器组成。应用服务器是一个基于J2EE的应用,以后台进程的形式存在,主要完成从WebGIS应用服务器的处理逻辑,包括影像数据流、矢量数据流和空间查询与分析服务等。业务逻辑层响应客户端的数据、影像以及查询分析等请求,并将生成的结果经Web服务器传送给客户端。
③数据层
数据层主要为业务逻辑层提供数据服务,如存储业务逻辑层的处理结果、返回业务逻辑层检索的数据结果。同时也为业务逻辑层屏蔽了数据源的变化,实现当数据库类型发生变化时只需改变连接数据源的语句。
2.3.3基于DCOM/COM+的分布式WebGIS
(1)DCOM与COM+概述
分布式组件对象模型DCOM,是组件对象模型(Component Object Model,COM)发展的新阶段。它扩展了组件对象模型技术,使其能够支持在局域网、广域网,甚至互联网上不同计算机的对象之间的通讯。使用DCOM,应用程序就可以在位置上达到分布性,从而满足客户和应用的需求。
DCOM的发展有力的推动了COM在网络环境中的发展。当然,从COM转到DCOM,并不仅仅意味着通信线路的加长,同时组件对象与客户程序协作运行的环境也发生了变化,从单机系统环境转到网络环境。毕竟网络通信比单机系统环境下的跨进程通信要脆弱得多,为了保证协作过程的可靠性以及程序对异常时间的应变能力,客户程序和组件程序需要考虑更多的细节,而不是仅仅提供与应用相关的基本功能。
COM+为COM更高层次上的应用。COM+的底层结构仍然以COM为基础,它几乎包容了COM的所有内容。COM+倡导一种新的设计概念,把COM组件提升到应用层,把底层细节留给操作系统,使COM十与操作系统的结合更加紧密。COM+相对于COM在应用方式上更好地继承了MTS(Microsoft Transaction Server)的处理机制,包括MTS的对象环境、安全模型、配置管理等。COM+把COM、DCOM和MTS三者有机地结合起来,同时也新增了一些服务,如负载平衡、内存数据库、事件模型、队列服务等,形成一个概念新、功能强的组件体系结构,使得COM+成为真正适用于企业应用的组件技术。COM+标志着Microsoft的组件技术达到了一个新的高度,它不再局限于一台机器上的桌面系统,而是把目标指向了更为广阔的企业内部网,甚至Internet国际互连网络。COM+与多层结构模型以及Windows操作系统为企业应用或Web应用提供了一套完整的解决方案。
2.3.4基于DCOM/COM+的WebGIS结构
根据Microsoft公司提供的分布式应用程序模型,基于DCOM的WebGIS可将复杂的GIS任务分为三个层次的逻辑:表示逻辑、业务逻辑和数据逻辑,如图10-4所示。
表示层是应用的客户端部分,它负责与用户交互及调用业务逻辑层的COM十组件来响应客户的请求。该层可以通过HTML、DHTML、ActiveX控件以及Win32应用程序来实现。中间的业务逻辑层负责处理表示层的应用请求,在需要的时候通过访问后端的数据服务层来完成数据的查询、检索和修改。后端的数据服务层负责为GIS应用提供空间数据、空间数据分析管理及数据的读写、检索和存储。
2.3.5基于CORBA的分布式WebGIS
(1)CORBA概述
CORBA提供了一个允许在分布式和异构型环境中应用程序之间进行互操作的框架。它是对象管理组织(Object Management Group,OMG)制定的有关对象技术的工业规范,是对OMG发布的对象管理体系(Object Management Architecture,OMA)参考模型的核心—对象请求代理(Object Request Broker,ORB)的功能描述与约定。OMA参考模型定义了CORBA的4个主要部分:对象服务(Object Services)、公共设施(Common Facilities)、应用对象(Application Objects)和ORB。
对象服务是为公共设施和各种应用对象提供的基本服务,如命名服务、事务服务、交易服务、生命周期服务和安全服务等。与对象服务不同,公共设施是面向最终用户的,而对象服务只面向构件本身。应用对象是未经OMG标准化的、由各个应用开发者自行开发的实体,应用对象使用CORBA提供的各种对象服务。对象请求代理ORB是作为对象互相通讯的软总线,负责部件间以及客户端和对象间的通讯。
(2)基于CORBA的WebGIS结构
CORBA的出现为WebGIS技术的结构优化提供了有力的支持,相继产生了一些具有分布特征的GIS组件己经成为GIS服务器的主要组成部分,对于提高WebGIS的互操作性和开放性具有直接的促进作用。
使用CORBA/Java技术,可以按照三层结构来构造WebGIS应用,分别为客户层、业务层和资源层。下图所示为通过Java-ORB接口存取CORBA对象的方法而设计的一种三层结构示意图。
①客户层
该层提供与用户交互的界面。与传统的B/S模式中的客户端相比,这里的客户端所拥有的组件能够提供灵活性强、交互性好的图形界面。这些组件被嵌入在可移动的容器中(如HTML等)。客户端运行的是一个使用自身对象协议(Internet Inter-ORB Protocol,IIOP)的分布式对象。与HTTP协议不同的是,IIOP协议是动态的,通过它可以建立客户端Java应用和服务器端对象之间的持久连接,从而达到传递请求和响应结果的目的。
②业务层
业务层是一组能够向HTTP和CORBA客户端提供服务的服务器。在基于CORBA/Java的对象Web模型中,应用逻辑被封装成CORBA对象,担当业务层的应用服务器角色,这些对象通过IIOP协议与客户端的Java进行交互,提供逻辑处理功能。IIOP提供了本地和远程操作的透明性,因此开发人员不必关心对象的具体位置。
③资源层
资源层为CORBA对象提供可以访问的资源,包括DBMS、空间数据库、遗留系统等。由于在中间层以CORBA对象取代了CGI应用程序,因而扩大了访问资源的范围,几乎可以访问任何符合CORBA规范的系统及所拥有的资源。在基于CORB/Java技术的对象Web模型中,可以利用Java对象请求中介与CORBA对象通信。
3.1开发模式
C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。
B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。
3.1.1C/S框架图
3.1.2B/S框架图
两者的区别:
- END -