2.2.2.1 基于CGI方式
1.原理
通用网关接口(Common Gateway Interface,CGI)是Web服务器调用外部应用程序的接口,是最早用于Web动态性和交换性的一种方法。
基于CGI方式实现WebGIS的原理如下(孟令奎等,2005):
用户通过浏览器发出URL及GIS数据操作请求;Web服务器接受请求,并通过CGI脚本,将用户的请求传送给GIS服务器;GIS服务器接受请求,进行GIS数据处理,如放大、缩小、漫游、查询、分析等,将操作结果形成GIF或JPEG图像,就好像给结果拍了一个“快照”;最后,GIS服务器将GIF或JPEG图像通过CGI脚本、Web服务器返给Web浏览器显示,达到根据用户在客户端的操作动态地显示地图的效果。工作流程如图2-4所示。
利用CGI实现WebGIS时,在服务器端需要运行GIS应用程序,同时开发CGI程序实现Web服务器与GIS应用程序之间的通讯。CGI程序可以用任何一种能运行在服务器上的语言如C、Shell、VB等编写。
2.特点
优点包括:
图2-4 基于CGI方式的工作原理
(1)“瘦”客户端,即不需要在客户端安装任何软件,在客户端使用的是支持标准HTML的Web浏览器,操作结果以静态的GIF或JPEG图像的形式表现,客户端与平台无关。
(2)CGI方式被多种操作系统的Web服务器支持,因此,CGI模式在服务器端具有跨平台的能力。
缺点包括:
(1)增加了网络传输的负担。由于用户的每一步操作,都需要请求通过网络传送给GIS服务器,GIS服务器将操作结果形成图像,通过网络返回给用户。因而网络的传输量大大增加了。
(2)服务器的负担重。所有的操作都必须由GIS服务器解释执行,服务器的负担很重;信息(用户的请求和GIS服务器返回的图像)通过CGI脚本在浏览器和GIS服务器之间传输,势必影响信息的传输速度。
(3)同步多请求问题。对每个客户机的请求,都要重新启动一个新的服务进程。CGI脚本处理所有来自Web浏览器的输入和解释所有GIS服务器的输出。当有多用户同时发出请求时,系统的功能将受到影响。
(4)静态图像。在浏览器上显示的是静态图像,用户不能直接在客户端进行缩放、漫游等操作和复杂的空间分析。客户端的功能受到限制,影响了GIS资源的有效使用。
2.2.2.2 基于Plug—in方式
1.原理
Plug—In(插件)是一种接入浏览器程序的动态链接库,通过浏览器提供的一套应用程序开发接口,将大部分负荷加在浏览器程序上,用以增加浏览器功能,解决与浏览器程序之间的相互调用问题。GIS Plug—In可以使浏览器支持特定格式的GIS数据文件,增强浏览器处理空间数据的能力。
基于Plug—In方式实现WebGIS的原理如下(孟令奎等,2005):
Web浏览器发出GIS数据操作请求,Web服务器接受用户请求,进行处理,并将用户所要的GIS数据传送给Web浏览器;客户端接收到Web服务器传送来的GIS数据,对数据类型进行理解;在本地系统中查找与GIS数据相关的Plug—In,如果找到了相应的GIS Plug—In,用它来显示GIS数据,如果没有,则需要安装和加载相应的GIS Plug—In来完成GIS操作。GIS操作如缩放、漫游、查询、分析皆通过运行浏览器中的GIS Plug—In来完成。如图2-5所示。
图2-5 基于Plug—In方式的工作原理
2.特点
优点包括:
(1)由于对每一种数据源都需要有相应的GIS Plug—In,因而能无缝支持与GIS数据的连接。
(2)所有操作都在本地由GIS Plug—In完成,因而GIS操作速度快。
(3)服务器的任务少,网络传输的负担轻。服务器仅需要提供GIS数据服务,网络也只需要将GIS数据一次性传输。
缺点包括:
(1)GIS Plug—In与平台相关。对同一GIS数据,不同的操作系统需要不同的GIS Plug—In;对于不同的Web浏览器,同样需要有相对应的GIS Plug—In。
(2)GIS Plug—In与GIS数据类型相关。对GIS用户而言,使用的GIS数据类型是多样的。对于不同的GIS数据类型,需要有相应的GIS Plug—In来支持。
(3)需要事先安装。用户如想使用,必须下载安装GIS Plug—In程序。如果用户准备使用多种GIS数据类型,就必须安装多个GIS Plug—In程序。Plug—In程序在客户机上数量增多,不仅占用客户机的磁盘空间,而且势必对管理带来压力。
(4)更新困难。当GIS Plug—In程序提供者将GIS Plug—In升级时,须通告用户进行软件升级。升级时,需重新下载安装。
(5)使用已有的GIS操作分析资源的能力弱,处理大型的GIS分析能力有限。无法与CGI模式相比。
(6)GIS数据的保存、分析结果的存储和网络资源的使用能力有限。
2.2.2.3 基于ActiveX方式
1.原理
ActiveX是Microsoft开发的一套应用于网络应用程序开发的技术标准,是建立在OLE(Object Linking and Embedding)技术上、为扩展Microsoft的Web浏览器IE功能而提供的、用于完成具体任务和信息通讯的软件模块,其基础是COM(Component Object Model)。GIS ActiveX控件用于处理GIS数据和GIS分析。
基于ActiveX技术实现WebGIS的原理如下(孟令奎等,2005):
用户从Web浏览器发出GIS数据操作请求,Web服务器接受请求后进行处理,将用户所需要的GIS数据对象和GIS ActiveX控件传送到客户端Web浏览器。客户端接收到GIS数据和ActiveX控件后,启动控件,对GIS数据进行处理,完成GIS操作。见图2-6。
图2-6 基于ActiveX的工作原理
2.特点
优点包括:
ActiveX控件和Plug—In非常相似,都是扩展Web浏览器功能的动态模块。所不同的是,ActiveX能被支持OLE标准的任何程序语言或应用系统所使用,而Plug—In则只能在某一具体的浏览器中使用。
缺点包括:
(1)与浏览器相关。目前只有Microsoft的IE浏览器全面支持。在使用其他浏览器时,须增加特殊的Plug—In予以支持。
(2)与平台相关。对于不同的平台,必须提供不同的GIS ActiveX控件。
(3)安全性较差。需要下载,不仅占用客户机磁盘空间,而且由于它对客户机进行了磁盘写操作,降低了系统的安全性。
2.2.2.4 基于Java Applet方式
1.原理(www.daowen.com)
Java是新一代的网络应用程序开发语言,具有跨平台、适合分布式计算环境、完全面向对象等显著特点。最大的优点是SUN公司提出的一个口号“一次写入,随处运行(Write once,run anywhere)”,即指其跨平台性。Java语言经过编译后,生成与平台无关的字节代码(Byte Code),可以被不同平台的Java虚拟机解释执行。服务器端的应用是运行在严格控制的环境中,这意味着永远都不会出现Java虚拟机版本的不匹配,因此Java被称为服务器端的理想语言。此外,Java语言本身支持网络、多线程等特性,其可靠性和安全性使其成为Internet上重要的编程语言,也成为实现WebGIS分布式应用体系结构的理想开发语言。
Applet是小型的Java程序,它是专门为建立动态Web网页而设计的。Applet每次随网页一起被加载到客户端,然后,浏览器调用Java虚拟机执行Applet程序。Applet仅是被加载到客户端的内存中,用户退出Applet页面,Applet页面就自动被回收了,因此Applet虽然是“胖客户端”,但不占用客户端磁盘空间,不访问本地文件系统。
基于Java Applet技术实现WebGIS的原理如下(孟令奎等,2005):
用户从Web浏览器端发出GIS操作请求;Web服务器接收到用户的请求后进行处理,将用户所需要的GIS数据和Java Applet传送到客户端的Web浏览器。客户端接收到Web服务器传来的GIS数据和Java Applet,启动GIS Java Applet,对GIS数据进行处理,完成GIS操作。GIS Java Applet在运行过程中,又可以向GIS服务器发出数据服务请求,GIS服务器接受请求,进行处理,将所需的GIS数据传送给Java Applet,见图2-7。
图2-7 基于Java Applet的工作原理
2.特点
优点包括:
(1)体系结构中立。与操作系统和平台无关,可以在所有具有Java虚拟机的Web浏览器上运行。一次写入,随处运行。
(2)运行动态。无须在客户端预先安装。因为Java Applet是运行时从Web服务器动态下载的,所以当服务器端的Java Applet更新后,客户端总是可以使用最新的版本。
(3)操作速度快。所有GIS操作都可以在本地由GIS Java Applet完成,因此运行速度快。
(4)服务器和网络传输的负担轻。服务器仅需提供GIS数据服务,网络也只需要将GIS数据一次性传输。
(5)平衡负载。因为Java语言本身支持网络功能,可以实现Java Applet与服务器程序的直接连接,从而能使GIS数据处理操作既可以在服务器上实现,也可以在客户端实现,从而实现两端负载的平衡。
缺点包括:
(1)使用已有的GIS操作分析资源的能力弱,处理大型的GIS分析能力有限。
(2)GIS数据保存、分析结果的存储和网络资源的使用能力有限。
2.2.2.5 基于XML方式
1.原理
基于XML方式的WebGIS实现包括客户端的地图浏览、服务器端和客户端的通讯、数据传递以及对XML(主要是GML)文档的解析,可以通过Java语言编程来实现。利用Java Applet编程实现客户端对矢量图形的操作。Java Applet嵌在网页中,随着用户打开网页自动下载在客户端。客户端程序还要能对传输来的XML(GML)数据进行解析,显示并且要能根据用户的要求生成相应的命令文件发送到服务器端,从而达到诸如地理元数据的查询、定制地图的查询以及地图数据的请求等操作。
服务器端则负责和数据库连接、进行文件的打包、数据的转换工作,可以利用Java Applet来实现。它接收客户端返回的命令后,对客户需要的数据进行收集、打包。在数据收集过程中,查到相应的数据后还要对数据进行编辑。对于传统格式的数据,要把它转换成符合特定DTD的XML文档;对于XML文档的数据,要利用XQL查询语言对数据进行提取,得到符合条件的数据;对于不同DTD格式的XML文档,还需要利用XSTL(可扩展的样式语言转换)进行转换,之后再生成新的XML文档进行传输。
在客户端和服务器端之间的通信也是通过XML形式的文档来实现。定义一套用于传输信息的基于XML的通讯协议,通过在客户端和服务器端的请求及响应来形成通信。它至少包含3个基本元素来达到3个基本的功能,即地图的配置信息,通过该元素来描述地图该如何显示,包括图层清单及图层的显示符号等内容;命令的请求以及命令的响应。具体构架如图2-8所示。
图2-8 基于XML方式的Web服务构架
2.特点
基于文本的表达方式,使XML表达同样信息时所占据的空间比二进制的数据要大。同时在对XML文件中的数据进行查询时,由于没有数据库中类似索引的结构,查询效率也就没有在数据库中进行查询那样有效率。
如果想把XML形式的文件转化为数据库文件,就要考虑其中数据的多值问题。由于GIS数据都是分层表示的,而且属性数据量一般都很大,因此生成的XML文件也应该是每层一个,这样既可以保证不会出现很大的文件,还可以保证处理文件的性能。但处理过程中,往往需要首先把整个文档读完,并建立一个树状的文档结构,因此对内存有着大量的需求。这种需求在处理小型文档时是可以接受的,但对大文档必须采用另外的方式。
利用XML可以使GIS数据在Web上实现共享,并允许用户针对各自的应用进行各种扩展。如果使用的是最普及的客户平台的话,就可以在显示空间数据时不必下载任何栅格图形,同时客户端也不必下载任何插件。由于XML及其相关的一些协议并不是由某个厂商所操纵,利用XML技术必然可以大大提高网站的可移植性和复用性,使一切相关应用变得更为简单。
2.2.2.6 基于Web Service方式
1.原理
Web Service的基本结构包括(马林兵等,2006):
(1)Web Service目录。它提供Web Service在Internet上的位置,统一说明、发现和集成。UDDI企业注册中心是UDDI方案的核心。使用它,企业应用可以动态地定位其他企业提供的Web服务信息。
(2)Web Service发现。是定位一个或多个说明特定Web Service服务的过程。这些文档通常使用Web Service说明语言WSDL表示。Web Servcice的客户通过服务发现过程来明确Web Service是否存在,以及从哪里获取这个服务。
(3)Web Service说明。服务说明是一个使用WSDL表示的XML文档,其中定义了Web Service可以理解的消息格式。
(4)Web Service对象传递。Web Service可以采用多种开放协议作为其服务对象的传输协议,比如CORBA、DCOM等。SOAP是Web Service上应用最广泛的对象传输协议。它是一种基于XML的简单协议,以HTTP为承载,消除了不同操作系统、网络环境的差别,为Web Service在一个松散的、分布的环境中使用XML对等地交互结构化和类型化的信息提供了一个简单而轻量级的机制。
如图2-9所示,实现一个完整的Web Service包括以下步骤:
(1)Web Service提供者设计实现Web Service,将调试正确后的Web Service通过Web Service中介者发布,并在UDDI注册中心注册。
(2)Web Service请求者向Web Service中介者请求特定的服务,中介者根据请求查询UDDI注册中心,为请求者寻找满足请求的服务。
图2-9 基于Web Service的实现原理
(3)Web Service中介者向请求者返回满足条件的Web Service描述信息,该描述信息用WSDL写成,各种支持Web Service的机器都能阅读。
(4)Web Service中介者返回的描述信息生成相应的SOAP消息,发送给Web Service提供者,以实现Web Service的调用。
(5)Web Service提供者按照SOAP消息执行相应的WebService,并将服务结果返回给Web Service请求者。
2.特点
基于Web Service实现的开放式WebGIS能够提供一套具有开发界面规范的通用组件,这些组件可以实现不同种类地理数据和地理处理方法的透明访问,具有以下特点:
(1)可互操作。开放式GIS提供地理数据和地理操作的标准接口。这些接口支持独立系统和网络,以完成应用程序之间的地理数据访问、交互,分布式的客户端服务器结构的地理操作和分布式对等用户实体的地理操作。
(2)支持信息团体。具有不同应用背景的用户可以方便地交换地理数据而不会造成语义的误解和损失。
(3)普遍性。通过开放式GIS定义的标准接口和协议,所有的应用程序,无论属于什么专业领域,都可以方便地处理地理数据。
(4)可移植性。开放式GIS独立于具体的软件环境、硬件平台和网络,其组件具有即插即用的特点,可以为各种计算环境更新配置,而不必考虑数据量的大小。
(5)可扩展。开放式GIS可以随着新的地理数据类型和处理方法的发展而发展,具有容纳新的地理数据处理技术和新的分布计算平台技术的能力。
(6)可靠性。分布式地理处理要求高水平的管理功能和集成性,开放式GIS规范提供的技术框架支持开放式GIS的特定方案,是开放式GIS软件的购买者提供交互性的可靠保证。
(7)兼容性。开放式GIS为用户提供了无缝集成技术,保护了用户在传统数据和软件上的投资。现有地理信息处理软件和地理数据以及相关的信息技术与开放式GIS软件,对用户来讲在某种形式上是透明的,对传统地理信息技术是兼容的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。