顾及深层网络的地理信息Web服务搜索系统设计与实现

2018-10-16 08:21侯东阳邢汉发
地理信息世界 2018年3期
关键词:脚本深层子系统

侯东阳,陈 军,武 昊,邢汉发

(1. 山东师范大学 地理与环境学院,山东 济南 250358;2. 国家基础地理信息中心,北京 100830)

0 引 言

在数字/智慧城市建设、国际标准化组织ISO/TC211和开放地理空间信息联盟OGC(Open GIS Constrium)等应用和组织的推动下,越来越多符合标准、稳定易用的地理信息Web服务被发布到互联网上,极大促进了地理空间数据的集成和共享[1-3].其中,一部分地理信息Web服务直接以锚文本或超链接的形式嵌入到静态页面,属于表层网络资源[4];还有一部分地理信息Web服务被发布在注册中心(如网络目录服务中)或在线数据库中,需要通过自身提供的查询接口才能暴露出来,属于深层网络资源[5-6].此外,随着在线地图网站的流行,还有一部分地理信息Web服务是隐藏于脚本中,需要查看网站的脚本源码才能被发现,也属于深层网络资源[4,7].这些位于表层和深层网络的地理信息Web服务分散且互不联通,形成了事实上的"信息孤岛",没有形成"一站式"的地理信息协作服务平台,给服务的查找和获取带来了困难[8].

针对这一现象,众多专家和研究机构在2015年6月9日至10日召开的"全球地理信息支持未来地球"国际研讨会上提出了"全球地理信息协作服务平台(CoGLand)"国际科学项目的倡议,拟在GlobeLand30信息服务平台基础上,整合地表覆盖在内的各种地理信息,发展服务计算和在线应用[9].其所面临的首要问题就是能否快速准确地搜索到相关地理信息Web服务.

鉴于此,本研究以基于二级匹配的深层网络地理信息Web服务采集方法和顾及用户请求范围的地理信息Web服务检索方法为理论基础,设计开发了顾及深层网络的地理信息Web服务搜索系统,旨在快速准确地采集分散的地理信息Web服务,为用户提供一站式的搜索体验.

1 系统设计

1.1 总体架构

顾及深层网络的地理信息Web服务搜索系统主要由数据层、业务层和表现层等3部分组成,如图1所示.其具体如下:

1)数据层:主要包括Web地图服务WMS(Web Map Service)、Web覆盖服务WCS(Web Coverage Service)、Web要素服务WFS(Web Feature Service)、Web处理服务WPS(Web Processing Service)等符合OGC标准的地理信息Web服务.

2)业务层:主要包括服务采集业务和服务检索业务两大类.其中,服务采集业务是指从互联网中采集和整理泛在地理信息Web服务的业务,涉及地理信息主题设置、地理信息Web服务解析、地理信息Web服务可用性验证等业务,为服务检索业务提供基础数据;服务检索业务是指根据用户请求从整理后的地理信息Web服务中返回其所需服务的业务,包括Web服务检索、Web服务元数据浏览和Web服务集成等业务.

3)表现层:其主要包括地理信息Web服务采集子系统和检索子系统.其中地理信息Web服务采集子系统是采用了通讯开销较小的C/S(Client/Server)架构来开发,主要面向小众的专业管理人员;地理信息Web服务采集子系统采用交互性较强的B/S(Browser/Server)架构来开发,主要面向公众用户.

图1 地理信息Web服务搜索系统的总体架构Fig.1 Overall architecture of geospatial Web service search system

1.2 数据库设计

为了便于管理和查询地理信息Web服务,本系统主要按照其类型存储和组织服务的元数据,即将不同类型的地理信息Web服务存储在不同的数据库表中;以WMS服务为例,其数据库表主要包括WMS服务能力描述文档链接、内容、IP地址和所对应的国家、地区等字段,具体见表1.

表1 WMS服务数据库表的存储结构Tab.1 Storage structure of WMS database table

表2 WMS服务索引文件的结构Tab.2 Structure of WMS indexed fi le

2 关键技术

2.1 基于二级匹配的深层网络地理信息Web服务采集方法

本系统的服务采集业务是在传统主题爬行方法的基础上,新增基于名字和规则匹配的脚本识别模块和脚本内容理解模块,以期同时采集位于表层和深层网络的地理信息Web服务.

该方法的主要思路如图2所示,具体见文献[4,10].①名字匹配:主要用于从已爬行的网页中判断其是否存在包含地理信息Web服务的脚本文件或脚本文件链接;其中,名字判断条件是根据网页中是否包含OpenLayers、ArcGIS API for JavaScript、Leaflet或Mapbox.js等脚本库的引用形式来确定的;如果已爬取网页中引用了这些脚本库,则该网页很可能存在脚本内容或脚本文件调用了地理信息服务;②规则匹配:旨在从候选的脚本文件中抽取出候选的地理信息Web服务.其中,调用规则是根据OpenLayers、ArcGIS API for JavaScript、Leaflet和Mapbox.js 4个常用脚本库调用地理信息Web服务的方式归纳总结的,如利用规则"OpenLayers.Layer.WMS([wW ]*?)"可以匹配出WMS服务.

图2 地理信息Web服务采集方法的主要思路Fig.2 Main idea of the geospatial Web service crawling method

2.2 顾及用户请求范围的地理信息Web服务检索方法

在地理信息Web服务检索业务中,用户提交的查询词除了涉及服务主题外(如草地),通常也会暗含地理范围(如巴西某一地区),甚至是直接以经纬度范围作为查询词.为了便于用户表达检索时的地理范围意图,本系统的服务检索业务从WMS服务的GetMap操作、WCS服务的GetCoverage操作、WFS服务的GetCoverage操作角度和用户需求角度出发,将用户请求的地理范围和主题关键词区别对待,具体为:以倒排索引方法为主,为主题关键词建立文本索引;在此基础上,采用Geohash方法为地理信息Web服务自身的地理范围建立空间索引;然后,以地理信息检索理论为基础,以包含、被包含和相交3种空间关系为检索算子,将用户请求的地理范围融入到基于关键词匹配的检索机制中.

3 系统实现

3.1 开发环境

本系统以上述关键技术为理论基础,以Microsoft Visual Studio 2008为开发工具,以C#为后台开发语言,利用Winform控件开发服务采集子系统的界面,利用ASP.NET、HTML、JavaScript和bootstrap等搭建服务检索子系统的界面,具体开发环境见表3.

表3 开发环境列表Tab.3 Development environments

3.2 系统展示

1)地理信息Web服务采集子系统

其主要是通过C#语言的HttpWebRequest类和HttpWebRespone类来实现网页/服务的请求和获取,通过Lucene.net实现地理信息Web服务的空间索引和文本索引.包括菜单栏、任务管理器和信息查看窗口三大部分.该子系统支持多线程多任务同时采集的模式.在新建采集任务时,允许管理员设置任务的多种参数,包括任务的名称、主题关键词、下载类别、连接设置及时间设置等;任务运行时,可以在信息查看窗口查看网页采集、服务验证和索引的过程.

该子系统从2015年6月16运行到2015年11月11日,最终收集到的地理信息Web服务数量见表4.

表4 服务采集实验结果Tab.4 Experimental results of service crawling

2)地理信息Web服务检索子系统

其主要是通过Lucene.net及其 Contrib Spatial.NTS 3.0.3模块实现了空间检索和文本检索的功能.目前,本系统仅仅开放了WMS服务检索功能(http://www.globeland30.org/chinese/lcseek/index.aspx).该子系统可以设置检索方式、操作算子和用户请求范围.

①检索方式:其主要包括关键词检索模式、图形检索模式和混合检索模式,其中,关键词检索模式是指根据查询词语与服务元数据中的关键词的匹配与否返回服务;图形检索模式是根据用户选定的范围与服务包含的地理范围的匹配与否返回服务.

②操作算子:指在图形检索时返回被用户指定的空间范围所包含的地理信息Web服务;操作算子包括包含、相交和被包含3种.相交指在图形检索时返回与用户指定的空间范围所相交的服务;被包含是指在图形检索时返回包含用户指定空间范围的服务.

③用户请求范围:其可以通过面板直接输入,也可以通过工具在地图上直接框选.

其检索结果界面如图3所示(以"GAP land cover"为关键词,框选美国某州附近的一个空间范围,采用混合检索模式检索),主要是采用文本列表展示返回服务的元数据,地图模块显示的是检索的范围.每条检索结果下面都包含3个操作:"GetCapabilities"用以浏览服务的能力文档;"GetMap"是根据用户请求范围请求该服务中第一个图层对应的地图图片,相当于提交了WMS服务的GetMap操作;"AddToLayer"用以将该服务集成到地图面板上,使用户可以预览该服务.

图3 地理信息Web服务检索子系统的检索结果界面Fig.3 Resulting interface of the geospatial Web service retrieval subsystem

4 结束语

本文对顾及深层网络的地理信息Web服务搜索系统的设计与实现进行了详细探讨与研究,并阐述了基于二级匹配的深层网络地理信息Web服务采集方法和顾及用户请求范围的地理信息Web服务检索方法等关键技术.相对传统服务搜索系统而言,该搜索系统可同时搜索位于表层网络和部分深层网络的地理信息Web服务,能为全球地理信息协作服务平台提供更为广泛的数据基础.下一步工作将集中在OGC多类型服务集成、面向未知查询接口的深层服务采集和服务质量监测等方面.

猜你喜欢
脚本深层子系统
不对中转子系统耦合动力学特性研究
酒驾
安奇奇与小cool 龙(第二回)
GSM-R基站子系统同步方案研究
考虑各向异性渗流的重力坝深层抗滑稳定分析
驼峰测长设备在线监测子系统的设计与应用
数据库系统shell脚本应用
SAM系统对TDCS数据的优化处理与深层应用
快乐假期
对“医患失去信任”的深层忧虑