一种用于发布网页应用的方法与设备与流程

文档序号:12157798阅读:317来源:国知局
一种用于发布网页应用的方法与设备与流程

本申请涉及计算机领域,尤其涉及一种用于发布网页应用的技术。



背景技术:

现在技术中,web应用(或称网页应用)在发布时往往需要额外增加一套网页应用发布系统,例如,以GAE(Google App Engine,Google公司推出的互联网应用服务引擎)为代表的开发和托管网页应用的平台,都不具备自发布网页应用的功能,所以需要额外做一套网页应用发布系统。在发布网页应用时,通过额外的发布系统终止原工作进程,再启动新工作进程,其中,该原工作进程和新工作进程均位于web容器(或称网页容器)中,网页应用在该web容器中存在对应的工作进程。显然,这样的方式,不仅耗时耗力,并且会带来额外的开发和运维的成本。



技术实现要素:

本申请提供一种用于发布网页应用的方法与设备,以解决需要额外网页应用发布系统来发布网页应用的问题。

根据本申请的一个方面,提供了一种用于发布网页应用的方法,其中,该方法包括:

在web容器中为待发布的网页应用创建新工作进程,其中,所述网页应用在所述web容器中存在对应的原工作进程;

将所述网页应用在所述原工作进程中的流量引至所述新工作进程。

进一步地,该方法还包括:终止所述原工作进程。

进一步地,所述将所述网页应用在所述原工作进程中的流量引至所述新工作进程包括:将所述网页应用在所述原工作进程中的部分流量引至所述新工作进程。

进一步地,所述将所述网页应用在所述原工作进程中的流量引至所述新工作进程包括:当所述新工作进程成功启动后,将所述网页应用在所述原工 作进程中的流量引至所述新工作进程。

进一步地,所述将所述网页应用在所述原工作进程中的流量引至所述新工作进程包括:通过反向代理进程将所述网页应用在所述原工作进程中的流量引至所述新工作进程。

进一步地,所述web容器包括用于管理所述新工作进程和所述反向代理进程的管理进程。

根据本申请的另一个方面,提供了一种用于发布网页应用的设备,其中,该设备包括:

创建装置,用于在web容器中为待发布的网页应用创建新工作进程,其中,所述网页应用在所述web容器中存在对应的原工作进程;

引流装置,用于将所述网页应用在所述原工作进程中的流量引至所述新工作进程。

进一步地,该设备还包括:终止装置,用于终止所述原工作进程。

进一步地,所述引流装置用于:将所述网页应用在所述原工作进程中的部分流量引至所述新工作进程。

进一步地,所述引流装置用于:当所述新工作进程成功启动后,将所述网页应用在所述原工作进程中的流量引至所述新工作进程。

进一步地,所述引流装置用于:通过反向代理进程将所述网页应用在所述原工作进程中的流量引至所述新工作进程。

进一步地,所述web容器包括用于管理所述新工作进程和所述反向代理进程的管理进程。

与现有技术相比,本申请通过在web容器中为待发布的网页应用创建新工作进程,当新工作进程成功启动后,通过反向代理进程将所述网页应用在原工作进程中的流量引至所述新工作进程,通过管理进程管理所述工作进程和反向代理进程,最后终止所述原工作进程,完成对网页应用的发布。通过在web容器中增加反向代理进程和管理进程,从而实现自发布网页应用的功能,省去了额外的发布系统,降低了开发和运维的成本。进一步地,通过将所述网页应用在所述原工作进程中的部分流量引至新工作进程,以灰度发布的方式可以及时发现、调整问题,从而保证整体系统的稳 定。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1示出根据本申请一个方面的一种用于发布网页应用的方法流程图;

图2示出根据本申请一个实施例的一种用于发布网页应用的方法流程图;

图3示出根据本申请另一个方面的一种用于发布网页应用的设备示意图;

图4示出根据本申请一个实施例的一种用于发布网页应用的设备示意图;

图5示出根据本申请一个优选实施例的一种用于发布网页应用的系统示意图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

下面结合附图对本申请作进一步详细描述。

在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读 光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

本申请中的web容器除了包括现有技术中已存在的工作进程,还包括反向代理进程和管理进程。首先,在web容器中为待发布的网页应用创建新工作进程,其中,所述网页应用在所述web容器中存在对应的原工作进程,再通过反向代理进程将流量从原工作进程引至新工作进程,并通过管理进程管理工作进程和反向代理进程,最后终止原工作进程,完成对网页应用的发布。

本申请的技术方案可以应用于开发和托管网页应用的平台,以实现自发布网页应用的功能,从而省去了额外的发布系统,降低了开发和运维的成本。当然,本领域技术人员应能理解上述应用场景仅为举例,其他现有的或今后可能出现的可以实现自发布功能的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

图1示出根据本申请一个方面的一种用于发布网页应用的方法流程图。

该方法包括步骤S11和步骤S12。具体地,在步骤S11中,设备1在web容器中为待发布的网页应用创建新工作进程,其中,所述网页应用在所述web容器中存在对应的原工作进程;在步骤S12中,设备1将所述网页应用在所述原工作进程中的流量引至所述新工作进程。

在此,所述设备1包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、PDA等,所述移动电子产品可以采用任意操作系统,如android操作系统、iOS操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络 主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,设备1还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述设备1仅为举例,其他现有的或今后可能出现的设备1如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

设备1的各个步骤之间是持续不断工作的。具体地,在步骤S11中,设备1持续在web容器中为待发布的网页应用创建新工作进程,在步骤S12中,设备1持续将所述网页应用在所述原工作进程中的流量引至所述新工作进程,直至步骤S11中设备1停止在web容器中为待发布的网页应用创建新工作进程。

在步骤S11中,设备1在web容器中为待发布的网页应用创建新工作进程,其中,所述网页应用在所述web容器中存在对应的原工作进程。

在此,所述网页应用是一种可以通过网页访问的应用程序,用户只需要有浏览器即可访问网页应用,而不需要再安装其他软件。所述web容器给处于其中的应用程序组件(例如JSP、Servlet)提供一个运行环境,使应用程序组件可以直接跟web容器中的环境变量交互,不必关注其他系统问题。其中,所述网页应用在所述web容器中存在对应的原工作进程,所述工作进程为网页应用提供一个运行环境,原工作进程和所创建的新工作进程均位于web容器中。

在具体的实施例中,可以通过调用fork函数,根据原工作进程创建出新工作进程。一个工作进程组可以包括一个或多个功能相同的工作进程。

在步骤S12中,设备1将所述网页应用在所述原工作进程中的流量引至所述新工作进程。

在此,所述流量指的是用户对网页应用的访问请求。其中,所述流量可 以包括新产生的访问请求和拟分发至原工作进程的访问请求。

优选地,当所述新工作进程成功启动后,步骤S12中设备1将所述网页应用在所述原工作进程中的流量引至所述新工作进程。

在此,所述新工作进程成功启动指的是所述新工作进程可以为用户提供服务,响应用户的访问请求。当所述新工作进程启动成功后,会主动通知其他的工作进程。

优选地,在步骤S12中,设备1通过反向代理进程将所述网页应用在所述原工作进程中的流量引至所述新工作进程。

在具体的实施例中,所述反向代理进程在系统启动时被创建,并启动反向代理功能,负责将流量分配到不同的工作进程中。

更优选地,所述web容器包括用于管理所述新工作进程和所述反向代理进程的管理进程。

在具体的实施例中,通过所述管理进程实现对工作进程和反向代理进程的管理。具体地,可以通过管理进程调用fork函数(又称分叉函数,新进程由当前已有进程调用fork函数创建,分叉的进程叫子进程,创建者叫父进程;该函数的特点是调用一次,返回两次,一次是在父进程,一次是在子进程,两次返回的区别是子进程的返回值为0,父进程的返回值是新子进程的ID,子进程与父进程继续并发运行),根据原工作进程创建出新工作进程;可以通过管理进程,让反向代理进程将流量引至新工作进程;可以通过管理进程终止原工作进程。

优选地,在步骤S12中,设备1将所述网页应用在所述原工作进程中的部分流量引至所述新工作进程。

在具体的实施例中,可以通过将所述原工作进程中的部分流量引至所述新工作进程,从而实现灰度发布。在此,灰度发布指的是在黑与白之间,能够平滑过渡的一种发布方式,逐步扩大发布范围,最后达到完全发布。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,从而保证用户体验。

例如,在具体的应用场景中,可以根据用户的IP地址,通过在系统的后台指定,使特定的一个或多个IP地址访问特定版本的网页应用。还 可以通过工作进程与反向代理进程的配合,利用每次访问请求中带有的唯一标示该请求用户的信息(cookie),来实现灰度发布。

当然,本领域技术人员应能理解上述灰度发布的方式仅为举例,其他现有的或今后可能出现的灰度发布的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

图2示出根据本申请一个实施例的一种用于发布网页应用的方法流程图。

该方法包括步骤S21、步骤S22和步骤S23。在此,步骤S21、步骤S22和图1中步骤S11、步骤S12的内容相同或基本相同,为简明起见,不再赘述。

具体地,在步骤S23中,设备1终止所述原工作进程。

在具体的实施例中,当新版本的网页应用可以完整地为用户提供服务时,所述原工作进程作为旧版本的网页应用的运行环境已不再被需要时,即可以终止所述原工作进程,从而完成对网页应用的发布。

图3示出根据本申请另一个方面的一种用于发布网页应用的设备1,其中,设备1包括创建装置11和引流装置12。

具体地,所述创建装置11在web容器中为待发布的网页应用创建新工作进程,其中,所述网页应用在所述web容器中存在对应的原工作进程;所述引流装置12将所述网页应用在所述原工作进程中的流量引至所述新工作进程。

在此,所述设备1包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、PDA等,所述移动电子产品可以采用任意操作系统,如android操作系统、iOS操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此, 云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,设备1还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述设备1仅为举例,其他现有的或今后可能出现的设备1如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

上述各装置之间是持续不断工作的,在此,本领域技术人员应理解“持续”是指上述各装置分别实时地或者按照设定的或实时调整的工作模式要求,例如所述创建装置11持续在web容器中为待发布的网页应用创建新工作进程,所述引流装置12持续将所述网页应用在所述原工作进程中的流量引至所述新工作进程,直至所述创建装置11停止在web容器中为待发布的网页应用创建新工作进程。

所述创建装置11在web容器中为待发布的网页应用创建新工作进程,其中,所述网页应用在所述web容器中存在对应的原工作进程。

在此,所述网页应用是一种可以通过网页访问的应用程序,用户只需要有浏览器即可访问网页应用,而不需要再安装其他软件。所述web容器给处于其中的应用程序组件(例如JSP、Servlet)提供一个运行环境,使应用程序组件可以直接跟web容器中的环境变量交互,不必关注其他系统问题。其中,所述网页应用在所述web容器中存在对应的原工作进程,所述工作进程为网页应用提供一个运行环境,原工作进程和所创建的新工作进程均位于web容器中。

在具体的实施例中,可以通过调用fork函数,根据原工作进程创建出新工作进程。一个工作进程组可以包括一个或多个功能相同的工作进程。

所述引流装置12将所述网页应用在所述原工作进程中的流量引至所述新工作进程。

在此,所述流量指的是用户对网页应用的访问请求。其中,所述流量可 以包括新产生的访问请求和拟分发至原工作进程的访问请求。

优选地,当所述新工作进程成功启动后,所述引流装置12将所述网页应用在所述原工作进程中的流量引至所述新工作进程。

在此,所述新工作进程成功启动指的是所述新工作进程可以为用户提供服务,响应用户的访问请求。当所述新工作进程启动成功后,会主动通知其他的工作进程。

优选地,所述引流装置12通过反向代理进程将所述网页应用在所述原工作进程中的流量引至所述新工作进程。

在具体的实施例中,所述反向代理进程在系统启动时被创建,并启动反向代理功能,负责将流量分配到不同的工作进程中。

更优选地,所述web容器包括用于管理所述新工作进程和所述反向代理进程的管理进程。

在具体的实施例中,通过所述管理进程实现对工作进程和反向代理进程的管理。具体地,可以通过管理进程调用fork函数(又称分叉函数,新进程由当前已有进程调用fork函数创建,分叉的进程叫子进程,创建者叫父进程;该函数的特点是调用一次,返回两次,一次是在父进程,一次是在子进程,两次返回的区别是子进程的返回值为0,父进程的返回值是新子进程的ID,子进程与父进程继续并发运行),根据原工作进程创建出新工作进程;可以通过管理进程,让反向代理进程将流量引至新工作进程;可以通过管理进程终止原工作进程。

优选地,所述引流装置12将所述网页应用在所述原工作进程中的部分流量引至所述新工作进程。

在具体的实施例中,可以通过将所述原工作进程中的部分流量引至所述新工作进程,从而实现灰度发布。在此,灰度发布指的是在黑与白之间,能够平滑过渡的一种发布方式,逐步扩大发布范围,最后达到完全发布。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,从而保证用户体验。

例如,在具体的应用场景中,可以根据用户的IP地址,通过在系统的后台指定,使特定的一个或多个IP地址访问特定版本的网页应用。还 可以通过工作进程与反向代理进程的配合,利用每次访问请求中带有的唯一标示该请求用户的信息(cookie),来实现灰度发布。

当然,本领域技术人员应能理解上述灰度发布的方式仅为举例,其他现有的或今后可能出现的灰度发布的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

图4示出根据本申请一个实施例的一种用于发布网页应用的设备1,其中,所述设备1包括创建装置11’、引流装置12’和终止装置13’。

在此,所述创建装置11’、引流装置12’与图3中创建装置11、引流装置12的内容相同或基本相同,为简明起见,不再赘述。

具体地,所述终止装置13终止所述原工作进程。

在具体的实施例中,当新版本的网页应用可以完整地为用户提供服务时,所述原工作进程作为旧版本的网页应用的运行环境已不再被需要时,即可以终止所述原工作进程,从而完成对网页应用的发布。

图5示出根据本申请一个优选实施例的一种用于发布网页应用的系统示意图,其中,该系统包括工作进程、管理进程和反向代理进程。

具体地,所述工作进程、反向代理进程和管理进程均位于web容器中。一个工作进程组可以包括一个或多个功能相同的工作进程,图5中的工作进程组A包括一个工作进程A,工作进程组A’包括一个工作进程A’,工作进程组B包括两个功能相同的工作进程B1和工作进程B2。方向代理进程负责将用户对网页应用的访问请求(即流量)相应地分配到各个工作进程中。管理进程负责管理工作进程和反向代理进程。

例如,管理进程通过调用fork函数,根据原来的工作进程A创建出新的工作进程A’,其中,旧版本的网页应用对应原工作进程A,待发布的新版网页应用对应新工作进程A’。当新工作进程A’成功启动后,管理进程让反向代理进程将流量从原工作进程A引至新工作进程A’。在此,可以先将原工作进程A中的部分流量引至新工作进程A’,通过灰度发布及时发现、调整问题,保证整体系统的稳定。当新版网页应用可以完整地为用户提供服务时,终止原工作进程A,从而完成对新版网页应用的发布。

当然,本领域技术人员应能理解上述发布网页应用的方式仅为举例, 其他现有的或今后可能出现的发布网页应用的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

与现有技术相比,本申请通过在web容器中为待发布的网页应用创建新工作进程,当新工作进程成功启动后,通过反向代理进程将所述网页应用在原工作进程中的流量引至所述新工作进程,通过管理进程管理所述工作进程和反向代理进程,最后终止所述原工作进程,完成对网页应用的发布。通过在web容器中增加反向代理进程和管理进程,从而实现自发布网页应用的功能,省去了额外的发布系统,降低了开发和运维的成本。进一步地,通过将所述网页应用在所述原工作进程中的部分流量引至新工作进程,以灰度发布的方式可以及时发现、调整问题,从而保证整体系统的稳定。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其 中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

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