发明内容
有鉴于此,本发明的主要目的在于提供一种数据的管理方法和系统,降低单个服务器的处理负荷,从而提高服务器的处理速度。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种数据的管理方法,包括:
主进程将查询数据的命令发送给子进程;
所述子进程在存储有要查询的数据的服务器中进行数据查询,并将查询结果返回给所述主进程。
上述方案中,所述子进程的数量根据网络规模确定,存有多个子进程时,每个子进程分别处理各自管理的数据的入库和查询。
上述方案中,所述子进程进行数据查询之前,还包括:
子进程判断要查询的数据的数量是否超出范围,如果所述查询数据的数量超出范围,所述子进程根据查询时间将所述查询数据分成多个子数据再进行数据查询,如果所述查询数据的数量没有超出范围,就直接进行数据查询。
上述方案中,所述主进程将查询数据的命令发送给子进程具体为:
所述主进程从查询数据的命令中解析出查询参数,所述查询参数中包括要查询的数据的网元名称,所述主进程根据所述子进程上报的信息从多个子进程中找到所述网元对应的子进程的消息路径,通过所述消息路径将查询数据的命令发送给所述子进程。
上述方案中,所述子进程的消息路径是当电信网管系统启动时所述子进程上报给所述主进程的,上报的信息还包括所述服务器中数据库接口名称和所述子进程管理的网元名称,所述上报的信息存储在所述主进程控制的服务器内。
上述方案中,所述子进程进行数据查询具体为:
所述子进程根据查询的数据通过代码构造结构化查询语言(SQL)语句,通过所述SQL语句从服务器中查询需要的数据。
上述方案中,所述服务器存储的数据是控制所述服务器的子进程管理的网元采集的数据。
本发明还提供了一种数据的管理系统,包括:主进程模块、子进程模块、第一服务器;其中,
主进程模块,用于将查询数据的命令发送给子进程模块,接收子进程模块返回的查询结果;
子进程模块,用于控制第一服务器,在第一服务器中进行数据查询,并将查询结果返回给主进程模块;
第一服务器,用于存储要查询的数据。
上述方案中,该系统进一步包括:
第二服务器,用于受所述主进程模块控制,存储子进程模块上报给主进程模块的信息,所述信息包括:子进程消息路径、服务器中数据库接口名称、子进程模块管理的网元名称。
上述方案中,所述子进程模块的数量根据网络规模确定,存有多个子进程模块时,每个子进程模块分别处理各自管理的数据的入库和查询。
上述方案中,所述子进程模块还用于判断数据的数量是否超出预先设定的范围,如果查询数据的数量超出范围,就根据查询时间将要查询的数据分成多个子数据再进行数据查询,如果查询的数据没有超出范围,就直接进行数据查询。
本发明所提供的数据的管理方法和系统,将性能服务器分成一个主进程和至少一个子进程,多个子进程时,每个子进程分别处理管理的网元的数据入库和查询,达到服务器负载平均分配的目的,来降低单个服务器的处理负荷,从而提高服务器的处理速度,达到在存在大量性能数据时提高服务器的工作效率。
具体实施方式
本发明的基本思想是:主进程将查询数据的命令发送给子进程;所述子进程在存储有要查询的数据的服务器中进行数据查询,并将查询结果返回给所述主进程。
下面通过附图及具体实施例对本发明再做进一步的详细说明。
图2为根据本发明实施例的主进程处理命令请求的方法的流程示意图,如图2所示,该包括以下步骤:
步骤201,主进程接收命令请求;
具体的,主进程接收客户端发送的命令请求;
步骤202,主进程根据命令请求调用相应的处理方法;
具体的,客户端发送的命令请求中包含对应的命令码,主进程根据命令请求中的命令码调用相应的处理方法;命令码是预先定义的,一个命令码表示一种命令请求,不同的命令码之间不允许重复,例如可以定义查询数据的命令码为10000,采集数据的命令码为10001;如果是查询数据的命令码,就执行步骤203,如果是采集数据的命令码,就执行步骤204;
步骤203,主进程处理数据查询;
步骤204,网元适配器采集数据。
图3是图2中实现步骤203的两种具体方法的其中一种方法,是根据本发明查询少量数据的实施例的主进程处理数据查询的方法的流程示意图,如图3所示,该方法包括以下步骤:
步骤301,主进程将数据查询的命令发送给子进程;
具体的,当查询的数据的数量较少时,主进程和子进程共用一个服务器;主进程根据设置的周期定时检查子进程和主进程之间的链路通断状态,在每次主进程给子进程发送数据查询的命令之前,主进程先向子进程发送探测消息,子进程收到探测消息后构建回复消息发送给主进程,如果主进程收到子进程发送的回复消息,主进程将数据查询的命令发送给子进程,如果主进程收不到子进程发送的回复消息,就不发送数据查询的命令给子进程;
步骤302,子进程在存储有要查询的数据的服务器中进行数据查询,并将查询结果返回给主进程;
具体的,接收数据查询的命令的子进程控制的服务器存储有要查询的数据,该数据是控制该服务器的子进程管理的网元采集的数据;子进程在收到数据查询的命令时,子进程根据数据查询的命令通过代码构造结构化查询语言(SQL,Structured Query Language)语句,SQL语句是数据库查询语言,通过SQL语句可以从服务器的数据库中查询需要的数据;
子进程将查询结果返回给主进程,返回的方法可以是使用字符串的形式,也可以是子进程将查询结果写进文件,发送到主进程的某个目录下,主进程可以通过浏览该目录下的包含查询结果的文件可以得到查询结果。
图4是图2中实现步骤203的两种具体方法中除图3所示方法以外的另一种方法,是根据发明查询大量数据的实施例的主进程处理数据查询的方法的流程示意图,如图4所示,该方法包括以下步骤:
步骤401,主进程将查询数据的命令发送给子进程;
具体的,根据网络规模的大小可以部署多个子进程,存在多个子进程时,每个子进程管理各自的网元和控制各自对应的服务器,分别处理各自管理的数据的入库和查询;当查询数量较多时,主进程和子进程的服务器是分开的,主进程从查询数据的命令中解析出查询参数,查询参数中包括要查询的数据的网元名称,主进程根据子进程上报的信息从多个子进程中找到该网元对应的子进程的消息路径,通过该消息路径将查询数据的命令发送给子进程;主进程根据设置的周期定时检查子进程和主进程之间的链路通断状态,在每次主进程给子进程发送数据查询的命令之前,主进程先向子进程发送探测消息,子进程收到探测消息后构建回复消息发送给主进程,如果主进程收到子进程发送的回复消息,主进程给子进程发送数据查询的命令,如果主进程收不到子进程发送的回复消息,就不发送数据查询的命令给子进程;当电信网管系统启动时,子进程将自身的信息上报给主进程,该信息包括子进程的消息路径、服务器中数据库接口名称和子进程管理的网元名称,这些信息存储在主进程控制的服务器的数据库内,如下表所示,该表是信息示例;
子进程消息路径 |
服务器中数据库接口名称 |
子进程管理的网元名称 |
EMS/cw719812282/cw/cw-pm/emf |
Java:/cwres |
cdma.oam=100000-bssb=0 |
主进程解析查询性能数据的请求的方法可以是:主进程将查询数据的请求的字符串拆分为一个一个的查询参数,例如查询数据的请求的字符串为:“ne:10001,location:10-1-1,time:2008-0101 05:00:00”,那么拆分后查询参数为:ne=10001,location=10-1-1,time=20080101 05:00:00;其中ne=10001表示要查询的数据对应的网元的编号,location=10-1-1表示要查询的数据对应的网元的位置,time=20080101 05:00:00表示要查询的数据所在的时间。
步骤402,子进程判断数据的数量是否超出范围,如果超出,就执行步骤403,如果没有超出,就执行步骤404;
具体的,在子进程收到查询数据的命令后,根据要查询的数据的数量判断该数量是否超出预先设定的范围,如果超出,执行步骤403,如果没有超出,执行步骤405;预先设定的范围是根据实际情况人为设定的,例如可以设定每次查询的数据的数量最大值为10000条。
步骤403,将数据分成多个子数据;
具体的,当要查询的数据的数量超出预先设定的范围时,子进程根据查询时间将要查询的数据分成多个子数据,每个子数据的数量都不超出预先设定的范围。
步骤404,子进程控制的服务器存储要查询的数据,子进程进行查询数据;
具体的,子进程控制的服务器存储要查询的数据,该数据是控制该服务器的子进程管理的网元采集的数据;子进程根据查询的命令通过代码构造SQL语句,通过SQL语句可以从服务器的数据库中查询需要的数据。
步骤405,将查询结果返回给主进程;
具体的,子进程将查询结果返回给主进程,如果要查询的数据被分成多个子数据进行查询,子进程每查询到一个子数据的结果,就向主进程返回查询结果,返回的方法可以使用步骤302中返回的方法。
图5是图2中实现步骤204的具体方法,是根据本发明实施例的网元适配器处理命令请求的方法的流程示意图,如图5所示,该方法包括以下步骤:
步骤501,网元适配器接收采集数据的命令;
具体的,网元适配器通过接口接收主进程发送的采集数据的命令;
步骤502,网元适配器将采集数据的命令发送给网元;
步骤503,网元采集数据,并将采集的数据通过网元适配器发送给服务器;
具体的,网元根据采集数据的命令进行数据采集,并将采集的数据通过网元适配器发送给管理该网元的子进程控制的服务器,服务器中的数据库存储这些数据以备查询,由此,子进程控制的服务器中便存储了相应网元的数据。
为实现上述方法,本发明还提供了一种数据的管理系统,如图6所示,该系统包括:主进程模块61、子进程模块62、第一服务器63;其中,
主进程模块61,用于将查询数据的命令发送给子进程模块62,接收子进程模块62返回的查询结果;
子进程模块62,用于控制第一服务器63,在第一服务器63中进行数据查询,并将查询结果返回给主进程模块61;
第一服务器63,用于存储要查询的数据,该数据是控制该服务器的子进程模块62管理的网元采集的数据;
子进程模块62还用于判断数据的数量是否超出预先设定的范围,如果查询数据的数量超出范围,就根据查询时间将要查询的数据分成多个子数据再进行数据查询,如果查询的数据没有超出范围,就直接进行数据查询;
该系统还可以进一步包括:
第二服务器64,用于受主进程模块61控制,存储子进程上报给主进程模块的信息,该信息包括:子进程消息路径、服务器中数据库接口名称、子进程模块管理的网元名称;
当控制的数量较少时,主进程模块控制的服务器和子进程模块控制的服务器可以合并成一个服务器;根据网络规模的大小,可以部署多个子进程模块,每个子进程模块管理各自的网元和控制各自的服务器,分别处理各自管理的数据的入库和查询。
该系统还可以包括:客户端65、网元适配器66、网元67;其中,
客户端65,用于发送查询数据的请求命令给主进程模块61;
网元适配器66,用于通过接口接收主进程模块61发送的采集数据的命令,并将采集数据的命令发送给网元67;
网元67,用于根据采集数据的命令进行数据采集,并将采集的数据通过网元适配器66发送给管理该网元的子进程控制的服务器,服务器中的数据库存储这些数据以备查询。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。