更新网络应用程序的方法及装置与流程

文档序号:11234815阅读:476来源:国知局
更新网络应用程序的方法及装置与流程

本公开涉及计算机应用技术领域,尤其涉及一种更新网络应用程序的方法及装置。



背景技术:

为了满足用户的多样化需求,终端可以安装多种不同的应用程序,通过不同的应用程序实现不同的功能。然而由于终端往往会存在着各种限制,也会需要将一些应用程序安装在网络服务器中,只要终端与网络服务器进行通信,便可在线访问网络服务器上配置的各种不同的应用程序,获得各种线上服务。

为了使分别安装在终端和网络服务器中的应用程序有所区别,下文将终端中安装的应用程序称为本地应用程序,而网络服务器中安装的应用程序称为网络应用程序。

目前,网络应用程序的升级过程通常是停止运行网络应用程序对应的旧版本之后,再运行网络应用程序对应的更新版本,以此实现网络应用程序的版本更新,这也就导致在此过程中必须中断业务,即终端无法对网络应用程序进行在线访问,进而使得网络应用程序的更新会对在线访问造成干扰。



技术实现要素:

基于此,为了解决上述技术问题,本公开的一个目的在于提供一种网络应用程序升级的方法及装置。

其中,本公开所采用的技术方案为:

一种更新网络应用程序的方法,所述网络应用程序通过配置的主体程序执行线上服务,所述主体程序对应的新版本主体程序被预先安装部署,所述方法包括:所述网络应用程序通过旧版本主体程序和旧端口实现线上服务的过程中,接收所述网络应用程序的在线访问请求,所述在线访问请求指示请求的线上服务;根据所述在线访问请求指示的线上服务确定所述网络应用程序中所述线上服务对应的主体程序信息;从配置文件提取与所述主体程序信息相关的新端口标识和指向信息;按照所述指向信息创建指向新版本主体程序的进程,触发所述进程根据所述新端口标识为所述在线访问请求控制所述新版本主体程序执行线上服务。

一种更新网络应用程序的装置,所述网络应用程序通过配置的主体程序执行线上服务,所述主体程序对应的新版本主体程序被预先安装部署,所述装置包括:请求接收模块,用于所述网络应用程序通过旧版本主体程序和旧端口实现线上服务的过程中,接收所述网络应用程序的在线访问请求,所述在线访问请求指示请求的线上服务;信息确定模块,用于根据所述在线访问请求指示的线上服务确定所述网络应用程序中所述线上服务对应的主体程序信息;信息提取模块,用于从配置文件提取与所述主体程序信息相关的新端口标识和指向信息;线上服务模块,用于按照所述指向信息创建指向新版本主体程序的进程,触发所述进程根据所述新端口标识为所述在线访问请求控制所述新版本主体程序执行线上服务。

与现有技术相比,本公开具有以下有益效果:

网络应用程序在需要进行更新时,将预先安装部署其主体程序对应的新版本主体程序,网络应用程序通过旧版本主体程序和旧端口实现线上服务的过程中,会接收到网络应用程序的在线访问请求,在线访问请求指示了请求的线上服务,此时,将通过安装部署的新版本主体程序实现请求的线上服务。

具体而言,首先根据在线访问请求指示的线上服务确定网络应用程序中线上服务对应的主体程序信息,从配置文件提取与主体程序信息相关的新端口标识和指向信息,进而按照指向信息创建指向新版本主体程序的进程,触发进程根据新端口标识为在线访问请求控制新版本主体程序执行线上服务,由此,便使得网络应用程序发生更新时,已经执行的线上服务仍然在旧版本主体程序和旧端口的作用下不会受到更新的影响,而新请求的线上服务,则由新版本主体程序和新端口实现,对于发起在线访问请求的请求方而言,并不会感知到网络应用程序的动态更新,也无需停止相关的线上服务,实现了网络应用程序的动态无缝更新,能够完全避免网络应用程序的更新对在线访问所造成的干扰。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并于说明书一起用于解释本公开的原理。

图1是根据本公开所涉及的实施环境的示意图;

