WebGIS的基本实现方式.ppt
3.2 Web GIS的基本实现方式,3.2.1 基于CGI方式1.CGI 原理 通用网关接口(Common Gateway Interface,CGI)是Web服务器调用外部程序的标准接口,是最早用于增强Web动态性和交换性的一种方法。一般来说,一个CGI接口的功能就是在超文本文件和服务器主机应用程序间传递信息。任何一种语言,只要能在服务器主机上利用CGI接口来编写应用程序,都可以叫做CGI程序语言,如C、Shell、VB、Fortran。,CGI程序一般是个可执行程序。编译好的CGI程序一般要集中放在一个目录下。具体存放的位置随操作系统的不同而不同。例如,UNIX操作系统下放在cgi-bin子目录下,Windows操作系统下以IIS作为Web服务器,CGI程序都放在cgi-win子目录下。,2.基于CGI方式的Web GIS工作原理,用户通过浏览器发出URL及GIS数据操作请求;Web服务器接受请求,并通过CGI脚本,将用户的请求传送给GIS服务器;GIS服务器接受请求,进行GIS数据处理,如放大、缩小、漫游等,将操作结构形成GIF或JPEG图像;最后服务器将GIF或JPEG图像,通过CGI脚本、Web服务器返回给Web浏览器显示,达到根据用户在客户端的操作,动态地显示地图的效果,工作流程如图3.5所示。,图3.5 CGI 方式工作原理,3.基于CGI方式的Web GIS特点,优点:.“瘦”客户端,即不需要在客户端安装任何软件,在客户端使用的是支持标准HTML的Web浏览器,操作结果以静态的GIF或JPEG图像的形式表现,客户端与平台无关。.CGI方式被多种操作系统的Web服务器支持,因此,CGI模式在服务器端具有跨平台的能力。,缺点:增加了网络传输的负担。用户的每一步操作,都需要将请求通过网络传送给GIS服务器;GIS服务器将操作结果形成图像,通过网络返回给用户。因而网络的传输量大大增加了。服务器的负担重。所有的操作都必须由GIS服务器解释执行,因而服务器的负担加重。,同步请求问题多。由于CGI脚本处理所有来自Web浏览器的输入和解释GIS服务器的所有输出。当有多用户同时发出请求时,系统的功能将受到影响。静态图像,在浏览器上显示的静态图像,用户既不能直接在客户端进行放大、缩小操作,又不能通过几何图形如点、线、面来选择显示其关心的地物。用户界面的功能受Web浏览器的限制,影响GIS资源的有效使用。,基于CGI模式的比较典型的Web GIS 产品有:MapObject 和ProServer等。,3.2.2 基于Server API方式,Server API 方式是为了克服CGI方式的低效率问题而研制的,基本原理类似于CGI,不同之处在于CGI程序是单独可以运行的程序,而Server API往往依附于特定的Web服务器,如Microsoft ISAPI依附于IIS,只能在Windows平台上运行,其可移植性较差。在ISAPI 下 建 立 的 应 用 程 序 是 以 动 态 连 接 库 的 形 式 存 在;而CGI 的 应 用 程 序 一 般 都 是 可 执 行 程 序。基于Server API的动态连接模块启动后会一直处于运行状态,而CGI每次都要重新启动,其速度较CGI快得多。,工作流程如图3.6所示。,图3.6 Server API方式工作原理,其缺点是Server API没有统一的标准,在通用性方面有缺陷,并且依附于特定的服务器和计算机平台(Windows系列),可移植性差。,3.2.3 基于Plugin方式,1.Plugin原理 Plug-in是由NetScape提出的标准,是一种接入浏览器程序的动态链接库(DLL),它采用了DLL方式,可以很好地解决与浏览器程序间的相互调用问题。Plug-in作为网络能力的一种扩展,将大部分负荷加在浏览器程序上,这样就能正确地浏览很多数据类型,在浏览器端完成矢量信息的显示。,浏览器插件是指能够同浏览器交互信息的软件,第三方软件开发商可以开发插件以使浏览器支持其特定格式的数据文件。利用浏览器插件,可以将一部分服务器的功能转移到客户端。,2.基于Plugin方式的Web GIS工作原理,Web浏览器发出GIS数据浏览操作请求,Web服务器接受到用户的请求,进行处理,并将用户所要的GIS数据传送给Web浏览器;客户机端接受到Web服务器传送来的GIS数据,并对GIS数据类型进行理解;在本地系统查找与GIS数据相关的 Plug-in,如果找到了相应的GIS Plugin,用它来显示GIS数据,如果没有找到,则需要安装和加载相应的GIS Plug-in来显示GIS数据。GIS的操作如放大、缩小、漫游、查询、分析都直接由运行于浏览器中的GIS Plug-in来完成。,其体系结构如图3.7所示。,下载并安装Plug-in,图3.7 基于Plugin模式的Web GIS体系结构,3.基于Plug-in的Web GIS特点,优点:无缝支持与GIS数据的连接。由于对每一种数据源,都需要有相应的GIS Plugin;因而GIS Plugin能无缝支持与GIS数据的连接。GIS操作速度快。所有的GIS操作都是在本地由GIS Plugin完成,因此运行的速度快。服务器和网络传输的负担轻。服务器仅需提供GIS数据服务,网络只需将GIS数据一次性传输。服务器的任务很少,网络传输的负担轻。,缺点:GIS Plug-in与平台相关。对同一GIS数据,不同的操作系统需要不同的GIS Plug-in。如UNIX,Windows,Macintosh而言,需要有各自的GIS Plug-in在其上使用。对于不同的Web浏览器,同样需要用相对应的GIS Plug-in。GIS Plug-in与GIS数据类型相关。对GIS用户而言,使用的GIS数据类型是多种多样的,如ArcInfo,MapInfo等GIS数据格式。对于不同的GIS数据类型,需要有相应的GIS Plug-in来支持。,需要事先安装。用户如想使用,必须下载安装GIS Plug-in程序。如果用户准备使用多种GIS数据类型,必须安装多个GIS Plug-in程序。GIS Plug-in程序在客户机上的数量增多,势必对管理带来压力。同时GIS Plug-in程序占有客户机磁盘空间。更新困难。当GIS Plug-in程序提供者已经将GIS Plug-in升级了,须通告用户进行软件升级。升级时,需要重新下载安装。,使用已有的GIS操作分析资源的能力弱,处理大型的GIS分析能力有限。基于Plug-in方式的Web GIS地理信息系统有AutoDesk公司的MapGuide。,3.2.4 基于ActiveX方式,1.ActiveX的原理 ActiveX是Microsoft为适应互联网而发展的标准。ActiveX是建立在OLE(Object Linking and Embedding)标准之上,为扩展Microsoft Web浏览器Internet Explorer的功能而提供的公共框架,是用于完成具体任务和信息通讯的软件模块。,ActiveX控件和Plug-in非常相似,是为了扩展Web浏览器的动态模块。所不同的是,ActiveX能被支持OLE标准的任何程序语言或应用系统所使用。IE浏览器可以作为容器,任何符合ActiveX的控件都可以嵌入到网页中,在浏览器中显示。相反,Plug-in只能在某一具体的浏览器中使用。,在网上第一次浏览含有控件的网页时,浏览器会自动下载该控件,在本机安装;以后浏览含有该控件的网页时,就不用下载了。ActiveX控件安装的前提是必须经过用户的同意及确认。,2.基于ActiveX方式的Web GIS工作原理,基于GIS ActiveX控件的互联网地理信息系统是依赖GIS ActiveX来完成GIS数据的处理和显示。GIS ActiveX控件与Web浏览器灵活无缝结合在一起。在通常情况下,GIS ActiveX控件包容在HTML代码中,并通过参考标签来定位和获取。,例如:在网页中有:,Web浏览器发出GIS数据显示请求;Web服务器接受到用户的请求,进行处理,并将用户所要的GIS数据和GIS ActiveX控件(第一次)传送给Web浏览器;GIS ActiveX控件负责向Web服务器请求数据,并对GIS数据进行处理,完成GIS操作。,图3.8 基于GIS ActiveX方式的Web GIS体系结构,3.基于ActiveX方式的Web GIS的特点,基于GIS ActiveX方式的Web GIS的优势是:具有GIS Plugin模式的所有优点。同时,ActiveX能被支持OLE标准的任何程序语言或应用系统使用,比GIS Plugin模式更灵活,使用更方便。,缺点:.需要下载。占用客户端机器的磁盘空间。.与平台无关。对不同的平台,必须提供不同的GIS ActiveX控件。.与浏览器无关。GIS ActiveX 控件最初只适用于Microsoft Web浏览器。在其他浏览器使用时,须增加特殊的Pulg-in予以支持。,使用已有的GIS操作分析资源的能力弱,处理大型的GIS分析能力有限。存在信息安全隐患。ActiveX具有访问客户端本地文件系统的能力,使得ActiveX可以具有强大的功能,但存在信息安全隐患。基于GIS ActiveX控件的Web GIS产品主要有Intergraph公司的GeoMedia WebMap。,3.2.5 基于Java Applet方式,1.Java Applet的原理Applet是小型的Java应用程序,是专门为建立动态Web网页而设计的。Applet每次随网页一起被加载到客户端,然后,浏览器调用Java虚拟机执行Applet程序;在网页设计中,通过来标记Java的小应用程序,例如:,Applet 仅仅是被加载到客户端的内存中,用户退出Applet页面,Applet就被收回,Applet虽然是“胖客户”端,但不占用客户端磁盘空间。由于Java虚拟机对Applet做了限制,使得Applet不能访问本地文件系统,保证了系统安全,但限制了Applet的一些功能。,2.基于Java Applet方式的Web GIS工作原理,GIS Java Applet 是在程序运行时,从服务器下载到客户机端运行的可执行代码。GIS Java Applet 是由面向对象程序设计语言Java创建的。与Web 浏览器紧密结合,以扩展Web 浏览器的功能,完成GIS数据操作和GIS处理。基于GIS Java Applet模式的Web GIS的体系结构如图3.9所示。,图3.9 基于GIS Java Applet模式的Web GIS体系结构,Web 浏览器发出GIS数据显示操作请求,Web服务器接受用户的请求,进行处理,并将用户所要的GIS数据对象和GIS Java Applet传送给Web浏览器;客户端接收到Web服务器传来的GIS数据和GIS Java Applet,启动GIS Java Applet,对GIS数据进行处理,完成GIS操作。,GIS Java Applet在运行过程中,又可以向Web服务器发出数据服务请求;Web 服务器端接受请求并将进行处理所要的GIS数据对象传送给GIS Java Applet。,3.基于Java Applet方式的Web GIS的特点,优点:体系结构中立,与平台和操作系统无关。在具有Java虚拟机的Web浏览器上运行。写一次,可到处运行。动态运行,无须在用户端预先安装。由于GIS Java Applet是在运行时从Web服务器动态下载的,所以当服务器端的GIS Java Applet更新后,客户机端总是可以使用最新的版本。,GIS操作速度快。所有的GIS操作都是在本地由GIS Java Applet完成,因此运行的速度快。服务器和网络传输的负担轻。服务器仅需提供GIS数据服务,网络也只需将GIS数据一次性传输。服务器的负担很小,网络传输的负担轻。,缺点:使用已有的GIS操作分析资源的能力弱,处理大型的GIS分析能力有限。GIS数据的保存、分析结果的存储和网络资源的使用能力有限。基于GIS Java Applet的Web GIS有 ActiveMaps、BigBook。,3.2.6 几种实现方式的比较,Web GIS的构造模式,CGI方式、Plug-in方式、GIS Java Applet方式、GIS ActiveX控件方式,在执行能力、相互作用、可移植性和安全等方面表现出各自的特征。下表是Web GIS的不同构造模式的评价。,表3.1 Web GIS的不同构造模式的评价,执行能力表现在客户端、服务器、网络3个方面。衡量执行能力的主要标准是数据信息吞吐量和反映时间。数据信息吞吐量由单位时间内完成工作的总量来衡量;反映时间为从用户发出请求开始到接收到系统反映的时间差,包括客户端处理时间、网络传输时间和服务器处理时间。,Web GIS整体执行能力取决于这3个部分中最慢的那个指标。客户端、服务器、网络的执行能力由工作量和执行速度决定。客户端工作量由在客户端处理总量决定。客户端的执行速度依赖于硬件和运行数据程序量的大小。,基于CGI模式的Web GIS在客户端处理的操作很少,因而客户端执行能力很好。基于Plug-in方式、Java Applet方式和ActiveX控件方式的Web GIS 在客户端处理的操作多,执行速度慢。与Java Applet 模式和ActiveX控件模式相比,Plug-in启动时间长。,与客户端类似,服务器的工作量由在服务器端的处理总量决定。服务器的执行速度依赖于硬件和软件配置以及软件设计。在服务器端,基于CGI模式的Web GIS的服务器的负担很重,因为所有的GIS操作都是在服务器上执行。基于Plug-in方式、Java Applet 方式和ActiveX控件方式的Web GIS在服务器端执行的GIS操作很少,服务器的负担很轻。,Web GIS网络执行效率依赖于网络的速度和通信软件的效率。影响网络执行的3个主要的因素为网络速度、网络终端之间的网络软件和网络流量。网络速度不断地提高。基于CGI方式的Web GIS网络的传输负担重。基于客户端的Web GIS网络的传输负担轻。Java Applet由字节码组成,代码少,容易在网络上传输。,从总体效果看,基于CGI方式的Web GIS执行能力一般;基于Plug-in方式、Java Applet方式和ActiveX控件方式的Web GIS执行能力好。基于Java Applet方式和ActiveX控件方式的Web GIS甚至可以达到很好的执行能力。,相互作用能力由用户界面、功能支持能力和本地数据支持能力来决定。基于CGI方式的Web GIS 虽然能有效地使用已有的GIS软件功能,但客户端依赖于HTML,用户界面功能较差,GIS功能支持能力受到限制;同时,不可能具有本地数据支持能力。相反,基于Plug-in方式、Java Applet 方式和ActiveX控件方式的Web GIS,可以具有很好的用户界面和GIS功能支持能力。基于Plug-in模式的Web GIS,在图形、地图创建和显示方面比HTML更加灵活,但不具有本地数据支持能力。,在可移植性方面,基于CGI方式和Java Applet方式的Web Gis 客户端与平台无关,Internet上的用户都可以使用,具有很好的可移植性。基于Plug-in方式和ActiveX控件方式的Web GIS客户端与平台相关,可移植性受到限制。,在安全性方面,基于CGI方式的Web GIS,没有代码在客户端上运行,很安全。Java Applet是以字节码动态下载并在客户机上运行的,相对安全。Java有自己的安全框架,用户不允许在客户端上使用Java Applet创建、修改、删除本地文件或文件目录,也不允许在在客户端上使用Java Applet直接读取本地文件。,所以,不可能有软件病毒通过Java Applet来摧毁客户端的本地内存和文件系统。基于Java Applet方式的Web GIS安全性很好。而基于Plug-in和ActiveX控件方式的Web GIS是以二进制码在客户机上运行。因此,用户有可能从Web 上下载运行未知软件,使客户端的系统崩溃。Plug-in和ActiveX控件有权获得客户端的平台权限,将给客户端系统带来威胁。,