一种基于数据驱动的组件式行星探测数据存档系统及方法技术方案

技术编号:20484684 阅读:23 留言:0更新日期:2019-03-02 18:53
本公开提供了一种基于数据驱动的组件式行星探测数据存档系统,包括:数据存档接口模块、数据收发服务模块、消息队列模块、数据存档服务集群模块、负载均衡服务模块、集群管理服务模块。通过将不同任务、不同来源的行星探测数据的存档组件化,以松耦合的系统架构构建行星探测数据存档系统,提高了系统的可扩展性,以数据为驱动实时动态加载不同的数据存档组件进行数据存档,提高了数据的安全性;同时由于整个系统支持集群化部署,通过负载均衡合理进行存档任务分派,提高了系统资源利用率以及存档并发处理能力,解决了常规行星探测数据存档系统在扩展性、安全性、高效性以及并发性等方面存在的问题。

【技术实现步骤摘要】
一种基于数据驱动的组件式行星探测数据存档系统及方法
本公开涉及月球与行星探测
,尤其涉及一种基于数据驱动的组件式行星探测数据存档系统及方法。
技术介绍
数据是月球与行星探测任务最为宝贵的物质财富,数据的安全存档与可靠管理是保存月球与行星科学探测成果首要的基本任务,也是后续深入开展科学研究、科技应用、科普宣传和知识传播的基础。首先,在每次月球与行星探测任务不同科学目标的牵引下,卫星和探测器的运行周期、搭载的有效载荷、数据采集方式以及数据处理算法等会存在较大差异,导致需要存档管理的探测数据类型和内容信息不断变化;再加上不同任务选择的探测方式不同,使得数据归档业务流程与接口规范也需随之进行改变。在传统模式下,存档系统为了满足新任务的存档需求需要进行适应性的改进升级,系统存在兼容性、稳定性、改造成本高等一系列问题,而且一个紧耦合、扩展性差的系统改造难度也会不断增加。其次,传统的月球与行星探测数据的存档是基于探测计划进行的,根据探测计划安排,各个数据存档请求方将需要存档的数据预先放入指定的共享文件系统中,数据存档方按照计划定时从共享文件系统中读取需要存档的数据进行存档,虽然可以完成探月数据的存档,但无法对探测数据进行实时存档,同时也无法满足数据的实时服务需求。再者,月球与行星探测数据的来源多,在探测任务期间存档需求频繁,在较短的时间段内会同时有大量的数据存档请求,如果存档系统并发性能较低,会导致大量存档请求积压,数据不能得到及时存档,影响数据的安全性和数据的实时服务能力,因此本系统通过集群化部署,提高系统的并行处理能力,保证能够及时、安全处理所有接收到的数据存档请求。
技术实现思路
(一)要解决的技术问题本公开提供了一种基于数据驱动的组件式行星探测数据存档系统及方法,以至少部分解决以上所提出的技术问题。(二)技术方案根据本公开的一个方面,提供了一种基于数据驱动的组件式行星探测数据存档系统,包括:数据存档接口模块、用于规范数据存档请求方与本数据存档系统之间的数据存档交互约束的接口协议,数据收发服务模块、用于完成系统与数据存档请求方间的数据收发;消息队列模块、用于存储数据收发服务模块接收到的数据存档请求,并对数据存档请求进行排队,保证数据收发服务接收到的数据存档请求的安全性,保证每个请求至少被处理一次;数据存档服务集群模块,包括多个数据存档服务实例,用于执行数据存档的业务服务;负载均衡服务模块,通过负载平衡调度算法实时计算出当前数据存档服务集群中负载状态最优的数据存档服务实例,并将其传递给数据收发服务,使得整个系统的归档任务在多个数据存档服务之间进行均衡的分配;集群管理服务模块,用于监视数据存档服务集群中各个服务进程的运行状态。在一些实施例中,数据存档服务集群模块是基于OSGI(OpenServiceGatewayInitiative)规范实现的动态组件化服务,由1~N个数据存档服务实例组成;每个数据存档服务实例提供相同的数据存档能力,并且互相独立,各个数据存档服务实例根据具体的存档需求,通过配置XML文件的方式选择需要加载启动的组件,从而实现存档服务功能级别的自由缩放。在一些实施例中,数据存档服务模块由一系列的数据存档组件和组件加载框架组成,每个组件提供一类行星探测数据的存档能力,组件加载框架提供组件的动态加载能力,当数据存档服务接收到数据存档任务,根据本次存档的数据类别,组件加载框架动态加载对应的组件,由该组件执行具体的存档,存档完成之后,生成本次存档任务的数据存档回复清单,详细描述每个数据的存档情况,并向数据收发服务发送数据存档回复报文,由数据收发服务将该存档回复报文转发给数据存档请求方,数据存档服务模块物理上启动多个实例,以集群的方式提供数据存档服务。在一些实施例中,数据存档接口模块包括数据存档报文和数据存档清单,其中,所述的数据存档报文分为传输标签、应用标签以及应用数据段三个部分,其中传输标签用于描述整个报文的长度、报文来源、报文去向、报文生成时间;应用标签用于描述探测任务阶段、报文类型以及应用数据段的长度;应用数据段用于描述数据存档请求清单或者数据存档回复清单的全路径;数据存档清单包括数据存档请求清单和数据存档回复清单,所述数据存档请求清单和数据存档回复清单均以XML格式的文件进行表示,其中数据存档请求清单用于描述需要存档的数据文件信息,主要包括存档任务的基本信息、存档文件数和存档文件列表;数据存档回复清单用于描述每次数据存档任务的执行结果,包括存档回复的基本信息、存档文件数、每个数据文件的存档状态和存档失败原因。在一些实施例中,所述消息队列模块是基于生产者-消费者模式的先进先出阻塞式队列,其具有线程安全的入队、出队、删除以及可持久化的能力;数据收发服务模块包括:监听线程,用于接收数据存档请求方的连接请求,建立本系统与数据存档请求方的消息通道;消息接收线程,用于接收数据存档请求方发送的数据存档请求报文,其作为消息队列的生产方将接收到的数据存档请求报文存入消息队列模块;消息队列扫描线程,作为消息队列模块的消费者从消息队列模块中获取数据存档请求,通过负载均衡服务从数据存档服务集群中获取到执行本次任务的数据存档服务实例,然后将该数据存档请求转发给该数据存档服务实例执行数据存档任务;消息发送线程,用于转发数据存档服务发送的数据存档回复报文给数据存档请求方,告之本次存档任务完成情况。在一些实施例中,负载均衡服务模块用于接收数据存档服务集群中各个数据存档服务实例上报的实时负载信息,包括数据存档服务实例所占用的内存、CPU、执行的存档任务数,通过动态计算,定时对存档服务实例以负载量为依据从小到大进行排序,为数据收发服务提供负载相对较小的数据存档服务入口。在一些实施例中,集群管理服务通过集群中的各个服务进程启动时注册的基本信息,包括进程名称、进程的工作空间和定期上报的心跳信息监控每个进程的运行状态,当发现集群中某一个进程在设置的时间段内未发送心跳,该进程就会被判定为存在异常,随即重新启动该异常进程;进程重启恢复后,发生异常时未完成的任务会继续执行。根据本公开的另一个方面,提供了一些基于数据驱动的组件式行星探测数据的存档方法,其步骤如下:数据存档请求方首先将需要存档的数据以及存档数据清单拷贝到共享存储区,然后通过数据存档接口模块向本存档系统的数据收发服务模块发送数据存档请求;数据收发服务模块接收到数据存档请求报文后,首先将该报文存入消息队列模块并持久化,保证接收到的数据存档请求报文至少被处理一次,再从消息队列模块中依次读取数据存档请求报文;数据收发服务模块通过负载均衡服务模块获取当前数据存档服务模块中负载相对较小的存档服务实例,将从消息队列模块中读取的数据存档请求报文转发给所述负载较小的存档服务实例,由该存档服务实例执行本存档任务;数据存档服务模块接收到数据存档请求报文后,解析报文,完成数据归档后生成数据存档回复清单,记录每个数据的存档完成情况,并将数据存档回复清单拷贝至共享存储区,生成数据存档回复报文发送给数据收发服务模块;数据收发服务模块接收到数据存档回复报文后,发送给数据存档请求方,完成本次数据存档。在一些实施例中,数据存档服务模块解析报文包括:数据存档服务模块从报文中获取存档数据清单在共享存储区中本文档来自技高网
...

