CN109614109B - 应用部署方法、装置和系统 - Google Patents
应用部署方法、装置和系统 Download PDFInfo
- Publication number
- CN109614109B CN109614109B CN201811365426.1A CN201811365426A CN109614109B CN 109614109 B CN109614109 B CN 109614109B CN 201811365426 A CN201811365426 A CN 201811365426A CN 109614109 B CN109614109 B CN 109614109B
- Authority
- CN
- China
- Prior art keywords
- application
- compiling
- source code
- mainframe
- deployment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Abstract
本申请提供了一种应用部署方法、装置和系统,其中,部署控制服务器在接收前端管控服务器发送的应用部署请求后,根据该应用部署请求携带的应用标识和库地址标识,获取目标应用的源代码;向大型主机发送该源代码;向大型主机发送源码编译指令。而大型主机基于该源码编译指令携带有所述业务功能属性,确定编译模型,并利用编译模型编译该源代码,且,在接收到部署控制服务器发送的应用部署指令时,基于该源代码编译出的可执行文件,在大型主机中部署该目标应用。本申请的方案可以降低向大型主机中部署应用的复杂度,并提高向大型主机中部署应用的部署效率。
Description
技术领域
本申请涉及通信控制技术领域,尤其涉及一种应用部署方法、装置和系统。
背景技术
大型主机简称大型机,其使用专用的处理器指令集、操作系统和应用软件。
为了使得大型主机可以实现特定业务功能,可以根据需要向大型主机中部署应用程序。由于大型主机的特殊性,从开发人员开发出应用到将应用部署到大型主机,需要经过应用申请提交、提交信息构建以及应用部署多个环节。然而,由于实现向大型主机中部署应用所需的各个环节相互独立,需要不同用户分别完成,且由于各个环节具有较为紧密的联系,负责各个环节的用户之间通过文档以及口头等交流以确认相关信息,才可以最终在相关设备上完成特定环节的操作,从而使得向大型主机中部署应用的复杂度较高,且应用部署效率较低。
发明内容
有鉴于此,本申请提供了一种应用部署方法、装置和系统,以降低向大型主机中部署应用的复杂度,并提高向大型主机中部署应用的部署效率。
为实现上述目的,本申请提供了一种应用部署方法,包括:
接收前端管控服务器发送的应用部署请求,所述应用部署请求携带有待部署的目标应用对应的应用标识、业务功能属性以及库地址标识;
响应于所述应用部署请求,根据所述应用标识,从所述库地址标识所指向的源码库中,获取所述目标应用的源代码;
向大型主机发送所述源代码;
向所述大型主机发送源码编译指令,所述源码编译指令携带有所述业务功能属性,所述源代码编译指令至少用于指示所述大型主机基于所述目标应用的业务功能属性,编译所述目标应用的源代码;
在接收到所述大型主机反馈的完成编译指示时,向所述大型主机发送应用部署指令,所述应用部署指令用于指示所述大型主机基于编译后的所述目标应用的源代码,在大型主机中部署所述目标应用。
优选的,在所述向所述大型主机发送源码编译指令之前,还包括:
向所述大型主机发送代码校验指令,所述代码校验指令用于指示所述大型主机对所述目标应用的源代码进行错误校验;
所述向所述大型主机发送源码编译指令,包括:
当接收到大型主机返回的校验通过指示时,向所述大型主机发送源码编译指令。
优选的,所述应用部署请求中还携带有所述目标应用的配置参数;
在所述向所述大型主机发送应用部署指令之后,还包括:
当接收到所述大型主机的部署完成指示时,向所述大型主机发送携带有所述配置参数的应用生效指令,所述应用生效指令用于指示所述大型主机配置所述目标应用的所述配置参数,以完成所述目标应用的配置。
优选的,在所述向大型主机发送所述源代码之后,还包括:
接收所述大型主机返回的指令执行结果文件,所述指令执行结果文件记录有所述大型主机对于存储所述源代码的执行情况、编译所述源代码的编译情况、校验所述源代码的校验情况和部署所述应用的部署情况中的一种或者多种;
将接收到的所述指令执行结果文件发送给所述前端管控服务器,以便用户通过所述前端管控服务器获知所述应用部署情况。
又一方面,本申请还提供了一种应用部署方法,应用于大型主机,包括:
接收部署控制服务器发送的目标应用的源代码;
当接收到所述部署控制服务器发送的源码编译指令时,从所述源码编译指令中解析出所述目标应用的业务功能属性,所述业务功能属性用于指示所述目标应用所能实现的功能类别;
根据所述目标应用的功能类别,从预置的编译模型中,确定用于编译所述源代码的目标编译模型;
利用所述目标编译模型编译所述源代码,以得到所述目标应用的可执行代码;
当接收到所述部署控制服务器发送的应用部署指令时,依据所述目标应用的可执行代码,部署所述目标应用。
优选的,在部署所述目标应用之后,还包括:
接收部署控制服务器发送的携带有配置参数的应用生效指令;
响应于所述应用生效指令,根据所述配置参数,在大型主机中配置所述目标应用。
优选的,在所述大型主机存储和编译所述源代码,以及部署所述目标应用的过程中,监控所述大型主机的执行状态,并在指令执行结果文件中记录所述执行状态;
将所述指令执行结果文件发送给所述部署控制服务器。
又一方面,本申请还提供了一种应用部署装置,包括:
请求接收单元,用于接收前端管控服务器发送的应用部署请求,所述应用部署请求携带有待部署的目标应用对应的应用标识、业务功能属性以及库地址标识;
源码获取单元,用于响应于所述应用部署请求,根据所述应用标识,从所述库地址标识所指向的源码库中,获取所述目标应用的源代码;
源码上传单元,用于向大型主机发送所述源代码;
编译控制单元,用于向所述大型主机发送源码编译指令,所述源码编译指令携带有所述业务功能属性,所述源代码编译指令至少用于指示所述大型主机基于所述目标应用的业务功能属性,编译所述目标应用的源代码;
部署控制单元,用于在接收到所述大型主机反馈的完成编译指示时,向所述大型主机发送应用部署指令,所述应用部署指令用于指示所述大型主机基于编译后的所述目标应用的源代码,在大型主机中部署所述目标应用。
又一方面,本申请还提供了一种应用部署装置,应用于大型主机,包括:
源码接收单元,用于接收部署控制服务器发送的目标应用的源代码;
编译解析单元,用于当接收到所述部署控制服务器发送的源码编译指令时,从所述源码编译指令中解析出所述目标应用的业务功能属性,所述业务功能属性用于指示所述目标应用所能实现的功能类别;
模型确定单元,用于根据所述目标应用的功能类别,从预置的编译模型中,确定用于编译所述源代码的目标编译模型;
源码编译单元,用于利用所述目标编译模型编译所述源代码,以得到所述目标应用的可执行代码;
应用部署单元,用于当接收到所述部署控制服务器发送的应用部署指令时,基于所述目标应用的可执行代码,部署所述目标应用。
又一方面,本申请还提供了一种应用部署系统,包括:
前端管控服务器、部署控制服务器和大型主机;
其中,所述前端管控服务器,用于获取用户通过应用提交界面输入的应用提交信息,所述应用提交信息包括:待部署的目标应用的应用标识、业务功能属性以及库地址标识;向所述部署控制服务器发送应用部署请求,所述应用部署请求携带有所述应用标识、业务功能属性及所述库地址标识;
所述部署控制服务器,用于响应于所述应用部署请求,根据所述应用标识,从所述库地址标识所指向的源码库中,获取所述目标应用的源代码;向大型主机发送所述源代码;向所述大型主机发送源码编译指令,所述源码编译指令携带有所述业务功能属性;在接收到所述大型主机反馈的完成编译指示时,向所述大型主机发送应用部署指令;
所述大型主机,用于接收部署控制服务器发送的目标应用的源代码;当接收到所述部署控制服务器发送的源码编译指令时,从所述源码编译指令中解析出所述目标应用的业务功能属性,所述业务功能属性用于指示所述目标应用所能实现的功能类别;根据所述目标应用的功能类别,从预置的编译模型中,确定用于编译所述源代码的目标编译模型;利用所述目标编译模型编译所述源代码,以得到所述目标应用的可执行代码;当接收到所述部署控制服务器发送的应用部署指令时,基于所述目标应用的可执行代码,部署所述目标应用。
由以上可知,在本申请实施例中,部署控制服务器在接收到前端管控服务器发送的应用部署请求之后,可以根据该应用部署请求中携带的应用标识以及库地址标识,从相应的源码库中获取所需部署的目标应用的源代码,并将源代码上传到大型主机,同时,该部署控制器会控制大型主机对源代码的编译,以及最终部署该目标应用,从而实现了在前端管控服务器发送了应用部署请求之后,可以通过部署控制服务器和大型主机的交互,来实现自动向大型主机中部署应用,避免了部署过程中不同环节之间需要用户参与和管控,从而降低了用户口头交流以及信息确认所导致的时间延误,提高了向大型主机中部署应用的便捷性和高效性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本申请实施例提供的一种应用部署系统的一种组成架构示意图;
图2示出了本申请实施例提供的一种应用部署方法的一种流程示意图;
图3示出了本申请实施例提供的一种应用部署方法的一种流程示意图;
图4示出了本申请实施例提供的一种应用部署方法的一种流程示意图;
图5示出了本申请实施例提供的一种应用部署装置的一种组成示意图;
图6示出了本申请实施例提供的又一种应用部署装置的一种组成示意图。
具体实施方式
本申请实施例的方案适用于向大型主机中部署应用,以实现向大型主机中部署应用的流程自动化,提高向大型主机中部署应用的便捷性和高效性,同时减少人力资源消耗。
为了便于理解,本申请的方案,下面先对本申请方案所适用的系统进行介绍。
如,参见图1,其示出了本申请一种应用部署系统一个实施例的组成架构示意图。由图1可以看出,在本实施例中该应用部署系统可以包括:
前端管控服务器101、部署控制服务器102和大型主机103,其中,前端管控服务器、部署控制服务器102和大型主机103之间可以通过网络实现数据传输。
其中,该前端管控服务器101,用于获取用户通过应用提交界面输入的应用提交信息,该应用提交信息至少包括:待部署的目标应用的应用标识、业务功能属性以及库地址标识,并向该部署控制服务器发送应用部署请求,该应用部署请求携带有该应用标识、业务功能属性及该库地址标识。
如,前端管控服务器101可以为web服务器,应用的开发者可以通过浏览器登陆该web服务器。而web服务器可以向登陆的用户反馈一个应用提交界面,在该应用提交界面中可以包括需要提交并部署到大型主机中的应用的相关信息,如,应用的应用标识、应用源码存储的库地址等等。
相应的,部署控制服务器102,用于响应于该应用部署请求,根据该应用标识,从库地址标识所指向的源码库中,获取该目标应用的源代码,并向大型主机发送该源代码;并向大型主机发送源码编译指令,源码编译指令携带有所述业务功能属性,以控制大型主机编译该目标应用的源代码;在接收到该大型主机反馈的完成编译指示时,向大型主机发送应用部署指令;
该大型主机103,用于接收部署控制服务器发送的目标应用的源代码;当接收到部署控制服务器发送的源码编译指令时,从该源码编译指令中解析出该目标应用的业务功能属性,该业务功能属性用于指示所述目标应用所能实现的功能类别;根据该目标应用的功能类别,从预置的编译模型中,确定用于编译该源代码的目标编译模型;利用该目标编译模型编译该源代码,以得到该目标应用的可执行代码;当接收到该部署控制服务器发送的应用部署指令时,基于该目标应用的可执行代码,部署该目标应用。
其中,该部署控制服务器可以为任意具备数据处理功能的服务器,本申请对此不加以限制。
不同于常规的主机,大型机使用专用的处理器指令集、操作系统和应用,如,大型主机可以采用Z/OS系统。
可以理解的是,由于应用部署过程中需要在源码库中存储不同应用的源代码,因此,本申请的系统中还可以包括源码库104,该源码库可以为任意具备数据存储能力的服务器或者服务器集群等。
结合以上内容,下面结合流程图对本申请的应用部署方法进行详细介绍。
下面首先从部署控制服务器侧对本申请的应用部署方法进行介绍。如,参见图2,其示出了本申请一种应用部署方法一个实施例的流程示意图,本实施例应用于部署控制服务器,本实施例的方法可以包括:
S201,接收前端管控服务器发送的应用部署请求。
其中,该应用部署请求携带有待部署的目标应用对应的应用标识、业务功能属性以及库地址标识。
如,前端管控服务器可以获取应用开发者提交的应用的相关信息,如上面提到的应用标识、业务功能属性和库地址标识等。该前端管控服务器提取出应用开发者开发的应用的相关信息生成接口文件,同时向该前端管控服务器发送应用部署请求,该应用部署请求可以携带前端管控服务器生成的接口文件。
其中,为了便于区分,将本申请实施例中待部署的应用称为目标应用。
目标应用的应用标识用于唯一标识该目标应用,如该应用标识可以为目标应用的名称、编号等等。
库地址标识用于标识存储该目标应用的源代码所对应的源码库。其中,源代码中可以用于存储应用部署系统中不同应用的源代码,如,开发人员开发出应用的源代码之后,可以向源码库上传源代码,并向该前端管控服务器提交申请,并提交待部署的应用的相关信息,以便完成该应用向大型主机中部署。
其中,业务功能属性用于标识应用所具有的业务类别,如,应用在大型主机中所执行的功能所属的业务类别或者功能类别等。其中,每种应用对应一种业务功能属性。而属于同一种业务功能属性的应用有可能有多种。
可以理解的是,由于开发人员向前端管控服务器提交的应用的信息还可能会包含应用的配置参数等信息,配置参数可以为应用在大型主机中生效所需的一些参数配置。相应的,应用部署请求还可以携带应用的配置参数等等信息。
S202,响应于该应用部署请求,根据该应用标识,从该库地址标识所指向的源码库中,获取目标应用的源代码。
如,根据库地址标识,定位出存储目标应用的源代码的库地址,根据该库地址访问源码库,然后依据应用标识,从源码库中下载目标应用的源代码。
S203,向大型主机发送该源代码。
即,部署控制服务器向大型主机上传该源代码。
可选的,部署控制器可以监控源代码向大型主机上传的上传情况,如是否全部上传等,具体的,可以由部署控制器主动询问大型主机上否完成上传,也可以是由大型主机完成上传之后,向部署控制服务器反馈上传情况信息。
可以理解的是,由于在大型主机内部维护源码库的复杂度较高,因此,本申请独立于大型主机设置了源码库,并通过部署控制服务器从源码库中下载应用的源代码再上传到该大型主机中,从而无需在大型主机中维护源码库,有利于降低维护部署到大型主机中的各个应用的源代码的复杂度。
S204,向该大型主机发送源码编译指令。
其中,源码编译指令携带有该业务功能属性。该源代码编译指令至少用于指示该大型主机基于该目标应用的业务功能属性,编译该目标应用的源代码。
与普通的服务器中部署应用不同,大型主机中针对不同类型功能的业务,配置有不同的编译模型,因此,在向大型主机中发送源码编译指令时,需要指示出该目标应用的业务功能属性,以便大型主机基于该业务功能属性,确定编译该目标应用所需的编译模型。
可选的,部署控制服务器可以确认已经将目标应用的源代码成功上传该大型主机之后,向大型主机发送源码编译指令。如,在接收到大型主机反馈的源码上传成功指示后,向大型主机发送该源码编译指令。
可以理解的是,考虑到开发人员开发出的目标应用的源代码中有可能会存在错误,而一旦源代码中存在错误,则可能导致源代码编译不正常,甚至影响后续应用的部署,因此,本申请实施例在向大型主机发送源码编译指令之前,还可以先向大型主机发送代码校验指令。
其中,该代码校验指令用于指示该大型主机对该目标应用的源代码进行错误校验。相应的,当部署控制服务器接收到大型主机返回的校验通过指示时,向该大型主机发送源码编译指令。
其中,大型主机对源代码进行错误检验的方式可以有多种,如大型主机中可以预置源代码的校验规则,该校验规则中可以包括源代码的构成规则、语法规则等等,因此,大型主机可以检验该目标应用的源代码中是否存在不符合校验规则的字段或者代码段。相应的,如果源代码均符合该校验规则,则校验通过,认为目标应用的源代码中不存在错误。
S205,在接收到该大型主机反馈的完成编译指示时,向该大型主机发送应用部署指令。
其中,该应用部署指令用于指示大型主机基于编译后的该目标应用的源代码,在大型主机中部署该目标应用。
可以理解的是,大型主机完成目标应用的源代码的编译之后,可以向部署控制服务器返回编译完成指示,以通知部署控制服务器已经完成对源代码的编译。相应的,部署控制服务器确认大型主机对目标应用的源代码编译完成后,就可以控制大型主机对目标应用进行部署。
可以得到该目标应用的源代码对应的可执行代码,在大型主机中部署该目标应用。如,在大型主机中部署编译出的目标应用的可执行代码在该大型主机中的路径、为目标应用分配版本编号等等。
可选的,在部署控制服务器向所述大型主机发送应用部署指令之后,还可以在接收到该大型主机反馈的部署完成指示时,向该大型主机发送携带有该配置参数的应用生效指令。其中,该应用生效指令用于指示该大型主机配置目标应用的所述配置参数,以完成目标应用的配置,最终使得目标应用可以在大型主机中生效。
可以理解的是,为了能够使得用户可以应用部署所进行的阶段以及各个阶段的实际情况,大型主机执行接收源代码并存储、源代码校验、源代码编译、应用部署以及应用生效等等各个阶段,均可以向大型主机反馈各个阶段的执行情况。具体的,在每个阶段,大型主机均可以生成一个指令执行结果文件。相应的,部署控制服务器可以接收大型主机返回的该指令执行结果文件。然后,该部署控制服务器可以将接收到的该指令执行结果文件发送给该前端管控服务器,以便用户通过所述前端管控服务器获知该应用部署情况。
其中,根据应用部署所涉及到的阶段不同,部署控制服务器接收到的指令执行结果文件所包含的内容也会不同。如,该指令执行结果文件可以记录有对于存储源代码的执行情况、源代码校验的校验情况、编译该源代码的编译情况、校验该源代码的校验情况、部署应用的部署情况以及应用生效情况中的一种或者多种。例如,指令执行结果文件还可以包括源代码编译所否完成,如未完成,那么编译的程度以及编译出错的原因等等。
相应的,前端管控服务器在每次接收到指令执行结果文件之后,还可以通过邮件、网页展示等方式向用户反馈指令执行结果文件中包含的内容,以使得用户及时了解每次应用部署过程中的详细执行结果信息。
由以上可知,在本申请实施例中,部署控制服务器在接收到前端管控服务器发送的应用部署请求之后,可以根据该应用部署请求中携带的应用标识以及库地址标识,从相应的源码库中获取所需部署的目标应用的源代码,并将源代码上传到大型主机,同时,该部署控制器会控制大型主机对源代码的编译,以及最终部署该目标应用,从而实现了在前端管控服务器发送了应用部署请求之后,可以通过部署控制服务器和大型主机的交互,来实现自动向大型主机中部署应用,避免了部署过程中不同环节之间需要用户参与和管控,从而降低了用户口头交流以及信息确认所导致的时间延误,提高了向大型主机中部署应用的便捷性和高效性。
下面从大型主机侧,对本申请实施例的方案进行介绍。如,参见图3,其示出了本申请一种应用部署方法又一个实施例的流程示意图,本实施例的方法应用于大型主机,可以包括如下步骤:
S301,接收部署控制服务器发送的目标应用的源代码。
如,接收部署控制服务器发送的源代码,并存储,以完成向大型主机中上传该源代码的操作。
S302,当接收到该部署控制服务器发送的源码编译指令时,从该源码编译指令中解析出该目标应用的业务功能属性。
其中,该业务功能属性用于指示所述目标应用所能实现的功能类别。
可选的,在该步骤S302之前,部署控制服务器还可以向大型主机发送源码校验指令。相应的,大型主机可以响应于源码校验指令,对目标应用的源代码进行错误校验,具体如前面实施例所描述,在此不再赘述。
S303,根据该目标应用的功能类别,从预置的编译模型中,确定用于编译该源代码的目标编译模型。
在大型主机中针对不同功能类别的应用的源代码,需要采用不同的编译模型,因此,根据目标应用的业务功能属性,可以确定与该业务功能属性所表征的功能类别对应的编译模型。为了便于区分,本实施例将需要对目标应用的源代码进行编译的编译模型称为目标编译模型。
S304,利用该目标编译模型编译该目标应用的源代码,以得到该目标应用的可执行代码。
其中,每个编译模型均可以包含了编译相应的源代码的编译流程以及具体规则,每套编译模型可以认为是一套编译程序。
相应的,通过调用该目标编译模型可以实现对该目标应用的源代码的编译,对于具体编译过程本申请实施例不加以限制。
可选的,在编译出目标应用的可执行代码后,由于目标应用更新,导致大型主机中需要调用所述目标应用的至少一个关联应用中的一些链接信息也会存在变化,因此,还可以基于编译出的所述目标应用的可执行代码,重新配置该关联应用中调用所述目标应用的调用链接信息。如,配置关联应用中所需调用该目标应用的具体可执行代码的代码段标识等等。
S305,当接收到该部署控制服务器发送的应用部署指令时,依据该目标应用的可执行代码,部署该目标应用。
如,在大型主机中部署可执行代码的路径,目标应用的版本等等信息。
与前面介绍相似,大型主机在执行任意步骤的过程中,即,在大型主机存储和编译源代码,以及部署目标应用的过程中,可以监控大型主机的执行状态,并在指令执行结果文件中记录执行状态。如,接收到源代码的阶段,可以监控源代码是否均成功接收,如果存在异常,具体为什么异常情况。如果是编译源代码阶段,执行状态可以是是否完成源代码编译,如果编译出错,出错的环节以及源代码编译的具体状态等等。相应的,大型主机可以将指令执行结果文件发送给该部署控制服务器,以便通过部署控制服务器将指令执行结果文件反馈给前端管控服务器。
可选的,大型主机在部署目标应用之后,还可以:接收部署控制服务器发送的携带有配置参数的应用生效指令;并响应于该应用生效指令,根据该配置参数,在大型主机中配置目标应用。
如,大型主机根据功能划分为构建区、组装测试区等等功能区,根据目标应用所需部署的至少一个功能区,调用相应功能区的接口,并按照相应的配置参数,完成应用配置,以实现应用的生效。
为了便于理解本申请的方案,下面结合前端管控服务器、部署控制服务器和大型主机之间的交互流程对本申请的方案进行介绍。如,参见图4,其示出了本申请一种应用部署方法的流程交互示意图,本实施例的方法可以包括:
S401,前端管控服务器依据用户提交的应用信息集合,生成接口文件。
该接口文件中至少包括:待部署的目标应用的应用标识、业务功能属性、库地址标识和配置参数。
如,前端管控服务器为web服务器,用户通过浏览器登录该web服务器之后,可以在展现出的应用提交界面中填写相应的信息,如,待部署的目标应用的应用标识、业务功能属性、库地址标识和配置参数等等。相应的,前端管控服务器根据用户在该应用提交界面中填写的信息,汇总用户提交的信息,并生成接口文件。
其中,前端管控服务器可以通过接口文件的形式向部署控制服务器提交待部署的应用的相关信息。
S402,前端管控服务器向部署控制服务器发送应用部署请求,该应用部署请求携带有该接口文件。
S403,部署控制服务器响应于应用部署请求,并根据接口文件中目标应用的应用标识,从库地址标识所指向的源码库中,获取目标应用的源代码。
S404,部署控制服务器将目标应用的源代码上传给大型主机。
以上步骤S402到步骤S404可以参见前面实施例的相关介绍,在此不再赘述。
S405,大型主机在确认获取到目标应用的源代码并完成存储后,向部署控制服务器返回源码上传完成指示。
本实施例中,大型主机接收到部署控制服务器上传的源代码之后,会存储或者缓存该源代码,以便完成向大型主机上传该源代码的操作。同时,为了使得部署控制服务器获取源代码上传情况,在大型主机获取到目标应用的全部源代码之后,可以向部署控制服务器反馈源码上传完成指示,以通知部署控制服务器该目标应用的源代码已上传成功。
可选的,在大型主机在获取源代码的过程中,还可以在指令执行结果文件中记录源代码上传情况,如源代码接收成功或者源代码上传失败的具体信息以及原因等等,并在确认源代码接收成功或者失败时,向部署控制器返回该指令执行结果文件。
S406,部署控制服务器响应于源码上传完成指示,向大型主机发送源码校验指令。
S407,大型主机响应于源码校验指令,对目标应用的源代码进行校验,并在校验通过后向部署控制服务器返回校验通过指示。
在本实施例中,大型主机确认该源代码不存在校验错误时,则可以向部署控制服务器发送校验通过指示,以便部署控制服务器获取到大型主机的执行状态,并在源代码检验通过后,执行后续的源代码编译控制。
该步骤S406和S407可以参见前面实施例的相关介绍,本实施例对于相同的内容不再重复介绍。
可选的,在大型主机执行校验操作之后,大型主机同样可以将对源代码的校验执行情况记录到指令执行结果文件中,并在校验结束后,向部署控制服务器返回指令执行结果文件,以便经部署控制服务器将该指令执行结果文件反馈给前端管控服务器,从而使得用户可或者源代码是否存在校验错误,以及校验进度等等。
S408,部署控制服务器响应于校验通过指示,向大型主机发送携带有该目标应用的业务功能属性的源码编译指令。
S409,大型主机响应于源码编译指令,编译该目标应用的源代码,得到该目标应用的可执行代码,并在确认完成源代码编译后,向部署控制服务器返回编译完成指示。
可以理解的是,本实施例中大型主机同样还可以配置大型主机中与该目标应用关联的关联应用中对于该目标应用的调用链接信息。
S410,部署控制服务器在接收到该编译完成指示时,向大型主机发送应用部署指令。
S411,大型主机基于目标应用的可执行代码,在大型主机中部署该目标应用,并在完成应用的部署之后,向部署控制服务器返回部署完成指示。
可以理解的是,在该步骤S409和S411中,大型主机同样会记录编译以及部署的具体执行状态,并将包含编译或者应用部署对应的具体执行状态的指令执行结果文件反馈给部署控制服务器,并由部署控制服务器反馈给前端控制服务器。
S412,部署控制服务器响应于该部署完成指示,向大型主机发送应用生效指令,该应用生效指令携带有目标应用的配置参数。
S413,大型主机基于目标应用的配置参数,在大型主机中配置部署后的目标应用的参数,以实现目标应用在大型主机中生效。
对应本申请的应用部署方法中部署控制服务器侧的操作,本申请还提供了一种应用部署装置,如,参见图5,其示出了本申请一种应用部署装置一个实施例的组成结构示意图,本实施例的装置可以包括:
请求接收单元501,用于接收前端管控服务器发送的应用部署请求,所述应用部署请求携带有待部署的目标应用对应的应用标识、业务功能属性以及库地址标识;
源码获取单元502,用于响应于所述应用部署请求,根据所述应用标识,从所述库地址标识所指向的源码库中,获取所述目标应用的源代码;
源码上传单元503,用于向大型主机发送所述源代码,以便所述大型主机存储所述源代码;
编译控制单元504,用于向所述大型主机发送源码编译指令,所述源码编译指令携带有所述业务功能属性,所述源代码编译指令至少用于指示所述大型主机基于所述目标应用的业务功能属性,编译所述目标应用的源代码;
部署控制单元505,用于在接收到所述大型主机反馈的完成编译指示时,向所述大型主机发送应用部署指令,所述应用部署指令用于指示所述大型主机基于编译后的所述目标应用的源代码,在大型主机中部署所述目标应用。
可选的,该装置还可以包括:
校验控制单元,用于在所述编译控制单元向所述大型主机发送源码编译请求之前,向所述大型主机发送代码校验指令,所述代码校验指令用于指示所述大型主机对所述目标应用的源代码进行错误校验;
所述编译控制单元具体为,用于当接收到大型主机返回的校验通过指示时,向所述大型主机发送源码编译指令。
可选的,所述请求接收单元接收到的应用部署请求中还携带有所述目标应用的配置参数;
本实施例的装置还可以包括:
生效控制单元,用于在所述部署控制单元向所述大型主机发送了应用部署指令之后,且当接收到所述大型主机的部署完成指示时,向所述大型主机发送携带有所述配置参数的应用生效指令,所述应用生效指令用于指示所述大型主机配置所述目标应用的所述配置参数,以完成所述目标应用的配置。
可选的,本实施例的装置还可以包括:
执行结果接收单元,用于接收所述大型主机返回的指令执行结果文件,所述指令执行结果文件记录有所述大型主机对于存储所述源代码的执行情况、编译所述源代码的编译情况、校验所述源代码的校验情况和部署所述应用的部署情况中的一种或者多种;
执行结果反馈单元,用于将接收到的所述指令执行结果文件发送给所述前端管控服务器,以便用户通过所述前端管控服务器获知所述应用部署情况。
对应本申请的应用部署方法中大型主机侧的操作,本申请还提供了一种应用部署装置,如,参见图6,其示出了本申请一种应用部署装置一个实施例的组成结构示意图,本实施例的装置可以应用于大型主机,该装置可以包括:
源码接收单元601,用于接收部署控制服务器发送的目标应用的源代码;
编译解析单元602,用于当接收到所述部署控制服务器发送的源码编译指令时,从所述源码编译指令中解析出所述目标应用的业务功能属性,所述业务功能属性用于指示所述目标应用所能实现的功能类别;
模型确定单元603,用于根据所述目标应用的功能类别,从预置的编译模型中,确定用于编译所述源代码的目标编译模型;
源码编译单元604,用于利用所述目标编译模型编译所述源代码,以得到所述目标应用的可执行代码;
应用部署单元605,用于当接收到所述部署控制服务器发送的应用部署指令时,基于所述目标应用的可执行代码,部署所述目标应用。
可选的,该装置还可以包括:
生效指令接收单元,用于在所述应用部署单元部署所述目标应用之后,接收部署控制服务器发送的携带有配置参数的应用生效指令;
应用配置单元,用于响应于所述应用生效指令,根据所述配置参数,在大型主机中配置所述目标应用。
可选的,所述大型主机还包括:
执行状态记录单元,用于在所述大型主机存储和编译所述源代码,以及部署所述目标应用的过程中,监控所述大型主机的执行状态,并在指令执行结果文件中记录所述执行状态;
执行结果反馈单元,用于将所述指令执行结果文件发送给所述部署控制服务器。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (8)
1.一种应用部署方法,其特征在于,包括:
接收前端管控服务器发送的应用部署请求,所述应用部署请求携带有待部署的目标应用对应的应用标识、业务功能属性以及库地址标识;
响应于所述应用部署请求,根据所述应用标识,从所述库地址标识所指向的源码库中,获取所述目标应用的源代码;
向大型主机发送所述源代码;
向所述大型主机发送源码编译指令,所述源码编译指令携带有所述业务功能属性,所述源代码编译指令用于指示所述大型主机基于所述目标应用的业务功能属性确定出所述业务功能属性所表征的功能类别对应的编译模型,并通过所述编译模型编译所述目标应用的源代码;所述编译模型包含编译相应的源代码的编译流程以及具体规则;不同功能类别的应用的源代码采用不同的编译模型;
在接收到所述大型主机反馈的完成编译指示时,向所述大型主机发送应用部署指令,所述应用部署指令用于指示所述大型主机基于编译后的所述目标应用的源代码,在所述大型主机中部署所述目标应用;
其中,在所述向大型主机发送所述源代码之后,还包括:
接收所述大型主机返回的指令执行结果文件,所述指令执行结果文件记录有所述大型主机对于存储所述源代码的执行情况、编译所述源代码的编译情况、校验所述源代码的校验情况和部署所述应用的部署情况中的一种或者多种;
将接收到的所述指令执行结果文件发送给所述前端管控服务器,以便用户通过所述前端管控服务器获知所述应用部署情况。
2.根据权利要求1所述的应用部署方法,其特征在于,在所述向所述大型主机发送源码编译指令之前,还包括:
向所述大型主机发送代码校验指令,所述代码校验指令用于指示所述大型主机对所述目标应用的源代码进行错误校验;
所述向所述大型主机发送源码编译指令,包括:
当接收到大型主机返回的校验通过指示时,向所述大型主机发送源码编译指令。
3.根据权利要求1所述的应用部署方法,其特征在于,所述应用部署请求中还携带有所述目标应用的配置参数;
在所述向所述大型主机发送应用部署指令之后,还包括:
当接收到所述大型主机的部署完成指示时,向所述大型主机发送携带有所述配置参数的应用生效指令,所述应用生效指令用于指示所述大型主机配置所述目标应用的所述配置参数,以完成所述目标应用的配置。
4.一种应用部署方法,其特征在于,应用于大型主机,包括:
接收部署控制服务器发送的目标应用的源代码;
当接收到所述部署控制服务器发送的源码编译指令时,从所述源码编译指令中解析出所述目标应用的业务功能属性,所述业务功能属性用于指示所述目标应用所能实现的功能类别;
根据所述目标应用的功能类别,从预置的编译模型中,确定用于编译所述源代码的目标编译模型;所述编译模型包含编译相应的源代码的编译流程以及具体规则;不同功能类别的应用的源代码采用不同的编译模型;
利用所述目标编译模型编译所述源代码,以得到所述目标应用的可执行代码;
当接收到所述部署控制服务器发送的应用部署指令时,依据所述目标应用的可执行代码,部署所述目标应用;
其中,在所述大型主机存储和编译所述源代码,以及部署所述目标应用的过程中,监控所述大型主机的执行状态,并在指令执行结果文件中记录所述执行状态;
将所述指令执行结果文件发送给所述部署控制服务器。
5.根据权利要求4所述的应用部署方法,其特征在于,在部署所述目标应用之后,还包括:
接收部署控制服务器发送的携带有配置参数的应用生效指令;
响应于所述应用生效指令,根据所述配置参数,在大型主机中配置所述目标应用。
6.一种应用部署装置,其特征在于,包括:
请求接收单元,用于接收前端管控服务器发送的应用部署请求,所述应用部署请求携带有待部署的目标应用对应的应用标识、业务功能属性以及库地址标识;
源码获取单元,用于响应于所述应用部署请求,根据所述应用标识,从所述库地址标识所指向的源码库中,获取所述目标应用的源代码;
源码上传单元,用于向大型主机发送所述源代码;
编译控制单元,用于向所述大型主机发送源码编译指令,所述源码编译指令携带有所述业务功能属性,所述源代码编译指令用于指示所述大型主机基于所述目标应用的业务功能属性确定出所述业务功能属性所表征的功能类别对应的编译模型,并通过所述编译模型编译所述目标应用的源代码;所述编译模型包含编译相应的源代码的编译流程以及具体规则;不同功能类别的应用的源代码采用不同的编译模型;
部署控制单元,用于在接收到所述大型主机反馈的完成编译指示时,向所述大型主机发送应用部署指令,所述应用部署指令用于指示所述大型主机基于编译后的所述目标应用的源代码,在所述大型主机中部署所述目标应用;
其中,在所述向大型主机发送所述源代码之后,还包括:
接收所述大型主机返回的指令执行结果文件,所述指令执行结果文件记录有所述大型主机对于存储所述源代码的执行情况、编译所述源代码的编译情况、校验所述源代码的校验情况和部署所述应用的部署情况中的一种或者多种;
将接收到的所述指令执行结果文件发送给所述前端管控服务器,以便用户通过所述前端管控服务器获知所述应用部署情况。
7.一种应用部署装置,其特征在于,应用于大型主机,包括:
源码接收单元,用于接收部署控制服务器发送的目标应用的源代码;
编译解析单元,用于当接收到所述部署控制服务器发送的源码编译指令时,从所述源码编译指令中解析出所述目标应用的业务功能属性,所述业务功能属性用于指示所述目标应用所能实现的功能类别;
模型确定单元,用于根据所述目标应用的功能类别,从预置的编译模型中,确定用于编译所述源代码的目标编译模型;所述编译模型包含编译相应的源代码的编译流程以及具体规则;不同功能类别的应用的源代码采用不同的编译模型;
源码编译单元,用于利用所述目标编译模型编译所述源代码,以得到所述目标应用的可执行代码;
应用部署单元,用于当接收到所述部署控制服务器发送的应用部署指令时,基于所述目标应用的可执行代码,部署所述目标应用;
其中,在所述大型主机存储和编译所述源代码,以及部署所述目标应用的过程中,监控所述大型主机的执行状态,并在指令执行结果文件中记录所述执行状态;
将所述指令执行结果文件发送给所述部署控制服务器。
8.一种应用部署系统,其特征在于,包括:
前端管控服务器、部署控制服务器和大型主机;
其中,所述前端管控服务器,用于获取用户通过应用提交界面输入的应用提交信息,所述应用提交信息包括:待部署的目标应用的应用标识、业务功能属性以及库地址标识;向所述部署控制服务器发送应用部署请求,所述应用部署请求携带有所述应用标识、业务功能属性及所述库地址标识;
所述部署控制服务器,用于响应于所述应用部署请求,根据所述应用标识,从所述库地址标识所指向的源码库中,获取所述目标应用的源代码;向大型主机发送所述源代码;向所述大型主机发送源码编译指令,所述源码编译指令携带有所述业务功能属性;在接收到所述大型主机反馈的完成编译指示时,向所述大型主机发送应用部署指令;
所述大型主机,用于接收部署控制服务器发送的目标应用的源代码;当接收到所述部署控制服务器发送的源码编译指令时,从所述源码编译指令中解析出所述目标应用的业务功能属性,所述业务功能属性用于指示所述目标应用所能实现的功能类别;根据所述目标应用的功能类别,从预置的编译模型中,确定用于编译所述源代码的目标编译模型;所述编译模型包含编译相应的源代码的编译流程以及具体规则;不同功能类别的应用的源代码采用不同的编译模型;利用所述目标编译模型编译所述源代码,以得到所述目标应用的可执行代码;当接收到所述部署控制服务器发送的应用部署指令时,基于所述目标应用的可执行代码,部署所述目标应用;
其中,在所述大型主机存储和编译所述源代码,以及部署所述目标应用的过程中,监控所述大型主机的执行状态,并在指令执行结果文件中记录所述执行状态;
将所述指令执行结果文件发送给所述部署控制服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811365426.1A CN109614109B (zh) | 2018-11-16 | 2018-11-16 | 应用部署方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811365426.1A CN109614109B (zh) | 2018-11-16 | 2018-11-16 | 应用部署方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109614109A CN109614109A (zh) | 2019-04-12 |
CN109614109B true CN109614109B (zh) | 2022-02-01 |
Family
ID=66003968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811365426.1A Active CN109614109B (zh) | 2018-11-16 | 2018-11-16 | 应用部署方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614109B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111897555A (zh) * | 2019-05-06 | 2020-11-06 | 阿里巴巴集团控股有限公司 | 客户端的动态更新方法、装置、系统及终端设备 |
CN110489090B (zh) * | 2019-08-19 | 2023-08-15 | 中国工商银行股份有限公司 | 一种基于应用模型的应用软件开发方法及系统 |
CN112579099A (zh) * | 2019-09-30 | 2021-03-30 | 北京国双科技有限公司 | 代码的部署方法、装置、存储介质及电子设备 |
CN111240698A (zh) * | 2020-01-14 | 2020-06-05 | 北京三快在线科技有限公司 | 模型部署的方法、装置、存储介质及电子设备 |
CN111897568B (zh) * | 2020-07-06 | 2023-12-26 | 北京中关村银行股份有限公司 | 一种系统校验的方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104793946A (zh) * | 2015-04-27 | 2015-07-22 | 广州杰赛科技股份有限公司 | 基于云计算平台的应用部署方法和系统 |
CN104978191A (zh) * | 2015-06-24 | 2015-10-14 | 小米科技有限责任公司 | 应用部署方法和服务器 |
CN106406971A (zh) * | 2016-09-26 | 2017-02-15 | 杭州迪普科技有限公司 | 一种代码文件的编译方法及装置 |
CN108037961A (zh) * | 2017-12-07 | 2018-05-15 | 北京锐安科技有限公司 | 一种应用程序配置方法、装置、服务器和存储介质 |
EP3355185A1 (en) * | 2017-01-30 | 2018-08-01 | Wipro Limited | Method and system for deploying an application package in each stage of aplication life cycle |
-
2018
- 2018-11-16 CN CN201811365426.1A patent/CN109614109B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104793946A (zh) * | 2015-04-27 | 2015-07-22 | 广州杰赛科技股份有限公司 | 基于云计算平台的应用部署方法和系统 |
CN104978191A (zh) * | 2015-06-24 | 2015-10-14 | 小米科技有限责任公司 | 应用部署方法和服务器 |
CN106406971A (zh) * | 2016-09-26 | 2017-02-15 | 杭州迪普科技有限公司 | 一种代码文件的编译方法及装置 |
EP3355185A1 (en) * | 2017-01-30 | 2018-08-01 | Wipro Limited | Method and system for deploying an application package in each stage of aplication life cycle |
CN108037961A (zh) * | 2017-12-07 | 2018-05-15 | 北京锐安科技有限公司 | 一种应用程序配置方法、装置、服务器和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109614109A (zh) | 2019-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614109B (zh) | 应用部署方法、装置和系统 | |
US8108456B2 (en) | Method and apparatus for migrating the system environment on which the applications depend | |
JP5965080B2 (ja) | コンパイル及び配備サービスを用いたソフトウェアのビルド及びロード処理のためのシステム、方法及びコンピュータプログラムプロダクト | |
CN111651366B (zh) | Sdk测试方法、装置、设备及存储介质 | |
US8813030B2 (en) | Detecting plug-in and fragment issues with software products | |
US20130205172A1 (en) | Integrated System and Method for Validating the Functionality and Performance of Software Applications | |
US20150100829A1 (en) | Method and system for selecting and executing test scripts | |
CN109460268B (zh) | 应用参数配置方法、装置和系统 | |
US20040060038A1 (en) | Verifiable processes in a heterogeneous distributed computing environment | |
CN111324522A (zh) | 一种自动化测试系统及方法 | |
US8688866B1 (en) | Generating recommendations for peripheral devices compatible with a processor and operating system of a computer | |
CN110933095A (zh) | 一种报文解析方法及装置 | |
CN113312064B (zh) | 物理机的安装配置方法、装置以及计算机可读介质 | |
US20150100831A1 (en) | Method and system for selecting and executing test scripts | |
CN108228190B (zh) | 持续集成和交付方法、系统、设备及计算机可读存储介质 | |
CN104125504A (zh) | 一种基于持续集成的部署方法、装置及系统 | |
CN110908670A (zh) | 一种自动发布服务的方法及装置 | |
CN111736810A (zh) | 基于jenkins实时任务动态创建docker容器节点执行任务的方法 | |
CN106445541B (zh) | 软件构建方法、软件构建装置和软件构建系统 | |
CN107678969B (zh) | 测试版本发布方法、装置、版本控制设备和测试机 | |
CN110806891B (zh) | 嵌入式设备软件版本的生成方法及装置 | |
CN115756424A (zh) | 一种生成mvp代码的方法、装置及设备 | |
CN115914055A (zh) | 分布式网络测试方法、装置、介质及设备 | |
CN108614704B (zh) | 代码编译方法及装置 | |
US11301246B2 (en) | Automatically generating continuous integration pipelines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |