CN111522567B - 程序的升级方法、设备、系统和介质 - Google Patents
程序的升级方法、设备、系统和介质 Download PDFInfo
- Publication number
- CN111522567B CN111522567B CN202010370109.XA CN202010370109A CN111522567B CN 111522567 B CN111522567 B CN 111522567B CN 202010370109 A CN202010370109 A CN 202010370109A CN 111522567 B CN111522567 B CN 111522567B
- Authority
- CN
- China
- Prior art keywords
- program
- upgrade
- client device
- target
- determining
- 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
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开提供了一种由服务端设备执行的程序的升级方法。该方法包括接收来自客户端设备的查询请求,其中,查询请求包括安装在客户端设备中的第一程序的程序信息;根据程序信息,确定第一程序是否被配置为不可用状态;在确定第一程序被配置为不可用状态的情况下,确定目标升级程序;以及将目标升级程序发送至客户端设备,以使客户端设备根据目标升级程序升级第一程序。本公开还提供了一种由客户端设备执行的程序的升级方法、一种服务端设备、一种客户端设备以及一种介质。
Description
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种程序的升级方法、设备、系统和介质。
背景技术
在移动互联网时代,移动应用程序(application,下文简称作“app”)已经成为线上流量的主入口和重要的互联网创新载体,互联网业务的不断创新必然推动客户端app版本的持续迭代和优化。从目前各家app提供商的版本发布频率看,有的app提供商每月发布一次新版本app,有的app提供商每周发布一次,还有的app提供商每日发布一次,发布频率普遍较高,这就容易造成同一款app往往在市场中存在多款不同版本的可用客户端。因此,如何控制低版本的客户端app升级到新版本是每一个app提供商都需要考虑的问题。
发明内容
本公开的一个方面提供了一种由服务端设备执行的程序的升级方法,包括:接收来自客户端设备的查询请求,其中,所述查询请求包括安装在所述客户端设备中的第一程序的程序信息;根据所述程序信息,确定所述第一程序是否被配置为不可用状态;在确定所述第一程序被配置为不可用状态的情况下,确定目标升级程序;以及将所述目标升级程序发送至所述客户端设备,以使所述客户端设备根据所述目标升级程序升级所述第一程序。
可选地,上述方法还包括:在预设时间区间内,接收来自至少一个客户端设备的查询请求;确定所述至少一个客户端设备的查询请求中针对第二程序的查询请求的总数量;以及若所述总数量小于预设阈值,则将所述第二程序配置为不可用状态。
可选地,所述根据所述程序信息,确定所述第一程序是否被配置为不可用状态,包括:查询与所述程序信息对应的可用标识;以及根据所述可用标识,确定所述第一程序是否被配置为不可用状态。
可选地,上述确定目标升级程序,包括:根据所述程序信息,确定所述第一程序的程序类型和版本;确定至少一个升级程序,该至少一个升级程序与所述第一程序的程序类型相同,版本新于所述第一程序的版本,且没有被配置为不可用状态;以及从所述至少一个升级程序中确定版本最新的升级程序作为所述目标升级程序。
本公开的另一个方面提供了一种由客户端设备执行的程序的升级方法,包括:读取安装在所述客户端设备中的第一程序的程序信息;根据所述程序信息,生成查询请求;将所述查询请求发送至服务端设备;以及接收来自所述服务端设备的目标升级文件,并根据所述目标升级文件升级所述第一程序。
可选地,上述根据所述目标升级文件升级所述第一程序,包括:向用户展示提示信息,以提示用户触发针对所述目标升级文件的升级操作;以及响应于用户所触发的升级操作,根据所述目标升级文件,升级所述第一程序。
本公开的另一个方面提供了一种服务端设备,包括:服务端接收模块,用于接收来自客户端设备的查询请求,其中,所述查询请求包括安装在所述客户端设备中的第一程序的程序信息;请求受理模块,用于根据所述程序信息,确定所述第一程序是否被配置为不可用状态,在确定所述第一程序被配置为不可用状态的情况下,确定目标升级程序;以及服务端发送模块,用于将所述目标升级程序发送至所述客户端设备,以使所述客户端设备根据所述目标升级程序升级所述第一程序。
可选地,上述服务端接收模块,还用于在预设时间区间内,接收来自至少一个客户端设备的查询请求;上述服务端设备还包括:监测模块,用于确定所述至少一个客户端设备的查询请求中针对第二程序的查询请求的总数量,若所述总数量小于预设阈值,则将所述第二程序配置为不可用状态。
本公开的另一个方面提供了一种客户端设备,包括:识别模块,用于读取安装在所述客户端设备中的第一程序的程序信息;生成模块,用于根据所述程序信息,生成查询请求;客户端发送模块,用于将所述查询请求发送至服务端设备;客户端接收模块,用于接收来自所述服务端设备的目标升级文件;以及升级模块,用于根据所述目标升级文件升级所述第一程序。
本公开的另一个方面提供了一种程序的升级系统,包括:服务端设备,用于接收来自客户端设备的查询请求,其中,所述查询请求包括安装在所述客户端设备中的第一程序的程序信息;根据所述程序信息,确定所述第一程序是否被配置为不可用状态;在确定所述第一程序被配置为不可用状态的情况下,确定目标升级程序;以及将所述目标升级程序发送至所述客户端设备,以使所述客户端设备根据所述目标升级程序升级所述第一程序;以及客户端设备,用于读取安装在所述客户端设备中的第一程序的程序信息;根据所述程序信息,生成查询请求;将所述查询请求发送至服务端设备;以及接收来自所述服务端设备的目标升级文件,并根据所述目标升级文件升级所述第一程序。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
根据本公开的实施例,通过对不同版本的程序的可用状态/不可用状态进行配置,既可以支持全量升级,也可以支持按版本区间进行升级,还支持特殊情况下的跳版本升级,升级方式较为灵活,能够满足app供应商的不同升级需求。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开的实施例的程序的升级方法和程序的升级装置的示例性系统架构;
图2示意性示出了根据本公开的实施例的程序的升级方法的流程图;
图3示意性示出了根据本公开的实施例的根据程序信息,确定第一程序是否被配置为不可用状态的流程图;
图4示意性示出了根据本公开的实施例的确定目标升级程序的流程图;
图5示意性示出了根据本公开另一实施例的程序的升级方法的流程图;
图6示意性示出了根据本公开的实施例的提示升级消息框的示意图;
图7示意性示出了根据本公开的实施例的强制升级消息框的示意图;
图8示意性示出了根据本公开的实施例的服务端设备的框图;
图9示意性示出了根据本公开另一实施例的服务端设备的框图;
图10示意性示出了根据本公开的实施例的客户端设备的框图;以及
图11示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机系统的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
本公开的实施例提供了一种程序的升级方法以及能够应用该方法的客户端设备和服务端设备。该方法包括客户端设备读取安装在客户端设备中的第一程序的程序信息;客户端设备根据程序信息,生成查询请求;客户端设备将查询请求发送至服务端设备;服务端设备接收来自客户端设备的查询请求,其中,查询请求包括安装在客户端设备中的第一程序的程序信息;服务端设备根据程序信息,确定第一程序是否被配置为不可用状态;服务端设备在确定第一程序被配置为不可用状态的情况下,确定目标升级程序;服务端设备将目标升级程序发送至客户端设备,以使客户端设备根据目标升级程序升级第一程序;以及客户端设备接收来自服务端设备的目标升级文件,并根据目标升级文件升级第一程序。
图1示意性示出了根据本公开的实施例的程序的升级方法和程序的升级装置的示例性系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括客户端设备101、102、103,网络104和服务端设备105。网络104用以在客户端设备101、102、103和服务端设备105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用客户端设备101、102、103通过网络104与服务端设备105交互,以接收或发送消息等。客户端设备101、102、103上可以安装有各种客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
客户端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务端设备105可以是提供各种服务的服务器,例如对用户利用客户端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给客户端设备。
应该理解,图1中的客户端设备、网络和服务端设备的数目仅仅是示意性的。根据实现需要,可以具有任意数目的客户端设备、网络和服务端设备。
图2示意性示出了根据本公开的实施例的程序的升级方法的流程图。
如图2所示,该方法包括操作S210~S280。
在操作S210,客户端设备读取安装在客户端设备中的第一程序的程序信息。
根据本公开的实施例,第一程序例如可以为客户端程序。程序信息例如可以包括客户端程序的类型标识、客户端程序的版本标识等信息。其中,类型标识例如可以包括IOS、Android(安卓)等,版本标识例如可以包括版本号。
在操作S220,客户端设备根据程序信息,生成查询请求。
根据本公开的实施例,查询请求例如可以包括HTTP请求。客户端程序的类型标识和版本标识可以作为查询请求中的字段。
根据本公开的另一些实施例,客户端程序还可以读取当前设备的唯一标识(例如设备ID)等有关客户端设备的设备信息,根据设备信息和程序信息生成查询请求,从而使服务端设备获知该查询请求所对应的客户端设备的相关信息。
在操作S230,客户端设备将查询请求发送至服务端设备。
根据本公开的实施例,客户端设备将查询请求通过服务端提供的查询接口上送至位于后台的服务端设备,以请求对客户端程序的升级信息进行查询。
在操作S240,服务端设备接收来自客户端设备的查询请求。
根据本公开的实施例,服务端设备可以通过查询接口接收来自客户端设备的查询请求。在接收到查询请求后,服务器设备解析该查询请求,从而获得查询请求所对应的程序信息和/或设备信息。
根据本公开的另一些实施例,服务端设备可以将所接收得到的查询请求的查询时间和查询请求中所包含的程序信息和/或设备信息记录在预设的数据结构中。例如,服务端设备可以将查询请求的查询时间、设备ID、客户端程序的类型标识、版本标识等信息记录到版本查询请求表中。
在操作S250,服务端设备根据程序信息,确定第一程序是否被配置为不可用状态。
图3示意性示出了根据本公开的实施例的根据程序信息,确定第一程序是否被配置为不可用状态的流程图。
如图3所示,操作S250例如可以包括操作S351~S352。
在操作S351,查询与程序信息对应的可用标识。
根据本公开的实施例,可以预先设置版本配置表来存储程序信息与可以状态标识的对应关系。示例性地,表1示出了版本配置表的示例。如表1所示,版本配置表至少包括类型标识、版本标识和可用标识字段。需要说明的是,除了类型标识、版本标识和可用标识之外,版本配置表还可以包括例如升级程序地址等其他字段。
表1
类型标识 | 版本标识 | 可用标识 | 升级程序地址 |
安卓 | 1.0.0.9 | 1 | xxx |
根据本公开的实施例,服务端设备可以根据程序信息中的类型标识和版本标识,在版本配置表中查询该类型标识和版本标识对应的可用标识。
本实施例中,可用状态可以包括可用状态和不可用状态。与之对应地,可用标识可以包括1和0,其中,1表示可用状态,0表示不可用状态。
在操作S352,根据可用标识,确定第一程序是否被配置为不可用状态。
根据本公开的实施例,可以通过判断可用标识是否为1确定第一程序是否被配置为不可用状态。若可用标识为1,则表示当前第一程序被配置为可用状态,若可用标识为0,则表示当前第一程序被配置为不可用状态。
在操作S260,服务端设备在确定第一程序被配置为不可用状态的情况下,确定目标升级程序。
图4示意性示出了根据本公开的实施例的确定目标升级程序的流程图。
如图4所示,操作S260例如可以包括操作S461~S463。
在操作S461,根据程序信息,确定第一程序的程序类型和版本。
根据本公开的实施例,可以用版本号表征程序的版本,版本越新,则版本号越大。基于此,操作S461例如可以包括通过解析第一程序的程序信息,得到第一程序的程序类型和版本号。
在操作S462,确定至少一个升级程序,该至少一个升级程序与第一程序的程序类型相同,版本新于第一程序的版本,且没有被配置为不可用状态。
根据本公开的实施例,可以在版本配置表中查找该程序类型所对应的所有版本号。然后,在查找到的所有版本号中确定可用状态标识为1的那些版本号。接着确定那些版本号中可用状态标识为1的所对应的至少一个升级程序。
在操作S463,从至少一个升级程序中确定版本最新的升级程序作为目标升级程序。
根据本公开的实施例,操作S463例如可以包括从操作S462所确定的至少一个升级程序中确定最高版本号所对应的升级程序作为目标升级程序。
回到图2所示的方法,在操作S270,服务端设备将目标升级程序发送至客户端设备,以使客户端设备根据目标升级程序升级第一程序。
在操作S280,客户端设备接收来自服务端设备的目标升级文件,并根据目标升级文件升级第一程序。
根据本公开的实施例,在接收到目标升级文件后,客户端设备可以直接安装该目标升级文件,从而完成升级。或者,也可以先向用户展示提示信息,以提示用户触发针对所述目标升级文件的升级操作,然后响应于用户所触发的升级操作,再根据目标升级文件,升级第一程序。后一种方式可以给用户自由选择是否升级的权力,从而具有更好的用户体验,
根据本公开的实施例,通过对不同版本的程序的可用状态/不可用状态进行配置,既可以支持全量升级,也可以支持按版本区间进行升级,还支持特殊情况下的跳版本升级,升级方式较为灵活,能够满足app供应商的不同升级需求。
图5示意性示出了根据本公开另一实施例的程序的升级方法的流程图。
如图5所示,除了操作S210~S270,该方法还包括操作S510~S530。其中,操作S510~S530可以在执行图2所示方法的过程中的任何阶段执行。示例性地,本实施例中,操作S510~S530例如可以在操作S240之前执行。
在操作S510,在预设时间区间内,接收来自至少一个客户端设备的查询请求。
在操作S520,确定至少一个客户端设备的查询请求中针对第二程序的查询请求的总数量。
在操作S530,若总数量小于预设阈值,则将第二程序配置为不可用状态。
根据本公开的实施例,预设时间区间和预设阈值可根据具体生产使用情况进行动态调整。示例性地,本实施例中,预设时间区间为最近一个月内。预设阈值为100000(个)。另外,第二程序可以为任何一个当前处于可用状态的程序。第二程序可以与第一程序是同一个程序,也可以不同。
例如,可以针对最近一个月内接收到的来自一个或多个客户端设备的查询请求,根据每个查询请求中的类型标识和版本标识,确定每个查询请求所针对的程序,从而确定针对每种程序的查询请求总量。然后将查询请求总量小于预设阈值的程序(即第二程序)配置为不可用状态。
根据本公开的实施例,可以对客户端设备所发送的查询请求进行去重处理。例如,对于同一客户端设备发送的针对同一程序的多个查询请求,在统计时仅记为一次。通过去重处理,使得统计结果中的每一个查询请求对应一个客户端设备,因此,可以以针对某种程序的查询请求的总数表征当前使用该种程序的客户端设备的数量。从而,通过将总数量小于阈值的第二程序配置为不可用状态,能够自动将使用数量较低的程序淘汰。
下面结合具体实施例对图2所示的方法做进一步说明。应注意,以下描述仅为示例以便理解本公开实施例的技术方案,而不应被看作是针对本公开实施例的限制。
本实施例中,客户端设备的本地客户端程序为安卓(Android)类型,版本号为1.0.0.6。
首先,在客户端设备上启动客户端程序,通过客户端程序,读取本地客户端程序的类型为“安卓”,版本号为1.0.0.6。根据类型和版本号生成查询请求,向服务端发起查询请求。
接下来,服务端设备将本次查询请求中的相关信息记录到“版本查询请求表”中,同时在“版本配置表”中读取“安卓+1.0.0.6”对应的“可用标识”字段值,该字段值为1。
服务端设备继续在“版本配置表”读取与“安卓”类型对应的“可用标识”字段值为1的所有版本号,得到版本号列表1.0.0.6-1.0.0.9,将这些版本号排序后,得到最高版本号为1.0.0.9,最低版本号为1.0.0.6。
服务端设备将客户端设备的本地版本号与查询得到的最高、最低版本号进行比较。由于客户端设备的本地版本号1.0.0.6大于等于最低版本号(1.00.6),小于最高版本号(1.0.0.9),因此根据处理规则,向客户端设备返回提示升级标识和对应的升级程序地址(最高可用版本号1.0.0.9所对应的升级程序的下载地址)。
客户端设备收到服务端设备通过接口返回的信息(提示升级标识和升级程序地址),按处理规则弹出如附图6所示的提示升级消息框。
接着,用户点击“立即升级”,客户端设备连接升级程序地址进行升级,从而将本地客户端程序由1.0.0.6版本升级至1.0.09版本。
下面结合另一具体实施例对图2所示的方法做进一步说明。应注意,以下描述仅为示例以便理解本公开实施例的技术方案,而不应被看作是针对本公开实施例的限制。
客服中心有时会接到大量用户投诉,反映某app的安卓1.0.0.8版本存在特定场景下转账失败的情况。如果经过研发人员的分析,发现该app安卓1.0.0.8版本存在重大程序缺陷,则需要强制对该版本的客户端程序进行升级。本实施例中,为方便用户进行管理,服务端设备中的版本号管理模块提供了前台操作界面,用户可以通过该前台操作界面,对各程序的可用标识进行配置。
首先,生产管理人员通过服务端设备的版本号管理模块所提供的前台操作页面,将安卓1.0.0.8版本对应的“可用标识”由1修改为0,并执行保存操作,以使该修改生效。
接下来,本地客户端程序为安卓类型、版本号为1.0.0.8的某客户端设备,启动客户端程序,向服务端设备发起版本号查询请求。
服务端设备将本次查询请求的信息记录到“版本查询请求表”中,同时在“版本配置表”中读取“安卓+1.0.0.8”对应的“可用标识”字段值0。然后按处理规则,向客户端设备返回强制升级标识和升级程序地址(与1.0.0.9版本号对应的升级程序的下载地址)。
然后,客户端设备收到服务端设备通过接口返回的信息(强制升级标识和升级程序地址),根据处理规则,弹出如附图7中的强制升级消息框。
用户点击“立即升级”,客户端设备连接升级程序地址进行升级,从而将本地客户端程序由1.0.0.8版本升级至1.0.0.9版本,避免因为1.0.0.8版本的客户端程序的缺陷而对用户造成严重影响。
下面结合又一具体实施例对图2~图5所示的方法做进一步说明。应注意,以下描述仅为示例以便理解本公开实施例的技术方案,而不应被看作是针对本公开实施例的限制。
根据当前客户端程序各个版本的使用情况,并结合目标用户数量预期,将安卓1.00.6-1.0.0.9版本对应的阈值(用户数)均设置为100000。
当日晚24:00,监测模块自动启动,通过监测发现近一个月安卓1.0.0.7版本的请求数(用户数)已小于对应阈值(100000),于是自动将“版本配置表”中“安卓+1.0.0.7”对应的“可用标识”字段值置为0(版本不可用)。
某本地安卓客户端版本号为1.0.0.7的用户,启动客户端,向服务端发起版本号查询请求。
服务端设备将本次查询请求的信息记录到“版本查询请求表”中,同时在“版本配置表”中读取“安卓+1.0.0.7”对应的“可用标识”字段值0。然后按处理规则,向客户端设备返回强制升级标识和升级程序地址(与1.0.0.9版本号对应的升级程序的下载地址)。
客户端设备收到服务端设备通过接口返回的信息(强制升级标识和升级程序地址),根据处理规则,弹出如附图7中的强制升级消息框。
接着,用户点击“立即升级”,客户端设备连接升级程序地址进行升级,从而将本地客户端程序由1.0.0.7版本升级至1.0.0.9版本,从而将低用户使用率的1.0.0.7版本淘汰。
图8示意性示出了根据本公开的实施例的服务端设备的框图。
如图8所示,服务端设备800包括服务端接收模块810、请求受理模块820和服务端发送模块830。
具体地,服务端接收模块810,用于接收来自客户端设备的查询请求。其中,所述查询请求包括安装在所述客户端设备中的第一程序的程序信息。
请求受理模块820,用于根据所述程序信息,确定所述第一程序是否被配置为不可用状态,在确定所述第一程序被配置为不可用状态的情况下,确定目标升级程序。
服务端发送模块830,用于将所述目标升级程序发送至所述客户端设备,以使所述客户端设备根据所述目标升级程序升级所述第一程序。
根据本公开的实施例,通过对不同版本的程序的可用状态/不可用状态进行配置,既可以支持全量升级,也可以支持按版本区间进行升级,还支持特殊情况下的跳版本升级,升级方式较为灵活,能够满足app供应商的不同升级需求。
图9示意性示出了根据本公开另一实施例的服务端设备的框图。
如图9所示,服务端接收模块810,还用于在预设时间区间内,接收来自至少一个客户端设备的查询请求。
除了服务端接收模块810、请求受理模块820和服务端发送模块830之外,装置900还可以包括:监测模块940,用于确定所述至少一个客户端设备的查询请求中针对第二程序的查询请求的总数量,若所述总数量小于预设阈值,则将所述第二程序配置为不可用状态。
根据本公开的实施例,通过将查询请求数量小于阈值的程序配置为不可用状态,可以自动淘汰用户使用量较低的程序。
图10示意性示出了根据本公开的实施例的客户端设备的框图。
如图10所示,客户端设备10000包括识别模块1010、生成模块1020、客户端发送模块1030、客户端接收模块1040和升级模块1050。
具体地,识别模块1010,用于读取安装在所述客户端设备中的第一程序的程序信息。
生成模块1020,用于根据所述程序信息,生成查询请求。
客户端发送模块1030,用于将所述查询请求发送至服务端设备。
客户端接收模块1040,用于接收来自所述服务端设备的目标升级文件。
升级模块1050,用于根据所述目标升级文件升级所述第一程序。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,服务端接收模块810、请求受理模块820、服务端发送模块830、监测模块940、识别模块1010、生成模块1020、客户端发送模块1030、客户端接收模块1040和升级模块1050中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,服务端接收模块810、请求受理模块820、服务端发送模块830、监测模块940、识别模块1010、生成模块1020、客户端发送模块1030、客户端接收模块1040和升级模块1050中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,服务端接收模块810、请求受理模块820、服务端发送模块830、监测模块940、识别模块1010、生成模块1020、客户端发送模块1030、客户端接收模块1040和升级模块1050中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图11示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机系统的方框图。图11示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图11所示,计算机系统1100包括处理器1110、以及计算机可读存储介质1120。该计算机系统1100可以执行根据本公开实施例的方法。
具体地,处理器1110例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1110还可以包括用于缓存用途的板载存储器。处理器1110可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质1120,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质1120可以包括计算机程序1121,该计算机程序1121可以包括代码/计算机可执行指令,其在由处理器1110执行时使得处理器1110执行根据本公开实施例的方法或其任何变形。
计算机程序1121可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序1121中的代码可以包括一个或多个程序模块,例如包括1121A、模块1121B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器1110执行时,使得处理器1110可以执行根据本公开实施例的方法或其任何变形。
根据本发明的实施例,服务端接收模块810、请求受理模块820、服务端发送模块830、监测模块940、识别模块1010、生成模块1020、客户端发送模块1030、客户端接收模块1040和升级模块1050中的至少一个可以实现为参考图11描述的计算机程序模块,其在被处理器1110执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (10)
1.一种由服务端设备执行的程序的升级方法,包括:
接收来自客户端设备的查询请求,其中,所述查询请求包括安装在所述客户端设备中的第一程序的程序信息;
所述第一程序的程序信息,包含类型标识和版本标识;
根据所述程序信息,确定所述第一程序是否被配置为不可用状态;
在确定所述第一程序被配置为不可用状态的情况下,确定目标升级程序;以及
将所述目标升级程序发送至所述客户端设备,以使所述客户端设备根据所述目标升级程序升级所述第一程序;
所述确定目标升级程序,包括:
根据所述程序信息,确定所述第一程序的程序类型和版本;
确定至少一个升级程序,该至少一个升级程序与所述第一程序的程序类型相同,版本新于所述第一程序的版本,且没有被配置为不可用状态;以及
从所述至少一个升级程序中确定版本最新的升级程序作为所述目标升级程序;
其中,所述根据所述程序信息,确定所述第一程序是否被配置为不可用状态,包括:
查询与所述程序信息对应的可用标识;以及
根据所述可用标识,确定所述第一程序是否被配置为不可用状态。
2.根据权利要求1所述的方法,还包括:
在预设时间区间内,接收来自至少一个客户端设备的查询请求;
确定所述至少一个客户端设备的查询请求中针对第二程序的查询请求的总数量;以及
若所述总数量小于预设阈值,则将所述第二程序配置为不可用状态。
3.一种由客户端设备执行的程序的升级方法,包括:
读取安装在所述客户端设备中的第一程序的程序信息;
所述第一程序的程序信息,包含类型标识和版本标识;
根据所述程序信息,生成查询请求;
将所述查询请求发送至服务端设备,所述服务端设备根据所述程序信息,确定所述第一程序是否被配置为不可用状态;以及
接收来自所述服务端设备的目标升级文件,并根据所述目标升级文件升级所述第一程序;
所述来自所述服务端设备的目标升级文件通过以下方式来获取:
根据所述程序信息,确定所述第一程序的程序类型和版本;
确定至少一个升级程序,该至少一个升级程序与所述第一程序的程序类型相同,版本新于所述第一程序的版本,且没有被配置为不可用状态;以及
从所述至少一个升级程序中确定版本最新的升级程序作为所述目标升级文件;
其中,根据所述程序信息,确定所述第一程序是否被配置为不可用状态,包括:
查询与所述程序信息对应的可用标识;以及
根据所述可用标识,确定所述第一程序是否被配置为不可用状态。
4.根据权利要求3所述的方法,其中,所述根据所述目标升级文件升级所述第一程序,包括:
向用户展示提示信息,以提示用户触发针对所述目标升级文件的升级操作;以及
响应于用户所触发的升级操作,根据所述目标升级文件,升级所述第一程序。
5.一种服务端设备,包括:
服务端接收模块,用于接收来自客户端设备的查询请求,其中,所述查询请求包括安装在所述客户端设备中的第一程序的程序信息;
所述第一程序的程序信息,包含类型标识和版本标识;
请求受理模块,用于根据所述程序信息,确定所述第一程序是否被配置为不可用状态,在确定所述第一程序被配置为不可用状态的情况下,确定目标升级程序;以及
服务端发送模块,用于将所述目标升级程序发送至所述客户端设备,以使所述客户端设备根据所述目标升级程序升级所述第一程序;
所述确定目标升级程序,包括:
根据所述程序信息,确定所述第一程序的程序类型和版本;
确定至少一个升级程序,该至少一个升级程序与所述第一程序的程序类型相同,版本新于所述第一程序的版本,且没有被配置为不可用状态;以及
从所述至少一个升级程序中确定版本最新的升级程序作为所述目标升级程序;
其中,所述根据所述程序信息,确定所述第一程序是否被配置为不可用状态,包括:
查询与所述程序信息对应的可用标识;以及
根据所述可用标识,确定所述第一程序是否被配置为不可用状态。
6.根据权利要求5所述的设备,其中,
所述服务端接收模块,还用于在预设时间区间内,接收来自至少一个客户端设备的查询请求;
所述服务端设备还包括:
监测模块,用于确定所述至少一个客户端设备的查询请求中针对第二程序的查询请求的总数量,若所述总数量小于预设阈值,则将所述第二程序配置为不可用状态。
7.一种客户端设备,包括:
识别模块,用于读取安装在所述客户端设备中的第一程序的程序信息;
生成模块,用于根据所述程序信息,生成查询请求;
客户端发送模块,用于将所述查询请求发送至服务端设备,所述服务端设备根据所述程序信息,确定所述第一程序是否被配置为不可用状态,包括:
查询与所述程序信息对应的可用标识;以及
根据所述可用标识,确定所述第一程序是否被配置为不可用状态;
客户端接收模块,用于接收来自所述服务端设备的目标升级文件;以及
升级模块,用于根据所述目标升级文件升级所述第一程序。
8.一种程序的升级系统,包括:
服务端设备,用于接收来自客户端设备的查询请求,其中,所述查询请求包括安装在所述客户端设备中的第一程序的程序信息;根据所述程序信息,确定所述第一程序是否被配置为不可用状态;在确定所述第一程序被配置为不可用状态的情况下,确定目标升级程序;以及将所述目标升级程序发送至所述客户端设备,以使所述客户端设备根据所述目标升级程序升级所述第一程序;以及
客户端设备,用于读取安装在所述客户端设备中的第一程序的程序信息;根据所述程序信息,生成查询请求;将所述查询请求发送至服务端设备,所述服务端设备根据所述程序信息,确定所述第一程序是否被配置为不可用状态;以及接收来自所述服务端设备的目标升级文件,并根据所述目标升级文件升级所述第一程序;
所述第一程序的程序信息,包含类型标识和版本标识;
所述确定目标升级程序,包括:
根据所述程序信息,确定所述第一程序的程序类型和版本;
确定至少一个升级程序,该至少一个升级程序与所述第一程序的程序类型相同,版本新于所述第一程序的版本,且没有被配置为不可用状态;以及
从所述至少一个升级程序中确定版本最新的升级程序作为所述目标升级程序;
其中,所述根据所述程序信息,确定所述第一程序是否被配置为不可用状态,包括:
查询与所述程序信息对应的可用标识;以及
根据所述可用标识,确定所述第一程序是否被配置为不可用状态。
9.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序,
其中,当一个或多个计算机程序被一个或多个处理器执行时,使得一个或多个处理器实现权利要求1至4中任一项的方法。
10.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至4中任一项的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010370109.XA CN111522567B (zh) | 2020-04-30 | 2020-04-30 | 程序的升级方法、设备、系统和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010370109.XA CN111522567B (zh) | 2020-04-30 | 2020-04-30 | 程序的升级方法、设备、系统和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111522567A CN111522567A (zh) | 2020-08-11 |
CN111522567B true CN111522567B (zh) | 2023-09-01 |
Family
ID=71906768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010370109.XA Active CN111522567B (zh) | 2020-04-30 | 2020-04-30 | 程序的升级方法、设备、系统和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111522567B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104065695A (zh) * | 2013-07-05 | 2014-09-24 | 腾讯科技(深圳)有限公司 | 一种软件更新的方法、服务器、用户端及系统 |
CN108509211A (zh) * | 2018-02-07 | 2018-09-07 | 深圳壹账通智能科技有限公司 | 应用程序升级方法、装置、移动终端和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10747525B2 (en) * | 2018-03-09 | 2020-08-18 | International Business Machines Corporation | Distribution of a software upgrade via a network |
-
2020
- 2020-04-30 CN CN202010370109.XA patent/CN111522567B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104065695A (zh) * | 2013-07-05 | 2014-09-24 | 腾讯科技(深圳)有限公司 | 一种软件更新的方法、服务器、用户端及系统 |
CN108509211A (zh) * | 2018-02-07 | 2018-09-07 | 深圳壹账通智能科技有限公司 | 应用程序升级方法、装置、移动终端和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111522567A (zh) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9183072B1 (en) | Error troubleshooting using a correlated knowledge base | |
US9087156B2 (en) | Application version release management | |
US20160378454A1 (en) | Software updates using client self-reporting and a hierarchical data structure | |
CN111913738B (zh) | 访问请求的处理方法、装置、计算设备和介质 | |
EP2989543B1 (en) | Method and device for updating client | |
US9876703B1 (en) | Computing resource testing | |
US11138645B2 (en) | Virtualized services discovery and recommendation engine | |
CN111782988B (zh) | 确定应用程序来源的方法、装置、计算机系统和存储介质 | |
US20140330647A1 (en) | Application and service selection for optimized promotion | |
US10404568B2 (en) | Agent manager for distributed transaction monitoring system | |
CN108696372A (zh) | 一种保持系统配置一致性的方法和系统 | |
US20130031539A1 (en) | Signature-based update management | |
US9781230B2 (en) | Broadcast-based update management | |
US20120005051A1 (en) | Semi-Automated Customer Model-Based Service Deployment Into Data Centers | |
US9832256B1 (en) | Assigning client virtual machines based on location | |
CN112579447A (zh) | 一种浏览器测试方法和装置 | |
CN112597406A (zh) | 一种文件传输方法、装置、终端设备及存储介质 | |
CN111522567B (zh) | 程序的升级方法、设备、系统和介质 | |
CN107948337B (zh) | 电子文件传输方法、装置、系统及计算机可读存储介质 | |
US20230015524A1 (en) | Automated services exchange | |
CN110969463A (zh) | 推广信息位的分配和获取方法及设备 | |
CN115269063A (zh) | 进程创建方法、系统、设备及介质 | |
KR20180125387A (ko) | 소프트웨어 플랫폼을 제공하는 서버 및 그 동작방법 | |
CN104346101A (zh) | 存储空间动态分配系统及方法 | |
JP6163170B2 (ja) | サービス連携システム、サービス連携装置、端末装置、サービス連携方法及びサービス連携プログラム |
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 |