掌桥专利:专业的专利平台
掌桥专利
首页

应用程序更新方法、计算设备及计算机存储介质

文献发布时间:2023-06-19 19:38:38


应用程序更新方法、计算设备及计算机存储介质

技术领域

本发明实施例涉及通信软件技术领域,尤其涉及一种应用程序更新方法、计算设备及计算机存储介质。

背景技术

应用程序是针对用户的某种应用目的所撰写的软件,通过不同的应用程序可以为用户提供不同的服务。而在实际应用中,出于扩展功能、修复漏洞、提升用户体验等目的,常常需要对应用程序进行更新。

相关技术中,通常采用物理应用程序重新打包推送的方式实现应用程序的更新。然而,在物理应用程序重新打包推送的应用程序的更新过程中,需要对源代码进行多次处理以及传递,而每次处理和传递均需要消耗一定时间,导致应用程序无法及时更新。

因而,如何提高应用程序的更新的实时性成为亟待解决的技术问题。

发明内容

本发明实施例提供一种应用程序更新方法、装置、系统、计算设备及计算机存储介质。

第一方面,本发明实施例中提供了一种应用程序更新方法,应用于应用程序,所述方法包括:

响应于应用程序启动,基于服务端暴露于公网的网络端口向所述服务端发送网络连接请求,且所述应用程序的网络端口不暴露于公网中;

建立与所述服务端的网络连接,且所述应用程序的网络端口不暴露于公网中;

获取所述服务端基于所述网络连接返回的更新数据,其中,所述更新数据由所述服务端检测到生成所述应用程序的更新数据后发送;

利用所述更新数据对所述应用程序进行更新。

第二方面,本发明实施例中提供了一种应用程序更新方法,包括:

获取来自应用程序的网络连接请求,所述网络连接请求由所述应用程序通过服务端预先暴露于公网的网络端口发送,且所述应用程序的网络端口不暴露于公网中;

响应于所述网络连接请求,建立与所述应用程序的网络连接;

检测是否生成所述应用程序的更新数据;

响应于所述更新数据生成,将所述更新数据基于所述网络连接发送至所述应用程序,以便所述应用程序利用所述更新数据进行更新。

第三方面,本发明实施例中提供了一种应用程序更新装置,包括:

连接请求模块,用于响应于应用程序启动,基于服务端暴露于公网的网络端口向所述服务端发送网络连接请求,且所述应用程序的网络端口不暴露于公网中;

第一连接建立模块,用于建立与所述服务端的网络连接,且所述应用程序的网络端口不暴露于公网中;

数据获取模块,用于获取所述服务端基于所述网络连接返回的更新数据,其中,所述更新数据由所述服务端检测到生成所述应用程序的更新数据后发送;

更新模块,用于利用所述更新数据对所述应用程序进行更新。

第四方面,本发明实施例中提供了一种应用程序更新装置,包括:

请求获取模块,用于获取来自应用程序的网络连接请求,所述网络连接请求由所述应用程序通过服务端预先暴露于公网的网络端口发送,且所述应用程序的网络端口不暴露于公网中;

第二连接建立模块,用于响应于所述网络连接请求,建立与所述应用程序的网络连接;

更新检测模块,用于检测是否生成所述应用程序的更新数据;

数据发送模块,用于响应于所述更新数据生成,将所述更新数据基于所述网络连接发送至所述应用程序,以便所述应用程序利用所述更新数据进行更新。

第五方面,本发明实施例中提供了一种应用程序更新系统,包括:

应用程序,用于响应应用程序启动,基于服务端暴露于公网的网络端口向所述服务端发送网络连接请求,且所述应用程序的网络端口不暴露于公网中;获取所述服务端基于所述网络连接返回的更新数据;利用所述更新数据对所述应用程序进行更新;

服务端,用于获取来自所述应用程序的网络连接请求,建立与所述应用程序的网络连接,并检测是否生成所述应用程序的更新数据,响应于所述更新数据生成,将所述更新数据基于所述网络连接发送至所述应用程序。

第六方面,本发明实施例中提供了一种计算设备,包括处理组件以及存储组件;

所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行,实现如本发明实施例提供的应用程序更新方法。

第七方面,本发明实施例中提供了一种计算机存储介质,存储有计算机程序,所述计算程序被计算机执行时,实现如本发明实施例提供的应用程序更新方法。

本发明实施例提供了一种应用程序更新方法,通过采用响应于应用程序启动,基于服务端暴露于公网的网络端口向所述服务端发送网络连接请求,且所述应用程序的网络端口不暴露于公网中;建立与所述服务端的网络连接;获取所述服务端基于所述网络连接返回的更新数据,其中,所述更新数据由所述服务端检测到生成所述应用程序的更新数据后发送;利用所述更新数据对所述应用程序进行更新的技术方案,一方面,采用了热更新推送的应用程序更新方式,缩短了应用程序的更新时间,提高了应用程序更新的实时性,另一方面,当应用程序启动后,是由应用程序主动基于服务端暴露的网络端口向服务端发起网络连接请求并建立网络连接,并接收服务端基于预先建立的网络连接返回的更新数据并执行更新,即只能由应用程序单向地向服务端建立网络连接,因而,解决了将应用程序和服务端的集群网络双向打通以及暴露应用程序的网络端口导致的应用程序遭受网络攻击的风险较高的技术问题,实现了提供应用程序的集群网络的安全性的技术效果。

本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了一种可以应用于本发明实施例的技术方案的系统架构图;

图2示意性示出了本发明一个实施例提供的一种应用程序更新方法的流程图;

图3示意性示出了本发明实施例提供的应用程序更新方法的示意图;

图4示意性示出了本发明实施例提供的应用程序更新方法的示意图;

图5示意性示出了本发明另一实施例提供的一种应用程序更新方法的流程图;

图6示意性示出了本发明一个实施例提供的一种应用程序更新装置的框图;

图7示意性示出了本发明另一实施例提供的一种应用程序更新装置的框图;

图8示意性示出了本发明一个实施例提供的一种计算设备的框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

需要说明的是,本发明所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

应用程序是针对用户的某种应用目的所撰写的软件,通过不同的应用程序可以为用户提供不同的服务。而在实际应用中,出于扩展功能、修复漏洞、提升用户体验等目的,常常需要对应用程序进行更新。

相关技术中,通常采用物理应用程序重新打包推送的方式实现应用程序的更新。具体而言,应用程序开发平台从代码仓库中拉取开发完成的源代码,在开发环境中对源代码进行编译、打包得到代码包。生成代码包后,需要将代码包转换成容器镜像部署至镜像仓库中,等待运行应用程序的容器从镜像仓库中拉取容器镜像并运行,完成应用程序的更新。在上述应用程序的更新过程中,需要对源代码进行多次处理以及传递,而每次处理和传递均需要消耗一定时间,导致应用程序更新时间较长。

因而,如何缩短应用程序的更新时间成为亟待解决的技术问题。

为了解决相关技术中存在的技术问题,发明人经研究发现,可以采用热更新推送的方法,即应用程序开发平台在开发生成更新数据后,将更新数据直接推送至应用程序,使应用程序的运行时引擎在线对更新数据进行加载,以缩短应用程序的更新时间。具体而言,本发明实施例提供了一种应用程序更新方法,通过采用响应于应用程序启动,基于服务端暴露的网络端口向服务端发送网络连接请求;建立与服务端的网络连接;获取服务端基于网络连接返回的更新数据,其中,更新数据由服务端检测到生成应用程序的更新数据后发送;利用更新数据对应用程序进行更新的技术方案,一方面,采用了热更新推送的应用程序更新方式,缩短了应用程序的更新时间,提高了应用程序更新的实时性,另一方面,当应用程序启动后,是由应用程序主动基于服务端暴露的网络端口向服务端发起网络连接请求并建立网络连接,并接收服务端基于预先建立的网络连接返回的更新数据并执行更新,即只能由应用程序单向地向服务端建立网络连接,因而,解决了将应用程序和服务端的集群网络双向打通以及暴露应用程序的网络端口导致的应用程序遭受网络攻击的风险较高的技术问题,实现了提供应用程序的集群网络的安全性的技术效果。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1示出了一种可以应用于本发明实施例的技术方案的系统架构图,该系统架构可以包括应用程序101以及服务端102。

其中,应用程序101与服务端102之间通过网络建立连接。网络为应用程序101与服务端102之间提供了通信链路的介质。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

应用程序101通过网络可以与服务端102交互以接收或发送消息等。

其中,应用程序101可以为浏览器、APP(Application,应用程序)、或网页应用如H5(HyperText Markup Language5,超文本标记语言第5版)应用、或轻应用(也被称为小程序,一种轻量级应用程序)或云应用等,应用程序101可以部署在电子设备中,需要依赖设备运行或者设备中的某些app而运行等。电子设备例如可以具有显示屏并支持信息浏览等,如可以是个人移动终端如手机、平板电脑、个人计算机等,为了便于理解,图1中主要以设备形象表示应用程序。在电子设备中通常还可以配置各种其它类应用,例如人机对话类应用、模型训练类应用、文本处理类应用、网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。

服务端102可以包括提供各种服务的服务器,例如为应用程序101上使用的模型提供支持的用于后台训练的服务器,又如对应用程序发送的交互信息进行处理的服务端等。

需要说明的是,服务端102可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。服务器也可以是云服务器,或者是带人工智能技术的智能云计算服务器或智能云主机。

应该理解,图1中的应用程序和服务端的数目仅仅是示意性的。根据实现需要,可以具有任意数目的应用程序和服务端。

以下对本发明实施例的技术方案的实现细节进行详细阐述。

图2示意性示出了本发明一个实施例提供的一种应用程序更新方法的流程图,图2示出的应用程序更新方法可以应用于应用程序,具体可以包括以下步骤:

201,响应于应用程序启动,基于服务端暴露于公网的网络端口向服务端发送网络连接请求,且应用程序的网络端口不暴露于公网中;

202,建立与服务端的网络连接,且应用程序的网络端口不暴露于公网中;

203,获取服务端基于网络连接返回的更新数据,其中,更新数据由服务端检测到生成应用程序的更新数据后发送;

204,利用更新数据对应用程序进行更新。

根据本发明的实施例,服务端可以包括应用程序的开发方,例如应用程序开发平台,应用程序可以由应用程序开发平台开发完成后交付给应用程序的使用方使用。

在本发明的实施例中,应用程序开发平台可以包括以可视化配置开发为主,无需代码或通过少量代码即可构建应用程序的开发平台。

根据本发明的实施例,应用程序可以包括网页应用、本地应用、云应用等。相应的,应用程序开发平台在开发完成并交付给使用方后,使用方可以将应用程序部署在本地服务器、虚拟机、云服务器、容器实例中,以为应用程序的运行提供计算资源、存储资源。

根据本发明的实施例,由于应用程序开发平台负责应用程序的开发,因而,当应用程序需要进行更新时,通常也是由应用程序开发平台开发完成更新数据,并将更新数据推送至应用程序的方式实现应用程序的更新。

根据本发明的实施例,应用程序开发平台与应用程序的使用方可以在互相隔离的集群网络中,从而,部署应用程序的本地服务器、虚拟机、云服务器、容器实例与应用程序开发平台也存在于不同网络集群中。

由于应用程序开发平台与应用程序的使用方存在网络隔离,在本发明实施例中,为了建立应用程序开发平台与应用程序的使用方之间的网络连接,是由服务端预先将网络端口暴露在公网中,以便于应用程序的使用方调用请求到该网络端口,而应用程序则始终不需要将网络端口暴露在公网中,避免应用程序遭受到网络攻击,降低了应用程序的网络安全风险。

根据本发明的实施例,由于服务端是应用程序的开发和管理方,因而服务端通常需要频繁的与多个应用程序进行网络通信,相较于应用程序,服务端的网络安全措施通常较为丰富且稳定,因而服务端将网络端口暴露在公网中时,不会对服务端的网络安全造成影响。

根据本发明的实施例,响应于应用程序启动,基于服务端暴露的网络端口向服务端发送网络连接请求具体可以实现为:

响应于应用程序启动,确定与服务端对应的网络协议;

基于网络协议调用网络端口,以向向服务端发送网络连接请求。

