专利名称::一种通信网管系统中客户端程序的自动发布方法
技术领域:
:本发明涉及通信网网管系统中的(AS结构的客户端模块的发布和升级,具体的说是提供一种通信网管系统中客户端程序的自动发布方法。
背景技术:
:在移动通信中,业务的需求在不断地变化,网络管理功能也必须为了满足业务的新需求而发生改变,体现在网管系统上,就表现为网络管理系统功能的不断丰富,不断地有新的版本产生。对于c\s结构的模块来说,有很多人在不同的环境中使用,这就带来一个客户端发布的问题。按照原有的机制,发布时一般进行手动发布,即由用户到固定的机器上取下发布的客户端,在本地机器上覆盖已有的客户端,实现客户端的手动发布。这种办法的缺点非常明显,使用人员操作太麻烦,费时费力,效率低,而且在手动操作过程中容易出错。'
发明内容本发明是提供一种通信网管系统中客户端程序的自动发布方法,使c\s模块的客户端程序能够根据修改的功能模块自动发布,在发布的过程中,如果出现失败,将自动安全地保存老版本而不影响老版本的运行。本发明解决其技术问题所采用的技术方案是一种通信网管系统中客户端程序的自动发布方法,包括以下步骤A、在服务器的数据库中维护不同的版本信息,在所述服务器的指定路径下存放不同的版本;'B、在用户本地机器的注册表里面,保存正使用版本的版本号;C、调用自动升级模块进行发布;D、将用户本地的版本号和服务器上的版本号进行比较,以确定是否进行发布;E、把升级信息组装成数据结构,多个模块升级时,把升级信息组装成链表,不同的模块使用不同的线程下载;F、发布完成后,修改本地注表中的版本信息。步骤C中以"-mID1-v版本号-mID2-v版本号-mID3-v版本号…"的格式调用升级模块。步骤D中将当前数据库版本与待升级的版本比较是通过一个比较函数来完成的,同时要升级的版本信息在界面上提供给用户,用户可以修改版本信息,以下载不同的版本。在步骤E中特定数据结构作为升级线程的入口参数传给线程。本发明的一种通信网管系统中客户端程序的自动发布方法可以应用于多个模块的同时发布。在本发明中,从服务器上下载后的版本保存在临时目录中,不会直接覆盖现有版本,如果在下载过程中出现问题,保证了现有版本的可用。和以往的手工对客户端发布相比,本发明节省了发布过程的时间,提高了升级版本的可控性,并能够对不同的模块升级不同的版本,在实际应用中取得了易用,安全稳定的效果。下面结合附图和实施例对本发明进一步说明。图1为本发明的一种通信网管系统中客户端程序的自动发布方法的整体结构图2为本发明的一种通信网管系统中客户端程序的自动发布方法的流程图;-图3为本发明的一种通信网管系统中客户端程序的自动发布方法的流程图。具体实施例方式下面结合附图和具体实施例对本发明的一种通信网管系统中客户端程序的自动发布方法作进一步的描述。图l是自动发布的整体结构图。整体结构分为以下部分在运行各C\S模块的客户端时,客户端检查是否有最新的版本,如果有最新的版本,调用自动升级模块(lcupdate.exe)。自动升级模块从服务器上取得要升级的版本及存放路径,从服务器上下载客户端,对本地的程序进行更新。服务器端提供数据库支持,存放各客户端的版本,并把最新的客户端分别存放在不同的路径下面,由自动升级模块下载。自动升级模块也支持客户端程序的初次安装,为用户提供一键操作的客户端安装方式。自动升级模块提供自动安装客户端、中间件及客户端模块的自动配置功能。具体的方法如下用户通过FTP的方式到指定的服务器上下载自动升级模块,运行自动升级模块后,用户选定需要安装的客户端,由自动升级模'块自动把客户端下载到本机。自动升级模块同时检査本机是否安装了TUXEDO中间件,如果没有安装中间件,自动升级模块自动安装TUXEDO中间件。安装完成后,自动升级模块自动检查并完成中间件及客户端的配置。在整个操作过程中,用户只需要选定要安装的客户端,其他的工作由自动升级模块自动完成。图2、图3介绍了自动发布的流程。C\S结构的客户端程序在启动及运行的过程中,自动取得服务器上最新的版本号,和存放在本地注册表中的版本号进行比较,本地注册表中的版本号存放在"HKEY—CURRENT—USER\Software\LCLGNMSVersion"下面,以模块名、版本号按字符串的方式存放,如果版本号相同,则不用升级,如果发现服务器上的.版本号高,则提示用户升级最新的版本,调用自动升级模块进行升级。同时,在提示升级的界面上,用户也可以修改要升级的版本,以方便用户能够下载其他版本。自动升级模块按以下方法调用"lc叩date-mID1-v版本号-mID2-v版本号-mlD3-v版本号…"。其中m参数表示需要升级的模块id,v参数表示升级的版本号,可以同时升级多个模块。自动升级模块査找数据库,取出服务器的地址、端口号、登彔用户名、密码。数据结构如下<table>tableseeoriginaldocumentpage5</column></row><table>自动升级模块根据需要升级的模块id,从数据库中取出版本存放的路径等信息,具体数据表结构如下<table>tableseeoriginaldocumentpage6</column></row><table>自动升级模块把需要的信息装载在FtpDownloadParam数据结构中,并根据多个模块组装成一个链表。FtpDownloadParam数据结构如下StructFtpDownloadParam{intmoduleid;charmodulename[30];charmodulechinaname[30];charserverpath[120];自动升级模块把FtpDownloadParam数据体作为入口参数传给线程,自动升级模块启用不同的线程下载不同的模块。同时自动升级模块查询各模块是否已经有实例在运行,提示用户是否需要下载,需要下载时,先关闭已经打开的实例。用户确定不需要下载时,在界面上显示此模块没有下载。自动升级模块对不同的模块创建不同的下载线程,己经下载的客户端暂时不替换现有的系统,只是存放在WINDOWS平台的临时目录下面。在下载过程中,自动升级模块检查已经下载完成的字节数及需要下载的总字节数,自动计算出下载进度,并在自动升级界面上根据升级的进度不断地提示用户。同时,自动升级模块根据FTP协议,自动判断下载过程中是否有错误,如果出现错误,提示用户"下载过程出错,可以用手动的方式升级"。把客户端正常下载完成后,自动升级模块自动覆盖原客户端,同时自动升级模块把注册表中版本号更新成下载的版本号。在版本更新完成后,自动删除临时目录中的版本。以上所述的实施例,只是本发明较优选的具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。权利要求1、一种通信网管系统中客户端程序的自动发布方法,包括以下步骤A、在服务器的数据库中维护不同的版本信息,在所述服务器的指定路径下存放不同的版本;B、在用户本地机器的注册表里面,保存正使用版本的版本号;C、调用自动升级模块进行发布;D、将用户本地的版本号和服务器上的版本号进行比较,以确定是否进行发布;E、把升级信息组装成数据结构,多个模块升级时,把升级信息组装成链表,不同的模块使用不同的线程下载;F、发布完成后,修改本地注表中的版本信息。2、根据权利要求1所述的一种通信网管系统中客户端程序的自动发布方法,其特征在于,所述步骤C中以"-mID1-v版本号-mID2-v版本号-mID3-v版本号…"的格式调用升级模块。3、根据权利要求1所述的一种通信网管系统中客户端程序的自动发布方法,其特征在于,步骤D中将当前数据库版本与待升级的版本比较是通过一个CompareVersion的比较函数来完成的,同时要升级的版本信息在界面上提供给用户,用户可以修改版本信息,以下载不同的版本。4、根据权利要求1所述的一种通信网管系统中客户端程序的自动发布方法,其特征在于,在步骤E中特定数据结构作为升级线程的入口参数传给线程。全文摘要本发明涉及通信网网管系统中的C\S结构的客户端模块的发布和升级,具体的说是提供一种通信网管系统中客户端程序的自动发布方法。本发明的实现步骤包括在用户本地机器的注册表里面,保存正在使用版本的版本号;以特定格式调用自动升级模块进行升级;将用户本地的版本号和服务器上的版本号进行比较,以确定是否进行升级。把升级信息组装成特定的数据结构,多个模块升级时,把升级信息组装成链表,不同的模块使用不同的线程下载;升级完成后,修改本地注表中的版本信息。本发明节省了发布过程的时间,提高了升级版本的可控性,并能够对不同的模块升级不同的版本,在实际应用中取得了易用,安全稳定的效果。文档编号H04W24/04GK101409709SQ20081015918公开日2009年4月15日申请日期2008年11月24日优先权日2008年11月24日发明者韩建友申请人:浪潮通信信息系统有限公司