上海图源素数字科技有限公司 上海 201210
摘 要:随着信息安全的普及,对地理信息空间数据的安全性控制迫在眉睫。在GIS应用系统中,空间数据多以地图服务的方式进行使用,而基于同一套空间数据,省市县乡各级用户如何根据自身权限,定位、查看、统计不同层级的各类空间数据是一个比较现势的问题。为了解决上述问题,本文研究了一套空间数据的分级管控算法,通过后台拦截,对空间数据进行自定义范围的管控处理,返回处理后的空间数据服务,实现各级用户访问和使用不同的数据范围,从而实现空间数据分级的安全管控,以保障空间数据的安全。研究成果可为相关应用与研究提供参考。
关键词:空间数据;分级管控;GIS应用;数据安全
地理信息数据发展至今,越来越多的地理信息数据以GIS地图服务的方式汇入到系统中,然而在信息安全越来越受重视的今天,各层级部门或多或少存在着一些较为敏感的空间数据,这些空间数据具有一定的范围管控要求,不能被所有人访问及使用,仅能被少数有权限的用户使用。尽管通过行政区字段进行空间数据的筛选也能实现部分范围控制,但同时也给数据生产、更新、维护增加了很大的成本,且对于空间数据发布的切片服务、影像服务等无能为力。据此本文研究并实现了空间数据的分级管控技术,通过在数据传输的源头加以拦截并实行分级控制,以保证在对一套空间数据进行维护管理的基础上,同步解决各级用户对不同范围的数据使用需求,互不冲突,从而保障空间数据的安全性。
1 分级管控研究的初衷
在GIS应用系统中,空间数据是系统的灵魂和血液,为了保障数据的统一更新维护,系统中的数据往往是上级部门汇集所有下级部门的空间数据进行集中存储及管理,对外进行服务发布,再以服务的方式共享给各级部门的应用系统中进行使用。但这种使用方式,经常会由于各级用户对数据管控范围的需求不同而产生实际应用问题,如某个省如何控制省内的城市A、城市B在同时使用某个数据时,所能看到的数据范围及要素是不同的,所能查询统计到的数据及结果是不同的,即城市A所看到、使用的是城市A对应的区域范围内的空间数据,城市B所看到、使用的是城市B对应的区域范围内的空间数据,这个问题是本文研究的初衷[1] 。
2 分级管控的实现
本文所提出的空间数据分级管控算法,可针对不同类型的空间数据服务进行按范围分级管控处理,包括市面上主流的GIS软件平台发布的常见数据服务类型,如:ArcGIS平台发布的Dynamic动态服务、Tiled切片服务、Vectortiled矢量切片数据服务,SuperMap平台发布的Data数据服务、Map地图服务、Vectortiled矢量切片服务,符合OGC标准的WMTS、WMS服务等。其核心技术实现思路是:客户端在应用系统请求空间数据服务时,同时根据用户所拥有的权限,传输特定的空间范围参数,在服务器端通过http请求携带的参数或者用户身份标识信息,来完成用户所需空间范围的获取,并根据该空间范围对数据信息进行裁剪处理,最终再将该空间范围内的数据返回到客户端进行呈现(见下图1),从而实现省市乡镇各级部门用户只能针对其对应权限的空间数据进行浏览、查询、统计、分析,以达到对空间数据有效分级管控的目的。
图1 空间数据分级管控技术实现思路
具体来说,空间数据分级管控算法核心包含以下3个步骤:
2.1 客户端空间数据请求的包装
一般情况下,当用户在应用系统中对空间数据进行浏览、查询、统计及分析操作时,会通过http向地图服务器发送相应的URL请求,地图服务器接收到URL请求后,会依据URL请求中的不同参数进行相应的处理(获取图形数据、查询数据结果等),完成后再将URL请求内容返回到客户端。
而在空间数据分级管控算法研究中,第一步就是改造包装空间数据的请求信息,只有将URL请求重新包装,后续才有服务器端对请求信息进行拦截和数据处理。具体步骤为:
1)将URL请求中前半部分地址用分级管控算法服务对应的地址进行替换,目的是请求发出时可以被分级管控算法服务识别并能成功拦截;
2)通过制定一套服务空间范围的传入规范,向URL请求中增加可用于拦截识别的字段参数,字段的值可以是具体的用户身份标识信息或行政区划层级代码,从而支持客户端通过WEB请求参数或者身份标识信息来完成空间范围的划定[2] ;
3)在空间数据请求重新包装后,形成一条新的URL请求,并通过客户端浏览器将该请求传送至服务器端进行处理。
2.2 服务器端空间数据请求的拦截
第二步将空间数据分级管控算法包装成服务,并在服务器端将该服务进行打包发布、部署运行。当客户端通过http向服务器端发送经过第一步包装后的URL请求时,分级管控算法服务将针对识别出来的、需要进行数据处理的URL请求,进行拦截,对不需要处理的URL请求放行,使其继续按一般路径请求地图服务器。分级管控算法则将拦截到的、需要处理的URL请求,按照第一步中提到的传入规范进行解析,解析出需要管控的权限参数,并根据管控的权限参数配合算法服务中的规则配置,依托一定的匹配运算逻辑,获取到管控后的空间范围,目的是便于将该空间范围与原始数据服务范围进行叠加处理,同时算法服务也会同步向地图服务器发出请求,用于请求未加处理的原始数据服务,而这些原始数据服务则支持不同的服务类型,例如静态的瓦片服务以及动态的矢量服务等。
2.3 空间数据的裁切管控处理
当在进行第二步空间数据服务请求拦截的同时,空间数据分级管控算法将针对不同的空间数据操作请求进行分类管控处理。如:①针对空间数据加载浏览类的操作请求:通过管控的空间范围调用分级管控算法中裁剪操作对原始服务范围进行加工,将该空间范围之外的服务数据“剪切”,只保留范围之内的服务数据,处理完成后,将请求处理结果返回至客户端;②针对空间数据的查询统计分析类的操作请求:通过管控的空间范围与通过原始服务请求得到的查询统计结果进行空间合并求交,将空间范围之外的结果剔除,仅保留管控空间范围内的数据,并同步返回至客户端。经过上述三个步骤的实现路径,客户端得到服务请求结果,再进行后续的相应的操作,如地图的加载、数据的渲染、查询统计分析结果的展现等,从而实现用户在客户端层面无感知,而服务器端自行进行拦截控制的空间数据分级管控,从而提高空间数据管理和共享的安全性。
3 分级管控的应用效果
因此,在应用系统中引入空间数据分级管控技术,将取得以下方面的应用效果:
3.1 数据管理集中统一共享
以往各省市县乡镇的行政管理部门,大都将同一类数据存储在各自部门中,而不是统一存储在上级部门的数据中心中,各部门各自更新维护同一类数据,工作繁琐且容易出错。而现在,依托空间数据分级管控技术,可要求各下级部门的空间数据,都统一汇交到上级部门进行统一存储,同类数据存储在同一个图层中,空间数据若需要更新,只更新一个图层即可实现全面更新,可有效地实现数据资源的集中统一共享,降低数据管理维护的成本。
3.2 数据共享集中统一授权
以往下级部门或同级部门在使用空间数据时,有部分数据是来源于上级部门的应用平台的统一管理。而现在,依托空间数据分级管控技术,在上级部门对空间数据进行共享分发的管理过程中,该技术可依据行政区划或身份标识进行空间数据的统一授权,实现省市县乡镇各级部门只能看到各级部门所对应的空间数据信息,且只能浏览、查询、统计、分析各级部门对应的数据结果,从而避免了敏感数据的泄露,实现对数据资源范围的严格控制,达到数据安全管控的目的(见下图2)。
3.3 支持跨平台数据管控,摆脱平台限制
本文提出的空间数据分级管控算法服务支持跨GIS平台的数据服务管控,摆脱了GIS软件平台的限制。在项目的实际应用中,不管项目上使用的是哪个主流的GIS平台,都可以便捷的进行实施部署,实现对不同类型的数据服务的分级管控管理,具体支持的空间数据服务类型,包括ARCGIS、SUPERMAP等主流GIS平台发布的静态及动态地图服务,以及符合OGC标准的WMTS、WMS服务等,从而满足项目多元化的需求[3] 。
图2 区县级、乡镇级分级管控效果
4 结语
总体来说,通过对空间数据分级管控技术的研究和技术实现,基本满足了省市县乡镇各级用户对空间数据的按范围管控的业务需求,从而达到控制用户权限和摆脱平台限制的目标,并在空间数据的信息安全方面也得到了有效的控制和保障。而在技术研究和实现的过程中,发现通过空间数据分级管控算法运算得到的空间数据分级管控结果,在实际业务应用系统中使用时,仍存在一定的效率问题,后续将持续针对空间运算效率的问题进行优化和升级。
参考文献
[1] 常玉红.基于云平台的空间数据分发与管理系统研究[J].计算机应用与软件,2012,29(11):252-256.
[2] 梁哲恒, 吴宝佑, 谢刚生. 利用分布式自动化并行处理框架提升空间数据分析效率[J]. 测绘通报, 2020, 0(10): 143-147.
[3] 王尔琪,黄骞,滕寿威.地理空间信息并行处理架构与系统研究[J].测绘与空间地理信息,2013,36(S1):1-6,18.
2