【技术保护点】
1.一种基于数据驱动的组件式行星探测数据存档系统,包括:数据存档接口模块,用于规范数据存档请求方与本数据存档系统之间的数据存档交互约束的接口协议;数据收发服务模块,用于完成系统与数据存档请求方间的数据收发;消息队列模块,用于存储数据收发服务模块接收到的数据存档请求;并对数据存档请求进行排队,保证数据收发服务接收到的数据存档请求的安全性,保证每个请求至少被处理一次;数据存档服务集群模块,包括多个数据存档服务实例,用于执行数据存档的业务服务;负载均衡服务模块,通过负载平衡调度算法实时计算出当前数据存档服务集群中负载状态最优的数据存档服务实例,并将其传递给数据收发服务,使得整个系统的归档任务在多个数据存档服务之间进行均衡的分配;集群管理服务模块,用于监视数据存档服务集群中各个服务进程的运行状态。

【技术特征摘要】
1.一种基于数据驱动的组件式行星探测数据存档系统,包括:数据存档接口模块,用于规范数据存档请求方与本数据存档系统之间的数据存档交互约束的接口协议;数据收发服务模块,用于完成系统与数据存档请求方间的数据收发;消息队列模块,用于存储数据收发服务模块接收到的数据存档请求;并对数据存档请求进行排队,保证数据收发服务接收到的数据存档请求的安全性,保证每个请求至少被处理一次;数据存档服务集群模块,包括多个数据存档服务实例,用于执行数据存档的业务服务;负载均衡服务模块,通过负载平衡调度算法实时计算出当前数据存档服务集群中负载状态最优的数据存档服务实例,并将其传递给数据收发服务,使得整个系统的归档任务在多个数据存档服务之间进行均衡的分配;集群管理服务模块,用于监视数据存档服务集群中各个服务进程的运行状态。2.根据权利要求1所述的组件式行星探测数据存档系统,其中,数据存档服务集群模块是基于OSGI(OpenServiceGatewayInitiative)规范实现的动态组件化服务,由1~N个数据存档服务实例组成;每个数据存档服务实例提供相同的数据存档能力,并且互相独立,各个数据存档服务实例根据具体的存档需求,通过配置XML文件的方式选择需要加载启动的组件,从而实现存档服务功能级别的自由缩放。3.根据权利要求1所述的组件式行星探测数据存档系统,其中,数据存档服务模块由一系列的数据存档组件和组件加载框架组成,每个组件提供一类行星探测数据的存档能力,组件加载框架提供组件的动态加载能力,当数据存档服务接收到数据存档任务,根据本次存档的数据类别,组件加载框架动态加载对应的组件,由该组件执行具体的存档,存档完成之后,生成本次存档任务的数据存档回复清单,详细描述每个数据的存档情况,并向数据收发服务发送数据存档回复报文,由数据收发服务将该存档回复报文转发给数据存档请求方,数据存档服务模块物理上启动多个实例,以集群的方式提供数据存档服务。4.根据权利要求1所述的组件式行星探测数据存档系统,数据存档接口模块包括数据存档报文和数据存档清单,其中所述的数据存档报文分为传输标签、应用标签以及应用数据段三个部分,其中传输标签用于描述整个报文的长度、报文来源、报文去向、报文生成时间;应用标签用于描述探测任务阶段、报文类型以及应用数据段的长度;应用数据段用于描述数据存档请求清单或者数据存档回复清单的全路径;数据存档清单包括数据存档请求清单和数据存档回复清单,所述数据存档请求清单和数据存档回复清单均以XML格式的文件进行表示,其中数据存档请求清单用于描述需要存档的数据文件信息,主要包括存档任务的基本信息、存档文件数和存档文件列表;数据存档回复清单用于描述每次数据存档任务的执行结果,包括存档回复的基本信息、存档文件数、每个数据文件的存档状态和存档失败原因。5.根据权利要求1所述的组件式行星探测数据存档系统,其中,所述消息队列模块是基于生产者-消费者模式的先进先出阻塞式队列;数据收发服务模块包括:监听线程,用于接收数据存档请求方的连接请求,建立本系统与数据存档请求方的消息通道;消息接收线程,用于接收数据存档请求方发送的数据存档请求报文,其作为消息队列的生产方将接收到的数据存档请求报文存入消息队列模块;消息队列扫描线程,作为消息队列模块的消费者从消息队列模块中获取数据存档请求,通过负载均衡服务从数据存档服务集群中获取到执行本次任务的数据存档服务实例,然后将该数据存档请求转发给该数据...

【专利技术属性】
技术研发人员:左维齐志博张舟斌曾兴国陈翔宇熊亚颖刘宇轩高兴烨李春来
申请(专利权)人:中国科学院国家天文台中国电子科技集团公司第十五研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1