CN1287279C - 一种分布式系统中客户端从服务器端下载软件的方法 - Google Patents
一种分布式系统中客户端从服务器端下载软件的方法 Download PDFInfo
- Publication number
- CN1287279C CN1287279C CN 200310113635 CN200310113635A CN1287279C CN 1287279 C CN1287279 C CN 1287279C CN 200310113635 CN200310113635 CN 200310113635 CN 200310113635 A CN200310113635 A CN 200310113635A CN 1287279 C CN1287279 C CN 1287279C
- Authority
- CN
- China
- Prior art keywords
- client
- server end
- file
- download
- software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种分布式系统中客户端从服务器端下载软件的方法,将二级软件下载主程序BootLoad存放在服务器端,而非固化在客户端的硬件存储器上,客户端首先下载BootLoad到随机存储器RAM中运行,再由BootLoad与服务器端的工具软件交互下载所需文件。BootLoad文件的升级完全在服务器端进行,不需要更新硬件存储器中的程序。使用本发明方法后,当服务器端和客户端的软件接口发生变化时,维护人员不需要到基站处更换硬件BOOT,从而大大降低了维护的工作量,提高了系统的可维护性、保证系统工作的可靠性和向后兼容性。
Description
技术领域
本发明涉及的是一种软件下载方法,尤指一种分布式系统中客户端从服务器端下载软件的方法
背景技术
目前移动通讯领域的基站系统可能由分布在一个城市或地区的很广范围内数以百计的基站组成,且为了便于维护、降低维护成本一般采用无人值守的方式,通过网管系统自动化管理。
鉴于降低整个移动通信系统设备成本的考虑,并不是每个功能模块上都配置有存储设备。一般在一个子系统的主控制模块上配备了一片容量较大的存储设备,用于存放该子系统内所有功能模块的应用文件,包括版本软件、硬件逻辑文件和一些配置文件。在实际运行时,主控制模块可以从本模块的存储设备上获取版本文件运行,而其他受控模块则需要通过与主控模块必要的通讯交互来获取自身的版本软件运行。
如何将本子系统内所有功能模块的应用文件从服务器端下载到于客户端主控制模块的存储设备上,是摆在所有移动通讯厂商面前的一个课题。目前的移动软件下载普遍采用的方法是,利用客户端主控制模块的非易失性的启动引导存储器(BOOT)中的上电引导程序与服务器端的工具软件通讯,从服务器端下载所选的应用文件,存放到主控制模块的存储设备上。
这种方法的缺陷在于BOOT与服务器端软件的通讯接口(即客户端和服务器端进行通讯时约定的消息结构,分别驻留在客户端和服务器端的软件中),都固化在BOOT中,如果这些接口发生变化,必须重新更新BOOT中的引导程序,需要由维护人员亲自到上百个基站去取下主控模块,替换其BOOT,这对于分布广泛,无人职守的移动通信基站设备来说,无疑要耗费大量的人力,物力,增加了维护成本,加大了维护人员的工作量,并且需要在前台更换单板BOOT,增加了系统的不稳定性。
在申请号为01145382.6的中国专利申请中,描述了一种通信系统中利用单片机实现软件下载的方法,至少包含下列步骤:运行引导程序存储区内的引导程序;从数据备份区中读取程序运行参数;将主应用程序移至随机存储器RAM的程序运行区;将程序控制权交给应用程序;根据用户请求进行软件下载;下载后的软件包保存至程序参数区;修改程序参数区参数;系统重新启动。该方法仍将软件下载的主程序固化在硬件存储器中,如果主程序中的接口发生变化,需要更新硬件存储器中的主程序。
其它分布式系统中,客户端从服务器端下载软件时,也存在同样的问题。
发明内容
有鉴于此,本发明要解决的技术问题是提供一种分布式系统中客户端从服务器端下载软件的方法,在软件接口变化时,不必到各客户端去更新设备功能模块的固化引导程序,提高系统的可维护性和可靠性。
为了解决上述技术问题,本发明提供了一种分布式系统中客户端从服务器端下载软件的方法,包括以下步骤:
(a)客户端和服务器端建立连接后,向服务器端发送一级下载的握手消息;
(b)握手成功,客户端从服务器端下载二级软件下载主程序;
(c)运行所述的二级软件下载主程序,与服务器端建立连接并发送二级下载的握手消息;
(d)握手成功,客户端接收到服务器端发来的待下载文件的列表;
(e)客户端根据所述列表中文件的文件名和存放路径,从服务器端的FTP服务器上下载所需的文件;
(f)客户端将下载的文件存放在前台硬件模块的存储设备中,如果下载失败,向服务器端发送下载失败消息;
(g)客户端判断文件列表中的文件是否全部下载完毕,如果是,执行下一步,否则返回步骤(e)继续下载;
(h)客户端统计文件的下载结果,并将统计结果通知服务器端。
为了提高灵活性,所述步骤(a)中客户端与服务器端握手时,服务器端还向客户端发送二级软件下载主程序的文件名和存放在服务器端的路径名,在所述步骤(b)中客户端根据上述信息从服务器端下载所述二级软件下载主程序。
为了提高下载时的可靠性,所述二级软件下载程序中较佳设计了一个看门狗程序进行链路故障处理,如果出现链路中断,复位客户端单板,并提醒服务器端操作人员。
上述方法中,所述客户端使用文件传输协议客户端命令从服务器端的文件传输协议服务器端下载所需的文件,为了进一步提高可靠性,还可以采用循环冗余码CRC校验机制。
本发明方法将二级软件下载主程序BootLoad存放在服务器端,BootLoad文件的升级完全在服务器端进行,当服务器端和客户端的软件接口发生变化时,维护人员只需在服务器端升级BootLoad下载文件即可,不需要到基站处更换通讯设备功能模块的固化引导程序,从而大大降低了维护的工作量,提高了系统的可维护性、保证系统工作的可靠性和向后兼容性,减少了操作中人为因素的失误,节省了人力和降低了升级问题造成通讯网络中断事故发生率。
附图说明
图1是本发明软件二级下载方法的消息交互示意图;
图2是本发明实施例软件二级下载方法的流程图。
具体实施方式
在本发明中,客户端的软件包括两个部分,一部分固化在启动引导存储器BOOT中,一部分位于二级软件下载主程序(BootLoad文件)中,存放在服务器端。固化在BOOT中的代码完成的功能比较单一,就是发送一级软件下载请求到服务器端,请求下载BootLoad文件并加载该文件到RAM中运行,这一部分代码可以基本不变。客户端和服务器端需要通过消息交互完成的绝大部分工作都放在BootLoad文件中,这部分内容可能由于需求变化或增加新的功能需要修改,而本发明的BootLoad文件存放在服务器端上,如果需要可以随时升级。
图1是本发明软件二级下载方法服务器端和客户端之间消息交互的示意图,在客户端请求下载之前,服务器端先要添加好软件版本和信息文件,包括二级软件下载主程序BootLoad文件,并运行软件下载工具软件,准备好待下载的文件和其他必要参数。
在下载过程中,客户端程序发送一级软件下载请求到服务器端,请求下载二级软件下载主程序BootLoad文件;从服务器端成功下载BootLoad文件后,加载这个BootLoad文件到RAM中运行;二级下载主程序继续发送二级下载消息给服务器端,请求所需下载文件的列表;服务器端接收到二级下载请求后,向客户端发送所需下载文件的列表,客户端的二级下载主程序BootLoad根据服务器端发送的文件列表,从服务器端下载所列文件。由运行在RAM中的下载主程序完成与服务器端工具软件的消息交互和软件下载,是本发明的特点。
下面以移动通讯中,基站侧子系统的主控制模块(前台)通过通信网络到操作维护系统的服务器端(后台)下载软件的方法为例,详细说明本发明。但本发明的软件二级下载方法完全可用于其他分布式系统中客户端节点从服务器端节点下载软件。
本实施例的系统结构可分为两部分:前台的软件下载模块和与其连接的后台的软件下载模块(以下简称后台),后台软件下载模块属于软件操作维护系统的一部分,完成版本的组织、维护、下载、查询等,并提供人机界面,供用户使用。图2所示是本发明实施例软件二级下载方法的流程图,包括以下步骤:
步骤100,前台BOOT中的软件下载模块(以下简称前台)使用套接口通讯与后台建立连接;
步骤110,连接成功,前台向后台发送一级下载的握手消息;
步骤120,握手成功,前台接收到后台软件下载模块(以下简称后台)发来的BootLoad文件的文件名和存放在后台的路径名;
步骤130,前台根据BootLoad文件的文件名和存放在后台的路径名,使用文件传输协议FTP客户端命令从后台的FTP服务器端下载所需的BootLoad文件,并运行;
步骤140,由运行的BootLoad文件与后台建立连接并发送二级下载的握手消息;
步骤150,握手成功,前台接收到后台发来的待下载文件的列表,包括文件的文件名和存放在后台的路径名;
步骤160,根据文件的文件名和存放在后台的路径名,使用FTP客户端命令从后台的FTP服务器下载所需的文件;
步骤170,将下载的文件存放在前台硬件模块的存储设备中,如果下载失败,向后台发送下载失败消息;
步骤180,前台判断文件列表中的文件是否全部下载完毕,如果是,执行下一步,否则返回步骤160继续下载。
步骤190,统计各文件的下载结果,并将统计结果通知后台,显示给操作人员。
在步骤120中前台首先从后台请求了BootLoad文件的文件名和存放在后台的路径名,是为了提供更大的灵活性,对于一个BootLoad文件来说,也可以将其名称和路径固化在前台。
为了防止由于链路故障导致前后台通讯过程中产生任务阻塞或死机现象,前台运行的下载文件中还设计了一个看门狗程序进行链路故障处理,如果出现链路中断,看门狗程序可以复位单板,提醒操作人员检查链路故障。
本实施实例中,使用FTP进行版本文件的下载,而FTP又是采用传输控制协议TCP作为四层协议的。TCP协议本身有差错校验功能,接收端对收到的每一数据片进行校验无误之后才会向发送端回应ACK信号。为了进一步提高下载的可靠性,本实施例还采用了循环冗余码CRC校验机制,即在下载前,后台先计算每个文件的CRC值,CRC值随下载文件名列表发送到前台。前台在FTP下载后,再计算每个文件的CRC值并进行比较,如果CRC值不符,则自动要求FTP重发,如果3次均不成功,则报告该文件校验失败。
综上所述,本发明方法将软件下载主程序BootLoad存放在服务器端,而非固化在硬件存储器上,BOOT首先下载BootLoad到随机存储器RAM中运行,再由BootLoad与服务器端的工具软件交互下载所需文件。BootLoad文件的升级完全在服务器端进行,不需要更新硬件存储器中的程序。使用本发明方法后,当服务器端和客户端的软件接口发生变化时,维护人员只需在服务器端升级BotLoad下载文件即可,不需要到基站处更换硬件BOOT,从而大大降低了维护的工作量,减少了操作中人为因素的失误,节省了人力和降低了升级问题造成通讯网络中断事故发生率。
Claims (5)
1、一种分布式系统中客户端从服务器端下载软件的方法,包括以下步骤:
(a)客户端和服务器端建立连接后,向服务器端发送一级下载的握手消息;
(b)握手成功,客户端从服务器端下载二级软件下载主程序;
(c)运行所述的二级软件下载主程序,与服务器端建立连接并发送二级下载的握手消息;
(d)握手成功,客户端接收到服务器端发来的待下载文件的列表;
(e)客户端根据所述列表中文件的文件名和存放路径,从服务器端的FTP服务器上下载所需的文件;
(f)客户端将下载的文件存放在前台硬件模块的存储设备中,如果下载失败,向服务器端发送下载失败消息;
(g)客户端判断文件列表中的文件是否全部下载完毕,如果是,执行下一步,否则返回步骤(e)继续下载;
(h)客户端统计文件的下载结果,并将统计结果通知服务器端。
2、如权利要求1所述的下载软件的方法,其特征在于,所述步骤(a)中客户端与服务器端握手时,服务器端还向客户端发送二级软件下载主程序的文件名和存放在服务器端的路径名,在所述步骤(b)中客户端根据所述主程序的文件名和存放在服务器端的路径名从服务器端下载所述二级软件下载主程序。
3、如权利要求1所述的下载软件的方法,其特征在于,所述二级软件下载程序中设计了一个看门狗程序进行链路故障处理,如果出现链路中断,复位客户端单板,并提醒服务器端操作人员。
4、如权利要求1所述的下载软件的方法,其特征在于,所述客户端使用文件传输协议客户端命令从服务器端的文件传输协议服务器端下载所需的文件。
5、如权利要求4所述的下载软件的方法,其特征在于,所述客户端下载文件时还采用了循环冗余码CRC校验机制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200310113635 CN1287279C (zh) | 2003-11-14 | 2003-11-14 | 一种分布式系统中客户端从服务器端下载软件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200310113635 CN1287279C (zh) | 2003-11-14 | 2003-11-14 | 一种分布式系统中客户端从服务器端下载软件的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1545363A CN1545363A (zh) | 2004-11-10 |
CN1287279C true CN1287279C (zh) | 2006-11-29 |
Family
ID=34336943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200310113635 Expired - Fee Related CN1287279C (zh) | 2003-11-14 | 2003-11-14 | 一种分布式系统中客户端从服务器端下载软件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1287279C (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1870816A4 (en) * | 2005-02-25 | 2008-08-20 | Sharp Kk | DATA MANAGEMENT SYSTEM, DATA MANAGEMENT METHOD, SERVER DEVICE, RECEIVING DEVICE, CONTROL PROGRAM, AND COMPUTER-READABLE RECORDING MEDIUM CONTAINING THE SAME |
ES2693097T3 (es) * | 2007-05-30 | 2018-12-07 | Ascensia Diabetes Care Holdings Ag | Sistema y método para gestionar datos de salud |
CN101170675B (zh) * | 2007-11-21 | 2011-03-23 | 中兴通讯股份有限公司 | 网络电视系统中管理j2me应用程序的方法和系统 |
EP2083354A1 (en) | 2008-01-22 | 2009-07-29 | Amadeus S.A.S. | Method and system for deploying non-backward compatible server versions in a client/server computing environment |
CN101277222B (zh) * | 2008-05-07 | 2010-12-08 | 中兴通讯股份有限公司 | 一种基站升级方法 |
CN101770380B (zh) * | 2009-01-05 | 2013-03-27 | 英业达集团(天津)电子技术有限公司 | 企业内的客户端的软件更新方法 |
CN103297479B (zh) * | 2012-03-05 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 一种插件升级的分布式检测方法及装置 |
CN104461589A (zh) * | 2013-09-17 | 2015-03-25 | 海尔集团公司 | 单片机升级方法及升级系统 |
CN107037757A (zh) * | 2017-04-17 | 2017-08-11 | 浙江威星智能仪表股份有限公司 | 一种基于光电传输的BootLoader程序升级方法 |
CN108804270B (zh) * | 2018-06-12 | 2021-09-28 | 郑州云海信息技术有限公司 | 一种硬盘储存数据处理测试方法 |
CN116820418B (zh) * | 2023-08-28 | 2023-12-26 | 北京智精灵科技有限公司 | 一种基于模块化开发的认知训练交互方法及系统 |
-
2003
- 2003-11-14 CN CN 200310113635 patent/CN1287279C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1545363A (zh) | 2004-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1252951C (zh) | 节点b单板软件下载及升级方法 | |
CN1287279C (zh) | 一种分布式系统中客户端从服务器端下载软件的方法 | |
US7366824B2 (en) | Updating electronic files using byte-level file differencing and updating algorithms | |
CN100545809C (zh) | 一种软件升级方法及其系统 | |
US7934210B1 (en) | System and method for updating one or more programs and their environment | |
US20020092010A1 (en) | Upgrade of a program | |
CN1427587A (zh) | 用于远端更新家用设备功能的方法和系统 | |
CN100421071C (zh) | 用于远程设备系统软件的升级方法 | |
CN1684427A (zh) | 一种软件升级及回退方法 | |
CN101426077A (zh) | 通过Internet在线升级电视机软件的方法 | |
JP2003196105A (ja) | 高可用性ファームウェアロードのためのシステム | |
EP1584007A4 (en) | SYSTEM FOR AUTOMATICALLY PROCESSING COMPONENTS ON A DEVICE | |
WO2000077679A2 (en) | Method and apparatus for incremental download from server to client | |
CN111104145B (zh) | 一种Expander的带外更新方法和系统 | |
CN101051912A (zh) | 一种数据自动更新方法 | |
CN1364390A (zh) | 下载到无线终端的方法和设备 | |
US20030226139A1 (en) | System update protocol | |
CN1178131C (zh) | 以模块化方式更新执行中应用软件的系统及其方法 | |
CN101056209A (zh) | 一种无线终端映像文件维护方法及设备 | |
CN100350384C (zh) | 将软件程序下载到存储器单元的方法以及接收器 | |
CN112527381A (zh) | 多平台软件版本管理及更新系统 | |
CN1798057A (zh) | 软件加载方法 | |
CN1074148C (zh) | 具有检错处理功能的数据处理系统 | |
CN115883360A (zh) | 一种基于物联网多层分级的远程升级方法 | |
US20030154472A1 (en) | Installation server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20061129 Termination date: 20171114 |