数据传输和分发的方法及系统的制作方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别是涉及一种数据传输和分发的方法及系统。
【背景技术】
[0002]在一个企业的内网环境中,如果想对整个企业的所有计算机进行统一管理,则需要对每台计算机都分发一份配置管理数据,这样企业就能根据每台计算机分发的配置管理数据进行统一管理。但是如果让公司的计算机管理员一台台计算机的进行设置,在计算机数量达到一定规模后就十分不可行,一个企业内不可能分配那么多管理员天天盯着配置管理数据,并且这样设置效率非常低。
[0003]为避免这种情况,一种通用的做法就是让企业内所有计算机连接到一个或者多个服务器上,并将企业内所有的计算机进行树型分组,然后管理人员在服务器端对每个分组的计算机进行信息配置,如果要对组中的计算机进行细分管理,则需建立这个组中的子组,子组的配置信息通常需要额外重新定义。还有一些配置信息所有的计算机都需要进行配置,这样就需要在每个组上进行重新操作定义,没有一个简单便利的操作模式。客户端接收到配置信息并落地后,会把落地后的配置信息作为变更消息内容发送回服务器,服务器接收到变更消息后将其中的配置信息与服务器中相应的配置信息进行比较检验,如果完全一样则将服务器端的配置信息状态设置已发状态,否则设为未发状态并继续分发。
[0004]但是,对计算机以分组的方式配置信息存在以下缺点:在网络管理软件开发层面上,应用层开发时需要了解不同业务功能的不同信息配置方式,来针对不同的组织管理模型进行不同的开发处理工作,既繁琐又易出错;在客户端计算机数量非常大的网络中,服务器在进行配置信息下发时,需要频繁的读取和修改磁盘上存储的整个配置信息,会导致分发性能下降;由于是网络模型,必然存在单方不工作、分发不及时、超时等不完全同步的状态,因此需要有大量的数据校验比对等操作,导致相同数据重复在网络中传送,造成不必要的网络宽带占用问题,或者接收端运行过程中数据被破坏而产生的潜在风险问题。
【发明内容】
[0005]鉴于此,本发明提供了一种高效、可靠的数据传输和分发的方法及系统。
[0006]为达到发明目的,本发明提供一种数据传输和分发的方法,适用于域模式下的全网计算机系统,所述全网计算机系统包括服务器和客户端,所述客户端中的配置数据通过所述服务器配置,所述方法包括以下步骤:
[0007]当上层应用变更所述客户端的原始配置数据后,获取变更后的变更配置数据,并将所述变更配置数据存储到所述服务器中;
[0008]根据所述变更配置数据的属性信息和客户端的客户唯一标志符获得所述变更配置数据与所述客户端的分发对应关系;
[0009]根据所述分发对应关系将所述变更配置数据传输到相应的所述客户端;
[0010]其中,所述属性信息包括数据唯一标识符,数据版本号和数据类型。
[0011]作为一种可实施例,所述根据所述变更配置数据的属性信息和客户端的客户唯一标志符获得所述变更配置数据与所述客户端的分发对应关系,包括如下步骤:
[0012]获取所述变更配置数据的所述数据类型,所述数据类型包括组类型,共享类型和私有类型;
[0013]若所述数据类型为所述组类型,则所述变更配置数据对应一个客户端组,获取所述客户端组中所有客户端的所述客户唯一标识符,并将获取的所述客户唯一标识符以及所述变更配置数据的所述数据唯一标识符、所述数据版本号存储到所述服务器中,将所述客户端组中每个所述客户端的分发状态设置为未分发,以获得所述变更配置数据与所述客户端的所述分发对应关系;
[0014]若所述数据类型为所述共享类型,则所述变更配置数据对应域中的所有客户端,获取所述所有客户端的所述客户唯一标志符,并将获取的所述客户唯一标识符以及所述变更配置数据的所述数据唯一标识符、所述数据版本号存储到所述服务器在中,将所述所有客户端的分发状态设置为未分发,以获得所述变更配置数据与所述客户端的所述分发对应关系;
[0015]若所述数据类型为所述私有类型,则所述变更配置数据对应特定的客户端,获取所述特定的客户端的所述客户唯一标识符,并将获取的所述客户唯一标识符以及所述变更配置数据的所述数据唯一标识符、所述数据版本号存储到所述服务器中,将所述特定的客户端的分发状态设置为未分发,以获得所述变更配置数据与所述客户端的所述分发对应关系O
[0016]作为一种可实施例,还包括每间隔一定时间执行一次的定期校验的步骤,所述定期校验的步骤具体包括如下步骤:
[0017]清除存储在所述服务器中的没有及时更新的所述分发对应关系;
[0018]获取所述客户端的所有配置数据,根据所述所有配置数据的数据类型获取所述所有配置数据对应所述客户端的所述客户唯一标识符,并将所述客户唯一标识符以及所述所有配置数据的所述数据唯一标识符、所述数据版本号存储到所述服务器中,并将所述客户端的分发状态均设置为已分发,形成下发客户端信息;
[0019]将所述下发客户端信息与所述客户端上传的客户端状态信息进行比较,所述客户端状态信息中包括所述客户唯一标识符和所述客户端中当前配置数据的当前数据版本号;
[0020]若所述下发客户端信息中有所述客户端状态信息中没有的所述客户唯一标识符,则将所述客户端状态信息中没有的所述客户唯一标识符对应的客户端的分发状态设置为未分发;
[0021]若所述客户唯一标识符相同的客户端对应的所述数据版本号大于所述当前数据版本号,则将对应的所述客户端的分发状态均设置为未分发。
[0022]作为一种可实施例,所述变更配置数据和所述分发对应关系存储在所述服务器的磁盘中;
[0023]在将所述变更配置数据传输到相应的所述客户端时,包括如下步骤:
[0024]在所述服务器的内存中创建所述分发对应关系和所述变更配置数据的镜像内存,将所述磁盘中的所述分发对应关系和所述变更配置数据缓存在所述镜像内存中;
[0025]直接从所述镜像内存中读取所述分发对应关系和所述变更配置数据,并在满足预设条件时修改修改所述镜像内存中的所述客户端对应的分发状态;
[0026]将所述镜像内存中所述客户端对应的分发状态写回到所述服务器中的磁盘中。
[0027]作为一种可实施例,在将所述变更配置数据传输到相应的所述客户端前,还包括以下步骤:
[0028]判断所述变更配置数据对应的所述客户端是否与所述服务器网络连接;
[0029]若所述客户端与所述服务器网络连接,则判断网络在线的客户端对应的分发状态是否为已分发;
[0030]若是,则不传输所述变更配置数据到所述网络在线的客户端;
[0031]若否,则传输所述变更配置数据到所述网路在线的客户端,并在接收到所述网络在线的客户端上传的分发成功确认信号后,将所述网络在线的客户端对应的分发状态设置为已分发;
[0032]若所述客户端与所述服务器没有网络连接,则不传输所述变更配置数据到相应的所述客户端。
[0033]作为一种可实施例,在所述客户端中包括以下步骤:
[0034]所述客户端接收所述服务器传输的所述变更配置数据,并将所述变更配置数据存储为当前配置数据;
[0035]计算所述当前配置数据的当前哈希值,并根据所述当前哈希值和所述服务器下发的所述变更配置数据的哈希值判断所述当前配置数据是否被更改或破坏;
[0036]当所述客户端每次启动或者所述客户端中的所述当前配置数据发生变更后,将所述客户端中的所述当前配置数据的当前数据版本号以及存储所述当前配置数据的所述客户端的所述客户唯一标识符上传到所述服务器中。
[0037]本发明还提供一种数据传输和分发的系统,适用于域模式下的全网计算机系统,所述全网计算机系统包括服务器和客户端,所述客户端中的配置数据通过所述服务器配置;所述数据传输和分发系统包括并更存储模块,分发对应关系获得模块和网络通信模块;
[0038]所述变更存储模块设置在所述服务器中,被配置以当上层应用变更所述客户端中的原始配置数据后,获取变更后的变更配置数据,并将所述变更配置数据存储到服务器中;
[0039]所述分发对应关系获得模块设置在所述服务器中,被配置以根据所述变更配置数据的属性信息和客户端的客户唯一标志符获得所述变更配置数据与所述客户端的分发对应关系,所述属性信息包括数据唯一标识符,数据版本号和数据类型;
[0040]所述网络传输模块适用于网络连接所述服务器和所述客户端,被配置以将所述服务器中的所述变更配置数据按照所述分发对应关系传输到相应的所述客户端。
[0041]作为一种可实施例,所述分发对应关系获得模块包括获取单元,第一获得单元,第二获得单兀和第二获得单兀,其中:
[0042]所述获取单元,被配置以获取所述变更配置数据的所述数据类型,所述数据类型包括组类型,共享类型和私有类型;
[0043]所述第一获得单元,被配置以若所述数据类型为所述组类型,则所述变更配置数据对应一个客户端组,获取所述客户端组中所有客户端的所述客户唯一标识符,并将获取的所述客户唯一标识符以及所述变更配置数据的所述数据唯一标识符、所述数据版本号存储到所述服务器中,将所述客户端组中每个所述客户端的分发状态设置在未分发,以获得所述变更配置数据与所述客户端的所述分发对应关系;
[0044]所述第二获得单元,被配置以若所述数据类型为所述共享类型,则所述变更配置数据对应域中的所有客户端,获取所述所有客户端的所述客户唯一标志符,并