gis学术论文 开放式Internet地图服务体系结构设计与应用
时间:2008-01-16 11:03来源:GPS之家-导航之家 作者:www.gpsuu.com
[摘要] 针对传统的Internet地图服务软件使用复杂,开发难度大,只能使用特定格式的数据、难以满足大负荷运转的问题,本文提出了一种开放式的体系结构,具有使用简便、易于扩展、可以充分发挥地图引擎能力的优点。通过该体系结构,可以实现多服务器群集、动态负载平衡、
[摘要] 针对传统的Internet地图服务软件使用复杂,开发难度大,只能使用特定格式的数据、难以满足大负荷运转的问题,本文提出了一种开放式的体系结构,具有使用简便、易于扩展、可以充分发挥地图引擎能力的优点。通过该体系结构,可以实现多服务器群集、动态负载平衡、编译执行、直接HTTP响应、多级缓存、多地图引擎支持、集中化管理等功能,从而使用户快速发布大数据量、不同来源的地图数据成为可能。该体系结构应用于软件开发实践中,取得了良好的效果。 [关键词] 开放式结构 Internet地图服务 服务器群集 动态负载平衡 DMO
1.解决方案
按照部署方式的不同,目前常见的Internet地图服务软件主要可以分为三种类型: A) 客户端处理为主:主要采用Java Applet、Plug In、ActiveX等,下载数据到本地机进行处理的方式,这种方式处理较小数据量的矢量地图速度快、效果好,但是随着数据量增加到一定程度,性能将会急剧下降到难以忍受的程度,如果含有影像数据,也会大大降低性能。由于数据下载到本地机,同时会带来安全性的问题。 B) 以服务器端处理为主:服务器有采用CGI、ISAPI、NSAPI、Java Servlet等方式,地图主要在服务器方完成,客户端采用纯HTML或较小的Java Applet进行开发。可以支持较多的浏览器,不需下载或安装插件,使用方便。由于数据在服务器方,数据安全可以得到保证,而且由于只需处理用户请求的区域,数据传输量恒定,不会随着数据量加大而导致性能线性下降。这种方式适合处理大数据量,尤其是矢量和影像叠加到一起的数据。 C) 客户端和服务器相结合:通过客户端和服务器方相结合的方式,可以在处理不同的地图数据时采用不同的方案,可以使安全性、性能与效果得到较好的平衡,但实际处理的效果与不同软件的体系结构和功能有较大的关系。
由于网络处理相当复杂,目前常见的Internet地图服务软件普遍采用了与Web服务器相结合的方法来进行开发,但是由于Web服务器普遍使用多线程的方式处理客户端请求,而大部分地图引擎目前均不支持多线程,所以一般采用另外启动一个应用服务器的方式来解决这个问题。在这种方式下由Web服务器代理网络请求,然后转发到应用服务器或者调用服务器端对象,处理完毕后再由Web服务器传回结果。由于需要同时配置多个服务器程序,会带来网络流量的加大、配置复杂、开发与调试难度相当大的问题,如果出现错误难以跟踪和排除故障。
在实践中,我们认识到这些问题产生的根本原因在于Web服务器的体系结构不适用于大数据量的空间地理信息服务的要求。为了从根本上解决问题,我们设计了一种新的地图服务器体系结构: A) 采用应用服务器的方式,底层采用Visual C++直接进行Socket编程,直接解析HTTP协议,从而使浏览器可以直接与地图服务器会话,减少了网络中转,可以直接控制数据I/O; B) 管理器通过COM接口与地图引擎进行交互,开发者只要从标准接口中继承就可以开发自己的专用地图引擎,完成特殊的功能,从而实现了开放的多地图引擎支持; C) 通过应用逻辑层来管理各个地图应用,不但可以充分利用现有地图引擎的处理能力,还可以实现多服务器群集和跨服务器的动态负载平衡,从而解决了空间信息数据量大难以处理的难题。
(责任编辑:admin) |
[ GPSUU整理发布,版权归原作者所有。]
------分隔线----------------------------