产品功能定制方法、装置以及服务器与流程

文档序号:18623557发布日期:2019-09-06 22:44阅读:331来源:国知局
产品功能定制方法、装置以及服务器与流程

本申请涉及软件产品的个性化定制及部署技术领域,尤其涉及一种产品功能定制方法、装置以及服务器。



背景技术:

专有云是一种基于客户需求而定制及部署的私有化云。

通常情况下,专有云团队会维护一个个全功能版本的云产品,当客户需要购买某一定制化的云产品时,参阅图1,专有云开发测试团队会为客户拉取并创建该云产品的全功能版本的一个分支,并按照客户的功能要求在所拉取并创建的分支上进行产品功能的定制化开发和裁剪,得到开发或裁剪信息在分支上生效后的符合客户功能要求的专有云云产品,在此基础上,交付工程师会根据要交付的子产品清单(反映待交付的专有云云产品中需包括的各个子产品)筛选出对应于该专有云云产品全量代码分支的物料形成物料包(如产品组件的部署程序或者镜像包等),文档工程师会根据要交付的子产品清单整理出对应的文档(包括对待交付的云产品的相关说明或描述资料)得到文档包,最终由售中人员拿到要交付的物料包及文档包,并将其部署到客户现场。

上述的基于拉取分支实现产品功能定制的方式,至少存在以下缺陷:

1)定制化过程中,需要为每个客户拉取、创建云产品的一个全量的代码分支,相对应地需要投入大量资源去完成客户功能的定制、裁剪、并使得定制及裁剪信息在该代码分支中生效的工作,同时在向客户交付部署之前需占用大量存储资源来维护所创建的各个全量代码分支,维护成本较高;

2)当专有云云服务中的云产品升级后,需重新拉取分支进行功能定制及裁剪以重新为客户生成升级版本的专有云云产品,这会导致针对每个客户都需维护一条产品的版本升级开发支线,为专有云云产品的升级带来了困难,需要投入大量资源来完成客户的版本功能特性合并和功能升级。



技术实现要素:

有鉴于此,本申请提供了一种产品功能定制方法、装置以及服务器,以提升产品功能定制及产品升级效率,降低产品功能定制及产品升级过程中需投入的资源。

为实现上述目的,一方面,本申请提供了一种产品功能定制方法,该方法包括:

检测在标准产品上的定制操作,获得相对应的个性化定制信息,所述标准产品为全功能版本的产品;所述标准产品包括至少一个子产品,每个子产品提供至少一个功能,所述个性化定制信息用于实现对标准产品的子产品和/或子产品中的相应功能进行定制;

生成用于部署所述个性化定制信息、以使得所述个性化定制信息生效的部署信息;

从标准产品的物料中选取出与待交付的个性化产品包括的各个子产品相匹配的各个物料,得到物料集合,以提供至少包括所述部署信息及所述物料集合的交付信息,使得基于所述交付信息得到定制的个性化产品;

其中,所述物料集合中的物料用于为所述个性化产品的子产品提供功能支撑作用。

又一方面,本申请还提供了一种产品功能定制装置,该装置包括:

检测与获取单元,检测在标准产品上的定制操作,获得相对应的个性化定制信息,所述标准产品为全功能版本的产品;所述标准产品包括至少一个子产品,每个子产品提供至少一个功能,所述个性化定制信息用于实现对标准产品的子产品和/或子产品中的相应功能进行定制;

生成单元,生成用于部署所述个性化定制信息、以使得所述个性化定制信息生效的部署信息;

第一选取单元,从标准产品的物料中选取出与待交付的个性化产品包括的各个子产品相匹配的各个物料,得到物料集合,以提供至少包括所述部署信息及所述物料集合的交付信息,使得基于所述交付信息得到定制的个性化产品;

其中,所述物料集合中的物料用于为所述个性化产品的子产品提供功能支撑作用。

又一方面,本申请还提供了一种服务器,该服务器包括:

存储器,用于存储程序;

处理器,用于执行所述程序,所述程序至少用于:

检测在标准产品上的定制操作,获得相对应的个性化定制信息,所述标准产品为全功能版本的产品;所述标准产品包括至少一个子产品,每个子产品提供至少一个功能,所述个性化定制信息用于实现对标准产品的子产品和/或子产品中的相应功能进行定制;

生成用于部署所述个性化定制信息、以使得所述个性化定制信息生效的部署信息;

从标准产品的物料中选取出与待交付的个性化产品包括的各个子产品相匹配的各个物料,得到物料集合,以提供至少包括所述部署信息及所述物料集合的交付信息,使得基于所述交付信息得到定制的个性化产品;

其中,所述物料集合中的物料用于为所述个性化产品的子产品提供功能支撑作用。

根据以上方案可知,本申请提供的产品功能定制方法,在进行产品功能定制时,可通过为定制操作所对应的个性化定制信息生成相对应的部署信息,来使得后续在客户现场可通过利用所述部署信息对客户的个性化定制信息进行动态部署使得客户的个性化定制信息在产品中生效。在利用本申请进行产品功能定制时,为定制操作所对应的个性化定制信息生成相对应的部署信息即可,无需为每个客户拉取、创建并维护一个全量的代码分支,可有效降低产品功能定制过程中需投入的资源,并提升了定制效率,另外,后续,当标准产品升级后,通过针对升级后的标准产品重新生成部署信息并重新选取物料即可基于这些信息实现客户现场的产品升级,无需为每个客户维护一条产品的版本升级开发支线,升级过程较为简单高效。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面

描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1示出了现有技术基于拉取分支方式进行产品功能定制的处理逻辑示意图;

图2示出了本申请实施例中一种产品功能定制方法的一种应用场景的组成结构示意图;

图3示出了本申请实施例中一种产品功能定制方法所适用的服务器的一种组成结构示意图;

