APP下载

面向基础测绘的空间数据版本管理工具研发

2014-04-18许泉立易俊华

地理空间信息 2014年5期
关键词:空间数据备份测绘

许泉立,易俊华

(1.云南师范大学 旅游与地理科学学院,云南 昆明650092; 2.西部资源环境GIS技术教育部工程研究中心,云南 昆明650092;3.云南省航测遥感信息院,云南 昆明650032)

面向基础测绘的空间数据版本管理工具研发

许泉立1,2,易俊华3

(1.云南师范大学 旅游与地理科学学院,云南 昆明650092; 2.西部资源环境GIS技术教育部工程研究中心,云南 昆明650092;3.云南省航测遥感信息院,云南 昆明650032)

以ESRI公司的空间数据库服务端产品ArcSDE为平台,利用ArcEngine开发组件,讨论了版本管理技术在基础测绘空间管理中的应用原理、模式、方法及其设计与实现过程,最后给出了软件开发的界面及其主要功能。

ArcSDE;ArcEngine;版本管理;长事务处理;回溯

近几年,空间数据库技术,特别是面向对象的空间数据库技术已经从理论迈向实际应用,诸如空间数据图文表一体化无缝管理和多版本管理的技术为空间数据管理和维护提供了一种较好的解决机制[1-3]。版本管理能够很好地支持地理空间数据编辑中遇到的“长事务处理”需求,同时通过引入版本冲突检测和处理机制,较好地支持空间数据分布式编辑的长事务处理需求,并且可以无限保留历史数据的快照备份,方便实现不同历史时期数据的回溯[4,5]。本文利用空间数据引擎中间件ArcSDE和oracle数据库,以基础测绘生产部门为应用对象,探讨海量空间数据版本管理的原理和实现策略、模式及其设计与实现过程,为版本管理在实际基础测绘数据生产和管理中的运用提供管理思路和解决方案。

1 ArcSDE中的版本管理概述

ArcSDE是ESRI公司推出的优秀空间数据引擎中间件,它具有一套完整的空间数据版本管理机制和策略,较好地解决了空间数据的并发访问和多用户编辑问题。利用其理念和技术,可以设计并开发空间数据版本管理工具,从而提升空间数据管理与编辑的效率[6]。

版本管理的实质是以某个数据作为基准数据,只记录变化的情况和信息,不重复记录不变的数据。在数据库中,使用特定的表来分别记录特征和对象被添加、删除或修改的情况。因此,版本管理并不是简单的数据复制,而是变化数据的快照和记录。当ArcSDE服务器的一个实例第一次启动时,就建立了数据库缺省的状态和版本(SDE.DEFAULT),它是所有版本的父版本,在它或它的子版本之下可以创建新版本。创建之初,子版本与父版本的数据状态相同[7-8]。

多用户编辑是版本管理的另一个特色,它通过对不同版本用户权限的规定,灵活方便地定制(约束或者允许)针对该用户和版本下空间数据的访问或编辑权限。这种机制不仅有利于统一不同级别版本之间的联络和协作,而且可以大大提高版本管理中的安全性。ArcSDE中提供了3种用户级别的版本权限,其描述如表1所示。

表1 ArcSDE版本管理中的用户权限

另外,对于空间数据编辑中经常遇到的同要素编辑矛盾,ArcSDE也给出了专门的冲突检测和处理方法,并且将最后的决定权交给冲突双方的上级版本(用户)来协调解决,较好地规避了并发用户空间数据编辑的问题,提高了基础测绘生产的效率。

2 版本管理的应用

2.1 版本管理模式设计

ArcSDE中默认Default是所有版本的祖先,其他创建的所有版本都是它的子版本,父版本与子版本之间组成一种树状关系,称之为“版本树”。ArcSDE提供了3种基本的版本管理模式来实现这些关系,分别是集中式、串联式和并联式。集中式又称为单独式,是最简单的版本管理模式。该模式下只有一个版本,所有的用户都直接在该版本上访问和编辑空间数据。这种模式无法独立完成空间数据编辑中的“长事务处理”要求。串联式是一种简单的版本继承关系,可以无限扩展下去,所得子版本都归属于最近的父版本,直到它们最初的祖先版本为止。串联式可以用于管理不同时期的空间数据。并联式衍生出一系列一级子版本,这些子版本之间在级别上是并联的,都归属于同一个父版本。这种版本模式适合管理不同地域的地理空间数据,有利于多用户的分工合作,提高工作效率。

在实际中,版本模式的实现通常不是单一的,而是混合的,这样才能够充分发挥各种模式的优点,实现版本管理的高效运作。以航测遥感院的实际组织结构设置为例,版本管理的实际模式如图1所示。

图1 版本管理的混合模式

