数据传输和分发的方法及系统
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据传输和分发的方法及系统。
背景技术
在一个企业的内网环境中,如果想对整个企业的所有计算机进行统一管理,则需要对每台计算机都分发一份配置管理数据,这样企业就能根据每台计算机分发的配置管理数据进行统一管理。但是如果让公司的计算机管理员一台台计算机的进行设置,在计算机数量达到一定规模后就十分不可行,一个企业内不可能分配那么多管理员天天盯着配置管理数据,并且这样设置效率非常低。
为避免这种情况,一种通用的做法就是让企业内所有计算机连接到一个或者多个服务器上,并将企业内所有的计算机进行树型分组,然后管理人员在服务器端对每个分组的计算机进行信息配置,如果要对组中的计算机进行细分管理,则需建立这个组中的子组,子组的配置信息通常需要额外重新定义。还有一些配置信息所有的计算机都需要进行配置,这样就需要在每个组上进行重新操作定义,没有一个简单便利的操作模式。客户端接收到配置信息并落地后,会把落地后的配置信息作为变更消息内容发送回服务器,服务器接收到变更消息后将其中的配置信息与服务器中相应的配置信息进行比较检验,如果完全一样则将服务器端的配置信息状态设置已发状态,否则设为未发状态并继续分发。
但是,对计算机以分组的方式配置信息存在以下缺点:在网络管理软件开发层面上,应用层开发时需要了解不同业务功能的不同信息配置方式,来针对不同的组织管理模型进行不同的开发处理工作,既繁琐又易出错;在客户端计算机数量非常大的网络中,服务器在进行配置信息下发时,需要频繁的读取和修改磁盘上存储的整个配置信息,会导致分发性能下降;由于是网络模型,必然存在单方不工作、分发不及时、超时等不完全同步的状态,因此需要有大量的数据校验比对等操作,导致相同数据重复在网络中传送,造成不必要的网络宽带占用问题,或者接收端运行过程中数据被破坏而产生的潜在风险问题。
发明内容
鉴于此,本发明提供了一种高效、可靠的数据传输和分发的方法及系统。
为达到发明目的,本发明提供一种数据传输和分发的方法,适用于域模式下的全网计算机系统,所述全网计算机系统包括服务器和客户端,所述客户端中的配置数据通过所述服务器配置,所述方法包括以下步骤:
当上层应用变更所述客户端的原始配置数据后,获取变更后的变更配置数据,并将所述变更配置数据存储到所述服务器中;
根据所述变更配置数据的属性信息和客户端的客户唯一标志符获得所述变更配置数据与所述客户端的分发对应关系;
根据所述分发对应关系将所述变更配置数据传输到相应的所述客户端;
其中,所述属性信息包括数据唯一标识符,数据版本号和数据类型。
作为一种可实施例,所述根据所述变更配置数据的属性信息和客户端的客户唯一标志符获得所述变更配置数据与所述客户端的分发对应关系,包括如下步骤:
获取所述变更配置数据的所述数据类型,所述数据类型包括组类型,共享类型和私有类型;
若所述数据类型为所述组类型,则所述变更配置数据对应一个客户端组,获取所述客户端组中所有客户端的所述客户唯一标识符,并将获取的所述客户唯一标识符以及所述变更配置数据的所述数据唯一标识符、所述数据版本号存储到所述服务器中,将所述客户端组中每个所述客户端的分发状态设置为未分发,以获得所述变更配置数据与所述客户端的所述分发对应关系;
若所述数据类型为所述共享类型,则所述变更配置数据对应域中的所有客户端,获取所述所有客户端的所述客户唯一标志符,并将获取的所述客户唯一标识符以及所述变更配置数据的所述数据唯一标识符、所述数据版本号存储到所述服务器在中,将所述所有客户端的分发状态设置为未分发,以获得所述变更配置数据与所述客户端的所述分发对应关系;
若所述数据类型为所述私有类型,则所述变更配置数据对应特定的客户端,获取所述特定的客户端的所述客户唯一标识符,并将获取的所述客户唯一标识符以及所述变更配置数据的所述数据唯一标识符、所述数据版本号存储到所述服务器中,将所述特定的客户端的分发状态设置为未分发,以获得所述变更配置数据与所述客户端的所述分发对应关系。
作为一种可实施例,还包括每间隔一定时间执行一次的定期校验的步骤,所述定期校验的步骤具体包括如下步骤:
清除存储在所述服务器中的没有及时更新的所述分发对应关系;
获取所述客户端的所有配置数据,根据所述所有配置数据的数据类型获取所述所有配置数据对应所述客户端的所述客户唯一标识符,并将所述客户唯一标识符以及所述所有配置数据的所述数据唯一标识符、所述数据版本号存储到所述服务器中,并将所述客户端的分发状态均设置为已分发,形成下发客户端信息;
将所述下发客户端信息与所述客户端上传的客户端状态信息进行比较,所述客户端状态信息中包括所述客户唯一标识符和所述客户端中当前配置数据的当前数据版本号;
若所述下发客户端信息中有所述客户端状态信息中没有的所述客户唯一标识符,则将所述客户端状态信息中没有的所述客户唯一标识符对应的客户端的分发状态设置为未分发;
若所述客户唯一标识符相同的客户端对应的所述数据版本号大于所述当前数据版本号,则将对应的所述客户端的分发状态均设置为未分发。
作为一种可实施例,所述变更配置数据和所述分发对应关系存储在所述服务器的磁盘中;
在将所述变更配置数据传输到相应的所述客户端时,包括如下步骤:
在所述服务器的内存中创建所述分发对应关系和所述变更配置数据的镜像内存,将所述磁盘中的所述分发对应关系和所述变更配置数据缓存在所述镜像内存中;
直接从所述镜像内存中读取所述分发对应关系和所述变更配置数据,并在满足预设条件时修改修改所述镜像内存中的所述客户端对应的分发状态;
将所述镜像内存中所述客户端对应的分发状态写回到所述服务器中的磁盘中。
作为一种可实施例,在将所述变更配置数据传输到相应的所述客户端前,还包括以下步骤:
判断所述变更配置数据对应的所述客户端是否与所述服务器网络连接;
若所述客户端与所述服务器网络连接,则判断网络在线的客户端对应的分发状态是否为已分发;
若是,则不传输所述变更配置数据到所述网络在线的客户端;
若否,则传输所述变更配置数据到所述网路在线的客户端,并在接收到所述网络在线的客户端上传的分发成功确认信号后,将所述网络在线的客户端对应的分发状态设置为已分发;
若所述客户端与所述服务器没有网络连接,则不传输所述变更配置数据到相应的所述客户端。
作为一种可实施例,在所述客户端中包括以下步骤:
所述客户端接收所述服务器传输的所述变更配置数据,并将所述变更配置数据存储为当前配置数据;
计算所述当前配置数据的当前哈希值,并根据所述当前哈希值和所述服务器下发的所述变更配置数据的哈希值判断所述当前配置数据是否被更改或破坏;
当所述客户端每次启动或者所述客户端中的所述当前配置数据发生变更后,将所述客户端中的所述当前配置数据的当前数据版本号以及存储所述当前配置数据的所述客户端的所述客户唯一标识符上传到所述服务器中。
本发明还提供一种数据传输和分发的系统,适用于域模式下的全网计算机系统,所述全网计算机系统包括服务器和客户端,所述客户端中的配置数据通过所述服务器配置;所述数据传输和分发系统包括并更存储模块,分发对应关系获得模块和网络通信模块;
所述变更存储模块设置在所述服务器中,被配置以当上层应用变更所述客户端中的原始配置数据后,获取变更后的变更配置数据,并将所述变更配置数据存储到服务器中;
所述分发对应关系获得模块设置在所述服务器中,被配置以根据所述变更配置数据的属性信息和客户端的客户唯一标志符获得所述变更配置数据与所述客户端的分发对应关系,所述属性信息包括数据唯一标识符,数据版本号和数据类型;
所述网络传输模块适用于网络连接所述服务器和所述客户端,被配置以将所述服务器中的所述变更配置数据按照所述分发对应关系传输到相应的所述客户端。
作为一种可实施例,所述分发对应关系获得模块包括获取单元,第一获得单元,第二获得单元和第三获得单元,其中:
所述获取单元,被配置以获取所述变更配置数据的所述数据类型,所述数据类型包括组类型,共享类型和私有类型;
所述第一获得单元,被配置以若所述数据类型为所述组类型,则所述变更配置数据对应一个客户端组,获取所述客户端组中所有客户端的所述客户唯一标识符,并将获取的所述客户唯一标识符以及所述变更配置数据的所述数据唯一标识符、所述数据版本号存储到所述服务器中,将所述客户端组中每个所述客户端的分发状态设置在未分发,以获得所述变更配置数据与所述客户端的所述分发对应关系;
所述第二获得单元,被配置以若所述数据类型为所述共享类型,则所述变更配置数据对应域中的所有客户端,获取所述所有客户端的所述客户唯一标志符,并将获取的所述客户唯一标识符以及所述变更配置数据的所述数据唯一标识符、所述数据版本号存储到所述服务器在中,将所述所有客户端的分发状态设置为未分发,以获得所述变更配置数据与所述客户端的所述分发对应关系;
所述第三获得单元,被配置以若所述数据类型为所述私有类型,则所述变更配置数据对应特定的客户端,获取所述特定的客户端的所述客户唯一标识符,并将获取的所述客户唯一标识符以及所述变更配置数据的所述数据唯一标识符、所述数据版本号存储到所述服务器中,将所述特定的客户端的分发状态设置为未分发,以获得所述变更配置数据与所述客户端的所述分发对应关系。
作为一种可实施例,所述服务器中还包括每间隔一定时间执行一次的定期检验模块;
所述定期校验模块包括清除单元,存储设置单元,比较单元,第一比较结果单元和第二比较结果单元,其中:
所述清除单元,被配置以清除存储在所述服务器中的没有及时更新的所述分发对应关系;
所述存储设置单元,被配置以获取所述客户端的所有配置数据,根据所述所有配置数据的数据类型获取所述所有配置数据对应所述客户端的所述客户唯一标识符,并将所述客户唯一标识符以及所述所有配置数据的所述数据唯一标识符、所述数据版本号存储到所述服务器中,并将所述客户端的分发状态均设置为已分发,形成下发客户端信息;
所述比较单元,被配置以将所述下发客户端信息与所述客户端上传的客户端状态信息进行比较,所述客户端状态信息中包括所述客户唯一标识符和所述客户端中当前配置数据的当前数据版本号;
所述第一比较结果单元,被配置以若所述下发客户端信息中有所述客户端状态信息中没有的所述客户唯一标识符,则将所述客户端状态信息中没有的所述客户唯一标识符对应的客户端的分发状态设置为未分发;
所述第二比较结果单元,被配置以若所述客户唯一标识符相同的客户端对应的所述数据版本号大于所述当前数据版本号,则将对应的所述客户端的分发状态设置为未分发。
作为一种可实施例,所述服务器中设置有磁盘,所述变更配置数据和所述分发对应关系存储在所述磁盘中;
所述服务器中包括镜像内存,读取修改模块和写回模块,其中:
所述镜像内存,被配置以缓存所述磁盘中的所述变更配置数据和所述分发对应关系;
所述读取修改模块,被配置以在将所述变更配置数据传输到相应的所述客户端时,直接从所述镜像内存中读取所述分发对应关系和所述变更配置数据,并在满足预设条件时修改所述镜像内存中的所述客户端对应的分发状态;
所述写回模块,被配置以将所述镜像内存中所述客户端的分发状态写回到所述服务器中的磁盘中。
作为一种可实施例,所述网络传输模块包括第一判断单元和第二判断单元,其中:
所述第一判断单元,被配置以判断所述变更配置数据对应的所述客户端是否与所述服务器网络连接;若是,则转至所述第二判断单元;若否,则不传输所述变更配置数据到相应的所述客户端;
所述第二判断单元,被配置以判断网络在线的客户端对应的分发状态是否为已分发;若是,则不传输所述变更配置数据到所述网络在线的客户端;若否,则传输所述变更配置数据到所述网路在线的客户端,并在接收到所述网络在线的客户端上传的分发成功确认信号后,将所述网络在线的客户端对应的分发状态均设置为已分发。
作为一种可实施例,所述客户端包括接收存储模块,计算判断模块和上传模块,其中:
所述接收存储模块,被配置以接收所述服务器传输的所述变更配置数据,并将所述变更配置数据存储为当前配置数据;
所述计算检验模块,被配置以计算所述当前配置数据的当前哈希值,并根据所述当前哈希值和所述服务器下发的所述变更配置数据的哈希值判断所述当前配置数据是否被更改或破坏;
所述上传模块,被配置以当所述客户端每次启动或者所述客户端中的所述当前配置数据发生变更后,将所述客户端中的所述当前配置数据的当前数据版本号以及存储所述当前配置数据的所述客户端的所述客户唯一标识符上传到所述服务器中。
本发明的有益效果包括:
本发明的数据传输和分发的方法及系统,服务器获取上层应用程序变更的变更配置数据并将该变更配置数据存储在服务器的磁盘中,以使配置数据能够持久的被存储和访问,然后计算获得变更配置数据和客户端的分发对应关系,最后根据分发对应关系将变更配置数据传输到相应的客户端。该方法使上层应用与配置数据分发过程分离,减少上层应用与配置数据分发时内部复杂逻辑的相关耦合度,提高了软件的开发效率,同时使得计算机管理人员对整个企业内所有计算机进行配置管理的复杂度降低,计算机管理人员的维护时间减少,由于配置管理的复杂度降低,所需的管理人员减少,因此还节约了人力成本,从而可为企业节约资金。
附图说明
图1为本发明的数据传输和分发的方法的一实施例的流程示意图;
图2为本发明的数据传输和分发的方法中分发对应关系获得步骤的一具体实施例的流程示意图;
图3为本发明的数据传输和分发的方法中定期校验步骤的一具体实施例的流程示意图;
图4为本发明的数据传输和分发的方法的另一实施例的流程示意图;
图5为本发明的数据传输和分发的方法的又一实施例的流程示意图;
图6为本发明的数据传输和分发的方法中在客户端中执行步骤的一实施例的流程示意图;
图7为本发明的数据传输和分发的系统的一实施例的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明数据传输和分发的方法及系统进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参见图1,本发明提供一种数据传输和分发的方法的一具体实施例,适用于域模式下的全网计算机系统,全网计算机系统包括服务器和客户端,客户端中的配置数据通过服务器配置,该方法包括以下步骤:
S100,上层应用变更客户端的原始配置数据后,获取变更后的变更配置数据,并将变更配置数据存储到服务器中。
优选的,变更配置数据存储到服务器的文件系统或者数据库中,以使配置数据持久的被存储和访问。配置数据由上层应用开发人员编写的应用程序进行操作,当应用程序根据用户的需求变更(创建、修改或删除)配置数据中的组数据、共享数据和私有数据时,该配置数据就会生成一个新的数据版本号。
S200,根据变更配置数据的属性信息和客户端的客户唯一标志符获得变更配置数据与客户端的分发对应关系,其中,属性信息包括数据唯一标识符,数据版本号和数据类型。
具体的,获取变更配置数据的数据类型,不同数据类型的变更配置数据对应不同的客户端,获取不同数据类型对应的客户端的客户唯一标识符,并结合配置数据的数据唯一标识符、数据版本号等信息存储到服务器的磁盘中,以得到变更配置数据的结构以及这些变更配置数据要分发的客户端,即分发对应关系,此时将变更配置数据要分发的客户端的分发状态设置为未分发。
S300,根据分发对应关系将变更配置数据传输到相应的客户端,以完成变更配置数据分发的目的。
本发明一具体实施例的数据传输和分发的方法,首先将企业内的所有计算机组织成特定的层次结构(如树型层次结构),层次结构和企业的管理层次结构对应。最上层是整个企业的域(一个企业一般只有一个域),包括企业所有联网的客户端(如计算机),再下一层是各个客户端组,根据客户端组的组信息能够确定整个域中所有联网客户端属于哪个特定的组,每个客户端组又可以包括子组,此时包括子组的客户端组为父组,根据父组的信息可以构造出企业的树型层次结构,最下层是具体的客户端,每个客户端都有一个唯一标识符(GUID,Globally Unique Identifier),隶属于一个客户端组。这样要分发的变更配置数据结合企业的层次结构信息就能确定给每个客户端具体的变更配置数据。
传统的配置数据传输和分发的方法需要了解不同业务功能的不同信息配置方式,针对不同的管理模型进行不同的处理工作,既繁琐又易出错。本发明的数据传输和分发的方法,应用层程序在变更配置数据时,无需考虑变更的配置数据的具体完整结构,以及配置数据具体要分发给哪些客户端,只需考虑具体要配置什么样的信息使客户端实现什么样的功能即可,配置数据的具体结构及这些配置数据要分发到哪些客户端,由服务器处理完成。服务器的处理包括获取上层应用程序变更的变更配置数据,并将该变更配置数据存储在服务器的磁盘中,以使变更配置数据能够持久的被存储和访问,然后计算获得变更配置数据和客户端的分发对应关系,最后根据分发对应关系将变更配置数据传输到相应的客户端。该方法使上层应用与配置数据分发过程分离,减少上层应用与配置数据分发时内部复杂逻辑的相关耦合度,提高了软件的开发效率,同时使得计算机管理人员对整个企业内所有计算机进行配置管理的复杂度降低,计算机管理人员的维护时间减少,由于配置管理的复杂度降低,所需的管理人员减少,因此还节约了人力成本,从而可为企业节约资金。
作为一种可实施方式,参见图2,步骤S200包括如下步骤:
S210,获取变更配置数据的数据类型,数据类型包括组类型,共享类型和私有类型。
需要说明的是,数据类型还包括原始数据,原始数据是最基本的配置数据,其是构成物理存在的数据,每个客户端都具有原始数据。由于其不映射到企业的层次结构中,即不会分发到不同的计算机层中(分发到具体的客户端,一组客户端或一些特定的客户端),因此在步骤S200中没有提及。组类型的配置数据会映射到企业层次结构的客户端组对应的项中,共享类型的配置数据会映射到层次结构的域对应的所有计算机中,私有类型的配置数据会映射到层次结构的特定客户端中。其中,组类型的配置数据会有一个组编号,获知该组编号后便能确定该配置数据对应哪个客户端组。如果企业包括多个客户端组,则每个客户端组会有一个编号标识该客户端组,下发的组类型的配置数据中有一个组编号,能确定该配置数据下发给哪个客户端组。
S220,若数据类型为组类型,则变更配置数据对应一个客户端组,获取客户端组中所有客户端的客户唯一标识符,并将获取的客户唯一标识符以及变更配置数据的数据唯一标识符、数据版本号存储到服务器中,将客户端组中每个客户端的分发状态设置为未分发,以获得变更配置数据与客户端的分发对应关系。
在一个具体的实施例中,将企业中的计算机按照部门或者项目划分为各个小组,每个小组为一个客户端组,都具有各自的组数据。并且组数据还具有继承属性,若继承属性开启,则组数据跟自己的父组数据一致,即只有最根的组可以编辑组数据。例如:存在A、B、C三个组,A是根组,B是A的子组,C是B的子组,若继承属性开启,则B、C都不能编辑组数据,这是只需修改A组数据,B、C两个组就会自动使用A的组数据。
S230,若数据类型为共享类型,则变更配置数据对应域中的所有客户端,获取所有客户端的客户唯一标志符,并将获取的客户唯一标识符以及变更配置数据的数据唯一标识符、数据版本号存储到服务器在中,将所有客户端的分发状态设置为未分发,以获得变更配置数据与客户端的分发对应关系。
共享数据不是企业内部部门特有的,而是属于整个企业内部的。例如:公司名称、公司的LOGO等。如果数据类型为共享类型,再以组的方式分发该共享数据就太耗时且麻烦,此时使用共享类型直接分发给企业内域中的所有计算机,级节省能耗又省时。
S240,若数据类型为私有类型,则变更配置数据对应特定的客户端,获取特定的客户端的客户唯一标识符,并将获取的客户唯一标识符以及变更配置数据的数据唯一标识符、数据版本号存储到服务器中,将特定的客户端的分发状态设置为未分发,以获得变更配置数据与客户端的分发对应关系。
如果存在个别的计算机客户端需要特殊的数据,则使用私有数据,私有数据仅对一个计算机客户端有效。例如:一个部门禁止在上班时间使用网络,但是对于部门经理则可以使用,此时仅需给部门经理分发放一个私有数据即可。
变更配置数据根据其数据类型被配置到不同的客户端中,即配置数据需要分发到哪些客户端由服务器计算得来,这样就可以根据变更配置数据的不同数据类型进行不同的处理,不用局限于针对特定的组进行配置,简化了计算机管理人员对整个企业内所有计算机进行配置管理的复杂度,减少了计算机管理人员的维护时间,减少了人力成本,为企业节省了资金。
作为一种可实施方式,参见图3,还包括每间隔一定时间执行一次的S400,定期校验的步骤。步骤S400包括如下步骤:
S410,清除存储在服务器中的没有及时更新的分发对应关系。
S420,获取客户端的所有配置数据,根据所有配置数据的数据类型获取所有配置数据对应客户端的客户唯一标识符,并将客户唯一标识符以及所有配置数据的数据唯一标识符、数据版本号存储到服务器中,并将客户端的分发状态均设置为已分发,形成下发客户端信息。其中,下发客户端信息中还包括分发时间,分发时间决定配置数据何时分发。
S430,定期将下发客户端信息与客户端上传的客户端状态信息进行比较,客户端状态信息中包括客户唯一标识符和客户端中当前配置数据的当前数据版本号。
S431,若下发客户端信息中有客户端状态信息中没有的客户唯一标识符,则将客户端状态信息中没有的客户唯一标识符对应的客户端的分发状态设置为未分发。客户端状态信息中没有配置数据对应的客户端,说明该客户端可能还没有分发配置数据或者分发的配置数据有误,因此也需分发该配置数据。
S432,若客户唯一标识符相同的客户端对应的数据版本号大于当前数据版本号,则将对应的客户端的分发状态设置为未分发。
在步骤S200不能有效执行或者发生其他异常场景(如获得的分发对应关系被删除)时,会造成客户端中的配置数据不是最新的配置数据,为了能够及时的更新最新的配置数据到客户端中,设置定期校验的步骤,其每隔一定时间执行一次,在获得分发对应关系的步骤不能有效执行时,在一定程度上能够代替获得分发对应关系的步骤,使得分发对应关系能够得到及时更新,保证下发客户端中蕴含的数据信息是及时有效的。
在步骤S200能够有效执行时,定期检验的步骤能够有效检查客户端中的配置数据是否被更改或破坏,确保下发的配置数据的可靠准确。
其中,值得说明的是,在将所有的配置数据对应的客户端的分发状态修改完后,会给网络通信模块发送一个更新完成通知,网络通信模块开始传输配置数据到相应的客户端。其中,分发对应关系和下发客户端信息的作用相似,分发对应关系中存储了变更配置数据对应的相应信息,而下发客户端信息中存储了所有配置数据的相应信息,为了便于说明,分别命名说明。
作为一种可实施方式,变更配置数据和分发对应关系存储在服务器的磁盘中。
在将配置数据传输到相应的客户端时,参见图4,包括如下步骤:
S300a,在服务器的内存中创建分发对应关系和变更配置数据的镜像内存,并将磁盘中的分发对应关系和变更配置数据存储在镜像内存中。
S300b,直接从镜像内存中读取分发对应关系和变更配置数据,并在满足预设条件时修改镜像内存中的客户端对应的分发状态。预设条件为在传输配置数据到客户端后,接收到客户端上传的分发成功确认信号,将客户端的分发状态由未分发修改为已分发。
S300c,将镜像内存中客户端对应的分发状态写回到所述服务器中的磁盘中。
服务器在将配置数据分发到客户端时,需要频繁的从磁盘上读取变更配置数据和分发对应关系,当客户端的数量比较多时,将对分发性能的影响非常大,在内存中创建镜像内存,存储变更配置数据和分发对应关系,在执行变更配置信息传输时,直接从镜像内存中读取数据,由服务器定期将镜像内存中的数据信息(变更配置数据对应客户端的分发状态)写回到磁盘中,这样减少了读写磁盘的次数,极大了提高了配置数据的分发效率。
作为一种可实施方式,参见图5,在步骤S300之前,还包括以下步骤:
S030,判断变更配置数据对应的客户端是否与服务器网络连接,若网络连接,则执行步骤S031,若没有网络连接,则不执行步骤S300。
S031,判断判断网络在线的客户端对应的分发状态是否为已分发,若是,则不传输变更配置数据到网络在线的客户端;若否,则传输变更配置数据到网路在线的客户端,并在接收到网络在线的客户端上传的分发成功确认信号后,将网络在线的客户端对应的分发状态设置为已分发。
服务器中的配置数据是通过通信网络(如WIFI或局域网等)传输到客户端的,所以只有网络通信模块才知道客户端与服务器是否进行着网络连接,若网络连接,则将网络在线的客户端对应的变更配置数据传输过去,若网络不在线,则等待网络在线后在进行数据传输。当确定客户端网络在线后,还需判断当前网络在线的客户端对应的分发状态是否为已分发,以避免数据的重复传输,减少不必要的数据带宽。网络通信模块保证了双向数据的高效准确处理,解决了网络传输的带宽问题。
作为一种可实施方式,参见图6,在客户端中包括以下步骤:
S010,客户端接收服务器传输的变更配置数据,并将变更配置数据存储为当前配置数据。
S020,计算当前配置数据的当前哈希值,并根据当前哈希值和服务器下发的变更配置数据的哈希值判断当前配置数据是否被更改或破坏。
S030,当客户端每次启动或者客户端中的当前配置数据发生变更后,将客户端中的当前配置数据的当前数据版本号以及存储当前配置数据的客户端的客户唯一标识符上传到服务器中。
客户端接收到变更配置数据后,将其存储为当前配置数据,客户端在使用过程中配置数据有可能被人恶意篡改或者被病毒破坏,为了避免被篡改或被破坏,定期进行哈希值检验,具体的步骤为:计算客户端中当前配置数据的当前哈希值,并将其与服务器下发的变更配置数据的哈希值进行比较,若哈希值相同,则说明客户端中的当前配置数据没有发生变化,若哈希值不相同,则说明客户端中的当前配置数据在运行中发生了改变,此时需要服务器重新下发该客户端的变更配置数据,以使客户端中的当前配置数据为变更的最新的配置数据,确保配置数据的准确可靠,提高企业对客户端管理的可靠性。其中,哈希值是一段数据唯一且极其紧凑的数值表示形式。
客户端每次启动时,上传其自身的客户唯一标识符及其存储的当前配置数据的数据版本号上传至服务器中,或者当客户端中的当前配置数据发生变更时,也上传其自身的客户唯一标识符及其变更后的当前配置数据到服务器中,以使服务器与客户端中的配置数据一致,确保分发的客户端中的配置数据的准确可靠,同时,客户端只上传版本信息和唯一标识符,其不需要具体的数据就能达到配置数据两端的检验功能,减少了不必要的传输带宽,实现高效的传输。其中,值得说明的是,步骤S020和步骤S030不是顺序步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
基于同一发明构思,本发明还提供了一种数据传输和分发的系统,由于此系统解决问题的原理与前述一种数据传输和分发的方法相似,因此该系统的实施可以参见前述方法的实施,重复之处不再赘述。
本发明提供的一种数据传输和分发的系统的一具体实施例,参见图7,适用于域模式下的全网计算机系统,全网计算机系统包括服务器100和客户端300,客户端300中的配置数据通过服务器100配置。数据传输和分发系统包括并更存储模块110,分发对应关系获得模块120和网络通信模块200。
变更存储模块110设置在服务器100中,被配置以当上层应用变更客户端中的原始配置数据后,获取变更后的变更配置数据,并将变更配置数据存储到服务器中。分发对应关系获得模块120设置在服务器100中,被配置以根据变更配置数据的属性信息和客户端的客户唯一标志符获得变更配置数据与客户端的分发对应关系,属性信息包括数据唯一标识符,数据版本号和数据类型。网络传输模块200适用于网络连接服务器100和客户端300,被配置以将服务器中的变更配置数据按照分发对应关系传输到相应的客户端。
本发明实施例的数据传输和分发的系统,使上层应用与配置数据分发过程分离,减少上层应用与配置数据分发时内部复杂逻辑的相关耦合度,提高了软件的开发效率,同时其使得计算机管理人员对整个企业内所有计算机进行配置管理的复杂度降低,计算机管理人员的维护时间减少,由于配置管理的复杂度降低,所需的管理人员减少,因此还节约了人力成本,从而可为企业节约资金。
作为一种可实施方式,分发对应关系获得模块120包括获取单元121,第一获得单元122,第二获得单元123和第三获得单元124。其中:获取单元121,被配置以获取变更配置数据的数据类型,数据类型包括组类型,共享类型和私有类型。第一获得单元122,被配置以若数据类型为所述组类型,则变更配置数据对应一个客户端组,获取客户端组中所有客户端的客户唯一标识符,并将获取的客户唯一标识符以及变更配置数据的数据唯一标识符、数据版本号存储到服务器中,将客户端组中每个客户端的分发状态设置在未分发,以获得变更配置数据与客户端的分发对应关系。第二获得单元123,被配置以若数据类型为共享类型,则变更配置数据对应域中的所有客户端,获取所有客户端的客户唯一标志符,并将获取的客户唯一标识符以及变更配置数据的数据唯一标识符、数据版本号存储到服务器在中,将所有客户端的分发状态设置为未分发,以获得变更配置数据与客户端的分发对应关系。第三获得单元124,被配置以若数据类型为私有类型,则变更配置数据对应特定的客户端,获取特定的客户端的所述客户唯一标识符,并将获取的客户唯一标识符以及变更配置数据的数据唯一标识符、数据版本号存储到服务器中,将特定的客户端的分发状态设置为未分发,以获得变更配置数据与所述客户端的分发对应关系。
作为一种可实施方式,服务器中还包括每间隔一定时间执行一次的定期检验模块130。定期校验模块130包括清除单元131,存储设置单元132,比较单元133,第一比较结果单元134和第二比较结果单元135。
其中:清除单元131,被配置以清除存储在服务器中的没有及时更新的分发对应关系。存储设置单元132,被配置以获取客户端的所有配置数据,根据所有配置数据的数据类型获取所有配置数据对应所述客户端的客户唯一标识符,并将客户唯一标识符以及所有配置数据的数据唯一标识符、数据版本号存储到服务器中,并将客户端的分发状态均设置为已分发,形成下发客户端信息。比较单元133,被配置以将下发客户端信息与客户端上传的客户端状态信息进行比较,客户端状态信息中包括客户唯一标识符和客户端中当前配置数据的当前数据版本号。第一比较结果单元134,被配置以若下发客户端信息中有客户端状态信息中没有的客户唯一标识符,则将客户端状态信息中没有的客户唯一标识符对应的客户端的分发状态设置为未分发。第二比较结果单元135,被配置以若客户唯一标识符相同的客户端对应的数据版本号大于当前数据版本号,则将对应的客户端的分发状态设置为未分发。
作为一种可实施方式,服务器100中设置有磁盘,变更配置数据和分发对应关系存储在所述磁盘中。服务器100中包括镜像内存140,读取修改模块150和写回模块160。其中:镜像内存140,被配置以缓存磁盘中的变更配置数据和分发对应关系。读取修改模块150,被配置以在将变更配置数据传输到相应的客户端时,直接从镜像内存中读取分发对应关系和变更配置数据,并在满足预设条件时修改镜像内存中的客户端对应的分发状态。写回模块160,被配置以将镜像内存中客户端的分发状态写回到服务器中的磁盘中。
作为一种可实施方式,网络传输模块200包括第一判断单元210和第二判断单元220。其中:第一判断单元210,被配置以判断变更配置数据对应的客户端是否与服务器网络连接;若是,则转至第二判断单元220;若否,则不传输变更配置数据到相应的客户端。第二判断单元220,被配置以判断网络在线的客户端对应的分发状态是否为已分发;若是,则不传输变更配置数据到网络在线的客户端;若否,则传输变更配置数据到网路在线的客户端,并在接收到网络在线的客户端上传的分发成功确认信号后,将网络在线的客户端对应的分发状态均设置为已分发。
作为一种可实施方式,客户端300包括接收存储模块310,计算判断模块320和上传模块330。其中:接收存储模块310,被配置以接收服务器传输的变更配置数据,并将变更配置数据存储为当前配置数据。计算检验模块320,被配置以计算当前配置数据的当前哈希值,并根据当前哈希值和服务器下发的变更配置数据的哈希值判断当前配置数据是否被更改或破坏。上传模块330,被配置以当客户端每次启动或者客户端中的当前配置数据发生变更后,将客户端中的当前配置数据的当前数据版本号以及存储当前配置数据的客户端的客户唯一标识符上传到服务器中。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。