图4示出了本申请实施例中一种产品功能定制方法的一种流程示意图;

图5示出了本申请实施例中为个性化定制信息生成相对应部署信息的流程示意图;

图6示出了本申请实施例中一种产品功能定制方法的另一种流程示意图;

图7示出了本申请实施例中一种产品功能定制方法的又一种流程示意图;

图8示出了本申请实施例中一种产品功能定制方法的再一种流程示意图;

图9示出了本申请实施例中基于客制化系统进行产品功能定制的处理逻辑示意图;

图10示出了本申请实施例中配置客制化基本信息的示例图;

图11示出了本申请实施例中配置客户的个性化定制功能的示例图;

图12示出了本申请实施例中配置静态资源的示例图;

图13示出了本申请实施例中进行子产品的裁剪的示例图;

图14示出了本申请实施例中对产品名称的个性化修改情况的示例图;

图15示出了本申请实施例中裁剪子产品的相关菜单的示例图;

图16示出了本申请实施例中部署包的组成结构示例图;

图17示出了本申请实施例中基于模版合成方式获得静态资源的处理逻辑示意图;

图18示出了本申请实施例中定制所得的前端静态资源文件的示例图;

图19示出了本申请实施例中基于模版合成方式获得配置文件的处理逻辑示意图;

图20示出了本申请实施例中定制所得的后端配置文件的示例图;

图21示出了本申请实施例中从物料库中匹配所需物料的处理逻辑示意图;

图22示出了本申请实施例中从文档库中匹配所需文档的处理逻辑示意图;

图23示出了本申请实施例中在客户现场部署所得的子产品的功能菜单示例图;

图24示出了本申请实施例中一种产品功能定制装置的一种结构示意图;

图25示出了本申请实施例中一种产品功能定制装置的另一种结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的产品功能定制方法,可以用于对专有云云产品或有定制化需求的普通软件产品(非云产品)进行个性化功能定制,以提升产品功能定制及产品升级效率,降低产品功能定制及产品升级过程中需投入的资源。

可选的,上述产品功能定制方法可以应用在服务器中,具体地,比如可以应用于能提供产品功能定制服务的定制服务器中,该定制服务器可以是一台服务器,也可以是由若干台服务器组成的服务器集群,或者还可以是一个云计算服务中心/服务平台所提供的服务器。

为了便于理解,先对本申请实施例的产品功能定制方法所适用的应用场景进行介绍。如图2,在图2所示的应用场景中可以包括:定制服务器201以及私有服务器202。

所述私有服务器202可以是客户本地端搭建的用于提供私有服务的服务器,该私有服务器202可以是一台服务器,也可以是由若干台服务器组成的服务器集群。

定制服务器201可维护一个个全功能版本的软件产品(如维护一个个全功能版本的云产品等),全功能版本的软件产品也可称之为标准产品,当客户需要购买某一产品并需对其进行个性化定制时,可基于客户的个性化功能需求,在定制服务器201上对维护的相应标准产品进行功能的定制化配置和裁剪,以得到待交付的个性化产品的相关交付信息,进而可由售中人员获取交付信息并将其部署到客户现场的私有服务器202中。

参阅图3,其示出了本申请实施例的产品功能定制方法所适用的服务器(即所述定制服务器)的一种组成结构示意图。在图3中,该服务器可以包括:处理器301和存储器302。当然,还可以包括通信接口303、输入单元304、显示器305和通信总线306。

其中,处理器301、存储器302、通信接口303、输入单元304及显示器305,均通过通信总线306完成相互间的通信。

在本申请实施例中,该处理器301,可以为中央处理器(centralprocessingunit,cpu),特定应用集成电路(application-specificintegratedcircuit,asic),数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件等。

该处理器301可以调用存储器302中存储的程序。

存储器302中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令,在本申请实施例中,该存储器302中至少存储有用于实现以下功能的程序:

检测在标准产品上的定制操作,获得相对应的个性化定制信息,所述标准产品为全功能版本的产品;所述标准产品包括至少一个子产品,每个子产品提供至少一个功能,所述个性化定制信息用于实现对标准产品的子产品和/或子产品中的相应功能进行定制;

生成用于部署所述个性化定制信息、以使得所述个性化定制信息生效的部署信息;

从标准产品的物料中选取出与待交付的个性化产品包括的各个子产品相匹配的各个物料,得到物料集合,以提供至少包括所述部署信息及所述物料集合的交付信息,使得基于所述交付信息得到定制的个性化产品;

其中,所述物料集合中的物料用于为所述个性化产品的子产品提供功能支撑作用。

在一种可能的实现方式中,该存储器302可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、以及至少一个功能(比如声音播放功能、图像播放功能等)所需的应用程序等;存储数据区可存储根据计算机的使用过程中所创建的数据,比如,用户数据、用户访问数据以及音频数据等等。

此外,存储器302可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

通信接口303可以为通信模块的接口,如gsm模块的接口。

输入单元304可以为触摸感应单元、键盘等等。显示器305可以包括显示面板,如触摸显示面板等。

当然,图3所示的服务器结构并不构成对本申请实施例中服务器的限定,在实际应用中服务器可以包括比图3所示的更多或更少的部件,或者组合某些部件。

另外,为了引用和清楚起见,这里同时对本申请下文所涉及的一些技术名词、简写或缩写总结解释如下:

云产品物料包:包括专有云部署所需的产品组件的部署程序或者镜像包,如cvm(cloudvirtualmachine,云服务器)、cbs(cloudblockservice,云平台块级网络存储服务)等云产品关联的镜像程序包等;

客制化系统:一种能实现客户个性化定制需求的管理系统,最终会生成交付用的客制化信息;

cache:专有云部署静态资源的文件夹,主要包含js,css,图片,json文件的静态资源文件,除了存放客制化静态文件外,也可以包括其它云产品的静态文件,分不同目录存放;

hdfs:一种开源的分布式文件系统,主要作为专有云的文件系统;

交付系统:用来生成交付部署包的系统,配置了云产品和组件之间的映射关系;

文档系统:主要用来生成文档的系统,可以根据传入的云产品,生成对应的云产品的文档。

以下将基于本申请实施例涉及的上述共性方面,对本申请实施例进一步详细说明。如图4所示,为本申请实施例提供的一种产品功能定制方法的流程图,该方法包括:

步骤s401、检测在标准产品上的定制操作,获得相对应的个性化定制信息,所述标准产品为全功能版本的产品;所述标准产品包括至少一个子产品,每个子产品提供至少一个功能,所述个性化定制信息用于实现对标准产品的子产品和/或子产品中的相应功能进行定制。

所述检测在标准产品上的定制操作,获得相对应的个性化定制信息,可以包括但不限于以下的任一种或多种:

一、检测在标准产品上对客制化基本信息的配置操作,得到客制化基本信息;所述客制化基本信息可以包括但不限于客户名称、交付类型、使用的专有云版本、网络类型等信息;

需要说明的是,本申请中,所述客制即指客户个性化定制。

二、检测在标准产品上对静态资源的裁剪操作和/或定义操作,得到静态资源的裁剪信息和/或定义信息;所述静态资源是指诸如页面logo、图片、js、css文件、菜单文件等软件产品的相关前端资源,用于形成产品的前端界面。

静态资源的个性化定制信息主要有两种,一种是基于客户需求自定义的静态资源,如提前按客户需求准备好logo、图片、样式文件、页面内文字等,并通过执行定义操作(如上传并命名等)向标准产品提供这些信息,另一种是通过对标准产品的子产品或者子产品的功能菜单进行裁剪所得的静态资源的个性化定制信息;

三、检测在标准产品上对配置文件的裁剪操作和/或配置操作,得到配置文件的裁剪信息和/或配置信息;

所述配置文件通常是指软件产品的后端系统运行相关的镜像配置文件及非镜像配置文件,包括对产品系统运行过程中所需提供的各项功能的配置信息,如对接口权限,监控,日志等组件功能的一系列配置等。所述镜像配置文件为用于对镜像类的组件进行配置的文件,所述非镜像配置文件为用于对非镜像类的组件进行配置的文件。

配置文件的个性化定制信息,可以包括但不限于基于技术人员对子产品的功能裁剪和/或手工配置所得到的配置文件的裁剪信息和/或配置信息。

步骤s402、生成用于部署所述个性化定制信息、以使得所述个性化定制信息生效的部署信息。

所述部署信息,示例性地,可以是:包括所述个性化定制信息和用于对所述个性化定制信息进行部署的相关部署文件的部署包。

对于上述的客制化基本信息、静态资源裁剪信息和/或定义信息、配置文件的裁剪信息和/或配置信息等个性化定制信息,如图5所示,具体可以通过以下的处理过程生成其所对应的部署信息:

步骤s501、创建个性化定制信息的部署包。

可选地,所述部署包的包结构可以包括但不限于:1)用于记录所述客制化基本信息的文件;2)用于存放客制化的静态资源的前端资源存储区域;具体实施中,可采用文件夹的形式来体现或表征该存储区域;3)用于存放客制化的配置文件的后端资源存储区域,同样可采用文件夹的形式来体现或表征该存储区域;4)用于记录客制化配置文件的部署信息(用于对客制化的配置文件进行部署)的相关部署文件。

步骤s502、将所述客制化基本信息记录至所述部署包的预定文件中。

其中,在通过检测对所述客制化基本信息的配置操作,获得客户名称,交付类型,使用的专有云版本,网络类型等客制化基本信息的基础上,可将这些客制化基本信息记录至所述部署包的用于记录客制化基本信息的预定文件中,该文件可作为客户个性化产品的档案文件或日志文件,供技术人员或客户对个性化产品的基本信息进行查看。

步骤s503、将所述静态资源的定义信息存放于所述部署包的前端资源存储区域。

如上文所述,静态资源的个性化定制信息主要有两种,一种是基于客户需求自定义的静态资源,如提前准备并定义的logo、图片、样式文件、页面内文字等,另一种是通过对标准产品的子产品或者子产品的功能菜单进行裁剪所得的静态资源的个性化定制信息。对于第一种类型,在检测到对静态资源的定义操作时直接获取这些提前准备好的静态资源,并将其存放于所述部署包的前端资源存储区域即可,如具体将其存放于所述部署包的用于放置静态资源的文件夹中等。

步骤s504、生成与所述静态资源的裁剪信息相对应的静态资源客制化变量,将所述静态资源客制化变量与预定的静态资源文件模版进行合成,得到客制化的静态资源文件;并将所述客制化的静态资源文件存放于所述前端资源存储区域。

对于通过对标准产品的子产品或者子产品的功能菜单进行裁剪所得的静态资源的个性化定制信息,本申请采用模版合成的方式为其生成相对应的客制化静态资源文件,具体地,预先对静态资源文件进行了模版化,提供了静态资源文件模版,在采用模版合成的方式生成相对应的客制化静态资源文件时,可首先将通过裁剪所得的静态资源的个性化定制信息保存为相对应的静态资源客制化变量,进而由模版解析程序对该静态资源客制化变量和静态资源模版进行解析,并基于解析结果将变量信息和模版信息合成对应的客制化的静态资源文件。

在通过模版合成的方式得到所述客制化的静态资源文件后,同样可将该客制化的静态资源文件存放于所述部署包的前端资源存储区域,如具体将其存放于所述部署包的用于放置静态资源的文件夹中等。

需要说明的是,对于静态资源来说,由于其通常是用于展示在产品前端以使得用户可见的前端资源,而前端资源在产品自身系统中没有复杂的存储结构,在将个性化产品交付给客户时,其部署位置往往是可见的,一般会直接将前端资源部署在客户所提供的静态资源服务器中,并具体将其部署在客户所提供的静态资源服务器中的指定位置,鉴于此,静态资源的部署位置在现场部署时直接基于客户的指定即可获取,因此,当在所述部署包中存放所述客制化的静态资源文件的基础上,不必再为所述客制化的静态资源文件生成相应的部署信息,后续,在将个性化产品交付给客户时,可直接基于客户的指定信息(如ip、在相应ip上的存储路径)配置静态资源的存放位置,并直接以文件分发的方式将所述部署包的前端资源存储区域中的静态资源文件分发至所分配的位置即可实现客户现场的静态资源的动态定制。其中,若所配置的路径处已具有原有的静态资源,则直接覆盖或替换即可。

步骤s505、生成与所述配置文件的裁剪信息和/或配置信息相对应的配置文件客制化变量,将所述配置文件客制化变量与预定的配置文件模版进行合成,得到客制化的配置文件;并将所述客制化的配置文件存放于所述部署包的后端资源存储区域。

对于基于技术人员对子产品的功能裁剪或手工配置所得的配置文件的裁剪信息和/或配置信息,本申请同样采用模版合成的方式为其生成相对应的客制化配置文件,具体地,可首先将配置文件的裁剪信息和/或配置信息保存为相对应的配置文件客制化变量,进而由模版解析程序对该配置文件客制化变量和配置文件模版进行解析,并基于解析结果将变量信息和模版信息合成对应的客制化的配置文件。

在通过模版合成的方式得到所述客制化的配置文件后,可将该客制化的配置文件存放于所述部署包的后端资源存储区域,如具体将其存放于所述部署包的用于放置后端资源的文件夹中等。

更进一步地,配置文件分可为镜像配置文件及非镜像配置文件(如hdfs文件),以分别对应镜像类的组件及非镜像类的组件,配置文件客制化变量相对应地可分为镜像配置文件的客制化变量及非镜像配置文件的客制化变量。鉴于此,针对镜像及非镜像的两种类别,可以预先分别将镜像配置文件及非镜像配置文件模版化,得到镜像配置文件模版及非镜像配置文件模版。

对于镜像配置文件的客制化变量,可由模版解析程序对镜像配置文件的客制化变量和镜像配置文件模版进行解析,并基于解析结果将变量信息和模版信息合成对应的客制化的镜像配置文件。其中,镜像类的组件通常会导入到客户现场的镜像仓库,并由容器编排工具通过拉起容器来实现镜像类组件的部署,由此,相对应地,镜像配置文件需要通过容器部署以使得在组件中生效,从而最终可将合成所得的客制化的镜像配置文件,放置于部署包中的用于存放“需要容器部署的文件”的区域,如具体放置于部署包中的用于存放“需要容器部署的文件”的文件夹中等。

对于非镜像配置文件的客制化变量,可由模版解析程序相对应地对非镜像配置文件的客制化变量和非镜像配置文件模版进行解析,并基于解析结果将变量信息和模版信息合成对应的客制化的非镜像配置文件。非镜像类的组件通常会放置在hdfs中,因此,最终可将合成所得的客制化的非镜像配置文件放置于部署包中的用于存放“客制化的分布式文件”的区域,如具体放置于部署包中的用于存放“客制化的分布式文件”的文件夹中等。

步骤s506、生成用于对所述客制化的配置文件进行部署的部署文件,并将所述部署文件存放于所述部署包中。

具体地,可分别生成用于对所述客制化的镜像配置文件进行部署的镜像部署文件,以及生成用于对所述客制化的非镜像配置文件进行部署的非镜像部署文件,并将所述镜像部署文件及所述非镜像部署文件存放于所述部署包中。

其中,所述镜像部署文件主要记录了镜像配置文件的部署信息,包括镜像配置文件的源文件地址及目标文件地址,所述镜像配置文件的源文件地址是指所述部署包里镜像配置文件的地址,所述镜像配置文件的目标文件地址则是指容器中需被替换的文件的地址。

所述非镜像部署文件主要记录了分布式文件的部署信息,主要内容包括:分布式文件的源文件地址及目标文件地址,所述分布式文件的源文件地址是指部署包中的非镜像部署文件的地址,所述分布式文件的目标文件地址指:若要客制化(需被替换)的文件是一个普通的文件,则该地址是该文件在hdfs文件系统的路径,若要客制化(需要替换)的文件是一个压缩包内的文件,则该地址是压缩包文件在分布式文件系统的路径,及该文件在压缩包内的相对路径。

步骤s403、从标准产品的物料中选取出与待交付的个性化产品包括的各个子产品相匹配的各个物料,得到物料集合;以提供至少包括所述部署信息及所述物料集合的交付信息,使得基于所述交付信息得到定制的个性化产品;

其中,所述物料集合中的物料用于为所述个性化产品的子产品提供功能支撑作用。

所述物料可以为组件的物料,具体地可以包括但不限于:用于为产品的子产品提供功能支撑作用的镜像类组件的镜像包,和/或非镜像类组件的部署程序。

需要说明的是,产品的一个子产品通常对应至少一个组件,相对应地会基于组件所提供的组件功能来形成子产品的功能,对子产品的裁剪本质上相当于是对组件的裁剪,对子产品的功能的裁剪本质上相当于是对子产品下的相应组件功能的裁剪,因此,可基于对子产品的裁剪来筛选组件,而并不能基于对子产品的功能裁剪来筛选组件(后续,需在客户现场进行产品部署时基于部署包对组件进行动态的功能裁剪部署)。

鉴于此,在对标准产品进行子产品裁剪及子产品功能裁剪等定制操作的基础上,可进一步从标准产品的物料库中选取出与待交付的个性化产品包括的各个子产品相匹配的各个物料,得到物料集合,如筛选出与待交付的个性化产品包括的各个子产品相匹配的各个镜像类组件的镜像包和/或非镜像类组件的部署程序等。

以使得最终提供至少包括所述部署信息及所述物料集合的交付信息,后续,当在客户现场进行产品交付及部署时,可利用所述部署包中的相应客制化资源信息对产品物料(如控制台镜像中的原始静态资源、监控组件的镜像包或部署程序等)中的相应信息进行替换,来使得在客户交付现场得到定制的个性化产品。

本申请实施例提供的产品功能定制方法,在进行产品功能定制时,可通过为定制操作所对应的个性化定制信息生成相对应的部署信息,来使得后续在客户现场可通过利用所述部署信息对客户的个性化定制信息进行动态部署使得客户的个性化定制信息在产品中生效。在利用本申请进行产品功能定制时,为定制操作所对应的个性化定制信息生成相对应的部署信息即可,无需为每个客户拉取、创建并维护一个全量的代码分支,可有效降低产品功能定制过程中需投入的资源,并提升了定制效率,另外,后续,当标准产品升级后,通过针对升级后的标准产品重新生成部署信息并重新选取物料即可基于这些信息实现客户现场的产品升级,无需为每个客户维护一条产品的版本升级开发支线,升级过程较为简单高效。

在本申请的一可选实施例中,参阅图6示出的产品功能定制方法的流程图,所述从标准产品的物料中选取出与待交付的个性化产品包括的各个子产品相匹配的各个物料,得到物料集合,可以通过以下的处理过程实现:

步骤s601、基于所述标准产品及所述个性化定制信息,生成待交付的个性化产品所包括的各子产品的子产品信息集合。

当检测在标准产品上的定制操作,获得相对应的个性化定制信息后,如获得对标准产品的某一个或多个子产品的裁剪信息,以及对子产品的某一个或多个功能的裁剪信息后,本申请实施例进一步基于所述标准产品以及所述个性化定制信息,自动确定出待交付的个性化产品所包括的各子产品的子产品信息集合,如具体确定出个性化产品所包括的各个子产品的子产品清单等。

以裁剪掉云产品中的cbs这一子产品为例,在执行定制操作后,可基于标准产品的子产品列表以及该定制操作所对应的个性化定制信息,生成以下的子产品清单:

["cvm","cos","as","barad","gaia","dcos","vpc","ccs","clb","cfs","ckafka","tsf","cmq","apigateway","tdsql","mongodb","redis","ctsdb","waf","yunjing","contentsecurity","zhiyun","tbds","dc","basicproduct","billing","bms"];

通过阅览上述的子产品清单,可知,在该子产品清单中已没有cbs这一子产品的信息(具体已被裁剪掉)。

步骤s602、从所述标准产品的物料中选取出与所述子产品信息集合所表征的各个子产品相匹配的各个物料,得到物料集合;所述物料集合中包括的物料为:镜像类组件的镜像包和/或非镜像类组件的部署程序。

在获得待交付的个性化产品所对应的子产品清单的基础上,本申请进一步基于所述子产品清单,以及预先配置的子产品和组件之间的对应关系,从标准产品的物料库中筛选出与所述子产品清单中的各个子产品相应的组件物料,得到物料集合,该物料集合具体可以采用物料包的形式,物料包中可以包括镜像类组件的镜像包以及非镜像类组件的部署程序(如安装程序等)。

仍以上述裁剪掉了cbs这一子产品为例,则生成的产品物料包中不会包含cbs-alarm,cbs-oss,cbs-apimtnc等cbs相关的组件物料。

现有技术中由交付工程师进行物料的手工筛选,由于开发人员比较清楚产品的各个子产品与组件之间以及不同组件之间的关联关系,而交付工程师对这些信息往往不是非常了解,因此,在没有开发人员的协助下交付工程师进行物料筛选可能会存在筛选出错的情况,同时手动筛选的效率也较低。与现有技术相区别,本申请实施例自动基于标准产品及个性化定制信息生成待交付的个性化产品所包括的各子产品的子产品信息集合,并进一步基于预先配置的子产品和组件之间的对应关系,从标准产品的物料库中筛选出与所述子产品信息集合表征的各个子产品匹配的组件物料,可有效提升物料筛选的效率同时降低了物料筛选的出错概率。

在本申请的一可选实施例中,参阅图7示出的产品功能定制方法的流程图,该方法还可以包括:

步骤s404、从标准产品对应的文档中选取出与待交付的个性化产品包括的各个子产品相匹配的各个文档,得到文档集合;所述交付信息还包括所述文档集合。

具体地,可首先基于所述标准产品以及所述个性化定制信息,确定出待交付的个性化产品所包括的各子产品的子产品信息集合,如具体确定出个性化产品所包括的各个子产品的子产品清单等。

在此基础上,可进一步根据所述子产品清单,从标准产品的文档库中匹配出需要交付的文档资料,形成文档集合,该文档集合可以采用文档包的形式实现,文档包中包括的各个文档资料提供了对相应子产品和/或子产品功能的相关说明或描述信息。

仍以上述裁剪掉了cbs这一子产品为例,则生成的文档包中不会包含cbs相关的文档信息。

后续,可将所得到的文档包与所述部署包、物料包共同作为待交付的个性化产品的交付信息,交给售中进行客户现场部署,且具体地,在客户现场的产品部署中,可将所述文档包导入到客户现场的文档库中。

现有技术中由文档工程师进行文档信息的手工选取,同样存在容易出错及效率低的问题。与现有技术相区别,本申请实施例自动基于标准产品及个性化定制信息生成待交付的个性化产品所包括的各子产品的子产品信息集合,并进一步从标准产品的文档库中匹配出与所述子产品信息集合表征的各个子产品匹配的文档资料,可有效提升文档选取的效率同时降低了文档选取的出错概率。

下面以采用前文图1中包括定制服务器与私有服务器的场景对专有云云产品进行功能定制为例,对本申请实施例的产品功能定制方法进行介绍。但是可以理解的是,对于专有云云产品之外的情况,也同样适用于本实施例。参阅图8,其示出了本申请一种产品功能定制方法一个实施例的流程示意图,本实施例的方法可以包括:

步骤s801、对专有云按标准云产品主线进行版本的迭代开发,并在客制化系统对标准云产品进行日常维护。

具体地,参阅图9,本申请预先开发了一客制化系统,该系统可安装并运行于用于提供专有云定制服务的定制服务器中,该客制化系统提供专有云标准云产品的维护功能、以及按客户需求对维护的标准云产品进行配置、裁剪从而得到客户需要的专有云的功能。

本发明实施例化零为整,可将客户的分散的配置、裁剪等个性化定制需求集中客制化系统来,通过在客制化系统生成云产品的部署包、物料包及文档包来适配客户的个性化需求,最终生成客户所需的专有云云产品的交付信息。

且在本申请实施例中,对专有云仅按其标准云产品的主线版本如1.0、2.0、3.0这样的版本频率进行迭代开发并维护即可,不必为每个客户拉取、创建并维护一个全量的代码分支。

步骤s802、当客户有云产品定制化需求时,基于客户的个性化需求在客制化系统维护的标准云产品上进行定制操作。

其中,在客制化系统维护的标准云产品上进行的定制操作可以包括但不限于以下的几种:

1)配置客制化基本信息:如配置客户名称,交付类型,使用的专有云版本,网络类型等。

对各基本信息的配置情况具体可参阅图10提供的示例。

所配置的客制化基本信息可用于对客户进行建档或进行日志构建。

2)配置客户的个性化定制功能:如页面需显示的文字,客户域名,客户名称以及是否购买计费等等。

对个性化定制功能的配置情况具体可参阅图11提供的示例。

3)配置静态资源,如可以但不限于配置客户图标,客户文字,客户需要的样式、logo等静态资源信息。

对静态资源的配置情况具体可参阅图12提供的示例。

4)进行子产品的裁剪:如裁减掉cbs子产品等。

对子产品的裁剪情况具体可参阅图13提供的示例。

5)对标准产品的名称按客户需求进行个性化修改:如将“租户端-安全”修改为“云镜”等。

对产品名称的个性化修改情况具体可参阅图14提供的示例。

6)裁剪子产品的相关菜单:如去掉子产品vpc的私有网络和对等连接菜单项等。

对子产品功能的裁剪情况具体可参阅图15提供的示例。

步骤s803、检测在客制化系统的标准云产品上的定制操作,获得相对应的个性化定制信息。

通过检测以上的定制操作,可获得相对应的个性化定制信息,所述个性化定制信息包括客制化基本信息以及静态资源的客制化信息、配置文件的客制化信息这几种。

需要说明的是,基于对上述的第1)步定制操作进行检测可获得相应的客制化基本信息,主要用于对客户进行建档或进行日志构建,以使得为后续的功能定制过程或产品的交付部署提供基本信息查看功能;基于对上述的第3)步定制操作进行检测可获得静态资源个性化信息;基于对上述的第2)、4)-6)步定制操作进行检测,所获得的个性化定制信息既可以作为前端静态资源的个性化定制信息使用,又可以作为后端配置文件的个性化定制信息使用。

为便于理解,进行举例说明,例如当裁剪掉了某一子产品的某一功能菜单项后,可以将该对子产品的功能菜单项的裁剪信息作为前端静态资源的个性化定制信息,将其应用于产品的前端展示中,使其在产品前端展示时生效,不再展示被裁剪掉的功能菜单项,或者,还可以将该对子产品的功能菜单项的裁剪信息作为后端配置文件的个性化定制信息,将其应用于监控组件的配置中,使得监控组件仅对保留的功能菜单项的功能进行监控,而对于被裁剪掉的部分则不再监控。

步骤s804、生成用于部署所述个性化定制信息、以使得所述个性化定制信息生效的部署包。

具体地,可首先创建一部署包,该部署包的结构,示例性地,如图16所示,可以包括cache、hdfsfile及mount文件夹,以及还可以包括customizeinfo.json文件、deploy.json文件和hdfsfile.json文件。

部署包包括的上述各组成部分的解释说明如下:

1)cache:主要用来存放前端的静态资源的客制化信息,如页面logo,图片,js,css文件,菜单文件等的客制化信息等;

2)hdfsfile:用于存放客制化的分布式文件,由于非镜像类的组件通常会放置在hdfs中,因此该hdfsfile文件夹主要用来存放非镜像类的配置文件的客制化信息;

3)mount:用来存放需要利用容器部署的文件,这类文件在客户现场对专有云云产品进行部署时,当容器启动时会基于配置的部署信息即deploy.json中的部署信息将mount中的文件替换掉容器中原来的文件以实现该类文件在客户现场的客制化;

镜像类的组件通常会导入到客户现场的镜像仓库,由容器编排工具通过拉起容器来实现镜像类组件的部署,由此,相对应地,镜像配置文件需要通过容器部署,从而该mount文件可主要用于存放镜像类的配置文件的客制化信息;

4)customizeinfo.json:记录客户的客制化基本信息,如客户名称,交付类型,使用的专有云版本,网络类型等。

该文件可作为对客户云产品的档案信息或日志信息供技术人员或客户进行云产品基本信息的查看。

5)deploy.json:主要记录了镜像配置文件的部署信息,包括镜像配置文件的源文件地址及目标文件地址,所述镜像配置文件的源文件地址是指所述部署包里mount中镜像配置文件的地址,所述镜像配置文件的目标文件地址则是指容器中需被替换的文件的地址。

6)hdfsfile.json:主要记录了分布式文件系统的部署信息,主要内容包括:分布式文件的源文件地址及目标文件地址,所述分布式文件的源文件地址是指部署包中的非镜像部署文件的地址,所述分布式文件的目标文件地址指:若要客制化(需被替换)的文件是一个普通的文件,则该地址是该文件的hdfs文件系统的路径,若要客制化(需要替换)的文件是一个压缩包内的文件,则该地址是压缩包文件在分布式文件系统的路径,及该文件在压缩包内的相对路径。

在创建上述的部署包的基础上,对于所获得的如客户名称,交付类型,使用的专有云版本,网络类型等客制化基本信息,可直接将其记录至所述customizeinfo.json文件中。

本申请实施例预先对静态资源文件、镜像配置文件及非镜像配置文件(如hdfs文件)进行了模版化,相应地分别提供有静态资源文件模版、镜像配置文件模版及非镜像配置文件模版,以使得后续可基于模版合成方式来进行客制化的静态资源文件及配置文件的生成。

对于自定义的静态资源,可直接将其存放在所述cache文件夹中,如具体将其打包后存放于所述cache文件夹中等,对于基于裁剪所得的静态资源的个性化定制信息,可采用模版合成的方式为其生成相对应的客制化静态资源文件,具体地,参阅图17,可首先将通过裁剪所得的静态资源的个性化定制信息保存为相对应的静态资源客制化变量,进而由模版解析程序对该静态资源客制化变量和静态资源模版进行解析,并基于解析结果将变量信息和模版信息合成对应的客制化的静态资源文件。所得的前端静态资源文件具体可参阅图18提供的静态资源文件示例,其中,同样可将基于模板合成方式所得的客制化的静态资源文件存放于所述cache文件夹中,如打包存放等。

客制化系统日常维护时会维护一个标准版本的静态资源,当将专有云云产品交付客户并在客户现场进行部署时,可利用部署包中的客制化静态资源自动对标准版本的静态资源进行动态的替换裁剪,以得到客户需要的静态资源。

对于基于技术人员对子产品的功能裁剪(如图13所示)或手工配置(如图11所示)所得的镜像配置文件及非镜像配置文件的个性化定制信息,本申请实施例同样采用模版合成的方式为其生成相对应的客制化配置文件,具体地,参阅图19,可首先将镜像或非镜像配置文件的个性化定制信息保存为相对应的配置文件客制化变量,进而由模版解析程序对该镜像或非镜像配置文件客制化变量和相对应的镜像或非镜像配置文件模版进行解析,并基于解析结果将变量信息和模版信息合成对应的客制化的镜像或非镜像配置文件。所得的后端配置文件具体可参阅图20提供的配置文件示例。

最终可将基于模版合成所得的镜像配置文件放置于所述mount文件夹中,基于模版合成所得的非镜像配置文件放置于所述hdfsfile文件夹中。

并分别为所述镜像配置文件、非镜像配置文件生成相对应的deploy.json部署文件和hdfsfile.json部署文件,以分别记录镜像配置文件和非镜像配置文件的部署信息。

步骤s805、基于标准云产品及个性化定制信息,生成待交付的专有云云产品所包括的各子产品的子产品清单。

以上文中所述步骤1)-步骤6)的定制操作为例,在执行该定制操作后,可基于标准产品的子产品列表以及该定制操作所对应的个性化定制信息,生成以下的子产品清单:

["cvm","cos","as","barad","gaia","dcos","vpc","ccs","clb","cfs","ckafka","tsf","cmq","apigateway","tdsql","mongodb","redis","ctsdb","waf","yunjing","contentsecurity","zhiyun","tbds","dc","basicproduct","billing","bms"];

通过阅览上述的子产品清单,可知,在该子产品清单中已没有cbs这一子产品的信息(具体在步骤4)中已被裁剪掉)。

步骤s806、从标准云产品的物料库中选取出与所述子产品清单中的各个子产品相匹配的各个物料,得到物料包。

所述物料包中包括的物料为:镜像类组件的镜像包和/或非镜像类组件的部署程序。

具体地,如图21所示,可将所述子产品清单生成相应的子产品清单变量,并以客制化基本信息和所述子产品清单变量为请求参数,向交付系统发出请求,交付系统根据子产品清单变量,从物料库里匹配出需要交付的各个物料,形成物料包。仍以上述裁剪掉了cbs这一子产品为例,则生成的物料包中不会包含cbs-alarm,cbs-oss,cbs-apimtnc等cbs相关的组件物料。

步骤s807、从标准云产品的文档库中选取出与所述子产品清单中的各个子产品相匹配的各个文档,得到文档包。

具体地,如图22所示,可将所述子产品清单生成相应的子产品清单变量,并以客制化基本信息和所述子产品清单变量为请求参数,向文档系统发出请求,文档系统根据子产品清单变量,从文档库里匹配出需要交付的各个文档资料,形成文档包。仍以上述裁剪掉了cbs这一子产品为例,则生成的文档包中不会包含cbs相关的文档信息。

所匹配出的文档资源比如可以包括markdown文件、图片文件等。所匹配出的文档资源中提供了对相应子产品和/或子产品功能的相关说明或描述信息。

