CN104166570B - 一种在线更新文件的方法、设备及系统 - Google Patents
一种在线更新文件的方法、设备及系统 Download PDFInfo
- Publication number
- CN104166570B CN104166570B CN201410403236.XA CN201410403236A CN104166570B CN 104166570 B CN104166570 B CN 104166570B CN 201410403236 A CN201410403236 A CN 201410403236A CN 104166570 B CN104166570 B CN 104166570B
- Authority
- CN
- China
- Prior art keywords
- module
- system file
- file
- client device
- upgrade
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种在线更新文件的方法、设备及系统。客户端设备接收服务器发送的文件特征码,所述客户端设备将所述文件特征码与所述客户端设备的系统文件的特征码进行比对,根据比对结果确定所述客户端设备需要升级的系统文件,并从所述服务器下载所述需要升级的系统文件;所述客户端设备将下载得到的系统文件部署到第一模块对应的第一内存区,并暂停所述第一模块的运行,将所述需要升级的系统文件所使用的内存区更新为所述第一内存区;所述客户端设备对所述第一模块恢复运行。解决了将组态环境的编码结果更新到运行环境中需要重新启动整个运行环境,中断线上业务,而且浪费组态服务器资源的问题。
Description
技术领域
本发明涉及工业控制技术领域,尤其涉及一种在线更新文件的方法、设备及系统。
背景技术
轨道交通综合监控系统是一个由20-50个车站、10多个子系统、近300台计算机、近万台自动化设备、近100万个测点组成的大型分布式系统。由于业务上的特殊性,轨道交通综合监控系统需要尽量做到长期地无间断运行。
目前,如果对现场工程进行了修改,实施人员需要重新部署工程,然后重新启动运行环境,才能将组态环境的编译结果更新到运行环境中。虽然,在实际应用中,一般不会有修改工程的需求,但是,在现场修改工程的需求还是有的。比如,当现场的硬件有增减时,就需要修改现场工程。轨道交通综合监控系统承载了大量的业务处理,每次停止运行都会造成线上业务的中断,并且如果只是为了修改某一两个配置,导致整个运行环境重启,耗费的成本也是巨大的,造成的损失也比较大。同时,重启的潜在风险也是非常巨大的。例如,在系统重启的过程中发生的设备异常或火灾报警就不能及时地被监控人员发现。
综上所述,现有技术中将组态环境的编码结果更新到运行环境中的方法,需要重新启动整个运行环境,不仅会造成线上业务中断,而且浪费组态服务器资源。
发明内容
本发明实施例提供一种在线更新文件的方法、设备及系统,解决了将组态环境的编码结果更新到运行环境中需要重新启动整个运行环境,中断线上业务,而且浪费组态服务器资源的问题。
本发明实施例提供一种在线更新文件的方法,包括:
客户端设备接收服务器发送的文件特征码,所述文件特征码是所述服务器对所述客户端设备需要升级的第一升级系统文件进行编码得到的;
所述客户端设备将所述文件特征码与所述客户端设备的系统文件的特征码进行比对,根据比对结果确定所述客户端设备需要升级的第二升级系统文件,并从所述服务器下载所述第二升级系统文件;
所述客户端设备将下载得到的所述第二升级系统文件部署到第一模块对应的第一内存区,并暂停所述第一模块的运行,将所述第一模块中与所述第二升级系统文件对应的第二系统文件更新至所述第一内存区中;
所述客户端设备对所述第一模块恢复运行。
较佳地,暂停所述第一模块的运行,将所述第一模块中与所述第二升级系统文件对应的第二系统文件更新至所述第一内存区中,包括:
所述客户端设备取消所述第一模块的全局变量指向;所述客户端设备将所述第二系统文件迁移到所述第一内存区;
将所述第二内存区的全局变量所指向的内存区更新为所述第一内存区。
较佳地,所述客户端设备包括多个模块;
所述客户端设备将下载得到的所述第二升级系统文件部署到第一模块对应的第一内存区,包括:
所述客户端设备并行地将下载得到的所述第二升级系统文件部署到每个模块对应的第一内存区。
较佳地,所述客户端设备将下载得到的所述第二升级系统文件部署到第一模块对应的第一内存区,包括:
客户端设备将各模块当前运行业务的系统文件的特征码与部署到所述模块的第二升级系统文件的特征码进行比对;
若特征码一致,则确定所述模块为第一模块,所述当前运行业务的系统文件为所述第二系统文件。
较佳地,所述客户端设备将下载得到的所述第二升级系统文件部署到第一模块对应的第一内存区,具体包括:
将所述第二升级系统文件的文件名与各模块中记录的当前运行业务的系统文件的文件名进行比较,若存在文件名相同的情况,则该模块为第一模块,将所述第二升级系统文件部署到所述第一模块对应的第一内存区,所述当前运行业务的系统文件为所述第二系统文件。
本发明实施例提供一种在线更新文件的客户端设备,包括:
升级文件确定单元:用于接收服务器发送的文件特征码,所述文件特征码是所述服务器对所述客户端设备需要升级的第一升级系统文件进行编码得到的将所述文件特征码与所述客户端设备的系统文件的特征码进行比对,根据比对结果确定所述客户端设备需要升级的第二升级系统文件,并从所述服务器下载所述第二升级系统文件;
升级单元:用于将下载得到的所述第二升级系统文件部署到第一模块对应的第一内存区,并暂停所述第一模块的运行,将所述第一模块中与所述第二升级系统文件对应的第二系统文件更新至所述第一内存区中;对所述第一模块恢复运行。
较佳地,所述升级单元用于:
取消所述第一模块的全局变量指向;所述客户端设备将所述第二系统文件迁移到所述第一内存区;
将所述第二内存区的全局变量所指向的内存区更新为所述第一内存区。
较佳地,所述设备包括多个模块;
所述升级单元具体用于:并行地将下载得到的所述第二升级系统文件部署到每个模块对应的第一内存区。
较佳地,所述升级单元用于:
将各模块当前运行业务的系统文件的特征码与部署到所述模块的第二升级系统文件的特征码进行比对;
若特征码一致,则确定所述模块为第一模块,所述当前运行业务的系统文件为所述第二系统文件。
较佳地,所述升级单元具体用于:
将所述第二升级系统文件的文件名与各模块中记录的当前运行业务的系统文件的文件名进行比较,若存在文件名相同的情况,则该模块为第一模块,将所述第二升级系统文件部署到所述第一模块对应的第一内存区,所述当前运行业务的系统文件为所述第二系统文件。
本发明实施例提供一种在线更新文件的系统,包括:
服务器:用于将客户端设备需要升级的第一升级系统文件进行编码,将所述第一升级系统文件编码后得到文件特征码发送给所述客户端设备;
客户端设备:用于接收服务器发送的文件特征码,所述文件特征码是所述服务器对所述客户端设备需要升级的第一升级系统文件进行编码得到的将所述文件特征码与所述客户端设备的系统文件的特征码进行比对,根据比对结果确定所述客户端设备需要升级的第二升级系统文件,并从所述服务器下载所述第二升级系统文件;用于将下载得到的所述第二升级系统文件部署到第一模块对应的第一内存区,并暂停所述第一模块的运行,将所述第一模块中与所述第二升级系统文件对应的第二系统文件更新至所述第一内存区中;对所述第一模块恢复运行。
较佳地,所述客户端设备具体用于:
取消所述第一模块的全局变量指向;所述客户端设备将所述第二系统文件迁移到所述第一内存区;
将所述第二内存区的全局变量所指向的内存区更新为所述第一内存区。
本发明实施例提供一种在线升级的方法,服务器将文件特征码发送给客户端设备,和现有技术相比,实现了文件编码对比技术,减少了传输文件的数量。客户端设备将所述文件特征码与所述客户端设备的系统文件的特征码进行比对,根据比对结果确定所述客户端设备需要升级的系统文件,并从所述服务器下载所述需要升级的系统文件;所述客户端设备将下载得到的系统文件部署到第一模块对应的第一内存区,客户端设备将下载的系统文件部署到各个模块采用的方法为并行部署,而且在部署的过程中,各个模块相对独立,互不干扰。和现有技术相比实现了一个服务器对多个客户端设备并行部署,节约了部署时间。所述客户端设备将下载得到的系统文件部署到第一模块对应的第一内存区,并暂停所述第一模块的运行,将所述需要升级的系统文件所使用的内存区更新为所述第一内存区;其中,所述第一模块中运行有所述需要升级的系统文件;所述客户端设备对所述第一模块恢复运行。通过在运行系统中暂停各模块的全局变量和及时对内存数据替换,从而实现了客户端设备在无需重新启动的情况下,对系统运行文件进行修改或升级。
附图说明
图1为本发明实施例一提供的一种在线更新文件的方法流程图;
图2为本发明实施例一提供的一种在线更新文件的系统结构图;
图3为本发明实施例二提供的一种在线更新文件的设备示意图;
图4为本发明实施例三提供的一种在线更新文件的系统示意图;
图5为本发明实施例四提供的另一种在线更新文件的系统示意图。
具体实施方式
本发明实施例提供一种在线更新文件的方法,客户端设备接收服务器发送的文件特征码,所述文件特征码是所述服务器对所述客户端设备需要升级的系统文件进行编码得到的;所述客户端设备将所述文件特征码与所述客户端设备的系统文件的特征码进行比对,根据比对结果确定所述客户端设备需要升级的系统文件,并从所述服务器下载所述需要升级的系统文件;所述客户端设备将下载得到的系统文件部署到第一模块对应的第一内存区,并暂停所述第一模块的运行,将所述需要升级的系统文件所使用的内存区更新为所述第一内存区;其中,所述第一模块中运行有所述需要升级的系统文件;所述客户端设备对所述第一模块恢复运行。通过该方法,解决了将服务器提供的升级文件更新到运行环境中需要重新启动整个运行环境,中断线上业务,而且浪费组态服务器资源的问题。
以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例一
如图1所示,本发明实施例一提供的一种在线更新文件的方法,包括以下步骤:
步骤101、客户端设备接收服务器发送的文件特征码,所述文件特征码是所述服务器对所述客户端设备需要升级的第一升级系统文件进行编码得到的;
步骤102、所述客户端设备将所述文件特征码与所述客户端设备的系统文件的特征码进行比对,根据比对结果确定所述客户端设备需要升级的第二升级系统文件,并从所述服务器下载所述第二升级系统文件;
步骤103、所述客户端设备将下载得到的所述第二升级系统文件部署到第一模块对应的第一内存区,并暂停所述第一模块的运行,将所述第一模块中与所述第二升级系统文件对应的第二系统文件更新至所述第一内存区中;
步骤104、所述客户端设备对所述第一模块恢复运行。
本发明实施例中提供的服务器、客户端设备、以及客户端设备的各个组成部分的关系,如图2所示。
在图2中,左侧的框线矩形表示的是服务器23,其中服务器23包括组态工具21和第一次编译22;右侧的框线矩形表示的是客户端设备24,其中客户端设备24包括第二次编译25和运行组件26。服务器23和客户端设备24是一对多的关系,即服务器23可以对应多个客户端设备24。
客户端设备24包括多个运行组件26,其中,多个运行组件26主要包括人机界面、实时数据库、访问组件、用户组件和采集组件等多个组件。
服务器23包括组态工具21,其中,组态工具21用于创建、修改和编译工程。组态工具用于创建的工程可以包含用户组件、访问组件、调试组件、采集组件、人机界面、实时数据库组件等相关逻辑组件。
部署的作用是将服务器中编译的结果部署到客户端设备上,客户端设备的各个组件都是根据服务器中的编译结果进行修改或升级系统当前运行业务的系统文件。
在步骤101中,客户端设备接收服务器发送的文件特征码,所述文件特征码是所述服务器对所述客户端设备需要升级的第一升级系统文件进行编码得到的。
在服务器中,当客户端设备选择需要修改或升级当前运行业务的系统文件的时候,可以通过组态工具修改或编译当前运行业务的系统文件。
若在服务器中需要添加硬件设备,就需要服务器的组态工具创建工程,等完成工程后,需要对增加的硬件设备进行编译,此时的编译是对整个硬件的编译。
若只是对现场工程中的某个硬件进行修改或者是升级,则只需要将上次编译后的文件中需要修改的内容进行编译即可,而不需要对整个文件进行编译,这样就节省编译时间。
当编译完成后,服务器将所有的编译文件扫描,根据每个文件的内容得到MD5码,然后将所有的MD5码组合起来形成一个文件特征码,标记为A,将生成的文件特征码A发送给客户端设备。
在步骤102中,所述客户端设备将所述文件特征码与所述客户端设备的系统文件的特征码进行比对,根据比对结果确定所述客户端设备需要升级的第二升级系统文件,并从所述服务器下载所述第二升级系统文件;
客户端设备在接收到服务器发送的文件特征码的同时,需要从客户端设备中正在运行的系统文件中选择需要修改或升级的系统文件,将选择后的系统文件扫描生成MD5码,然后将所有的MD5码组合起来形成一个文件特征码,标记为A1。
进一步地,也可以是在客户端设备在接收到服务器发送的文件特征码之后,从客户端设备中正在运行的系统文件中选择需要修改或升级的系统文件,将选择后的系统文件扫描生成MD5码,然后将所有的MD5码组合起来形成一个文件特征码,标记为A1。
客户端设备将从服务器收到的文件特征码A和客户端设备选择生成的文件特征码A1进行对比,若两个文件特征码中存在不同的MD5码,则认为有不同的MD5码对应的系统文件需要修改或升级。
其中两个文件特征码的比较可以是:在服务器中选择修改或升级系统当前运行业务的系统文件总共有5(1、2、3、4、5)个,那么依次生成5个MD5码,分为为:MD5-1、MD5-2、MD5-3、MD5-4和MD5-5,将上述5个MD5码组成一个文件特征码A,那么该文件特征码A就包括这5个MD5码串,其文件特征码的排列顺序依次为MD5-1、MD5-2、MD5-3、MD5-4、MD5-5。而客户端设备根据服务器发送的文件特征码,从正在运行的系统文件中选择5个系统文件,将选择的5个系统文件分别扫描生成5个MD5码,依次为:MD5-11、MD5-21、MD5-31、MD5-41和MD5-51。将正在运行的系统文件扫描生成的5个MD5码组成一个文件特征码A1,那么该文件特征码A1就包括这5个MD5码串,其文件特征码的排列顺序依次为MD5-11、MD5-21、MD5-31、MD5-41、MD5-51。将两个文件特征码A和A1按照排列顺序进行比对,只要发现有不同的MD5码串,就认为这两个MD5码对应的文件需要修改或升级。
比如,若文件特征码A中的MD511和文件特征码A1中的MD5-11不相同,则可以确定MD5-11对应的正在运行的系统文件MD5-11是需要修改或升级的系统文件。若文件特征码A中的5个MD5码串和文件特征码A1中的5个MD5码串都不相同,则可以确定文件特征码A1中的5个MD5码对应的正在运行的系统文件是需要修改或升级的系统文件。
由于会出现文件特征码A中的MD5与文件特征码A1中的MD5相同的情况,所以客户端设备从服务器接收客户端设备需要升级的第一升级系统文件,可能不全是客户端设备中需要修改或升级当前运行业务的系统文件。因此,需要根据文件特征码A与文件特征码A1的比对结果确定所述客户端设备需要修改或升级的系统文件。将客户端从服务器接收的文件特征码A对应的客户端设备需要修改或升级的系统文件称为第一升级系统文件,将客户端设备判断文件特征码后得到的需要升级或修改的系统文件成为第二升级系统文件
若选择需要修改或升级的系统文件比较多,则可以将选择出的系统文件存储在一个列表中,而存储选择出的系统文件的列表可以是一维的列表,可以是文件列表,也可以是树状结构等文件存储方法。根据存储系统文件的列表可以确定需要从服务器下载需要修改或者升级的系统文件,将确定从服务器下载需要修改或升级的系统文件称为第二升级系统文件。
因为只是对现场工程中的某个硬件进行修改或者是升级,只需要将上次编译后的文件中需要修改的内容进行编译即可,而不需要对整个文件进行编译。所以从服务器中只下载已识别出的需要修改或升级的文件就可以了,从而减少了下载文件的数量,也节约了部署的时间。此外,服务器在发送需要修改或者升级的系统文件之前,会对这些文件进行压缩处理,在进一步减小下方文件的体积,从而大大减小了传输文件的时间,进而大大缩减了部署的时间。
在步骤103中,客户端设备包括多个模块其中,所述客户端设备将下载得到的第二升级系统文件部署到第一内存区,包括:
所述客户端设备并行地将下载得到的所述第二升级系统文件部署到每个模块对应的第一内存区。
客户端设备的部署过程是一对多的并行部署过程,从图1可以知道,客户端设备包括多个运行组件,而运行组件是由多个模块组成的,当客户端设备需要将从服务器下载的第二升级系统文件部署到运行组件的各个模块对应的第一内存区时,其部署的过程是相互独立,互不干扰。比如,若客户端设备选择修改或升级的运行组件为采集组件和用户组件,当客户端从服务器下载到第二系统文件后,需要将第二升级系统文件一一部署在各个组件的各个模块中时,采用的方法是同步将第二升级系统文件部署在采集组件的各个模块对应的第一内存区和用户组件的各个模块对应的第一内存区。进一步地,将第二升级系统文件部署到采集组件和用户组件的过程是同步进行的,并没有先后顺序。
当客户端设备将第二升级系统文件部署到选择的运行组件的各个模块对应的第一内存区后,客户端设备的整个部署操作才算完成。采用这种并行部署设计,节约了部署时间。
进一步地,客户端设备将第二升级系统文件部署到运行组件的第一模块对应的第一内存区,具体包括有两种方式,分别为:
1)客户端设备将下载得到的第二升级系统文件部署到第一模块对应的第一内存区,包括:
客户端设备将所述部署到所述模块的第二升级系统文件的特征码,与所述模块当前运行业务的系统文件中与部署到所述模块的第二升级系统文件具有相同文件名的系统文件的特征码进行比对;
若特征码一致,则确定所述模块当前运行业务的系统文件中与部署到所述模块的第二升级系统文件具有相同文件名的系统文件需要升级。
其中,客户端设备包括多个运行组件,相应的每个运行组件包括多个模块,由步骤101可以知道,客户端设备中需要修改或升级当前运行业务的系统文件是由客户端设备从所有当前运行业务的系统文件中选择的。所以并不是全部运行组件中的所有模块当前运行的系统文件都需要进行修改或升级,当客户端设备将从服务器下载的第二升级系统文件并行部署到多个运行组件的各个模块对应的第一内存区后,客户端设备中的各个模块需要进一步的判断是否需要根据部署到各个模块的第一内存区的第二升级系统文件对各个模块当前正在运行的系统文件进行修改或升级。
每个模块当前正在运行的系统文件都有各自的文件名,客户端设备根据每个模块当前正在运行的系统文件的文件名的特征码和部署到每个模块的第一内存区的第二升级系统文件的文件名的特征码进行比对,来确定每个模块当前正在运行的系统文件是否需要修改或升级。
主要包括下列判断方法:将每个模块中运行的系统文件的文件名和部署到每个模块的第一内存区的第二升级系统文件的文件名进行比较,若模块中第一内存区的第二升级系统文件的文件名和模块当前运行的系统文件的文件名没有相同的文件名,则可以确定该模块当前运行的系统文件不需要修改或升级。
若模块中第一内存区的第二升级系统文件的文件名和模块当前运行的系统文件的文件名有相同的文件名特征码,进一步地,将模块中第一内存区的第二升级系统文件和模块当前运行的系统文件具有相同文件名的文件特征码进行比较,若模块中第一内存区的第二升级系统文件的特征码和模块当前运行的系统文件的特征码相同,则可以确定该模块中与第一内存区的第二升级系统文件有相同文件名的文件特征码的系统文件是该模块中需要修改或升级系统文件,进一步地,确定该模块所述当前运行业务的系统文件为所述第二系统文件,并且确定该模块为第一模块。
2)当客户端设备将从服务器下载的第二升级系统文件部署到第一模块对应的第一内存区之前,首先确定需要部署的第二升级系统文件的各个文件的文件名,然后查看各个运行组件的信息列表,其中,各个运行组件的信息列表中包括模块信息及与各个模块中对应的系统文件名。客户端设备首先根据信息列表中每个模块对应的系统文件名以及需要部署的第二升级系统文件的各个文件的文件名确定是否有相同的文件名,然后,将每个模块中对应的系统文件名和需要部署的第二升级系统文件名相同的文件的特征码进行比较,若每个模块中对应的系统的文件特征码和需要部署的第二升级系统文件特征码形同,可以确定需要向哪些模块的第一内存区部署第二系统文件。进一步地,确定需要部署的模块当前运行业务的系统文件为所述第二系统文件,并且确定该模块为第一模块。
进一步地,在确定第一模块中需要修改或升级的系统文件后,需要暂停所述第一模块的运行,将所述第一模块中与所述第二升级系统文件对应的第二系统文件更新至所述第一内存区中,包括:
所述客户端设备取消所述第一模块的全局变量指向;所述客户端设备将所述第二系统文件迁移到所述第一内存区;
进一步地,第一模块中当前正在运行的系统文件中需要修改或升级的系统文件被放置在第一模块的第二内存区,第一模块中当前正在运行的系统文件中不需要修改或升级的系统文件被放置在第一模块的第三内存区。
暂停第一模块的运行主要是暂停第一模块的全局变量的指向,其中第一模块的第二内存区有一个局部变量与第一模块的全局变量相对应;第一模块的第三内存区也有一个局部变量与第一模块的全局变量相对应。第一模块的全局变量不但指向第二内存区需要修改或升级的系统文件中的局部变量,而且也指向第三内存区不需要修改或升级的系统文件中的局部变量。
暂停了第一模块的全局变量的指向,表示只将第一模块中需要修改或升级的系统文件暂停了业务,而第一模块中不需要修改或升级的系统文件将不会被暂停业务。然后,将第一模块中需要修改或升级的系统文件被暂停了业务的数据状态从当前的第二内存区更新至第一内存区,将第二内存区中需要修改会升级的系统文件释放。
将第一模块中需要修改或升级的系统文件被暂停了业务的数据状态从当前的第二内存区更新至第一内存区后,重新将第一模块的全局变量与第一模块的第一内存区的一个局部变量建立了指向关系,将第一模块的全局变量指向第一内存区中的一个局部变量。相应的第一模块被暂停的业务恢复运行。
在实施例中,由于是将第一模块中需要修改或升级的系统文件被暂停了业务的数据状态从当前的第二内存区更新至第一内存区,所以当第一模块重新恢复运行后,第一模块中被暂停的业务将会继续运行,其中,第一模块的运行状态与被暂停业务之前的运行状态保持一致。比如,第一模块被暂停业务之前,正在进行系统文件总量统计工作,若第一模块中总共包括100个系统文件,第一模块在被暂停业务之前,对系统文件的总量统计刚好进行到第35个系统文件,那么在第一模块重新恢复运行后,第一模块不但继续统计系统文件总量,而且是接着第35个系统文件进行总量统计。本实施例中修改或升级系统文件的方法,客户端设备保存模块每次被暂停业务的数据,当模块恢复运行业务后,模块可以继续运行被暂停的业务的数据,节约了资源,提高了客户端设备的利用率。
在实施例中,若是客户端新添一个硬件设备,就需要服务器的组态工具创建工程,等完成工程后,需要对增加的硬件设备进行编译,此时的编译是对整个硬件的编译。当编译完成后,服务器将编译文件扫描生成MD5码,然后将MD5码组合起来形成一个文件特征码,将生成的文件特征码发送给客户端设备。
若此次服务器发送的文件特征码中只有新增硬件的MD5码,则客户端可以直接根据接收的文件特征码从服务器下载相应的系统文件,然后将从服务器下载的系统文件同步部署到客户端设备的运行组件中新增的模块中,客户端设备中新增的模块根据客户端设备部署的系统文件,建立系统文件中局部变量和与新增模块全局变量的指向,从而新增模块开始运行。
本发明实施例提供一种在线更新文件的方法,客户端设备接收服务器发送的文件特征码,所述文件特征码是所述服务器对所述客户端设备需要升级的系统文件进行编码得到的;所述客户端设备将所述文件特征码与所述客户端设备的系统文件的特征码进行比对,根据比对结果确定所述客户端设备需要升级的系统文件,并从所述服务器下载所述需要升级的系统文件;所述客户端设备将下载得到的系统文件部署到第一模块对应的第一内存区,并暂停所述第一模块的运行,将所述需要升级的系统文件所使用的内存区更新为所述第一内存区;其中,所述第一模块中运行有所述需要升级的系统文件;所述客户端设备对所述第一模块恢复运行。通过该方法,在运行环境不重新启动的情况下,服务器发送的文件对应的系统文件及时应用到运行环境中。同时这个处理过程非常的高效,不会造成运行环境中的业务中断,而且不会浪费运行环境服务资源。基于同一发明构思,本发明实施例提供了一种在线更新文件的设备,由于该设备解决技术问题的原理与一种在线更新文件的方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。
实施例二
如图3所示,本发明实施例提供的一种在线更新文件的设备,该设备包括:升级文件确定单元31和升级单元32。
升级文件确定单元31:用于接收服务器发送的文件特征码,所述文件特征码是所述服务器对所述客户端设备需要升级的第一升级系统文件进行编码得到的将所述文件特征码与所述客户端设备的系统文件的特征码进行比对,根据比对结果确定所述客户端设备需要升级的第二升级系统文件,并从所述服务器下载所述第二升级系统文件;
升级单元32:用于将下载得到的所述第二升级系统文件部署到第一模块对应的第一内存区,并暂停所述第一模块的运行,将所述第一模块中与所述第二升级系统文件对应的第二系统文件更新至所述第一内存区中;对所述第一模块恢复运行。
进一步地,所述升级单元32用于:
取消所述第一模块的全局变量指向;所述客户端设备将所述第二系统文件迁移到所述第一内存区;
将所述第二内存区的全局变量所指向的内存区更新为所述第一内存区。
进一步地,所述设备包括多个模块;
进一步地,所述升级单元32具体用于:并行地将下载得到的所述第二升级系统文件部署到每个模块对应的第一内存区。
进一步地,所述升级单元32用于:
将各模块当前运行业务的系统文件的特征码与部署到所述模块的第二升级系统文件的特征码进行比对;
若特征码一致,则确定所述模块为第一模块,所述当前运行业务的系统文件为所述第二系统文件。
进一步地,所述升级单元32具体用于:
将所述第二升级系统文件的文件名与各模块中记录的当前运行业务的系统文件的文件名进行比较,若存在文件名相同的情况,则该模块为第一模块,将所述第二升级系统文件部署到所述第一模块对应的第一内存区,所述当前运行业务的系统文件为所述第二系统文件。
本发明实施例提供一种在线更新文件的设备,采用该设备,首先实现文件编码对比技术,减少了传输文件的数量;其次,客户端设备将下载的系统文件部署到各个模块采用的方法为并行部署,而且在部署的过程中,各个模块相对独立,互不干扰,和现有技术相比,节约了部署时间;最后,通过在运行系统中暂停各模块的全局变量和及时对内存数据替换,从而实现了客户端设备在无需重新启动的情况下,对系统运行文件进行修改或升级。
实施例三
如图4所示,本发明实施例提供的一种在线更新文件的系统,该系统包括:服务器23和客户端设备24。
服务器23:用于将客户端设备需要升级的第一升级系统文件进行编码,将所述第一升级系统文件编码后得到文件特征码发送给所述客户端设备;
客户端设备24:用于接收服务器发送的文件特征码,所述文件特征码是所述服务器对所述客户端设备需要升级的第一升级系统文件进行编码得到的将所述文件特征码与所述客户端设备的系统文件的特征码进行比对,根据比对结果确定所述客户端设备需要升级的第二升级系统文件,并从所述服务器下载所述第二升级系统文件;用于将下载得到的所述第二升级系统文件部署到第一模块对应的第一内存区,并暂停所述第一模块的运行,将所述第一模块中与所述第二升级系统文件对应的第二系统文件更新至所述第一内存区中;对所述第一模块恢复运行。
进一步地,所述客户端设备24具体用于:
取消所述第一模块的全局变量指向;所述客户端设备将所述第二系统文件迁移到所述第一内存区;
将所述第二内存区的全局变量所指向的内存区更新为所述第一内存区。
本发明实施例提供一种在线更新文件的系统,采用该设备,首先实现文件编码对比技术,减少了传输文件的数量;其次,客户端设备将下载的系统文件部署到各个模块采用的方法为并行部署,而且在部署的过程中,各个模块相对独立,互不干扰,和现有技术相比,节约了部署时间;最后,通过在运行系统中暂停各模块的全局变量和及时对内存数据替换,从而实现了客户端设备在无需重新启动的情况下,对系统运行文件进行修改或升级。
实施例四
如图5所示,本发明实施例还提供的一种在线更新文件的系统,该系统包括处理器51、存储器52、用户接口53和总线接口54。其中,处理器51、存储器52与用户接口53之间通过总线接口54连接。
处理器51,用于接收服务器发送的文件特征码,所述文件特征码是所述服务器对所述客户端设备需要升级的第一升级系统文件进行编码得到的,将所述文件特征码与所述客户端设备的系统文件的特征码进行比对,根据比对结果确定所述客户端设备需要升级的第二升级系统文件,并从所述服务器下载所述第二升级系统文件;
较佳地,处理器51,还用于:将下载得到的所述第二升级系统文件部署到第一模块对应的第一内存区,并暂停所述第一模块的运行,将所述第一模块中与所述第二升级系统文件对应的第二系统文件更新至所述第一内存区中;对所述第一模块恢复运行。
较佳地,处理器51,还用于:取消所述第一模块的全局变量指向;所述客户端设备将所述第二系统文件迁移到所述第一内存区;
将所述第二内存区的全局变量所指向的内存区更新为所述第一内存区。
较佳地,处理器51包括多个模块。
较佳地,处理器51,还用于:并行地将下载得到的所述第二升级系统文件部署到每个模块对应的第一内存区。
较佳地,处理器51,还用于:
将各模块当前运行业务的系统文件的特征码与部署到所述模块的第二升级系统文件的特征码进行比对;
若特征码一致,则确定所述模块为第一模块,所述当前运行业务的系统文件为所述第二系统文件。
较佳地,处理器51,还用于:将所述第二升级系统文件的文件名与各模块中记录的当前运行业务的系统文件的文件名进行比较,若存在文件名相同的情况,则该模块为第一模块,将所述第二升级系统文件部署到所述第一模块对应的第一内存区,所述当前运行业务的系统文件为所述第二系统文件。
在本发明实施例图5中,总线构架可以包括任意数量的互联的总线和桥,具体由处理器51代表的一个或多个处理器和存储器52代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口54提供接口,处理器51负责管理总线架构和通常的处理,存储器52可以存储处理器51在执行操作时所使用的数据。针对不同的用户设备,用户接口53还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
处理器51负责管理总线架构和通常的处理,存储器52可以存储处理器61在执行操作时所使用的数据。
通过以上所述的流程图以及方案的描述,客户端设备接收服务器发送的文件特征码,然后从服务器端下载需要修改或升级的系统文件,在客户端设备部署下载的系统文件的时候,采用并行部署,使得各个模块相对独立,互不干扰。最后,通过在运行系统中暂停各模块的全局变量和及时对内存数据替换。采用该方法,通过文件编码对比识别技术,减少了传输文件的数量;在将从服务器下载的系统文件部署到客户端设备的时候,采用并行部署,节约的部署时间;而通过在运行系统中暂停各模块的全局变量和及时对内存数据替换,实现了客户端设备在无需重新启动的情况下,对系统运行文件进行修改或升级的方法。
应当理解,以上系统包括的设备或单元仅仅是根据该系统实现的功能进行的逻辑划分,实际应用中,可以进行上述设备或单元叠加或拆分。并且该实施例提供的系统实现的功能与上述实施例提供的一种在线更新文件的方法一一对应,对于该系统所实现的更为详细的处理流程,在上述方法实施例一中已做详细描述,此处不再详细描述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (11)
1.一种在线更新文件的方法,其特征在于,包括:
客户端设备接收服务器发送的文件特征码,所述文件特征码是所述服务器对所述客户端设备需要升级的第一升级系统文件进行编码得到的;
所述客户端设备将所述文件特征码与所述客户端设备的系统文件的特征码进行比对,根据比对结果确定所述客户端设备需要升级的第二升级系统文件,并从所述服务器下载所述第二升级系统文件;
所述客户端设备并行地将下载得到的所述第二升级系统文件部署到所述客户端设备的多个模块中的每个模块对应的第一内存区;
所述客户端设备暂停所述多个模块中的第一模块的运行,将所述第一模块中与所述第二升级系统文件对应的第二系统文件更新至所述第一内存区中;将第二内存区的全局变量所指向的内存区更新为所述第一内存区;所述第二内存区包括当前正在运行的系统文件中需要修改或升级的系统文件;
所述客户端设备对所述第一模块恢复运行。
2.如权利要求1所述的方法,其特征在于,暂停所述第一模块的运行,将所述第一模块中与所述第二升级系统文件对应的第二系统文件更新至所述第一内存区中,包括:
所述客户端设备取消所述第一模块的全局变量指向;所述客户端设备将所述第二系统文件迁移到所述第一内存区;
将所述第二内存区的全局变量所指向的内存区更新为所述第一内存区。
3.如权利要求1所述的方法,其特征在于,所述客户端设备将下载得到的所述第二升级系统文件部署到第一模块对应的第一内存区,包括:
客户端设备将各模块当前运行业务的系统文件的特征码与部署到所述模块的第二升级系统文件的特征码进行比对;
若特征码一致,则确定所述模块为第一模块,所述当前运行业务的系统文件为所述第二系统文件。
4.如权利要求1所述的方法,其特征在于,所述客户端设备将下载得到的所述第二升级系统文件部署到第一模块对应的第一内存区,具体包括:
将所述第二升级系统文件的文件名与各模块中记录的当前运行业务的系统文件的文件名进行比较,若存在文件名相同的情况,则该模块为第一模块,将所述第二升级系统文件部署到所述第一模块对应的第一内存区,所述当前运行业务的系统文件为所述第二系统文件。
5.一种在线更新文件的客户端设备,其特征在于,包括:
升级文件确定单元:用于接收服务器发送的文件特征码,所述文件特征码是所述服务器对所述客户端设备需要升级的第一升级系统文件进行编码得到的将所述文件特征码与所述客户端设备的系统文件的特征码进行比对,根据比对结果确定所述客户端设备需要升级的第二升级系统文件,并从所述服务器下载所述第二升级系统文件;
升级单元:用于所述客户端设备并行地将下载得到的所述第二升级系统文件部署到所述客户端设备的多个模块中的每个模块对应的第一内存区;并暂停所述多个模块中的第一模块的运行,将所述第一模块中与所述第二升级系统文件对应的第二系统文件更新至所述第一内存区中;将第二内存区的全局变量所指向的内存区更新为所述第一内存区;所述第二内存区包括当前正在运行的系统文件中需要修改或升级的系统文件;对所述第一模块恢复运行。
6.如权利要求5所述客户端设备,其特征在于,所述升级单元用于:
取消所述第一模块的全局变量指向;所述客户端设备将所述第二系统文件迁移到所述第一内存区;
将所述第二内存区的全局变量所指向的内存区更新为所述第一内存区。
7.如权利要求5所述客户端设备,其特征在于,所述设备包括多个模块;
所述升级单元具体用于:并行地将下载得到的所述第二升级系统文件部署到每个模块对应的第一内存区。
8.如权利要求5所述客户端设备,其特征在于,所述升级单元用于:
将各模块当前运行业务的系统文件的特征码与部署到所述模块的第二升级系统文件的特征码进行比对;
若特征码一致,则确定所述模块为第一模块,所述当前运行业务的系统文件为所述第二系统文件。
9.如权利要求5所述客户端设备,其特征在于,所述升级单元具体用于:
将所述第二升级系统文件的文件名与各模块中记录的当前运行业务的系统文件的文件名进行比较,若存在文件名相同的情况,则该模块为第一模块,将所述第二升级系统文件部署到所述第一模块对应的第一内存区,所述当前运行业务的系统文件为所述第二系统文件。
10.一种在线更新文件的系统,其特征在于,包括:
服务器:用于将客户端设备需要升级的第一升级系统文件进行编码,将所述第一升级系统文件编码后得到文件特征码发送给所述客户端设备;
客户端设备:用于接收服务器发送的文件特征码,所述文件特征码是所述服务器对所述客户端设备需要升级的第一升级系统文件进行编码得到的将所述文件特征码与所述客户端设备的系统文件的特征码进行比对,根据比对结果确定所述客户端设备需要升级的第二升级系统文件,并从所述服务器下载所述第二升级系统文件;用于并行地将下载得到的所述第二升级系统文件部署到所述客户端设备的多个模块中的每个模块对应的第一内存区;并暂停所述多个模块中的第一模块的运行,将所述第一模块中与所述第二升级系统文件对应的第二系统文件更新至所述第一内存区中;将第二内存区的全局变量所指向的内存区更新为所述第一内存区;所述第二内存区包括当前正在运行的系统文件中需要修改或升级的系统文件;对所述第一模块恢复运行。
11.如权利要求10所述系统,其特征在于,所述客户端设备具体用于:
取消所述第一模块的全局变量指向;所述客户端设备将所述第二系统文件迁移到所述第一内存区;
将所述第二内存区的全局变量所指向的内存区更新为所述第一内存区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410403236.XA CN104166570B (zh) | 2014-08-15 | 2014-08-15 | 一种在线更新文件的方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410403236.XA CN104166570B (zh) | 2014-08-15 | 2014-08-15 | 一种在线更新文件的方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104166570A CN104166570A (zh) | 2014-11-26 |
CN104166570B true CN104166570B (zh) | 2017-11-24 |
Family
ID=51910404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410403236.XA Active CN104166570B (zh) | 2014-08-15 | 2014-08-15 | 一种在线更新文件的方法、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104166570B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105512267A (zh) * | 2015-12-03 | 2016-04-20 | 北京锐安科技有限公司 | 一种配置文件的调整方法和装置 |
CN105760190A (zh) * | 2016-02-02 | 2016-07-13 | 华自科技股份有限公司 | 组态软件发布方法及系统 |
CN106681761B (zh) * | 2016-12-13 | 2020-12-01 | 深圳市恒扬数据股份有限公司 | 一种交互式升级的方法及系统 |
CN108037940A (zh) * | 2017-12-26 | 2018-05-15 | 深圳市海恒智能科技有限公司 | 图书自助设备的在线升级方法及装置 |
CN112052225B (zh) * | 2020-08-27 | 2024-05-17 | 中信银行股份有限公司 | 一种db2数据库静态嵌入式sql绑定优雅部署方法 |
CN112612252A (zh) * | 2020-12-10 | 2021-04-06 | 浙江中控技术股份有限公司 | 一种scada系统热重载方法及具有热重载的scada系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110788A (zh) * | 2006-07-20 | 2008-01-23 | 阿里巴巴公司 | 升级客户端软件的方法及系统 |
CN101132573A (zh) * | 2006-08-23 | 2008-02-27 | 中兴通讯股份有限公司 | 一种终端批量升级的实现方法 |
CN102253851A (zh) * | 2011-07-26 | 2011-11-23 | 中兴通讯股份有限公司 | 一种机顶盒及其升级方法 |
CN103677870A (zh) * | 2012-09-10 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 系统升级方法及采用该方法升级的系统 |
-
2014
- 2014-08-15 CN CN201410403236.XA patent/CN104166570B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110788A (zh) * | 2006-07-20 | 2008-01-23 | 阿里巴巴公司 | 升级客户端软件的方法及系统 |
CN101132573A (zh) * | 2006-08-23 | 2008-02-27 | 中兴通讯股份有限公司 | 一种终端批量升级的实现方法 |
CN102253851A (zh) * | 2011-07-26 | 2011-11-23 | 中兴通讯股份有限公司 | 一种机顶盒及其升级方法 |
CN103677870A (zh) * | 2012-09-10 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 系统升级方法及采用该方法升级的系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104166570A (zh) | 2014-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104166570B (zh) | 一种在线更新文件的方法、设备及系统 | |
CN109286653B (zh) | 智能云工程平台 | |
CN106156186B (zh) | 一种数据模型管理装置、服务器及数据处理方法 | |
CN109885316B (zh) | 基于kubernetes的hdfs-hbase部署方法及装置 | |
CN107193607B (zh) | 用于更新代码文件的方法和装置、存储介质、处理器以及终端 | |
CN107733985B (zh) | 一种云计算系统功能组件部署方法及装置 | |
WO2021057252A1 (zh) | 一种业务处理流程配置方法、业务请求处理方法及装置 | |
CN111507476A (zh) | 部署机器学习模型的方法、设备和计算机程序产品 | |
CN102193812A (zh) | 一种代码编译方法、主机及系统 | |
CN102081544B (zh) | 应用程序生成系统和方法 | |
CN112306880A (zh) | 测试方法、装置、电子设备和计算机可读存储介质 | |
CN112636982A (zh) | 网络对抗环境配置方法及用于网络对抗的实验云平台系统 | |
CN104133676A (zh) | 一种基于脚本的功能执行方法和设备 | |
CN116501315A (zh) | 基于DevOps域的低代码软件开发系统、方法及设备 | |
CN114968406B (zh) | 一种插件管理方法、装置、电子设备及存储介质 | |
CN110825409A (zh) | 参数管理方法、电子设备及计算机存储介质 | |
CN112860251A (zh) | 一种网站前端构建的方法与系统 | |
CN109117199B (zh) | 分布式程序的配置管理方法和装置 | |
CN107193582B (zh) | 发布方法及系统 | |
CN109508193B (zh) | 一种应用部署运行方法、装置、终端设备和介质 | |
CN113495723B (zh) | 一种调用功能组件的方法、装置及存储介质 | |
CN115729590A (zh) | 服务部署方法、装置、设备和计算机可读存储介质 | |
CN109814911A (zh) | 用于管理脚本程序的方法、装置、计算机设备及存储介质 | |
CN112445607B (zh) | 一种应用程序执行方法函数的方法及装置 | |
CN116157774A (zh) | 用于在云计算环境中提供工业设备的工程的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |