基于数据服务的县级国土资源“一张图”平台关键技术研究

2017-09-23 02:57辜寄蓉方从刚吴浩伟
计算机应用与软件 2017年9期
关键词:一张图数据表数据服务

辜寄蓉 方从刚 吴浩伟

1(四川师范大学地理与资源科学学院 四川 成都 610066)2(成都市国土资源局 四川 成都 610072)3(国家测绘地理信息局第三大地测量队 四川 龙泉 610100)

基于数据服务的县级国土资源“一张图”平台关键技术研究

辜寄蓉1方从刚2吴浩伟3

1(四川师范大学地理与资源科学学院 四川 成都 610066)2(成都市国土资源局 四川 成都 610072)3(国家测绘地理信息局第三大地测量队 四川 龙泉 610100)

以县级国土资源“一张图”平台建设为契机,针对县级数据业务支撑能力较弱、数据共享隔阂、信息系统应用局限等问题,提出以SOA搭建面向服务的体系结构,以WCF搭建分布式通信框架,完成“一张图”核心数据服务中心建设。数据服务实现了跨平台的数据传输,达到国土资源“一张图”C/S架构和B/S架构平台的双重支撑。在消息传输过程中,点到点的通信保证了数据的安全同时保证数据传输的安全。在服务请求消息传输前进行了消息压缩,保证了数据的传输效率。此设计方案快速实现了国土资源部门统一的数据管理和透明的数据访问,建设基于数据服务的县级国土资源“一张图”综合管理系统。

数据服务 一张图 国土信息

0 引 言

作为我国现行土地制度的直接管理、执行者,县级国土资源局中各职能部门分别管理相关土地业务工作,在日常工作中积累了关于土地、矿产、环境等规模庞大、形式各样的国土资源数据。现有国土资源信息管理方式各异,有的依据数据类型分类分库存储,有的根据数据功能、业务分类分别存储,各种存储方式虽然提高了数据的管理效率和安全,增强了数据与相关系统之间的紧密联系,但也造成数据库之间的隔阂,数据间、数据与其他应用系统间的交互、共享、服务的困难。根据国土资源部门现在执行的资源信息管理方式进行梳理分析,主要存在以下两种管理模式:

(1) 第一种模式是系统隔阂管理模式。这种数据管理方式多是根据业务应用需要,和业务系统一并建立的,它将一定区域内与之相关的业务数据、系统支撑数据组织、建库。

(2) 第二种模式是专题区别管理模式。这种管理方式借助国土资源部门职能分工形成,将某职能部门一定区域内相关数据进行分类,根据部门职责将业务密切相关的数据进行组织、整合,而建立起的数据库。

根据国土资源信息化建设模式和数据管理方式,国土资源管理存在以下四个方面问题:

(1) 业务隔阂。国土资源部门依据工作职责分工,划分为地籍事务中心、土地整理事务中心、地质环境监测站等多个部门。各职能部门按规定各司其职,分别管理、土地审批、供应、整治和规划等一系列业务工作,工作衔接、配合不足。各职能部门分别管理的业务数据,有些甚至成为这些部门的“私有财产”,数据处于这些业务职能部门的“垄断”使用状态,业务数据在县级各个职能部门之间难以达到全面共享。

(2) 数据多源。县级国土部门存储着众多资源数据,但由于管理制度等原因,数据散落在各个业务职能部门中,各自进行管理。在县级国土资源部门中,存在同批数据不同部门分别存储、管理的情况,数据在实际应用过程中根据当前部门工作需要进行完善修改和维护,但未能实现其他部门数据同步更新,造成数据间存在差异。

(3) 数据异构。虽然上级国土资源有关部门就国土资源基础数据建设有若干标准、规程和规范,但是由于标准自身的完善性还不够[1],各地区县级国土资源部门对于标准、规范的执行力度不统一,各部门的数据标准存在极大的差异性。同时,由于无统一的数据采集、处理等规范,造成数据共享的困难。海量资源数据存储于各部门中,数据依据自身工作需要进行存储,必然存在数据结构的差异性,造成数据存储、管理的多样化,从而整合困难。

(4) 系统异构。县级国土部门直接参与土地管理,使用、维护着多个土地业务系统,这些系统的建设根据各自需求分别存储数据,造成数据存储多样和重复。且由于建设时间、建设单位等各方面的原因,这些信息系统在建设时缺乏整体规划,各系统独立设计和开发。系统间异构已成为现有应用环境的基本特征,数据分布存储,系统间难以建立有效的传输和共享机制,不能有效协作、配合进行数据分析、价值挖掘。

因此,本次研究提出建立数据服务机制,根据国土资源数据管理和应用的模式,对国土资源数据服务内容进行归纳梳理。以各类数据服务支撑国土资源系统运转、业务办理,当国土资源各部门和第三方进行信息请求和共享时,面对的不再是一个个的业务数据库,而是统一的数据服务,实现数据存储的透明化。

1 国土资源数据服务框架

国土资源数据服务主要为实现国土资源部门横向的数据应用和纵向的数据交互、共享的需求[2-6]。

“服务”包含系统各类业务逻辑,在体系架构中起到承上启下的关键作用。并且WCF具有良好的兼容性和互操作性,甚至可以实现建设一套“服务”满足多种客户端。

在系统总体框架的基础上,将数据层和服务层整合,建立基于服务模式的国土资源数据服务中心,设计、剖析数据服务中心架构,说明数据服务中心架构中各层工作分工、运作模式和各层间工作组织、协调,数据服务中心架构如图1所示。

图1 服务中心架构

2 数据服务的实现

SOA(Service-Oriented Architecture)是面向服务的体系结构,是一种软件架构模型,它将粗粒度的、分布的、松散的组件或应用系统通过“服务”进行组合和部署,构成一套完整的上下交互通信。而WCF(Windows Communication Foundation)是由微软开发的一系列支持数据通信的应用程序框架,为构建面向服务的应用研发提供了便捷的手段[7]。

2.1 数据服务的内容

为满足B/S端和C/S端的服务请求,分别设计了基于Http和基于TCP/IP的请求方式。

1) HTTP请求

(1) getData

实现数据获取功能。必须参数为mode、name和tname,mode参数确定服务请求模式,name参数确定查询的数据库名,tname参数定位查询数据表。另外,filter参数确定数据的筛选条件,参数信息如表所示。

表1 getData参数表

(2) commitData

实现数据保存功能,参数信息如表2所示。

表2 commitData参数表

(3) GetWkt

WKT(Well-known text)是一种文本标记语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换[10]。在系统中,WKT用来表示点、线、面及多面体的几何信息。GetWkt请求用来实现WKT信息的获取,参数信息如表3所示。

表3 GetWkt参数表

续表3

(4) getFeatInfo

在数据浏览、检索时,系统中大量运用依据坐标点及配置信息检索数据的功能,设计、开发getFeatInfo服务请求,完成根据坐标及配置获取地块信息,参数信息如表4所示。

表4 getFeatInfo参数表

除了以上HTTP服务请求,还建设有档案目录获取请求、档案数据获取请求、地块定位请求等等。

2) TCP/IP请求

(1) GetData

实现数据获取功能。必要参数为dbName和sql,返回结果类型为DataTable,参数信息如表5所示。

表5 GetData参数表

(2) GetClob

Clob在开发中用来满足超大内容的存放要求,GetClob请求则实现Clob的读取功能,参数信息如表6所示。

表6 GetClob参数表

除以上两种TCP/IP请求外,还设计、开发读取Blob请求、保存Blob请求、保存Clob请求,获取WKT请求等,以实现系统各个功能的完整、稳定运行。

大四学生由于面临工作和考研的压力,往往淡出了学科竞赛的参赛团队。但个别参赛成绩特别突出、参赛经验非常丰富的大四学生仍然是团队最为优秀的资源。在不影响其考研就业等个人发展的前提下,可以邀请其为团队传授经验,鼓舞士气,国家级比赛也可以披挂上阵,在参赛团队中担任主心骨的地位,为竞赛团队传承和发展再贡献一份力量。

2.2 数据服务的访问

