面向服务的移动GIS平台架构研究
2024-01-15
来源:好走旅游网
测绘工程 SClENCE&TECHN0LOOY 面向服务的移动G I S平台架构研究 刘健冬 (增城市国土资源测绘院 广东增城 51 1 300) 摘要:本文以移动GIs平台架构为研究对象,采用面向服务思想设计并实现了一种基于“云+端”模式的移动GIs快速开发平台,提出一 种分屡开发模型Os—GAL—IAL,研制出跨平台,高性能、全自主的GIs内核,实现了一套精细化、流程化,可视化,易扩展的快速开发框 架,能帮助开发者快速构建业务敏捷的移动GIS应用系统。 关键词:移动GIS WebGIS SOA敏捷开发 中图分类号:P208 文献标识码:A 文章编号:1672-3791(2014)06(a)一003l一02 用户在移动状态下使用GIS的过程称 为移动GIS,用户所处的环境亦称为“移动 计算环境”,它是一种以计算机技术为核 心、无线网络为支撑、支持用户访问网络数 据,实现快捷、方便的自由通信和共享的分 布式计算环境。移动GIS存在狭义和广义的 定义之分。狭义的移动GIS称为具有桌面 GIS功能的移动终端系统,它是一种离线工 作模式,不与服务器进行交互。广义的移动 GIs定义为一种集成系统,是由GPS、移动 通信、互联网服务和GIS共同构成的集成系 统,它基于这些集成载体将最终的服务提 供给用户,方便用户进行日常信息的分析 与决策。 移动GIS作为移动空间信息服务的基 础设施,其应用领域非常广泛。然而,当前 移动GIS还面临一些技术难题,包括空间数 据量大、计算能力不足、网络带宽窄、可靠性 差、软硬件兼容性差等,导致移动GIS项目实 施面临技术门槛高、开发周期长、实施成本 高、项目风险大等问题。本文以移动GIS项目 共性需求为导向,采用面向服务思想设计并 实现了基于“云+端”模式的移动GIS快速开 发平台。平台具有跨平台、高性能、可配置、 易扩展、支持多语言二次开发等特点,能帮 助开发者快速构建业务敏捷的移动GIS应用 系统,具有重要的现实意义。 1平台总体架构 经过多年发展,GIS己从单机工具型软 件系统逐步走向了分布式、网络化的应用 软件平台,从独立GIS系统逐步过渡到具有 高度资源整合能力和对外服务能力的服务 式GIS。服务式GIS是一种面向服务软件工 程方法的GIS技术体系,它支持按照一定规 范把GIs的全部功能以服务的方式发布出 来,可以跨平台、跨网络、跨语言地被多种 客户端调用,同时能聚合来自其他服务器 发布的GIS J]E务。服务式GIS可以更全面地 支持SOA,通过对多种SOA实践标准与空 间信息服务标准的支持,可以使用于各种 SOA架构体系中,与其它IT业务系统进行 无缝的异构集成,从而可以更容易地让应 用开发者构建业务敏捷应用系统[3-5】。本文 以面向服务的思想,分析设计了基于SOA 架构的移动GIS开发平台,提出“云+端”的 移动GIS开发模式,由应用层、服务层、支撑 层、核心层组成,其总体架构如图l所示。 其中,应用层是以移动GIS为工具的数 据采集、设备巡检、移动执法等各类应用系 统,包括移动作业系统、在线监控、基于 WebGIS的业务应用系统、指挥决策系统 异,需要对这些数据进行格式转换、坐标变 等,这些运行环境不同、架构各异的应用系 换、拓扑检查、符号设置、缓存制作、压缩转 统,通过调用、聚合平台发布的服务,实现 存等数据预处理工作。数据管理系统综合 数据共享和互操作,服务层由一系列遵循 考虑桌面系统和嵌入式应用系统在数据精 一定规范的应用接口组成,是平台暴露给 度、显示分辨率、寻址计算等方面的差异, 应用层进行集成、扩展的应用程序接口;支 进行全局的优化设计,提供了丰富实用的 撑层是平台的核心,采用B/S¥[IC/S ̄N结合 功能插件。如:地图缓存制作插件可同时制 的混合架构,对应用层各类系统起着数据 作多种分辨率的地图瓦片,并提供松散、紧 管理、配置等支撑作用。 凑两种存储格式,确保数据能在桌面端、 Web端和移动端均能逼真、流畅地展示。 2平台主要功能模块 2.3通信传输系统 2.1 GIS核心库 . 通信传输系统是承接移动GIS和服务 核心层由HiMap SDK和HiWebGIS ̄I擎 器的关键部分,其传输效率和系统的安全 组成,前者主要面向桌面端、服务器端和嵌 性、健壮性通常决定着一个移动GIS项目能 入式设备的轻量级GIs应用程序的开发与 否成功实施。用户在户外开始作业前,移动 部署,而后者是面向WebGIS应用系统的二 GIS通过套接字(Socket)连接到通信服务系 次开发组件。HiMap SDK采用标准C++开 统进行合法性验证,作业完成后,现场采集 发从底层构建实现,支持跨平台(Windows 的数据和轨迹数据通过通信服务系统实时 Mobile、Android、iOS、Win32等)、多语言 地保存到服务器。当监控中心需要对户外 (C#、JAVA、Object C)、多并发、高性能的 用户进行指挥调度、多方协助时,可通过通 GIS应用程序二次开发。HiMap SDK引入了 信服务系统将指令推送给现场终端用户。 硬件抽象层的概念,提出分层开发模型 为了达到最佳系统性能,本文采用完成端 0S—GAL-IAL,如图2所示。 El(I/O Completion Ports,IOCP)管理套接 在OS—GAL—IAL模型中,与图形界面无 字,IOCP充分利用内核对象的调度,只使 关的算法、模型,采用标准C++在内核中统 用少量的几个线程来处理和客户端的所有 一实现,而对一些与操作系统有关的底层接 通信,消除了无谓的线程上下文切换,从而 口( ̄ICash内存、文件、Debug、FrameBuffer、 最大限度的提高了网络通信的性能。 Thread、Timer等)、人机界面、图形绘制等 2.4运行维护系统 功能,在内核中进行统一定义与封装,在具 运行维护系统为应用层各类应用系统 体的语言开发包中实现。这种分层设计既 提供底层支撑,包括GIS数据配置、权限配 能充分发挥C++计算性能的优越,又能最 置两大部分。其中,WebGIS数据配置实现 大程度利用操作系统提供的接口,保证了 对GIS数据的组织、显示、查询、事件、字段 最佳计算性能和显示效果,并有效地屏蔽 等信息的设置,这些配置项在WebGIS ̄E务 了因嵌入式硬件环境和操作系统的改变而 契约一一对应,前端对服务调用结果依次按 导致的平台移植性的问题。 契约进行取值,并在前端UI组件中展示。如: HiWebGIS引擎内核采用Flex技术实 可配置当用户在WebGIS上点击某个要素 现,在Flex IDE中采用MXML语言设计组 时,是否弹出一个对话框,以及配置如何在 件、元素界面和布局,ActionScript语言负责 对话框展示要素信息;配置前端参数取值字 引擎内部业务逻辑的实现。HiWebGIS实现 段,可在Web端方便地检索出各要素的字段 前端地图显示与控制、图形绘制、消息广播 值,从而可轻松地实现各种扩展应用。 和事件交互处理等功能,支持主流的网络 权限配置采用RABC模型,即通过用 地图服务(Google、百度、都市圈2.5D等)。为 户、角色、权限三者之间建立的一对多、多 了让普通程序员能便捷地调用HiWebGIS 对多的关系来实现权限控制,包括功能权 引擎,采用JavaScript对内核进行封装,这样 限和数据权限的配置。其中,对数据权限 在页面中应用简单的js代码便可获取内核 (CRUD、统计、导出等)实现了精细化控制, 对象并调用各种接口。 包括对字段、记录的过滤控制等,能满足实 2.2数据管理系统 际项目中的绝大多数应用需求。 基础地图数据、业务对象数据的预处 如图3配置了巡查台账(表PATR0L 理是移动GIS应用项目中至关重要的一环, —LOG)的编辑过滤条件为:SELECT*FROM 由于这些数据通常是多源异构的,在存储 PATROL_LOG WHERE片区编号=SYS_OM 方式、数据格式、空间参考等方面存在差 POSITIONID,其中,片区编号为巡查台账表 科技资讯SCIENCE&TECHNOLOGY INFORMATION 5 CHNOL0GY 1NFORMAT}ON 测绘工程 应 用 屡 I l I 移霉 IS (Mobi1e/hndroid/i(IS) 业务应用系统 WebGIS展示系统 园圜圆圜圜圜圜圜圆@ 塞}r— —————数据管理系统 l——————]广—— I通信传输系统I—————————]r——— l 服务管理系统 l——————————] 撑L———————————J L———————— L———————————-j 合展示窗口,是Web端、J 务应用系统的重 要组件,是核心层I_ljWebGIs引擎二次开发 的综合示例。WebGIS组件f{】的所有展示方 式、事件和行为(如图层组织、符号样式、查 询范围、空间分析、搜索结粜、消息处理、事 件响应等等),均源自运行维护系统对 WebGIS的配置结果,它们之间通过GISH ̄务 契约和前端框架引擎实现“所配即所得”的 快速定制效果。WebGIS展示组件内置r丰 E朦} r ——‘—————————平台运行维护配置系统 ————————————— ————— ——————— ————————1 rl I代码自动生成工照l——————————————————— ————1 核 心 层 GIS核心厍 (HiMap SDK for iOS/hndroid/Mobi le/Win32、HiWebGIS) 图1 平台总体架构 Mobile Android iOS 褒面GIS系统 移动Gls 移动GlS移动6lS 富的功能模块,包括图层控制、鹰眼、图文 互查、空间查询、图形编辑、专题地图、GPS 轨迹,地图打印等模块,程序员只须在贝面 中通过为地图对象添加一 具组件的方式完 成这些配置。 2。7代码生成工具 为进一步提升移动GIs项目的开发效 率,降低本平台框架使用的复杂度,本文设 计并实现了基于微软T4模版引擎的代码自 动生成工具。程序员通过简单向导,便能自 动生成对库表数据增、删、改、查等功能多 层结构(UI、BLL、DAO、SqlMap)、标准化、高 质量的源代码,并有效地解决了多表关联 等难题。 3结语 本文以解决移动GIS项目实施中所面 临问题为出发点,根据移动GIs类型项目的 共性需求,设计并实现了基F“云+端”模式 的敏捷开发平台。目前已成功应用到闰土 违法用地巡查执法、安监执法、道路养护与 路政稽查、输配电设备巡检、市政管网巡 奁、土壤重金属污染防治普查和农村土地 确权登记等领域的多个项目中。突践证明 该平台具有多语言、跨平台、可配置、易扩 展等特点,能有效提高开发效率,缩减软件 开发周期,降低项目实施风险,受列开发商 和最终用户的一致好件。 胰. ++(HiMap 内棱中实现)_ l型l t因 析l 簿l I 网 I换I I弓l l I询l 图2 OS-GAL-IAL开发模型 参考文献 [1】李德仁.论2I世纪遥感与GIS的发展【J】. 武汉大学学报:信息科学版,2003(2): 127—1 31. 图3数据权限配置 的一个字段,SYS—OM—POSITIONID是运行时 的一个上下文变量,在用户登录时赋值。开 发者通过界面配置,“零编码”便实现了“用 户仅能编辑本部门的数据”这一业务需求。 2.5服务管理系统 服务管理系统是平台各种服务运行的 宿主环境,与IIS托管、Windows Services宿 [2]李德仁,李清泉,谢智颧,等.论空间信 息与移动通信的集成成用[J】.武汉大学 学报:信息科学版,2002(1):1—8. [3】王兴玲,杨崇俊,张宏.慕于.NET平台 的地理信息Web服务研究与应用[J].计 算机工程与应用,2002,38(22):6—8. [4】宋亚超,闾国年,张宏.基于WebService 的Internet GIS集成与应用[J】.地球信息 科学,2004,6(1):44-48. 【5】宋关福.ServiceGIS引发地理信息服务 共享与聚合革命[J].地理信息世界, 2008,6(6):82-85. 主不同,自托管宿主具有便于管控等优势, 能方便地启动、停止、重启服务,可有效地 对服务消费者进行过滤、监控、报警等,同 时能有效聚合外部服务,更适合于平台级 的应用项目。 2.6 WebGIs展示组件 WebGIS是各类业务对象时空信息的综 32 科技资讯SCIENCE&TEcHNOL0GY INFORMATION