基于监控车辆的软件升级系统的制作方法

文档序号:6444924阅读:145来源:国知局
专利名称:基于监控车辆的软件升级系统的制作方法
技术领域
本发明涉及网络通信领域,具体涉及一种基于监控车辆的软件升级系统。
背景技术
软件开发出来之后,由于开发者本身原因,必然会有考虑问题不全面或者程序功能不完善的地方,当软件发行后,客户在使用过程中会发现各种问题,例如需要添加某些功能或某些功能不太实用或软件本身有些漏洞,这样就需要对程序进行修改,一般的软件升级包会以补丁的形式发布,使用者将这些补丁下载并进行更新,从而完成软件升级。现有的基于监控车辆的软件升级更新方式,必须在既有软件完全退出后,再使用辅助进程或人工来帮助所述软件更新和升级。现有的基于监控车辆的软件升级步骤一般为关闭软件_>卸载软件_>安装升级软件_>再次启动,如果在升级期间有需要检测的数据则会发生漏检,从而导致数据的丢失,而且基于监控车辆的软件在升级期间相关服务都必须停止,导致服务中断。

发明内容
针对上述技术问题,本发明的目的在于提供一种基于监控车辆的软件升级系统, 能在基于监控车辆的软件进行升级的同时不间断的提供服务。为解决以上技术问题,一种基于监控车辆的软件升级系统,包括数据包获取模块和替换模块,所述替换模块设置有热替换子模块,通过创建热替换子进程替换父进程,用于父进程加载升级数据和热替换子进程提供服务。所述替换模块设置有冷启动子模块,通过创建冷启动进程,用于加载升级数据。所述替换模块设置有监测子模块,用于监测热替换子模块和冷启动子模块的进行过程,并将监测数据传输到数据包获取模块。所述数据包获取模块设置有唤醒子模块,用于判断有升级数据的软件是否运行, 根据判断结果唤醒相应的模块。所述数据包获取模块设置有分析子模块,用于分析监测数据,得到监测结果并发 i^fn 息 ο所述数据包获取模块设置有控制子模块,用于接收分析子模块发送的信息,根据发送信息的不同执行相应的操作。所述基于监控车辆的软件升级系统,包括升级打包模块,通过获取升级数据,用于对升级数据进行打包和发布。所述数据包获取模块为本地升级模块,通过拷贝方式获取升级数据包并对该升级数据包进行解压缩,用于将升级数据发送到替换模块进行加载。所述数据包获取模块为远程升级模块,通过通信链路获取升级数据包并对该升级数据包进行解压缩,用于将升级数据发送到替换模块进行加载。所述基于监控车辆的软件升级系统包括远程控制模块,通过通信网络分别连接升级打包模块和远程升级模块,用于控制升级数据包的传输。与现有技术相比,本发明中的热替换模块,通过创建热替换子进程替换父进程,使热替换子进程持续提供服务,而父进程进行基于监控车辆的软件升级,保证服务不中断,而且本发明利用进程间通信技术,以及模块热交换管理方式,使运行的进程可以自行管理运作和升级,并充分保留和利用既有数据和资源,实现微秒级别的无缝切换和升级,保证基于监控车辆的软件在进行升级的同时服务不中断,增强稳定性的同时减少人工维护的时间。