采用WCF提供一套专门定制、发布和运行的“服务”,用于消息的传递和处理,实现客户端和数据库之间的信息交互。这种服务契约描述了暴露给外部的类型(接口或类)、服务所支持的操作、使用的消息交换模式和消息的格式,以便客户端对“服务”进行调用。

WCF服务模块中每个服务都相对独立,各自完成定义的功能;但整体又融为一体,对外存在清晰的边界,通过接口进行外部联接,在数据访问过程中,WCF起到承上启下的关键作用,数据服务访问模式如图2所示。

图2 数据服务访问模式

1) 在客户端,用户首先通过对外暴露的接口参数信息构建请求消息。

将相关参数序列化到请求消息中并生成请求消息;同时,提取该客户端主板编号或硬盘信息生成唯一识别ID,自动封装至请求消息中;再将该请求消息转换成二进制编码并加密,保证请求消息的安全性。

2) 对通信协议进行判断,通过HTTP或TCP/IP协议各自通道将请求消息传输至服务端。

3) 在服务端,接收请求消息并解密和验证。

在传输层监听和接收来自客户端的请求,对请求消息进行解密;提取封装在请求消息中的唯一识别ID,进行数据访问的权限验证,如果权限验证不通过,服务端将直接回复消息;如果权限验证通过,服务端再对请求消息进行二进制流解析,依据解析内容连接数据库进行数据读取。

将数据读取结果生成回复消息,将回复消息转成二进制编码并加密,通过传输通道发送到客户端。

5) 在客户端,通过传输通道接收回复消息,解密并解析二进制流获取数据结果,用于展示和利用。

对于数据库的基本操作,主要存在数据库、数据表和数据三个层级定位,在客户端进行请求消息构建时,这些数据的访问内容和条件就封装在请求消息中,这些访问内容和条件在服务端进行解析后,执行完成数据库中的操作。

1) 数据库

在数据访问时,首先需要明确访问的数据库。因采用多个业务数据库的建设方式,导致国土资源数据被划分为多个场所进行存储和管理,当客户端创建数据访问服务请求时,需要根据当前土地业务类型确定访问数据库。

对于请求消息中访问数据库的确定,主要采用两种方式:(1) 在系统建设中,无论任何开发框架、体系结构、编程语言的应用程序,都会设计、建设CONFIG系统配置文件,它是一个XML文本文件,用于储存应用程序的相关参数和配置信息。在客户端构建数据请求消息时,根据当前操作的土地业务模块检索系统配置文件,在CONFIG系统配置文件中记录了各种土地业务模块对应的业务数据库。(2) 当某个土地业务模型需要调用其他业务数据库时,客户端构建数据请求消息将采用直接键入固定值的形式。例如,当征地模块需要获取土地供应数据进行占用分析时,征地业务模块默认连接征地业务数据库,而该库中当前并没有存储土地供应数据,此时构建数据访问请求消息将直接键入供应业务数据库名。

2) 数据表

确定数据库后,其次是对查询数据表的选择,数据表的选择分为三种形式:

(1) 在系统建设中依据需求调研,土地业务模块将根据业务应用、功能需求检索指定数据表,在某业务功能构建数据访问请求消息时系统将自动键入该功能模块所对应的数据表信息。例如,在构建客户端登录请求消息时,数据访问服务将直接确定访问用户数据表。

(2) 对于数据检索、查询等通用功能,无法提前确定数据表信息,系统将自动获取、构建数据请求消息。例如,当客户端进行数据模糊查询时,客户端将自动获取当前可见图层的种类和信息,对当前已显示的所有图层构建查询条件,统一进行数据访问请求。

(3) 同时,系统还为客户端提供更加灵活的数据表选择。当某些土地业务功能或客户端需要进行精确数据检索时,客户端将自动获取查询业务数据库中数据表目录信息,构建该业务数据库的图层树后返回至客户端以供选择,用户根据当前需求选择、确定查询数据表。例如,在征收土地数据精确查找过程中,首先返回查询征地业务数据库数据表目录,提供灵活的数据表选择。

3) 数据

在确定服务访问的数据库、数据表后,已经能够获取数据结果,但根据系统功能设定或用户需求,某些业务功能无需数据表的全部内容或还需要对查询结果进行处理,所以在构建数据请求消息时还需要明确数据检索内容,构建数据检索的限制条件。主要分为固定使用、构建条件、传递参数三种模式。

(1) 根据前期需求调研,在系统建设中某些土地业务模块采用固定形式获取数据。那么在构建数据请求消息时,客户端将使用固定的检索条件封装至请求消息中用以数据获取。例如,对土地供应数据进行年度统计时,直接使用“group by NF”(以年份进行分组统计)构建检索条件。

(2) 除了固定使用某查询条件,系统还为客户端提供灵活的数据检索条件构建,通过客户端提供的功能自行构建查询语句。例如,进行数据精确查找时,用户可根据客户端提供的字段、关键字等选择或填写来组织检索条件。

(3) 在服务模块中提供了通过传递某个或某类值的数据服务,达到数据检索的目的。例如,调用“getFeatInfo”请求时,通过传递X、Y坐标值完成数据查询。

通过以上数据库、数据表、数据三层的定位构建数据访问请求消息,通过WCF搭建通信桥梁,来实现服务的访问、数据的获取。

2.3 数据服务的实现

1) 定义服务契约

在使用WCF数据通信框架时,首先需要使用ServiceContract特性将接口或者类声明成一个契约,契约描述了WCF服务对外接口的定义和声明。例如,提供浏览器端的基本数据操作,构建了获取数据、上传文件等Web服务接口。

[ServiceContract]

public interface IWebHandler

{///获取数据

[OperationContract]

[WebInvoke(BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, UriTemplate = ″/WebDataSync″)]

string WebDataSync(string para);///上传文件

[OperationContract]

[WebInvoke(BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, UriTemplate = ″/UploadFile″)]

string UploadFile(WebReqData data);

}

2) 实现服务操作

定义契约后,再约定服务提供的操作和方法,实现数据接口。监听和接收来自客户端的请求,解析请求内容,完成服务操作,并构建返回消息。例如,实现浏览器端“getData”请求,如下所示。

//getData请求实现

if (string.IsNullOrEmpty(nvc[″sql″]))

