梁建国,徐占华,夏 君
(1.武汉大学测绘学院,湖北武汉 430079;2.重庆市勘测院,重庆 400020)
面向服务的空间信息共享机制设计与实现
梁建国1,2,徐占华2,夏 君2
(1.武汉大学测绘学院,湖北武汉 430079;2.重庆市勘测院,重庆 400020)
SOA是当前研究热点问题之一。结合 Flex和 JavaScript等技术,采用 SOA来构建空间信息共享服务机制。这种服务具有受众面广、开发简单、用户体验丰富的特点。
Flex;JavaScript;SOA;空间数据共享
伴随着全球网络普及程度的提高,人类社会空间在信息概念上逐步缩小,GIS与 Internet的融合形成了WebGIS,使网络环境下实现地理空间信息共享成为可能,并逐渐发展成为实现地理信息共享、服务于经济建设和国防建设的主要手段[1]。我国地理空间信息共享从发展历程上讲,大致分为三个阶段:①面向文件的地理信息共享。最初主要介质包括磁盘、光盘、硬盘和磁带等,后伴随着网络应用普及用户直接上传和下载地理空间数据文件来共享地理信息,或在局域网内部直接读取服务器上同一份数据文件。②面向数据库的地理信息共享。2000年前后空间数据库逐渐普及,并支持多用户并发访问和写操作,多客户端可直接访问统一数据服务器以获得可控版本统一性。③面向服务的地理信息共享。2008年面向服务的架构(service oriented architecture,SOA)成为主流软件工程方法,可将 GIS全部功能封装为Web服务,实现多种客户端跨平台、跨网络、跨语言的调用,并具有服务聚合能力以集成来自其他服务器的 GIS服务[2]。
“十一五”测绘规划中提到要基本建成数字中国地理空间框架,初步形成信息化测绘体系[3]。一定程度上说,信息化测绘的本质特征就是实现实时有效的地理信息综合服务[4]。从服务方式上划分,传统的测绘和数字化测绘基本上强调以“提供”为主导,而信息化测绘却真正以“服务”为主导,因此服务方式必然向买方市场即需求模式转变[5],面向服务的空间信息共享机制非常符合社会的发展方向和技术潮流。目前全国各大 GIS公司和测绘企事业单位也都在积极探索共享方案的可行性和实用性。本文结合日常工作实际,以重庆市公众地图服务平台技术框架为例,论述面向服务的空间地理信息共享机制的设计与实现。
自 20世纪 60年代以来,计算模式发展经历了单机计算、集中计算和 C/S模式、B/S(三层架构)模式的不同阶段,正逐渐进入以Web Services为主要特征的计算模式[6]。本文设计的面向服务的空间信息共享框架结构如图 1所示。面向服务的空间信息共享框架是一个松散分布的机制,它可以被部署在几个不同机器上,也是一个基于 B/S模式的空间信息共享平台。它分为数据层、服务层和客户层三层结构。其中,数据层主要包括数据库数据资源、数据库管理、用户管理、服务管理和其他综合运行管理模块,属于整个框架的最底层,也是服务层功能实现和交互的基础;服务层是整个框架的精华部分,根据ISO/TC211和OGC规定的地理信息服务实施规范,主要包括基于Web地图服务的互操作规范 (WMS)、基于Web要素服务的互操作规范 (WFS)、基于Web地理覆盖服务的互操作规范 (WCS)以及基于地理处理分析的互操作规范 (WPS)等[7];客户层主要是各个政府机关、企事业单位和社会上各浏览器门户,并且可聚合其他服务器上发布的标准服务。所有工作的实现都应该遵循一定的信息标准和信息交换标准。
图 1 面向服务的空间信息共享框架设计
本文以 SOA为模型并结合 REST经典软件设计风格,探求了面向服务的共享系统的实现机制。通过对位于不同空间位置的数据进行共享试验,证明该方法可行而有效。整个系统所涉及的软件环境主要包括:①服务器端操作系统,Windows 2003 Server,客户端操作系统为Windows 2000或Windows XP;②数据库管理软件采用 PostgreSQL和 PostGIS;③空间数据处理和裁图软件采用成熟商业软件ArcGIS;④开发环境和语言包括 JavaScript、Flex及MicroSoftVisual Studio.NET 2005。
地图服务器主要提供包括电子地图、遥感影像等在内的基础地理信息;GIS服务器主要包括两部分:一部分是专题数据信息,如规划专题、医疗专题、公安专题等,另一部分是以 Web Services形式存在的 GIS经典算法,如公交换乘、最短路径、地址匹配等。系统浏览器通过 JavaScript向Web服务器发送 HTTP请求,服务器端 IIS通过解析请求内容并返回地图共享包,它主要包括 JavaScript功能函数和Flex编译好的 S WF内核两部分,其中 S WF文件会根据用户的操作,结合封装在其内部的算法计算出地图瓦片的编号,并向地图服务器发出调图请求,而 JavaScript则通过Web服务器向 GIS服务器请求服务与专题信息,并实现这些服务的功能操作,最后在浏览器端提供逻辑聚合服务,其工作流程如图 2所示。
图 2 面向服务的共享机制工作流程
客户端地图服务共享内核采用 Flex技术,完成地图的显示与控制、事件交互等功能。它主要在Flex的 IDE(集成式开发环境)中使用 MXML和 ActionScript语言来实现,其中MXML用于地图服务界面设计,ActionScript则主要承担系统的业务逻辑部分。Flex内核完成后,采用 JavaScript对 Flex内核进行封装,以保证系统的灵活性和二次开发能力。
传统地图服务端设计中,系统会根据请求动态地将矢量地图转换成栅格图片,这不仅增加了服务器的负担,而且还大大影响了用户交互效果,因此系统服务端部分将采用当前流行的双缓存技术 (或称瓦片技术)。具体实现方法为:①服务端缓存。将矢量地图通过扫描切图的形式转换成栅格图片——瓦片,这些瓦片数据有固定大小并采用一定的组织方式。本系统采用ArcGIS制图表达进行地图配置,并利用 Arc-Server进行动态瓦片裁切。②客户端缓存技术即浏览器缓存技术。HTTP请求中加入 Cache-Control头域,利用程序调图设置实现,当用户重复调用同一张瓦片时,将直接从浏览器缓存中获取图片,不仅减少了网络开销,还进一步降低了服务器的负担。
GIS服务器中专题数据信息部分由于涉及不同部门,故采用分散管理策略,即不同专题数据物理上放置在不同服务器上,并由其主管部门分开部署和维护。GIS经典算法可利用Web Services方式将信息和运算过程打包成为一系列已发布的操作和分析地理信息的工具集,即地理处理服务 (WPS),它接受输入 (如要素集、表和属性值)和执行输入数据操作,并生成输出到地图或进一步加工的软件客户端,工具集可以同步或异步执行。本系统使用 C#语言搭建业务逻辑层,采用开源框架 castle中的 ActiveRecord作为数据访问层,采用功能丰富的开放源数据库 PostgreSQL作为数据层,并利用 PostGIS引擎管理空间数据。结构如图 3所示。
图 3 GIS服务器结构
重庆市公众地图服务平台立足于重庆市规划局着力打造的“三大平台”建设之社会服务平台,打造重庆市公共服务一张图,建设小而精、专业并权威的地图服务平台,有效推进数据共建共享。项目设计包含 GeoKing(集景)地图服务 API函数、地图统计聚合功能和公交换乘等特色便民功能 (如图 4所示);在角色配置上,重庆市勘测院是地图框架数据的发布者和维护者,其他企事业单位或委办局是数据的接受者,同时也是服务的提供者,他们通过利用一张图并结合自己业务逻辑构造基于地图服务的专业门户网站。
图 4 重庆市公众地图服务平台
目前“重庆印象”公众地图服务平台和示范系统已投入运行。从运行情况看,基础地图服务内容方式和运行效率完好,而数据共享方面也受到多家单位青睐,为下一步推广应用奠定了坚实基础。
随着“数字城市”及拥有基础及专题空间信息资源的政府部门信息化建设项目的不断推进,可用的空间信息资源和应用资源在不断丰富。“创意 +服务 =新的服务”模式日益盛行,并将在面向公众信息服务的互联网行业衍生出更多的应用空间[8]。本文设计的面向服务的共享机制以 B/S为分布式系统架构,并将经典 GIS功能以 Web Services形式封装后提供服务,符合信息化测绘的服务潮流。下一步主要工作是进一步拓展信息服务类型,聚合不同信息资源,实现信息资源的共建共享,并将面向服务的共建共享机制的应用进一步推广。
[1]李德仁,黄俊华,邵振峰.面向服务的数字城市共享平台框架设计与实现[J].武汉大学学报:信息科学版,2008,33(9):881-885.
[2]宋关福.服务型 GIS铺平信息共享之路[J].计算机世界,2008(49):32-33.
[3]周信炎.信息化测绘:一个新的战略方向:访中国测绘学会理事长杨凯[N].中国测绘报,2006-05-16(3).
[4]李德仁,邵振峰.信息化测绘的本质是服务 [J].测绘通报,2008(5),1-4.
[5]李德仁,苗前军,邵振峰.信息化测绘体系的定位与框架[J].武汉大学学报:信息科学版,2007,32(3):189-192.
[6]郭秀娟,范晓鸥.基于Web Services的分布式 GIS体系结构研究[J].吉林地质,2008,27(1):90-92.
[7]张锋叶,杨钰,朱美正.基于 Web Services的 GIS多层体系结构研究[J].计算机应用,2006,26(3):748-750.
[8]马妮,李维功,马建良.空间信息服务组织的应用软件体系规划[J].测绘通报,2008(7):19-22.
Design and Implementation of Service-oriented Spatial Information Sharing Mechanism
LIANG Jianguo,XU Zhanhua,XIA Jun
0494-0911(2011)02-0056-03
P208
B
2010-06-04
梁建国(1970—),男,四川泸州人,硕士生,高级工程师,主要从事三维仿真地理信息系统、遥感应用研究与网络地图应用开发工作。