著录项信息
专利名称 | 一种分布式系统中客户端从服务器端下载软件的方法 |
申请号 | CN200310113635.4 | 申请日期 | 2003-11-14 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2004-11-10 | 公开/公告号 | CN1545363 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/445 | IPC分类号 | G;0;6;F;9;/;4;4;5;;;H;0;4;Q;7;/;2;0查看分类表>
|
申请人 | 中兴通讯股份有限公司 | 申请人地址 | 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦A座6层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中兴通讯股份有限公司 | 当前权利人 | 中兴通讯股份有限公司 |
发明人 | 汪康洪;金昌盛 |
代理机构 | 北京安信方达知识产权代理有限公司 | 代理人 | 霍育栋;郑霞 |
摘要
本发明涉及一种分布式系统中客户端从服务器端下载软件的方法,将二级软件下载主程序BootLoad存放在服务器端,而非固化在客户端的硬件存储器上,客户端首先下载BootLoad到随机存储器RAM中运行,再由BootLoad与服务器端的工具软件交互下载所需文件。BootLoad文件的升级完全在服务器端进行,不需要更新硬件存储器中的程序。使用本发明方法后,当服务器端和客户端的软件接口发生变化时,维护人员不需要到基站处更换硬件BOOT,从而大大降低了维护的工作量,提高了系统的可维护性、保证系统工作的可靠性和向后兼容性。
1、一种分布式系统中客户端从服务器端下载软件的方法,包括以 下步骤:
(a)客户端和服务器端建立连接后,向服务器端发送一级下载的握手 消息;
(b)握手成功,客户端从服务器端下载二级软件下载主程序;
(c)运行所述的二级软件下载主程序,与服务器端建立连接并发送二 级下载的握手消息;
(d)握手成功,客户端接收到服务器端发来的待下载文件的列表;
(e)客户端根据所述列表中文件的文件名和存放路径,从服务器端的 FTP服务器上下载所需的文件;
(f)客户端将下载的文件存放在前台硬件模块的存储设备中,如果下载 失败,向服务器端发送下载失败消息;
(g)客户端判断文件列表中的文件是否全部下载完毕,如果是,执行 下一步,否则返回步骤(e)继续下载;
(h)客户端统计文件的下载结果,并将统计结果通知服务器端。
2、如权利要求1所述的下载软件的方法,其特征在于,所述步骤(a) 中客户端与服务器端握手时,服务器端还向客户端发送二级软件下载主程序 的文件名和存放在服务器端的路径名,在所述步骤(b)中客户端根据所述 主程序的文件名和存放在服务器端的路径名从服务器端下载所述二级软件 下载主程序。
3、如权利要求1所述的下载软件的方法,其特征在于,所述二级软件 下载程序中设计了一个看门狗程序进行链路故障处理,如果出现链路中断, 复位客户端单板,并提醒服务器端操作人员。
4、如权利要求1所述的下载软件的方法,其特征在于,所述客户端使 用文件传输协议客户端命令从服务器端的文件传输协议服务器端下载所需 的文件。
5、如权利要求4所述的下载软件的方法,其特征在于,所述客户端下 载文件时还采用了循环冗余码CRC校验机制。
技术领域\n本发明涉及的是一种软件下载方法,尤指一种分布式系统中客户端从服 务器端下载软件的方法\n背景技术\n目前移动通讯领域的基站系统可能由分布在一个城市或地区的很广范 围内数以百计的基站组成,且为了便于维护、降低维护成本一般采用无人值 守的方式,通过网管系统自动化管理。\n鉴于降低整个移动通信系统设备成本的考虑,并不是每个功能模块上都 配置有存储设备。一般在一个子系统的主控制模块上配备了一片容量较大的 存储设备,用于存放该子系统内所有功能模块的应用文件,包括版本软件、 硬件逻辑文件和一些配置文件。在实际运行时,主控制模块可以从本模块的 存储设备上获取版本文件运行,而其他受控模块则需要通过与主控模块必要 的通讯交互来获取自身的版本软件运行。\n如何将本子系统内所有功能模块的应用文件从服务器端下载到于客户 端主控制模块的存储设备上,是摆在所有移动通讯厂商面前的一个课题。目 前的移动软件下载普遍采用的方法是,利用客户端主控制模块的非易失性的 启动引导存储器(BOOT)中的上电引导程序与服务器端的工具软件通讯, 从服务器端下载所选的应用文件,存放到主控制模块的存储设备上。\n这种方法的缺陷在于BOOT与服务器端软件的通讯接口(即客户端和服 务器端进行通讯时约定的消息结构,分别驻留在客户端和服务器端的软件 中),都固化在BOOT中,如果这些接口发生变化,必须重新更新BOOT 中的引导程序,需要由维护人员亲自到上百个基站去取下主控模块,替换其 BOOT,这对于分布广泛,无人职守的移动通信基站设备来说,无疑要耗费 大量的人力,物力,增加了维护成本,加大了维护人员的工作量,并且需要 在前台更换单板BOOT,增加了系统的不稳定性。\n在申请号为01145382.6的中国专利申请中,描述了一种通信系统中利用 单片机实现软件下载的方法,至少包含下列步骤:运行引导程序存储区内的 引导程序;从数据备份区中读取程序运行参数;将主应用程序移至随机存储 器RAM的程序运行区;将程序控制权交给应用程序;根据用户请求进行软 件下载;下载后的软件包保存至程序参数区;修改程序参数区参数;系统重 新启动。该方法仍将软件下载的主程序固化在硬件存储器中,如果主程序中 的接口发生变化,需要更新硬件存储器中的主程序。\n其它分布式系统中,客户端从服务器端下载软件时,也存在同样的问 题。\n发明内容\n有鉴于此,本发明要解决的技术问题是提供一种分布式系统中客户端 从服务器端下载软件的方法,在软件接口变化时,不必到各客户端去更新 设备功能模块的固化引导程序,提高系统的可维护性和可靠性。\n为了解决上述技术问题,本发明提供了一种分布式系统中客户端从服务 器端下载软件的方法,包括以下步骤:\n(a)客户端和服务器端建立连接后,向服务器端发送一级下载的握手 消息;\n(b)握手成功,客户端从服务器端下载二级软件下载主程序;\n(c)运行所述的二级软件下载主程序,与服务器端建立连接并发送二 级下载的握手消息;\n(d)握手成功,客户端接收到服务器端发来的待下载文件的列表;\n(e)客户端根据所述列表中文件的文件名和存放路径,从服务器端的 FTP服务器上下载所需的文件;\n(f)客户端将下载的文件存放在前台硬件模块的存储设备中,如果下载 失败,向服务器端发送下载失败消息;\n(g)客户端判断文件列表中的文件是否全部下载完毕,如果是,执行 下一步,否则返回步骤(e)继续下载;\n(h)客户端统计文件的下载结果,并将统计结果通知服务器端。\n为了提高灵活性,所述步骤(a)中客户端与服务器端握手时,服务器 端还向客户端发送二级软件下载主程序的文件名和存放在服务器端的路径 名,在所述步骤(b)中客户端根据上述信息从服务器端下载所述二级软件 下载主程序。\n为了提高下载时的可靠性,所述二级软件下载程序中较佳设计了一个看 门狗程序进行链路故障处理,如果出现链路中断,复位客户端单板,并提醒 服务器端操作人员。\n上述方法中,所述客户端使用文件传输协议客户端命令从服务器端的文 件传输协议服务器端下载所需的文件,为了进一步提高可靠性,还可以采用 循环冗余码CRC校验机制。\n本发明方法将二级软件下载主程序BootLoad存放在服务器端,BootLoad 文件的升级完全在服务器端进行,当服务器端和客户端的软件接口发生变化 时,维护人员只需在服务器端升级BootLoad下载文件即可,不需要到基站 处更换通讯设备功能模块的固化引导程序,从而大大降低了维护的工作量, 提高了系统的可维护性、保证系统工作的可靠性和向后兼容性,减少了操作 中人为因素的失误,节省了人力和降低了升级问题造成通讯网络中断事故发 生率。\n附图说明\n图1是本发明软件二级下载方法的消息交互示意图;\n图2是本发明实施例软件二级下载方法的流程图。\n具体实施方式\n在本发明中,客户端的软件包括两个部分,一部分固化在启动引导存储 器BOOT中,一部分位于二级软件下载主程序(BootLoad文件)中,存放 在服务器端。固化在BOOT中的代码完成的功能比较单一,就是发送一级软 件下载请求到服务器端,请求下载BootLoad文件并加载该文件到RAM中运 行,这一部分代码可以基本不变。客户端和服务器端需要通过消息交互完成 的绝大部分工作都放在BootLoad文件中,这部分内容可能由于需求变化或 增加新的功能需要修改,而本发明的BootLoad文件存放在服务器端上,如 果需要可以随时升级。\n图1是本发明软件二级下载方法服务器端和客户端之间消息交互的示意 图,在客户端请求下载之前,服务器端先要添加好软件版本和信息文件,包 括二级软件下载主程序BootLoad文件,并运行软件下载工具软件,准备好 待下载的文件和其他必要参数。\n在下载过程中,客户端程序发送一级软件下载请求到服务器端,请求下 载二级软件下载主程序BootLoad文件;从服务器端成功下载BootLoad文件 后,加载这个BootLoad文件到RAM中运行;二级下载主程序继续发送二级 下载消息给服务器端,请求所需下载文件的列表;服务器端接收到二级下载 请求后,向客户端发送所需下载文件的列表,客户端的二级下载主程序 BootLoad根据服务器端发送的文件列表,从服务器端下载所列文件。由运行 在RAM中的下载主程序完成与服务器端工具软件的消息交互和软件下载,是 本发明的特点。\n下面以移动通讯中,基站侧子系统的主控制模块(前台)通过通信网络 到操作维护系统的服务器端(后台)下载软件的方法为例,详细说明本发明。 但本发明的软件二级下载方法完全可用于其他分布式系统中客户端节点从 服务器端节点下载软件。\n本实施例的系统结构可分为两部分:前台的软件下载模块和与其连接的 后台的软件下载模块(以下简称后台),后台软件下载模块属于软件操作维 护系统的一部分,完成版本的组织、维护、下载、查询等,并提供人机界面, 供用户使用。图2所示是本发明实施例软件二级下载方法的流程图,包括以 下步骤:\n步骤100,前台BOOT中的软件下载模块(以下简称前台)使用套接口 通讯与后台建立连接;\n步骤110,连接成功,前台向后台发送一级下载的握手消息;\n步骤120,握手成功,前台接收到后台软件下载模块(以下简称后台) 发来的BootLoad文件的文件名和存放在后台的路径名;\n步骤130,前台根据BootLoad文件的文件名和存放在后台的路径名,使 用文件传输协议FTP客户端命令从后台的FTP服务器端下载所需的 BootLoad文件,并运行;\n步骤140,由运行的BootLoad文件与后台建立连接并发送二级下载的握 手消息;\n步骤150,握手成功,前台接收到后台发来的待下载文件的列表,包括 文件的文件名和存放在后台的路径名;\n步骤160,根据文件的文件名和存放在后台的路径名,使用FTP客户端 命令从后台的FTP服务器下载所需的文件;\n步骤170,将下载的文件存放在前台硬件模块的存储设备中,如果下载 失败,向后台发送下载失败消息;\n步骤180,前台判断文件列表中的文件是否全部下载完毕,如果是,执 行下一步,否则返回步骤160继续下载。\n步骤190,统计各文件的下载结果,并将统计结果通知后台,显示给操 作人员。\n在步骤120中前台首先从后台请求了BootLoad文件的文件名和存放在 后台的路径名,是为了提供更大的灵活性,对于一个BootLoad文件来说, 也可以将其名称和路径固化在前台。\n为了防止由于链路故障导致前后台通讯过程中产生任务阻塞或死机现 象,前台运行的下载文件中还设计了一个看门狗程序进行链路故障处理,如 果出现链路中断,看门狗程序可以复位单板,提醒操作人员检查链路故障。\n本实施实例中,使用FTP进行版本文件的下载,而FTP又是采用传输 控制协议TCP作为四层协议的。TCP协议本身有差错校验功能,接收端对收 到的每一数据片进行校验无误之后才会向发送端回应ACK信号。为了进一 步提高下载的可靠性,本实施例还采用了循环冗余码CRC校验机制,即在 下载前,后台先计算每个文件的CRC值,CRC值随下载文件名列表发送到 前台。前台在FTP下载后,再计算每个文件的CRC值并进行比较,如果CRC 值不符,则自动要求FTP重发,如果3次均不成功,则报告该文件校验失败。\n综上所述,本发明方法将软件下载主程序BootLoad存放在服务器端, 而非固化在硬件存储器上,BOOT首先下载BootLoad到随机存储器RAM中 运行,再由BootLoad与服务器端的工具软件交互下载所需文件。BootLoad 文件的升级完全在服务器端进行,不需要更新硬件存储器中的程序。使用本 发明方法后,当服务器端和客户端的软件接口发生变化时,维护人员只需在 服务器端升级BotLoad下载文件即可,不需要到基站处更换硬件BOOT, 从而大大降低了维护的工作量,减少了操作中人为因素的失误,节省了人力 和降低了升级问题造成通讯网络中断事故发生率。
法律信息
- 2018-11-02
未缴年费专利权终止
IPC(主分类): G06F 9/445
专利号: ZL 200310113635.4
申请日: 2003.11.14
授权公告日: 2006.11.29
- 2006-11-29
- 2005-01-12
- 2004-11-10
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |