基于SOA的岩溶地质数据服务系统设计与实现
杨 辰,周立新,毕奔腾
(1.中国地质科学院 岩溶地质研究所,广西 桂林 541004;2.国土资源部/广西岩溶动力学重点实验室,广西 桂林 541004)
0 引 言
中国是世界上岩溶发育最强烈的国家之一,岩溶面积约占国土面积的三分之一,是全球岩溶面积最大的国家之一[1],几乎所有的省份都有岩溶的分布。岩溶区地貌具有多样性,石林、天坑、岩溶洞穴、地下河、峰丛峰林等为国内旅游事业带来了无线生机,岩溶区存在大量地下河和岩溶泉,提供了丰富的水资源,但同时岩溶地区作为典型的生态脆弱区存在石漠化、塌陷、干旱缺水、地下河污染、水土流失等环境地质问题[2-10]。如何更好地开发岩溶区旅游、地下水资源,解决岩溶环境地质灾害,保护岩溶区生态环境,已成为政府、科研人员、社会公众比较关心的问题[11-14]。
随着地质调查工作的深入,我国已积累了大量岩溶区的地质资料,资料来源丰富、形式多样、种类繁多,如何将这些成果数据面向社会提供服务,发挥其潜在的经济价值,是文中研究的主要内容。
针对岩溶地质数据多源异构的特点,基于SOA设计岩溶地质数据服务系统,以组件服务的形式设计系统中不同功能模块,根据不用需求对服务进行调用,有效简化了开发人员的重复开发设计工作,增加了系统的灵活性和可扩展性。文中主要从岩溶地质数据建库、系统架构、系统设计、系统实现几个方面进行介绍。
1 SOA简介
面向服务架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来[15]。接口是采用中立的方式定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。
SOA本身就是一种面向企业级服务的系统架构,在基于SOA架构的系统中,具体应用程序的功能是由一些松耦合并且具有统一结构定义方式的组件(service)组合构建起来的,与其他企业架构相比,具有对于业务变更可以更快和更有效的响应的优点。SOA既不是一种语言,也不是一种具体的技术,而是一种新的软件系统架构模型。SOA架构具有一些典型特性,主要包括松耦合性、位置透明性以及协议无关性。松耦合性要求SOA架构中的不同服务之间应该保持一种松耦合的关系,也就是应该保持一种相对独立的关系;位置透明性要求SOA系统中的所有服务对于它们的调用者来说都是位置透明的,也就是说每个服务的调用者只需要知道他们调用的是哪一个服务,但并不需要知道所调用服务的物理位置在哪里;而协议无关性要求每一个服务都可以通过不同的协议来调用[16]。
组件模型是系统架构的一种形式,从广义上来讲,组件就是实现一类业务功能的可重用、可独立部署和设计的程序集合,这些程序有明确和完善的接口定义,通过接口完成功能请求,而具体实现则通过封装机制加以屏蔽。采用组件模型可以通过将业务功能封装在不同的组件中,实现功能分解,降低系统的耦合程度,保证系统中各个组件能够独立进行修改和扩展。在系统设计过程中,通过分析业务功能需要和系统需求,分类业务处理流程,把系统划分为若干通用组件。
2 岩溶地质数据及共享服务数据库设计
2.1 岩溶地质数据
岩溶地质数据主要包括岩溶水文地质、岩溶碳汇、岩溶塌陷、岩溶石漠化等方面的数据,来源广泛,数据结构复杂,数据集成共享比较困难。
根据数据结构将岩溶数据分为结构化数据和非结构化数据两大类,结构化数据包括基础地质调查、水资源调查、环境地质调查、钻孔、测试分析、长观数据、碳汇监测、石漠化、岩溶塌陷等调查类点数据;非结构化数据包括资料档案、岩溶栅格图件、岩溶矢量图件、成果报告等数据。
2.2 数据库设计
(1)结构化数据。
结构化数据基于oracle建立关系型数据库,这类数据具有统一编号、地理位置、经纬度、项目信息等相同基本信息,通过关键字段建立相互的表间关系。
(2)非结构化数据。
对非结构化数据建立元数据,元数据存储于oracle的关系数据库中,具体数据以外部挂接的文件方式存储在服务器上,矢量图件数据存储在mapgis k9数据库中。非结构化数据通过元数据与结构化数据建立关联,数据库的整体结构如图1所示
图1 数据库结构
3 基于SOA的岩溶地质数据服务系统架构
3.1 系统总体架构
基于岩溶地质数据现状,建立规范化、可扩展性强、灵活度高的岩溶地质数据共享服务数据库,实现各类数据的统一管理与服务;采用SOA架构设计实现岩溶地质数据服务系统,针对不同服务内容开发功能模块,进行松散耦合,统一为用户提供服务。设计的系统架构如图2所示。
3.2 数据层
数据层主要为岩溶地质共享服务数据库,包含的数据有:
(1)岩溶档案资料,主要包括岩溶相关的项目资料、成果文档、技术资料等。
(2)岩溶图件,主要包括岩溶地下水资源图、环境地质图、综合类图件、水文地质图等栅格矢量图件。
(3)岩溶技术标准,主要包括与岩溶相关的国标、行业标准等。
(4)岩溶现象,主要包括常见岩溶地貌的介绍,如岩溶泉、天窗、地下河、天生桥等,用于岩溶科普服务。
(5)岩溶地质元数据,主要包括档案资料、岩溶图件、岩溶相关技术标准、岩溶空间数据库、岩溶现象等非结构化数据的元数据。
(6)岩溶调查数据,主要包括岩溶洞穴、水资源、塌陷、干旱、洪涝、石漠化等调查数据。
图2 系统架构
3.3 集成服务层
集成服务层是整个系统的核心,通过多个SOA服务模块实现多源异构数据的集成访问,包括服务中间件及应用服务库。可以根据用户通过的需求定制不同的规则,满足用户各种数据需求。
3.4 应用层
根据岩溶地质数据服务系统的应用需求,应用层设计为门户页面、元数据服务系统、调查数据服务系统和管理系统,面向最终用户提供可视化查询展示、提供数据的打包下载等功能。门户页面提供服务信息的综合展示和导航索引,方便用户快速获取服务内容;元数据服务系统为用户提供基于元数据的综合查询服务,包括元数据查询服务、矢量图件查询服务、栅格图件查询服务、数据下载等,统一入口为服务产品目录;调查数据查询为用户提供各类岩溶地质调查点的基本信息,统一入口为岩溶一张图;管理系统面向管理人员,用于系统的维护管理。
4 基于SOA的服务系统设计
4.1 集成服务层设计
集成服务层是整个系统的核心,将系统整体业务流程中可独立的,可重复调用的业务功能,采用SOA系统架构、Web Service服务技术[17],以服务的形式提供服务。整个集成服务层包括服务中间件[18]和应用服务库两部分。其中服务中间件具有服务注册、服务流程编排、服务解析、调用等功能,保证应用层能够查找到所需的服务,满足应用需求。服务库包括安全认证、数据配置、数据获取、系统管理等服务模块,如图3所示。
图3 集成服务层架构
4.2 服务流程设计
对用户发送的数据请求进行解析和认证,通过服务中间件调用相应的服务接口,从多源数据库中获取数据重新组织,生成用户所需的数据,从而形成完成的服务流程。岩溶地质数据服务系统的核心流程如图4所示。
5 系统实现
该系统以oracle 11g+IGServer为数据库,Tomcat为Web服务器进行部署,实现了岩溶地质元数据、栅格、矢量、文件、调查数据等多种数据的查询、浏览、下载等功能。
图4 系统服务流程
5.1 系统主页
系统主页主要包含图片新闻、消息速递信息、地调成果信息、调查数据信息、检索模块、数据统计信息、服务指南以及服务产品目录、岩溶地质一张图、岩溶图件等功能,为用户全面了解使用系统提供帮助和索引。
5.2 服务产品目录
以元数据为核心为用户提供数据综合查询服务,包括档案资料、岩溶图件、技术标准、仪器设备、岩溶数据、岩溶现象等内容的模糊检索及高级检索等,实现元数据、文档、图件等信息的一体化查询,查询结构如图5所示。
图5 服务产品目录
5.3 岩溶地质一张图
以天地图为底图,将岩溶地质调查数据标注到地图上,实现空间上的数据综合查询。提供岩溶地区水文地质环境地质调查数据在空间上的详细信息的查询功能,包括调查点基本信息、项目信息、单位信息及相关图片等内容(见图6);提供图幅定位以及坐标定位的功能;同时提供基础的地图功能,如地图类型的切换、行政区划的切换、测线、测面、流量统计等功能。
图6 天然水点(岩溶泉)信息查询
6 结束语
系统基于SOA实现了岩溶调查点、元数据、栅格图件、矢量图件、文本等多源异构数据的综合组织管理与查询服务,设计了数据层、集成服务层和应用层的三层系统结构,利用oracle、IGServer、天地图、SOA、Web Service等技术实现了Web端的综合查询展示,使科研人员、社会公众可以快速查阅感兴趣的多源异构岩溶信息及获取方式,对岩溶地质成果的社会化服务具有重要意义。目前系统还存在一些不足,有待进一步完善,如数据内容较少,需继续扩充;系统查询效率可以继续优化提高,查询方式更加多元化,功能更加丰富。