在此基础上,可得到待交付的专有云云产品的部署包、物料包、文档包这些交付信息,售中人员可基于这些交付信息在客户现场的私有服务器中进行专有云云产品的部署,其中,在进行云产品的客户现场部署时,可通过执行客制化部署命令,利用部署包中的客制化信息对物料包中的各组件物料进行动态的裁剪、配置,具体地,比如,利用部署包的cache文件夹中的logo文件替换物料包中控制台镜像(即用于生成云产品的应用界面框架的镜像)中原有的logo文件、根据deploy.json里配置的部署信息利用部署包的mount文件夹里的相应镜像配置文件替换由容器编排工具所拉起的容器中的文件、根据hdfsfile.json里配置的部署信息利用部署包的hdfsfile文件夹里的相应非镜像配置文件替换hdfs的原有文件等等,最终得到客户所需的个性化的专有云云产品,参阅图23,图23为进行客户现场部署时,客制化信息生效后的子产品vpc的功能示意图,其中,在最终部署的vpc中,其对等连接和私有网络(客户不需要该功能)已经被裁减掉。

本申请实施例的产品功能定制方法,相比于现有技术至少存在以下优势:

1)将分散的裁剪、配置需求集中到了客制化系统,可通过在客制化系统平台生成部署包,物料包和文档包等客制化信息来适配客户个性化需求,实现了部署包,物料包和文档包等客制化信息的生成过程的一体化,相应提升了产品的功能定制效率;

2)由客制化系统带来的版本管理效率的提升:使用客制化系统以后,只需要维护一个开发主线,即维护标准产品的不同版本开发这一主线即可,不需要为每个客户创建并维护一个全量的代码分支,标准产品升级时,可以直接按新版本的标准产品进行客制化信息的配置及生成(部署包、物料包、文档包)并重新在客户现场部署即可完成客户现场的产品升级;

3)采取了直接覆盖上传和模版合成两种方式处理不同客户在静态资源方面的个性化需求,采用了模版合成方式解决不同客户在镜像配置及非镜像配置方面的个性化需求,该方式获得客制化的静态资源或配置文件的效率较高;

4)通过基于在客制化系统进行的产品功能裁剪及配置,自动生成了待交付的个性化产品的子产品清单,并以子产品清单为变量向交付系统和文档系统进行物料及文档的匹配请求,文档系统和交付系统根据子产品清单变量准确地生成了每个客户现场部署所需的云产品物料包和文档包,避免了人工取包带来的不可控风险。

另一方面,本申请还提供了一种产品功能定制装置。

参阅图24,其示出了本申请一种产品功能定制装置一个实施例的组成结构示意图,该装置具体可应用于服务器中,该服务器能提供产品功能定制服务,如提供专有云云产品的功能定制服务或普通软件产品的功能定制服务等,其中,本申请装置所适用的该服务器的组成结构可以参见前面的相关介绍。

如图24所示,本实施例的装置可以包括:

检测与获取单元2401,检测在标准产品上的定制操作,获得相对应的个性化定制信息,所述标准产品为全功能版本的产品;所述标准产品包括至少一个子产品,每个子产品提供至少一个功能,所述个性化定制信息用于实现对标准产品的子产品和/或子产品中的相应功能进行定制;

生成单元2402,生成用于部署所述个性化定制信息、以使得所述个性化定制信息生效的部署信息;

第一选取单元2403,从标准产品的物料中选取出与待交付的个性化产品包括的各个子产品相匹配的各个物料,得到物料集合,以提供至少包括所述部署信息及所述物料集合的交付信息,使得基于所述交付信息得到定制的个性化产品;

其中,所述物料集合中的物料用于为所述个性化产品的子产品提供功能支撑作用。

在一种可能的实现方式中,所述检测与获取单元包括:

第一检测与获取子单元,用于检测在标准产品上对客制化基本信息的配置操作,得到客制化基本信息;

第二检测与获取子单元,用于检测在标准产品上对静态资源的裁剪操作和/或定义操作,得到静态资源的裁剪信息和/或定义信息;

第三检测与获取子单元,用于检测在标准产品上对配置文件的裁剪操作和/或配置操作,得到配置文件的裁剪信息和/或配置信息。

所述生成单元,包括:

创建子单元,用于创建个性化定制信息的部署包;

记录子单元,用于将所述客制化基本信息记录至所述部署包的预定文件中;

存放子单元,用于将所述静态资源的定义信息存放于所述部署包的前端资源存储区域;

第一合成处理子单元,用于生成与所述静态资源的裁剪信息相对应的静态资源客制化变量,将所述静态资源客制化变量与预定的静态资源文件模版进行合成,得到客制化的静态资源文件;并将所述客制化的静态资源文件存放于所述前端资源存储区域;

第二合成处理子单元,用于生成与所述配置文件的裁剪信息和/或配置信息相对应的配置文件客制化变量,将所述配置文件客制化变量与预定的配置文件模版进行合成,得到客制化的配置文件;并将所述客制化的配置文件存放于所述部署包的后端资源存储区域;

生成子单元,用于生成用于对所述客制化的配置文件进行部署的部署文件,并将所述部署文件存放于所述部署包中。

在一种可能的实现方式中,所述第二合成处理子单元将所述配置文件客制化变量与预定的配置文件模版进行合成,得到客制化的配置文件,具体包括:将所述镜像配置文件的客制化变量与预定的镜像配置文件模版进行合成,得到客制化的镜像配置文件;将所述非镜像配置文件的客制化变量与预定的组件配置文件模版进行合成,得到客制化的非镜像配置文件;

所述生成子单元,生成用于对所述客制化的配置文件进行部署的部署文件,具体包括:生成用于对所述客制化的镜像配置文件进行部署的镜像部署文件;生成用于对所述客制化的非镜像配置文件进行部署的非镜像部署文件。

在一种可能的实现方式中,如图25所示,所述产品功能定制装置,还可以包括:

第二选取单元2404,用于从标准产品对应的文档中选取出与所述子产品信息集合所表征的各个子产品相匹配的各个文档,得到文档集合。

另一方面,本申请还提供了一种存储介质,该存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现如上任意一个实施例中所描述的产品功能定制方法。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1