图1是本发明基于监控车辆的软件升级系统的功能结构图;图2是本发明热替换子模块的工作流程图;图3是本发明基于监控车辆的软件升级系统的功能结构图;图4是本发明基于监控车辆的软件升级系统工作过程图;图5是本发明基于监控车辆的软件升级系统的架构图。
具体实施例方式本发明的基本构思是,通过创建一种热替换子进程来替代父进程,升级服务通过父进程来实现,服务运行通过热替换子进程实现,从而实现基于监控车辆的软件在升级的同时服务不中断。为了使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步的详细说明。实施例1 参见图1,一种基于监控车辆的软件升级系统,包括替换模块、本地升级模块和升级打包模块。所述替换模块包括热替换子模块、冷启动子模块和监测子模块,其中热替换子模块通过创建热替换子进程替换父进程,用于父进程加载升级数据和热替换子进程提供服务。上述热替换子模块的具体工程流程如下1、创建热替换子进程,父进程将自己工作的交换域通知给所述热替换子进程,且继续提供服务并等待热替换子进程的申请让权;2、热替换子进程启动,创建一个新的交换域,并利用父进程提供的交换域中数据、 配置和模块来进行新的模块载入,被载入模块处于暂停状态,所有模块载入完成后,通知父进程准备让权;3、父进程收到子进程让权请求后,将逐一通知模块进行释放,所有模块释放完毕后立即通知热替换子进程,此时父进程已经让权,并将共享资源等让给热替换子进程,父进程随后挂起,等待子进程的释放通知;4、热替换子进程收到父进程的让权通知后,有选择性的保留父进程的共享资源, 并立即让所有模块运行,随后通知父进程可以释放;5、父进程释放后,通过自己工作的交换域来完成升级数据的载入,当所有数据加载完成后,通过热替换子进程的工作域、配置和模块进行新的模块载入,所有模块载入完成后,通知热替换子进程准备让权;6、热替换子进程收到父进程让权请求后,将逐一通知模块进行释放,所有模块释放完毕后立即通知父进程;7、父进程收到热替换子进程的让权通知后,立即让父进程的所有模块运行,随后通知热替换子进程释放。重复步骤1到7,可以完成多次热替换更替,从而可以保证软件升级时稳定可靠的无间断的服务。所述替换模块包括冷启动子模块,通过创建冷启动进程,用于进行数据加载,其具体工作流程如下1、冷启动子模块被唤醒后,创建一个冷启动进程初始化系统环境,并为冷启动进程创建一个新的交换域用于模块载入,用来完成数据加载;2、一旦所有模块载入完成,直接运行模块,进行数据加载,所有数据加载完成后, 释放该进程。所述监测子模块,用于监测热替换子模块和冷启动子模块的运行状态,并将监测数据传输到数据包获取模块,所述监测子模块全程监测软件升级过程中升级数据加载的过程,获取监测数据的同时将监测数据传输到数据包获取模块。所述数据包获取模块包括唤醒子模块、分析子模块和控制子模块,通过获取基于监控车辆的软件升级数据包并对其解压,将唤醒子模块用来判断有升级数据的软件是否在运行,根据判断结果来确定唤醒相应的模块,然后将解压的数据传输到唤醒的模块中进行数据加载,并利用分析子模块来分析软件升级是否成功,并发送相应信息,最后使用控制子模块来接收信息,根据发送信息执行相应的操作。所述唤醒子模块,通过判断有升级数据的基于监控车辆的软件是否在运行,根据运行状态唤醒相应的模块,其具体实现方式如下若有升级数据的软件正在运行,则唤醒热替换子模块;若有升级数据的软件没有运行,则唤醒冷启动子模块。所述分析子模块,通过分析监测数据,判断基于监控车辆的软件升级是否完成,具体实现方式如下分析监测数据显示热替换子模块和冷启动子模块在进行升级数据加载正常且所有升级都已完成加载,则发送所述软件升级成功信号;分析监测数据显示热替换子模块和冷启动子模块在进行升级数据加载不正常,或者其他原因导致升级数据不能正常加载,则发送所述软件升级失败信息。所述控制子模块,接收分析子模块发送的信息,根据发送的信息执行相应的操作, 其具体操作如下若发送的信息显示基于监控车辆的软件升级失败,则返回故障信息;若发送的信息显示基于监控车辆的软件升级成功,则清理升级数据包及其解压文件、临时文件和旧模块相关文件等。上述数据包获取模块的具体工作流程如下S201、判断有升级数据的基于监控车辆的软件是否在运行若没有运行,则进入步骤S202 ;
若运行,则进入步骤S203 ;S202、触发冷启动子模块由于基于监控车辆的软件不在运行状态,也就没有提供服务,就可以直接触发冷启动子模块创建一个新的进程来进行数据升级加载;S203、触发热替换子模块由于基于监控车辆的软件正在运行,表示该软件正在提供服务,为保证软件升级的同时不间断的提供服务,就需要触发热替换子模块来实现。S204、分析监测数据来检查软件升级是否成功若基于监控车辆的软件升级失败,则进入步骤S205 ;若基于监控车辆的软件升级成功,则进入步骤S206 ;由于监测数据是通过监测子模块全程监控热替换子模块和冷启动子模块而得到的,通过对监测数据进行分析,就会得到数据加载的过程和数据加载的完成情况,一旦升级数据加载过程正常且所有升级数据加载已经完成,则表明基于监控车辆的软件升级成功了,若升级数据加载过程不正常,则表明基于监控车辆的软件升级失败。S205、返回故障信息基于监控车辆的软件升级失败是通过分析监测数据得出的,把分析监测数据中导致该软件升级失败的相关数据打包,同时将错误信息和相关日志等信息发送给使用者。S206、清理升级数据包及其相关文件在基于监控车辆的软件升级成功后,软件升级数据包、解压软件升级包产生的文件和相关文件等就会占据一定的存储空间,为节约存储空间就需要对这些数据进行清理。所述升级打包模块,用于获取基于监控车辆的软件升级数据,并将该软件升级数据进行快速打包制作形成升级数据包,并进行发布。基于监控车辆的软件升级数据的容量大小不一,容量太大的模块通过升级打包模块把所述软件升级数据重新分割,制成容量适中的数据包,方便加压,减少数据加载时间。实施例2 参见图3,一种基于监控车辆的软件升级系统,包括升级打包模块、远程控制模块、 升级模块和替换模块,所述远程升级模块与本地升级模块设置相同,其中,远程控制模块向升级打包模块发送请求,升级打包模块接受请求并将升级数据包发送到远程控制模块, 远程控制模块将升级数据包发送到远程升级模块,远程升级模块对升级数据包解压并将加压升级数据传输到替换模块进行数据加载,替换模块将数据加载的情况返回到远程升级模块,远程升级模块对返回数据进行分析,根据分析情况做相应处理,并将处理情况返回到远程控制模块。上述基于监控车辆的软件升级系统的大致步骤如下S401、获取基于监控车辆的软件升级数据包基于监控车辆的软件升级数据包可以同过网络下载,拷贝等方式获取,然后通过升级打包模块重新制作升级数据包。S402、解压缩升级数据包并执行升级脚本对基于监控车辆的软件的升级数据包进行解压,将解压数据按照预定的方法进行数据加载。
S403、判断是否需要热替换若需要热替换,则进入步骤S404 ;若不需要热替换,则进入步骤S406 ;当有升级数据的软件在运行的时候,为确保基于监控车辆的软件升级的同时服务不间断则需进行热替换。S406、判断基于监控车辆的软件升级是否成功若基于监控车辆的软件升级成功,则进入步骤S407 ;若基于监控车辆的软件升级不成功,则进入步骤S412 ;通过冷启动进行升级数据加载,所有数据加载完成后,判断基于监控车辆的软件升级是否成功。S407、进行故障收集收集错误信息和日志,返回给使用者,方便使用者调试。S404、开始进行热替换当热替换子模块不在使用状态时,一般都处于沉睡状态,需要进行唤醒,才能进行热替换。S405、热替换子进程启动热替换子模块启动,将创建一个热替换子进程,父进程将自身的工作域通知热替换子进程。S408、判断热替换是否成功若热替换成功,则进入步骤407 ;若热替换失败,则进入步骤S412。S409、加载新模块及配置热替换子进程创建成功,通过父进程的工作域进行新模块加载,使热替换子进程提供服务,父进程进行升级数据加载。S410、判断基于监控车辆的软件升级是否成功若基于监控车辆的软件升级成功,则进入步骤S411 ;若基于监控车辆的软件升级失败,则进入步骤S407 ;若热替换将所有升级数据加载完成且未再出现错误,则基于监控车辆的软件升级成功。S411、进行旧数据清理清理升级数据包及解压升级数据包的文件、相关文件和旧模块相关文件等,节约存储空间。S412、基于监控车辆的软件升级结束基于监控车辆的软件升级结束后,相关模块进入沉睡状态,当再次被唤醒后方启动。所述基于监控车辆的软件升级系统通过热替换方式升级的同时,既可以对升级包进行验证,又可以同时保证服务不中断,同时还能附加远程升级、发布、故障及时自动反馈的功能,极大方便了服务的快速升级部署响应,并提供更可靠持久的服务在线水平。参见图5,是本发明的一种具体实施例,通过升级工具包从网络发布服务中获取基于监控车辆的软件升级数据,升级工具包将所述升级数据打包并发布。若升级数据包发送到本地升级模块,则通过本地升级模块和热替换模块进行升级数据加载,完成基于监控车辆的软件升级服务;若升级数据包发送给网络升级服务,则通过网络升级模块和热替换模块进行升级数据加载,完成基于监控车辆的软件升级服务。 以上仅是本发明的优选实施方式,应当指出的是,上述优选实施方式不应视为对本发明的限制,本发明的保护范围应当以权利要求所限定的范围为准。对于本技术领域的普通技术人员来说,在不脱离本发明的精神和范围内,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种基于监控车辆的软件升级系统,其特征在于,包括数据包获取模块和替换模块, 所述替换模块设置有热替换子模块,通过创建热替换子进程替换父进程,用于父进程加载升级数据和热替换子进程提供服务。
2.如权利要求1所述的基于监控车辆的软件升级系统,其特征在于,所述替换模块设置有冷启动子模块,通过创建冷启动进程,用于加载升级数据。
3.如权利要求1所述的基于监控车辆的软件升级系统,其特征在于,所述数据包获取模块设置有唤醒子模块,用于判断有升级数据的软件是否运行,根据判断结果唤醒相应的模块。
4.如权利要求2所述的基于监控车辆的软件升级系统,其特征在于,所述替换模块设置有监测子模块,用于监测热替换子模块和冷启动子模块的执行过程,并将监测数据传输到数据包获取模块。
5.如权利要求1所述的基于监控车辆的软件升级系统,其特征在于,所述数据包获取模块设置有分析子模块,用于分析监测数据,得到监测结果并发送信息。
6.如权利要求1所述的基于监控车辆的软件升级系统,其特征在于,所述数据包获取模块设置有控制子模块,用于接收分析子模块发送的信息,根据发送信息的不同执行相应的操作。
7.如权利要求1所述的基于监控车辆的软件升级系统,其特征在于,包括升级打包模块,通过获取升级数据,用于对升级数据进行打包和发布。
8.如权利要求1所述的基于监控车辆的软件升级系统,其特征在于,所述数据包获取模块为本地升级模块,通过拷贝方式获取升级数据包并对该升级数据包进行解压缩,用于将升级数据发送到替换模块进行加载。
9.如权利要求1所述的基于监控车辆的软件升级系统,其特征在于,所述数据包获取模块为远程升级模块,通过通信链路获取升级数据包并对该升级数据包进行解压缩,用于将升级数据发送到替换模块进行加载。
10.如权利要求9所述的基于监控车辆的软件升级系统,其特征在于,包括远程控制模块,通过通信网络分别连接升级打包模块和远程升级模块,用于控制升级数据包的传输。
全文摘要
本发明公开一种基于监控车辆的软件升级系统,包括数据包获取模块和替换模块,所述替换模块设置有热替换子模块,通过创建热替换子进程替换父进程,用于父进程加载升级数据和热替换子进程提供服务。本发明的基于监控车辆的软件升级系统,通过热替换操作,保证基于监控车辆的软件升级的同时服务不中断。
文档编号G06F9/445GK102567062SQ20111046028
公开日2012年7月11日 申请日期2011年12月31日 优先权日2011年12月31日
发明者张渝, 彭建平, 彭朝勇, 戴立新, 杨凯, 王泽勇, 王黎, 莫金雨, 赵全轲, 高晓蓉 申请人:成都主导软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1