本发明实施例涉及计算机技术,尤其涉及一种软件处理方法、装置及系统。
背景技术:
平台即服务(platformasaservice;简称:paas)通常用来对虚拟机的软件进行设置。例如,使用软件包将软件部署到虚拟机,或者使用软件包对已部署的软件进行升级。
现有技术中,软件包主要分为两种类型:全量包和增量包。为了减小软件包传输到虚拟机的时间,针对不同的应用场景可以选择使用全量包或增量包。例如,对于将软件部署到虚拟机的场景,可以使用全量包;而对于对已部署的软件进行升级的场景,可以使用增量包。举例来说,以将软件部署到虚拟机的场景为例,首先,使用者需要区分具体的应用场景,并根据应用场景确定出所选择的软件包的包标识,然后将软件包的标识输入给paas,paas触发软件部署系统根据使用者所输入的软件包的包标识,从包管理系统获取该包标识对应的软件包,并使用获取到的软件包对虚拟机的软件进行部署。对虚拟机的软件进行升级的过程,与上述将软件部署到虚拟机的过程类似,同样需要使用者区分具体的应用场景,并根据应用场景确定出所选择的软件包的包标识。
但是,由于采用现有技术中的软件设置方式,即需要使用者在确定软件包时,区分具体的使用场景,并确定与该场景对应的软件包的包标识,因此,导致了使用者的操作工作量,且对使用者的技术要求也有一定的要求,从而导致软件设置效率降低的问题。
技术实现要素:
本发明提供一种软件处理方法、装置及系统,用以解决现有技术中软件 设置效率降低的问题。
第一方面,本发明提供一种软件处理方法,包括:
包管理系统接收设置系统发送的软件设置请求,所述软件设置请求包括软件标识;
所述包管理系统根据所述软件设置请求,获取场景类型,并根据所述场景类型,获取与所述软件标识对应的软件包的下载地址;
所述包管理系统将所述软件包的下载地址携带在软件设置响应中返回给所述设置系统,以使所述设置系统根据所述软件包的下载地址,进行相应的软件设置处理。
结合第一方面,在第一方面的第一种可能实现的方式中,若所述场景类型为部署或者扩展场景类型,则所述根据所述场景类型,获取与所述软件标识对应的软件包的下载地址,包括:
查询软件标识和全量包的标识的映射关系,判断是否存在与所述软件标识对应的全量包的标识;
若存在,从软件仓库中获取与所述全量包的标识对应的第一全量包的下载地址。
本发明,通过当所述场景类型为部署或扩展类型时,所述包管理系统判断是否存在与所述软件标识对应的全量包的标识;若存在与所述软件标识对应的全量包的标识,则将所述软件标识对应的第一全量包的下载地址通过软件设置响应返回给设置系统;若不存在与所述软件标识对应的全量包的标识,则查询软件标识与增量包的标识的映射关系,并在确定存在与所述软件标识对应的增量包的标识时,将所述软件标识对应的增量包的下载地址以及增量包的基础包(也即,第二全量包)的下载地址通过软件设置响应返回给设置系统;实现了在升级或扩展场景下,优先使用全量包的方式,以减少向虚拟机传输软件包的时间。
结合第一方面的第一种可能实现的方式,在第一方面的第二种可能实现的方式中,所述方法还包括:
若不存在,则查询软件标识与增量包的标识的映射关系,若存在与所述软件标识对应的增量包的标识,则从所述软件仓库中获取与所述增量包的标识对应的增量包的下载地址;
获取所述增量包的基础包的版本,并根据所述软件标识、所述基础包的版本,查询软件标识与全量包的标识的映射关系,获取对应的第二全量包的标识;
从所述软件仓库中,获取与所述第二全量包的标识对应的第二全量包的下载地址;
则所述包管理系统将所述软件包的标识携带在软件设置响应中返回给所述设置系统,包括:
所述包管理系统将所述增量包的下载地址以及所述第二全量包的下载地址携带在所述软件设置响应中返回给所述设置系统。
本发明,通过在不存在全量包包时也提供了使用增量包以及该增量包的基础包来进行软件设置的方式,从而提高了软件设置操作的成功率。
结合第一方面,在第一方面的第三种可能实现的方式中,若所述场景类型为升级场景类型,则所述根据所述场景类型,获取与所述软件标识对应的软件包的下载地址,包括:
查询软件标识和增量包的标识的映射关系,判断是否存在与所述软件标识对应的增量包的标识;
若存在,则从软件仓库中获取与所述增量包的标识对应的增量包的下载地址。
本发明,通过当所述场景类型为升级类型时,所述包管理系统判断是否存在与所述软件标识对应的增量包的标识;若存在与所述软件标识对应的增量包的标识,则将所述软件标识对应的增量包的下载地址通过软件设置响应返回给设置系统;若不存在与所述软件标识对应的增量包的标识,则查询软件标识与全量包的标识的映射关系,并在确定存在与所述软件标识对应的全量包的标识时,将所述软件标识对应的全量包的下载地址通过软件设置响应返回给设置系统;实现了在升级场景下,优先使用增量包的方式,以减少向虚拟机传输软件包的时间。
结合第一方面的第三种可能实现的方式,在第一方面的第四种可能实现的方式中,所述方法还包括:
若不存在,则查询软件标识和全量包的标识的映射关系,获取与所述软件标识对应的全量包的标识;
从所述软件仓库中,获取与所述全量包的标识对应的全量包的下载地址。
本发明,通过在不存在增量包时也提供了使用全量包来进行软件设置的方式,从而提高了软件设置操作的成功率
结合第一方面,在第一方面的第五种可能实现的方式中,所述方法还包括:
所述包管理系统接收上传的增量包,并获取所述上传的增量包的包描述文件;所述包管理系统将所述上传的增量包发送给软件仓库,以供所述软件仓库保存所述上传的增量包,并将生成的所述上传的增量包的标识返回给所述包管理系统;
所述包管理系统建立所述包描述文件中的软件的标识与所述上传的增量包的标识的映射关系;
所述包管理系统根据所述包描述文件中的软件标识和基础包版本,获取与所述上传的增量包的基础包的标识,并从所述软件仓库中获取与所述增量包的基础包的标识对应的基础包;
所述包管理系统对所述上传的增量包和所述基础包进行合并处理,获取新版本的全量包,并将所述新版本的全量包发送给所述软件仓库,以供所述软件仓库保存所述新版本的全量包,并将生成的所述新版本的全量包的标识返回给所述包管理系统;
所述包管理系统建立所述包描述文件中的软件的标识与所述新版本全量包的标识的映射关系。
本发明,通过所述包管理系统对所述上传的增量包和所述基础包进行合并处理,获取新版本的全量包;使得开发人员在升级软件时,只需制作和维护增量包,而全量包可由包管理系统合并获得,因此节省了软件包的制作和维护成本。
结合第一方面的第五种可能实现的方式,在第一方面的第六种可能实现的方式中,所述包管理系统对所述上传的增量包和所述基础包进行合并处理,包括:
所述包管理系统使用所述上传的增量包的文件,对所述基础包中与所述上传的增量包的文件相应的文件进行覆盖;
或者,所述包管理系统中根据所述上传的增量包的包描述文件中的合并 方式描述,对所述上传的增量包和所述基础包进行合并;
或者,所述包管理系统执行所述上传的增量包的合并脚本,对所述上传的增量包和所述基础包进行合并。
第二方面,本发明提供一种软件处理方法,包括:
设置系统向包管理系统发送软件设置请求,所述软件设置请求包括软件标识,以使所述包管理系统根据所述软件设置请求,获取场景类型,并根据所述场景类型,获取与所述软件标识对应的软件包的下载地址;
所述设置系统接收所述包管理系统发送的软件设置响应,所述软件设置响应包括所述软件包的下载地址;
所述设置系统根据所述软件包的下载地址,进行相应的软件设置处理。
第三方面,本发明提供一种软件处理装置,包括:
接收模块,用于接收设置系统发送的软件设置请求,所述软件设置请求包括软件标识;
获取模块,用于根据所述软件设置请求,获取场景类型,并根据所述场景类型,获取与所述软件标识对应的软件包的下载地址;
发送模块,用于将所述软件包的下载地址携带在软件设置响应中返回给所述设置系统,以使所述设置系统根据所述软件包的下载地址,进行相应的软件设置处理。
结合第三方面,在第三方面的第一种可能实现的方式中,若所述场景类型为部署或者扩展场景类型,则所述获取模块,根据所述场景类型,获取与所述软件标识对应的软件包的下载地址,具体包括:
查询软件标识和全量包的标识的映射关系,判断是否存在与所述软件标识对应的全量包的标识;
若存在,从软件仓库中获取与所述全量包的标识对应的第一全量包的下载地址。
结合第三方面的第一种可能实现的方式,在第三方面的第二种可能实现的方式中,所述获取模块,根据所述场景类型,获取与所述软件标识对应的软件包的下载地址,还包括:
若不存在,则查询软件标识与增量包的标识的映射关系,若存在与所述软件标识对应的增量包的标识,则从所述软件仓库中获取与所述增量包的标 识对应的增量包的下载地址;
获取所述增量包的基础包的版本,并根据所述软件标识、所述基础包的版本,查询软件标识与全量包的标识的映射关系,获取对应的第二全量包的标识;
从所述软件仓库中,获取与所述第二全量包的标识对应的第二全量包的下载地址;
则发送模块,具体用于:
将所述增量包的下载地址以及所述第二全量包的下载地址携带在所述软件设置响应中返回给所述设置系统。
结合第三方面,在第三方面的第三种可能实现的方式中,若所述场景类型为升级场景类型,则所述获取模块,根据所述场景类型,获取与所述软件标识对应的软件包的下载地址,具体包括:
查询软件标识和增量包的标识的映射关系,判断是否存在与所述软件标识对应的增量包的标识;
若存在,则从软件仓库中获取与所述增量包的标识对应的增量包的下载地址。
结合第三方面的第三种可能实现的方式,在第三方面的第四种可能实现的方式中,所述获取模块,根据所述场景类型,获取与所述软件标识对应的软件包的下载地址,还包括:
若不存在,则查询软件标识和全量包的标识的映射关系,获取与所述软件标识对应的全量包的标识;
从所述软件仓库中,获取与所述全量包的标识对应的全量包的下载地址。
结合第三方面,在第三方面的第五种可能实现的方式中,还包括:合并模块,用于:
接收上传的增量包,并获取所述上传的增量包的包描述文件;
将所述上传的增量包发送给软件仓库,以供所述软件仓库保存所述上传的增量包,并将生成的所述上传的增量包的标识返回给所述合并模块;
建立所述包描述文件中的软件的标识与所述上传的增量包的标识的映射关系;
根据所述包描述文件中的软件标识和基础包版本,获取与所述上传的增 量包的基础包的标识,并从所述软件仓库中获取与所述增量包的基础包的标识对应的基础包;
对所述上传的增量包和所述基础包进行合并处理,获取新版本的全量包,并将所述新版本的全量包发送给所述软件仓库,以供所述软件仓库保存所述新版本的全量包,并将生成的所述新版本的全量包的标识返回给所述合并模块;
建立所述包描述文件中的软件的标识与所述新版本全量包的标识的映射关系。
结合第三方面的第五种可能实现的方式,在第三方面的第六种可能实现的方式中,所述合并模块,对所述上传的增量包和所述基础包进行合并处理,具体包括:
使用所述上传的增量包的文件,对所述基础包中与所述上传的增量包的文件相应的文件进行覆盖;
或者,根据所述上传的增量包的包描述文件中的合并方式描述,对所述上传的增量包和所述基础包进行合并;
或者,执行所述上传的增量包的合并脚本,对所述上传的增量包和所述基础包进行合并。
第四方面,本发明提供一种软件处理装置,包括:
发送模块,用于向包管理系统发送软件设置请求,所述软件设置请求包括软件标识,以使所述包管理系统根据所述软件设置请求,获取场景类型,并根据所述场景类型,获取与所述软件标识对应的软件包的下载地址;
接收模块,用于接收所述包管理系统发送的软件设置响应,所述软件设置响应包括所述软件包的下载地址;
设置模块,用于根据所述软件包的下载地址,进行相应的软件设置处理。
第五方面,本发明提供一种系统,包括:第三方面或第三方面的第一种至第六种任一种所述的软件处理装置,以及第四方面所述的软件处理装置。
本发明提供的软件处理方法、装置及系统;通过设置系统向包管理系统发送包括软件标识的软件设置请求;包管理系统根据软件设置请求,获取场景类型,并根据场景类型获取与软件标识对应的软件包的下载地址;包管理系统将软件包的下载地址携带在软件设置响应中返回给设置系统;设置系统 根据所述软件包的下载地址,进行相应的软件设置处理;使得在软件设置的过程中使用者不需要区分具体的使用场景以及确定与该场景对应的软件包的包标识的操作;减少了使用者的操作工作量,且降低了对使用者的技术要求;从而提高了软件设置的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明软件处理方法的应用场景示意图;
图2为本发明软件处理方法实施例一的流程图;
图3为本发明软件处理方法实施例二的流程图;
图4为本发明软件处理方法实施例三的流程图;
图5为本发明软件处理方法实施例四的流程图;
图6为本发明软件处理装置实施例一的结构示意图;
图7为本发明软件处理装置实施例四的结构示意图;
图8为本发明软件处理装置实施例五的结构示意图;
图9为本发明软件处理装置实施例六的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明软件处理方法的应用场景示意图;如图1所示,本发明的应用场景包括:包管理系统、软件部署系统、软件升级系统和弹性伸缩系统;其中,包管理系统、软件部署系统、软件升级系统和弹性伸缩系统都属于paas; 所述软件部署系统,用于将软件部署到已有虚拟机;所述软件升级系统,用于对已部署到虚拟机的软件进行升级;所述弹性伸缩系统,用于创建新的虚拟机,并将软件部署到所创建的虚拟机。
需要说明的是,弹性伸缩系统涉及扩展场景,软件部署系统涉及部署场景,软件升级系统涉及升级场景。
本发明的应用场景中可以仅包括软件部署系统、软件升级系统和弹性伸缩系统中的任一个或多个系统。
可选的,本发明的应用场景还可以包括:软件仓库,用于存储软件包(包括全量包和增量包);所述软件仓库,还可以用于提供软件包的下载地址。
可选的,本发明的应用场景还可以包括:本地文件系统,用于所述包管理系统根据增量包及该增量包的基础包获得全量包。
需要说明的是,本发明中的设置系统可以为软件部署系统、软件升级系统或者弹性伸缩系统。
需要说明的是,所述包管理系统、软件部署系统、软件升级系统、弹性伸缩系统和本地文件系统都为软件系统。
需要说明的是,所述包管理系统、软件部署系统、软件升级系统、弹性伸缩系统、软件仓库和本地文件系统可以部署在同一服务器上,或者也可以以任意组合部署在多个服务器上。
图2为本发明软件处理方法实施例一的流程图;如图2所示,本实施例的方法可以包括:
步骤201、设置系统向包管理系统发送软件设置请求;
其中,所述软件设置请求包括软件标识。
步骤202、所述包管理系统根据所述软件设置请求,获取场景类型,并根据所述场景类型,获取与所述软件标识对应的软件包的下载地址;
步骤203、所述包管理系统将所述软件包的下载地址携带在软件设置响应中返回给所述设置系统,以使所述设置系统根据所述软件包的下载地址,进行相应的软件设置处理;
步骤204、所述设置系统根据所述软件包的下载地址,进行相应的软件设置处理。
本实施例中,通过设置系统向包管理系统发送包括软件标识的软件设置 请求;包管理系统根据软件设置请求,获取场景类型,并根据场景类型获取与软件标识对应的软件包的下载地址;包管理系统将软件包的下载地址携带在软件设置响应中返回给设置系统;设置系统根据所述软件包的下载地址,进行相应的软件设置处理;使得在软件设置的过程中使用者不需要区分具体的使用场景以及确定与该场景对应的软件包的包标识的操作;减少了使用者的操作工作量,且降低了对使用者的技术要求;从而提高了软件设置的效率。
图3为本发明软件处理方法实施例二的流程图;本实施例在图2所示实施例的基础上,当所述场景类型为部署或者扩展场景类型时,如图3所示,步骤202、步骤203可以包括:
步骤301、所述包管理系统查询软件标识和全量包的标识的映射关系,判断是否存在与所述软件标识对应的全量包的标识;
若存在,则执行步骤302;否则,执行步骤304。
步骤302、所述包管理系统从软件仓库中获取与所述全量包的标识对应的第一全量包的下载地址;
具体的,所述包管理系统可以将与所述全量包的标识发送至所述软件仓库;所述软件仓库获取与所述全量包的标识对应的第一全量包的下载地址,并将第一全量包的下载地址返回给包管理系统。
步骤303、所述包管理系统将所述第一全量包的下载地址携带在软件设置响应中返回给所述设置系统;
相应的,步骤204具体可以为:所述设置系统根据所述第一全量包的下载地址,进行相应的软件设置处理。
可选的,当所述场景类型为部署场景时,所述设置系统根据所述第一全量包的下载地址,进行相应的软件设置处理,具体可以为:所述设置系统根据所述第一全量包的下载地址,获取所述第一全量包,并根据所获取的所述第一全量包向虚拟机的部署软件。
可选的,当所述场景类型为扩展类型时,所述设置系统根据所述第一全量包的下载地址,进行相应的软件设置处理,具体可以为:所述设置系统创建新的虚拟机,根据所述全量包的下载地址获取所述第一全量包,并根据所获取的所述第一全量包向虚拟机部署软件。
需要说明的是,步骤303执行完之后结束。
步骤304、所述包管理系统查询软件标识与增量包的标识的映射关系,若存在与所述软件标识对应的增量包的标识,则从所述软件仓库中获取与所述增量包的标识对应的增量包的下载地址;
需要说明的是,步骤304中包管理系统从所述软件仓库中获取与所述增量包的标识对应的增量包的下载地址,与步骤302中包管理系统从软件仓库中获取与所述全量包的标识对应的第一全量包的下载地址的具体方式类似,在此不再赘述。
步骤305、所述包管理系统获取所述增量包的基础包的版本,并根据所述软件标识、所述基础包的版本,查询软件标识与全量包的标识的映射关系,获取对应的第二全量包的标识;
可选的,所述包管理系统可以从所述增量包的包描述文件中获取所述增量包的基础包的版本。
可选的,所述软件标识可以包括:版本和名称。
相应的,所述根据所述软件标识、所述基础包的版本,查询软件标识与全量包的标识的映射关系,获取对应的第二全量包的标识,具体可以为:
根据所述软件标识中的名称及所述基础包的版本,确定出所述基础包对应的新软件标识,并根据所述新软件标识查询软件标识与全量包的标识的映射关系,获取对应的第二全量包的标识。
步骤306、所述包管理系统从所述软件仓库中,获取与所述第二全量包的标识对应的第二全量包的下载地址;
需要说明的是,步骤306中包管理系统从所述软件仓库中获取与所述第二全量包的标识对应的第二全量包的下载地址,与步骤302中包管理系统从软件仓库中获取与所述全量包的标识对应的第一全量包的下载地址的具体方式类似,在此不再赘述。
步骤307、所述包管理系统将所述增量包的下载地址以及所述第二全量包的下载地址携带在所述软件设置响应中返回给所述设置系统。
相应的,步骤204具体可以为:所述设置系统根据所述增量包的下载地址以及所述第二全量包的下载地址,进行相应的软件设置处理。
可选的,所述设置系统根据所述增量包的下载地址以及所述第二全量包的下载地址,进行相应的软件设置处理,包括:
所述设置系统根据所述增量包的下载地址以及所述第二全量包的下载地址,获取所述增量包及所述第二全量包;
所述设置系统根据所述第二全量包向虚拟机部署软件,并根据所述增量包对已部署的软件进行升级。
本实施例中,通过当所述场景类型为部署或扩展类型时,所述包管理系统判断是否存在与所述软件标识对应的全量包的标识;若存在与所述软件标识对应的全量包的标识,则将所述软件标识对应的第一全量包的下载地址通过软件设置响应返回给设置系统;若不存在与所述软件标识对应的全量包的标识,则查询软件标识与增量包的标识的映射关系,并在确定存在与所述软件标识对应的增量包的标识时,将所述软件标识对应的增量包的下载地址以及增量包的基础包(也即,第二全量包)的下载地址通过软件设置响应返回给设置系统;实现了在升级或扩展场景下,优先使用全量包的方式,以减少向虚拟机传输软件包的时间;同时,在不存在全量包包时也提供了使用增量包以及该增量包的基础包来进行软件设置的方式,从而提高了软件设置操作的成功率。
图4为本发明软件处理方法实施例三的流程图;本实施例在图2所示实施例的基础上,当所述场景类型为升级场景类型时,如图4所示,步骤202、步骤203可以包括:
步骤401、所述包管理系统查询软件标识和增量包的标识的映射关系,判断是否存在与所述软件标识对应的增量包的标识;
若存在,则执行步骤402;否则,执行步骤404。
步骤402、所述包管理系统从软件仓库中获取与所述增量包的标识对应的增量包的下载地址;
具体的,所述包管理系统可以将与所述软件标识对应的增量包的标识发送至所述软件仓库;所述软件仓库获取与所述增量包的标识对应的增量包的下载地址,并将增量包下载地址返回给包管理系统。
步骤403、所述包管理系统将所述增量包的下载地址携带在软件设置响应中返回给所述设置系统;
相应的,步骤204具体可以为:所述设置系统根据所述增量包的下载地址,进行相应的软件设置处理。
可选的,当所述场景类型为升级场景时,所述设置系统根据所述增量包的下载地址,进行相应的软件设置处理,具体可以为:所述设置系统根据所述增量包的下载地址,获取所述增量包,并根据所获取的所述增量包对虚拟机的软件进行升级。
需要说明的是,步骤403执行完之后结束。
步骤404、所述包管理系统查询软件标识和全量包的标识的映射关系,获取与所述软件标识对应的全量包的标识;
步骤405、所述包管理系统从所述软件仓库中,获取与所述全量包的标识对应的全量包的下载地址;
需要说明的是,步骤405中包管理系统从所述软件仓库中获取与所述软件标识对应的全量包的下载地址,与步骤402中包管理系统从软件仓库中获取与所述增量包的标识对应的增量包的下载地址的具体方式类似,在此不再赘述。
步骤406、所述包管理系统将所述全量包的下载地址携带在所述软件设置响应中返回给所述设置系统。
相应的,步骤204具体可以为:所述设置系统根据所述全量包的下载地址,进行相应的软件设置处理。
可选的,所述设置系统根据所述全量包的下载地址,进行相应的软件设置处理,包括:
所述设置系统根据所述全量包的下载地址,获取所述全量包;
所述设置系统根据所述全量包对虚拟机的软件进行升级。
本实施例中,通过当所述场景类型为升级类型时,所述包管理系统判断是否存在与所述软件标识对应的增量包的标识;若存在与所述软件标识对应的增量包的标识,则将所述软件标识对应的增量包的下载地址通过软件设置响应返回给设置系统;若不存在与所述软件标识对应的增量包的标识,则查询软件标识与全量包的标识的映射关系,并在确定存在与所述软件标识对应的全量包的标识时,将所述软件标识对应的全量包的下载地址通过软件设置响应返回给设置系统;实现了在升级场景下,优先使用增量包的方式,以减少向虚拟机传输软件包的时间;同时,在不存在增量包时也提供了使用全量包来进行软件设置的方式,从而提高了软件设置操作的成功率。
需要说明的是,本发明中包管理系统根据所述软件设置请求,获取场景类型的具体方式可以为:所述软件设置请求还可以包括所述场景类型;相应的,所述包管理系统可以从所述软件设置请求中获取所述场景类型。所述场景类型可以由设置系统来添加;例如,对于软件升级系统其场景类型可以固定添加为0,用于指示升级场景;对于软件部署系统其场景类型可以固定添加1,用于指示部署场景;对于弹性伸缩系统其场景类型可以固定添加为2,用于指示扩展场景。
或者,具体可以为:所述包管理系统可以根据软件设置请求的发送方,也即设置系统,来确定场景类型。
图5为本发明软件处理方法实施例四的流程图;如图5所示,本实施例在图2所示实施例的基础上,还可以包括:
步骤501、所述包管理系统接收上传的增量包,并获取所述上传的增量包的包描述文件;
其中,所述包描述文件中包括软件标识和基础包版本。
步骤502、所述包管理系统将所述上传的增量包发送给软件仓库;
步骤503、所述软件仓库保存所述上传的增量包,并生成所述上传的增量包的标识;
步骤504、所述软件仓库将生成的所述上传的增量包的标识返回给所述包管理系统;
步骤505、所述包管理系统建立所述包描述文件中的软件的标识与所述上传的增量包的标识的映射关系;
步骤506、所述包管理系统根据所述包描述文件中的软件标识和基础包版本,获取与所述上传的增量包的基础包的标识;
步骤507、所述包管理系统将所述增量包的基础包的标识发送至所述软件仓库;
步骤508、所述软件仓库将所述增量包的基础包的标识对应的基础包返回给所述包管理系统;
步骤509、所述包管理系统对所述上传的增量包和所述基础包进行合并处理,获取新版本的全量包;
可选的,所述上传的增量包和所述基础包可以为压缩包。
相应的,步骤509具体可以包括:所述包管理系统将所述上传的增量包及所述基础包解压到本地文件系统中的临时目录,并在所述本地文件系统的临时目录中对所述上传的增量包和所述基础包进行合并,获得新版本的全量包。
可选的,所述对所述上传的增量包和所述基础包进行合并,具体可以为:
所述包管理系统使用所述上传的增量包的文件,对所述基础包中与所述上传的增量包的文件相应的文件进行覆盖。
或者,具体可以为:
所述包管理系统中根据所述上传的增量包的包描述文件中的合并方式描述,对所述上传的增量包和所述基础包进行合并。
或者,具体可以为:
所述包管理系统执行所述上传的增量包的合并脚本,对所述上传的增量包和所述基础包进行合并。
步骤510、所述包管理系统将所述新版本的全量包发送给所述软件仓库;
步骤511、所述软件仓库保存所述新版本的全量包,并生成所述新版本的全量包的标识;
步骤512、所述软件仓库将生成的所述新版本的全量包的标识返回给所述包管理系统;
步骤513、所述包管理系统建立所述包描述文件中的软件的标识与所述新版本全量包的标识的映射关系。
本实施例中,通过所述包管理系统对所述上传的增量包和所述基础包进行合并处理,获取新版本的全量包;使得开发人员在升级软件时,只需制作和维护增量包,而全量包可由包管理系统合并获得,因此节省了软件包的制作和维护成本。
图6为本发明软件处理装置实施例一的结构示意图;如图6所示,本实施例的装置可以包括:接收模块601、获取模块602和发送模块603。接收模块601,用于接收设置系统发送的软件设置请求,所述软件设置请求包括软件标识;获取模块602,用于根据所述软件设置请求,获取场景类型,并根据所述场景类型,获取与所述软件标识对应的软件包的下载地址;发送模块603,用于将所述软件包的下载地址携带在软件设置响应中返回给所述设置系 统,以使所述设置系统根据所述软件包的下载地址,进行相应的软件设置处理。
本实施例的装置,可以用于执行图2所示方法实施例包管理系统侧的技术方案,其实现原理和技术效果类似,此处不再赘述。
软件处理装置实施例二
可选的,在本发明软件处理装置实施例一的基础上,若所述场景类型为部署或者扩展场景类型,则获取模块602,根据所述场景类型,获取与所述软件标识对应的软件包的下载地址,具体包括:
查询软件标识和全量包的标识的映射关系,判断是否存在与所述软件标识对应的全量包的标识;
若存在,从软件仓库中获取与所述全量包的标识对应的第一全量包的下载地址。
可选的,获取模块602,根据所述场景类型,获取与所述软件标识对应的软件包的下载地址,还包括:
若不存在,则查询软件标识与增量包的标识的映射关系,若存在与所述软件标识对应的增量包的标识,则从所述软件仓库中获取与所述增量包的标识对应的增量包的下载地址;
获取所述增量包的基础包的版本,并根据所述软件标识、所述基础包的版本,查询软件标识与全量包的标识的映射关系,获取对应的第二全量包的标识;
从所述软件仓库中,获取与所述第二全量包的标识对应的第二全量包的下载地址;
相应的,则发送模块603,具体用于:将所述增量包的下载地址以及所述第二全量包的下载地址携带在所述软件设置响应中返回给所述设置系统。
本实施例的装置,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
软件处理装置实施例三
可选的,在本发明软件处理装置实施例一的基础上,若所述场景类型为升级场景类型,则获取模块602,根据所述场景类型,获取与所述软件标识对应的软件包的下载地址,具体包括:
查询软件标识和增量包的标识的映射关系,判断是否存在与所述软件标识对应的增量包的标识;
若存在,则从软件仓库中获取与所述增量包的标识对应的增量包的下载地址。
可选的,获取模块602,根据所述场景类型,获取与所述软件标识对应的软件包的下载地址,还包括:
若不存在,则查询软件标识和全量包的标识的映射关系,获取与所述软件标识对应的全量包的标识;
从所述软件仓库中,获取与所述全量包的标识对应的全量包的下载地址。
本实施例的装置,可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图7为本发明软件处理装置实施例四的结构示意图;如图7所示,本实施的装置在图6所述装置结构的基础上,进一步的,还可以包括:合并模块604,用于:
接收上传的增量包,并获取所述上传的增量包的包描述文件;
将所述上传的增量包发送给软件仓库,以供所述软件仓库保存所述上传的增量包,并将生成的所述上传的增量包的标识返回给所述合并模块;
建立所述包描述文件中的软件的标识与所述上传的增量包的标识的映射关系;
根据所述包描述文件中的软件标识和基础包版本,获取与所述上传的增量包的基础包的标识,并从所述软件仓库中获取与所述增量包的基础包的标识对应的基础包;
对所述上传的增量包和所述基础包进行合并处理,获取新版本的全量包,并将所述新版本的全量包发送给所述软件仓库,以供所述软件仓库保存所述新版本的全量包,并将生成的所述新版本的全量包的标识返回给所述合并模块;
建立所述包描述文件中的软件的标识与所述新版本全量包的标识的映射关系。
可选的,合并模块604,对所述上传的增量包和所述基础包进行合并处理,具体包括:
使用所述上传的增量包的文件,对所述基础包中与所述上传的增量包的文件相应的文件进行覆盖;
或者,根据所述上传的增量包的包描述文件中的合并方式描述,对所述上传的增量包和所述基础包进行合并;
或者,执行所述上传的增量包的合并脚本,对所述上传的增量包和所述基础包进行合并。
本实施例的装置,可以用于执行图5所示方法实施例包管理系统侧的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8为本发明软件处理装置实施例五的结构示意图;如图8所述,本实施的装置可以包括:发送模块801、接收模块802和设置模块803。其中,发送模块801,用于向包管理系统发送软件设置请求,所述软件设置请求包括软件标识,以使所述包管理系统根据所述软件设置请求,获取场景类型,并根据所述场景类型,获取与所述软件标识对应的软件包的下载地址;接收模块802,用于接收所述包管理系统发送的软件设置响应,所述软件设置响应包括所述软件包的下载地址;设置模块803,用于根据所述软件包的下载地址,进行相应的软件设置处理。
本实施例的装置,可以用于执行图2所示方法实施例设置系统侧的技术方案,其实现原理和技术效果类似,此处不再赘述。
本发明还提供一种系统,包括软件处理装置实施例一至软件处理装置实施例四中任一实施例所述的软件处理装置,以及软件处理装置实施例五所述的软件处理装置。
图9为本发明软件处理装置实施例六的结构示意图;如图9所示,本实施例的装置可以包括:通信接口901和处理器902。通信接口901,用于接收设置系统发送的软件设置请求,所述软件设置请求包括软件标识;处理器902,用于根据所述软件设置请求,获取场景类型,并根据所述场景类型,获取与所述软件标识对应的软件包的下载地址;通信接口901,还用于将所述软件包的下载地址携带在软件设置响应中返回给所述设置系统,以使所述设置系统根据所述软件包的下载地址,进行相应的软件设置处理。
本实施例的装置,可以用于执行图2所示方法实施例包管理系统侧的技术方案,其实现原理和技术效果类似,此处不再赘述。
软件处理装置实施例七
可选的,在本发明软件处理装置实施例六的基础上,若所述场景类型为部署或者扩展场景类型,则处理器902,根据所述场景类型,获取与所述软件标识对应的软件包的下载地址,具体包括:
查询软件标识和全量包的标识的映射关系,判断是否存在与所述软件标识对应的全量包的标识;
若存在,从软件仓库中获取与所述全量包的标识对应的第一全量包的下载地址。
可选的,处理器902,根据所述场景类型,获取与所述软件标识对应的软件包的下载地址,还包括:
若不存在,则查询软件标识与增量包的标识的映射关系,若存在与所述软件标识对应的增量包的标识,则从所述软件仓库中获取与所述增量包的标识对应的增量包的下载地址;
获取所述增量包的基础包的版本,并根据所述软件标识、所述基础包的版本,查询软件标识与全量包的标识的映射关系,获取对应的第二全量包的标识;
从所述软件仓库中,获取与所述第二全量包的标识对应的第二全量包的下载地址;
相应的,则通信接口901,将所述软件包的下载地址携带在软件设置响应中返回给所述设置系统,具体包括:将所述增量包的下载地址以及所述第二全量包的下载地址携带在所述软件设置响应中返回给所述设置系统。
本实施例的装置,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
软件处理装置实施例八
可选的,在本发明软件处理装置实施例六的基础上,若所述场景类型为升级场景类型,则处理器902,根据所述场景类型,获取与所述软件标识对应的软件包的下载地址,具体包括:
查询软件标识和增量包的标识的映射关系,判断是否存在与所述软件标识对应的增量包的标识;
若存在,则从软件仓库中获取与所述增量包的标识对应的增量包的下载 地址。
可选的,处理器902,根据所述场景类型,获取与所述软件标识对应的软件包的下载地址,还包括:
若不存在,则查询软件标识和全量包的标识的映射关系,获取与所述软件标识对应的全量包的标识;
从所述软件仓库中,获取与所述全量包的标识对应的全量包的下载地址。
本实施例的装置,可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
软件处理装置实施例九
可选的,在软件处理装置实施例六的基础上,通信接口901,还用于接收上传的增量包;
处理器902,还用于获取所述上传的增量包的包描述文件;
通信接口901,还用于将所述上传的增量包发送给软件仓库,以供所述软件仓库保存所述上传的增量包,并将生成的所述上传的增量包的标识返回给所通信接口901;
处理器902,还用于建立所述包描述文件中的软件的标识与所述上传的增量包的标识的映射关系;
处理器902,还用于根据所述包描述文件中的软件标识和基础包版本,获取与所述上传的增量包的基础包的标识,并从所述软件仓库中获取与所述增量包的基础包的标识对应的基础包;
处理器902,还用于对所述上传的增量包和所述基础包进行合并处理,获取新版本的全量包;
通信接口901,还用于将所述新版本的全量包发送给所述软件仓库,以供所述软件仓库保存所述新版本的全量包,并将生成的所述新版本的全量包的标识返回给通信接口901;
处理器902,还用于建立所述包描述文件中的软件的标识与所述新版本全量包的标识的映射关系。
可选的,处理器902,对所述上传的增量包和所述基础包进行合并处理,具体包括:
使用所述上传的增量包的文件,对所述基础包中与所述上传的增量包的 文件相应的文件进行覆盖;
或者,根据所述上传的增量包的包描述文件中的合并方式描述,对所述上传的增量包和所述基础包进行合并;
或者,执行所述上传的增量包的合并脚本,对所述上传的增量包和所述基础包进行合并。
本实施例的装置,可以用于执行图5所示方法实施例包管理系统侧的技术方案,其实现原理和技术效果类似,此处不再赘述。
软件处理装置实施例十
本实施例的软件处理装置与图9所示的软件处理装置类似,同样包括:通信接口和处理器;其中,所述通信接口,用于向包管理系统发送软件设置请求,所述软件设置请求包括软件标识,以使所述包管理系统根据所述软件设置请求,获取场景类型,并根据所述场景类型,获取与所述软件标识对应的软件包的下载地址;所述通信接口,还用于接收所述包管理系统发送的软件设置响应,所述软件设置响应包括所述软件包的下载地址;所述处理器,用于根据所述软件包的下载地址,进行相应的软件设置处理。
本实施例的装置,可以用于执行图2所示方法实施例设置系统侧的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。