其中横向为并联式,竖向则为串联式,而所有版本最终提交给一个父版本(Default)。版本的管理等级与实际的测绘生产管理级别相对应,分别部署不同的版本管理用户,从而达到“实时互动,逐级决策,保障质量,安全生产”的测绘生产目标。决策层往往是对测绘任务进行下达和安排的领导层,这可能包括院行政中心部门和技术总监部门;监督层往往是生产任务的第一线部门,可能包括各分院、生产管理部门和质量监督部门等。为了引入协作机制,还可为技术开发和信息中心等辅助部门部署版本用户,但原则上该版本只有浏览权限,而没有编辑权限。作业层往往是一线工作人员,一般是一人一号,有时可以设置作业小组,每个小组分配一个版本帐号。

上述模式较好地规避了实际测绘生产中一些固有矛盾(比如多用户编辑、重复生产、管理混乱等),将监督机制引入生产过程,分工明确,责权清晰,能有效提升基础测绘部门的实际生产效率和安全性。

2.2 版本管理的应用策略

ArcSDE的版本管理有2种应用策略,即平台托管式和系统开发式。平台托管式就是在ArcGIS的桌面版本中嵌入版本管理工具,其优点是直观、实用、便捷;缺点是不能完全满足用户的需求。系统开发式是指通过软件开发和系统集成的方法来实现版本管理,优点是功能强大,定制灵活,缺点是基础开发工作量较大,实现周期相对较长。系统开发还可视具体情况分别选用不同的开发模式,表2列举了基于ArcSDE的版本管理应用策略及其说明。

具体采用哪种应用模式需要根据实际情况而定。一般情况下,如果生产规模偏小,数据版本本身不复杂,建议使用平台托管式;如果生产规模较大,作业部门较多,建议使用系统开发式。

表2 版本管理的应用策略比较

图2 版本管理的驱动及作用流程

2.3 版本管理的实施步骤

2.3.1 安装和部署ArcSDE服务

一般情况下,ArcSDE可以和关系数据库安装在同一台服务器上,该方法具有维护方便、节约成本和部署快捷等优点。

ArcSDE的安装按照提示进行即可,部署的主要任务是创建服务和启动服务,这既可以通过视窗操作实现,也可以通过sdeservice和sdemon提供的命令行实现,例如:

c:sdeservice-o create-d ORACLE,ORACLE_SID -p PASSWORD –n

其中,ORACLE表示链接的关系数据库类型,ORACLE_SID表示与哪个数据库实例建立链接。可以用O_oneBase表示一分院,O_twoBase表示二分院等,PASSWORD表示该数据库的访问密码。

2.3.2 驱动版本管理功能

不管是平台托管式还是软件开发式,版本管理首先都是一个事务处理过程,这个过程应该包含了基础测绘数据生产中所应该具有的版本管理功能。以云南省某测绘产品生产部门的应用为例,该部门空间数据版本管理的驱动和作用流程如图2所示。

2.3.3 基于版本的数据备份与恢复[9,10]

数据的备份与恢复是基础测绘产品生产和管理中不可缺少的重要环节,可从整体和局部来分别处理。整体备份与恢复主要通过关系数据库本身提供的功能来实现,选择何种备份方案依据具体情况而定。针对我院的实际情况,建议采用差异备份和增量备份即可,这样不仅维护量小,而且节约备份的成本。局部备份则可依赖ArcSDE提供的技术支持完成。局部备份主要的操作对象是重要局部数据,比如大地控制点、元数据信息等。该操作需要利用ArcSDE提供的sdeexport命令完成,例如以下命令过程就是对版本号为Default的存储在空间数据库中的Road(道路)数据进行备份和恢复操作。

①将指定图层的特定版本备份到备份文件:

sdeexport -o create -l Road,shape -f d: oad.exp -V Default -i O_oneBase -u sde -p sde

此操作将名为O_oneBase(一分院)的sde服务(ArcSDE for Oracle)内的指定图层“Road”的Default版本备份到文件d: oad.exp中。

②拷贝备份文件到目标服务器上。

③将备份文件恢复至目标关系数据库中:

sdeimport -o create -l MainRoad,shape -f d: oad.exp -i O_twoBase -u sde -p sde

此操作将备份文件恢复到名为O_twoBase(二分院)的sde服务(ArcSDE for Oracle)中,图层名为:MainRoad。

2.3.4 版本管理工具的实现方法

总体来讲,系统在技术实现上采用了组件GIS的设计与开发思想,利用ESRI的ArcEngine组件库,实现了基于ArcSDE for oracle的空间数据版本管理工具软件(如图3)。

图3 空间数据版本管理的技术实现机制