{PageInx = PageNums = 0;

b1 = int.TryParse(nvc[″PageNums″], out PageNums)

&& int.TryParse(nvc[″PageInx″], out PageInx);//获取页码等参数

b2 = string.IsNullOrEmpty(nvc[″Fields″]); //获取getData请求中其他的参数}

dt1 = dbOrcl.getData(s1);

if (dt1 != null)

{sb = new StringBuilder(″[″);

foreach (DataRow dr in dt1.Rows)

{sb.Append(″{″);

foreach (DataColumn dc in dt1.Columns) //构建返回消息}}

else

throw new Exception(″获取数据失败.″);

3) 实现宿主程序承载服务

在WCF中构建了服务契约、描述了具体的服务方法,但由于服务本身是一个类(Class),不具备消息请求的响应能力,所以这些WCF服务还需要依存在一个应用程序域(Host)上。本系统采用Windows Service作为WCF服务的宿主,实现WCF服务的持续监听。

4) 客户端实现

在客户端方面,需要进行服务的信息配置,在CONFIG配置文件的结点中配置服务的“ABC”,对服务地址、绑定和协议等信息进行设定,通过生成一个代理变量实现和服务器之间的通信,如下所示。

3 结 语

通过以上服务内容的设计、服务访问的建设,以及客户端的服务信息配置,实现了跨平台、安全、高效的服务通信。

(1) 跨平台:WCF框架本身就支持实现跨平台的通信,所以通过WCF服务实现TCP/IP协议和HTTP协议的通信,从而达到国土资源“一张图”C/S架构和B/S架构平台的双重支撑,也能够为其他各类信息系统提供服务支持。

(2) 安全:WCF框架具有良好的安全性能,在消息传输过程中,点到点的通信保证了数据的安全。通过获取浏览器信息或者客户端主板编号或硬盘信息生成的唯一识别ID,与服务端的ID信息进行比对,实现了数据操作权限控制。同时,在服务请求消息通过传输通道发送到服务端前,还进行了请求消息的加密操作,这一系列的安全措施保证了通信的安全。

(3) 高效:在服务请求消息传输前进行了消息压缩,保证了数据的传输效率。

[1] 史辉,李军,冯永玉.国土资源数据管理初探[J].山东国土资源,2008,24(3):45-52.

[2] 李德仁,黄俊华,邵振峰.面向服务的数字城市共享平台框架的设计与实现[J].武汉大学学报(信息科学版),2008,33(9):881-885.

[3] 易敏.面向服务架构(SOA)的空间信息服务研究[D].上海:华东师范大学,2008.

[4] 郑春梅.城市管网空间信息共享与服务平台关键技术研究[D].北京:中国地质大学(北京),2014.

[5] 蔡海尼,何盼,文俊浩,等.面向服务架构的数据服务在数据访问中的应用[J].重庆大学学报,2009,32(10):1208-1213.

[6] 白日.分布式异构空间数据共享服务研究[D].武汉:武汉大学,2005.

[7] 赵俊三,尹鸿瑜,陶本藻,等.省级国土资源数据中心建设相关技术问题研究[J].武汉大学学报(信息科学版),2005,30(5):426-430.

[8] 程汤培.基于WCF的即时通信软件的设计与实现[J].电脑编程技巧与维护,2008(4):24-40.

[9] 顾悦,王建军.基于WCF的远程数据访问技术研究[J].电脑知识与技术,2010,6(31):8675-8676.

[10] 陈张建,张磊,黄桦,等.地质灾害气象风险预报(警)产品发布系统研究与应用[J].中国地质灾害与防治学报,2014,25(4):129-133.

[11] 令狐义强,屠龙海.县级国土资源“一张图”综合监管平台的研建——以台州市椒江区为例[J].浙江国土资源,2011(6):44-46.

[12] 顾炳中,申世亮.“欧盟空间信息基础设施”及对国土资源“一张图”建设的启示[J].国土资源信息化,2011(1):3-6.

[13] 黄志勤,冯义从,钟沛林,等.四川省国土资源“一张图”数据库及管理平台设计与实现[J].资源与人居环境,2013(6):31-35.

[14] 郭利华.地理信息公共服务平台和国土资源“一张图”协同建设初探[J].国土资源信息化,2014(1):49-52.

KEYTECHNOLOGYFOR“ONEMAP”PLATFORMOFCOUNTY-LEVELLANDANDRESOURCEBASEDONDATASERVERS

Gu Jirong1Fang Conggang2Wu Haowei31

(TheFacultyofGeographyResourceScience,SichuanNormalUniversity,Chengdu610066,Sichuan,China)2(TheBureauofLandandResourcesChengdu,Chengdu610072,Sichuan,China)3(TheThirdGeodeticTeamofNationalAdministrationofSurveying,MappingandGeoinformation,Longquan610100,Sichuan,China)

With the development of information system construction, land and resource management department is making rapid progress on data management and application system. Since data services on the county-level come up against a series of problems, for example, their weak technical supporting system, obstructed internal and external information communication, and many limitations within the applications. In this study, we constructed the core information service platform of "One Map" on the base of service-oriented architecture (SOA) and windows communication foundation (WCF), in order to achieve uniform data management and transparent access. Data servers supported cross platform between C/S and B/S. Moreover, point-to-point communications ensure the safety of data transferring. Message compressions ensured the speed of data transferring. Our approach has rapidly consolidated data management and transparent data access for land and resources, as well as the construction of "one map" integrated management system for county-level land resources based on data service.

Data services One map land and resource Land information

TP319

A

10.3969/j.issn.1000-386x.2017.09.017

2016-11-02。四川省国土资源厅“一张图”项目(KJ-2015-017)。辜寄蓉,教授,主研领域:地理信息系统理论与应用。方从刚,高工。吴浩伟,助理工程师。

猜你喜欢
一张图数据表数据服务
大数据时代高校图书馆数据服务的困境及优化路径
地理空间大数据服务自然资源调查监测的方向分析
基于数据中台的数据服务建设规范研究
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
湖北省新冠肺炎疫情数据表
数据服务依赖图模型及自动组合方法研究
浅议“林地一张图”在森林资源可持续经营中的利用
辽宁建成警务指挥“一张图”
西咸新区国土资源“一张图”平台建设初探