基于服务式GIS的城市绿地规划管理系统设计

2013-03-27 09:02钟广锐
地理空间信息 2013年3期
关键词:绿地客户端空间

钟广锐

(1.嘉应学院 地理科学与旅游学院,广东 梅州 514015)

城市绿地系统是由各种公园绿地、街道绿地、居住区绿地、机关单位绿地等共同组成的系统, 是城市生态环境系统的重要组成部分。快速、全面、准确地掌握城市绿地分布现状与数量,了解城市绿地动态变化,及时做好城市绿地综合效益评价,有利于保持城市生态平衡,实现城市可持续发展。GIS作为一门处理空间信息的现代综合性学科,被广泛应用于城市绿地空间信息提取及分析、生态功能评价及预测、绿地系统规划、景观设计和评价等领域[1-3]。但现有的GIS应用开发逐步显现出人员投入大,数据和软件更新困难,软硬件维护成本高,无法对业务变更作出及时调整等非“业务敏捷”问题。随着面向服务的体系架构SOA的发展,服务式GIS为解决这些问题提供新的方法。

1 服务式GIS

“业务敏捷”的实现有赖于SOA。SOA本质上不是某一项技术,而是一种思想,是不断成熟的软件开发模型,其核心是基于标准化的技术手段,以松耦合方式组合不同层次的业务功能以提供“业务敏捷化”[4]。SOA 的关键是服务, 它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用,解决软件跨企业、跨部门、跨业务的数据互操作问题。在此基础上,提出了服务式GIS的概念。

服务式GIS是产生于面向服务软件工程方法的GIS软件技术,它采用面向服务的软件工程方法,把GIS的全部功能封装为Web服务,从而实现了被多种客户端跨平台、跨网络、跨语言的调用[5],并具备了服务聚合能力以集成来自其他服务器发布的GIS服务。服务式GIS包括服务器、服务规范和客户端3个要素(见图1)。服务器是生产者,提供符合服务规范的服务,也可以聚合其他服务器提供的服务;服务规范是公认的标准,主要包括OGC的WMS、WCS、WFS、WPS、GeoRSS、KML等;客户端是消费者,同时也应该具备聚合能力,可聚合同一厂家服务器软件和第三方服务器软件发布的GIS服务,并与本地数据和本地功能集成应用。同时,服务式GIS还应该支持跨网络集成,更易于构建分布式应用,通过聚合和集成已有的应用服务快捷地构建新的应用系统或升级已有的应用系统,达到GIS中的“业务敏捷”。由于服务式GIS更全面地支技SOA,通过对多种SOA实践标准与空间信息服务标准的支持,也可使GIS系统能与其他IT业务系统进行无缝的异构集成。

图1 服务式GIS的组成

2 系统研究

梅州城区绿地规划管理系统严格遵循模型-视图-控制器MVC设计框架,基于服务式GIS的设计方法并结合REST(表述性状态转移)设计风格,以确保应用程序具有快速开发的优势和更高的可维护性。REST是一种软件架构风格,它提供了一种新的服务方式,网络上的所有事物都被抽象为资源,通过URL来设计系统的结构[6]。根据REST,每个 URL 都代表一个资源,整个系统就是由这些资源组成的。系统由数据层、服务层、业务逻辑控制层和视图层4个模式组成(见图2),实现前台视图应用与后台业务逻辑的分离。

图2 系统架构图

2.1 数据层

数据层是任何一个信息系统的核心。系统的数据分为基础地理数据和业务数据2大部分,而基础地理数据又包括了地理底图数据和专题地图数据。地理底图数据主要来源包括城区1∶10 000地形数据、0.6 m分辨率QuickBird影像数据、城区行政区划数据;专题地图数据包括城区绿地分布图、2004~2020年绿地规划发展分布图、城区土地利用类型图、人口分布图、土壤分布图、水源分布图以及交通道路图等。数据主要从各个部门获取,有些只有纸质地图的,则必须经过配准、扫描、矢量化等数据处理过程转换为数据文件。业务数据则是系统的业务逻辑中所涉及到的相关属性数据,主要来源于原有的业务系统以及新的业务。