从图3可以看出,基于AO/AE的组件GIS开发技术在系统的技术实现中起着至关重要的作用,也是系统技术实现的难点和重点。以下是版本创建和版本删除等功能的实现示例。

对于版本创建和删除,涉及到的组件接口主要是IversionedWorkspace和Iversion。第一个接口主要为版本创建指定一个已经存在的空间数据库的逻辑位置,然后由Iversion接口创建一个新版本。

①版本创建

Dim pVerWorkspace As IVersionedWorkspace

’预先已经配置好的数据库空间

Set pVerWorkspace = m_Workspace

Dim pVersion As IVersion

’给定一个父版本

Set pVersion = pVerWorkspace.FindVersion (“FVer”)

’在当前父版本的基础上创建子版本

pVersion.CreateVersion (“NewVer”)

’重新定位到这个刚刚创建的子版本

Set pVersion = pVerWorkspace.FindVersion(“NewVer”)

’给这个子版本配置访问权限,这里以“公共”为例

pVersion.Access = esriVersionAccessPublic

’描述刚刚创建的子版本

pVersion.Description = “版本描述”

②版本删除

Dim pVersion As IVersion

Dim pVersionWS As IVersionedWorkspace

Set pVersionWS = m_Workspace

’找到版本号为“NewVer”版本信息

Set pVersion = pVersionWS.FindVersion (“NewVer”)

’删除该版本

pVersion.Delete

类似的,可以用上述方式开发完成空间数据版本管理最核心功能,利用ArcEngine开发的基于ArcSDE的版本管理工具的界面与主要功能如图4所示。

图4 版本管理工具界面与功能

3 结 语

本文探讨了基于ArcSDE的版本管理技术在实际数据生产和管理中的实现机制,并以云南省某基础测绘数据生产部门的实际情况设计了版本管理技术的应用模式、策略和实施步骤等,部署了以ArcSDE和Oracle数据库为核心的版本管理软硬件需求,给版本管理技术在实际测绘数据生产中的应用建议了一套较为完整的设计方案。最后,还根据当前版本管理实现技术的趋势,给出了利用组件GIS和ArcEngine的基础测绘空间数据版本管理工具的技术路线和技术方法,并给出了具体的实验结果(软件界面和主要功能),为推进基础测绘产品和成果的科学化管理提供了应用工具。

[1] 晁辉. 浅析新形势下基础测绘成果管理中存在的问题及对策[J].才智,2011(9):240-241

[2] 万宏德,李军吉. 浅析基础测绘项目实施过程中的管理工作[J].地理空间信息, 2012,10(3): 175-176

[3] 王飞.基础测绘成果管理系统与空间数据库动态更新研究[D].江西:江西理工大学,2008

[4] 何保国,朱国宾. 基于版本管理的多用户并发编辑控制策略研究[J]. 地理空间信息,2007,5(4):1-4

[5] 汪汇兵,唐新明,洪志刚. 版本差量式时空数据模型研究[J].测绘科学,2006(5):131-133

[6] 夏宇,朱欣焰,呙维. 基于ArcSDE的空间数据版本管理问题研究[J]. 计算机工程与应用,2007(14):14-16

[7] 张冲,吴健平,钱大君. 基于ArcSDE的GIS版本管理应用研究[J].甘肃联合大学学报:自然科学版,2007(21):65-70

[8] 操震洲,李清泉. 基于ArcSDE和ArcGIS Engine的版本管理系统的设计和实现[J].测绘与空间地理信息,2006 ,29(2):75-78

[9] 孟成,彭明军,石骞. Oracle+ArcSDE模式下空间数据库用户监控技术研究[J]. 地理空间信息,2013,11(4):43-45

[10] 夏小裕,文鸿雁,蒋霖,等. 基于Oracle Spatial的基础测绘信息管理、发布系统设计及实现[J]. 桂林工学院学报,2006(1):69-72

[11] 杨昆,许泉立,彭双云,等.基于GIS的警务决策支持系统的研究与开发[J].测绘科学,2006(3): 106-108

P208

B

1672-4623(2014)05-0013-04

10.3969/j.issn.1672-4623.2014.05.005

许泉立,博士,从事地理信息系统与地理模拟。

2013-10-30。

项目来源:云南省科技计划资助项目(2011XX2005);云南省教育厅科技资助项目(2011Y307)。

猜你喜欢

空间数据备份测绘
“备份”25年:邓清明圆梦
创建vSphere 备份任务
浙江省第一测绘院
GIS空间数据与地图制图融合技术
工程测绘中GNSS测绘技术的应用
04 无人机测绘应用创新受青睐
无人机在地形测绘中的应用
旧瓶装新酒天宫二号从备份变实验室
元数据驱动的多中心空间数据同步方法研究
出版原图数据库迁移与备份恢复