本发明涉及计算机技术领域,具体地,涉及一种软件升级方法及装置。
背景技术:
伴随着计算机技术的不断发展,具有位置透明性、软件复用性、接口可靠性、可扩充服务、自描述性和高安全性等多重优点的软件组件技术正被众多软件运营商所大力推广;尤其是组件技术能够将软件组件化来分解软件,降低软件的复杂度,使得软件组件化已经成为了软件发展的一种大众化趋势。
但是,包含有组件的软件在组件没有注册成功的情况下,该软件是无法实现相应组件功能的,并且由于软件组件所具有的独立性的特性,在软件安装包执行软件升级的过程中,无法同时实现对软件安装包中的软件组件的后台注册。目前,一般都需要用户手动操作与操作系统及待升级程序有关的操作指令才能完成相应软件组件的注册,操作繁琐,大大降低了组件注册的注册成功率,并也影响了软件的用户体验;同时由于需要用户执行额外的操作指令的往往会出现操作错误的情况,致使软件组件无法很好地得到推广,也在一定程度上降低了软件运营商的利益。
需要说明的是,以上技术问题是本发明人在实践本发明的过程中发现的。
技术实现要素:
本发明提供一种软件在线升级方法及装置,用于解决上述背景技术中所阐述的至少一个技术问题。
为了实现上述目的,本发明提供一方面提供一种软件在线升级方法,该方法包括:
获取包含有软件组件的升级安装包;
当对上述升级安装包执行安装时,解析以确定上述软件组件的组件配置信息;
根据所确定的组件配置信息调用相应的组件注册工具,对上述软件组件执行注册。
优选地,在上述对上述软件组件执行注册之后,还包括:
当上述升级安装包中存在未注册成功的组件时,确定上述未注册成功的软件组件的组件配置信息;
根据所确定的未注册成功的软件组件的组件配置信息,重新调用相应的组件注册工具对上述未注册成功软件组件执行注册。
优选地,上述根据所确定的组件配置信息调用相应的组件注册工具,对上述软件组件执行注册包括:
根据所确定的组件配置信息查询包含有组件配置信息与组件注册工具特征信息映射关系的组件注册工具参照表,以确定与上述组件配置信息相对应的组件注册工具特征信息;
根据所确定的组件注册工具特征信息,基于接口函数命令调用相应的组件注册工具对上述软件组件执行注册。
优选地,上述组件注册工具参照表中包含有组件注册工具特征信息为regsvr32.exe的特征信息与组件配置信息为基于c++代码所生成的dll文件的第一映射关系,该方法包括:
当所确定的第一软件组件的组件配置信息为基于c++代码所生成的dll文件时,查询上述组件注册工具参照表;
基于上述组件注册工具表中的第一映射关系,确定与上述基于c++代码所生成的dll文件相对应的组件注册工具特征信息为regsvr32.exe的特征信息;
基于所确定的regsvr32.exe的特征信息,调用组件注册工具regsvr32.exe对上述第一软件组件执行注册。
优选地,上述组件注册工具参照表中包含有组件注册工具特征信息为regasm.exe的特征信息与组件配置信息为基于c#代码所生成的dll文件的第二映射关系,上述方法包括:
当所确定的第二软件组件的组件配置信息为基于c#代码所生成的dll文件时,查询上述组件注册工具参照表;
基于上述组件注册工具表中的第二映射关系,确定与上述基于c#代码所生成的dll文件相对应的组件注册工具特征信息为regasm.exe的特征信息;
基于所确定的regasm.exe的特征信息,调用组件注册工具regasm.exe对上述第二软件组件执行注册。
优选地,上述组件配置信息包含组件文件类型、组件名称和组件源程序编码类型中的一种或多种。
优选地,上述组件注册工具的调用是基于包含winexec命令的接口函数命令所执行的。
本发明另一方面提供一种软件在线升级装置,该装置包括:
获取单元,用于获取包含有软件组件的升级安装包;
解析单元,用于当对上述升级安装包执行安装时,解析以确定上述软件组件的组件配置信息;
执行注册单元,用于根据所确定的组件配置信息调用相应的组件注册工具,对上述软件组件执行注册。
优选地,上述装置还包括与上述执行注册单元连接的重新注册单元,重新注册单元包括:
失败注册检测模块,用于当上述升级安装包中存在未注册成功的组件时,确定上述未注册成功的软件组件的组件配置信息;
重新注册模块,用于根据上述未注册成功的软件组件的组件配置信息,重新调用相应的组件注册工具对上述未注册成功软件组件执行注册。
优选地,上述执行注册单元包括:
特征信息确定模块,用于根据所确定的组件配置信息查询包含有组件配置信息与组件注册工具特征信息映射关系的组件注册工具参照表,以确定与上述组件配置信息相对应的组件注册工具特征信息;
组件注册工具调用模块,用于根据所确定的组件注册工具特征信息,基于接口函数命令调用相应的组件注册工具对上述软件组件执行注册。
优选地,上述组件注册工具参照表中包含有组件注册工具特征信息为regsvr32.exe的特征信息与组件配置信息为基于c++代码所生成的dll文件的第一映射关系,上述装置包括:
上述特征信息确定模块,用于当所确定的第一软件组件的组件配置信息为基于c++代码所生成的dll文件时,查询上述组件注册工具参照表,基于上述组件注册工具表中的第一映射关系,确定与上述基于c++代码所生成的dll文件相对应的组件注册工具特征信息为regsvr32.exe的特征信息;
上述组件注册工具调用模块,用于基于所确定的regsvr32.exe的特征信息,调用组件注册工具regsvr32.exe对上述第一组件执行注册。
优选地,上述组件注册工具参照表中包含有组件注册工具特征信息为regasm.exe的特征信息与组件配置信息为基于c#代码所生成的dll文件的第二映射关系,上述装置包括:
上述特征信息确定模块,用于当所确定的第二软件组件的组件配置信息为基于c#代码所生成的dll文件时,查询上述组件注册工具参照表,基于上述组件注册工具表中的第二映射关系,确定与上述基于c#代码所生成的dll文件相对应的组件注册工具特征信息为regasm.exe的特征信息;
上述组件注册工具调用模块,用于基于所确定的regasm.exe的特征信息,调用组件注册工具regasm.exe对上述第二组件执行注册。
通过上述技术方案,在软件在线升级过程中,通过对软件安装包中的配置文件的解析调用相应的组件注册工具,对安装包中的软件组件执行注册,实现了软件组件在软件升级的过程中的后台注册,不需要用户手动执行操作指令实现软件注册,优化了软件组件注册的用户体验;并且,可以理解的是软件组件所对应的可以是一个独立的功能组件,通过上述技术方案使得软件运营商能够基于软件在线升级的手段,更好地向软件用户推出具有软件组件功能的软件产品;而且,通过上述技术方案,为软件组件注册的时机提供了更多一次的机会,使得软件运营商对于软件组件的处理更加具有灵活性,能有助于软件运营商推广新的软件组件。
本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1示出的是本发明可以应用于其中的示例性系统架构图;
图2示出的是本发明一实施例软件在线升级方法的流程图;
图3示出的图2中的步骤103在一种优选实施例下的详细执行图;
图4示出的是利用本发明一实施例软件在线升级方法在软件升级的过程中实现组件注册的实施效果图;
图5示出的是本发明另一实施例软件在线升级方法的流程图;
图6示出的是本发明一实施例软件在线升级方法的流程图;
图7示出的是本发明一实施例软件在线升级装置的结构示意图;
图8示出的是图6所示本发明实施例软件在线升级装置中的执行注册单元503在一种优选实施例下的详细结构示意图;
图9示出的是本发明另一实施例软件在线升级装置的结构示意图;
附图标记说明
101、102、103终端104网络
105服务器501获取单元
502解析单元503执行注册单元
5031特征信息确定模块5032组件注册工具调用模块
601重新注册单元6011失败注册检测模块
6012重新注册模块
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1示出了可以应用本发明的软件在线升级方法或软件在线升级装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端101、102、103,网络104和服务器105。网络104用以在终端101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端101、102、103可以是具有显示屏并且支持信息浏览的各种电子设备,包括但不限于电脑、智能手机、平板电脑、电子书阅读器和可穿戴智能设备等等。
可以理解的是,图1中的终端、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端、网络和服务器。
参照图2示出的是本发明一实施例软件在线升级方法的流程图,包括以下步骤:
步骤201:用户终端获取包含有软件组件的升级安装包;
需要说明的是,本实施例所提供的应用在用户终端的软件在线升级方法一般由图1中的终端101、102、103所执行的。关于本实施例中的升级安装包的获取方式,可以是基于服务器主动推送的,也可以是用户终端基于用户请求下载的,应不加以限定。
步骤202:当对上述升级安装包执行安装时,用户终端解析以确定上述软件组件的组件配置信息;
本实施例中的组件配置信息,可以是软件组件的属性信息,也可以是软件组件被预先配置的,在此应不加以限定。
步骤203:根据所确定的组件配置信息调用相应的组件注册工具,用户终端对上述软件组件执行注册。
需要说明的是,不一样组件配置信息所适用的组件注册工具也应是不相同的;由此通过本实施例,实现了基于软件组件的组件配置信息调用相应的软件组件注册工具对软件组件执行注册,提高了软件组件注册成功的成功率;并且,本实施例通过自动调用软件组件注册工具对软件的注册,实现了软件组件的后台注册,让软件组件能在软件组件功能使用前完成注册,丰富了软件组件注册的时机;另外,本实施例提供了一种关于软件注册的全新的解决方案,使得软件运营商在对于软件注册的处理多了一种选择,增强了组件处理的灵活性。
可以理解的是,基于组件的注册,用户终端的软件项目所运行的环境应当是对服务器友好的,并应允许运行active控件,以保证升级过程中对组件的成功注册;并且,本实施例对于软件所在的操作系统环境没有限制,不应以操作系统作为限制本发明所涵盖的保护范围的因素
作为本发明实施例软件在线升级方法的一种优选实施例,上述组件配置信息包含组件文件类型、组件名称和组件源程序编码类型中的一种或多种。由此,能够实现基于软件组件的属性信息对相应的软件组件执行组件注册操作。
作为示例,在一种情况下,配置信息为文件类型时。关于本实施例的实施,可以是:读取安装包配置文件中配置项run后面的文件名,以确定配置项类型。
参见图3示出的图2中的步骤203在一种优选实施例下的详细执行图,关于步骤203的具体执行可以包含以下子步骤:
步骤2031:用户终端根据所确定的组件配置信息查询包含有组件配置信息与组件注册工具特征信息映射关系的组件注册工具参照表,以确定与上述组件配置信息相对应的组件注册工具特征信息;
作为示例,上述组件注册工具特征信息包含有组件注册工具的元数据信息。由此,能够基于组件注册工具特征信息执行调用相应的组件注册工具。
步骤2032:用户终端根据所确定的组件注册工具特征信息,调用相应的组件注册工具对上述软件组件执行注册。
需要说明的是,本实施例汇总的组件注册工具的调用可以是基于接口函数指令执行调用的。
基于本实施例中组件注册工具参照表中已记录的组件注册工具和组件注册工具之间的对应关系,能够确保在软件组件执行注册的过程中,关于软件组件注册工具的调用不会出现差错,提高了软件组件工具注册的成功率。
关于本实施例的具体实施的进一步说明,上述组件注册工具参照表中包含有组件注册工具特征信息为regsvr32.exe的特征信息与组件配置信息为基于c++代码所生成的dll文件的第一映射关系,该方法包括:
当所确定的第一软件组件的组件配置信息为基于c++代码所生成的dll文件时,用户终端查询上述组件注册工具参照表;
基于上述组件注册工具表中的第一映射关系,用户终端确定与上述基于c++代码所生成的dll文件相对应的组件注册工具特征信息为regsvr32.exe的特征信息;
基于所确定的regsvr32.exe的特征信息,用户终端调用组件注册工具regsvr32.exe对上述第一软件组件执行注册。
通过本实施例的说明,实现了在软件升级的过程中,完成对基于c++代码所生成的dll文件格式的软件组件的注册。
关于本实施例的具体实施的进一步说明,上述组件注册工具参照表中包含有组件注册工具特征信息为regasm.exe的特征信息与组件配置信息为基于c#代码所生成的dll文件的第二映射关系,上述方法包括:
当所确定的第二软件组件的组件配置信息为基于c#代码所生成的dll文件时,用户终端查询上述组件注册工具参照表;
基于上述组件注册工具表中的第二映射关系,用户终端确定与上述基于c#代码所生成的dll文件相对应的组件注册工具特征信息为regasm.exe的特征信息;
基于所确定的regasm.exe的特征信息,用户终端调用组件注册工具regasm.exe对上述第二软件组件执行注册。
通过本实施例的说明,实现了在软件升级的过程中,完成对基于c#代码所生成的dll文件格式的软件组件的注册。
在本发明实施例的一些可选实施例中,上述组件注册工具的调用是基于包含winexec命令的接口函数命令所执行的。
需要说明的是,以上组件注册工具的调用可以是基于待注册组件的元数据信息所实现的,该元数据信息可以是预先配置的。作为示例,参见图4示出的是利用本发明一实施例软件在线升级方法在软件升级的过程中实现组件注册的实施效果图,在本实施例中,主要是可以根据待安装注册对象的不同的数据文件类型进行相应的处理,对于msi类型文件,通过winexec命令函数调用msiexec.exe命令来注册;对于exe类型文件,直接通过接口函数运行即可。对于插件的安装以及exe文件的运行,在用户终端所接收到的也仅仅是需要根据提示信息进行安装即可。进一步地,由于基于c++生成的dll文件和基于c#生成的dll文件这两种文件所需的注册命令不同,若在配置文件中已经约定有两种不同的配置项分别为reg32dll和regdll,在软件升级的过程中,软件会读取两种配置项下面对应的文件,并对于reg32dll下面的文件,会通过winexec命令函数调用regsvr32.exe执行注册,和对于regdll下面的文件,会通过winexec命令函数调用regasm.exe执行注册。
参照图5示出的是本发明另一实施例软件在线升级方法的流程图,包括以下步骤:
步骤301:用户终端获取包含有软件组件的升级安装包;
步骤302:用户终端当对上述升级安装包执行安装时,解析以确定上述软件组件的组件配置信息;
步骤303:用户终端根据所确定的组件配置信息调用相应的组件注册工具,对上述软件组件执行注册。
步骤304:当上述升级安装包中存在未注册成功的组件时,用户终端确定上述未注册成功的软件组件的组件配置信息;
关于本实施例的实施,更具体地,可以是在软件升级成功后,定期检测该软件升级包中的软件组件是否注册成功。
步骤305:根据所确定的未注册成功的软件组件的组件配置信息,用户终端重新调用相应的组件注册工具对上述未注册成功软件组件执行注册。
通过本实施例,实现了对软件安装包中待安装软件组件的安装状态的检测,以实现当软件组件未安装时,对软件组件重新安装,确保了待安装软件组件能够注册成功。
在本实施例的一方面的应用上,该待升级的软件为财务管理系统类软件。
需要说明的是,基于组件化技术所特有的软件可复用性的强大功能,能在很大程度上降低软件开发的复杂程度,故组件技术被广泛应用于财务管理系统类软件中;并且在目前的包含有殴组件的财务管理系统类软件中,升级后的软件项目需要用户在系统端额外执行组件的注册,才可以实现相应的功能,故组件注册的优化工作就显得尤为重要。本实施例特别强调利用本发明实施例的软件升级方法针对财务管理系统类软件所执行的软件在线升级的过程中对软件组件的后台注册,但可以理解的是,本实施例仅仅是为了强调保护的方向,但不应用作限定本发明所保护的范围。
参照图6示出的是本发明一实施例软件在线升级方法的流程图,包括以下步骤:
步骤401:服务器配置包含有软件组件的升级安装包;
步骤402:用户终端获取上述包含有软件组件的升级安装包;
步骤403:当用户终端对该升级安装包执行安装时,用户终端解析以确定该软件组件的组件配置信息;
步骤404:用户终端根据所确定的组件配置信息调用相应的组件注册工具,对该软件组件执行注册。
通过本实施例,实现了由服务器端配置软件组件,使得软件运营商在升级软件的同时能够通过将待注册组件打包至升级安装包中实现软件组件的注册,有利于软件运营商推广组件的功能应用。
作为图6所示的实施例软件在线升级方法的一种优选实施例,该软件在线升级方法可以包括以下步骤:
服务器选择为软件组件预配置附加解析标记,并合成包含有软件组件的升级安装包;
用户终端获取上述包含有软件组件的升级安装包;
当用户终端对上述升级安装包执行安装时,用户终端解析并确定仅带有附加解析标记的软件组件的组件配置信息;
用户终端根据所确定的组件配置信息调用相应的组件注册工具,对上述软件组件执行注册。
通过本实施例,实现了由服务器端可以选择配置软件安装包中需要推广的组件向用户推广,可以实现软件组件的差别性安装,为软件运营商提供了一种全新的功能组件推广的方案。本实施例是根据解析标记选择执行解析组件的组件配置信息,由此用户终端不会对所有软件组件执行解析,能在一定程度上降低软件组件注册对用户端资源的消耗与占用。
作为图6所示的实施例软件在线升级方法的另一种优选实施例,该软件在线升级方法可以包括以下步骤:
服务器选择为软件组件预配置附加执行标记,并合成包含有软件组件的升级安装包;
用户终端获取上述包含有:软件组件的升级安装包;
当用户终端对上述升级安装包执行安装时,用户终端解析并确定上述软件组件的组件配置信息;
用户终端根据所确定的组件配置信息调用相应的组件注册工具,并仅对带有附加执行标记的软件组件执行注册。
通过本实施例,实现了由服务器端可以选择配置软件安装包中需要推广的组件向用户推广,可以实现软件组件的差别性安装,为软件运营商提供了另一种全新的功能组件推广的方案。本实施例是根据执行标记选择执行安装组件注册,由此实现了用户终端会只对所相应的软件组件执行注册。
参见图7示出的是本发明一实施例软件在线升级装置的结构示意图,该装置包括:
获取单元501,用于获取包含有软件组件的升级安装包;
解析单元502,用于当对上述升级安装包执行安装时,解析以确定上述软件组件的组件配置信息;
执行注册单元503,用于根据所确定的组件配置信息调用相应的组件注册工具,对上述软件组件执行注册。
更具体地,上述组件配置信息包含组件文件类型、组件名称和组件源程序编码类型中的一种或多种。
需要说明的是,本实施例软件在线升级装置一般是配置在图1中的终端101、102、103中的。
参见图8示出的是图7所示本发明实施例软件在线升级装置中的执行注册单元503在一种优选实施例下的详细结构示意图,包括:
特征信息确定模块5031,用于根据所确定的组件配置信息查询包含有组件配置信息与组件注册工具特征信息映射关系的组件注册工具参照表,以确定与上述组件配置信息相对应的组件注册工具特征信息,其中基于上述组件注册工具特征信息适于执行调用相应的组件注册工具;
组件注册工具调用模块5032,用于根据所确定的组件注册工具特征信息,调用相应的组件注册工具对上述软件组件执行注册。
更具体地,上述组件注册工具特征信息包含有组件注册工具的元数据信息。
作为本发明实施例软件在线升级装置的一种优选实施例,上述组件注册工具参照表中包含有组件注册工具特征信息为regsvr32.exe的特征信息与组件配置信息为基于c++代码所生成的dll文件的第一映射关系,则特征信息确定模块5031,用于当所确定的第一软件组件的组件配置信息为基于c++代码所生成的dll文件时,查询上述组件注册工具参照表,基于上述组件注册工具表中的第一映射关系,确定与上述基于c++代码所生成的dll文件相对应的组件注册工具特征信息为regsvr32.exe的特征信息;组件注册工具调用模块5032,用于基于所确定的regsvr32.exe的特征信息,调用组件注册工具regsvr32.exe对上述第一组件执行注册。
作为本发明实施例软件在线升级装置的一种优选实施例,上述组件注册工具参照表中包含有组件注册工具特征信息为regasm.exe的特征信息与组件配置信息为基于c#代码所生成的dll文件的第二映射关系,特征信息确定模块5031,用于当所确定的第二软件组件的组件配置信息为基于c#代码所生成的dll文件时,查询上述组件注册工具参照表,基于上述组件注册工具表中的第二映射关系,确定与上述基于c#代码所生成的dll文件相对应的组件注册工具特征信息为regasm.exe的特征信息;组件注册工具调用模块5032,用于基于所确定的regasm.exe的特征信息,调用组件注册工具regasm.exe对上述第二组件执行注册。
在本发明实施例装置应用的一方面,该待在线升级的软件为财务管理系统类软件。
参见图9示出的是本发明另一实施例软件在线升级装置的结构示意图,该装置还包括与上述执行注册单元503连接的重新注册单元601,重新注册单元601包括:
失败注册检测模块6011,用于当上述升级安装包中存在未注册成功的组件时,确定上述未注册成功的软件组件的组件配置信息;
重新注册模块6012,用于根据上述未注册成功的软件组件的组件配置信息,重新调用相应的组件注册工具对上述未注册成功软件组件执行注册。
本发明一实施例还提供一种软件在线升级系统,该系统包括服务器和用户终端,服务器包括:升级包合成单元,用于配置包含有软件组件的升级安装包;用户终端包括:与升级包合成单元相连接的升级包获取单元,用于获取上述包含有软件组件的升级安装包;升级包解析单元,用于当对上述升级安装包执行安装时,解析以确定上述软件组件的组件配置信息;终端组件注册单元,用于根据所确定的组件配置信息调用相应的组件注册工具,对上述软件组件执行注册。
作为本发明实施例软件在线升级系统的一种优选实施例,上述升级包合成单元,用于选择为软件组件预配置附加解析标记,以待用户终端解析并确定仅带有附加解析标记的软件组件的组件配置信息。
作为本发明实施例软件在线升级系统的一种优选实施例,上述升级包合成单元,用于选择为软件组件预配置附加执行标记,以待用户终端仅对带有附加执行标记的软件组件执行注册。
需要说明的是,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。