根据本发明的实施例,应用程序开发平台可以将预设网络协议的网络端口暴露在公网中,预设网络协议可以由应用程序开发平台和应用程序的使用方协商一致,例如,网络端口可以包括超文本传输协议(Hyper Text Transfer Protocol,HTTP)的网络端口、TCP/IP(Transport Control Protocol/Internet Protocol,传输控制协议/Internet协议)的网络端口、用户数据报协议(User Datagram Protocol,UDP)的网络端口等。

图3示意性示出了本发明实施例提供的应用程序更新方法的示意图。

在图3中,301可以表示应用程序,302可以表示应用程序的开发平台。

如图3所示,在本发明实施例中,应用程序可以无需暴露自身网络端口,而仅由应用程序开发平台将网络端口暴露在公网中,即应用程序和应用程序开发平台仅支持单向的网络连接,仅可以由应用程序在存在应用更新需求时主动向应用程序开发平台建立网络连接,并且,应用程序开发平台在生成更新数据后,也是通过预先建立的网络连接将更新数据推送至应用程序,从而,由于应用程序无需暴露自身网络端口,并且无需与应用程序开发平台的网络双向打通,提高了应用程序所在集群网络的网络安全性。

根据本发明的实施例,应用程序与应用程序开发平台建立的网络连接可以为长连接,通过该网络连接,应用程序可以对应用程序开发平台实现轮询、长轮询,从而可以对应用程序开发平台是否生成应用程序的更新数据进行检测,并及时获取生成的更新数据。

根据本发明的实施例,在应用程序启动成功后,应用程序即可主动地与应用程序开发平台建立网络连接。网络连接建立后,在应用程序开发平台处没有生成应用程序的更新数据的情况下,应用程序无需频繁的基于建立的网络连接与应用程序开发平台进行数据的交互,而仅需进行心跳检测,以保证网络连接的畅通。

根据本发明的实施例,为了进一步保证应用程序更新的实时性,网络连接建立后,应用程序可以按照预设轮询频率向应用程序开发平台发送长轮询请求。应用开发平台在接收到长轮询请求后,会首先检查是否有应用程序的更新数据生成,若有,则立即对长轮询请求进行响应,将更新数据发送至应用程序开发平台,若当前没有更新数据产生,则应用程序开发平台会将长轮询请求挂起,并在将长轮询请求挂起的时间段内,异步的检测是否有更新数据生成,若有,则在更新数据生成后,唤醒挂起的长轮询请求,并对长轮询请求进行相应,若没有更新数据生成,则不再相应该长轮询请求。

根据本发明的实施例,长轮询请求的预设轮询频率可以由本领域技术人员根据对应用程序更新的实时性的要求进行灵活设置。

根据本发明的实施例,应用程序开发平台建立与应用程序的网络连接后,即可以实时或基于一时间间隔地检测应用程序开发平台中是否有该应用程序的更新数据生成,并在有该应用程序的更新数据生成后,及时将更新数据通过网络连接推送至应用程序。

在本发明的实施例中,虽然是由应用程序主动与应用程序开发平台建立网络连接,但是网络建立后应用程序无需频繁的基于建立的网络连接向应用程序开发平台发送更新请求,而是由应用程序开发平台在建立网络连接后,异步检测本地是否有应用程序的更新数据生成,并在本地有应用程序的更新数据生成的情况下,将更新数据通过网络连接返回应用程序。

根据本发明的实施例,应用程序开发平台在开发应用程序时,可以在应用程序中部署运行时引擎,运行时引擎被配置为可以执行来自应用程序开发平台的应用数据的执行逻辑,以实现应用程序的运行。

根据本发明的实施例,应用程序开发平台将更新数据发送至应用程序后,可以由运行时引擎接收更新数据,并执行更新数据所指示的更新后的执行逻辑,实现应用程序的更新。

在本发明的实施例中,通过采用响应于应用程序启动,基于服务端暴露的网络端口向服务端发送网络连接请求;建立与服务端的网络连接;获取服务端基于网络连接返回的更新数据,其中,更新数据由服务端检测到生成应用程序的更新数据后发送;利用更新数据对应用程序进行更新的技术方案,一方面,采用了热更新推送的应用程序更新方式,缩短了应用程序的更新时间,提高了应用程序更新的实时性,另一方面,当应用程序启动后,是由应用程序主动基于服务端暴露的网络端口向服务端发起网络连接请求并建立网络连接,并接收服务端基于预先建立的网络连接返回的更新数据并执行更新,即只能由应用程序单向地向服务端建立网络连接,因而,解决了将应用程序和服务端的集群网络双向打通以及暴露应用程序的网络端口导致的应用程序遭受网络攻击的风险较高的技术问题,实现了提供应用程序的集群网络的安全性的技术效果。

根据本发明的实施例,应用程序更新方法还包括:

对网络连接进行检测,以确定网络连接是否满足预设条件;

在网络连接满足预设条件的情况下,重新向服务端发送网络连接请求,以重新建立与服务端的网络连接。

根据本发明的实施例,在与应用程序开发平台建立网络连接后,应用程序可以实时地或者按照预设时间间隔对网络连接进行检测。

根据本发明的实施例,用于触发重新建立网络连接的预设条件可以由本领域技术人员根据实际地应用需求进行灵活设定,该预设条件可以用于表征已建立的网络连接的稳定性较低,需要重新建立网络连接。

根据本发明的一个实施例,对网络连接进行检测,以确定网络连接是否满足预设条件具体可以实现为:

确定网络连接的建立时长,基于建立时长确定网络连接是否满足预设条件。

根据本发明的实施例,预设条件例如可以设置为网络连接的建立时长等于预设时长,预设时长例如可以为30分钟、1小时、5小时等。

根据本发明的实施例,为了保证网络连接的稳定性,可以定时断开已建立的网络连接,然后立即重新建立新的网络连接。例如,当连续30分钟或者1小时等没有接收到来自应用程序开发平台的更新数据的情况下,断开已建立的网络连接,然后重新向应用程序开发平台发送网络连接请求,以重新建立与服务端的网络连接。

根据本发明的另一个实施例,对网络连接进行检测,以确定网络连接是否满足预设条件具体可以实现为:

确定网络连接的连接质量,基于连接质量确定网络连接是否满足预设条件。

根据本发明的实施例,网络连接的连接质量可以包括多种质量参数,例如丢包率参数、延迟参数等。

根据本发明的实施例,预设条件可以包括每种质量参数的基准参数值,当确定连接质量中的任一质量参数的参数值与对应的基准参数值不匹配的情况下,即可以确定网络连接满足预设条件,即此时网络连接的连接质量较低,可以断开已建立的网络连接,然后重新向应用程序开发平台发送网络连接请求,以重新建立与服务端的网络连接。

根据本发明的实施例,更新数据用于指示应用程序的执行逻辑,应用程序包括与更新数据对应的待更新数据。

根据本发明的实施例,更新数据可以包括基于应用程序开发平台构建的应用程序的结构化描述模型数据,用于指示应用程序的执行逻辑。

根据本发明的实施例,利用更新数据执行应用程序更新操作具体可以实现为:

确定更新数据是否下载完成;

在更新数据未下载完成的情况下,执行待更新数据所指示的执行逻辑;

在更新数据下载完成的情况下,利用更新数据替换待更新数据,以执行更新数据所指示的执行逻辑。

根据本发明的实施例,例如应用程序中包括正在被运行的待更新数据A,然而,在应用程序开发平台中,针对待更新数据A进行了更新,生成了更新数据A

根据本发明的实施例,利用更新数据替换待更新数据后,应用程序更新方法还包括:

删除待更新数据。

根据本发明的实施例,应用程序更新方法还包括:

获取服务端基于网络连接发送的运维指令;

执行运维指令。

根据本发明的实施例,当应用程序建立与应用程序开发平台的网络连接后,应用程序开发平台可以基于预先创建的网络连接向应用程序发送运维指令,运维指令例如可以包括重启指令、健康度检查指令等。

图4示意性示出了本发明实施例提供的应用程序更新方法的示意图。

在本发明的实施例,应用程序可以包括云应用、网页应用、本地应用等。以下将以应用程序为云应用作为具体实现方式说明本发明实施例提供过的应用程序的更新方法。

如图4所示,401可以表示部署云应用的容器,402可以表示应用程序开发平台。

在容器401中部署的云应用启动后,容器401可以基于应用程序开发平台402暴露的网络端口向应用程序开发平台402发送网络连接请求,应用程序开发平台402响应于网络连接请求可以建立与容器401之间的网络连接。

