一种软件自动升级的实现方法、系统和装置 【技术领域】
本发明涉及程序软件领域,特别涉及一种软件自动升级的实现方法、系统和装置。
背景技术
目前广泛应用于各行业的应用系统中的,既有C/S(Client/Server,客户端/服务器)结构的产品也有B/S(Browser/Server,浏览器/服务器)结构的产品,尤其根据广电业务目前的普遍现状及业务处理的具体要求来看,C/S结构具有更强的适用性,也是目前国内绝大部分电视台所普遍采用的产品架构。
C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、有利于处理大量数据。其优点还包括:能充分发挥客户端PC(Personal Computer,个人计算机)的处理能力,很多工作可以在客户端处理后再提交给服务器;在实际应用中的表现就是客户端响应速度快。
C/S程序对信息安全的控制能力很强,更加注重业务流程,可以对权限多层次校验,系统运行速度较快,对于广电、媒体的实际业务管理来说,实用性更强。
例如,在处理广告合同及其订单的录入、修改、停播等具体操作时,C/S结构会突显其灵活性,如,批量处理等,链接数据库的速度很快。特别对于业务量较大的单位和机构而言,大批量的业务处理都会在某一时段集中下达,此时,就要求系统响应和处理速度非常快,这正是C/S结构的特点。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
C/S结构的程序属于胖客户端程序,客户端部署的程序量大,因此,需要高昂的投资和复杂的技术支持,后期的维护成本很高,维护和升级的工作量都很大。而且,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。
【发明内容】
本发明实施例提供一种软件自动升级的实现方法、系统和装置,以实现对C/S客户端程序的零维护,大量缩减维护人工和工作量。
为达到上述目的,本发明实施例一方面提供一种软件自动升级的实现方法,包括:
将完整的软件程序根据完成功能划分成至少一个独立的组件程序文件单独封装;
标识所述至少一个独立的组件程序的版本信息;
当所述组件程序的版本信息早于服务器更新库中组件程序的版本信息时,下载升级本地组件程序。
其中,所述标识所述至少一个独立的组件程序的版本信息,包括:采用所述组件程序文件名命名规则对所述组件程序的版本信息进行标识;或,根据所述组件程序内部的版本ID号对所述组件程序的版本信息进行标识。
其中,所述当所述组件程序的版本信息早于服务器更新库中组件程序的版本信息时,下载升级本地组件程序包括:
侦测所述服务器更新库中的所述组件程序的版本信息;
将所述服务器更新库中的所述组件程序的版本信息与本地组件版本信息库中的所述组件程序的版本信息进行比对;
当本地组件版本信息库中的所述组件程序的版本信息早于所述服务器更新库中的版本信息时,启动下载升级程序。
在所述启动下载升级程序之后,还包括:
将所述服务器中的组件程序下载到本地,更新替换本地组件程序;
更新成功后,修改所述本地组件版本信息库。
当更新不成功时,还包括:根据设置的回滚功能采用本地组件程序。
本发明实施例还提供一种软件自动升级的实现系统,包括服务器和客户终端,
所述服务器,用于部署组件程序发布软件,将最新组件程序发布到服务器端组件库,建立服务器更新库,保存所述组件程序的最新版本信息;
所述客户终端,用于将完整的软件程序根据完成功能划分成至少一个独立的组件程序文件单独封装;标识所述至少一个独立的组件程序地版本信息;当所述组件程序的版本信息早于服务器更新库中组件程序的版本信息时,下载升级本地组件程序。
其中,所述标识所述至少一个独立的组件程序的版本信息,包括:
采用所述组件程序文件名命名规则对所述组件程序的版本信息进行标识;或,根据所述组件程序内部的版本ID号对所述组件程序的版本信息进行标识。
本发明实施例还提供一种客户终端,包括:
划分模块,用于将完整的软件程序根据完成功能划分成至少一个独立的组件程序文件单独封装;
管理模块,用于标识所述至少一个独立的组件程序的版本信息;
升级模块,用于当所述组件程序的版本信息早于服务器更新库中组件程序的版本信息时,下载升级本地组件程序。
其中,所述所述升级模块包括:
信息侦测子模块,用于侦测所述服务器更新库中的所述组件程序的版本信息;
信息比对子模块,用于将所述信息侦测子模块侦测的所述组件程序的版本信息与本地组件版本信息库中的所述组件程序的版本信息进行比对;
处理子模块,用于当本地组件版本信息库中的所述组件程序的版本信息早于所述服务器更新库中的版本信息时,启动下载升级程序。
所述升级模块还包括:
更新子模块,用于将所述服务器中的组件程序下载到本地,更新替换本地组件程序;
信息修改子模块,用于当所述更新子模块更新成功后,修改所述本地组件版本信息库。
另外,所述客户终端还包括:
回滚模块,用于当所述更新子模块更新不成功时,根据设置的回滚功能采用本地组件程序。
本发明实施例还提供一种服务器,包括:
发布模块,用于部署组件程序发布软件,将最新组件程序发布到服务器端组件库;
信息管理模块,用于建立服务器更新库,保存所述组件程序的最新版本信息。
与现有技术相比,本发明实施例具有以下优点:本发明实施例可广泛应用于各行业的C/S结构程序软件中,克服了C/S程序维护量大、部署困难等问题,从而实现C/S结构程序的零维护和自动升级,大量缩减维护人工和工作量,增强用户体验。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一种软件自动升级的实现方法的流程图;
图2是本发明实施例另一种软件自动升级的实现方法流程图;
图3是本发明实施例中实现软件自动升级系统结构示意图;
图4是本发明实施例中服务器结构示意图;
图5是本发明实施例中客户终端结构示意图。
【具体实施方式】
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种软件自动升级的实现方法,该实现方法的流程如图1所示,包括以下步骤:
步骤S101,将完整的软件程序根据完成功能划分成至少一个独立的组件程序文件单独封装。
步骤S102,标识所述至少一个独立的组件程序的版本信息。
其中,可以采用组件程序文件名命名规则对所述组件程序的版本信息进行标识;或,根据所述组件程序内部的版本ID号对所述组件程序的版本信息进行标识。
步骤S103,当所述组件程序的版本信息早于服务器更新库中组件程序的版本信息时,下载升级本地组件程序。
具体的,侦测所述服务器更新库中的所述组件程序的版本信息;
将所述服务器更新库中的所述组件程序的版本信息与本地组件版本信息库中的所述组件程序的版本信息进行比对;
当本地组件版本信息库中的所述组件程序的版本信息早于所述服务器更新库中的版本信息时,启动下载升级程序。
另外,在启动下载升级程序之后,还包括:
将所述服务器中的组件程序下载到本地,更新替换本地组件程序;更新成功后,修改所述本地组件版本信息库;当更新不成功时,根据设置的回滚功能采用本地组件程序。
通过采用本发明实施例,可以实现对客户端程序的零维护,大量缩减维护人工和工作量,增强用户体验。
对于C/S结构中的程序软件开发,实现C/S客户端软件的自动升级,本发明实施例提供了另一种软件自动升级的实现方法,该方法的流程如图2所示,包括以下步骤:
步骤S201,C/S客户端程序软件进行模块化、组件化的开发。
为了实现客户端程序的自动升级,客户端程序软件的开发必须遵循模块化、组件化的开发方法,将构成整个客户端的完整程序,按照完成功能切分成多个独立的组件文件,并对组件文件进行单独程序封装。客户端主程序调用各组件程序完成整体功能。这是实现客户端程序自动升级的前提条件。
步骤S202,构建客户端程序各组件版本管理机制,明确标识各组件的版本信息。
其中,标识各组件的版本信息,可采用组件文件名命名规则或组件内部的版本ID号进行标识。构建合理的组件版本管理是系统实现的关键,客户端主程序在每次启动时,首先检查各组件与服务器端更新库中的组件版本号,如果版本不是最新的,则启动更新程序,自动下载最新版本组件,并更新本地版本信息库。
步骤S203,开发客户端自动侦测升级模块,下载最新版本的组件到客户端。
其中,自动侦测升级模块功能可以包括:自动侦测网络服务器端更新库中组件的新版本;下载升级更新;更新客户端软件版本库等。
为了实现客户端软件程序的自动升级,客户端还需在应用系统之外,额外开发自动升级模块,同时,服务器端需要开发部署组件发布软件,将最新组件发布到服务器端组件库,并建立服务器端更新库,保存最新组件的版本信息。如:在主程序每次启动时,自动侦测升级模块首先检查网络中服务器端更新库的客户端软件最新版本,并与本地版本信息库中所对应的组件的版本信息进行比对,如果本地版本信息库中的版本信息早于服务器端更新库中的版本信息,则启动下载升级程序,下载最新版本的组件到客户端。
下载升级程序采用通用网络协议,如:采用FTP(File Transfer Protocol,文件传输协议)或Http(Hypertext Transfer Protocol,超文本传输协议)协议将最新版本组件下载到本地,并更新替换本地程序。由于在主程序每次启动时,自动升级的侦测程序最先运行,其它组件程序此时还未加载,因此可以对本地组件程序进行更新。更新成功后,修改本地组件版本信息库。如果不成功,自动升级程序应设计回滚功能,采用本地原有的组件程序。
需要说明的是,步骤S202和步骤S203没有先后顺序,在客户端实行程序软件模块化、组件化的开发时,同时需要根据程序软件开发模式配置侦测升级模块,以实现客户端软件程序的自动升级。
通过采用本发明实施例,系统对客户端程序软件进行模块化组件技术开发,并部署运行于客户端软件的软件智能升级功能,能够克服三层C/S结构软件部署困难、维护不易的弱点,自动侦测服务器端的软件升级组件版本,在系统启动时,自动从服务端下载升级最新版本的组件,方便完成系统的更新,增强了用户体验。
本发明实施例还提供一种实现软件自动升级的系统,如图3所示,包括:服务器301和客户终端302。
其中,服务器301用于部署组件程序发布软件,将最新组件程序发布到服务器端组件库,建立服务器更新库,保存所述组件程序的最新版本信息;
客户终端302用于将完整的软件程序根据完成功能划分成至少一个独立的组件程序文件单独封装;标识所述至少一个独立的组件程序的版本信息;当所述组件程序的版本信息早于服务器更新库中组件程序的版本信息时,下载升级本地组件程序。对于所述组件程序的版本信息,可以采用所述组件程序文件名命名规则进行标识;或,根据所述组件程序内部的版本ID号对其进行标识。
其中,服务器301的结构,如图4所示,可以包括:
发布模块3011,用于部署组件程序发布软件,将最新组件程序发布到服务器端组件库;
信息管理模块3012,用于建立服务器更新库,保存所述组件程序的最新版本信息。
其中,客户终端302的结构,如图5所示,可以包括:
划分模块3021,用于将完整的软件程序根据完成功能划分成至少一个独立的组件程序文件单独封装;
管理模块3022,用于标识所述至少一个独立的组件程序的版本信息;
升级模块3023,用于当所述组件程序的版本信息早于服务器更新库中组件程序的版本信息时,下载升级本地组件程序。
其中,升级模块3023还可以包括:
信息侦测子模块30231,用于侦测所述服务器更新库中的所述组件程序的版本信息;
信息比对子模块30232,用于将所述信息侦测子模块30231侦测的所述组件程序的版本信息与本地组件版本信息库中的所述组件程序的版本信息进行比对;
处理子模块30233,用于当本地组件版本信息库中的所述组件程序的版本信息早于所述服务器更新库中的版本信息时,启动下载升级程序;
更新子模块30234,用于将所述服务器中的组件程序下载到本地,更新替换本地组件程序;
信息修改子模块30235,用于当更新子模块30234更新成功后,修改所述本地组件版本信息库。
客户终端302还可以包括:回滚模块3024,用于当所述更新子模块30234更新不成功时,根据设置的回滚功能采用本地组件程序。
通过本发明实施例提供的实现自动升级的系统,客户终端302利用划分模块3021将一个完整的软件程序根据完成功能的不同,划分成多个独立的组件程序文件,并对该多个独立的组件程序文件进行单独封装,然后通过管理模块3022标识该多个独立的组件程序的版本信息,可以采用组件程序文件名命名规则进行标识,或者根据组件程序内部的版本ID号对其进行标识,并将组件程序的版本信息保存在本地版本更新库中。在主程序启动时,信息侦测子模块30231首先侦测网络中的服务器更新库的客户终端302软件组件的版本信息,通过信息比对子模块30232将所述信息侦测子模块30231侦测到的所述组件程序的版本信息与本地组件版本信息库中的组件程序的版本信息进行比对,当本地组件版本信息库中的所述组件程序的版本信息早于所述服务器更新库中的版本信息时,即通过处理子模块30233启动下载升级程序。更新子模块30234将服务器301中的组件程序下载到本地,并更新替换本地组件程序,更新成功后,然后由信息修改子模块30235修改本地组件版本信息库。如果更新不成功,回滚模块3024根据设置的回滚功能采用本地组件程序。通过本发明实施例,可以实现对客户端程序的零维护,大量缩减维护人工和工作量,增强用户体验。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本发明实施例可广泛应用于各行业的C/S结构程序软件中,不仅限于广电行业,只要采用的是客户终端/服务器架构,客户终端将软件程序进行模块化、组件化管理,通过主程序调用各个独立的组件完成整体功能,服务器端相应的设计部署组件的发布软件程序,客户终端都可以在主程序启动前自动侦测网络服务器端组件的最新版本,并下载升级本地组件程序,完成客户终端软件程序的自动及时更新。有利于克服客户终端/服务器程序软件维护量大、部署困难等问题,实现程序零维护和自动升级。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明,可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。