一种多站点自动更新方法、客户端和系统转让专利

申请号 : CN201480064008.2

文献号 : CN105765908B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张奇冯杰

申请人 : 北京新媒传信科技有限公司

摘要 :

本发明公开一种多站点自动更新方法、客户端和系统。本发明的方法包括:获取管理端的更新执行信息,并依此解析出客户端更新信息;依据规范的站点命名原则和应用命名原则,从客户端更新信息中判断出客户端中需要停止、启动、或重启的站点或服务;从客户端更新信息中确定出需要更新的文件,按照停止站点、停止服务、更新文件、启动服务、启动站点的顺序自动执行更新操作;更新操作结束后,在本地存储更新操作结果并将所述更新操作结果返回管理端。本发明的方案能够解决现有技术中需要逐个站点手动进行更新带来的问题,在提高工作效率的同时,保证了多个站点自动更新的安全性、准确性和可靠性。

权利要求 :

1.一种多站点自动更新方法,其特征在于,所述方法包括:获取管理端的更新执行信息,并依此解析出能够区分站点、服务和普通内容的客户端更新信息;

依据规范的站点命名原则,从客户端更新信息中判断出客户端中需要停止、启动、或重启的站点,其中,所述客户端上部署多个站点;

依据规范的应用命名原则,从客户端更新信息中判断出客户端中需要停止、启动、或重启的服务;

从客户端更新信息中确定出需要更新的文件,按照停止站点、停止服务、更新文件、启动服务、启动站点的顺序自动执行更新操作;

更新操作结束后,在本地存储更新操作结果并将所述更新操作结果返回管理端;

所述获取管理端的更新执行信息,并依此解析出客户端更新信息包括:获取管理端的分组信息及更新信息;其中,所述分组信息是管理端按照站点或服务的差异将客户端分割成若干组的信息,分组信息包括分组名称和客户端ID列表;所述更新信息包括分组名称和客户端实际更新目录;

通过将客户端ID与所述分组信息比对,识别出客户端所属的分组;

根据客户端所属的分组从管理端的更新信息中解析出客户端更新信息。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在执行自动更新操作之前,打包所述需要更新的文件得到归档包,在本地存储该归档包的备份信息并将所述备份信息返回管理端。

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:获取管理端的回滚执行信息;

从所述回滚执行信息中判断出客户端中需要停止、启动、或重启的站点或者服务;

根据所述回滚执行信息,读取本地存储的备份信息,将需要回滚的内容从所述归档包中释放以用于覆盖更新失败的文件;

按照停止站点、停止服务、恢复文件、启动服务、启动站点的顺序执行回滚操作;

回滚操作结束后,将回滚操作结果返回管理端。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:更新操作结束后,从更新操作结果中获取更新后的文件的信息-摘要算法MD5值;

将所述MD5值记录于本地文件中并向管理端返回该MD5值以用于管理端对更新操作结果进行校验。

5.根据权利要求4所述的方法,其特征在于,所述方法还包括:获取管理端的删除执行信息;

根据所述删除执行信息,获取客户端需要删除的内容信息;

执行删除操作,并将删除操作结果返回管理端。

6.一种客户端,其特征在于,所述客户端包括:信息处理模块,用于获取管理端的更新执行信息,并依此解析出能够区分站点、服务和普通内容的客户端更新信息;

站点控制模块,用于依据规范的站点命名原则,从客户端更新信息中判断出客户端中需要停止、启动、或重启的站点,其中,所述客户端上部署多个站点;

服务控制模块,用于依据规范的应用命名原则,从客户端更新信息中判断出客户端中需要停止、启动、或重启的服务;

更新模块,用于从客户端更新信息中确定出需要更新的文件,并按照停止站点、停止服务、更新文件、启动服务、启动站点的顺序自动执行更新操作,更新操作结束后,在本地存储更新操作结果并将所述更新操作结果返回管理端;

所述信息处理模块包括:

分组信息获取子模块,用于获取管理端的分组信息及更新信息;其中,所述分组信息是管理端按照站点或服务的差异将客户端分割成若干组的信息,分组信息包括分组名称和客户端ID列表;所述更新信息包括分组名称和客户端实际更新目录;

分组比对子模块,用于通过将客户端ID与所述分组信息比对,识别出客户端所属的分组;

解析子模块,用于根据客户端所属的分组从管理端的更新信息中解析出客户端更新信息。

7.根据权利要求6所述的客户端,其特征在于,所述客户端还包括:备份模块,用于在执行更新操作之前,打包所述需要更新的文件得到归档包,在本地存储该归档包的备份信息并将所述备份信息返回管理端。

8.根据权利要求7所述的客户端,其特征在于,所述信息处理模块,还用于获取管理端的回滚执行信息;

所述站点控制模块,还用于从所述回滚执行信息中判断出客户端中需要停止、启动、或重启的站点;

所述服务控制模块,还用于从所述回滚执行信息中判断出客户端中需要停止、启动、或重启的服务;

所述客户端还包括:

回滚模块,用于根据所述回滚执行信息,读取本地存储的备份信息,将需要回滚的内容从所述归档包中释放以用于覆盖更新失败的文件,按照停止站点、停止服务、恢复文件、启动服务、启动站点的顺序执行回滚操作,回滚操作结束后,将回滚操作结果返回管理端。

9.根据权利要求6所述的客户端,其特征在于,所述客户端还包括:校验模块,用于更新操作结束后,从更新操作结果中获取更新后的文件的信息-摘要算法MD5值;

将所述MD5值记录于本地文件中并向管理端返回该MD5值以用于管理端对更新操作结果进行校验。

10.根据权利要求6所述的客户端,其特征在于,所述信息处理模块,还用于获取管理端的删除执行信息;

所述客户端还包括:

删除模块,用于根据所述删除执行信息,获取客户端需要删除的内容信息;执行删除操作,并将删除操作结果返回管理端。

11.一种多站点自动更新系统,其特征在于,包括管理端和至少一个权利要求6-10任一项所述的客户端;其中,所述管理端,用于向所述客户端提供更新信息、分组信息和执行信息,并保存操作记录。

说明书 :

一种多站点自动更新方法、客户端和系统

技术领域

[0001] 本发明涉及计算机技术领域,特别涉及一种多站点自动更新方法、客户端和系统。

背景技术

[0002] 随着信息时代的持续发展,集群、负载均衡技术的普及,服务器从初期的几台发展为庞大的数据中心,网站更新管理也变得日趋复杂,目前更新管理绝大多数工作都是手工操作的。即使一个简单的系统变更或更新往往都需要运维人员逐一登录每台设备进行手工变更,当设备数量达至成百上千时,其工作量之大可想而知。工作量增大时更新的稳定性与可靠性亦会逐渐降低。
[0003] 目前对于多站点更新,大多数的处理方案是操作人员重复执行单站点更新操作的流程,或者编写一个脚本执行,但更新包上传仍需操作人员逐台操作,且遇到一台服务器部署多个站点时,依然要手动逐一执行停止、启动站点或服务的操作,工作效率很低。

发明内容

[0004] 基于上述问题,本发明实施例提供了一种多站点自动更新方法、客户端和系统,以解决现有技术中需要逐个站点手动进行更新带来的问题。
[0005] 依据本发明的一个方面,本发明实施例提供了一种多站点自动更新方法,所述方法包括:获取管理端的更新执行信息,并依此解析出客户端更新信息;依据规范的站点命名原则,从客户端更新信息中判断出客户端中需要停止、启动、或重启的站点;依据规范的应用命名原则,从客户端更新信息中判断出客户端中需要停止、启动、或重启的服务;从客户端更新信息中确定出需要更新的文件,按照停止站点、停止服务、更新文件、启动服务、启动站点的顺序自动执行更新操作;更新操作结束后,在本地存储更新操作结果并将所述更新操作结果返回管理端。
[0006] 其中,所述获取管理端的更新执行信息,并依此解析出客户端更新信息包括:
[0007] 获取管理端的分组信息及更新信息;其中,所述分组信息是管理端按照站点或服务的差异将客户端分割成若干组的信息,分组信息包括分组名称和客户端ID列表;所述更新信息包括分组名称和客户端实际更新目录;通过将客户端ID与所述分组信息比对,识别出客户端所属的分组;根据客户端所属的分组从管理端的更新信息中解析出客户端更新信息。
[0008] 可选地,所述方法还包括:在执行更新操作之前,打包所述需要更新的文件得到归档包,在本地存储该归档包的备份信息并将所述备份信息返回管理端。
[0009] 可选地,所述方法还包括:获取管理端的回滚执行信息;从所述回滚执行信息中判断出客户端中需要停止、启动、或重启的站点或者服务;根据所述回滚执行信息,读取本地存储的备份信息,将需要回滚的内容从所述归档包中释放以用于覆盖更新失败的文件;按照停止站点、停止服务、恢复文件、启动服务、启动站点的顺序执行回滚操作;回滚操作结束后,将回滚操作结果返回管理端。
[0010] 可选地,所述方法还包括:更新操作结束后,从更新操作结果中获取更新后的文件的信息-摘要算法MD5值;将所述MD5值记录于本地文件中并向管理端返回该MD5值以用于管理端对更新操作结果进行校验。
[0011] 可选地,所述方法还包括:获取管理端的删除执行信息;根据所述删除执行信息,获取客户端需要删除的内容信息;执行删除操作,并将删除操作结果返回管理端。
[0012] 依据本发明的另一方面,本发明实施例提供了一种客户端,包括:信息处理模块,用于获取管理端的更新执行信息,并依此解析出客户端更新信息;站点控制模块,用于依据规范的站点命名原则,从客户端更新信息中判断出客户端中需要停止、启动、或重启的站点;服务控制模块,用于依据规范的应用命名原则,从客户端更新信息中判断出客户端中需要停止、启动、或重启的服务;更新模块,用于从客户端更新信息中确定出需要更新的文件,并按照停止站点、停止服务、更新文件、启动服务、启动站点的顺序自动执行更新操作,更新操作结束后,在本地存储更新操作结果并将所述更新操作结果返回管理端。
[0013] 其中,所述信息处理模块包括:分组信息获取子模块,用于获取管理端的分组信息及更新信息;其中,所述分组信息是管理端按照站点或服务的差异将客户端分割成若干组的信息,分组信息包括分组名称和客户端ID列表;所述更新信息包括分组名称和客户端实际更新目录;分组比对子模块,用于通过将客户端ID与所述分组信息比对,识别出客户端所属的分组;解析子模块,用于根据客户端所属的分组从管理端的更新信息中解析出客户端更新信息。
[0014] 可选地,所述客户端还包括:备份模块,用于在执行更新操作之前,打包所述需要更新的文件得到归档包,在本地存储该归档包的备份信息并将所述备份信息返回管理端。
[0015] 可选地,所述信息处理模块,还用于获取管理端的回滚执行信息;所述站点控制模块,还用于从所述回滚执行信息中判断出客户端中需要停止、启动、或重启的站点;所述服务控制模块,还用于从所述回滚执行信息中判断出客户端中需要停止、启动、或重启的服务;所述客户端还包括:回滚模块,用于根据所述回滚执行信息,读取本地存储的备份信息,将需要回滚的内容从所述归档包中释放以用于覆盖更新失败的文件,按照停止站点、停止服务、恢复文件、启动服务、启动站点的顺序执行回滚操作,回滚操作结束后,将回滚操作结果返回管理端。
[0016] 可选地,所述客户端还包括:校验模块,用于更新操作结束后,从更新操作结果中获取更新后的文件的信息-摘要算法MD5值;将所述MD5值记录于本地文件中并向管理端返回该MD5值以用于管理端对更新操作结果进行校验。
[0017] 可选地,所述信息处理模块,还用于获取管理端的删除执行信息;所述客户端还包括:删除模块,用于根据所述删除执行信息,获取客户端需要删除的内容信息;执行删除操作,并将删除操作结果返回管理端。
[0018] 依据本发明的再一个方面,本发明实施例提供了一种多站点自动更新系统,其特征在于,包括管理端和至少一个上述的客户端;其中,所述管理端,用于向所述客户端提供更新信息、分组信息和执行信息,并保存操作记录。
[0019] 本发明的有益效果为:本发明实施例提供的多站点自动更新的方法、客户端和系统,通过获取管理端的更新执行信息,并依此解析出客户端更新信息,解析出的客户端更新信息能够区分站点、服务和普通内容;然后依据规范的站点命名原则和应用命名原则,从客户端更新信息中判断出客户端中需要停止、启动、或重启的站点和/或服务,从而准确执行相关动作,保证更新过程不出现站点异常;接着从客户端更新信息中确定出需要更新的文件,按照停止站点、停止服务、更新文件、启动服务、启动站点的顺序自动执行更新操作,保证了安全、快速、准确的完成客户端上多个站点的自动更新;更新操作结束后,在本地存储更新操作结果并将所述更新操作结果返回管理端,以使得更新操作具有可追溯性。由此可知,本发明的技术方案能够解决现有技术中需要逐个站点手动进行更新带来的问题,在提高工作效率的同时,保证了多个站点自动更新的安全性、准确性和可靠性。
[0020] 进一步地,管理端可以按照站点或服务的差异将客户端分割成若干组,组内客户端多为负载均衡配置,不同的分组更新内容不同;管理端通过向客户端提供具有分组信息的更新信息,能够减少更新信息的内容重复,实现管理端对多套负载均衡配置的客户端同时进行更新操作,扩大了自动更新站点的数量规模。
[0021] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

[0022] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0023] 图1示意性示出了本发明实施例的一种多站点自动更新方法的流程图;
[0024] 图2示意性示出了本发明实施例提供的多站点自动更新系统构架图;
[0025] 图3示意性示出了本发明实施例的一种客户端的结构图;
[0026] 图4示意性示出了本发明实施例的另一种客户端的结构图;
[0027] 图5示意性示出了本发明实施例提供的多站点自动更新系统的结构框图。

具体实施方式

[0028] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0029] 本发明的主要技术构思在于,客户端根据管理端的更新执行信息解析出能够区分站点、服务和普通内容的客户端更新信息,依据规范的站点命名原则和服务命名原则,从客户端更新信息中判断出客户端中哪些站点需要停止、启动、或重启的站点和/或服务,按照停止站点、停止服务、更新客户端文件、启动服务、启动站点的顺序自动执行更新操作,从而准确执行相关动作,保证更新过程不出现站点异常,从而安全、快速、准确的完成客户端上多个站点的自动更新;更新结束后,在本地存储更新操作结果并将所述更新操作结果返回管理端,以使得更新操作具有可追溯性。另外本发明还可以在管理端提供带有分组信息的更新执行信息,减少更新信息的内容重复,实现管理端对多套负载均衡配置的客户端同时进行更新操作,扩大了自动更新站点的数量规模。
[0030] 图1示出了根据本发明实施例的一种多站点自动更新方法的流程图。如图1所示,本发明实施例提供的一种多站点自动更新方法,包括如下步骤:
[0031] S11、获取管理端的更新执行信息,并依此解析出客户端更新信息。
[0032] 多站点自动更新系统运行需要管理端与客户端两个角色,由管理端提供更新执行信息;客户端获取更新执行信息后实现备份、更新、回滚、重启等功能。
[0033] 针对负载均衡配置的客户端,管理端还可以按照站点或服务差异将客户端分割成若干组,并构造分组信息文件。分组是为了减少重复内容。分组信息记录于管理端文件,配置后基本不变,分组信息格式:分组名称、客户端ID列表。
[0034] 为此管理端在向客户端发送更新执行信息时,需要包含有分组名称。管理端可以按照指定的更新文件目录规则,例如第一层目录名为所需更新分组名称,其余为客户端实际目录的结构自动生成更新信息文件。管理端在向客户端发送更新执行指令时,将该分组信息和更新信息一并分发给多个客户端。
[0035] 如图2所示,图2为本发明实施例提供的多站点自动更新系统构架图。管理端分发分组信息和更新信息给每个受控的客户端,这些客户端按照站点或服务差异分割成若干组,不同分组内客户端需要更新的内容不同。分组信息包括分组名称和客户端ID列表,更新信息包括分组名称和客户端实际更新目录。分组内的每个客户端获取管理端的分组信息及更新信息后,通过将自身ID与所述分组信息比对,识别出自身所属的分组,并根据自身所属的分组从管理端的更新信息中解析出客户端更新信息,然后在客户端本地执行相应操作。
[0036] 管理端发布的信息与客户端返回的信息可以依靠开源工具Saltstack实现。根据管理端的执行信息在客户端上能够自动实现更新、备份、回滚、删除、校验、重启等功能。
[0037] S12、依据规范的站点命名原则,从客户端更新信息中判断出客户端中需要停止、启动、或重启的站点。
[0038] 当一台客户端上部署多个站点时,客户端依据规范的站点命名原则,从客户端更新信息中判定出客户端上哪些站点需要停止、启动或重启,并执行相关动作。其中在停止站点操作过程中,还需要获取需要停止站点的进程值,该进程值可以由管理端在执行信息中提供。当站点内多处内容需要修改时,建立判定锁,防止同一站点多次执行重复操作。站点的执行操作结果根据需要可以列表数据结构的形式单独返回管理端。
[0039] S13、依据规范的服务命名原则,从客户端更新信息中判断出客户端中需要停止、启动、或重启的服务。
[0040] 当一台客户端提供多种服务时,客户端依据规范的应用命名原则,从客户端更新信息中判定出客户端上需要停止、启动、重启的服务项,该服务可以为Java应用,并执行指定的操作,执行的结果根据需要可以列表数据结构形式单独返回管理端。
[0041] 说明:上述步骤S12和S13是可以同时进行的,管理端的更新执行信息也可以仅是指示客户端停止、启动、重启某个或某些站点或服务,不涉及客户端文件的更新,此时客户端对站点或服务的执行操作结果需要单独返回管理端。
[0042] S14、从客户端更新信息中确定出需要更新的文件。
[0043] 客户端根据管理端的更新执行信息生成的客户端更新信息,从客户端更新信息中能够区分站点、服务与普通内容,该普通内容可以为客户端文件或配置信息,客户端根据生成的客户端更新信息自动维护着相关站点与服务。
[0044] 在生成的客户端更新信息中,包含有客户端实际更新目录,客户端依据该实际更新目录,从管理端获取到更新源文件,然后对客户端本地的目的文件进行更新操作。
[0045] S15、按照停止站点、停止服务、更新文件、启动服务、启动站点的顺序执行更新操作。
[0046] 为保证更新安全,每个站点的执行顺序依次为停止站点、停止服务、更新文件、启动服务、启动站点,若更新内容不包括服务或者站点,将不执行站点或服务的停止或启动。
[0047] 当更新执行信息指示客户端上有多个站点需要同步更新时,这些多个站点可以独立地、同步执行各自的更新操作。
[0048] S16、更新操作结束后,在本地存储更新操作结果并将所述更新操作结果返回管理端。
[0049] 更新操作结束后,更新操作结果返回管理端,并在本地存储该更新操作结果。更新操作结果记录有具体站点、和/或服务,和/或客户端文件更新成功或更新失败的内容。该对更新操作结果进行记录和返回,能使得更新操作具有可追溯性。
[0050] 在管理端保存有客户端执行更新操作的结果,并按照操作人员信息、操作时间、操作内容、操作结果记录于管理端文件。
[0051] 在本发明的一个方法实施例中,本发明的多站点自动更新方法,还可以包括步骤:在执行自动更新操作之前,打包所述需要更新的文件得到归档包,在本地存储该归档包的备份信息并将所述备份信息返回管理端。
[0052] 客户端接收到管理端的更新执行信息后,从更新执行信息中解析出客户端更新信息,再从客户端更新信息中确定出需要更新的文件信息,在对该文件进行变动之前,首先将需要变动的文件归档至本地备份,并在本地存储归档的备份信息,该备份信息记录有归档包的文件名,同时将备份信息返回客户端。本方法实施例在客户端文件更新之前自动备份文件,保证了多站点自动更新方法的安全性和可靠性。
[0053] 在本发明的另一个方法实施例中,本发明的多站点自动更新方法,还可以包括步骤:获取管理端的回滚执行信息;从所述回滚执行信息中判断出客户端中需要停止、启动、或重启的站点或者服务;根据所述回滚执行信息,读取本地存储的备份信息,将需要回滚的内容从所述归档包中释放以用于覆盖更新失败的文件;按照停止站点、停止服务、恢复文件、启动服务、启动站点的顺序执行回滚操作;回滚操作结束后,将所述回滚操作结果返回管理端。
[0054] 当客户端执行更新操作失败时,也会将更新操作结果返回管理端,管理端根据更新失败的更新操作结果生成回滚执行信息,客户端获取管理端的回滚执行信息后,读取本地备份信息,将需要回滚的内容从归档包中释放并覆盖更新失败的文件。回滚执行信息中包含有站点或服务内容,从所述回滚执行信息中判断出客户端中需要停止、启动、或重启的站点或者服务,然后按照停止站点、停止服务、恢复文件、启动服务、启动站点的顺序执行回滚操作,以保证回滚操作的安全性;若回滚内容不包括服务或者站点,将不执行站点或服务的停启。回滚操作结果需要返回管理端。本方法实施例为多站点自动更新失败时提供了一种解决方案,保证了多站点自动更新方法的稳定性和可靠性。
[0055] 在本发明的再一种方法实施例中,本发明的多站点自动更新方法,还可以包括步骤:更新操作结束后,从更新操作结果中获取更新后的文件的信息-摘要算法MD5值;将所述MD5值记录于本地文件中并向管理端返回该MD5值以用于管理端对更新操作结果进行校验。
[0056] MD5即Message-Digest Algorithm 5(信息-摘要算法5),又称为摘要算法、哈希算法等,用于确保信息传输完整一致。在客户端更新操作结束后,自动获取客户端更新文件的MD5值并记录于本地文件中,文件内容格式为“文件名:MD5”,每行一条,同时也向管理端返回以文件名为键,MD5为值的字典类型数据。管理端收到该MD5值后,依据该MD5值对客户端的更新内容进行安全性、保密性验证以及版本检测。本方法实施例在客户端文件更新之后自动获取更新文件的MD5值并返回管理端,保证了多站点自动更新方法的安全性和完整性。
[0057] 在本发明的又一种方法实施例中,本发明的多站点自动更新方法,还可以包括步骤:获取管理端的删除执行信息;根据所述删除执行信息,获取客户端需要删除的内容信息;执行删除操作,并将删除操作结果返回管理端。
[0058] 例如当客户端执行更新操作成功后,会将更新操作结果返回管理端,管理端根据更新成功的更新操作结果生成删除执行信息,客户端获取管理端的删除执行信息后,对在执行更新操作之前备份的归档包进行删除。本方法实施例为多站点自动更新成功时提供了一种解决方案,保证了多站点自动更新方法的完整性和安全性。
[0059] 基于与上述方法实施例相同的发明构思,图3示出了根据本发明实施例的一种客户端的结构图。如图3所示,本发明实施例提供的客户端300,包括:
[0060] 信息处理模块310,用于获取管理端的更新执行信息,并依此解析出客户端更新信息;
[0061] 站点控制模块320,用于依据规范的站点命名原则,从客户端更新信息中判断出客户端中需要停止、启动、或重启的站点;
[0062] 服务控制模块330,用于依据规范的应用命名原则,从客户端更新信息中判断出客户端中需要停止、启动、或重启的服务;
[0063] 更新模块340,用于从客户端更新信息中确定出需要更新的文件,并按照停止站点、停止服务、更新文件、启动服务、启动站点的顺序自动执行更新操作,更新操作结束后,在本地存储更新操作结果并将所述更新操作结果返回管理端。
[0064] 在本发明的一个实施例中,本发明实施例提供的上述信息处理模块310可以包括:
[0065] 分组信息获取子模块,用于获取管理端的分组信息及更新信息;其中,所述分组信息是管理端按照站点或服务的差异将客户端分割成若干组的信息,分组信息包括分组名称和客户端ID列表;所述更新信息包括分组名称和客户端实际更新目录;
[0066] 分组比对子模块,用于通过将客户端ID与所述分组信息比对,识别出客户端所属的分组;
[0067] 解析子模块,用于根据客户端所属的分组从管理端的更新信息中解析出客户端更新信息。
[0068] 在本发明一个产品实施例中,参见图4,进一步地在图3所示的客户端结构的基础上,本发明实施例提供的另一种客户端400,还包括:
[0069] 备份模块450,用于在执行更新操作之前,打包所述需要更新的文件得到归档包,在本地存储该归档包的备份信息并将所述备份信息返回管理端。
[0070] 在本发明另一个产品实施例中,仍参见图4,本发明实施例提供的客户端400,还包括:
[0071] 回滚模块460,用于根据管理端的回滚执行信息,读取本地存储的备份信息,将需要回滚的内容从归档包中释放以用于覆盖更新失败的文件;按照停止站点、停止服务、恢复文件、启动服务、启动站点的顺序执行回滚操作,回滚操作结束后,将回滚操作结果返回管理端。其中,
[0072] 上述信息处理模块310,还用于获取管理端的回滚执行信息。
[0073] 上述站点控制模块320,还用于从所述回滚执行信息中判断出客户端中需要停止、启动、或重启的站点。
[0074] 上述服务控制模块330,还用于从所述回滚执行信息中判断出客户端中需要停止、启动、或重启的服务。
[0075] 在本发明再一个产品实施例中,仍参见图4,本发明实施例提供的客户端400,还包括:
[0076] 校验模块470,用于更新操作结束后,从更新操作结果中获取更新后的文件的信息-摘要算法MD5值;将所述MD5值记录于本地文件中并向管理端返回该MD5值以用于管理端对更新操作结果进行校验。
[0077] 在本发明又一个产品实施例中,仍参见图4,本发明实施例提供的客户端400,还包括:
[0078] 删除模块480,用于根据所述删除执行信息,获取客户端需要删除的内容信息;执行删除操作,并将删除操作结果返回管理端。其中,
[0079] 上述信息处理模块310,还用于获取管理端的删除执行信息。
[0080] 本发明产品实施例的客户端中各模块的具体工作方式,可以参见上述本发明方法实施例中的相关内容,在此不再赘述。
[0081] 基于与上述方法实施例相同的发明构思,图5示出了根据本发明实施例的一种多站点自动更新系统的结构框图。如图5所示,本发明实施例提供的一种多站点自动更新的系统,包括管理端500和至少一个上述的客户端(1,2,…N);其中,所述管理端500,用于向客户端提供更新信息、分组信息和执行信息,并保存操作记录。
[0082] 管理端的执行信息,包括更新执行信息、回滚执行信息、删除执行信息等,通过管理端的交互界面向客户端下发,指定客户端执行指定操作。客户端将自动执行的更新结果、备份结果、回滚结果、MD5值、删除结果返回给管理端,管理端将这些操作执行结果记录于管理端文件。
[0083] 综上所述,本发明实施例提供的多站点自动更新方法、客户端和系统,通过获取管理端的更新执行信息,并依此解析出客户端更新信息,解析出的客户端更新信息能够区分站点、服务和普通内容;然后依据规范的站点命名原则和应用命名原则,从客户端更新信息中判断出客户端中需要停止、启动、或重启的站点和/或服务,从而准确执行相关动作,保证更新过程不出现站点异常;接着从客户端更新信息中确定出需要更新的文件,按照停止站点、停止服务、更新文件、启动服务、启动站点的顺序自动执行更新操作,保证了安全、快速、准确的完成客户端上多个站点的自动更新;更新操作结束后,在本地存储更新操作结果并将所述更新操作结果返回管理端,以使得更新操作具有可追溯性。由此可知,本发明的技术方案能够解决现有技术中需要逐个站点手动进行更新带来的问题,在提高工作效率的同时,也保证了多个站点自动更新的安全性、准确性和可靠性。
[0084] 进一步地,管理端可以按照站点或服务的差异将客户端分割成若干组,组内客户端多为负载均衡配置,不同的分组更新内容不同;管理端通过向客户端提供具有分组信息的更新信息,能够减少更新信息的内容重复,实现管理端对多套负载均衡配置的客户端同时进行更新操作,扩大了自动更新站点的数量规模。
[0085] 进一步地,在执行自动更新操作之前,打包需要更新的文件得到归档包,在本地存储该归档包的备份信息并将所述备份信息返回管理端的方案,能够保证多站点自动更新的安全性和可靠性。
[0086] 进一步地,当客户端执行更新操作失败时,通过执行回滚操作,读取本地备份信息,将需要回滚的内容从归档包中释放并覆盖更新失败的文件,回滚操作结果返回管理端,为多站点自动更新失败时提供了一种解决方案,保证了多站点自动更新方法的稳定性和可靠性。
[0087] 进一步地,更新操作结束后,从更新操作结果中获取更新后的文件的信息-摘要算法MD5值;将所述MD5值记录于本地文件中并向管理端返回该MD5值以用于管理端对更新操作结果进行校验的方案,保证了多站点自动更新方法的安全性和完整性。
[0088] 进一步地,客户端根据管理端的删除执行信息,获取客户端需要删除的内容信息,执行删除操作,并将删除操作结果返回管理端的方案,保证了多站点自动更新方法的完整性和安全性。
[0089] 需要说明的是:
[0090] 本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0091] 本文中所称的“一个实施例”、“实施例”或者“一个或者多个实施例”意味着,结合实施例描述的特定特征、结构或者特性包括在本发明的至少一个实施例中。此外,请注意,这里“在一个实施例中”的词语例子不一定全指同一个实施例。
[0092] 此外,还应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。