电信多分支网络管理系统的自动升级方法及装置转让专利

申请号 : CN200610149653.1

文献号 : CN101136770B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 钟德平方马全锐朱岩

申请人 : 中兴通讯股份有限公司

摘要 :

本发明公开了一种电信多分支网络管理系统的自动升级方法及装置。为解决现有技术中升级维护操作复杂、升级维护效率低及执行升级操作的精确性低的问题而发明。本发明的装置包括;升级中心、服务端升级代理、客户端升级服务、客户端升级代理;本发明的方法包括:服务端升级代理获取升级中心的升级包,并运行升级包完成升级操作;客户端升级代理访问客户端升级服务,检测客户端版本是否与服务端版本一致,如果不一致,则客户端升级代理连接升级中心获取升级包并运行,将客户端升级或回退到与服务端版本一致的状态。这样,能够降低现场升级维护操作的复杂性,提高升级维护效率以及执行升级操作的精确性,降低电信网管系统实际的运营成本,性价比高。

权利要求 :

1.一种电信多分支网络管理系统的自动升级方法,其特征在于,包括以下步骤:(1)当需要升级服务端时,服务端升级代理获取升级中心的升级包,并运行升级包完成升级操作;

(2)客户端升级代理访问客户端升级服务,检测客户端版本是否与服务端版本一致,如果检测结果为是,步骤结束;如果检测结果为否,则进入步骤(3);

(3)客户端升级代理连接升级中心获取升级包并运行,将客户端升级或回退到与服务端版本一致的状态;

其中,所述的步骤(1)具体为:

(11)当需要升级服务端时,服务端升级代理连接升级中心,并获取服务端当前可用的升级包信息;

(12)如果存在,则关闭服务端,通过FTP的方式连接到升级中心,并下载升级包;

(13)服务端升级代理对该升级包进行解压,并以独立进程运行升级包中的执行代码进行升级处理;

(14)服务端升级代理将经升级处理后的服务端启动;

其中步骤(13)中所述的升级处理依次包括:备份服务端旧文件、删除需要升级的服务端旧文件、替换服务端旧文件为升级文件、配置文件升级、数据库升级和更新版本信息。

2.按照权利要求1所述的电信多分支网络管理系统的自动升级方法,其特征在于,所述的步骤(11)中获取服务端当前可用升级包信息的方法为:服务端升级代理以本地服务端当前版本信息作为参数,访问升级中心信息扫描服务,获取服务端当前可用的升级包信息;

其中,所述的升级包信息包括升级包ID、升级包所属整个系统的名称、升级包的版本状态迁移信息和升级包所属分支系统所依赖的底层分支系统信息。

3.按照权利要求1所述的电信多分支网络管理系统的自动升级方法,其特征在于,所述的步骤(2)具体为:(21)客户端启动并登录服务器;

(22)客户端升级代理获取客户端的当前版本信息后访问客户端升级服务;

(23)客户端升级服务检测收到的版本信息与服务端当前的版本信息是否一致,如果检测结果为是,步骤结束;如果检测结果为否,则进入步骤(3)。 

4.按照权利要求1所述的电信多分支网络管理系统的自动升级方法,其特征在于,所述的步骤(3)具体为:(31)客户端代理连接升级中心,并获取客户端当前所需的升级包信息;

(32)如果存在,则关闭客户端,通过FTP的方式连接到升级中心,下载升级包;

(33)客户端升级代理对该升级包进行解压,并以独立进程运行升级包中的执行代码进行升级处理;

(34)将客户端升级或回退到与服务端版本一致的状态后,客户端升级代理启动客户端。

5.按照权利要求4所述的电信多分支网络管理系统的自动升级方法,其特征在于,所述的步骤(31)中获取客户端当前所需升级包信息的方法为:客户端升级代理以本地客户端当前版本信息作为参数,访问升级中心信息扫描服务,获取高于当前客户端版本信息而低于或等于所登录服务端当前版本信息的所有升级包信息;或者获取低于当前客户端版本信息而高于或等于所登录服务端当前版本信息的所有升级包信息;

其中,所述的升级包信息包括升级包ID、升级包所属整个系统的名称、升级包的版本状态迁移信息和升级包所属分支系统所依赖的底层分支系统信息。

6.按照权利要求4所述的电信多分支网络管理系统的自动升级方法,其特征在于,步骤(33)中所述的升级处理依次包括:备份客户端旧文件、删除客户端需要升级的旧文件、替换客户端的旧文件为升级文件、配置文件升级和更新版本信息。

7.按照权利要求1所述的电信多分支网络管理系统的自动升级方法,其特征在于,所述的步骤(1)前还包括:(A)系统根据实际需要开发升级包,并通过升级中心提供的FTP服务,将升级包上传到升级中心。

8.一种电信多分支网络管理系统的自动升级装置,其特征在于,包括:独立部署于任何位置的升级中心、独立部署于服务端的服务端升级代理,部署于服务端的客户端升级服务和独立部署于客户端的客户端升级代理,其中,所述升级中心,用于提供升级信息扫描服务,并接收通过FTP上传的已经制作好的升级包以及提供服务端和客户端升级所需升级包的FTP下载服务;

所述服务端升级代理,以独立进程运行,用于在升级中心获取升级包对服务端进行升级 处理,并在升级后启动服务端,其中对服务端进行升级处理包括:备份服务端旧文件、删除需要升级的服务端旧文件、替换服务端旧文件为升级文件、配置文件升级、数据库升级和更新版本信息;

所述客户端升级服务,用于获取本地服务端当前版本信息,与接收到的客户端的版本做版本的一致性检测,并将检测结果返回给客户端升级代理;

客户端升级代理,以独立进程运行,用于发送客户端版本到客户端升级服务,请求版本一致性检测,并在检测到版本不一致时从升级中心获取升级包,将升级包解压后对客户端进行升级处理。

9.按照权利要求8所述的电信多分支网络管理系统的自动升级装置,其特征在于,所述对客户端进行升级处理包括:

备份客户端旧文件、删除客户端需要升级的旧文件、替换客户端的旧文件为升级文件、配置文件升级和更新版本信息。 

说明书 :

技术领域

本发明涉及多分支系统,特别涉及电信多分支网络管理系统的自动升级方法及装置。

背景技术

近年来,随着电信行业的飞速发展,其网络管理系统的应用与推广也得到了快速发展,这使得电信网络管理系统的升级维护问题日益突出。目前在电信网络管理领域中,系统的升级维护往往通过现场维护人员手工操作,比如:在实际需要升级网管系统时,一般由现场维护人员手工完成升级包的获取、解压,再根据升级包中的说明文件信息执行升级文件覆盖、删除废弃文件、修改配置文件、执行数据库升级脚本以实现网管服务端所使用的数据库的升级,其中尤其是配置文件升级和数据库升级,非常繁琐,易于出错。
另一方面,目前对软件系统的自动升级的研究不少,比如:杀毒软件的病毒库自动升级更新、操作系统的升级等等,但是这些软件系统的升级设计,不涉及应用数据库的升级,仅仅是对当前运行的旧版本中的数据文件替换或配置文件的简单修改,升级功能单一,远不能满足电信网管系统的复杂升级功能需求。
此外,当前也存在对于电信网管系统的自动升级的研究,但都没有涉及数据库的升级问题,主要探索了主、备板的冗余而设计的平滑升级,也没有涉及到电信网管系统服务端与客户端的升级问题,更没有解决实际应用中客户端升级与服务端升级关系处理问题,无法满足当前电信网管系统的实际升级需求。所以,无法推广,使得当前电信网管系统的升级维护,通常仍旧使用操作繁琐、效率低下的手工升级方式。
最后,由于实际应用中电信运营商的网管系统数量大,地域分布范围广;人工升级方式所需的工作量极大,耗费大量的人力、物力,运营成本激增,而且操作复杂,效率低下。而当前对于复杂电信网管系统的自动升级又没有完整的解决方案;所以,如何简单、高效地完成空间分散、数量较大的网管系统的升级维护工作,节省人力、物力,降低运营成本,这自然成了迫切需要解决的问题。
电信网管系统的共同包括以下几个特点:
1.系统庞大,功能复杂;
2.分多层并行开发。由于系统庞大、功能复杂,所以电信网管系统一般都分为多层,每一层由一个或几个专门的小组或部门进行开发。此外由于技术更新较快,行业竞争激烈,要求研发周期尽可能短,所以一般都是多层同时开发。每一层从开发角度而言都是独立的分支系统;
3.单个系统分为客户端与服务端,即C/S结构;
4.多个网管服务端上下级联为拓扑网络结构;
5.多个客户端可同时共同使用同一个服务端,且同一个客户端也可先后连接不同的服务端;
6.服务端与客户端的升级不尽相同,服务端需要执行数据库升级;
7.客户端的升级依赖于客户端所连接的服务端的当前版本信息,必须与服务端一致,以便正常使用服务端所提供的功能。所以这就涉及到两方面问题:即当客户端版本低于服务端当前版本信息时,需要将客户端升级到与当前所连接服务端的版本一致;当客户端版本高于服务端当前版本信息时,则需要将客户端版本回退到与当前所连接服务端的版本一致。
8.实际运营中系统数量大,地域分布范围广;
9.系统网络相连。这些空间分散、数量众多的系统一般通过局域网等相连。
由于人工手动升级方式操作复杂、效率低下,而一般软件系统的自动升级方式提供的功能单一,极其有限,不能满足电信网管系统的特殊而复杂的升级功能需求;现有的电信系统的自动升级方案,没有区分网管系统服务端与客户端升级问题,没有处理客户端升级与服务端升级的依赖关系问题,更没有涉及服务端的应用数据库的自动升级问题。此外,无论是一般的软件系统自动升级还是当前已有电信系统的自动升级方案,都没有解决客户端的实际升级问题,即需要根据所连接服务端的当前版本来决定是采用向上升级方式,还是向下回退的升级方式,以便始终保证客户端版本与其连接的服务端版本一致。

发明内容

为了克服现有技术的缺陷和不足,本发明的目的在于提供一种电信多分支网络管理系统的自动升级方法及装置,能够降低现场升级维护操作的复杂性,大幅度提高升级维护效率以及执行升级操作的精确性,并节省人力、物力,极大地降低电信网管系统实际的运营成本。
为了达到上述目的,本发明一种电信多分支网络管理系统的自动升级方法,包括以下步骤:
(1)当需要升级服务端时,服务端升级代理获取升级中心的升级包,并运行升级包完成升级操作;
(2)客户端升级代理访问客户端升级服务,检测客户端版本是否与服务端版本一致,如果检测结果为是,步骤结束;如果检测结果为否,则进入步骤(3);
(3)客户端升级代理连接升级中心获取升级包并运行,将客户端升级或回退到与服务端版本一致的状态。
作为本发明的进一步改进,所述的步骤(1)具体为:
(11)当需要升级服务端时,服务端升级代理连接升级中心,并获取服务端当前可用的升级包信息;
(12)如果存在,则关闭服务端,通过FTP的方式连接到升级中心,并下载升级包;
(13)服务端升级代理对该升级包进行解压,并运行升级包中的执行代码进行升级处理;
(14)服务端升级代理将经升级处理后的服务端启动。
作为本发明的进一步改进,所述的步骤(11)中获取服务端当前可用升级包信息的方法为:
服务端升级代理以本地服务端当前版本信息作为参数,访问升级中心信息扫描服务,获取服务端当前可用的升级包信息;
其中,所述的升级包信息包括升级包ID、升级包所属整个系统的名称、升级包的版本状态迁移信息和升级包所属分支系统所依赖的底层分支系统信息。
作为本发明的进一步改进,步骤(13)中所述的升级处理依次包括:
备份服务端旧文件、删除需要升级的服务端旧文件、替换服务端旧文件为升级文件、配置文件升级、数据库升级和更新版本信息。
作为本发明的进一步改进,所述的步骤(2)具体为:
(21)客户端启动并登录服务器;
(22)客户端升级代理获取客户端的当前版本信息后访问客户端升级服务;
(23)客户端升级服务检测收到的版本信息与服务端当前的版本信息是否一致,如果检测结果为是,步骤结束;如果检测结果为否,则进入步骤(3)。
作为本发明的进一步改进,所述的步骤(3)具体为:
(31)客户端代理连接升级中心,并获取客户端当前所需的升级包信息;
(32)如果存在,则关闭客户端,通过FTP的方式连接到升级中心,下载升级包;
(33)客户端升级代理对该升级包进行解压,并运行升级包中的执行代码进行升级处理;
(34)将客户端升级或回退到与服务端版本一致的状态后,客户端升级代理启动客户端。
作为本发明的进一步改进,所述的步骤(31)中获取客户端当前所需升级包信息的方法为:
客户端升级代理以本地客户端当前版本信息作为参数,访问升级中心信息扫描服务,获取高于当前客户端版本信息而低于或等于所登录服务端当前版本信息的所有升级包信息;或者获取低于当前客户端版本信息而高于或等于所登录服务端当前版本信息的所有升级包信息;
其中,所述的升级包信息包括升级包ID、升级包所属整个系统的名称、升级包的版本状态迁移信息和升级包所属分支系统所依赖的底层分支系统信息。
作为本发明的进一步改进,步骤(33)中所述的升级处理依次包括:
备份客户端旧文件、删除客户端需要升级的旧文件、替换客户端的旧文件为升级文件、配置文件升级和更新版本信息。
作为本发明的进一步改进,所述的步骤(1)前还包括:
(A)系统根据实际需要开发升级包,并通过升级中心提供的FTP服务,将升级包上传到升级中心。
本发明一种电信多分支网络管理系统的自动升级装置,包括:独立部署于任何位置的升级中心、独立部署于服务端的服务端升级代理,部署于服务端的客户端升级服务和独立部署于客户端的客户端升级代理,其中,
所述升级中心,用于提供升级信息扫描服务,并接收通过FTP上传的已经制作好的升级包以及提供服务端和客户端升级所需升级包的FTP下载服务;
所述服务端升级代理,用于在升级中心获取升级包对服务端进行升级处理,并在升级后启动服务端;
所述客户端升级服务,用于获取本地服务端当前版本信息,与接收到的客户端的版本做版本的一致性检测,并将检测结果返回给客户端升级代理;
客户端升级代理,用于发送客户端版本到客户端升级服务,请求版本一致性检测,并在检测到版本不一致时从升级中心获取升级包,将升级包解压后对客户端进行升级处理。
作为本发明的进一步改进,所述对服务端进行升级处理包括:
备份服务端旧文件、删除需要升级的服务端旧文件、替换服务端旧文件为升级文件、配置文件升级、数据库升级和更新版本信息;
所述对客户端进行升级处理包括:
备份客户端旧文件、删除客户端需要升级的旧文件、替换客户端的旧文件为升级文件、配置文件升级和更新版本信息。
采用上述的方法和装置后,由于使用了服务端和客户端自动升级的系统,能够降低现场升级维护操作的复杂性,大幅度提高升级维护效率以及执行升级操作的精确性,并节省人力、物力,极大地降低电信网管系统实际的运营成本,性价比高。