图2是根据一示例性实施例示出的一种更新网络应用程序的方法的流程图;

图3是图2对应实施例中步骤250在一个实施例的流程图;

图4是图2对应实施例中步骤270在一个实施例的流程图;

图5是根据另一示例性实施例示出的一种网络应用程序升级的方法的流程图;

图6是图5对应实施例中步骤330在一个实施例的流程图;

图7是一应用场景中一种网络应用程序升级的方法的具体实现示意图;

图8是根据一示例性实施例示出的一种更新网络应用程序的装置的框图;

图9是图8对应实施例中信息提取模块750在一个实施例的框图;

图10是图9对应实施例中线上服务模块770在一个实施例的框图;

图11是根据一示例性实施例示出的另一种更新网络应用程序的装置的框图;

图12是图11对应实施例中配置模块830在一个实施例的框图;

图13是根据一示例性实施例示出的一种网络服务器的硬件结构框图。

通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述,这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。

具体实施方式

这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

图1为一种更新网络应用程序的方法所涉及的实施环境的示意图。该实施环境包括请求方110和服务端130。

其中,请求方110可以是向服务端130中的网络应用程序请求其线上服务的客户端,也可以是一些业务程序等。客户端运行于终端中,终端可以是智能手机、平板电脑、计算机、或者其他任何可供客户端运行的电子设备,在此并不加以限定。

服务端130中安装部署有网络应用程序,可供请求方110进行在线访问,为请求方110执行线上服务。

请参阅图2,在一示例性实施例中,一种更新网络应用程序的方法适用于图1所示实施环境中的服务端130,网络应用程序被安装部署于服务端130,并通过配置的主体程序执行线上服务,主体程序对应的新版本主体程序被预先安装部署。

该种更新网络应用程序的方法可以由服务端130执行,可以包括以下步骤:

在步骤210中,网络应用程序通过旧版本主体程序和旧端口实现线上服务的过程中,接收网络应用程序的在线访问请求,在线访问请求指示请求的线上服务。

其中,首先应当进行说明的是,被安装部署于服务端的网络应用程序,网络应用程序用于实现各种线上服务。为在网络应用程序中实现各种线上服务,将相应配置若干主体程序,进而通过主体程序来实现相应的线上服务。各主体程序之间相互独立。

基于此,网络应用程序的更新,将是对网络应用程序所部署的主体程序执行更新的过程。

在此,对于网络应用程序所安装部署的一主体程序,如需要执行更新,则会在服务端相应安装部署新版本主体程序,而原有的主体程序则是作为旧版本主体程序存在的。

服务端所对应的请求方大都是海量的,其在会不间断的接收到各请求方发起的在线访问请求,进而响应在线访问请求而提供线上服务。这也必将使得网络应用程序更新的执行期间,仍然存在着为某些请求方执行的线上服务,也会继续接收到新发起的在线访问请求。

此时,随着新版本主体程序的安装部署,正为某些请求方执行的线上服务将不会中断,而是通过旧版本主体程序和旧端口继续实现线上服务,新发起的在线访问请求,则会通过新版本主体程序实现其所请求的线上服务,由此,对于请求方而言,即实现了线上服务的更新,实质即为网络应用程序的更新,又不会影响其所请求的线上服务,请求方对所发生的更新是无感知的。

在此应当补充说明的是,对于请求方,其获得的线上服务是通过指定端口与服务端建立连接,进而方可由相应主体程序提供,因此,对于由旧版本主体程序执行的线上服务,请求方是通过配置的旧端口而建立自身与服务端的连接的。

在步骤230中,根据在线访问请求指示的线上服务确定网络应用中线上服务对应的主体程序信息。

其中,请求方向服务端发起的在线访问请求,是针对所需要获得的线上服务发起的,因此,服务端所接收的在线访问请求必然指示了所请求的线上服务。

如前所述的,网络应用程序的每一主体程序,都为实现指定网络应用程序中指定线上服务而部署的。接收到在线访问请求之后,根据在线访问请求指示的线上服务,即可确定此线上服务对应的主体程序,进而相应获得主体程序信息。

主体程序信息指示了主体程序标识以及与主体程序相关的各种属性,对于服务端而言,根据主体程序信息即可为请求方定位当前所需要执行的主体程序,具体而言,在完成更新之后,此主体程序即为新版本主体程序,在未进行更新时,此主体程序即为服务端中唯一存在且用于实现所请求线上服务的程序,相对于后续所发生的更新,其是旧版本程序。

在步骤250中,从配置文件提取与主体程序信息相关的新端口标识和指向信息。

其中,配置文件被存储于服务端,用于控制服务端中主体程序执行线上服务,以及请求方与服务端之间连接的建立。网络应用程序的每一主体程序都在配置文件中存储了相应的配置信息,此配置信息对应于主体程序信息,此配置信息包括与主体程序信息相关的新端口标识和指向信息。

新端口标识和指向信息是在执行更新时,写入配置文件中的。新端口标识所指示的端口,即新端口,区别于旧端口。指向信息指示运行时指向的程序,例如,指向信息可以是软链接的形式。

获得与在线访问请求所指示线上服务对应的主体程序信息之后,即可由此主体程序信息进行配置文件中相应配置信息的查找,进而得到对主体程序信息所指示主体程序执行了更新之后的新端口标识和指向信息。

在步骤270中,按照指向信息创建指向新版本主体程序的进程,触发控制新端口标识为在线访问请求控制新版本主体程序执行线上服务。

其中,为网络应用程序中线上服务的实现创建进程,进而方能够在进程的作用下实现线上服务的执行,并保证请求方通过新端口建立连接,获得线上服务。

具体而言,在执行更新的情况下,根据指向信息所进行的程序指向,创建指向新版本主体程序的进程,并通过新端口来为请求方提供线上服务。

通过如上的示例性实施例,将使得网络应用程序所执行的更新对于请求方而言是透明的,请求方并不需要为网络应用程序中更新的发生而执行任何处理操作,其所请求的线上服务也不会因此而受到任何影响,例如,并不需要停掉即有进程,技术实现成本低。

请参阅图3,在一示例性实施例中,步骤250可以包括以下步骤:

在步骤251中,在配置文件中查找得到对应于主体程序信息的配置信息。

本实施例中,该配置文件是由预先部署的代理程序预先配置的,例如,该代理程序可以是haproxy。

该代理程序不仅可以支持数以万计的并发连接,例如,同时实现为海量用户提供线上服务,还可以支持前端服务端与后端服务集群的分别配置,例如,前端服务端固定配置,后端服务集群动态分配,以此满足负载均衡,有利于提高服务端的处理效率。

在代理应用程序部署过程中,即完成配置文件的配置,进而能够根据配置文件得到对应于主体程序信息的配置信息。

例如,配置信息包括最大连接数、连接超时时间、前端服务端的相关配置、后端服务集群的相关配置等等。其中,新端口和旧端口的配置均属于后端服务集群的相关配置。

在步骤253中,判断配置信息中是否存在新端口和旧端口的配置,如果为是,则执行步骤255,如果为否,则执行步骤257。

在步骤255中,提取新端口标识和指向信息。

在步骤257中,进行所述配置信息所唯一存在端口标识和指向信息的提取。

其中,一主体程序信息所相关的配置信息中,在发生更新时,存在着新端口标识和旧端口标识,无论是新端口标识还是旧端口标识,都有其所相关的指向信息;在未发生更新时,仅唯一存在着一端口标识以及相关的指向信息。

由此,将根据配置信息中端口标识的存在来判断配置信息中是否存在新端口和旧端口。

如果配置信息中存在新端口和旧端口的配置,则说明发生了更新,服务端将存储着旧版本主体程序和新版本主体程序,此时,为响应当前所请求的线上服务,将进行新端口标识和指向信息的提取。

如果配置信息中未存在新端口和旧端口的配置,则说明并未发生更新,服务端仅仅存在着一个版本的主体程序,只需要通过原来的方式响应在线访问请求即可。

在如上所述示例性实施例的作用下,为网络应用程序更新前后的在线服务执行提供了无缝切换的过程,进而即可实现对于请求方来说的无缝更新,请求方无中断感知。

请参阅图4,在一示例性实施例中,步骤270可以包括以下步骤。

在步骤271中,根据指向信息进行的程序指向创建新版本主体程序的进程。

其中,在对接收的在线访问请求进行响应的过程中,为其拉起一进程,此进程是区别于当前所运行且指向旧版本主程序的另一进程,其将通过指向信息所实现的链接而指向新版本主程序。

在步骤273中,触发进程按照新端口标识进行新端口的监听,通过新端口的监听与发起在线访问请求的请求方建立连接。

其中,通过新创建的进程实现新版本主体程序的启动并完成新端口的监听,由此新端口建立服务端与请求方之间的连接。

在步骤275中,通过建立的连接以及更新版本主体程序的执行,为请求方执行线上服务。

在如上所述示例性实施例的配合下,通过新创建进程来实现新版本主体程序的运行以及线上服务的实现,为网络应用中新版本主体程序和旧版本主体程序的线上服务执行提供了可实施的前提条件,以此来保障请求方中线上服务的实现不会受到更新的影响。

请参阅图5,在一示例性实施例中,该种更新网络应用程序的方法,在步骤250之前,还可以包括以下步骤:

在步骤310中,通过主体程序版本更新的执行进行新版本主体程序的存储。

其中,如前所述的,网络应用程序的更新,实质为各主体程序的更新。换而言之,是根据需要,针对已有版本的主体程序,分别进行更新,为其在服务端存储新版本主体程序。

该新版本主体程序可以是由开发人员手动存储至服务端中,还可以是由服务端主动从第三方应用平台中下载并存储,在此并未加以限定。在此应当说明的是,新版本主体程序与已有版本的主体程序,即旧版本主体程序是分别进行存储的,二者相互独立,旧版本主体程序仍然可以正常运行。

具体而言,在一个示例性实施例中,步骤310,包括:触发执行网络应用程序中主体程序的版本更新,将新版本主体程序区别于旧版本主体程序进行存储。

服务端中,新版本主体程序和旧版本主体程序分别存储于不同的存储空间。存储空间可以是服务端所配置硬盘中的某个文件夹,也可以是同一硬盘分区不同目录中的不文件夹,甚至可以是不同硬盘分区不同目录中的不同文件夹,在此也未进行限定。

通过存储空间之间的相互区别,而不以新版本主体程序覆盖旧版本主体程序,实现了网络应用程序不同版本的完全独立,有利于实现网络应用程序更新过程中线上服务的不中断。

在步骤330中,为存储的新版本主体程序在配置文件中进行新端口和程序运行指向的配置,使配置文件中相应存储新端口标识和指向信息。

其中,所配置的新端口,必然是处于空闲状态的端口,其所对应的端口标识便作为新端口标识而在配置文件中唯一标识所配置的新端口。

指向信息则是预先所创建的,在未更新前,指向信息是指向旧版本主体程序的,通过更新的发生,指向信息将指向新版本主体程序。在一个示例性实施例的具体实现中,指向信息是以软链接的形式存在的。

具体而言,软链接被用于链接主体程序,亦即,软链接被用于指向一主体程序。例如,未更新前,当软链接指向一旧版本主体程序时,通过软链接的指向而启动旧版本主体程序;更新后,软链接指向新版本主体程序,通过软链接的指向而启动新版本主体程序。

如前所述,对于一主体程序信息指示的主体程序而言,其新版本主体程序和旧版本主体程序分别存储于不同的存储空间,为此,在安装部署了新版本主体程序之后,将对软链接,即指向信息进行修改,即使得软链接由旧版本主体程序的指向替换为新版本主体程序的指向,以便于再次执行相应线上服务时,能够根据替换后的软链接启动新版本主体程序。

软链接将作为网络应用程序对应版本的一个标记文件,即,根据软链接进行的读操作或写操作,实质上是对主体程序对应版本的读操作或写操作。

当软链接被删除时,仅仅是删除软链接本身,而并非删除相应版本的主体程序,因此采用软链接进行网络应用中的版本迭代控制,能够有效的避免对网络应用程序版本的误操作,尤其是误删除,进而有效的提高了网络应用程序更新的安全性。

请参阅图6,在一示例性实施例中,该步骤330,可以包括以下步骤:

在步骤331中,为新版本主体程序配置使用状态为空闲状态的端口为新端口,并相应获得新端口标识。

其中,端口的使用状态包括空闲状态和占用状态。端口处于空闲状态则表示还未有进程使用该端口。相对地,端口处于占用状态则表示已进行了该端口的使用。

在一个示例性实施例的具体实现中,为实现端口的配置,从预设端口集合确定一使用状态为空闲状态的端口,以此端口作为新端口。

预设端口集合是指tcp/ip协议中的端口,其对应的端口号范围是0~65535。

进一步的,由于端口号0~1023所对应的端口通常无法动态分配,因此,能够可以使用端口号范围是1024~65535的端口作为新端口进行配置。

在步骤333中,为新版本主体程序进行程序运行指向的配置,在配置文件中相应存储指向新版本主体程序的指向信息和新端口标识。

请参阅图7,在一实际应用场景中,服务端中安装部署了商城应用程序currentstore,该商城应用程序currentstore通过配置的5个主体程序执行线上服务。其中,5个主体程序分别是pvp、purchase、loot、admin和catalog。

同时,服务端中还安装部署了代理程序haproxy,以通过该代理程序haproxy所配置的配置文件获取主体程序信息相关的新端口标识和指向信息。

下面对游戏玩家在商城应用程序更新时在线访问网络商城的过程加以描述。

在商城应用程序currentstore未更新之前,分别通过5个旧版本主体程序和对应的旧端口oldport实现线上服务,即向游戏玩家提供在线访问。

当商城应用程序currentstore需要进行更新时,将预先安装部署其5个主体程序对应的新版本主体程序。

进一步地,商城应用程序currentstore继续通过5个旧版本主体程序和对应的旧端口oldport实现线上服务的过程中,会接收到游戏玩家发起的在线访问请求,此时,将通过安装部署的5个新版本主体程序、以及配置文件中提取的新端口标识对应的新端口newport执行线上服务,即使游戏玩家在线访问网络商城。

通过如上所述的过程,在商城应用程序进行更新的过程中,游戏玩家正在进行的在线访问不会受到更新的影响,而新请求的在线访问也将通过新版本主体程序被响应,即游戏玩家可以随时访问网络商城,完全感知不到商城应用程序的更新,实现了商城应用程序的动态无缝更新,完全避免对游戏玩家在线方位所造成的干扰,从而大大地提高了游戏玩家的访问体验。

下述为本公开装置实施例,可以用于执行本公开所涉及的网络应用程序升级的方法。对于本公开装置实施例中未披露的细节,请参照本公开所涉及的网络应用程序升级的方法实施例。

请参阅图8,在一示例性实施例中,一种更新网络应用程序的装置700,所述网络应用程序通过配置的主体程序执行线上服务,所述主体程序对应的新版本主体程序被预先安装部署,所述装置700包括:

其中,请求接收模块710,用于网络应用程序通过旧版本主体程序和旧端口实现线上服务的过程中,接收网络应用程序的在线访问请求,在线访问请求指示请求的线上服务。

信息确定模块730,用于根据在线访问请求指示的线上服务确定网络应用程序中线上服务对应的主体程序信息。

信息提取模块750,用于从配置文件提取与主体程序信息相关的新端口标识和指向信息。

线上服务模块770,用于按照指向信息创建指向新版本主体程序的进程,触发进程根据新端口标识为在线访问请求控制新版本主体程序执行线上服务。

请参阅图9,在一示例性实施例中,信息提取模块750包括:

其中,信息获取单元751,用于在配置文件中查找得到对应于主体程序信息的配置信息。

信息判断单元753,用于判断配置信息中是否存在新端口和旧端口的配置,如果为是,则提取新端口标识和指向信息。

请参阅图10,在一示例性实施例中,线上服务模块770包括:

其中,进程创建单元771,用于根据指向信息进行的程序指向创建指向新版本主体程序的进程。

连接建立单元773,用于触发进程按照新端口标识进行新端口的监听,通过新端口的监听与发起在线访问请求的请求方建立连接。

线上服务单元775,用于通过建立的连接以及更新版本主体程序的执行,为请求方执行线上服务。

请参阅图11,在一示例性实施例中,如上所述的装置700还包括:

其中,版本存储模块810,用于通过主体程序版本更新的执行进行新版本主体程序的存储。

配置模块830,用于为存储的新版本主体程序在配置文件中进行新端口和程序运行指向的配置,使配置文件中相应存储新端口标识和指向信息。

在一示例性实施例中,版本存储模块810包括:

其中,存储单元,用于触发执行网络应用程序中主体程序的版本更新,将新版本主体程序区别于旧版本主体程序进行存储。

请参阅图12,在一示例性实施例中,配置模块830包括:

其中,端口配置单元831,用于为新版本主体程序配置使用状态为空闲状态的端口为新端口,并相应获得新端口标识。

配置存储单元833,用于为新版本主体程序进行程序运行指向的配置,在配置文件中相应存储指向新版本主体程序的指向信息和新端口标识。

需要说明的是,上述实施例所提供的网络应用程序升级的装置在进行网络应用程序升级时,仅以上述各功能模块的划分进行举例说明,实际应用程序中,可以根据需要而将上述功能分配由不同的功能模块完成,即网络应用程序升级的装置的内部结构将划分为不同的功能模块,以完成以上描述的全部或者部分功能。

另外,上述实施例所提供的网络应用程序升级的装置与网络应用程序升级的方法的实施例属于同一构思,其中各个模块执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。

图13是根据一示例性实施例示出的一种服务端的硬件结构框图。该硬件结构只是一个适用本公开的示例,不能认为是对本公开的使用范围的任何限制,也不能解释为本公开需要依赖于该服务端1000。

该服务端1000可因配置或者性能的不同而产生较大的差异,如图10所示,服务端1000包括:电源1010、接口1030、至少一存储介质1050、以及至少一中央处理器(cpu,centralprocessingunits)1070。

其中,电源1010用于为服务端1000上的各硬件设备提供工作电压。

接口1030包括至少一有线或无线网络接口1031、至少一串并转换接口1033、至少一输入输出接口1035以及至少一usb接口1037等,用于与外部设备通信。

存储介质1050作为资源存储的载体,可以是随机存储介质、磁盘或者光盘等,其上所存储的资源包括操作系统1051、网络应用程序1053及数据1055等,存储方式可以是短暂存储或者永久存储。其中,操作系统1051用于管理与控制服务端1000上的各硬件设备以及网络应用程序1053,以实现中央处理器1070对海量数据1055的计算与处理,其可以是windowsservertm、macosxtm、unixtm、linuxtm、freebsdtm等。网络应用程序1053是基于操作系统1051之上完成至少一项特定工作的计算机程序,其可以包括至少一模块(图中未示出),每个模块都可以分别包含有对服务端1000的一系列操作指令。数据1055可以是存储于磁盘中的照片、图片等等。

中央处理器1070可以包括一个或多个以上的处理器,并设置为通过总线与存储介质1050通信,用于运算与处理存储介质1050中的海量数据1055。

如上面所详细描述的,适用本公开的服务端1000将进行网络应用程序的更新,即通过中央处理器1070读取存储介质1050中存储的一系列操作指令的形式避免网络应用程序的更新对在线访问所造成的干扰。

此外,通过硬件电路或者硬件电路结合软件指令也能同样实现本公开,因此,实现本公开并不限于任何特定硬件电路、软件以及两者的组合。

上述内容,仅为本公开的较佳示例性实施例,并非用于限制本公开的实施方案,本领域普通技术人员根据本公开的主要构思和精神,可以十分方便地进行相应的变通或修改,故本公开的保护范围应以权利要求书所要求的保护范围为准。

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