数据库设计是系统设计阶段的重点,包括空间数据库设计、属性数据库设计以及空间数据与属性数据的关联。按GIS软件的设计方法,空间数据参照应用进行分层设计(见表1)。

2.2 服务层

服务层首先完成各种应用的封装,利用服务式GIS的功能,将这些应用封装成Web Service服务并进行发布。服务严格遵循OGC规范和SOAP协议,客户端可直接进行调用[7]。系统提供的服务主要包括:基础地图访问、地理编码、专题地图制图、空间分析、空间查询、空间统计、模型演算和规划评估等。

表1 系统主要空间数据分层

系统支持异构GIS平台的集成,因为采用标准的Web Service。各个服务首先进行统一注册,各个使用部门可查询、调用注册服务,同时,可以按部门本身的业务流程进行服务组合和编排。当某一业务需求发生改变时,可以通过编排服务的方式重新生成新的业务,从而有效地减少编码工作量。服务式集成使各个业务部门只侧重于本部门相关的业务流程和服务应用,而不用过多关注内部的技术实现,这样可以在保证数据安全的同时,有效地进行数据和功能的共享,从而达到“业务敏捷”。

2.3 应用层

应用层是用户使用系统的窗口,即所谓的客户端。随着RIA技术和移动互联技术的发展,客户端已不再局限于窗体或浏览器这2种形式。根据业务需求,系统的客户端设计采用了3种形式:①注重多种业务功能组合应用的C/S模式,采用组件式开发平台设计的WinForm形式,主要应用在内部业务办公以及系统的后台数据维护等部门;②公众应用平台,采用RIA技术,使用Adobe Flex进行设计,主要用于公众对相关信息的查询;③对于外出部门使用的移动业务,如公园绿地日常巡查维护、古树保护等,采用移动互联技术,以App的形式提供。

3 系统设计实现

3.1 软件开发环境

基于服务式GIS的梅州城区绿地规划管理系统所涉及的软件开发环境主要包括:①服务器操作系统为Windows 2008 R2(64位);②服务式GIS选用Esri ArcGIS 9.3 Server,前期的空间数据处理也是采用ArcGIS Desktop 9.3;③数据库延用原有的SQL Server 2008;数据驱动统一采用ArcGIS SDE;④客户端有3种 :ArcGIS for Flex API(Flex viewer框架)、移动端的ArcGIS for Android API和使用VS.NET 2008结合ArcGIS Engine开发的WinForm窗体程序。

系统在ArcGIS 9.3平台上实现了数据共享,利用ArcGIS Server完成了专题地图服务和GIS功能服务的发布与管理。限于篇幅,文中主要分析说明几个关键功能的实现方法。

3.2 数据发布和地图服务

空间数据处理采用ArcGIS Desktop 9.3完成,包括地图的设计制作;属性数据是在原有的SQL Server 2008数据库基础上进行更新升级,加上一些新的数据表以扩充新的业务;空间数据与属性数据通过地物ID这个关键字进行关联。数据经过ArcGIS SDE引擎,保存在原有的SQL Server 2008数据服务器中。

系统对空间数据的访问接口可以直接调用Web Service网络服务,再由Web Service访问ODBC调用后台数据库。所以,数据和地图服务的发布都是通过在ArcGIS Server中发布的服务来提供的[8]。ArcGIS Server提供了2种方法来发布Map Service:一种是利用ArcCatalog中的ArcGIS Server服务管理方式进行发布;另一种是通过网页形式的ArcGIS Server Manager方式进行服务的发布与管理,通过ArcGIS Server Manager还可以发布支持OGC规范的地图服务。系统采用了第2种方式。

3.3 空间分析服务

系统的空间分析功能包括了空间查询、空间统计分析、叠加分析以及网络分析。网络分析主要提供了路径分析、服务区分析和通达性分析等应用。ArcGIS Server提供了Geoprocessing Service和Geometry Service 2种服务类型来完成这些功能[9]。Geoprocessing Service是基于Web的处理工具,客户端提交处理请求,服务器执行空间分析和建模,然后把处理结果返回客户端展现。Geometry Service是空间服务对象,支持创建缓冲区,确定空间对象的拓扑关系等功能。以服务区分析功能为例:首先,按业务要求在ArcGIS Desktop准备好数据,特别是网络数据集,完成地图的制作;然后通过ArcGIS Server发布Map Service和Geoprocessing Service,服务发布完成后,可以提供给不同的客户端使用,如 Web Mapping Applications、ArcGIS Explorer、基于ArcGIS开发的WinForm程序等,同时也可以通过REST API的方式提供给客户端进行编程使用(URL地址),如富客户端RIA开发、移动端开发等。

3.4 客户端开发

基于服务式GIS的架构,系统客户端的主要功能是完成服务的申请、提交以及接收、展现处理结果。所以,客户端的UI设计尤为重要。结合原有的业务应用,客户端主要有3种形式:WinForm窗体、富客户端(Flex)和移动端(暂只支持Android)。窗体应用基于ArcGIS Engine进行开发,基本保留原有的业务系统,采用C/S模式,主要用于相关部门内部办公(见图3)。RIA应用主要采用B/S模式,主要用于公众信息的发布和查询(见图4)。移动客户端的开发,暂只支持Android系统,基于ArcGIS Server for Android API,主要用于一些特殊的移动巡查业务。

图3 系统窗体客户端界面

4 结 语

基于服务式GIS的梅州城区绿地规划管理系统,改变了原有组件式GIS的开发方式,把 GIS 基础和核心功能全部进行封装,以REST服务的方式提供给客户端,使相关的信息管理部门从原有的以应用为中心转变为以过程为中心,大大减轻了操作难度;同时,信息管理部门可以灵活地组合多种服务,快捷地形成新的业务应用,支持真正的端到端的业务流程;信息管理部门还可以在不影响其他SOA应用的情况下改变或升级应用,这些都体现了“业务敏捷”。当然,系统仍然存在一些问题,今后应该进一步加强研究的工作有:①拓展服务的类型,提供更全面的业务应用;②提高服务的聚合能力,实现信息资源更全面的共享;③丰富客户端的应用,包括支持IOS或Win Phone,或是基于HTML5,统一各种移动端和浏览器的应用。

[1]徐志刚,高鹏, 陈雪玲.基于RS和 GIS的城市绿地系统建立及综合效益评价初探[J].江西理工大学学报,2011,32(5):28-31

[2]王衍臻,石金锋, 段向红.基于空间信息技术的数字园林框架体系结构[J].计算机工程, 2005, 31( 8): 200-202

[3]宋志明,焦道振,胡胜华.基于RS与GIS的广州市城市绿地景观空间分析[J].测绘通报, 2010(5):29-31

[4]檀丁,李明峰,张蔚,等.GP服务在基于SOA的WebGIS空间分析中的应用研究[J].测绘通报, 2011(7):70-73

[5]宋关福. Service GIS引发地理信息服务共享与聚合革命[J].地理信息世界, 2008(6):82-85

[6]李久刚,唐新明,汪汇兵,等.REST架构的WebGIS技术研究与实现[J].测绘科学,2011(3):88-90

[7]邬群勇,王钦敏.基于Web Services的空间信息应用集成解决方案研究[J].地球信息科学学报,2011(2):73-79

[8]崔伦辉,金继业,刘金.基于ArcGIS Server的海岛管理平台设计与实现[J].测绘科学,2011,36(1):218-219,197

[9]左进府,洪金益,黄丙湖.基于ArcGIS Server的实时水情发布系统开发[J].地理空间信息,2011,9(1):135-137,14

[10]张宏伟,魏锋,佘远见.基于 Flex和ArcGIS Server的城市防汛指挥系统的设计与实现[J].地理空间信息,2011,9(6):34-36,39

猜你喜欢
绿地客户端空间
空间是什么?
创享空间
老城区绿地更新策略——以北京西城区绿地提升为例
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
驻马店市绿地内草坪改造及养护管理
走进绿地
克拉玛依城市防护绿地树种的选择和配置的探讨