由于通常容器401更新是低频操作,因而网络连接建立后,并非经常需要传输生成的更新数据,从而容器401可以对建立的网络连接进行检测,当检测到一定时间内没有更新数据的传输或者网络连接的连接质量较低,则容器401可以断开已建立的网络连接,然后立即重新向应用程序开发平台402发送新的网络连接请求,以建立新的网络连接。

当应用程序开发平台402检测到有与该容器401对应的更新数据生成的情况下,可以基于预先建立的网络连接将生成更新数据推送至容器401。

图5示意性示出了本发明另一实施例提供的一种应用程序更新方法的流程图,图5示出的应用程序更新方法可以由服务端执行,具体可以包括以下步骤:

501,获取来自应用程序的网络连接请求,网络连接请求由应用程序通过服务端预先暴露与公网的网络端口发送,且应用程序的网络端口不暴露于公网中;

502,响应于网络连接请求,建立与应用程序的网络连接;

503,检测是否生成应用程序的更新数据;

504,响应于更新数据生成,将更新数据基于网络连接发送至应用程序,以便应用程序利用更新数据进行更新。

根据本发明的实施例,服务端可以包括应用程序的开发方,例如应用程序开发平台,应用程序可以由应用程序开发平台开发完成后交付给应用程序的使用方使用。

在本发明的实施例中,应用程序开发平台可以包括以可视化配置开发为主,无需代码或通过少量代码即可构建应用程序的开发平台。

根据本发明的实施例,应用程序可以包括网页应用、本地应用、云应用等。相应的,应用程序开发平台在开发完成并交付给使用方后,使用方可以将应用程序部署在本地服务器、虚拟机、云服务器、容器实例中,以为应用程序的运行提供计算资源、存储资源。

根据本发明的实施例,由于应用程序开发平台负责应用程序的开发,因而,当应用程序需要进行更新时,通常也是由应用程序开发平台开发完成更新数据,并将更新数据推送至应用程序的方式实现应用程序的更新。

根据本发明的实施例,应用程序开发平台与应用程序的使用方可以在互相隔离的集群网络中,从而,部署应用程序的本地服务器、虚拟机、云服务器、容器实例与应用程序开发平台也存在于不同网络集群中。

由于应用程序开发平台与应用程序的使用方存在网络隔离,在本发明实施例中,为了建立应用程序开发平台与应用程序的使用方之间的网络连接,是由服务端预先将网络端口暴露在公网中,以便于应用程序的使用方调用请求到该网络端口。

根据本发明的实施例,应用程序开发平台可以将预设网络协议的网络端口暴露在公网中,预设网络协议可以由应用程序开发平台和应用程序的使用方协商一致,例如,网络端口可以包括超文本传输协议(Hyper Text Transfer Protocol,HTTP)的网络端口、TCP/IP(Transport Control Protocol/Internet Protocol,传输控制协议/Internet协议)的网络端口、用户数据报协议(User Datagram Protocol,UDP)的网络端口等。

在本发明实施例中,应用程序的使用者可以无需暴露自身网络端口,而仅由应用程序开发平台将网络端口暴露在公网中,即应用程序的使用者和应用程序开发平台仅支持单向的网络连接,仅可以由应用程序的使用者在存在应用更新需求时主动向应用程序开发平台建立网络连接,并且,应用程序开发平台在生成更新数据后,也是通过预先建立的网络连接将更新数据推送至应用程序,从而,由于应用程序使用者无需暴露自身网络端口,并且无需与应用程序开发平台的网络双向打通,提高了应用程序使用者所在集群网络的网络安全性。

根据本发明的实施例,应用程序与应用程序开发平台建立的网络连接可以为长连接,通过该网络连接,应用程序可以对应用程序开发平台实现轮询、长轮询,从而可以对应用程序开发平台是否生成应用程序的更新数据进行检测,并及时获取生成的更新数据。

根据本发明的实施例,在应用程序启动成功后,应用程序即可主动地与应用程序开发平台建立网络连接。网络连接建立后,在应用程序开发平台处没有生成应用程序的更新数据的情况下,应用程序无需频繁的基于建立的网络连接与应用程序开发平台进行数据的交互,而仅需进行心跳检测,以保证网络连接的畅通。

根据本发明的实施例,为了进一步保证应用程序更新的实时性,网络连接建立后,应用程序可以按照预设轮询频率向应用程序开发平台发送长轮询请求。应用开发平台在接收到长轮询请求后,会首先检查是否有应用程序的更新数据生成,若有,则立即对长轮询请求进行响应,将更新数据发送至应用程序开发平台,若当前没有更新数据产生,则应用程序开发平台会将长轮询请求挂起,并在将长轮询请求挂起的时间段内,异步的检测是否有更新数据生成,若有,则在更新数据生成后,唤醒挂起的长轮询请求,并对长轮询请求进行相应,若没有更新数据生成,则不再相应该长轮询请求。

根据本发明的实施例,长轮询请求的预设轮询频率可以由本领域技术人员根据对应用程序更新的实时性的要求进行灵活设置。

根据本发明的实施例,应用程序开发平台建立与应用程序的网络连接后,即可以实时或基于一时间间隔地检测应用程序开发平台中是否有该应用程序的更新数据生成,并在有该应用程序的更新数据生成后,及时将更新数据通过网络连接推送至应用程序。

在本发明的实施例中,虽然是由应用程序主动与应用程序开发平台建立网络连接,但是网络建立后应用程序无需频繁的基于建立的网络连接向应用程序开发平台发送更新请求,而是由应用程序开发平台在建立网络连接后,异步检测本地是否有应用程序的更新数据生成,并在本地有应用程序的更新数据生成的情况下,将更新数据通过网络连接返回应用程序。

根据本发明的实施例,应用程序开发平台在开发应用程序时,可以在应用程序中部署运行时引擎,运行时引擎被配置为可以执行来自应用程序开发平台的应用数据的执行逻辑,以实现应用程序的运行。

根据本发明的实施例,应用程序开发平台将更新数据发送至应用程序后,可以由运行时引擎接收更新数据,并执行更新数据所指示的更新后的执行逻辑,实现应用程序的更新。

在本发明的实施例中,通过采用响应于应用程序启动,基于服务端暴露的网络端口向服务端发送网络连接请求;建立与服务端的网络连接;获取服务端基于网络连接返回的更新数据,其中,更新数据由服务端检测到生成应用程序的更新数据后发送;利用更新数据对应用程序进行更新的技术方案,一方面,采用了热更新推送的应用程序更新方式,缩短了应用程序的更新时间,提高了应用程序更新的实时性,另一方面,当应用程序启动后,是由应用程序主动基于服务端暴露的网络端口向服务端发起网络连接请求并建立网络连接,并接收服务端基于预先建立的网络连接返回的更新数据并执行更新,即只能由应用程序单向地向服务端建立网络连接,因而,解决了将应用程序和服务端的集群网络双向打通以及暴露应用程序的网络端口导致的应用程序遭受网络攻击的风险较高的技术问题,实现了提供应用程序的集群网络的安全性的技术效果。

本发明一个实施例还提供了一种应用程序更新系统,应用程序更新系统包括:

应用程序,用于响应应用程序启动,基于服务端暴露于公网的网络端口向服务端发送网络连接请求,且应用程序的网络端口不暴露于公网中;获取服务端基于网络连接返回的更新数据;利用更新数据对应用程序进行更新;

服务端,用于获取来自应用程序的网络连接请求,建立与应用程序的网络连接,并检测是否生成应用程序的更新数据,响应于更新数据生成,将更新数据基于网络连接发送至应用程序。

图6示意性示出了本发明一个实施例提供的一种应用程序更新装置的框图,如图6所示,应用程序更新装置600可以包括:

连接请求模块601,用于响应于应用程序启动,基于服务端暴露于公网的网络端口向服务端发送网络连接请求,且应用程序的网络端口不暴露于公网中;

第一连接建立模块602,用于建立与服务端的网络连接;

数据获取模块603,用于获取服务端基于网络连接返回的更新数据,其中,更新数据由服务端检测到生成应用程序的更新数据后发送;

更新模块604,用于利用更新数据对应用程序进行更新。

根据本发明的实施例,应用程序更新装置600还包括:

检测模块,用于对网络连接进行检测,以确定网络连接是否满足预设条件;

重连模块,用于在网络连接满足预设条件的情况下,重新向服务端发送网络连接请求,以重新建立与服务端的网络连接。

根据本发明的实施例,检测模块包括:

第一检测单元,用于确定网络连接的建立时长,基于建立时长确定网络连接是否满足预设条件;

或者,

第二检测单元,用于确定网络连接的连接质量,基于连接质量确定网络连接是否满足预设条件。

根据本发明的实施例,更新数据用于指示应用程序的执行逻辑,应用程序包括与更新数据对应的待更新数据。

根据本发明的实施例,更新模块604包括:

第一确定单元,用于确定更新数据是否下载完成;

第一执行单元在更新数据未下载完成的情况下,执行待更新数据所指示的执行逻辑;

第二执行单元,用于在更新数据下载完成的情况下,利用更新数据替换待更新数据,以执行更新数据所指示的执行逻辑。

根据本发明的实施例,应用程序更新装置600还包括:

删除模块,用于删除待更新数据。

根据本发明的实施例,应用程序更新装置600还包括:

指令获取模块,用于获取服务端基于网络连接发送的运维指令;

指令执行模块,用于执行运维指令。

根据本发明的实施例,连接请求模块601包括:

协议确定单元,用于响应于应用程序启动,确定与服务端对应的网络协议;

请求发送单元,用于基于网络协议调用网络端口,以向服务端发送网络连接请求。

图6的应用程序更新装置可以执行图2所示实施例的应用程序更新方法,其实现原理和技术效果不再赘述。对于上述实施例中的应用程序更新装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图7示意性示出了本发明另一实施例提供的一种应用程序更新装置的框图,如图7所示,应用程序更新装置700包括:

请求获取模块701,用于获取来自应用程序的网络连接请求,网络连接请求由应用程序通过服务端预先暴露于公网的网络端口发送,且应用程序的网络端口不暴露于公网中;

第二连接建立模块702,用于响应于网络连接请求,建立与应用程序的网络连接;

更新检测模块703,用于检测是否生成应用程序的更新数据;

数据发送模块704,用于响应于更新数据生成,将更新数据基于网络连接发送至应用程序,以便应用程序利用更新数据进行更新。

图7所述的应用程序更新装置可以执行图5所示实施例所述的应用程序更新方法,其实现原理和技术效果不再赘述。对于上述实施例中的应用程序更新装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

在一个可能的设计中,本发明实施例提供的应用程序更新装置可以实现为计算设备,如图8所示,该计算设备可以包括存储组件801以及处理组件802;

存储组件801存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理组件802调用执行,用以实现本发明实施例提供的应用程序更新方法。

当然,计算设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。输入/输出接口为处理组件和外围接口模块之间提供接口,上述外围接口模块可以是输出设备、输入设备等。通信组件被配置为便于计算设备和其他设备之间有线或无线方式的通信等。

其中,该计算设备可以为物理设备或者云计算平台提供的弹性计算主机等,此时计算设备即可以是指云服务器,上述处理组件、存储组件等可以是从云计算平台租用或购买的基础服务器资源。

当计算设备为物理设备时,可以实现成多个服务器或终端设备组成的分布式集群,也可以实现成单个服务器或单个终端设备。

本发明实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时可以实现本发明实施例提供的应用程序更新方法。

本发明实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被计算机执行时可以实现本发明实施例提供的应用程序更新方法。

其中,前文相应实施例中的处理组件可以包括一个或多个处理器来执行计算机指令,以完成上述的方法中的全部或部分步骤。当然处理组件也可以为一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

存储组件被配置为存储各种类型的数据以支持在设备中操作。存储组件可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 实现应用程序更新的方法、装置和计算机可读存储介质
  • 一种应用程序安全管控方法、设备及计算机可读存储介质
  • 应用程序启动优化方法、装置、计算机设备及存储介质
  • 检测盗版应用程序的方法、装置、计算机设备及存储介质
  • 一种应用程序广播处理方法、设备及计算机可读存储介质
  • 应用程序更新方法、计算机设备及计算机存储介质
  • 应用程序热更新方法、装置、计算机可读存储介质和计算机设备
技术分类

06120115988036