CN106897053A - 一种代码发布方法与装置 - Google Patents

一种代码发布方法与装置 Download PDF

Info

Publication number
CN106897053A
CN106897053A CN201610538909.1A CN201610538909A CN106897053A CN 106897053 A CN106897053 A CN 106897053A CN 201610538909 A CN201610538909 A CN 201610538909A CN 106897053 A CN106897053 A CN 106897053A
Authority
CN
China
Prior art keywords
version number
end code
code
updating
database
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.)
Granted
Application number
CN201610538909.1A
Other languages
English (en)
Other versions
CN106897053B (zh
Inventor
盛赉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610538909.1A priority Critical patent/CN106897053B/zh
Publication of CN106897053A publication Critical patent/CN106897053A/zh
Application granted granted Critical
Publication of CN106897053B publication Critical patent/CN106897053B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

本申请公开了一种代码发布方法,用以解决现有技术中,将前端代码的版本号部署在后端服务器中的配置文件里,既要变更前端代码,又要变更后端代码时,后端服务器无法正常为用户提供服务的问题。该方法包括:在前端代码更新并发布后,将数据库中保存的前端代码对应的版本号修改为更新后的前端代码对应的版本号;向后端服务器发送通知。本申请还公开了一种代码发布装置。

Description

一种代码发布方法与装置
技术领域
本申请涉及互联网技术领域,尤其涉及一种代码发布方法与装置。
背景技术
在实际应用中,前端代码主要用于显示页面以及人机交互,后端代码主要用于业务逻辑实现。前端代码通常可以包括JavaScript(JS)、层叠样式表(Cascading StyleSheets,CSS)、超文本标记语言(HyperText Markup Language,HTML)等前台代码;后端代码通常可以包括JAVA、C#等后台代码。
为了便于前后端代码的开发以及维护,现有技术中,开发人员分别独立开发前端代码和后端代码,并将前端代码部署在前端设备中,将后端代码部署在后端服务器中。
其中,用户浏览网页时前端设备与后端服务器的一般工作流程如下所述:
当用户在客户端访问如图1a所示的页面对应的网址后,客户端会向后端服务器发送访问请求,后端服务器在接收到该访问请求后,便告知前端设备向客户端发送相应的前端代码,以使得客户端在接收到该前端代码后能够渲染出如图1a所示的页面。其中,如图1a所示的页面用于用户注册账户,该页面中包含用于输入账户名和密码的输入框,以及提交控件和取消控件。当用户在上述输入框中分别输入账户名和密码,点击提交控件后,客户端便将用户提交的数据发送给后端服务器。若后端服务器中的后端代码与前端代码互相匹配,那么在用户提交数据后,后端代码便能够根据用户提交的数据进行正确的业务逻辑,比如,判断用户提交的账户名是否已经被注册过,注册密码是否过于简单等,后端代码在判断结束后,便得到注册成功或失败的结果。若后端代码与前端代码不匹配,那么在用户提交数据后,后端代码无法根据用户提交的数据进行正确的业务逻辑。
为了前端代码和后端代码能够相互匹配,可以采用下述两种方法来解决:
方法一:直接在后端代码中写入前端代码的版本号。在进行前端发布时,直接将前端代码部署在前端设备中。在进行后端发布时,将写有前端代码的版本号的后端代码部署在后端服务器中。当用户在客户端访问图1a中显示的页面对应的网址后,客户端向后端服务器发送访问请求,后端服务器在接收到客户端的访问请求后,根据后端代码中的前端代码的版本号,告知前端设备向客户端发送与该版本号对应的前端代码,使得客户端在接收到该前端代码后渲染出如图1a显示的页面。这样,当用户在图1a显示的页面中可输入账户名和密码,并在点击提交控件后,后端代码便能够根据用户提交的数据,正确的执行业务逻辑。
但是这一方法存在下述问题:在前端代码更新而后端代码的业务逻辑不需要更新时,后端代码的发布效率较低,而且也不能频繁的对前端代码进行更新发布。
继续沿用上例,如图1b所示,若只希望改变页面中的输入框的布局,由如图1a所示的纵向分布,变为如图1b所示的横向分布,而不改变业务逻辑,那么依然可以沿用旧版本的后端代码。
这种情况下,先进行前端发布,在前端发布完成后,需要修改后端代码中前端代码的版本号,将该版本号修改为新版本的前端代码的版本号。可见,虽然后端代码的业务逻辑并没有更改,但后端代码中直接写入的前端代码的版本号发生了变更,导致后端代码实质上也发生了变更。而由于只要后端代码发生变更,就需要后端服务器重新加载变更后的后端代码。因此,采用方法一,在后端代码的业务逻辑并未发生改变时,只要前端代码发生了变更,后端服务器就需要重新加载变更后的后端代码,导致后端代码的发布效率较低。
另外,在采用方法一时,由于前端代码的版本号是直接写入后端代码中的,需要保证发布的前端代码的版本号与发布的后端代码中写入的版本号一致,才可正常执行业务,而后端代码的重新加载并不是随时可以进行的,只能在规定的时间才能够进行后端代码的重新加载,比如每周周一才能够进行后端代码的重新加载。这便就导致了前端代码的更新频次不能超过后端代码的更新频次,也就是说,前端代码不能频繁的更新。
方法二:将前端代码的版本号写入后端代码的配置文件中,当用户在客户端访问图1a中显示的页面对应的网址后,客户端向后端服务器发送访问请求,后端服务器在接收到客户端的访问请求后,根据配置文件中的前端代码的版本号,告知前端设备向客户端发送与该版本号对应的前端代码,使得客户端在接收到该前端代码后渲染出如图1a显示的页面。这样,当用户在图1a显示的页面中可输入账户名和密码,并在点击提交控件后,后端代码便能够根据用户提交的数据,正确的执行业务逻辑。
比如,后端服务器中的一段后端代码为:
<title>芝麻信用授权</title>
<meta name="viewport"content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no"/>
#cmsparse("/xy/version/zmcustprod.vm")
<script src="$!ver/tools/zepto.js"></script><!--项目CSS-->。
其中,上述后端代码中的“zmcustprod.vm”为配置文件文件名。
配置文件中关于前端代码的版本号的代码为:
#set($ver="$assetsUrl/zm-sdk/0.0.48")#。
其中,“0.0.48”为前端代码的版本号。
由“cmsparse("/xy/version/zmcustprod.vm")”可知,前端代码对应的版本号“version”并未直接写入后端代码中,而被写入了文件名为“zmcustprod.vm”的配置文件中。该配置文件的引用路径为/xy/version/zmcustprod.vm。
由“#set($ver="$assetsUrl/zm-sdk/0.0.48")#”可知,前端代码的版本号为0.0.48。
那么,当客户端访问相应的网址后,客户端向后端服务器发送访问请求,后端服务器在接收到访问请求后,根据配置文件中的前端代码的版本号0.0.48,告知前端服务器向客户端发送版本号为0.0.48的前端代码,使得客户端在接收到该前端代码后渲染出与版本号为0.0.48的前端代码对应的页面。这样,当用户在该页面中输入数据或者点击某一控件后,与版本号为0.0.48相匹配的后端代码便能够根据用户提交的数据,正确的执行业务逻辑。
继续沿用上例,如图1b所示,在前端代码更新而后端代码不需要更新时,将新版本的前端代码部署在前端设备中后,只需将配置文件中的前端代码的版本号,修改为新版本的前端代码的版本号,无需改变后端代码,也无需进行后端代码的重新加载。因此,方法二避免了方法一中后端代码发布效率低以及前端代码不能频繁更新的问题。
虽然方法二解决了方法一存在的问题,但是却出现了新的问题,该问题是:当既要更新前端设备中的前端代码,又要更新后端服务器中的后端代码时,后端服务器有可能无法正常为用户提供服务,即无法正常进行业务逻辑的情况。
继续沿用上例,假设图1b所示的页面是由版本号为001的前端代码渲染出来的,图1c所示的页面是由版本号为002的前端代码渲染出来的,那么在将新版本的前端代码(即版本号为002的前端代码)部署在前端设备中后,内容管理系统(Content ManagementSystem,CMS)便将版本号002主动推送给后端服务器,以使后端服务器在接收到版本号002后,将配置文件中的版本号001修改为002。在后端服务器将配置文件中的版本号001修改为002后,后端服务器有可能尚未重新加载新版本的后端代码。那么这种情况下,若用户访问网址,后端服务器会根据配置文件中的前端代码的版本号002,告知前端设备向客户端发送版本号为002的前端代码,以使得客户端在接收到版本号为002的前端代码后,渲染出如图1c所示的页面。但是由于图1c所示的页面中增加了供用户输入手机号的输入框,那么后端服务器在接收到客户端发送的数据后,后端代码还是原先的根据账户名和密码进行业务逻辑的后端代码,针对客户端发送来的手机号这一信息,后端代码无法进行正确的业务逻辑。
因此,当将前端代码的版本号部署在后端服务器中的配置文件里时,如果既要变更前端代码,又要变更后端代码,则会存在后端服务器无法正常为用户提供服务的问题。
发明内容
本申请实施例提供一种代码发布方法及装置,用以解决现有技术中当将前端代码的版本号部署在后端服务器中的配置文件里,既要变更前端代码,又要变更后端代码时,后端服务器无法正常为用户提供服务的问题。
本申请实施例采用下述技术方案:
一种代码发布方法,包括:
在前端代码更新并发布后,将数据库中保存的前端代码对应的版本号修改为更新后的前端代码对应的版本号;
向后端服务器发送通知;
所述通知用于使所述后端服务器在更新并发布后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
一种代码发布方法,其特征在于,所述方法包括:
接收版本配置管理系统发送的通知;其中,所述通知是所述版本配置管理系统在前端代码更新并发布后,将数据库中保存的前端代码对应的版本号修改为更新后的前端代码对应的版本号后,向后端服务器发送的;
在更新并发布后端代码时,根据所述通知,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
一种代码发布装置,包括:
修改模块,在前端代码更新并发布后,将数据库中保存的前端代码对应的版本号修改为更新后的前端代码对应的版本号;
发送模块,向后端服务器发送通知;
所述通知用于使所述后端服务器在更新并发布后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
一种代码发布装置,包括:
接收模块,接收版本配置管理系统发送的通知;其中,所述通知是所述版本配置管理系统在前端代码更新并发布后,将数据库中保存的前端代码对应的版本号修改为更新后的前端代码对应的版本号后,向后端服务器发送的;
更新模块,在更新并发布后端代码时,根据所述通知,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
与现有技术中的CMS主动向后端服务器推送前端代码对应的版本号相比,本申请实施例中,后端服务器在更新并发布后端代码时,主动获取更新后的前端代码对应的版本号,并根据获取到的版本号更新配置文件,这样便避免了后端服务器只能被动接收CMS推送的前端代码对应的版本号,从而被动更新配置文件的情况。解决了现有技术中,当将前端代码的版本号部署在后端服务器中的配置文件里,既要变更前端代码,又要变更后端代码时,后端服务器无法正常为用户提供服务的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为现有技术中的代码发布方法的示意图;
图1b为现有技术中的后端代码的业务逻辑不需要更新时的示意图;
图1c为现有技术中的前后端代码均需要更新时的示意图;
图2a为本申请实施例提供的一种代码发布方法的具体流程示意图;
图2b为本申请实施例提供的一种包含版本配置管理系统和数据库的示意图;
图3为本申请实施例提供的一种具体实施方式中的代码发布方法的具体流程示意图;
图4为本申请实施例提供的一种代码发布装置的结构示意图;
图5为本申请实施例提供的另一种代码发布装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请实施例提供的技术方案。
为了解决现有技术中,当将前端代码的版本号部署在后端服务器中的配置文件里,既要变更前端代码,又要变更后端代码时,存在的后端服务器无法正常为用户提供服务的问题,本申请实施例提供一种代码发布方法。其中,本申请实施例的应用场景为:前端代码发布和后端代码发布分开执行,前端代码对应的版本号部署在配置文件中。
该方法的具体流程示意图如图2a所示,包括下述步骤:
步骤11,在前端代码更新并发布后,版本配置管理系统将数据库中保存的前端代码对应的版本号修改为更新后的前端代码对应的版本号。
在实际应用中,前端代码部署在前端设备中,后端代码部署在后端服务器中,前端代码对应的版本号部署在后端服务器中的配置文件里,并非直接写入后端代码中。其中,前端代码可以部署在一台前端设备中,也可部署在至少两台前端设备中;后端代码可以部署在一台后端服务器中,也可部署在至少两台后端服务器中,本申请实施例对此不进行任何限定。另外,开发人员分别开发前端代码和后端代码,并分别进行前端发布与后端发布。并且,在分别进行前端发布与后端发布时,一般先进行前端发布,在前端发布完成后,再进行后端发布。
在本申请实施例中,前端代码对应的版本号除了被部署在后端服务器的配置文件里,还被保存在数据库中。
当开发人员第一次进行前端发布和后端发布后,除了在后端服务器的配置文件中部署前端代码对应的版本号之外,还可以将该前端代码对应的版本号保存在数据库中。当开发人员后续开发出新版本的前端代码,并将开发出的新版本的前端代码部署在前端设备中后,版本配置管理系统可将数据库中保存的前端代码对应的版本号修改为新版本的前端代码对应的版本号。
例如,如图2b所示,在未进行前端代码的更新与发布时,版本号为001的前端代码部署在前端设备s中,后端代码分别部署在后端服务器a、后端服务器b和后端服务器c中,另外这三个后端服务器的配置文件中均部署着001这一版本号。图2b中还包括版本配置管理系统和数据库。其中,数据库中保存着前端代码对应的版本号001。在版本号为002的前端代码更新并发布后,版本配置管理系统将数据库中保存的前端代码对应的版本号001修改为更新后的前端代码002。
其中,将开发出的新版本的前端代码部署在前端设备中后,前端设备中既包含开发出的新版本的前端代码,也包含旧版本的前端代码。用户访问相关网址后,客户端渲染出哪一个版本的前端代码对应的页面,取决于客户端访问的后端服务器配置文件中的前端代码的版本号。若前端代码部署在至少两台前端设备中,后端代码部署在至少两台后端服务器中,那么当用户在客户端访问相关网址后,客户端随机向某一台后端服务器发送访问请求,该服务器在接收到客户端发送的访问请求后,便根据配置文件中的版本号,随机告知某一台前端设备向客户端发送与该版本号对应的前端代码,客户端在接收到该前端代码后,便渲染出与该前端代码对应的页面。
需要特别说明的是,本申请实施例不限定数据库和版本配置管理系统存在的位置,可以存在于前端设备或者后端服务器中,只要版本配置管理系统与后端服务器分别对该数据库据具有写入、修改或获取的权限便可。
步骤12,版本配置管理系统向后端服务器发送通知。
所述通知用于使后端服务器在接收到该通知后,在更新并发布后端代码时,从数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
另外,该通知还用于后端服务器在不需要更新后端代码时,从数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
沿用上例,如图2b所示,在版本配置管理系统将数据库中保存的前端代码对应的版本号001修改为更新后的前端代码002后,版本配置管理系统向后端服务器a、后端服务器b和后端服务器c发送通知。
当既要更新前端代码,又要更新后端代码时,后端服务器a、后端服务器b和后端服务器c在接收到上述通知后,并非立即从数据库中获取更新后的前端代码对应的版本号002,而是在后端服务器a、后端服务器b或后端服务器c分别更新并发布后端代码时,分别从数据库中获取更新后的前端代码对应的版本号002,并分别根据获取到的版本号002更新配置文件。
沿用上例,如图2b所示,若后端服务器a正在更新并发布后端代码,那么,后端服务器a在更新并发布后端代码时,便可根据接收到的通知,获取数据库中的版本号002,并将配置文件中的版本号001修改为版本号002。在后端服务器a完成发布后,后端服务器a中的后端代码为新开发出的后端代码,配置文件中的前端代码对应的版本号为新开发出的前端代码的版本号002,那么,后端服务器a便可以为用户提供正常服务。此时的后端服务器b和后端服务器c没有更新并发布后端代码,而配置文件中的前端代码对应的版本号为001,那么,后端服务器b和后端服务器c依然可以为用户提供正常的服务。这是因为,当用户在客户端访问网址后,后端服务器在接收到客户端的访问请求后,后端服务器根据配置文件中的版本号001,告知前端设备向客户端发送版本号为001的前端代码,以使得客户端在接收到该前端代码后,渲染出相应的页面。由于此时后端服务器中的后端代码为旧版本的后端代码,那么当用户在该页面中输入数据并提交后,后端服务器便可根据用户提交的数据进行正常的业务逻辑。因此,本申请实施例可以解决现有技术中的方法二出现一部分后端服务器无法正常为用户提供服务的问题。
当只更新前端代码,而后端代码的业务逻辑不需要更新时,后端服务器a、后端服务器b和后端服务器c在接收到上述通知后,可以直接从数据库中获取更新后的前端代码对应的版本号002,并根据获取到的版本号002更新配置文件,将配置文件中的前端代码对应的版本号修改为002。这样便无需改变后端代码,也无需进行后端代码的重新加载,从而可以频繁的进行前端代码的更新与发布。与现有技术中的方法一相比,本申请实施例提高了前端代码的发布效率。
其中,版本配置管理系统在向后端服务器发送通知时,可以直接向后端服务器发送通知,也可以通过其他系统向后端服务器发送通知,或者先向测试服务器发送该通知,当该测试服务器通过测试后,再向后端服务器发送通知。
情况一:版本配置管理系统可以直接向后端服务器发送通知。
其中,若后端代码部署在至少两台后端服务器中,那么版本配置管理系统直接向后端服务器发送通知时,可以同时向所有后端服务器发送通知,也可以按预设顺序,依次向所有后端服务器发送通知。
(1)当版本配置管理系统同时向所有后端服务器发送通知时,所有后端服务器同时接收到该通知。
若后端服务器不需要更新,那么版本配置管理系统发送的通知,可以用于使后端服务器在不需要更新后端代码时,直接从数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。当后端服务器同时接收到该通知后,所有后端服务器便可主动获取保存在数据库中的更新后的前端代码对应的版本号,并根据获取到的该版本号更新配置文件,使得配置文件中的版本号变更为更新后的前端代码对应的版本号。
若后端代码需要更新,那么版本配置管理系统发送的通知,用于使后端服务器在更新并发布后端代码时,从数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。当后端服务器同时接收到该通知后,所有后端服务器并非立即主动获取保存在数据库中的更新后的前端代码对应的版本号,而是在后端服务器进行后端代码的更新与发布时,再根据接收到的通知,主动获取保存在数据库中的更新后的前端代码对应的版本号,并根据获取到的该版本号更新配置文件,使得配置文件中的版本号变更为更新后的前端代码对应的版本号。若所有的后端服务器均同时更新并发布后端代码,那么,整个后端服务器便无法为用户提供服务。因此,开发人员可以按照一定顺序触发后端服务器更新并发布后端代码,当后端服务器依次更新并发布后端代码时,后端服务器便可主动获取保存在数据库中的更新后的前端代码对应的版本号,并根据获取到的该版本号更新配置文件。
(2)当版本配置管理系统按照预设顺序,依次向所有后端服务器发送通知时,后端服务器依次接收该通知。
若后端代码不需要更新,那么版本配置管理系统发送的通知,用于使后端服务器直接从数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
由于后端服务器是按照预设顺序依次接收到上述通知的。那么,在任一后端服务器接收到该通知后,该后端服务器便可主动获取保存在数据库中的更新后的前端代码对应的版本号,并根据获取到的该版本号更新配置文件,使得配置文件中的版本号变更为更新后的前端代码对应的版本号。
若后端代码需要更新,那么版本配置管理系统发送的通知,可用于直接触发后端服务器更新并发布后端代码,并在更新并发布后端代码时,从数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
由于后端服务器是按照预设顺序依次接收到上述通知的。那么,在任一后端服务器接收到该通知后,该后端服务器便可更新并发布后端代码,并在更新并发布后端代码时,从数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
情况二:版本配置管理系统通过动态配置推送服务系统,向后端服务器发送通知。
其中,动态配置推送服务系统,用于将接收到的版本配置管理系统发送的通知,发送给后端服务器。
若后端代码部署在至少两台后端服务器中,那么版本配置管理系统,将所述通知发送给动态配置推送服务系统后,该动态配置推送服务系统可以按照情况一中所提及的发送方式将所述通知发送给后端服务器,此处不再进行赘述。
情况三:在测试环境中,版本配置管理系统,先向测试服务器发送该通知,当该测试服务器通过测试后,再向后端服务器发送通知。
其中,测试环境可以是预发布环境,测试服务器可以是预发布环境中的后端服务器。
为了测试新开发出的前端代码是否能够与旧版本的后端代码相匹配,或者新开发出的前端代码是否与新开发出的后端代码相匹配,版本配置管理系统可在前端设备进行前端代码更新和发布后,向测试服务器发送通知,以使得测试服务器在接收到该通知后,在更新并发布后端代码时,从数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件;或者,在不需要更新后端代码时,从数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
其中,可以通过人工浏览网页的方式,检查该测试服务器是否可以通过测试。比如,若更新后的前端代码渲染出的页面如图1c所示的页面,开发人员在该页面中输入账户名、密码和手机号并提交后,并未出现页面异常的情况,而是出现页面注册成功或失败的页面,则认为该测试服务器通过测试,否则,便认为该测试服务器未通过测试。
需要特别说明的是,在版本配置管理系统向测试服务器发送通知时,可以直接向测试服务器发送通知,也可以通过动态配置推送服务系统向测试服务器发送通知,本申请实施例不对此进行任何限定。
在测试服务器通过测试后,可以由测试服务器向后端服务器发送通知,也可以在版本配置管理系统接收到测试服务器发送的测试通过的消息后,由版本配置管理系统向后端服务器发送通知,或者由版本配置管理系统通过动态配置推送服务系统向后端服务器发送通知,本申请对此不进行任何限定。
在本申请实施例中,可通过代码发布系统,来实现上述发布方法,该系统中可包括前端设备、配置版本管理系统、数据库、动态配置推送服务系统以及后端服务器。
当通过代码发布系统进行代码发布时,具体过程如图3所示:
步骤31,前端设备进行前端代码更新并发布。
步骤32,在前端代码更新并发布后,配置版本管理系统将数据库中保存的前端代码对应的版本号修改为更新后的前端代码对应的版本号。
步骤33,配置版本管理系统向动态配置推送服务系统发送通知。
步骤34,动态配置推送服务系统接收配置版本管理系统发送的通知。
步骤35,动态配置推送服务系统向后端服务器发送通知。
步骤36,后端服务器接收动态配置推送服务系统发送的通知。
步骤37,后端服务器在接收到通过执行步骤36接收到的通知后,在更新并发布后端代码时,从所述数据库中获取更新后的前端代码对应的版本号;或者,使所述后端服务器在不需要更新后端代码时,从所述数据库中获取更新后的前端代码对应的版本号。
步骤38,后端服务器根据获取到的版本号更新配置文件。
在本申请实施例中,可通过一种代码发布装置,来实现本申请实施例中提供的代码发布方法。
如图4所示,为本申请实施例提供的代码发布装置的结构示意图,主要包括下述装置:
修改模块41,在前端代码更新并发布后,将数据库中保存的前端代码对应的版本号修改为更新后的前端代码对应的版本号。
发送模块42,向后端服务器发送通知。
其中,所述通知用于使所述后端服务器在更新并发布后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
在一种实施方式中,所述通知还用于使所述后端服务器在不需要更新后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
在一种实施方式中,发送模块41,通过动态配置推送服务系统,向后端服务器发送通知。
在一种实施方式中,发送模块41,当后端服务器的数量至少为两个时,同时向所有后端服务器发送通知。
在一种实施方式中,发送模块41,当后端服务器的数量至少为两个时,按预设顺序,依次向所有后端服务器发送通知。
其中,所述通知用于触发所述后端服务器更新并发布后端代码,并在更新并发布后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件;或者,使所述后端服务器在不需要更新后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
在一种实施方式中,发送模块41,向测试服务器发送通知,使所述测试服务器在更新并发布后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件,以对更新后的后端代码和获取到的版本号进行测试,或者,使所述测试服务器在不需要更新后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件,以对更新后的配置文件进行测试;
当确定所述测试服务器的测试结果通过时,向所述后端服务器发送通知。
在本申请实施例中,可通过一种代码发布装置,来实现本申请实施例中提供的代码发布方法。
如图5所示,为本申请实施例提供的另一种代码发布装置的结构示意图,主要包括下述装置:
接收模块51,接收版本配置管理系统发送的通知。
其中,所述通知是所述版本配置管理系统在前端代码更新并发布后,将数据库中保存的前端代码对应的版本号修改为更新后的前端代码对应的版本号后,向后端服务器发送的。
更新模块52,在更新并发布后端代码时,根据所述通知,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
在一种实施方式中,所述通知还用于在不需要更新后端代码时,根据所述通知,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
与现有技术中的CMS主动向后端服务器推送前端代码对应的版本号相比,本申请实施例中,后端服务器在更新并发布后端代码时,主动获取更新后的前端代码对应的版本号,并根据获取到的版本号更新配置文件,这样便避免了后端服务器只能被动接收CMS推送的前端代码对应的版本号,从而被动更新配置文件的情况。解决了现有技术中,当将前端代码的版本号部署在后端服务器中的配置文件里,既要变更前端代码,又要变更后端代码时,后端服务器无法正常为用户提供服务的问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (16)

1.一种代码发布方法,其特征在于,所述方法包括:
在前端代码更新并发布后,将数据库中保存的前端代码对应的版本号修改为更新后的前端代码对应的版本号;
向后端服务器发送通知;
所述通知用于使所述后端服务器在更新并发布后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
2.如权利要求1所述的方法,其特征在于,所述通知还用于使所述后端服务器在不需要更新后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
3.如权利要求1所述的方法,其特征在于,向后端服务器发送通知,具体包括:
通过动态配置推送服务系统,向后端服务器发送通知。
4.如权利要求1所述的方法,其特征在于,当后端服务器的数量至少为两个时,向后端服务器发送通知,具体包括:
同时向所有后端服务器发送通知。
5.如权利要求1所述的方法,其特征在于,当后端服务器的数量至少为两个时,向后端服务器发送通知,具体包括:
按预设顺序,依次向所有后端服务器发送通知;
其中,所述通知用于触发所述后端服务器更新并发布后端代码,并在更新并发布后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件;或者,使所述后端服务器在不需要更新后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
6.如权利要求1所述的方法,其特征在于,向后端服务器发送通知,具体包括:
向测试服务器发送通知,使所述测试服务器在更新并发布后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件,以对更新后的后端代码和获取到的版本号进行测试,或者,使所述测试服务器在不需要更新后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件,以对更新后的配置文件进行测试;
当确定所述测试服务器的测试结果通过时,向所述后端服务器发送通知。
7.一种代码发布方法,其特征在于,所述方法包括:
接收版本配置管理系统发送的通知;其中,所述通知是所述版本配置管理系统在前端代码更新并发布后,将数据库中保存的前端代码对应的版本号修改为更新后的前端代码对应的版本号后,向后端服务器发送的;
在更新并发布后端代码时,根据所述通知,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
在不需要更新后端代码时,根据所述通知,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
9.一种代码发布装置,其特征在于,所述装置包括:
修改模块,在前端代码更新并发布后,将数据库中保存的前端代码对应的版本号修改为更新后的前端代码对应的版本号;
发送模块,向后端服务器发送通知;
所述通知用于使所述后端服务器在更新并发布后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
10.如权利要求9所述的装置,其特征在于,所述通知还用于使所述后端服务器在不需要更新后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
11.如权利要求9所述的装置,其特征在于,发送模块,通过动态配置推送服务系统,向后端服务器发送通知。
12.如权利要求9所述的装置,其特征在于,发送模块,当后端服务器的数量至少为两个时,同时向所有后端服务器发送通知。
13.如权利要求9所述的装置,其特征在于,发送模块,当后端服务器的数量至少为两个时,按预设顺序,依次向所有后端服务器发送通知;
其中,所述通知用于触发所述后端服务器更新并发布后端代码,并在更新并发布后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件;或者,使所述后端服务器在不需要更新后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
14.如权利要求9所述的装置,其特征在于,发送模块,向测试服务器发送通知,使所述测试服务器在更新并发布后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件,以对更新后的后端代码和获取到的版本号进行测试,或者,使所述测试服务器在不需要更新后端代码时,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件,以对更新后的配置文件进行测试;
当确定所述测试服务器的测试结果通过时,向所述后端服务器发送通知。
15.一种代码发布装置,其特征在于,所述装置包括:
接收模块,接收版本配置管理系统发送的通知;其中,所述通知是所述版本配置管理系统在前端代码更新并发布后,将数据库中保存的前端代码对应的版本号修改为更新后的前端代码对应的版本号后,向后端服务器发送的;
更新模块,在更新并发布后端代码时,根据所述通知,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
16.如权利要求15所述的装置,其特征在于,更新模块,在不需要更新后端代码时,根据所述通知,从所述数据库中获取更新后的前端代码对应的版本号,根据获取到的版本号更新配置文件。
CN201610538909.1A 2016-07-08 2016-07-08 一种代码发布方法与装置 Active CN106897053B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610538909.1A CN106897053B (zh) 2016-07-08 2016-07-08 一种代码发布方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610538909.1A CN106897053B (zh) 2016-07-08 2016-07-08 一种代码发布方法与装置

Publications (2)

Publication Number Publication Date
CN106897053A true CN106897053A (zh) 2017-06-27
CN106897053B CN106897053B (zh) 2020-06-26

Family

ID=59191608

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610538909.1A Active CN106897053B (zh) 2016-07-08 2016-07-08 一种代码发布方法与装置

Country Status (1)

Country Link
CN (1) CN106897053B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107463422A (zh) * 2017-07-20 2017-12-12 阿里巴巴集团控股有限公司 代码部署方法及装置、电子设备
CN107844310A (zh) * 2017-10-24 2018-03-27 北京奇艺世纪科技有限公司 一种配置信息更新方法及系统
CN109739551A (zh) * 2018-12-29 2019-05-10 上海连尚网络科技有限公司 应用程序发布系统、方法及装置,计算设备及存储介质
CN110321132A (zh) * 2018-03-29 2019-10-11 北京搜狗科技发展有限公司 一种代码发布方法和装置
CN110442395A (zh) * 2019-07-29 2019-11-12 微民保险代理有限公司 产品配置数据的发布方法、装置、前端服务器及后端服务器
CN111143383A (zh) * 2019-12-20 2020-05-12 五八有限公司 一种数据更新方法、装置、电子设备及存储介质
CN111625222A (zh) * 2020-05-26 2020-09-04 北京互金新融科技有限公司 前端代码的线上验证系统及验证方法
CN111767089A (zh) * 2020-06-28 2020-10-13 北京百度网讯科技有限公司 加载文件的方法、装置、设备以及存储介质
CN112346761A (zh) * 2020-10-27 2021-02-09 长沙市到家悠享网络科技有限公司 前端资源上线方法、设备、系统及存储介质
CN115630248A (zh) * 2022-12-21 2023-01-20 深圳高灯计算机科技有限公司 页面确定方法、装置、计算机设备和存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0917074A2 (en) * 1997-11-05 1999-05-19 Hitachi, Ltd. Version and configuration management method and apparatus and computer-readable medium for recording associated program
US20090132720A1 (en) * 2006-11-13 2009-05-21 Bally Gaming, Inc. Method and system for providing download and configuration job progress tracking and display via host user interface
CN101794222A (zh) * 2010-01-13 2010-08-04 腾讯科技(深圳)有限公司 软件版本搜集方法、管理系统及软件升级检测方法和系统
CN102098190A (zh) * 2011-02-22 2011-06-15 浪潮(北京)电子信息产业有限公司 一种Web项目的自动开发测试系统及方法
US20130050581A1 (en) * 2011-08-31 2013-02-28 Nikhil Deshpande Multiple-input configuration and playback video enhancement
CN103164525A (zh) * 2013-03-26 2013-06-19 北界创想(北京)软件有限公司 Web应用发布方法和装置
CN103645900A (zh) * 2013-12-13 2014-03-19 上海浦东物流云计算有限公司 软件发布方法及装置
CN103955361A (zh) * 2014-03-28 2014-07-30 世纪禾光科技发展(北京)有限公司 一种web前端代码自动化编译构建的模块化开发和发布系统
CN101925878B (zh) * 2008-01-22 2015-01-14 阿玛得斯两合公司 客户机/服务器计算环境中部署非后向兼容服务器版本的方法和系统
US20150026143A1 (en) * 2013-07-18 2015-01-22 Microsoft Corporation Data handling
CN105027535A (zh) * 2013-02-28 2015-11-04 微软公司 使用rest类api的应用的向后兼容特征级版本控制

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0917074A2 (en) * 1997-11-05 1999-05-19 Hitachi, Ltd. Version and configuration management method and apparatus and computer-readable medium for recording associated program
US20090132720A1 (en) * 2006-11-13 2009-05-21 Bally Gaming, Inc. Method and system for providing download and configuration job progress tracking and display via host user interface
CN101925878B (zh) * 2008-01-22 2015-01-14 阿玛得斯两合公司 客户机/服务器计算环境中部署非后向兼容服务器版本的方法和系统
CN101794222A (zh) * 2010-01-13 2010-08-04 腾讯科技(深圳)有限公司 软件版本搜集方法、管理系统及软件升级检测方法和系统
CN102098190A (zh) * 2011-02-22 2011-06-15 浪潮(北京)电子信息产业有限公司 一种Web项目的自动开发测试系统及方法
CN102098190B (zh) * 2011-02-22 2013-05-15 浪潮(北京)电子信息产业有限公司 一种Web项目的自动开发测试系统及方法
US20130050581A1 (en) * 2011-08-31 2013-02-28 Nikhil Deshpande Multiple-input configuration and playback video enhancement
CN105027535A (zh) * 2013-02-28 2015-11-04 微软公司 使用rest类api的应用的向后兼容特征级版本控制
CN103164525A (zh) * 2013-03-26 2013-06-19 北界创想(北京)软件有限公司 Web应用发布方法和装置
US20150026143A1 (en) * 2013-07-18 2015-01-22 Microsoft Corporation Data handling
CN103645900A (zh) * 2013-12-13 2014-03-19 上海浦东物流云计算有限公司 软件发布方法及装置
CN103955361A (zh) * 2014-03-28 2014-07-30 世纪禾光科技发展(北京)有限公司 一种web前端代码自动化编译构建的模块化开发和发布系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
SANGYEUN CHO ET AL: "High-level information-an approach for integrating front-end and back-end compilers", 《 PROCEEDINGS. 1998 INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING (CAT. NO.98EX205)》 *
林延珊: "高校移动考勤系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
领科云: "《百度文库》", 20 April 2016 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107463422A (zh) * 2017-07-20 2017-12-12 阿里巴巴集团控股有限公司 代码部署方法及装置、电子设备
CN107844310A (zh) * 2017-10-24 2018-03-27 北京奇艺世纪科技有限公司 一种配置信息更新方法及系统
CN107844310B (zh) * 2017-10-24 2021-05-04 北京奇艺世纪科技有限公司 一种配置信息更新方法及系统
CN110321132A (zh) * 2018-03-29 2019-10-11 北京搜狗科技发展有限公司 一种代码发布方法和装置
CN109739551A (zh) * 2018-12-29 2019-05-10 上海连尚网络科技有限公司 应用程序发布系统、方法及装置,计算设备及存储介质
CN110442395A (zh) * 2019-07-29 2019-11-12 微民保险代理有限公司 产品配置数据的发布方法、装置、前端服务器及后端服务器
CN111143383A (zh) * 2019-12-20 2020-05-12 五八有限公司 一种数据更新方法、装置、电子设备及存储介质
CN111143383B (zh) * 2019-12-20 2023-07-14 五八有限公司 一种数据更新方法、装置、电子设备及存储介质
CN111625222A (zh) * 2020-05-26 2020-09-04 北京互金新融科技有限公司 前端代码的线上验证系统及验证方法
CN111625222B (zh) * 2020-05-26 2023-08-04 北京互金新融科技有限公司 前端代码的线上验证系统及验证方法
CN111767089A (zh) * 2020-06-28 2020-10-13 北京百度网讯科技有限公司 加载文件的方法、装置、设备以及存储介质
CN112346761A (zh) * 2020-10-27 2021-02-09 长沙市到家悠享网络科技有限公司 前端资源上线方法、设备、系统及存储介质
CN115630248A (zh) * 2022-12-21 2023-01-20 深圳高灯计算机科技有限公司 页面确定方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN106897053B (zh) 2020-06-26

Similar Documents

Publication Publication Date Title
CN106897053A (zh) 一种代码发布方法与装置
EP3593254B1 (en) Editing a database during preview of a virtual web page
US8166347B2 (en) Automatic testing for dynamic applications
US10025878B1 (en) Data lineage analysis
CN105337735B (zh) 数字证书处理及校验的方法和装置
CN105793862B (zh) 动态程序在隔离环境中的受指导执行
US10362089B1 (en) Methods and systems for dynamically generating and reusing dynamic web content
US9588872B2 (en) Discovery of code paths
US20200050540A1 (en) Interactive automation test
US10705949B2 (en) Evaluation of library test suites using mutation testing
US10417317B2 (en) Web page profiler
CN107147645A (zh) 网络安全数据的获取方法及装置
CN106886547A (zh) 一种脚本生成方法与装置
US20090172581A1 (en) System, method and apparatus for multiple field pasting
US20130124971A1 (en) Real time web script refresh using asynchronous polling without full web page reload
CN107391534A (zh) 页面显示、页面文件返回方法及装置、计算机存储介质
US10887186B2 (en) Scalable web services execution
CN113362173A (zh) 防重机制验证方法、验证系统、电子设备及存储介质
CN104461310B (zh) 一种页面比对方法及系统
US9398041B2 (en) Identifying stored vulnerabilities in a web service
CN114637508A (zh) 基于vue的标签参数传递方法、装置、设备及存储介质
US20210303726A1 (en) Privacy preserving synthetic string generation using recurrent neural networks
EP4010832A1 (en) Protecting user privacy in user interface data collection
CN111125565A (zh) 一种在应用中输入信息的方法与设备
US10698794B1 (en) Application container and application service system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201014

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201014

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.