软件定制服务器、方法及计算机可读存储介质与流程

文档序号:13685565阅读:201来源:国知局
软件定制服务器、方法及计算机可读存储介质与流程

本发明涉及软件技术领域,尤其涉及一种软件定制服务器、方法及计算机可读存储介质。



背景技术:

目前,在采用模块化开发软件时,对于同一个软件,不同的客户对其可能有不同的定制需求。例如,即使是一个应用的同一个功能模块,也有不同的定制需求。但是目前采用的定制化方式比较麻烦,首先,需要软件开发方输出软件的sdk(softwaredevelopmentkit,软件开发工具包),然后分别根据客户需求基于sdk进行定制化开发,开发完成后,再打包成与该客户需求对应的app进行输出,不仅流程不够灵活,而且开发周期长,也就是说需要重新对打包完成的软件包进行发布;此外,在基于sdk进行定制化开发时,对于开发人员来说,需要在本地重新搭建开发环境,导致软件的定制化开发周期长,且过程繁琐。基于上述原因,现有的定制化开发方式,不仅开发周期长,而且过程繁琐,不够灵活,导致软件的开发效率低下。



技术实现要素:

本发明提供一种软件定制服务器、方法及计算机可读存储介质,其主要目的在于解决现有的定制化开发方式开发周期长,软件定制的过程繁琐的技术问题。

为实现上述目的,本发明提供一种软件定制服务器,该装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的软件定制程序,所述软件定制程序被所述处理器执行时实现如下步骤:

在接收到客户端发送的对目标应用的模块定制请求时,从所述模块定制请求中获取标识信息,并将部署在所述云平台的开发环境开放给所述客户端;

确定所述模块定制请求的类型,并将与所述模块定制请求的类型对应的接口提供给所述客户端,以供所述客户端根据客户需求对所述目标应用进行定制开发;

当接收到所述客户端发送的确认指令时,获取所述客户端基于所述接口上传的代码;

对所述代码进行编译和封装处理,生成增量定制包,将所述增量定制包与所述标识信息关联后存储。

可选地,确定所述模块定制请求的类型;

若所述模块定制请求为第一预设定制请求,则确定所述模块定制请求对应的基础业务模块,并将所述基础业务模块的源代码通过对应的接口提供给所述客户端,以供所述客户端通过提供的接口对所述基础业务模块进行定制开发;

若所述模块定制请求为第二预设定制请求,则将所述目标应用的基础native框架包含的接口提供给所述客户端,以供所述客户端基于提供的接口创建新的定制模块。

可选地,所述处理器还用于执行所述软件定制程序,以在所述对所述代码进行编译和封装处理,生成增量定制包,将所述增量定制包与所述标识信息关联后存储的步骤之后,还实现以下步骤:

在接收到终端发送基于所述目标应用的定制化更新请求时,从所述定制化更新请求中获取标识信息;

查找与所述标识信息对应的增量定制包,将查找到的增量定制包发送至所述终端,以供所述终端基于接收的增量定制包对目标应用进行增量升级。

可选地,所述处理器还用于执行所述软件定制程序,以在所述获取所述客户端基于所述接口上传的代码的步骤之后,还实现以下步骤:

获取与所述目标应用的基础native框架,将所述代码、所述基础native框架以及所述目标应用的基础业务组件进行打包,生成测试软件包,并对所述测试软件包进行有效性测试;

若测试通过,则执行对所述代码进行编译和封装处理,生成增量定制包,将所述增量定制包与所述标识信息关联后存储的步骤;

若测试失败,则向所述客户端发送测试失败的提示信息,以供所述客户端对代码进行修改。

可选地,所述处理器还用于执行所述软件定制程序,以在所述当接收到所述客户端发送的确认指令时,所述云平台获取所述客户端基于所述接口上传的代码的步骤之后,还实现以下步骤:

检测是否发布过所述目标应用;

若是,则执行所述对所述代码进行编译和封装处理,生成增量定制包,将所述增量定制包与所述标识信息关联后存储的步骤;

若否,则获取所述目标应用的基础native框架和基础业务模块,根据所述代码、所述基础native框架和所述基础业务模块生成与所述标识信息对应的定制软件包,并将所述定制软件包与所述标识信息关联后存储。

此外,为实现上述目的,本发明还提供一种软件定制方法,该方法包括:

云平台在接收到客户端发送的对目标应用的模块定制请求时,从所述模块定制请求中获取标识信息,并将部署在所述云平台的开发环境开放给所述客户端;

确定所述模块定制请求的类型,并将与所述模块定制请求的类型对应的接口提供给所述客户端,以供所述客户端根据客户需求对所述目标应用进行定制开发;

当接收到所述客户端发送的确认指令时,所述云平台获取所述客户端基于所述接口上传的代码;

对所述代码进行编译和封装处理,生成增量定制包,将所述增量定制包与所述标识信息关联后存储。

可选地,所述确定所述模块定制请求的类型,并将与所述模块定制请求的类型对应的接口提供给所述客户端的步骤包括:

确定所述模块定制请求的类型;

若所述模块定制请求为第一预设定制请求,则确定所述模块定制请求对应的基础业务模块,并将所述基础业务模块的源代码通过对应的接口提供给所述客户端,以供所述客户端通过提供的接口对所述基础业务模块进行定制开发;

若所述模块定制请求为第二预设定制请求,则将所述目标应用的基础native框架包含的接口提供给所述客户端,以供所述客户端基于提供的接口创建新的定制模块。

可选地,所述对所述代码进行编译和封装处理,生成增量定制包,将所述增量定制包与所述标识信息关联后存储的步骤之后,所述方法还包括:

在接收到终端发送基于所述目标应用的定制化更新请求时,从所述定制化更新请求中获取标识信息;

查找与所述标识信息对应的增量定制包,将查找到的增量定制包发送至所述终端,以供所述终端基于接收的增量定制包对目标应用进行增量升级。

可选地,若所述确认指令中包含有测试请求,则在所述获取所述客户端基于所述接口上传的代码的步骤之后,所述方法还包括:

获取与所述目标应用的基础native框架,将所述代码、所述基础native框架以及所述目标应用的基础业务组件进行打包,生成测试软件包,并对所述测试软件包进行有效性测试;

若测试通过,则执行对所述代码进行编译和封装处理,生成增量定制包,将所述增量定制包与所述标识信息关联后存储的步骤;

若测试失败,则向所述客户端发送测试失败的提示信息,以供所述客户端对代码进行修改。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有软件定制程序,所述软件定制程序被处理器执行时实现如上所述的软件定制方法的步骤。

本发明提出的软件定制服务器、方法及计算机可读存储介质,在云平台部署开发环境,同时根据定制的不同类型,预先配置好适用于不同类型的定制请求的接口,用户在对目标软件进行定制时,不需要在本地搭建开发环境,通过客户端登录云平台,使用云平台开放的开发环境进行定制化开发,并根据需要发送不同类型的定制请求,以获取与定制请求的类型对应的接口进行定制化开发,在开发完成后,只需将基于接口进行定制开发的代码上传即可,不需要生成的完整的软件包,云平台对代码进行编译和封装,针对定制的内容生成增量定制包并存储以用于定制化升级,缩短了定制化开发的周期,对于开发人员来说,简化了软件定制化开发的过程。

附图说明

图1为本发明软件定制服务器较佳实施例的示意图;

图2为本发明软件定制方法第一实施例的流程图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种软件定制服务器。参照图1所示,为本发明软件定制服务器较佳实施例的示意图。

在本实施例中,软件定制服务器包括存储器11、处理器12,网络接口13,用户接口14以及通信总线15。其中,存储器11可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器11可以是该终端的内部存储单元,例如终端的硬盘或者内存,可选的还可以是独立于前述处理器12的存储装置。网络接口13可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。通信总线15用于实现这些组件之间的连接通信。

存储器11在一些实施例中可以是软件定制服务器的内部存储单元,例如该软件定制服务器的硬盘或内存。存储器11在另一些实施例中也可以是软件定制服务器的外部存储设备,例如软件定制服务器上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器11还可以既包括软件定制服务器的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于软件定制服务器的应用软件及各类数据,例如软件定制程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu),微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行软件定制程序等。

用户接口14可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。用户可以通过用户接口为该软件定制服务器配置开发环境等。在一些实施例中显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。显示器用于显示在软件定制服务器中处理的信息以及用于显示可视化的用户界面,例如,可以显示用于配置开发环境的界面。

图1仅示出了具有组件11-15以及软件定制程序的软件定制服务器,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

在图1所示的服务器的实施例中,作为一种计算机存储介质的存储器11中可以包括操作系统、以及软件定制程序;网络接口13主要用于与客户端建立连接以进行数据交互;处理器12执行存储器11中存储的软件定制程序时实现如下步骤:

在接收到客户端发送的对目标应用的模块定制请求时,从所述模块定制请求中获取标识信息,并将部署在所述云平台的开发环境开放给所述客户端;

确定所述模块定制请求的类型,并将与所述模块定制请求的类型对应的接口提供给所述客户端,以供所述客户端根据客户需求对所述目标应用进行定制开发;

当接收到所述客户端发送的确认指令时,获取所述客户端基于所述接口上传的代码;

对所述代码进行编译和封装处理,生成增量定制包,将所述增量定制包与所述标识信息关联后存储。

该实施例中,预先在服务器中搭建适用于目标应用的开发环境。具体地,根据目标应用使用的开发语言以及运行环境等信息创建与目标应用适配的开发环境。并且该服务器可以与客户端建立远程通信,开发人员可以通过登录客户端与服务器建立通讯连接,以通过客户端向服务器发起模块定制请求。客户端设置有用于触发模块定制指令的控件,客户端在侦测到模块定制指令时,向服务器发送模块定制请求,并且客户端在向服务器发送模块定制请求时,携带有与客户端当前的登录账户对应的标识信息。

服务器在接收到模块定制请求时,从定制请求中获取标识信息,同时将部署在云平台的开发环境开放给该客户端,在该客户端上展示。然后,确定接收到的模块定制请求的类型,将与模块定制请求的类型对应的接口提供给客户端。以便于客户端基于提供的接口,根据客户需求对目标应用进行定制开发。

对于本实施例提出的服务器,模块定制请求主要包括第一预设定制请求和第二预设定制请求,其中,第一预设定制请求为在服务器提供的基础业务模块的源代码的基础上,对这些基础业务组件进行定制化开发,以修改、删除或者增加这些基础业务模块的相关功能、业务流程等相关数据;第二预设定制请求为在服务器提供的基础native框架的基础上,定制基础软件所不具有的、新的业务模块。

具体地,确定所述模块定制请求的类型,并将与所述模块定制请求的类型对应的接口提供给所述客户端的步骤包括:

确定所述模块定制请求的类型;

若所述模块定制请求为第一预设定制请求,则确定所述模块定制请求对应的基础业务模块,并将所述基础业务模块的源代码通过对应的接口提供给所述客户端,以供所述客户端通过提供的接口对所述基础业务模块进行定制开发;

若所述模块定制请求为第二预设定制请求,则将所述目标应用的基础native框架包含的接口提供给所述客户端,以供所述客户端基于提供的接口创建新的定制模块。

对于目标应用来说,在云平台部署有与其开发语言适配的开发环境,以及构成该目标应用的基础软件的基础native框架以及基础业务模块,这些基础业务模块实现该目标应用的基础业务功能,开发人员可以根据需要对任意一个基础业务模块进行定制,或者在基础native框架上定制新的业务模块。

具体地,若模块定制请求为第一预设定制请求,则确定该第一预设定制请求对应的基础业务模块,将服务器中存储的该基础业务模块的源代码通过为其配置的接口开放给客户端,客户端可以在开发环境中,通过编写代码对该基础业务模块的相关功能进行变更。此外,在服务器中存储的基础native框架中包含该目标软件运行需要的所有基础组件,每个基础组件有对应的接口,并且该框架中提供了用于各业务模块之间交互的通讯方式,业务模块之间的数据交互通过该框架实现。

若模块定制请求为第二预设定制请求,则将基础native框架所包含的所有接口都开放给客户端,以供开发人员基于这些接口创建一个新的定制模块。开发人员基于服务器开放的开发环境,并基于相关接口编写代码。在定制开发完成之后,开发人员将编写的代码上传到服务器,服务器对接收到的代码进行编译并封装,采用增量的方式生成一个基于开发人员定制的内容的增量包,并且将该增量包与该客户端的标识信息关联后存储,以便于开发人员使用该增量包对目标应用进行定制化升级。本方案在根据用户发送的代码创建增量定制包时,不改变原本的基础业务模块的源代码,不影响其他有定制需求的用户对该目标软件的定制。

本发明采用上述方式开发生成的增量定制包,相较于完整的软件包来说,其数据量小,且占用的空间少,只包含有用户定制的部分,如果用户的终端上安装有目标应用的基础软件包,只需从服务器中获取增量定制包,即可将其升级为对应的定制化软件。

具体地,处理器12还用于执行所述软件定制程序,以在所述对所述代码进行编译和封装处理,生成增量定制包,将所述增量定制包与所述标识信息关联后存储的步骤之后,还实现以下步骤:

在接收到终端发送基于所述目标应用的定制化更新请求时,从所述定制化更新请求中获取标识信息;

查找与所述标识信息对应的增量定制包,将查找到的增量定制包发送至所述终端,以供所述终端基于接收的增量定制包对目标应用进行增量升级。

可选地,在本实施例中,可以使用rn技术(react-native)来开发目标应用,react-native是一种基于js(javascript)语言的框架,可以使用js语言进行代码的编写。若采用rn技术,用户的终端在获取到增量定制包时,可以实现热更新,无需重新启动目标软件,只需下载增量定制包并重新加载即可将目标软件更新为定制化软件。

可选地,在一些实施例中,处理器12还用于执行所述软件定制程序,以在所述获取所述客户端基于所述接口上传的代码的步骤之后,还实现以下步骤:

获取与所述目标应用的基础native框架,将所述代码、所述基础native框架以及所述目标应用的基础业务组件进行打包,生成测试软件包,并对所述测试软件包进行有效性测试;

若测试通过,则执行对所述代码进行编译和封装处理,生成增量定制包,将所述增量定制包与所述标识信息关联后存储的步骤;

若测试失败,则向所述客户端发送测试失败的提示信息,以供所述客户端对代码进行修改。

为了提高软件开发的效率,用户在基于客户端上传代码后,可以发送包含有测试请求的确认指令,服务器在检测到该测试请求时,在云平台的测试环境对接收到的代码进行有效性测试,例如,将该目标应用的基础native框架和基础业务组件与接收到的代码进行打包,生成一个完整的包含有定制内容的软件包作为测试软件包,并运行该测试软件包,并运行其中定制内容的代码,即用户上传的代码,以判断该应用是否能够正常运行,若可以,则判定测试通过,并继续进行后续操作,若测试失败,则向客户端发送提示信息,以使开发人员及时对代码进行修改。进一步地,可以对测试中错误的代码进行定位,并将定位信息发送给客户端。

可选地,在其他的实施例中,处理器12还用于执行所述软件定制程序,以在所述当接收到所述客户端发送的确认指令时,所述云平台获取所述客户端基于所述接口上传的代码的步骤之后,还实现以下步骤:

检测是否发布过所述目标应用;

若是,则执行所述对所述代码进行编译和封装处理,生成增量定制包,将所述增量定制包与所述标识信息关联后存储的步骤;

若否,则获取所述目标应用的基础native框架和基础业务模块,根据所述代码、所述基础native框架和所述基础业务模块生成与所述标识信息对应的定制软件包,并将所述定制软件包与所述标识信息关联后存储。

在该实施例中,服务器在创建增量包之前,先判断该目标应用是否发布过,若未发布过,则根据目标应用的基础native框架和基础业务模块,以及接收到的代码进行打包,生成一个完整的定制软件包,将该定制软件包与对应的标识信息关联后存储,用户在向服务器请求下载定制软件包时,需要在下载请求中添加标识信息,服务器会将与下载请求中的标识信息关联的定制软件包发送给用户。

此外,本实施例提出的方案,如果目标软件的提供方对基础native框架或者基础业务模块进行了升级或者修改,只需在云平台进行对应的修改即可,开发人员在云平台定制开发模块时,可以直接基于新的基础native框架或者新的基础业务模块进行开发,进一步缩短了软件开发的周期。

可选地,在其他的实施例中,软件定制程序还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行,以完成本发明。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述消息推送装置在软件定制服务器中的执行过程。

例如,在一实施例中,软件定制程序可以被分割为获取模块、开发模块和生成模块,其中:

所述获取模块用于:在接收到客户端发送的对目标应用的模块定制请求时,从所述模块定制请求中获取标识信息,并将部署在所述云平台的开发环境开放给所述客户端;

所述开发模块用于:确定所述模块定制请求的类型,并将与所述模块定制请求的类型对应的接口提供给所述客户端,以供所述客户端根据客户需求对所述目标应用进行定制开发;

所述获取模块还用于:当接收到所述客户端发送的确认指令时,获取所述客户端基于所述接口上传的代码;

所述生成模块用于:对所述代码进行编译和封装处理,生成增量定制包,将所述增量定制包与所述标识信息关联后存储。

此外,本发明还提供一种软件定制方法。参照图2所示,为本发明软件定制方法第一实施例的流程图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。

在本实施例中,软件定制方法包括:

步骤s10,云平台在接收到客户端发送的对目标应用的模块定制请求时,从所述模块定制请求中获取标识信息,并将部署在所述云平台的开发环境开放给所述客户端。

步骤s20,确定所述模块定制请求的类型,并将与所述模块定制请求的类型对应的接口提供给所述客户端,以供所述客户端根据客户需求对所述目标应用进行定制开发。

步骤s30,当接收到所述客户端发送的确认指令时,所述云平台获取所述客户端基于所述接口上传的代码。

步骤s40,对所述代码进行编译和封装处理,生成增量定制包,将所述增量定制包与所述标识信息关联后存储。

该实施例中,预先在服务器中搭建适用于目标应用的开发环境。具体地,根据目标应用使用的开发语言以及运行环境等信息创建与目标应用适配的开发环境。并且该服务器可以与客户端建立远程通信,开发人员可以通过登录客户端与服务器建立通讯连接,以通过客户端向服务器发起模块定制请求。客户端设置有用于触发模块定制指令的控件,客户端在侦测到模块定制指令时,向服务器发送模块定制请求,并且客户端在向服务器发送模块定制请求时,携带有与客户端当前的登录账户对应的标识信息。

服务器在接收到模块定制请求时,从定制请求中获取标识信息,同时将部署在云平台的开发环境开放给该客户端,在该客户端上展示。然后,确定接收到的模块定制请求的类型,将与模块定制请求的类型对应的接口提供给客户端。以便于客户端基于提供的接口,根据客户需求对目标应用进行定制开发。

对于本实施例提出的服务器,模块定制请求主要包括第一预设定制请求和第二预设定制请求,其中,第一预设定制请求为在服务器提供的基础业务模块的源代码的基础上,对这些基础业务组件进行定制化开发,以修改、删除或者增加这些基础业务模块的相关功能、业务流程等相关数据;第二预设定制请求为在服务器提供的基础native框架的基础上,定制基础软件所不具有的、新的业务模块。

具体地,确定所述模块定制请求的类型,并将与所述模块定制请求的类型对应的接口提供给所述客户端的步骤包括:

确定所述模块定制请求的类型;

若所述模块定制请求为第一预设定制请求,则确定所述模块定制请求对应的基础业务模块,并将所述基础业务模块的源代码通过对应的接口提供给所述客户端,以供所述客户端通过提供的接口对所述基础业务模块进行定制开发;

若所述模块定制请求为第二预设定制请求,则将所述目标应用的基础native框架包含的接口提供给所述客户端,以供所述客户端基于提供的接口创建新的定制模块。

对于目标应用来说,在云平台部署有与其开发语言适配的开发环境,以及构成该目标应用的基础软件的基础native框架以及基础业务模块,这些基础业务模块实现该目标应用的基础业务功能,开发人员可以根据需要对任意一个基础业务模块进行定制,或者在基础native框架上定制新的业务模块。

具体地,若模块定制请求为第一预设定制请求,则确定该第一预设定制请求对应的基础业务模块,将服务器中存储的该基础业务模块的源代码通过为其配置的接口开放给客户端,客户端可以在开发环境中,通过编写代码对该基础业务模块的相关功能进行变更。此外,在服务器中存储的基础native框架中包含该目标软件运行需要的所有基础组件,每个基础组件有对应的接口,并且该框架中提供了用于各业务模块之间交互的通讯方式,业务模块之间的数据交互通过该框架实现。

若模块定制请求为第二预设定制请求,则将基础native框架所包含的所有接口都开放给客户端,以供开发人员基于这些接口创建一个新的定制模块。开发人员基于服务器开放的开发环境,并基于相关接口编写代码。在定制开发完成之后,开发人员将编写的代码上传到服务器,服务器对接收到的代码进行编译并封装,采用增量的方式生成一个基于开发人员定制的内容的增量包,并且将该增量包与该客户端的标识信息关联后存储,以便于开发人员使用该增量包对目标应用进行定制化升级。本方案在根据用户发送的代码创建增量定制包时,不改变原本的基础业务模块的源代码,不影响其他有定制需求的用户对该目标软件的定制。

本发明采用上述方式开发生成的增量定制包,相较于完整的软件包来说,其数据量小,且占用的空间少,只包含有用户定制的部分,如果用户的终端上安装有目标应用的基础软件包,只需从服务器中获取增量定制包,即可将其升级为对应的定制化软件。

具体地,在步骤s40之后,该方法还包括以下步骤:

在接收到终端发送基于所述目标应用的定制化更新请求时,从所述定制化更新请求中获取标识信息;

从存储的增量定制包中查找与所述标识信息对应的增量定制包,将查找到的增量定制包发送至所述终端,以供所述终端基于接收的增量定制包对目标应用进行增量升级。

可选地,在本实施例中,可以使用rn技术(react-native)来开发目标应用,react-native是一种基于js(javascript)语言的框架,可以使用js语言进行代码的编写。若采用rn技术,用户的终端在获取到增量定制包时,可以实现热更新,无需重新启动目标软件,只需下载增量定制包并重新加载即可将目标软件更新为定制化软件。

本实施例提出的软件定制方法,在云平台部署开发环境,同时根据定制的不同类型,预先配置好适用于不同类型的定制请求的接口,用户在对目标软件进行定制时,不需要在本地搭建开发环境,通过客户端登录云平台,使用云平台开放的开发环境进行定制化开发,并根据需要发送不同类型的定制请求,以获取与定制请求的类型对应的接口进行定制化开发,在开发完成后,只需将基于接口进行定制开发的代码上传即可,不需要生成的完整的软件包,云平台对代码进行编译和封装,针对定制的内容生成增量定制包并存储以用于定制化升级,缩短了定制化开发的周期,对于开发人员来说,简化了软件定制化开发的过程。

可选地,在一些实施例中,在步骤s30之后,该方法还包括以下步骤:

获取与所述目标应用的基础native框架,将所述代码、所述基础native框架以及所述目标应用的基础业务组件进行打包,生成测试软件包,并对所述测试软件包进行有效性测试;

若测试通过,则执行步骤s40;

