CN116595086A - 一种基于插件的空间数据服务实现方法和系统 - Google Patents
一种基于插件的空间数据服务实现方法和系统 Download PDFInfo
- Publication number
- CN116595086A CN116595086A CN202310883112.5A CN202310883112A CN116595086A CN 116595086 A CN116595086 A CN 116595086A CN 202310883112 A CN202310883112 A CN 202310883112A CN 116595086 A CN116595086 A CN 116595086A
- Authority
- CN
- China
- Prior art keywords
- plug
- request
- layer
- space data
- wfs
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 230000004044 response Effects 0.000 claims abstract description 27
- 238000012545 processing Methods 0.000 claims abstract description 23
- 238000001914 filtration Methods 0.000 claims abstract description 14
- 230000008569 process Effects 0.000 claims description 24
- 230000006870 function Effects 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 9
- 239000003795 chemical substances by application Substances 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 5
- 230000004931 aggregating effect Effects 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims description 4
- 238000011161 development Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Remote Sensing (AREA)
- Library & Information Science (AREA)
- Stored Programmes (AREA)
Abstract
本发明属于数据处理技术领域,提供一种基于插件的空间数据服务实现方法和系统。该方法包括:接收客户端发送的HTTP请求;通过空间数据服务来调用请求处理以解析HTTP请求,得到请求参数;基于WFS插件层提供空间数据服务;根据所得到的待访问空间数据唯一标识解析获得插件唯一标识,以确定与HTTP请求中待访问空间数据相对应的插件;根据所得到的请求参数构造查询条件,采用所确定的插件,经由指定空间数据访问接口获取待访问空间数据;将所获取的空间数据返回给WFS插件层,经过滤、组织处理后生成响应信息以返回给客户端。本发明有效优化了各类空间数据的查询访问操作,大大降低了空间数据服务的开发难度。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于插件的空间数据服务实现方法和系统。
背景技术
空间数据在城市规划、交通运输、抗震救灾等领域发挥着重要的作用,由此带来对空间数据服务化共享的需求。但是,空间数据具有异构、多源、海量、多尺度、动态和综合等特性。如果针对每类空间数据单独开发一个数据发布服务,这将为空间数据的服务化共享带来开发、维护、使用等方面的挑战。针对空间数据多源异构的特点,目前业内普遍采用微服务架构,针对每类空间数据分别实现了一个数据发布服务,并提供自定义的restful api接口,例如地名数据服务、矢量数据服务、兴趣点数据服务和实景数据服务等。
然而,现有的基于微服务的空间数据发布技术方案,仍存在以下缺点:1)空间数据服务开发成本高。需要针对每类特定的空间数据进行完整的服务开发,包括服务接口设计、网络框架选择、服务编码实现等;2)空间数据服务部署运维复杂。为了发布多种空间数据需要部署并管理多个空间数据服务实例;3)空间数据访问接口不规范。按照微服务架构开发的空间数据服务一般针对特定的空间数据设计特定的访问接口,没有一致且规范的空间数据访问接口。此外,在解决异构多源空间数据服务化发布周期长、技术要求高、维护使用成本大,以及实现空间数据快速、简单、标准的服务化共享能力等多方面仍存在很大改进空间。
因此,有必要提供一种改进了的基于插件的空间数据服务实现方法,以解决上述问题。
发明内容
本发明意在提供一种基于插件的空间数据服务实现方法和系统,以解决现有技术中异构多源空间数据服务化发布周期长、维护使用成本大、实现空间数据速度较慢以及因网络层、WFS控制层和WFS插件层处于同一进程空间中以及某个插件的程序错误(即bug)所影响的整个进程的安全性降低等的技术问题,本发明要解决的技术问题通过以下技术方案来实现。
本发明的第一方面提出一种基于插件的空间数据服务实现方法,包括:接收客户端发送的HTTP请求;通过空间数据服务来调用请求处理以解析所述HTTP请求,得到请求参数,其中,所述请求参数包括请求地址、待访问空间数据唯一标识、查询参数;基于WFS插件层提供空间数据服务;根据所得到的待访问空间数据唯一标识解析获得插件唯一标识,以确定与所述HTTP请求中待访问空间数据相对应的插件;根据请求参数构造查询条件,采用所确定的插件,经由指定空间数据访问接口获取待访问空间数据;将所获取的空间数据返回给所述WFS插件层,经过滤、组织处理后生成响应信息以返回给所述客户端。
根据可选的实施方式,通过网络层、WFS控制层和WFS插件层来实现空间数据服务,其中,采用主从Reactor多线程网络模型配设所述网络层,所述网络层用于与发送HTTP请求的客户端建立网络连接;所述WFS控制层由网络层驱动,所述WFS控制层对HTTP请求进行解析以得到请求地址、待访问空间数据及待访问空间数据的类型,并确定为以下请求类型中一个或多个:目录获取请求、字段获取请求、要素查询请求和文件下载请求;所述WFS插件层包括各类空间数据相对应的插件,以通过各插件对所述WFS控制层提供数据访问功能。
根据可选的实施方式,包括:配设与各类空间数据相对应的插件、各插件所对应的配置文件以及各插件动态库,以构建WFS插件层;通过插件代理器负责聚合以下多个插件的数据访问功能,并对WFS控制层提供访问接口:矢量数据访问插件、实景数据访问插件和兴趣点数据访问插件。
根据可选的实施方式,包括:配设指定空间数据访问接口,所述指定空间数据访问接口包括插件导出类、图层目录类、空间图层类和空间查询条件类。
根据可选的实施方式,包括:所述WFS控制层确定与所述HTTP请求相对应的插件以调用该插件执行相应的数据访问操作。
根据可选的实施方式,在启动空间数据服务时,执行以下步骤;监听指定端口;在监听成功的情况下,在接收到HTTP请求后,所述网络层调用指定请求处理器进行请求处理;插件管理器开始扫描插件目录下的所有插件,判断是否有未收录插件;在判断有未收录插件的情况下,加载当前未收录的每个插件动态库及各插件所对应的配置文件,将所述未收录插件收录到插件容器中,并使用所述未收录插件执行相应的数据访问操作,以进入事件循环。
根据可选的实施方式,根据请求地址、待访问空间数据唯一标识、查询参数,构建查询条件;根据所构建的查询条件,从数据存储中调度待访问空间数据,并返回给所述WFS插件层。
根据可选的实施方式,所述WFS插件层对所返回的待访问数据进行过滤、组织处理后,向所述WFS控制层返回要素信息;所述WFS控制层将所述要素信息重新组织为指定格式的结果响应返回给所述网络层,并将该结果响应发送到所述客户端。
根据可选的实施方式,所述插件代理器负责各插件的加载、收录、启动和关闭。
本发明的第二方面提出基于插件的空间数据服务实现系统,包括:接收模块,用于接收客户端发送的HTTP请求;解析处理模块,通过空间数据服务来调用请求处理以解析所述HTTP请求,得到请求参数,其中,所述请求参数包括请求地址、待访问空间数据唯一标识、查询参数;基于WFS插件层提供空间数据服务;调用模块,解析待访问空间数据唯一标识获得插件唯一标识,确定与所述HTTP请求中待访问空间数据相对应的插件后,根据所得到的请求参数构造查询条件,调用WFS插件层接口;数据获取模块,采用所确定的插件,经由指定空间数据访问接口获取待访问空间数据;响应模块,将所获取的空间数据返回给所述WFS插件层,经过滤、组织处理后生成响应信息以返回给所述客户端。
本发明实施例包括以下优点:
与现有技术相比,本发明的方法基于WFS插件层提供空间数据服务,通过空间数据服务来调用请求处理以解析所接收到的HTTP请求,得到请求参数以确定与HTTP请求中待访问空间数据相对应的插件,并根据所得到的请求参数构造查询条件,调用WFS插件层接口,经由指定空间数据访问接口获取待访问空间数据,将所获取的空间数据返回给所述WFS插件层,经过滤、组织处理后生成响应信息以返回给所述客户端,能够有效优化各类空间数据的查询访问操作;每类空间数据均对应一个插件,只需要实现插件定义的指定空间数据接口即可,无需关心HTTP网络和WFS规范的实现,能够大大降低空间数据服务的开发难度。
此外,采用多进程方式改进空间数据服务,将插件隔离运行在子进程中,由主进程负责子进程的生命周期管理,能够有效提高空间数据服务的健壮性,并能够有效避免因网络层、WFS控制层和WFS插件层处于同一进程空间中以及某个插件的程序错误(即bug)所影响的整个进程的安全性降低的问题。
此外,通过插件管理器负责插件的加载、收录、启动和关闭,能够实现更灵活的启用、禁用插件,进而实现按需灵活发布空间数据的能力。
附图说明
图1是本发明的基于插件的空间数据服务实现方法的一示例的步骤流程图;
图2是应用本发明的基于插件的空间数据服务实现方法的一应用示例的示意图;
图3是本发明的基于插件的空间数据服务实现方法中所提供的空间数据服务的一示例的结构框架图;
图4是本发明的基于插件的空间数据服务实现方法中指定空间数据访问接口的一配设示例的示意图;
图5是本发明的基于插件的空间数据服务实现方法中各数据访问的一示例的示意图;
图6是本发明的基于插件的空间数据服务实现方法中各数据访问的一示例的示意图;
图7是根据本发明的基于插件的空间数据服务实现系统的一示例的结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
鉴于上述问题,本发明提出一种基于插件的空间数据服务实现方法。
需要说明的是,在发明中,空间数据服务主要是通过插件配合主程序,即主程序(host)和插件(Plug-in)来实现不同类型的空间数据访问、发布等。其中,所述插件是指一种遵循特定规范的应用程序接口编写出来的程序,只能在程序规定的系统平台下运行,主要用来扩展软件功能。所述空间数据,又称地理数据,它用来表示物体的位置、形态、大小分布等各方面的信息,是对现实世界中存在的具有定位意义的事物和现象的描述。本发明的方法特别适用于与GIS(Geographic Information System)地理信息系统相关的空间数据,所述GIS(地理信息系统)是在计算机硬件、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布式数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。但是不限于,上述仅作为可选示例进行说明,不能理解成对本发明的限制。
下面参照图1至图6,将对本发明的内容进行详细说明。
图1是本发明的基于插件的空间数据服务实现方法的一示例的步骤流程图。图2是应用本发明的基于插件的空间数据服务实现方法的一应用示例的示意图。
在图2的应用示例中,包括客户端、空间数据服务和数据存储三个部分,其中,所述空间数据服务包括网络层(例如evhtp网络层)、WFS控制层和WFS插件层,WFS插件层包括与不同类型的空间数据相对应的多个插件。
需要说明的是,WFS,即网络要素服务,所述网络要素服务是一种由服务提供者发布,为客户端提供基于HTTP的空间要素查询、新增、修改和删除操作。WFS标准通过WEB服务描述语言(Web Services Description Language,WSDL)定义和描述了操作接口。
下面将结合图1和图2,具体说明本发明的空间数据服务实现方法。
首先,在步骤S101中,接收客户端发送的HTTP请求。
具体地,客户端例如遵循OGC WFS1.1.0规范,向空间数据服务的后端(例如服务器)发送HTTP请求以用于获取待访问空间数据。所述HTTP请求为要素查询HTTP请求。
需要说明的是,上述仅作为可选示例进行说明,不能理解成本发明的限制。
接下来,在步骤S102中,通过空间数据服务来调用请求处理以解析所述HTTP请求,得到请求参数,其中,所述请求参数包括请求地址、待访问空间数据唯一标识、查询参数;基于WFS插件层提供空间数据服务。
在一具体实施方式中,采用插件和主程序的方式实现空间数据服务,其中,主程序负责WFS规范解析与响应,插件负责实现不同类型的空间数据查询访问操作、数据发布或者其他相关操作。
需要说明的是,在本发明中,每类空间数据均对应一个插件,只需要实现插件定义的接口即可,无需关心HTTP网络和WFS规范的实现,因此,能够大大降低空间数据服务的开发难度。
参见图2和图3,具体通过如图2所示的网络层、WFS控制层和WFS插件层来实现空间数据服务。在本示例中,所述网络层为evhtp网络层。
具体地,采用主从Reactor多线程网络模型配设所述网络层,所述网络层用于与发送HTTP请求的客户端建立网络连接;所述WFS控制层由网络层驱动,所述WFS控制层对HTTP请求进行解析以得到请求地址、待访问空间数据及待访问空间数据唯一标识,并确定为以下请求类型中一个或多个:目录获取请求、字段获取请求、要素查询请求和文件下载请求。
所述WFS插件层包括各类空间数据相对应的插件,以通过各插件对所述WFS控制层提供数据访问功能。通过配设与各类空间数据相对应的插件、各插件所对应的配置文件以及各插件动态库,以构建WFS插件层。
接着,通过插件代理器负责聚合以下多个插件的数据访问功能,并对WFS控制层提供访问接口:矢量数据访问插件、实景数据访问插件和兴趣点数据访问插件。
需要说明的是,所述WFS插件层是整个空间数据服务(也称为插件化空间数据服务)的“发动机”,支持各类空间数据按照统一的数据模型进行描述,并提供一致的接口(即指定空间数据访问接口),方法为WFS控制层提供数据访问能力。在物理组成上,插件层由各个插件动态库及其配置文件组成;在代码实现上,各个插件各自独立开发、测试和运行,通过插件管理器负责插件的加载、收录、启动和关闭,能够实现更灵活的启用、禁用插件,进而实现按需灵活发布空间数据的能力。在各个独立的插件之上,设计插件代理器负责聚合多个插件的数据访问能力,统一对WFS控制层提供访问接口(即指定空间数据访问接口)。各个插件,例如矢量服务化访问插件、实景服务化访问插件等,作为数据提供者,负责具体的数据种类或者数据源进行交互,实现列出图层目录、获取图层字段、按照空间属性条件查询要素和多媒体文件读取等具体操作。
在一优选实施方式中,采用多进程方式改进空间数据服务,将插件隔离运行在子进程中,由主进程负责子进程的生命周期管理,能够有效提高空间数据服务的健壮性,并能够有效避免因网络层、WFS控制层和WFS插件层处于同一进程空间中以及某个插件的程序错误(即bug)所影响的整个进程的安全性降低的问题。
在图2的示例中,客户端向空间数据服务的后端发送HTTP请求,在空间数据服务的网络层接收到HTTP请求时,通过空间数据服务的网络层来调用WFS控制层的请求处理方法以进行请求处理来解析所述HTTP请求,得到请求参数,所述请求参数包括请求地址(或者请求URL)、待访问空间数据唯一标识、查询参数。具体过程如图2所示,客户端向空间数据服务发送HTTP请求,具体如下:(1)发送HTTP请求→(2)调用请求处理→(3)查询访问要素→(4)获取待访问空间数据→(5)返回待访问空间数据→(6)返回要素信息→(7)返回结果响应→(8)发送HTTP响应。
具体地,所述HTTP请求包括目录获取请求、字段获取请求、要素查询请求和文件下载请求。
需要说明的是,上述仅作为可选示例进行说明,不能理解成本发明的限制。
接下来,在步骤S103中,根据所得到的待访问空间数据唯一标识解析获得插件唯一标识,以确定与所述HTTP请求中待访问空间数据相对应的插件。
在一具体实施方式中,根据请求地址、待访问空间数据唯一标识、查询参数,构建查询条件。所述查询条件包括分页页号、分页页大小、属性过滤条件、空间过滤条件几何信息(包括点、线、面和矩形)和空间过滤条件空间关系信息(包括相交、相离、包含、被包含等)。
所述空间数据唯一标识为字符串形式,由插件唯一标识、空间数据命名空间和空间数据标识三个信息组成。所述WFS控制层解析请求参数获得待访问空间数据唯一标识后进行进一步的解析,获得插件唯一标识,从而确定与所述HTTP请求相对应的插件以调用该插件执行相应的数据访问操作。
需要说明的是,所述WFS控制层由evthp网络层驱动,当接收到HTTP请求时,evhtp网络层回调已注册的请求处理方法,将请求处理移交到WFS控制层。WFS控制层负责获取请求地址(或者请求URL)和其他参数,对HTTP请求按照WFS规范进行解析,例如解析为目录获取请求、字段获取请求、要素查询请求和文件下载请求等,采用软件设计模式中的命令模式实现具体的命令执行者(即使用具体插件进行访问操作)。
例如,根据空间数据唯一标识解析获得插件唯一标识,确定空间数据访问插件。
接着,根据所构建的查询条件,从数据存储中调度待访问空间数据,并返回给所述WFS插件层。
例如,所述待访问空间数据包括矢量数据、实景数据和兴趣点数据等。
例如,根据分页页号为0、分页大小为10、属性过滤条件为宽度大于10米、空间过滤条件的几何信息为矩形范围、空间过滤条件的空间关系为相交关系,从数据存储中调度实景数据。
需要说明的是,上述仅作为可选示例进行说明,不能理解成本发明的限制。
接下来,在步骤S104中,根据请求参数构造查询条件,采用所确定的插件,经由指定空间数据访问接口获取待访问空间数据。
优选地,配设如图4所示的指定空间数据访问接口。
具体地,所述指定空间数据访问接口包括插件导出类(IGGK_WFSPlugin)、图层目录类(IGGK_WFSCatalog)、空间图层类(IGGK_WFSLayer)和空间查询条件类(IGGK_WFSQqueryFilter)。
具体地,插件导出类(IGGK_WFSPlugin)作为插件动态库的导出类以用于调用加载插件。所述插件导出类负责接收启动参数信息、打开图层目录和响应关闭事件。图层目录类(IGGK_WFSCatalog)提供获得图层列表的能力,可根据图层的命名空间和名称获取指定图层。空间查询条件类(IGGK_WFSQqueryFilter)封装了查询条件信息(即查询条件),具体包括分页条件、属性条件和空间关系条件。空间图层类(IGGK_WFSLayer)是指定空间数据访问接口中最重要的类,其包含获取图层的名称、字段和要素信息的方法,主要根据指定的查询条件获取要素信息,得到要素结果集合。
在一具体实施方式中,例如,根据采用所确定的矢量数据访问插件,经由指定空间数据访问接口获取如待访问的矢量数据。
需要说明的是,在其他实施方式中,如图5所示,包括矢量数据访问、实景数据访问等等。在矢量数据访问中,还包括与矢量数据访问相对应的图层目录获取、图层字段获取、矢量要素查询等。在实景数据访问中,还包括与实景数据访问相对应的图层目录获取、图层字段获取、定位点查询、实景图片下载等。在兴趣点数据访问中,包括与兴趣点数据访问相对应的图层目录获取、图层字段获取、空间要素查询、多媒体文件下载。上述仅作为可选示例进行说明,不能理解成本发明的限制。
接下来,在步骤S105中,将所获取的空间数据返回给所述WFS插件层,经过滤、组织处理后生成响应信息以返回给所述客户端。
具体地,将从数据存储(例如文件系统、数据库等)中所获取的空间数据(即待访问空间数据)返回给空间数据服务的WFS插件层。
接着,所述WFS插件层对所返回的待访问数据进行过滤、组织处理后,向所述WFS控制层返回要素信息。
进一步地,所述WFS控制层将所述要素信息重新组织为指定格式(例如GML或者GeoJSON格式)的结果响应返回给所述网络层,并将该结果响应发送到所述客户端。例如,将要素结果集合采用如内存矢量图层的形式返回给客户端。
需要说明的是,上述仅作为可选示例进行说明,不能理解成本发明的限制。
在另一示例中,所述空间数据服务实现方法还包括更新指定端口的步骤S200。
需要说明的是,由于在该示例中的步骤S101、步骤S102、步骤S103、步骤S104和步骤S105与图1中的步骤S101、步骤S102、步骤S103、步骤S104和步骤S105大致相同,因此省略了对相同部分的说明。下面将具体说明更新指定端口的步骤S200。
在步骤S200中,更新指定端口。
具体地,在启动空间数据服务时,执行以下步骤;
步骤S201:监听指定端口。
步骤S202:在监听指定端口成功的情况下,在接收到HTTP请求后,所述网络层调用指定请求处理器进行请求处理(具体对应图6所示的“是否监听成功?”,“是”,“调用指定请求处理器进行请求处理”)。
需要说明的是,所述监听成功是指空间数据服务已经准备好接收来自其他计算机的连接请求,并进行相应处理以提供空间数据服务;所述指定端口是网络端口,属于计算机网络层面的概念。访问接口是指程序模块接口。
步骤S203:插件管理器开始扫描插件目录下的所有插件(对应图6所示的“扫描插件目录”),判断是否有未收录插件(对应图6所示的“有未收录插件”)。
步骤S204:在判断有未收录插件的情况下,加载当前未收录的每个插件动态库及各插件所对应的配置文件,将所述未收录插件收录到插件容器中(对应图6所示的加载插件、各插件所对应的配置文件,收录插件),并使用所述未收录插件执行相应的数据访问操作,以进入事件循环。
需要说明的是,所述事件是指网络连接和网络读写事件。所述事件循环是指网络层循环不断的检查是否有网络事件发生。
参见图6,空间数据服务监听指定端口,所述指定端口用于和客户端建立网络连接。在监听成功的情况下,在接收到HTTP请求后,所述网络层调用指定请求处理器进行请求处理。
然后,插件管理器开始扫描插件目录下的所有插件,判断是否有未收录插件,并依次加载每个插件动态库及其对应的配置文件信息。
通过比对所加载的插件动态库来判断是否有未收录插件。在判断有未收录插件的情况下,将该未收录插件收录到插件容器中。
接着,进入网络事件处理循环中,等待网络层的连接和读写等事件通知。
具体地,事件通知是指网络层检查到网络事件发生后,将事件通知给WFS控制层,由WFS控制层解析获取请求地址和请求参数信息。
需要注意的是,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
与现有技术相比,本发明基于WFS插件层提供空间数据服务,通过空间数据服务来调用请求处理以解析所接收到的HTTP请求,得到请求参数,并根据所得到的请求参数构造查询条件,调用WFS插件层以确定与HTTP请求中待访问空间数据相对应的插件,经由指定空间数据访问接口获取待访问空间数据,将所获取的空间数据返回给所述WFS插件层,经过滤、组织处理后生成响应信息以返回给所述客户端,能够有效优化各类空间数据的查询访问操作;每类空间数据均对应一个插件,只需要实现插件定义的指定空间数据接口即可,无需关心HTTP网络和WFS规范的实现,能够大大降低空间数据服务的开发难度。
此外,采用多进程方式改进空间数据服务,将插件隔离运行在子进程中,由主进程负责子进程的生命周期管理,能够有效提高空间数据服务的健壮性,并能够有效避免因网络层、WFS控制层和WFS插件层处于同一进程空间中以及某个插件的程序错误(即bug)所影响的整个进程的安全性降低的问题。
此外,通过插件管理器负责插件的加载、收录、启动和关闭,能够实现更灵活的启用、禁用插件,进而实现按需灵活发布空间数据的能力。
下述为本发明系统实施例,可以用于执行本发明方法实施例。对于本发明系统实施例中未披露的细节,请参照本发明方法实施例。
图7是根据本发明的基于插件的空间数据服务实现系统的一示例的结构示意图。
如图7所示,本公开第二方面提供一种基于插件的空间数据服务实现系统700。
具体地,所述空间数据服务实现系统700包括接收模块710、解析处理模块720、调用模块730、数据获取模块740和响应模块750。
更具体地,接收模块710用于接收客户端发送的HTTP请求。解析处理模块720通过空间数据服务来调用请求处理以解析所述HTTP请求,得到请求参数,其中,所述请求参数包括请求地址、待访问空间数据唯一标识、查询参数;基于WFS插件层提供空间数据服务。调用模块730根据所得到的待访问空间数据唯一标识解析获得插件唯一标识,以确定与所述HTTP请求中待访问空间数据相对应的插件;数据获取模块740根据请求参数构造查询条件,采用所确定的插件,经由指定空间数据访问接口获取待访问空间数据;响应模块750将所获取的空间数据返回给所述WFS插件层,经过滤、组织处理后生成响应信息以返回给所述客户端。
在一可选实施方式中,通过网络层、WFS控制层和WFS插件层来实现空间数据服务,其中,采用主从Reactor多线程网络模型配设所述网络层,所述网络层用于与发送HTTP请求的客户端建立网络连接;所述WFS控制层由网络层驱动,所述WFS控制层对HTTP请求进行解析以得到请求地址、待访问空间数据及待访问空间数据的类型,并确定为以下请求类型中一个或多个:目录获取请求、字段获取请求、要素查询请求和文件下载请求;所述WFS插件层包括各类空间数据相对应的插件,以通过各插件对所述WFS控制层提供数据访问功能。
在一可选实施方式中,包括:配设与各类空间数据相对应的插件、各插件所对应的配置文件以及各插件动态库,以构建WFS插件层;通过插件代理器负责聚合以下多个插件的数据访问功能,并对WFS控制层提供访问接口:矢量数据访问插件、实景数据访问插件和兴趣点数据访问插件。
在一可选实施方式中,包括:配设指定空间数据访问接口,所述指定空间数据访问接口包括插件导出类(IGGK_WFSPlugin)、图层目录类(IGGK_WFSCatalog)、空间图层类(IGGK_WFSLayer)和空间查询条件类(IGGK_WFSQqueryFilter)。
在一可选实施方式中,所述WFS控制层确定与所述HTTP请求相对应的插件以调用该插件执行相应的数据访问操作。
在一可选实施方式中,在启动空间数据服务时,执行以下步骤:监听指定端口;在监听成功的情况下,在接收到HTTP请求后,所述网络层调用指定请求处理器进行请求处理;插件管理器开始扫描插件目录下的所有插件,判断是否有未收录插件;在判断有未收录插件的情况下,加载当前未收录的每个插件动态库及各插件所对应的配置文件,将所述未收录插件收录到插件容器中,并使用所述未收录插件执行相应的数据访问操作,以进入事件循环。
在一可选实施方式中,根据请求地址、待访问空间数据唯一标识、查询参数,构建查询条件;根据所构建的查询条件,从数据存储中调度待访问空间数据,并返回给所述WFS插件层。
在一可选实施方式中,所述WFS插件层对所返回的待访问数据进行过滤、组织处理后,向所述WFS控制层返回要素信息;所述WFS控制层将所述要素信息重新组织为指定格式的结果响应返回给所述网络层,并将该结果响应发送到所述客户端。
具体地,所述插件代理器负责各插件的加载、收录、启动和关闭。
需要说明的是,上述仅作为可选示例进行说明,不能理解成本发明的限制。
与现有技术相比,本发明基于WFS插件层提供空间数据服务,通过空间数据服务来调用请求处理以解析所接收到的HTTP请求,得到请求参数,以确定与HTTP请求中待访问空间数据相对应的插件,并根据所得到的请求参数构造查询条件,调用WFS插件层接口,经由指定空间数据访问接口获取待访问空间数据,将所获取的空间数据返回给所述WFS插件层,经过滤、组织处理后生成响应信息以返回给所述客户端,能够有效优化各类空间数据的查询访问操作;每类空间数据均对应一个插件,只需要实现插件定义的指定空间数据接口即可,无需关心HTTP网络和WFS规范的实现,能够大大降低空间数据服务的开发难度。
此外,采用多进程方式改进空间数据服务,将插件隔离运行在子进程中,由主进程负责子进程的生命周期管理,能够有效提高空间数据服务的健壮性,并能够有效避免因网络层、WFS控制层和WFS插件层处于同一进程空间中以及某个插件的程序错误(即bug)所影响的整个进程的安全性降低的问题。
此外,通过插件管理器负责插件的加载、收录、启动和关闭,能够实现更灵活的启用、禁用插件,进而实现按需灵活发布空间数据的能力。
以上具体地示出和描述了本发明的示例性实施例。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (10)
1.一种基于插件的空间数据服务实现方法,其特征在于,包括
接收客户端发送的HTTP请求;
通过空间数据服务来调用请求处理以解析所述HTTP请求,得到请求参数,其中,所述请求参数包括请求地址、待访问空间数据唯一标识、查询参数;基于WFS插件层提供空间数据服务;
根据所得到的待访问空间数据唯一标识解析获得插件唯一标识,以确定与所述HTTP请求中待访问空间数据相对应的插件;
根据请求参数构造查询条件,采用所确定的插件,经由指定空间数据访问接口获取待访问空间数据;
将所获取的空间数据返回给所述WFS插件层,经过滤、组织处理后生成响应信息以返回给所述客户端。
2.根据权利要求1所述的基于插件的空间数据服务实现方法,其特征在于,包括:
通过网络层、WFS控制层和WFS插件层来实现空间数据服务,其中,
采用主从Reactor多线程网络模型配设所述网络层,所述网络层用于与发送HTTP请求的客户端建立网络连接;
所述WFS控制层由网络层驱动,所述WFS控制层对HTTP请求进行解析以得到请求地址、待访问空间数据及待访问空间数据的类型,并确定为以下请求类型中一个或多个:目录获取请求、字段获取请求、要素查询请求和文件下载请求;
所述WFS插件层包括各类空间数据相对应的插件,以通过各插件对所述WFS控制层提供数据访问功能。
3.根据权利要求1或2所述的基于插件的空间数据服务实现方法,其特征在于,包括:
配设与各类空间数据相对应的插件、各插件所对应的配置文件以及各插件动态库,以构建WFS插件层;
通过插件代理器负责聚合以下多个插件的数据访问功能,并对WFS控制层提供访问接口:
矢量数据访问插件、实景数据访问插件和兴趣点数据访问插件。
4.根据权利要求1或2所述的基于插件的空间数据服务实现方法,其特征在于,包括:
配设指定空间数据访问接口,所述指定空间数据访问接口包括插件导出类、图层目录类、空间图层类和空间查询条件类。
5.根据权利要求3所述的基于插件的空间数据服务实现方法,其特征在于,包括:
WFS控制层确定与所述HTTP请求相对应的插件以调用该插件执行相应的数据访问操作。
6.根据权利要求2所述的基于插件的空间数据服务实现方法,其特征在于,在启动空间数据服务时,执行以下步骤;
监听指定端口;
在监听成功的情况下,在接收到HTTP请求后,网络层调用指定请求处理器进行请求处理;
插件管理器开始扫描插件目录下的所有插件,判断是否有未收录插件;
在判断有未收录插件的情况下,加载当前未收录的每个插件动态库及各插件所对应的配置文件,将所述未收录插件收录到插件容器中,并使用所述未收录插件执行相应的数据访问操作,以进入事件循环。
7.根据权利要求6所述的基于插件的空间数据服务实现方法,其特征在于,
根据请求地址、待访问空间数据唯一标识、查询参数,构建查询条件;
根据所构建的查询条件,从数据存储中调度待访问空间数据,并返回给所述WFS插件层。
8.根据权利要求7所述的基于插件的空间数据服务实现方法,其特征在于,
所述WFS插件层对所返回的待访问数据进行过滤、组织处理后,向所述WFS控制层返回要素信息;
所述WFS控制层将所述要素信息重新组织为指定格式的结果响应返回给所述网络层,并将该结果响应发送到所述客户端。
9.根据权利要求6所述的基于插件的空间数据服务实现方法,其特征在于,所述插件代理器负责各插件的加载、收录、启动和关闭。
10.一种基于插件的空间数据服务实现系统,其特征在于,包括:
接收模块,用于接收客户端发送的HTTP请求;
解析处理模块,通过空间数据服务来调用请求处理以解析所述HTTP请求,得到请求参数,其中,所述请求参数包括请求地址、待访问空间数据唯一标识、查询参数;基于WFS插件层提供空间数据服务;
调用模块,根据所得到的待访问空间数据唯一标识解析获得插件唯一标识,以确定与所述HTTP请求中待访问空间数据相对应的插件;
数据获取模块,根据请求参数构造查询条件,采用所确定的插件,经由指定空间数据访问接口获取待访问空间数据;
响应模块,将所获取的空间数据返回给所述WFS插件层,经过滤、组织处理后生成响应信息以返回给所述客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310883112.5A CN116595086B (zh) | 2023-07-19 | 2023-07-19 | 一种基于插件的空间数据服务实现方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310883112.5A CN116595086B (zh) | 2023-07-19 | 2023-07-19 | 一种基于插件的空间数据服务实现方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116595086A true CN116595086A (zh) | 2023-08-15 |
CN116595086B CN116595086B (zh) | 2023-09-29 |
Family
ID=87606605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310883112.5A Active CN116595086B (zh) | 2023-07-19 | 2023-07-19 | 一种基于插件的空间数据服务实现方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116595086B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117499736A (zh) * | 2023-12-29 | 2024-02-02 | 杭州阿启视科技有限公司 | 基于windows操作系统的web浏览器插件播放前端摄像机视频的方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050278384A1 (en) * | 2004-06-10 | 2005-12-15 | Oracle International Corporation | External authentication against a third-party directory |
KR20130083004A (ko) * | 2011-12-27 | 2013-07-22 | 주식회사 엘지씨엔에스 | Gis 서비스 제공을 위한 클라이언트 장치 및 gis 서비스 제공 방법과 컴퓨터로 읽을 수 있는 기록매체 |
CN105022769A (zh) * | 2015-01-07 | 2015-11-04 | 泰华智慧产业集团股份有限公司 | 一种城市地下管线数据交互系统及其方法 |
CN109194762A (zh) * | 2018-09-20 | 2019-01-11 | 山东省农业科学院科技信息研究所 | 基于ssh的土壤信息网络发布系统及方法 |
CN109522386A (zh) * | 2018-12-25 | 2019-03-26 | 武汉众智鸿图科技有限公司 | 一种跨gis平台的空间信息服务生成方法和系统 |
CN109977510A (zh) * | 2019-03-15 | 2019-07-05 | 长江水利委员会长江科学院 | 一种基于gis技术的水文模型网络发布方法 |
CN114661851A (zh) * | 2022-05-23 | 2022-06-24 | 山东省国土测绘院 | 一种在线轻量级快速响应的自然资源空间信息处理方法 |
CN115640557A (zh) * | 2022-09-01 | 2023-01-24 | 北京计算机技术及应用研究所 | 自适应多种身份载体及凭证的开放式可扩展认证客户端 |
CN116382642A (zh) * | 2023-03-01 | 2023-07-04 | 王雪飞 | 一种基于鸿蒙操作系统的军用服务化框架 |
-
2023
- 2023-07-19 CN CN202310883112.5A patent/CN116595086B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050278384A1 (en) * | 2004-06-10 | 2005-12-15 | Oracle International Corporation | External authentication against a third-party directory |
KR20130083004A (ko) * | 2011-12-27 | 2013-07-22 | 주식회사 엘지씨엔에스 | Gis 서비스 제공을 위한 클라이언트 장치 및 gis 서비스 제공 방법과 컴퓨터로 읽을 수 있는 기록매체 |
CN105022769A (zh) * | 2015-01-07 | 2015-11-04 | 泰华智慧产业集团股份有限公司 | 一种城市地下管线数据交互系统及其方法 |
CN109194762A (zh) * | 2018-09-20 | 2019-01-11 | 山东省农业科学院科技信息研究所 | 基于ssh的土壤信息网络发布系统及方法 |
CN109522386A (zh) * | 2018-12-25 | 2019-03-26 | 武汉众智鸿图科技有限公司 | 一种跨gis平台的空间信息服务生成方法和系统 |
CN109977510A (zh) * | 2019-03-15 | 2019-07-05 | 长江水利委员会长江科学院 | 一种基于gis技术的水文模型网络发布方法 |
CN114661851A (zh) * | 2022-05-23 | 2022-06-24 | 山东省国土测绘院 | 一种在线轻量级快速响应的自然资源空间信息处理方法 |
CN115640557A (zh) * | 2022-09-01 | 2023-01-24 | 北京计算机技术及应用研究所 | 自适应多种身份载体及凭证的开放式可扩展认证客户端 |
CN116382642A (zh) * | 2023-03-01 | 2023-07-04 | 王雪飞 | 一种基于鸿蒙操作系统的军用服务化框架 |
Non-Patent Citations (3)
Title |
---|
CHRISTOPHER D. MICHAELIS等: "Considerations for Implementing OGC WMS and WFS Specifications in a Desktop GIS", JOURNAL OF GEOGRAPHIC INFORMATION SYSTEM, pages 161 - 167 * |
戴健钊;许剑辉;钟凯文;: "基于WebGIS空间数据管理平台的应用研究", 地理空间信息, no. 06, pages 65 - 69 * |
杨庆庆: "基于元数据管理的煤矿空间数据发布技术研究", 中国优秀硕士学位论文全文数据库 基础科学辑, pages 3 - 4 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117499736A (zh) * | 2023-12-29 | 2024-02-02 | 杭州阿启视科技有限公司 | 基于windows操作系统的web浏览器插件播放前端摄像机视频的方法 |
CN117499736B (zh) * | 2023-12-29 | 2024-04-19 | 杭州阿启视科技有限公司 | 基于windows操作系统的web浏览器插件播放前端摄像机视频的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116595086B (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107370786B (zh) | 一种基于微服务架构的通用信息管理系统 | |
CN116595086B (zh) | 一种基于插件的空间数据服务实现方法和系统 | |
CN108696372B (zh) | 一种保持系统配置一致性的方法和系统 | |
CN111641676B (zh) | 一种第三方云监控服务的构建方法及装置 | |
CN102880503A (zh) | 数据分析系统及数据分析方法 | |
CN106846226A (zh) | 一种时空信息组装管理系统 | |
CN103645951A (zh) | 一种跨平台的移动数据管理系统及其方法 | |
CN110764769B (zh) | 处理用户请求的方法和装置 | |
CN108763323B (zh) | 基于资源集和大数据技术的气象格点文件应用方法 | |
CN110381101A (zh) | Api网关控制系统、控制方法、设备和介质 | |
CN115827101B (zh) | 一种面向地球应用模型的云化集成系统及其方法 | |
CN111464522A (zh) | 一种基于容器自动化生成服务的系统及方法 | |
CN113535326B (zh) | 一种基于高通量测序数据的计算流程调度系统 | |
CN114610509A (zh) | 调用参数处理方法、系统、设备、存储介质及产品 | |
CN116521363B (zh) | 一种代码打包方法、计算机设备及存储介质 | |
CN117171108A (zh) | 一种虚拟模型映射方法和系统 | |
Cushing et al. | Computational proxies: modeling scientific applications in object databases | |
CN113535254A (zh) | 一种微服务的处理方法、部署方法和相关装置 | |
CN116700745A (zh) | 基于容器云平台的应用部署方法、装置、电子设备和介质 | |
CN115185841A (zh) | 系统重构测试方法、装置、设备及存储介质 | |
CN114579206A (zh) | 动态加载应用程序的方法、装置、设备及介质 | |
CN115878121A (zh) | 终端代码增量编译方法、系统、装置、服务器和存储介质 | |
CN113377489A (zh) | 基于云平台的遥感智能监测应用的构建运行方法和装置 | |
CN111241437B (zh) | 数据处理方法、装置、服务端以及存储介质 | |
US20230385075A1 (en) | Networked Universal Code Package Provider |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |