一种分布式组态化海量数据归档系统及实现方法

文档序号:6383243阅读:196来源:国知局
专利名称:一种分布式组态化海量数据归档系统及实现方法
技术领域
本发明涉及数据归档领域,具体来说是一种分布式、组态化的用于海量数据归档业务系统及实现方法。
背景技术
有效、完整的归档海量数据是一项十分重要的工作。在当今社会,随着信息技术和通信技术的迅速发展,整个世界的数据容量呈现出爆炸式的增长。在卫星应用领域,尤其会产生诸如遥感数据、气象数据等TB级甚至EB级的海量数据。研究使用优化的方法高效管理这些数据是一个亟待解决的问题。数据归档系统的主要目的是存储和备份数据,并且在存储和备份的过程中,遵循一定的策略,以便于归档后数据的提取和检索。如何针对不同领域海量数据的特性进行快速归档存储;如何根据业务需求对归档流程和归档参数进行个性化的定制,提高软件的可复用性,是一个十分重要的研究课题。另外,数据规模的不断增长对传统的数据存储技术提出了新的挑战。无论从容量角度还是性能角度看,传统的文件系统都不再适用于存储处理海量数据,这也催生了诸如GFS、HDFS等分布式文件系统的发展。研究一种分布式的海量数据存储是非常必要的。数据归档作为新兴研究热点,具有广阔的应用前景。目前已公开发表的关于海量数据归档的方法,主要集中在对归档技术、数据库归档方案等领域的研究和讨论。但是这些方法针对的往往是某特定类型的数据,使用场景比较局限,可扩展性不高。

发明内容
本发明的技术解决问题是克服现有技术的不足,提供一种分布式组态化海量数据归档系统及归档方法,提高了归档速度;并且各个功能模块的接口已确定好,只要按照接口进行功能扩展,不但能适应各种数据类型的归档操作,而且为这些功能模块实现最大程度的复用。本发明技术解决方案一种分布式组态化的海量数据归档系统,包括多归档实例管理模块创建数据归档服务实例与服务状态,数据归档服务实例与归档流程之间的映射关系数据结构,定期接收归档请求分发模块中的各数据归档服务实例上报的心跳信息及各数据归档服务实例正在处理的归档流程信息,并根据接收到的信息更新映射关系表;创建并更新数据归档服务实例状态信息,提供接口供归档请求分发模块查询;归档请求接收模块用户归档请求传入参数进行解析,封装成归档系统内部模块交互所使用的归档请求数据结构,并将归档请求插入请求缓冲队列中,依靠缓冲队列机制,可同时接收处理大量并发归档请求,对队列中的归档请求进行优化维护,并提供获取队列中归档请求及队列状态信息的队列管理器,待归档请求分发模块使用;归档请求分发模块初始化阶段,加载归档请求静态下发映射表,并加载归档请求过滤策略;用户可在映射表中配置归档请求类型与数据归档服务实例的对应关系,这种对应关系是多对多的,因此可能出现某种归档请求类型对应多个数据归档服务实例的情况;调用归档请求接收模块的队列管理器,获取优先级最高的归档请求,将调用多归档实例管理模块中的数据归档服务实例状态信息查询接口,获取数据归档服务实例物理状态,根据数据归档服务实例物理状态进行负载均衡,分发归档请求到负载相对较轻数据归档服务实例的归档请求处理模块;归档流程信息持久化模块对归档请求接收模块中维护的请求队列进行定期持久化操作,并对各模块之间的交互活动及产生的关键数据进行持久化,一旦出现归档系统运行环境异常导致系统崩溃,可通过持久化的数据恢复到最近一次备份点,形成归档数据灾难备份恢复机制;配置文件解析模块数据归档服务实例可按需定制、修订从归档模型配置文件中接收到的数据归档流程和数据存储载体及系统类型,并将归档系统中各模块采用组态化插件形式构建,提供模块的按需定制能力,将定制的流程及模块所需参数信息进行解析,并封装成各模块可调用的对象结构;归档请求处理模块数据归档服务实例接收到请求分发模块下发的归档请求后,将归档请求解析获取扫描子目录信息,发送给扫描模块;扫描模块获取配置文件解析模块生成的扫描模块配置信息对象,根据配置信息指定的根目录,和归档请求处理模块解析的子目录构成最终的扫描目录,并依照配置信息指定的扫描文件类型和个数,从此目录下扫描获取待归档文件和元数据信息文件,待元数据解析模块和归档模块使用。元数据解析模块获取配置文件解析模块生成的元数据解析配置信息对象,根据配置信息指定的元数据名和所在元数据信息文件中的解析参数,解析出对应的元数据值,生成元数据信息集合,发送给目录解析模块;目录解析模块 获取配置文件解析模块生成的目录解析配置信息对象,根据配置信息指定的各级归档目录组成所需元数据信息及连接符,生成归档目录,发送给归档模块;归档模块获取配置文件解析模块生成的归档模块配置信息对象,根据配置信息指定的归档文件系统,将扫描模块提供的归档文件上传到目录解析模块生成的归档目录中;并将归档信息发送给元数据持久化模块;元数据持久化模块获取配置文件解析模块生成的元数据持久化配置信息对象,根据配置信息指定的所需持久化信息,将元数据信息、归档目录、归档文件等元数据信息存入归档元数据库中;归档数据提取模块外部系统通过检索归档数据提取模块中归档元数据库中的元数据信息获取归档文件信息,并将获取归档数据发送到指定的远程或本地应用系统。事务处理模块为保证数据归档步骤中的一些原子步骤,既有且只有这些原子步骤同时成功才表示这些步骤都成功,其中有一个原子步骤失败,这些步骤都失败(比如元数据归档与文件数据归档可视为原子步骤,只有元数据和文件数据同时归档成功才能表示归档步骤的成功完成),当一些原子步骤失败时,所有的原子步骤必须做回滚操作,以消除这些原子步骤对外部系统的影响。
所述的多归档实例管理模块实现过程如下(1)初始化多归档实例管理模块,开启远程调用服务器端监听端口 ;(2)创建数据归档服务实例与服务状态,数据归档服务实例与归档流程之间的映射关系数据结构;(3)等待数据归档服务实例上报心跳信息与归档流程处理信息;(4)接收数据归档服务实例心跳信息与归档流程信息,如数据归档服务实例是第一次上报信息,先进行注册,然后更新映射关系表;(5)如数据归档服务实例长时间未能上报消息,将此数据归档服务实例从活跃态改为不活跃态,并记录日志,同时更新内存映射表;(6)如果已注册的不活跃数据归档服务实例重新上报信息,先将状态改为活跃,再更新映射关系表;(7)提供查询数据归档服务实例状态与数据归档服务实例所处理归档流程接口,供其他模块调用;所述的归档请求分发模块实现过程如下(1)加载归档请求静态下发映射表,提供静态映射表下发归档请求过滤策略;(2)加载负载均衡下发归档请求过滤策略;(3)加载其他用户定制下发归档请求过滤策略;(4)从归档请求缓冲队列中获取优先级最高的归档请求;(5)通过静态映射表进行下发请求过滤;(6)如获取唯一对应数据归档服务实例,下发归档请求,如获取多个数据归档服务实例,再根据用户配置的下发请求过滤策略进行过滤;(7)如果仍存在多个数据归档服务实例,从多归档实例管理模块获取各数据归档服务实例物理状态;(8)根据物理状态进行负载均衡下发请求过滤,获取唯一数据归档服务实例;(9)下发归档请求到指定数据归档服务实例。本发明与现有技术相比具有如下优点(1)采用分布式海量数据存储形式,可以动态的横向扩展存储容量,存储集群的大小可以依据存储数据的需求不断扩展,完全可以适应TB级甚至EB级的海量数据。(2)归档流程可通过配置文件进行热插拔。每个流程模块的操作参数可以通过配置文件解析获取或手动输入,流程模块之间没有依赖关系,从而达到松耦合的目的。如文件扫描模块、元数据文件验证模块、元数据验证模块,均可通过配置文件设定是否启动,这样,各个归档功能模块都可以通过配置文件按需定制,由于这些模块可根据需要进行配置,用户可以根据当前的实际情况简化部分归档步骤,个性化定制归档流程和配置归档参数,以提高归档速度。(3)各个功能模块的接口已确定好,只要按照接口进行功能扩展,不但能适应各种数据类型的归档操作,而且为这些功能模块实现最大程度的复用。(4)提供分布式的归档服务,每个归档实例针对一种或几种归档数据提供归档服务,不同的归档实例由归档实例管理器统一管理。归档实例定期向实例管理器上报心跳和状态信息。归档请求由请求派发器根据一定策略分发至归档实例中处理,以保证归档实例负载均衡;“请求一归档实例”的映射关系由实例管理器维护。当负载过高时,进入安全模式,不再接受归档请求。(5)归档参数可通过配置文件进行个性化定制,归档参数包括归档文件路径、文件类型、文件数目、归档目录、目标归档分布式文件系统、需持久化的元数据信息和数据库信息等。执行每个归档流程之前,解析配置文件获取该流程所需的输入参数,根据参数配置完成整个归档任务。本发明与现有技术相比的优点在于本发明采用分布式海量数据存储形式,可以动态的横向扩展存储容量,存储集群的大小可以依据存储数据的需求不断扩展,完全可以适应TB级甚至EB级的海量数据;本发明采用组态化的构建形式,各个归档功能模块都可以通过配置文件按需定制,由于这些模块可根据需要进行配置,用户可以根据当前的实际情况简化部分归档步骤,个性化定制归档流程和配置归档参数,以提高归档速度;并且各个功能模块的接口已确定好,只要按照接口进行功能扩展,不但能适应各种数据类型的归档操作,而且为这些功能模块实现最大程度的复用。


图1为本发明系统组成框图;图2为本发明实现方法流程图;图3本发明归档数据提取流程示意图;图4本发明多归档实例管理模块实现过程示意图;图5本发明归档请求分发模块实现过程示意图。
具体实施例方式如图1所示,本发明系统包括多归档实例管理模块、归档请求接收模块、归档请求分发模块、归档流程信息持久化模块、归档流程信息持久化模块、配置文件解析模块、归档请求处理模块、扫描模块、元数据解析模块、目录解析模块、归档数据提取模块、事务处理模块。1.多归档实例管理模块创建数据归档服务实例与服务状态,数据归档服务实例与归档流程之间的映射关系数据结构,定期接收归档请求分发模块中的各数据归档服务实例上报的心跳信息及各数据归档服务实例正在处理的归档流程信息,并根据接收到的信息更新映射关系表;创建并更新数据归档服务实例状态信息,提供接口供归档请求分发模块查询;如图4所示,多归档实例管理模块实现过程如下(I)初始化多归档实例管理模块,开启远程调用服务器端监听端口 ;(2)创建数据归档服务实例与服务状态,数据归档服务实例与归档流程之间的映射关系数据结构;(3)等待数据归档服务实例上报心跳信息与归档流程处理信息;(4)接收数据归档服务实例心跳信息与归档流程信息,如数据归档服务实例是第一次上报信息,先进行注册,然后更新映射关系表;(5)如数据归档服务实例长时间未能上报消息,将此数据归档服务实例从活跃态改为不活跃态,并记录日志,同时更新内存映射表;(6)如果已注册的不活跃数据归档服务实例重新上报信息,先将状态改为活跃,再更新映射关系表;(7)提供查询数据归档服务实例状态与数据归档服务实例所处理归档流程接口,供其他模块调用;2.归档请求接收模块用户归档请求传入参数进行解析,封装成归档系统内部模块交互所使用的归档请求数据结构,并将归档请求插入请求缓冲队列中,依靠缓冲队列机制,可同时接收处理大量并发归档请求,对队列中的归档请求进行优化维护,并提供获取队列中归档请求及队列状态信息的队列管理器,待归档请求分发模块使用3.归档请求分发模块初始化阶段,加载归档请求静态下发映射表,并加载归档请求过滤策略;用户可在映射表中配置归档请求类型与数据归档服务实例的对应关系,这种对应关系是多对多的,因此可能出现某种归档请求类型对应多个数据归档服务实例的情况;调用归档请求接收模块的队列管理器,获取优先级最高的归档请求,将调用多归档实例管理模块中的数据归档服务实例状态信息查询接口,获取数据归档服务实例物理状态,根据数据归档服务实例物理状态进行负载均衡,分发归档请求到负载相对较轻数据归档服务实例的归档请求处理模块;如图5所示,归档请求分发模块实现过程如下(I)加载归档请求静态下发映射表,提供静态映射表下发归档请求过滤策略;(2)加载负载均衡下发归档请求过滤策略;(3)加载其他用户定制下发归档请求过滤策略;(4)从归档请求缓冲队列中获取优先级最高的归档请求;(5)通过静态映射表进行下发请求过滤;(6)如获取唯一对应归档服务实例,下发归档请求,如获取多个归档服务实例,再根据用户配置的下发请求过滤策略进行过滤;(7)如果仍存在多个归档服务实例,从多归档实例管理模块获取各归档服务实例物理状态;(8)根据物理状态进行负载均衡下发请求过滤,获取唯一归档服务实例;(9)下发归档请求到指定归档服务实例。4.归档流程信息持久化模块对归档请求接收模块中维护的请求队列进行定期持久化操作,并对各模块之间的交互活动及产生的关键数据进行持久化,一旦出现归档系统运行环境异常导致系统崩溃,可通过持久化的数据恢复到最近一次备份点,形成归档数据灾难备份恢复机制; 5.配置文件解析模块数据归档服务实例可按需定制、修订从归档模型配置文件中接收到的数据归档流程和数据存储载体及系统类型,并将归档系统中各模块采用组态化插件形式构建,提供模块的按需定制能力,将定制的流程及模块所需参数信息进行解析,并封装成各模块可调用的对象结构;
6.归档请求处理模块数据归档服务实例接收到请求分发模块下发的归档请求后,将归档请求解析获取扫描子目录信息,发送给扫描模块;7 扫描模块获取配置文件解析模块生成的扫描模块配置信息对象,根据配置信息指定的根目录,和归档请求处理模块解析的子目录构成最终的扫描目录,并依照配置信息指定的扫描文件类型和个数,从此目录下扫描获取待归档文件和元数据信息文件,待元数据解析模块和归档模块使用。8.元数据解析模块获取配置文件解析模块生成的元数据解析配置信息对象,根据配置信息指定的元数据名和所在元数据信息文件中的解析参数,解析出对应的元数据值,生成元数据信息集合,发送给目录解析模块;9.目录解析模块获取配置文件解析模块生成的目录解析配置信息对象,根据配置信息指定的各级归档目录组成所需元数据信息及连接符,生成归档目录,发送给归档模块;10.归档模块获取配置文件解析模块生成的归档模块配置信息对象,根据配置信息指定的归档文件系统,将扫描模块提供的归档文件上传到目录解析模块生成的归档目录中;并将归档信息发送给元数据持久化模块;