若测试失败,则向所述客户端发送测试失败的提示信息,以供所述客户端对代码进行修改。

为了提高软件开发的效率,用户在基于客户端上传代码后,可以发送包含有测试请求的确认指令,服务器在检测到该测试请求时,在云平台的测试环境对接收到的代码进行有效性测试,例如,将该目标应用的基础native框架和基础业务组件与接收到的代码进行打包,生成一个完整的包含有定制内容的软件包作为测试软件包,并运行该测试软件包,并运行其中定制内容的代码,即用户上传的代码,以判断该应用是否能够正常运行,若可以,则判定测试通过,并继续进行后续操作,若测试失败,则向客户端发送提示信息,以使开发人员及时对代码进行修改。进一步地,可以对测试中错误的代码进行定位,并将定位信息发送给客户端。

可选地,在其他的实施例中,步骤s30之后,该方法还包括以下步骤:

检测是否发布过所述目标应用;

若是,则执行步骤步骤s40;

若否,则获取所述目标应用的基础native框架和基础业务模块,根据所述代码、所述基础native框架和所述基础业务模块生成与所述标识信息对应的定制软件包,并将所述定制软件包与所述标识信息关联后存储。

在该实施例中,服务器在创建增量包之前,先判断该目标应用是否发布过,若未发布过,则根据目标应用的基础native框架和基础业务模块,以及接收到的代码进行打包,生成一个完整的定制软件包,将该定制软件包与对应的标识信息关联后存储,用户在向服务器请求下载定制软件包时,需要在下载请求中添加标识信息,服务器会将与下载请求中的标识信息关联的定制软件包发送给用户。

而且,本实施例提出的方案,如果目标软件的提供方对基础native框架或者基础业务模块进行了升级或者修改,只需在云平台进行对应的修改即可,开发人员在云平台定制开发模块时,可以直接基于新的基础native框架或者新的基础业务模块进行开发,进一步缩短了软件开发的周期。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有软件定制程序,所述软件定制程序被处理器执行时实现如下操作:

在接收到客户端发送的对目标应用的模块定制请求时,从所述模块定制请求中获取标识信息,并将部署在所述云平台的开发环境开放给所述客户端;

确定所述模块定制请求的类型,并将与所述模块定制请求的类型对应的接口提供给所述客户端,以供所述客户端根据客户需求对所述目标应用进行定制开发;

当接收到所述客户端发送的确认指令时,获取所述客户端基于所述接口上传的代码;

对所述代码进行编译和封装处理,生成增量定制包,将所述增量定制包与所述标识信息关联后存储。

进一步地,所述软件定制程序被处理器执行时还实现如下操作:

确定所述模块定制请求的类型;

若所述模块定制请求为第一预设定制请求,则确定所述模块定制请求对应的基础业务模块,并将所述基础业务模块的源代码通过对应的接口提供给所述客户端,以供所述客户端通过提供的接口对所述基础业务模块进行定制开发;

若所述模块定制请求为第二预设定制请求,则将所述目标应用的基础native框架包含的接口提供给所述客户端,以供所述客户端基于提供的接口创建新的定制模块。

进一步地,所述软件定制程序被处理器执行时还实现如下操作:

在接收到终端发送基于所述目标应用的定制化更新请求时,从所述定制化更新请求中获取标识信息;

查找与所述标识信息对应的增量定制包,将查找到的增量定制包发送至所述终端,以供所述终端基于接收的增量定制包对目标应用进行增量升级。

进一步地,所述软件定制程序被处理器执行时还实现如下操作:

获取与所述目标应用的基础native框架,将所述代码、所述基础native框架以及所述目标应用的基础业务组件进行打包,生成测试软件包,并对所述测试软件包进行有效性测试;

若测试通过,则执行对所述代码进行编译和封装处理,生成增量定制包,将所述增量定制包与所述标识信息关联后存储的步骤;

若测试失败,则向所述客户端发送测试失败的提示信息,以供所述客户端对代码进行修改。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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