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

标签: java ee 标准 | 发表时间:2013-06-30 16:07 | 作者:leverage_1229
出处:http://blog.csdn.net

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

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

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

一、平台现状

        近年来由于信息科技的演进,在其推动下地理信息系统的应用也较以往更为广泛;而对于空间资料(Spatial Data)的生成也已从早期必须经由专家学者处理才能发布,到现在普通人只需要简单的工具,甚至是通过自动设备就有可能生成这些具有地理信息的资料。
        然而空间资料的建立仅仅是提供服务最基本的一环,如果需要将这些原始的资料转变成可以提供他人使用的服务,则需要额外的处理。完整的服务平台架构如下所示。分为用户端(Client)、应用服务(Application Services)和服务提供者(Service Provider)三个部分。 
        就目前市面上的商用软件而言,如果要建立地理信息的服务,已经存在很多种解决方案,在此不便评述。本文主要探讨的是如何通过整合开源软件(Open Source)来构建此服务平台。此外,笔者从事过Java EE和Android开发,对Java EE平台较为熟悉。结合近期的业务需求,需要提供一种基于Java EE标准体系的GIS解决方案。因此,期望通过本文的介绍,能给那些想要转型Web GIS应用的童鞋提供参考。
二、应用服务
        以一般的信息系统为例,即便后台拥有功能强大的服务器主机与系统,通过该系统可以处理想打庞大的资料,不过资料毕竟是要给人操作的,如何提供友好的用户界面也是相当关键的一环。对于地理信息系统,纵然我们拥有高效的服务器与强大的计算能力,也同样需要提供一个良好的操作界面给用户。
        在地理信息系统中,除了后台可以处理地图资源以外,在前端亦需要有一个合适的界面可以提供GIS的基本操作(如:缩放、平移、叠加图层等)。
OpenLayers
        OpenLayers是通过JavaScript脚本语言所开发的一种工具,提供丰富的地图资源支持,包含由ArcGIS Server所发布的资料(ArcGIS Cache)、服务(ArcGIS REST、ArcIMS等),对于其他在线地图服务(如:Google Map、Bing Map等)都有很好的支持。非常适合用于开发地理信息系统的用户界面。
三、服务提供者
        在地理信息系统中,如果需要将具有空间属性的资源显示在网络上,必须先借助适当的软件才能达到,通过客户端才能存取服务端提供的服务。
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数据库。
四、总结
        由于地理信息技术的不断发展,GIS在开源软件阵营中也得到了长足的进步。开源软件的特点就是需要遵循一定的规范才能协同工作。故而,本文提供了一种基于Java EE标准体系的GIS服务平台架构:OpenLayers+GeoServer+GeoWebCache+PostgreSQL+Eclipse/MyEclipse+Tomcat/Jetty,同时对所涉及的软件进行了简单介绍和职责分派。说明了在不借助商用软件提供的解決方案的前提下,我们同样也可以构建出具有高效能品质的地理信息服务。
作者:leverage_1229 发表于2013-7-1 0:07:12 原文链接
阅读:236 评论:0 查看评论

相关 [java ee 标准] 推荐:

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

- - CSDN博客Web前端推荐文章
传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229. 传送门 ☞ 系统架构设计 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229. 传送门 ☞ GoF23种设计模式 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229.

遵循Java EE标准体系的开源GIS服务平台之二:平台部署

- - CSDN博客架构设计推荐文章
传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229. 传送门 ☞ 系统架构设计 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229. 传送门 ☞ GoF23种设计模式  ☞  转载请注明  ☞  http://blog.csdn.net/leverage_1229.

遵循Java EE标准体系的开源GIS服务平台之三:数据发布与访问

- - CSDN博客Web前端推荐文章
传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229. 传送门 ☞ 系统架构设计 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229. 传送门 ☞ GoF23种设计模式.         在GIS服务平台构建完毕之后,我们就要着手在此平台上提供服务以供客户端请求访问.

红帽的 PaaS 平台 OpenShift 支持 Java EE 6

- Jackphone - ITeye资讯频道
红帽公司刚对其旗下的 PaaS (Platform-as-a-Service) 平台—— OpenShift 做了改进,增加对 Java EE 6 的支持,这使得 OpenShift 成为第一个支持 Jaav EE 6 的 PaaS 解决方案平台. 该免费平台使用了最近刚发布的 JBoss Application Server 7  版本,用于帮助开发者在云端更便捷地构建和发布Java 的应用程序.

如何进行Java EE性能测试与调优

- - ITeye博客
性能测试不同于功能测试,不是对与错的检验,而是快与慢的衡量. 在进行真正的性能测试之前要先搞清楚目标:. 在确定的硬件条件下,可以支持的并发数越大越好,响应时间越快越好. 具体需要达到的并发数是多大,要求的响应时间是多快,由产品经理来提出. 在确定的硬件条件下,测试得到最大并发数和相应的响应时间之后.

影响Java EE性能的十大问题

- - 博客 - 伯乐在线
本文作者是一名有10多年经验的高级系统架构师,他的主要专业领域是Java EE、中间件和JVM技术. 他在性能优化和提升方面也有很深刻的见解,下面他将和大家分享一下常见的10个影响Java EE性能问题. 容量规划是一个全面的和发展的过程标准,预测当前和未来的IT环境容量需求. 制定合理的容量规划不仅会确保和跟踪当前IT生产能力和稳定性,同时也会确保新项目以最小的风险部署到现有的生产环境中.

JBoss AS 7.1全面兼容Java EE 6 Full Profile

- - InfoQ cn
上周发布了 JBoss AS 7.1,这是首款全面兼容Java EE 6 Full Profile的JBoss服务器,继Apache Geronimo和Oracle GlassFish之后,成为了 又一款全面兼容Java EE 6 Full Profile的开源服务器. 去年,JBoss AS 7.0完成了 Java EE 6 Web Profile认证,但Full Profile中还额外包含Java Message Service、WebServices和多项管理技术.

Java EE 7 三大新特性的介绍

- - 博客 - 伯乐在线
013 年 6 月中旬甲骨文公司发布了 Java EE 7,该版本的新特性主要集中在提高开发人员的生产力、加强对 HTML5 动态可伸缩应用程序的支持和进一步满足苛刻的企业需求这三个方面. Java EE 7 使得开发人员可以写更少的样板代码,通过丰富的组件来提供一个完整、全面、集成的堆栈来支持和构建最新的 Web 应用程序和框架,同时提供更具扩展性、丰富性和简易的功能.

Java EE项目中异常设计及处理总结

- - Java - 编程语言 - ITeye博客
异常,为我们处理非正常的业务流程提供了很好的解决方案,如果你有过dbase、c、pascal等过程式语言开发的经历,你一定会深刻体会到,异常机制给你的代码可读行、可维护性带来的好处,同时,程序的健壮性也得到了增强. 在 java项目中,异常设计要注意下面的几点. A、自定义异常的父类,可以选择为RuntimeException或Exception.

Java EE企业系统性能问题的原因和解决建议

- - InfoQ cn
Pierre-Hugues Charbonneau(昵称是P-H)是加拿大CGI公司的高级IT顾问和系统架构师. 近日他发表了题为《 导致Java EE企业性能问题的十大原因》的文章,列举了对Java EE企业系统性能影响最大的因素,并做出了很好的建议. 在文中,P-H首先指出,在设计和实现Java EE相关技术的时候,性能问题是我们所要面临的最大挑战之一.