[置顶] 遵循Java EE标准体系的开源GIS服务平台架构

 

传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229
html

传送门 ☞ 系统架构设计 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229
前端

传送门 ☞ GoF23种设计模式 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229android

1、平台现状数据库

        近年来因为信息科技的演进,在其推进下地理信息系统的应用也较以往更为普遍;而对于空间资料(Spatial Data)的生成也已从早期必须经由专家学者处理才能发布,到如今普通人只须要简单的工具,甚至是经过自动设备就有可能生成这些具备地理信息的资料。
        然而空间资料的创建仅仅是提供服务最基本的一环,若是须要将这些原始的资料转变成能够提供他人使用的服务,则须要额外的处理。完整的服务平台架构以下所示。分为用户端(Client)、应用服务(Application Services)和服务提供者(Service Provider)三个部分。  设计模式

        就目前市面上的商用软件而言,若是要创建地理信息的服务,已经存在不少种解决方案,在此不便评述。本文主要探讨的是如何经过整合开源软件(Open Source)来构建此服务平台。此外,笔者从事过Java EE和Android开发,对Java EE平台较为熟悉。结合近期的业务需求,须要提供一种基于Java EE标准体系的GIS解决方案。所以,指望经过本文的介绍,能给那些想要转型Web GIS应用的童鞋提供参考。
2、应用服务
        以通常的信息系统为例,即使后台拥有功能强大的服务器主机与系统,经过该系统能够处理想打庞大的资料,不过资料毕竟是要给人操做的,如何提供友好的用户界面也是至关关键的一环。对于地理信息系统,纵然咱们拥有高效的服务器与强大的计算能力,也一样须要提供一个良好的操做界面给用户。
        在地理信息系统中,除了后台能够处理地图资源之外,在前端亦须要有一个合适的界面能够提供GIS的基本操做(如:缩放、平移、叠加图层等)。
OpenLayers
        OpenLayers是经过JavaScript脚本语言所开发的一种工具,提供丰富的地图资源支持,包含由ArcGIS Server所发布的资料(ArcGIS Cache)、服务(ArcGIS REST、ArcIMS等),对于其余在线地图服务(如:Google Map、Bing Map等)都有很好的支持。很是适合用于开发地理信息系统的用户界面。 缓存

3、服务提供者
        在地理信息系统中,若是须要将具备空间属性的资源显示在网络上,必须先借助适当的软件才能达到,经过客户端才能存取服务端提供的服务。
GeoServer
        GeoServer是一套由Java语言开发的免费软件,它提供分享和编辑具备空间信息的资源的功能。虽然说它只是一套由社区所维护的软件,不过对于通常商用软件所具备的功能,它大多都也提供相似的服务。值得一提的是,因为它是免费软件,因此对于标准的交换格式也都支持。在GIS领域中,由开发地理空间协会(Open Geospatial Consortium)所订制的网络地图服务(Web Map Service,WMS)、网络图徽服务(Web Feature Service,WFS)、网络网格资源服务(Web Coverage Service,WCS)、KML等资源交换规范,GeoService都支持。 服务器

        在地理信息系统中,为了让整个系统的实用性更高,每每都会搭配层叠丰富的形象资源,包含地图、卫星影像、航空照片影像等。然而,若是资源数量庞大到须要耗费时间才能经过网络传送,能够预见整个系统的效率会大幅度下降。为了解决加载大量地图资源的问题,瓦片地图(Map Tile)的技术相继被提出。
        瓦片地图就是将影像资源依据必定的比例尺、命名规则、存储目录结构等事先定义好的规范进行处理。当须要展现特定区域的资源时,仅取出该范围的若干片拼接在一块儿便可。如此一来,不只能够节省即时处理庞大影像所花费的系统资源,并且大大下降了系统的延迟时间。由于图片资源都是已处理好的瓦片,获取时仅需经过服务器提供服务便可。 网络

        生成瓦片地图的机制多种多样,其中包括商用软件的解决方案(如:ESRI ArcGIS Server生成Cache的方式),或者开发者能够依照相关规范自行编写程序来生成切片;不过在免费软件中,也有提供相似服务的软件GeoWebCache。
GeoWebCache
        GeoWebCache是一个采用Java实现用于缓存WMS(Web Map Service)Tile的开源项目。当地图客户端请求一张新地图和Tile时,GeoWebCache将拦截这些调用而后返回缓存过的Tiles。若是找不到缓存再调用服务器上的Tiles,从而提升地图展现的速度。实现更好的用户体验。 架构

        针对大量数据的进行处理时,每每会使用数据库系统(DBMS)进行管理,以加强其运行效率。所以,数据库系统的使用在整个系统运行中是很是常见的一环。这类软件包括商用软件的解决方案,如:Oracle、SQL Server等,或者免费软件MySQL等。
        一样的问题也会出如今地理信息系统上,若是大量的数据须要存放在GIS上,采用原有的数据存储方式,系统的执行效率势必大大地下降。若是想要获得改善,就必须经过数据库系统来管理大量的数据资源。然而地理信息的资源与普通资源最大的差别,也就是再于地理信息资源中含有大量的空间属性。所以,被选为处理空间资源的数据库必须具备这项能力。
        近几年来,Orace数据库针对这个部分进行研发,诞生了Oracle Spatial;而Microsoft在新版本的SQL Server中也添加了处理空间属性的功能。对于免费数据库这块,PostgreSQL自己做为一个至关不错的数据库,再搭配PostGIS以后,也具备处理空间信息的能力。
PostgreSQL
        PostgreSQL是一种对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大、特性最丰富和最复杂的自由软件数据库系统。它起源于伯克利(BSD)的数据库研究计划,目前是最重要的开源数据库产品开发项目之一, 有着很是普遍的用户。PostGIS在对象关系型数据库PostgreSQL上增长了存储管理空间数据的能力,至关于Oracle的spatial部分。PostGIS最大的特色是符合而且实现了OpenGIS的一些规范,是最著名的开源GIS数据库。 ide

4、总结         因为地理信息技术的不断发展,GIS在开源软件阵营中也获得了长足的进步。开源软件的特色就是须要遵循必定的规范才能协同工做。故而,本文提供了一种基于Java EE标准体系的GIS服务平台架构:OpenLayers+GeoServer+GeoWebCache+PostgreSQL+Eclipse/MyEclipse+Tomcat/Jetty,同时对所涉及的软件进行了简单介绍和职责分派。说明了在不借助商用软件提供的解決方案的前提下,咱们一样也能够构建出具备高效能品质的地理信息服务。

相关文章
相关标签/搜索