附图说明

图1为本发明电信多分支网络管理系统的自动升级方法及装置的总体组成示意图;
图2为本发明电信多分支网络管理系统的自动升级方法及装置的升级中心示意图;
图3为本发明电信多分支网络管理系统的自动升级方法及装置的服务端升级流程图;
图4位本发明电信多分支网络管理系统的自动升级方法及装置的客户端升级流程图。

具体实施方式

本发明通过实现升级中心模块、服务端升级代理模块、客户端升级服务模块、客户端升级代理模块,共同完成网管系统的自动升级。即通过该方法设计出的自动升级系统,由以下四部分组成:
升级中心、服务端升级代理、客户端升级服务、客户端升级代理。
完成本发明还要约定各分支系统升级包描述信息的内容:
(A)提供升级包标识的唯一ID。该信息用于跟踪现场系统的升级历史信息;
(B)提供升级包所属的整个系统的名称。在信息扫描时以及执行升级前进行检测,以避免误用其他系统产品的升级包;
(C)提供升级包的版本状态迁移信息,即该升级包将系统从某个版本状态升级到另一版本状态的信息;该信息将决定升级包是否可执行;
(D)提供升级包所属分支系统所依赖的底层分支系统的信息。该信息用于决定升级执行路线,即在执行某个升级包之前,是否需要首先执行其依赖分支的升级包,以便升级后的系统能正确运行。
下面结合附图对本发明的具体实施方式作进一步详细说明。
如图1所示,为本发明的系统组成图,包括:
升级中心;
模块功能:提供Ftp服务功能以及升级包信息扫描服务功能,主要完成升级包的分发与升级信息扫描功能。
部署位置:可任意独立部署;
信息交互:接受服务端当前版本信息(服务端升级代理模块发送的)、或客户端当前版本信息(客户端升级代理发送的);发送升级信息给服务端升级代理、或客户端升级代理。接收Ftp上传(发布升级包时)、下载(执行升级时)升级包请求;接收、发送指定的升级包文件。
服务端升级代理;
模块功能:提供网管系统服务端升级信息检测,在需要升级时首先关闭网管系统服务端,再从升级中心下载升级包,最后启动升级包中的可执行程序,完成网管系统服务端的自动升级。
部署位置:部署在网管系统服务端,但必须以独立进程运行。
信息交互:获取本地服务端当前版本信息,发送给升级中心,请求升级信息;从升级中心模块获取当前升级信息。向升级中心模块发送Ftp下载升级包文件请求;从升级中心模块下载升级包文件。
客户端升级服务;
模块功能:提供服务端信息获取,与客户端升级代理共同完成客户端与本地服务端(即客户端当前所登录的服务端)版本一致性检测。
部署位置:必须部署于网管服务端,且与网管服务端在同一个进程内运行。
信息交互:接受客户端升级代理发送的客户端当前版本信息;获取本地服务端当前版本信息,分析版本一致性;将分析结果发送给客户端升级代理。
客户端升级代理;
模块功能:提供客户端与服务端版本一致性检测,在需要升级时首先关闭本地客户端;再连接升级中心,获取相应的升级包;最后启动升级包中的可执行程序,完成网管系统客户端的自动升级。
部署位置:必须部署于网管系统客户端,但以独立进程运行。
信息交互:获取本地客户端当前版本信息,发送给客户端升级服务,请求一致性分析;从客户端升级服务获取一致性分析结果。向升级中心发送客户端当前版本信息;从升级中心获取客户端升级信息。向升级中心发送Ftp下载升级包文件请求;从升级中心下载客户端升级包文件。
如图1所示,本方案实现步骤如下:
第一步:正确部署自动升级各模块,升级中心可部署于任意独立的服务器;服务端升级代理部署于服务端系统,但必须独立运行;客户端升级服务部署于服务端系统进程内运行;客户端升级代理部署于客户端系统,但独立运行;
第二步:发布升级包。根据实际需要(如修复故障、更新功能等)开发的升级包,利用升级中心提供的Ftp服务,将升级包上传到升级中心;
第三步:服务端升级代理访问升级中心,获取升级信息以及下载升级包,解压升级包,再运行升级包中的升级执行代码完成具体的升级操作;
第四步:由客户端升级代理访问客户端升级服务,获取版本一致性检测结果;若客户端版本与当前登录的服务端版本不一致时,则提示用户需要升级。用户确认需要升级后,由客户端升级代理访问升级中心,获取升级信息以及下载升级包,再运行下载到本地的升级包,将本地客户端升级(当客户端版本较低时)或回退(当客户端版本较高时)到与服务端版本一致的状态。
如图2所示,描述了升级中心功能示意图。
升级中心提供常规的Ftp服务,包括访问升级中心FTP服务上传升级包和访问升级中心FTP服务下载升级包;
此外,升级中心提供升级包信息扫描服务,由客户端升级代理或服务端升级代理访问升级中心信息稍描服务,获取当前提供的升级包信息;该服务提供两种服务功能,一种功能是指定一个当前版本信息,获取升级中心当前所有较新(即高于指定的当前版本信息)升级包信息,服务端升级时使用该功能;另一种功能是指定一个当前版本信息和将升级到的目标版本信息,获取升级中心当前所有可用(即高于当前版本,而低于或等于将升级到的目标版本,即客户端升级的所有升级包;或者低于当前版本,而高于或等于将升级到的目标版本,即客户端“回退”的所有升级包)的升级包,客户端升级时使用该功能。
如图3所示,描述了服务端升级的流程图。
(101)首先由用户根据服务端运行的实际需要,启动服务端升级代理;这里需要注意的是,服务端升级代理可以配置为在服务端启动时自动运行,并在整个运行过程中按照指定的时间间隔访问升级中心,检测升级信息。但是这样的风险较大!在实际运营中服务端一般不会轻易执行升级操作,只有在出现故障或现有功能不能满足局方需求时,才可能执行服务端的升级。此外,即时某个功能出现故障,也只针对使用了该功能的局方服务端的升级,而对于恰好没有使用该功能的局方服务端,一般不愿意执行升级,因为担心升级后引入其他难以意料的新故障。综上所述,服务端的升级较为谨慎,需要具体确认,所以一般不将服务端升级代理配置为自动运行,而是用户确认需要执行升级时由用户启动运行;但是,对于上下级联成拓扑网状结构的多个服务端而言(可以肯定这种情形下的服务端属于同一个局方),可以将服务端升级代理配置为依据上级服务端的版本执行自动升级,即当下级服务端版本低于上级服务端版本时,下级服务端将自动执行升级操作;
(102)在服务端升级代理启动后,服务段升级代理连接升级中心;同时将获取的本地服务端当前版本信息作为参数,访问升级中心信息扫描服务,获取服务端当前可用的升级包信息;
(103)若存在升级包信息,则关闭本地服务端;
(104)以Ftp方式连接到升级中心,下载用户指定的升级包;
(105)将升级包下载到本地后,解压升级包;
(106)以独立的进程启动并运行升级包中的执行代码;
(107)此后由升级包中的执行代码依次执行具体的升级操作包括
(A)备份旧文件,为了提高备份的效率,可采取只对将进行删除、修改、移动的目标进行备份;
(B)删除废弃文件,对于被升级版本中废弃的文件执行删除操作,以避免其对升级后新系统正常运行的影响;
(C)替换升级文件,将升级包中的升级文件拷贝到被升级版本中的目标位置;
(D)配置文件升级,执行配置升级操作,包括两种大的方式,一种是根据配置升级描述信息直接向被升级系统中的旧配置文件新增、修改、删除配置项,以完成对旧配置文件的升级操作,使得升级后的新系统得以正常运行;另一种是先使用新版本的配置文件模板覆盖掉旧文件,再根据配置迁移描述信息,将升级前的旧文件中的指定配置信息迁移到升级后的新配置文件中,以满足升级后新系统正常运行的要求;
其中,上述的配置升级描述信息是一种升级程序所用的信息描述文件,用于描述网管系统配置文件的升级信息,以便升级程序根据该描述信息,执行网管系统配置文件的升级更新操作。该信息文件为XML格式,其内容包括:描述将被升级程序直接升级的旧网管系统中的目标配置文件名称以及相对路径信息;描述将被直接升级的目标配置文件的格式。目前网管系统的配置文件一般为两种格式:XML格式和Properties格式,因为对于不同格式的文件,其升级处理所需要的信息差异很大,升级处理也不相同,所以需要明确描述将被升级的目标文件的格式信息;
描述具体的升级操作信息,包括:增加配置项:即需要升级程序根据该描述信息,向指定的目标文件中新增一配置项。对于这种情形,需要提供新增配置项在目标文件中的位置信息;对于需要升级用户在升级界面设置配置项值的新增配置项,还需要提供国际化提示信息和界面设置控件类型,以便升级程序根据这些信息,创建相应的升级设置界面,以便升级用户设置新增配置项的值,升级程序再将用户设置的值和配置项其他信息一起添加到指定的目标文件中;对于无需升级用户设置的,则必须在描述该新增配置项的同时,提供配置项的值;此外,还可限制用户设置值的范围、提供缺省值作为参考等等。
修改配置项:即描述需要升级程序修改的配置项的信息,以便升级程序根据该描述信息,将目标文件中的指定配置项直接修改,如修改配置项的名称、修改配置项的值、或者二者同时修改等等。对于修改名称,则需要提供修改后的新名称;对于修改值,则需要提供修改后的新值。
删除配置项:即描述需要升级程序删除的废弃配置项,以便升级程序根据该描述信息,将目标文件中的指定配置项直接删除。此时,需要提供被删除项的位置以及被删除项的名称即可。
上述的配置迁移描述信息是一种升级程序所用的信息描述文件,用于描述网管系统配置文件的迁移信息,以便升级程序根据该描述信息,将升级前旧网管系统中指定配置文件中的配置项的值读取出来,并保存到升级后新网管系统的指定配置文件中的指定配置项中,从而完成配置文件的升级更新操作。这提供另一种网管系统配置文件升级的方式。该信息文件为XML格式,其内容包括:
描述迁移的源文件信息,即升级程序将从升级前旧版本中哪个文件中读取哪些配置项的信息;
描述迁移的目标文件信息,即升级程序将向升级后新版本中哪个文件中保存已经获取信息到哪些配置项中;
描述迁移文件的格式。目前网管系统的配置文件一般为两种格式:XML格式和Properties格式,因为对于不同格式的文件,其迁移升级处理所需要的信息差异很大,迁移升级操作也不相同,所以需要明确描述将执行信息迁移文件的格式信息;
描述具体的迁移操作信息,包括:读取配置项在旧文件中位置和名称信息;将读取到的信息保存到新文件中具体配置项的位置和名称信息。
(E)数据库升级,若存在数据库升级,则根据数据库升级描述信息,按描述的顺序获取数据库升级脚本,并依次执行每一个升级脚本。若执行某一个具体的升级脚本时需要临时切换用户名/密码,则使用描述信息文件中指定切换的用户名/密码来执行该数据库升级脚本;
其中,上述数据库升级描述信息是一种升级程序所用的信息描述文件,用于描述网管系统数据库升级信息,以便升级程序根据该描述信息,依次执行提供的数据库升级脚本文件,从而完成网管系统数据库的升级更新操作。该信息文件为XML格式,其内容包括:
首先按照版本变迁划分数据库升级脚本,即从某个版本升级到另一个版本过程中,需要执行哪些数据库升级脚本;
再按照数据源(一般情形下,网管系统的运行同时使用多个数据源)划分数据库升级脚本,即在特定的版本变迁下,某个数据源需要执行哪些数据库升级脚本;
再按照数据库语言环境(一般情形下,数据库运行在两个语言环境之一,即中文或英文环境)划分数据库升级脚本,即针对特定的数据源,某个语言环境下需要执行哪些数据库升级脚本;
再按照数据库类型(一般情形下,网管系统使用某一种类型的数据库,比如:Sql Server2000、Oracle、Sybase、Mysql等等)划分数据库升级脚本,即针对特定的语言环境,某个类型的数据库升级需要执行哪些数据库升级脚本。
(F)更新版本信息,在执行实行升级包后,需要更新版本信息,根据升级包的目标版本信息作为升级后新系统的版本信息,修改指定的信息文件。
(108)升级结束后启动服务端,再退出升级程序。
如图4所示,为客户端升级的流程图。
由用户每次启动客户端登录服务端时触发一次客户端升级代理的运行。
(201)启动客户端;
(202)登录服务端;
(203)客户端升级代理访问客户端升级服务,检测版本一致性;首先获取本地客户端的当前版本信息,再访问所登录服务端的客户端升级服务,发送客户端当前版本信息,请求版本一致性分析结果;若二者版本一致,则退出客户端升级代理,让用户继续执行后续操作;若二者版本不一致,则提示用户需要升级当前客户端;
(204)用户确认需要升级后,客户端升级代理连接升级中心,访问升级信息扫描服务,获取高于当前客户端版本信息而低于或等于所登录服务端当前版本信息的所有升级包信息(客户端版本较低时);或者获取低于当前客户端版本信息而高于或等于所登录服务端当前版本信息的所有升级包信息(客户端版本较高时)。
(205)若存在升级包信息,则关闭本地客户端;
(206)以Ftp方式连接到升级中心,下载所需的升级包;
(207)将升级包下载到本地后,解压升级包;
(208)以独立的进程启动并运行升级包中的执行代码;
(209)此后由升级包中的执行代码依次执行具体的升级操作,具体的升级操作与服务端升级类似,只是客户端升级不涉及数据库的升级操作,依次包括备份旧文件、删除废弃文件、替换升级文件、配置文件升级、更新版本信息;
(210)升级完毕后,自动启动客户端,再退出升级程序。
采用上述所述的方法后,能够达到以下几点有益效果:
(1)解决了服务端升级问题。即对于上下级联成拓扑网状结构的多个服务端之间的自动升级,即用户只需要执行一个上级服务端的升级,所有下级服务端将自动完成升级操作。同时还解决了服务端所使用的数据库的升级问题;
(2)解决了客户端的实际升级问题。即客户端的升级依赖于所连接服务端的版本,当客户端版本较高时,将执行“回退”的升级方式;当客户端版本较低时,将执行向上升级的方式;最终与所连接服务端的版本保持一致,以便客户端能正常使用所连服务端提供的功能;
(3)适用范围广。该技术方案适用范围更广,同时支持一般软件系统和多分支软件系统的自动升级;
(4)提高了升级维护效率。使用多分支系统的自动升级方法,实际执行升级维护的效率高很多;
(5)降低操作复杂性。对最终用户透明,多分支系统的实际升级操作简单,用户如同操作普通系统的升级一样执行多分支系统的升级操作;对于客户端的升级,用户不区分实际是“升级”还是“回退”;
(6)具体实行升级的代码在升级包中,升级代理功能简单,这使得整个升级系统的各部分之间耦合度降低,易于扩展。
(7)这种方法实现代价低廉,但给最终用户带来的性能的提升是显著的,性价比较高。