11.元数据持久化模块获取配置文件解析模块生成的元数据持久化配置信息对象,根据配置信息指定的所需持久化信息,将元数据信息、归档目录、归档文件等元数据信息存入归档元数据库中;12.归档数据提取模块外部系统输入归档数据查询条件,提交查询请求给归档数据提取模块,归档数据提取模块通过检索元数据信息数据库,获取归档文件元数据信息,如果外部系统需要获取归档数据,通过调用归档数据提取模块的提取方法指定获取目录,可以是远程或本地应用系统,外部系统通过归档数据提取模块提供的服务,获取归档数据到指定目录。13.事务处理模块为保证数据归档步骤中归档模块与元数据持久化模块执行步骤的原子性,既有且只有这两个模块执行步骤同时成功才表示这两步骤都成功,其中有一个模块执行步骤失败,这两模块执行都失败,当这两个模块执行失败时,将对这两模块执行的步骤做回滚操作,以消除这两模块对外部系统的影响。如图2所示,本发明实现数据归档方法步骤如下(I)外部系统通过远程或本地调用归档请求接收模块中的方法,触发归档请求缓存分发流程,用户以JSON字符串的形式,封装归档请求参数,并传递给归档系统,归档系统接收并解析JSON字符串,同时生成在归档系统内部标示归档请求唯一性的UUID标示符,并返回给外部系统归档请求用户唯一标示符,最后将这些信息封装成用户归档请求对象,并保存到归档请求接收模块中的归档请求队列中;(2)归档请求接收模块的归档请求队列会根据请求优先级进行自动排序,如果缓冲队列中请求数量超过用户设定的阈值,归档系统将进入安全模式,此时归档系统不能接收用户请求,归档系统会触发分发调用模块,待分发模块将缓冲队列中的请求分发到阈值以下时,会通知归档系统退出安全模式,正常接收归档请求,缓冲队列采用带有优先级排序的先进先出队列,可直接调用归档请求接收模块中的方法获取队列中最前面的请求;(3)归档请求分发模块周期性的检测归档请求队列,如果归档请求队列为空,跳过分发活动,如果获取到归档请求,根据用户配置,加载下发策略,同时,通过多归档实例管理模块获取各个数据归档服务实例的状态信息,通过下发策略的过滤,找出下发对应的数据归档服务实例; (4)如果多归档实例管理模块所维护的对应的数据归档服务实例为空,将归档请求插入请求垃圾队列,当请求垃圾队列的容量到达用户所配置的阈值时,触发归档流程信息持久化模块的持久化操作,将垃圾队列中的归档请求持久化到数据库中,如果多归档实例管理模块所维护的对应的数据归档服务实例不为空,且有多个,通过负载均衡策略挑负载较轻的一个数据归档服务实例,下发归档请求,如果对应的数据归档服务实例不为空,且只有一个,那么直接下发归档请求到归档请求处理模块;(5)归档请求处理模块接收下发的归档请求,解析参数信息,供扫描模块使用;(6)扫描模块根据扫描配置信息,扫描出待归档数据文件和元数据信息文件,并将元数据信息文件发送给元数据解析模块,将待归档数据文件发送给归档模块;(7)元数据解析模块通过元数据信息文件和配置信息解析出元数据信息集合,并将元数据信息集合发送给目录解析模块和元数据持久化模块;(8)目录解析模块依据元数据信息集合和归档目录配置信息生成归档目录,并将归档目录信息发送给归档模块;(9)归档模块已知归档目录和归档文件系统配置信息,上传待归档数据文件;(10)最后元数据持久化模块将元数据信息集合、待归档数据文件名、归档目录等信息写入数据库中,完成整个归档步骤。如图3所示,本发明实现归档数据提取方法步骤如下(I)外部系统输入归档数据查询条件,提交查询请求给归档数据提取模块;(2)归档数据提取模块通过检索元数据信息数据库,获取归档文件元数据信息;(3)如果外部系统需要获取归档数据,通过调用归档数据提取模块的提取方法指定获取目录(可以是远程或本地应用系统);(4)外部系统通过归档数据提取模块提供的服务,获取归档数据到指定目录。实施例本实施例的实验条件为(I)输入为包含归档数据类型、归档数据及元数据存储路径的归档请求;(2) HDFS分布式文件系统和MySQL数据库;(3)信息完备的配置文件,配置文件需指定访问条件(2)中HDFS和MySQL所需的信息及其他归档参数。结合上面所述的试验条件,对本发明的技术方案进行详细说明1.自动归档(I)编辑归档实例对应的配置文件,每个配置模块指定了某一类型归档数据的归档参数。在某应用场景中,需要对HY2类型的数据进行归档,其中归档文件类型为TIF和JPEG图像文件,数量为100个。元数据文件为XML类型,配置需要解析的元数据信息(a,b)和解析规则。解析后需要对元数据进行验证,其中,需满足元数据a非空,元数据b长度不大于10。并且配置目录生成规则,归档后,文件存储在指定的HDFS文件系统中,元数据存储在MySQL数据库中。所有这些归档参数应在配置文件中以指定的格式编写;(2)启动归档实例,并将该归档实例注册到归档实例管理器中;(3)若当前为非安全模式,可以接受归档请求。新产生的请求被添加到等待队列中等待派发。请求派发器扫描等待队列,按一定的策略将请求派发到某归档实例中处理。对于不能派发的请求,添加到垃圾队列中。若当前为安全模式,不接受用户请求;(4)归档实例收到归档请求后,解析归档请求,获取归档数据类型和归档数据及元数据存储子路径信息。加载配置文件,解析“HY2”类型数据对应的各模块配置信息;(5)通过解析“HY2”数据类型对应的扫描模块配置信息,获取待归档文件类型和数目。从“etc/data”目·录下扫描至少100个TIF文件和JPEG文件,作为待归档文件。同时,在“etc/data”目录下扫描类型为“XML”的元数据文件;(6)通过解析“HY2”数据类型对应的元数据解析模块配置信息,获取指定的待解析元数据和解析策略,从元数据文件中解析出所有待解析元数据的值;(7)将解析到的元数据进行验证。对元数据a进行非空验证,验证元数据a的是否是空值,若为空值,则元数据a不合法。对元数据b进行长度验证,若元数据b长度大于10,则元数据b不合法;(8)解析“HY2”数据类型对应的目录生成模块的生成规则,结合验证后的正确的元数据值,得到归档目录。(9)解析“HY2”数据类型对应的归档模块配置信息,获取HDFS连接参数、存储数据块大小、备份因子等参数,先在HDFS上创建上一流程生成的归档目录,再将之前扫描到的待归档文件存储至HDFS的归档目录下。(10)解析“HY2”数据类型对应的元数据持久化模块配置信息,获取MySQL数据库连接参数和需持久化的元数据,将元数据保存至MySQL数据库中。2.手动归档当采用手动归档方案时,归档文件由用户输入,其他步骤参考自动归档技术方案。3。归档数据提取(I)某外部程序需要查询归档类型为“HY2”的归档数据,输入查询条件“HY2”,提交查询请求;(2)在元数据信息数据库中,将归档类型为“HY2”的所有归档数据项列出;(3)外部程序输入“HY2”类型归档数据下载目录“/home/temp/” ;(4)归档系统数据源模块将“HY2”类型数据推送到“/home/temp/”目录下。本发明未详细阐述的部分属于本领域公知技术。
权利要求
1.一种分布式组态化的海量数据归档系统,其特征在于包括 多归档实例管理模块创建数据归档服务实例与服务状态,数据归档服务实例与归档流程之间的映射关系数据结构,定期接收归档请求分发模块中的各数据归档服务实例上报的心跳信息及各数据归档服务实例正在处理的归档流程信息,并根据接收到的信息更新映射关系表;创建并更新数据归档服务实例状态信息,提供接口供归档请求分发模块查询;归档请求接收模块用户归档请求传入参数进行解析,封装成归档系统内部模块交互所使用的归档请求数据结构,并将归档请求插入请求缓冲队列中,依靠缓冲队列机制,可同时接收处理大量并发归档请求,对队列中的归档请求进行优化维护,并提供获取队列中归档请求及队列状态信息的队列管理器,待归档请求分发模块使用; 归档请求分发模块初始化阶段,加载归档请求静态下发映射表,并加载归档请求过滤策略;用户可在映射表中配置归档请求类型与数据归档服务实例的对应关系,这种对应关系是多对多的,因此可能出现某种归档请求类型对应多个数据归档服务实例的情况;调用归档请求接收模块的队列管理器,获取优先级最高的归档请求,将调用多归档实例管理模块中的数据归档服务实例状态信息查询接口,获取数据归档服务实例物理状态,根据数据归档服务实例物理状态进行负载均衡,分发归档请求到负载相对较轻数据归档服务实例的归档请求处理模块; 归档流程信息持久化模块对归档请求接收模块中维护的请求队列进行定期持久化操作,并对各模块之间的交互活动及产生的关键数据进行持久化,一旦出现归档系统运行环境异常导致系统崩溃,通过持久化的数据恢复到最近一次备份点,形成归档数据灾难备份恢复机制; 配置文件解析模块数据归档服务实例按需定制、修订从归档模型配置文件中接收到的数据归档流程和数据存储载体及系统类型,并将归档系统中各模块采用组态化插件形式构建,提供模块的按需定制能力,将定制的流程及模块所需参数信息进行解析,并封装成各模块能够调用的对象结构; 归档请求处理模块数据归档服务实例接收到请求分发模块下发的归档请求后,将归档请求解析获取扫描子目录信息,发送给扫描模块; 扫描模块获取配置文件解析模块生成的扫描模块配置信息对象,根据配置信息指定的根目录,和归档请求处理模块解析的子目录构成最终的扫描目录,并依照配置信息指定的扫描文件类型和个数,从此目录下扫描获取待归档文件和元数据信息文件,待元数据解析模块和归档模块使用; 元数据解析模块获取配置文件解析模块生成的元数据解析配置信息对象,根据配置信息指定的元数据名和所在元数据信息文件中的解析参数,解析出对应的元数据值,生成元数据信息集合,发送给目录解析模块; 目录解析模块获取配置文件解析模块生成的目录解析配置信息对象,根据配置信息指定的各级归档目录组成所需元数据信息及连接符,生成归档目录,发送给归档模块; 归档模块获取配置文件解析模块生成的归档模块配置信息对象,根据配置信息指定的归档文件系统,将扫描模块提供的归档文件上传到目录解析模块生成的归档目录中;并将归档信息发送给元数据持久化模块; 元数据持久化模块获取配置文件解析模块生成的元数据持久化配置信息对象,根据配置信息指定的所需持久化信息,将元数据信息、归档目录、归档文件等元数据信息存入归档元数据库中; 归档数据提取模块外部系统输入归档数据查询条件,提交查询请求给归档数据提取模块,归档数据提取模块通过检索元数据信息数据库,获取归档文件元数据信息,如果外部系统需要获取归档数据,通过调用归档数据提取模块的提取方法指定获取目录,可以是远程或本地应用系统,外部系统通过归档数据提取模块提供的服务,获取归档数据到指定目录; 事务处理模块为保证数据归档步骤中归档模块与元数据持久化模块执行步骤的原子性,既有且只有这两个模块执行步骤同时成功才表示这两步骤都成功,其中有一个模块执行步骤失败,这两模块执行都失,当这两个模块执行失败时,将对这两模块执行的步骤做回滚操作,以消除这两模块对外部系统的影响; 以上提到的模块采用组态化插件形式构建,并提供模块的按需定制能力整个归档系统可部署在主从模式的分布式集群中,运行在主节点,从属主节点和从节点上的各模块是基于组态化插件容器的,每个模块都可以单独开启和关闭,用户可以根据需求启动相应的模块,用户可根据发布的接口,扩展各模块的实现方式,并且,根据用户需求可添加新的自定义的处理模块,配置符合自身要求的归档服务系统。
2.根据权利要求1所述的一种分布式组态化的海量数据归档系统,其特征在于所述多归档实例管理模块实现过程如下 (1)初始化多归档实例管理模块,开启远程调用服务器端监听端口; (2)创建数据归档服务实例与服务状态,数据归档服务实例与归档流程之间的映射关系数据结构; (3)等待数据归档服务实例上报心跳信息与归档流程处理信息; (4)接收数据归档服务实例心跳信息与归档流程信息,如数据归档服务实例是第一次上报信息,先进行注册,然后更新映射关系表; (5)如数据归档服务实例长时间未能上报消息,将此数据归档服务实例从活跃态改为不活跃态,并记录日志,同时更新内存映射表; (6)如果已注册的不活跃数据归档服务实例重新上报信息,先将状态改为活跃,再更新映射关系表; (7)提供查询数据归档服务实例状态与数据归档服务实例所处理归档流程接口,供其他模块调用。
3.根据权利要求1所述的一种分布式组态化的海量数据归档系统,其特征在于所述的归档请求分发模块实现过程如下 (1)加载归档请求静态下发映射表,提供静态映射表下发归档请求过滤策略; (2)加载负载均衡下发归档请求过滤策略; (3)加载其他用户定制下发归档请求过滤策略; (4)从归档请求缓冲队列中获取优先级最高的归档请求; (5)通过静态映射表进行下发请求过滤; (6)如获取唯一对应数据归档服务实例,下发归档请求,如获取多个数据归档服务实例,再根据用户配置的下发请求过滤策略进行过滤;(7)如果仍存在多个数据归档服务实例,从多归档实例管理模块获取各数据归档服务实例物理状态; (8)根据物理状态进行负载均衡下发请求过滤,获取唯一数据归档服务实例; (9)下发归档请求到指定数据归档服务实例。
4.一种分布式组态化的海量数据归档实现方法,其特征在于实现步骤如下 第一步,用户数据归档处理步骤如下 (1)外部系统通过远程或本地调用归档请求接收模块中的方法,触发归档请求缓存分发流程,用户以JSON字符串的形式,封装归档请求参数,并传递给归档系统,归档系统接收并解析JSON字符串,同时生成在归档系统内部标示归档请求唯一性的UUID标示符,并返回给外部系统归档请求用户唯一标示符,最后将这些信息封装成用户归档请求对象,并保存到归档请求接收模块中的归档请求队列中; (2)归档请求接收模块的归档请求队列会根据请求优先级进行自动排序,如果缓冲队列中请求数量超过用户设定的阈值,归档系统将进入安全模式,此时归档系统不能接收用户请求,归档系统会触发分发调用模块,待分发模块将缓冲队列中的请求分发到阈值以下时,会通知归档系统退出安全模式,正常接收归档请求,缓冲队列采用带有优先级排序的先进先出队列,可直接调用归档请求接收模块中的方法获取队列中最前面的请求; (3)归档请求分发模块周期性的检测归档请求队列,如果归档请求队列为空,跳过分发活动,如果获取到归档请求,根据用户配置,加载下发策略,同时,通过多归档实例管理模块获取各个数据归档服务实例的状态信息,通过下发策略的过滤,找出下发对应的数据归档服务实例; (4)如果多归档实例管理模块所维护的对应的数据归档服务实例为空,将归档请求插入请求垃圾队列,当请求垃圾队列的容量到达用户所配置的阈值时,触发归档流程信息持久化模块的持久化操作,将垃圾队列中的归档请求持久化到数据库中,如果多归档实例管理模块所维护的对应的数据归档服务实例不为空,且有多个,通过负载均衡策略挑负载较轻的一个数据归档服务实例,下发归档请求,如果对应的数据归档服务实例不为空,且只有一个,那么直接下发归档请求到归档请求处理模块; (5)归档请求处理模块接收下发的归档请求,解析参数信息,供扫描模块使用; (6)扫描模块根据扫描配置信息,扫描出待归档数据文件和元数据信息文件,并将元数据信息文件发送给元数据解析模块,将待归档数据文件发送给归档模块; (7)元数据解析模块通过元数据信息文件和配置信息解析出元数据信息集合,并将元数据信息集合发送给目录解析模块和元数据持久化模块; (8)目录解析模块依据元数据信息集合和归档目录配置信息生成归档目录,并将归档目录信息发送给归档模块; (9)归档模块已知归档目录和归档文件系统配置信息,上传待归档数据文件; (10)最后元数据持久化模块将元数据信息集合、待归档数据文件名、归档目录等信息写入数据库中,完成整个归档步骤; 第二步,海量数据归档实现方法按需定制、修订数据归档步骤 对于从属节点上进行的归档步骤可根据用户需求定制,用户配置流程文件,系统会根据流程文件调用相应模块完成归档任务,并且用户可开发特定的处理模块,并通过配置文件加到数据 归档步骤中去。
全文摘要
一种分布式组态化海量数据归档系统及实现方法,包括多归档实例管理模块、归档请求接收模块、归档请求分发模块、归档流程信息持久化模块、配置文件解析模块、归档请求处理模块、描模块、元数据解析模块、目录解析模块、归档模块、归档数据提取模块、事务处理模块等。本发明根据需求通过配置文件实现热插拔,这有利于定制个性化的归档服务,从而达到软件高可复用的目的。
文档编号G06F17/30GK103036956SQ20121051633
公开日2013年4月10日 申请日期2012年11月30日 优先权日2012年11月30日
发明者王海涛, 王守信, 李明泉, 陈佼, 王智尧, 刘华 申请人:航天恒星科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1