配置信息采集比对方法和装置与流程

文档序号:25543063发布日期:2021-06-18 20:39阅读:100来源:国知局
配置信息采集比对方法和装置与流程

本发明涉及人工智能技术领域,尤其涉及一种配置信息采集比对方法和装置。



背景技术:

现有的配置比对往往将采集脚本的编写与比对分开进行,采集脚本不是结构化编写,脚本的输出格式与展示方式耦合小,比对内容的展示方式独立于脚本的输出格式,两套独立的逻辑,维护难度较大。



技术实现要素:

针对现有技术中的问题,本发明提供一种配置信息采集比对方法和装置、电子设备以及计算机可读存储介质,能够至少部分地解决现有技术中存在的问题。

为了实现上述目的,本发明采用如下技术方案:

第一方面,提供一种配置信息采集比对方法,包括:

获取配置采集结果;

将所述配置采集结果转换为预设脚本输出格式进行链式存储;

利用java解析链式存储的配置采集结果;

将所述配置采集结果转化为有序json格式存入数据库。

进一步地,配置信息采集比对方法还包括:

获取所述数据库中的配置采集结果;

将所述配置采集结果以json的形式传递到页面端进行动态列表形式展示。

进一步地,配置信息采集比对方法还包括:

根据前端发起的请求调用多个异步的ejb进行多线程并发处理配置信息采集比对任务。

进一步地,以系统、应用、配置项分类、配置项信息四层关系规范脚本输出格式。

第二方面,提供一种配置信息采集比对装置,包括:

采集结果获取模块,获取配置采集结果;

链式存储模块,将所述配置采集结果转换为预设脚本输出格式进行链式存储;

解析模块,利用java解析链式存储的配置采集结果;

json格式转化模块,将所述配置采集结果转化为有序json格式存入数据库。

进一步地,配置信息采集比对装置还包括:

数据读取模块,获取所述数据库中的配置采集结果;

动态展示模块,将所述配置采集结果以json的形式传递到页面端进行动态列表形式展示。

进一步地,配置信息采集比对装置还包括:

多线程调用模块,根据前端发起的请求调用多个异步的ejb进行多线程并发处理配置信息采集比对任务。

进一步地,以系统、应用、配置项分类、配置项信息四层关系规范脚本输出格式。

第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的配置信息采集比对方法的步骤。

第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的配置信息采集比对方法的步骤。

本发明提供的配置信息采集比对方法和装置,该方法包括:获取配置采集结果;将所述配置采集结果转换为预设脚本输出格式进行链式存储;利用java解析链式存储的配置采集结果;将所述配置采集结果转化为有序json格式存入数据库,其中,链式存储便于使用java解析采集结果,将采集结果转化为有序json格式存入数据库,可跨平台采集,支持扩展,降低了脚本编写的复杂度,增强了采集的合理性,具有很强的灵活性。

为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明实施例中的配置信息采集比对技术的应用架构示意图一;

图2为本发明实施例中的配置信息采集比对技术的应用架构示意图二;

图3是本发明实施例中的配置信息采集比对方法的流程示意图一;

图4示出了本发明实施例中的采集结果文件;

图5是本发明实施例中的配置信息采集比对方法的流程示意图二;

图6示出了本发明实施例中的比对内容展示结果;

图7是本发明实施例中的配置信息采集比对方法的流程示意图三;

图8示出了本发明实施例中的负载均衡服务器下的多线程控制;

图9是本发明实施例中的配置信息采集比对装置的结构框图;

图10为本发明实施例电子设备的结构图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

本申请提供了一种配置信息采集比对设备b1,该设备可以为一种服务器,参见图1,该配置信息采集比对设备b1可以与各个服务器s1~sn通信连接,各服务器可以是中心服务器,所述配置信息采集比对设备b1直接获取各个服务器的配置采集结果;将所述配置采集结果转换为预设脚本输出格式进行链式存储;利用java解析链式存储的配置采集结果;将所述配置采集结果转化为有序json格式存入数据库。

在一个可选的实施例中,参见图2,该配置信息采集比对设备b1与各服务器s1~sn之间,可以通过中间设备m1进行交互,该中间设备获取各个服务器的配置参数,供参数比对用。

所述服务器与所述配置信息采集比对设备之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括tcp/ip协议、udp/ip协议、http协议、https协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的rpc协议(remoteprocedurecallprotocol,远程过程调用协议)、rest协议(representationalstatetransfer,表述性状态转移协议)等。

图3是本发明实施例中的配置信息采集比对方法的流程示意图一;如图3所示,该配置信息采集比对方法可以包括以下内容:

步骤s100:获取配置采集结果;

其具体内容参见图4。

步骤s200:将所述配置采集结果转换为预设脚本输出格式进行链式存储;

值得说明的是,预设脚本既获取了配置采集结果,同时脚本里也规定了输出格式。通过脚本串联起配置采集,配置解析,配置入库,配置展示的一系列比对过程。

具体地,对于采集到的结果,通过定义各类配置采集的编写规则,规定脚本输出格式,对于采集结果唯一的数据,输出格式规定为:配置项分类.param,value=key1@@val1&&&key2@@val2,其中,等号左边的param和value指代了配置项信息和配置项信息的值,等号右边是具体的配置项信息,如key1标识采集的配置项,val1表示配置项的具体值,配置项信息之间使用&&&分割;对于采集结果不唯一的数据,输出格式规定为:配置项分类.key1,key2,key3=val1@@val2@@val3&&&val12@@val22@@val33,其中,等号左边的key1,key2,key3指代了配置项信息,等号右边使用&&&分割每组信息的值,一组信息之间使用@@分割,采用这种方式实现了多维数据的采集和存储。

另外,依据上述格式提出一种配置信息关联关系,建立配置信息链式结构,独创性地将配置信息分为应用分类信息、配置项分类信息、配置项信息三类,将具有逻辑结构的数据进行结构化存储,以shell脚本语言采集服务器系统参数、网络参数、数据库,中间件和应用等应用分类信息,使采集结果按照设置的规则输出。采用独特的四层结构设计,维护业务/信息系统与服务器、业务/信息系统与应用分类信息、应用分类信息与配置项分类信息,配置项分类信息与配置项信息间关系,用户不需在系统中维护上述关系,只需在采集完成,确认脚本结果,系统将采集结果自动映射到系统中,实现了比对信息的可配置化。其中链式存储结构便于使用java解析采集结果。

步骤s300:利用java解析链式存储的配置采集结果;

步骤s400:将所述配置采集结果转化为有序json格式存入数据库。

其中,将采集结果转化为有序json格式存入数据库。shell脚本可跨平台采集,支持扩展,降低了脚本编写的复杂度,增强了采集的合理性,具有很强的灵活性。

另外,有序格式也便于对配置进行对比,提高比对效率。

在一个可选的实施例中,参见图5,该配置信息采集比对方法还可以包括:

步骤s500:获取所述数据库中的配置采集结果;

步骤s600:将所述配置采集结果以json的形式传递到页面端进行动态列表形式展示,参见图6。

举例来说,页面会解析json,按照系统、应用、配置项分类、配置项信息四层关系进行展示。

其中,基于上述json格式的数据和四层结构,实现比对信息的展示。由于现有的前端框架,无论是jquery的easyui框架,还是基于bootstrap风格实现的各类数据展示框架,都没有提供适用于展示多层比对结构的控件,因此,需要实现一套通用的前端架构,展示多层嵌套结构的对比数据。服务端读取数据库中的比对结果,以json的形式传递到页面端,展示端负责将三层json结构的数据,以动态列表的形式展现在页面,完成了数据可视化,实现了一种探索大型、多维数据的解决方案。由于脚本和比对内容展示的强耦合,展示列表是动态的,脚本发生变化时,列表的表头和内容也会相应改变,无需固定展示列表表头等内容。绘制时,通过配置内容先加载进内存中,通过前端程序,对数据进行过滤和预处理,而后绘制表格:将配置项分类划分为多个表格,配置项分类信息使用数组形式的数据存储,表格标题填入对应的配置项分类信息,表头填入json数据的第二层key值,即配置项信息,表中的内容填入json数据的value值,value值过大时,隐藏部分value值,通过按钮控制value值显示。表格内部实现表头浮动,减少页面长度。页面右侧设置导航栏,导航内容为各应用分类信息,可通过导航栏快速定位到对应的应用分类信息。通过js实现了json到列表形式的转化,页面灵活,加载速度快。

在一个可选的实施例中,参见图7,该配置信息采集比对方法还可以包括:

步骤s700:根据前端发起的请求调用多个异步的ejb进行多线程并发处理配置信息采集比对任务;

其中,对于linux等部署了通用代理的服务器,通过多线程调用远程ejb,前端发起一次请求,调用多个异步的ejb方法,通过线程池工厂创建线程池,调用线程池中的方法获取线程,通过多线程并发处理任务,处理过程中,使用同一个锁对象实现线程安全,在这一过程中前端不再发起请求,实现负载均衡服务器下的多线程控制,参见图8。

在一个可选的实施例中,从大范围到小范围,从整体到局部的关系规范输出格式。

举例来说,可以系统、应用、配置项分类、配置项信息四层关系规范脚本输出格式。

值得说明的是,本发明实施例中选用了共有静态变量(系统中定义的公共变量)作为多线程通信的信号量,当页面触发线程停止的操作时,改变此信号量的值,多线程在内部的循环中,轮询信号量的值,当此值为停止标志后,线程主动停止。在集群环境下,此变量值的同步方法为,实现一个rest服务,在数据库里配置集群两节点信息。节点启动后,该应用可以通过节点的ip+端口+url进行访问。当集群中一个节点的信号量发生改变时,通过此rest服务,更新集群中所有机器中信号量的值。其中,利用了“刹车式”的操作方法(即发出停止指令、线程观测信号量主动退出),解决了分布式系统中多线程控制的问题,由于此方法无法做到绝对意义上的立即停止,系统通过提供观测窗口,监控进程的启停状态。

综上所述,本发明实施例中实现比对信息的可配置,减少采集脚本的编写成本,构建易维护的脚本编写环境,实现比对信息的动态展示。同时,由于线程主动停止,比起外部强制停止线程的操作,实现了线程停止的“软着陆”(即线程按照预定轨迹终止,记录日志、保存数据、释放内存),避免的数据丢失、数据不一致、内存没有释放等多重遗留问题和运行风险。适用于配置比对系统,可用于采集aix、linux等多种操作系统环境下的配置信息。

其中,通过结构化的采集脚本编写,以系统、应用、配置项分类、配置项信息四层关系规范脚本输出格式,同时,比对内容展示方式上,建立系统和应用、系统和机器、应用和配置项分类、配置型分类和配置项信息的映射关系,实现脚本输出格式与展示方式的强耦合,实现比对信息的可配置。同时,提供了一种在负载均衡服务器下实现多线程控制,实现对比并发启动结束的方法。

基于同一发明构思,本申请实施例还提供了一种配置信息采集比对装置,可以用于实现上述实施例所描述的方法,如下面的实施例所述。由于配置信息采集比对装置解决问题的原理与上述方法相似,因此配置信息采集比对装置的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图9是本发明实施例中的配置信息采集比对装置的结构框图一。如图9所示,该配置信息采集比对装置具体包括:采集结果获取模块10、链式存储模块20、解析模块30以及json格式转化模块40。

采集结果获取模块10获取配置采集结果;

链式存储模块20将所述配置采集结果转换为预设脚本输出格式进行链式存储;

解析模块30利用java解析链式存储的配置采集结果;

json格式转化模块40将所述配置采集结果转化为有序json格式存入数据库。

通过结构化的采集脚本编写,以系统、应用、配置项分类、配置项信息四层关系规范脚本输出格式,同时,比对内容展示方式上,建立系统和应用、系统和机器、应用和配置项分类、配置型分类和配置项信息的映射关系,实现脚本输出格式与展示方式的强耦合,实现比对信息的可配置。同时,提供了一种在负载均衡服务器下实现多线程控制,实现对比并发启动结束的方法。

上述实施例阐明的装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为电子设备,具体的,电子设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

在一个典型的实例中电子设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的配置信息采集比对方法的步骤。

下面参考图10,其示出了适于用来实现本申请实施例的电子设备600的结构示意图。

如图10所示,电子设备600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram))603中的程序而执行各种适当的工作和处理。在ram603中,还存储有系统600操作所需的各种程序和数据。cpu601、rom602、以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。

以下部件连接至i/o接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。

特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的配置信息采集比对方法的步骤。

在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1