CN111158716A - 版本升级调用方法、装置、计算机系统及可读存储介质 - Google Patents
版本升级调用方法、装置、计算机系统及可读存储介质 Download PDFInfo
- Publication number
- CN111158716A CN111158716A CN201911321639.9A CN201911321639A CN111158716A CN 111158716 A CN111158716 A CN 111158716A CN 201911321639 A CN201911321639 A CN 201911321639A CN 111158716 A CN111158716 A CN 111158716A
- Authority
- CN
- China
- Prior art keywords
- version
- information
- calling
- request
- application program
- 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
Links
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
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)
Abstract
本发明公开了版本升级调用方法、装置、计算机系统及可读存储介质,基于基架运维,包括以下步骤:获得差分清单,根据差分清单的升级数据生成局部升级信息或整体升级信息;根据局部升级信息版本调用接口中创建目标调用方法;或根据整体升级信息创建目标控制器,在控制器中创建具有目标调用方法的版本调用接口;接收由用户端发送的请求消息,根据请求消息遍历所述版本调用接口的调用方法以获得请求调用方法;根据请求消息获得请求结果并发送用户端;或通过请求调用方法获取版本指定信息和无版本信息并形成请求结果,并将其发送用户端。本发明实现了处理不同版本用户端发送的请求消息,并根据该请求消息向用户端发送相应的请求结果的技术效果。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种版本升级调用方法、装置、计算机系统及可读存储介质。
背景技术
当前客户端的APP是通过版本调用接口从服务器中获取信息,而使用者往往因为各种原因忽略或拒绝客户端的APP升级,因此,由该客户端所输出的请求消息往往是针对旧版本应用程序所发出的,即请求消息中的版本号为旧版本号;
而当前服务器所使用的版本调用接口通常在接收到升级数据包时,就已对该版本调用接口中的调用方法进行了修改,以实现向客户端输出基于新版本应用程序的信息,因此当版本调用接口接收到版本号为旧版本号的请求消息,则无法对其进行识别,导致该请求消息无法调用版本调用接口从服务器中获取信息,造成客户端的APP无法正常使用。
发明内容
本发明的目的是提供一种版本升级调用方法、装置、计算机系统及可读存储介质,用于解决现有技术存在的因当前版本调用接口无法识别旧版本号的请求消息,导致该请求消息无法通过版本调用接口从服务器中获取信息,造成客户端的APP无法正常使用的问题。
为实现上述目的,本发明提供一种版本升级调用方法,包括以下步骤:
接收控制端发送的新版本应用程序,获取与所述新版本应用程序对应的当前应用程序,将所述当前应用程序与新版本应用程序进行比较以获得差分清单,根据所述差分清单的升级数据生成局部升级信息或整体升级信息;其中,所述差分清单是储存有升级数据的差分包,所述升级数据是用于描述新版本应用程序的代码与当前应用程序的代码之间差别的代码数据;
根据所述局部升级信息并通过所述差分清单的升级数据,在所述当前应用程序的版本调用接口中创建目标调用方法,或
根据所述整体升级信息创建目标控制器,根据所述差分清单的升级数据在所述目标控制器中创建具有目标调用方法的版本调用接口;
接收由用户端发送的请求消息,根据所述请求消息遍历所述版本调用接口的方法以获得请求调用方法;
如果所述请求调用方法为所述目标调用方法,则根据所述请求消息获得请求结果并发送所述用户端;如果所述请求调用方法不为所述目标调用方法,则通过所述请求调用方法获取版本指定信息和无版本信息并形成请求结果,并将所述请求结果发送至所述用户端;其中,所述版本指定信息是基于请求消息的版本号和请求字段所获得的信息,所述无版本信息是仅基于请求消息的请求字段所获得的信息。
上述方案中,所述将所述当前应用程序与新版本应用程序进行比较以获得差分清单当前包括:
提取当前应用程序;
将所述新版本应用程序中的数据与当前应用程序中的数据逐一比较,获得用于描述所述新版本应用程序与当前应用程序之间差别的差分清单。
上述方案中,所述根据差分清单的升级数据生成局部升级信息或整体升级信息包括:
检测所述差分清单中是否具有内容为更换信息或逻辑信息的升级数据;若否,则生成局部升级信息;若是,则生成整体升级信息;
其中,所述更换信息是用于对应用程序进行界面整体更换的数据,所述逻辑信息是用于对应用程序进行业务逻辑变更的数据。
上述方案中,所述根据所述局部升级信息并通过所述差分清单的升级数据,在所述当前应用程序的版本调用接口中创建目标调用方法包括:
根据所述局部升级信息识别用于调用当前应用程序的版本调用接口,复制所述版本调用接口中用于调用当前应用程序的调用方法作为拷贝方法;
提取所述差分清单中的升级数据,并根据所述升级数据修改所述拷贝方法,以获得用于调用新版本应用程序的目标调用方法;
在所述目标调用方法中载入新版本应用程序的版本号,作为所述目标调用方法的版本信息,并将载入有版本信息的目标调用方法储存至所述当前应用程序的版本调用接口中。
上述方案中,所述根据所述差分清单的升级数据在所述目标控制器中创建具有目标调用方法的版本调用接口包括:
在所述目标控制器中创建调用接口;
复制所述当前应用程序的版本调用接口的数据,并将该数据载入所述目标控制器的调用接口中;
根据所述差分清单中的升级数据修改所述目标控制器的调用接口中的调用方法,以获得目标调用方法;
在所述目标调用方法中载入所述新版本应用程序的版本号,作为所述目标调用方法的版本信息,并使所述调用接口转为具有目标调用方法的版本调用接口。
上述方案中,所述根据所述请求消息遍历所述版本调用接口的调用方法以获得请求调用方法包括:
提取所述请求消息的版本号;
遍历版本调用接口以将所述版本号与所述版本调用接口中调用方法进行对比,获取版本信息与所述版本号一致的调用方法,将所述调用方法设为请求调用方法。
上述方案中,所述通过所述请求调用方法获取版本指定信息和无版本信息并形成请求结果包括:
提取所述请求消息的版本号和请求字段;
通过所述请求调用方法根据所述请求字段获取无版本信息,及根据所述版本号和请求字段获取版本指定信息;
汇总所述无版本信息和版本指定信息形成请求结果。
为实现上述目的,本发明还提供一种版本升级调用装置,包括:
差分识别模块,用于接收控制端发送的新版本应用程序,获取与所述新版本应用程序对应的当前应用程序,将所述当前应用程序与新版本应用程序进行比较以获得差分清单,根据所述差分清单的升级数据生成局部升级信息或整体升级信息;其中,所述差分清单是储存有升级数据的差分包,所述升级数据是用于描述新版本应用程序的代码与当前应用程序的代码之间差别的代码数据;
升级管理模块用于根据所述局部升级信息并通过所述差分清单的升级数据,在所述当前应用程序的版本调用接口中创建目标调用方法,或根据所述整体升级信息创建目标控制器,根据所述差分清单的升级数据在所述目标控制器中创建具有目标调用方法的版本调用接口;
调用管理模块,用于接收由用户端发送的请求消息,根据所述请求消息遍历所述版本调用接口的调用方法以获得请求调用方法;如果所述请求调用方法为所述目标调用方法,则根据所述请求消息获得请求结果并发送所述用户端;如果所述请求调用方法不为所述目标调用方法,则通过所述请求调用方法获取版本指定信息和无版本信息并形成请求结果,并将所述请求结果发送至所述用户端;其中,所述版本指定信息是基于请求消息的版本号和请求字段所获得的信息,所述无版本信息是仅基于请求消息的请求字段所获得的信息。
为实现上述目的,本发明还提供一种计算机系统,其包括多个计算机设备,各计算机设备包括存储器.处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述多个计算机设备的处理器执行所述计算机程序时共同实现上述版本升级调用方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其包括多个存储介质,各存储介质上存储有计算机程序,所述多个存储介质存储的所述计算机程序被处理器执行时共同实现上述版本升级调用方法的步骤。
本发明提供的版本升级调用方法、装置、计算机系统及可读存储介质,通过采用差分清单获得新旧版本的差别,根据该差别生成局部升级信息和整体升级信息以实现差别升级,进而实现最大限度降低对服务器中应用程序的版本调用接口的改变,提高了升级效率,并且保证了应用程序运行可靠性;根据局部升级信息在版本调用接口中创建目标调用方法,对应用程序进行升级,使得该版本调用接口可以同时储存有新版本和旧版本的调用方法,以便于处理不同版本用户端发送的请求;根据整体升级信息新建控制器,并在该控制器的版本调用接口中创建新版本的调用方法,对应用程序进行升级,由于保留了旧版本应用程序的控制器及其版本调用接口,因此实现了处理不同版本用户端发送的请求消息,并根据该请求消息向用户端发送相应的请求结果的技术效果。
附图说明
图1为本发明版本升级调用方法实施例一的流程图;
图2示意性示出了根据本申请实施例一的版本升级调用方法的环境应用示意图;
图3为本发明版本升级调用方法实施例一的S1中获得差分清单的具体流程图;
图4为本发明版本升级调用方法实施例一的S1中生成局部升级信息或整体升级信息的具体流程图;
图5为本发明版本升级调用方法实施例一的S2中根据所述局部升级信息创建目标调用方法的具体流程图;
图6为本发明版本升级调用方法实施例一的S2中在控制器中创建版本调用接口具体流程图;
图7为本发明版本升级调用方法实施例一的S3中获得请求调用方法的具体流程图;
图8为本发明版本升级调用方法实施例一的S3中获得请求结果并发送用户端的具体流程图;
图9为本发明版本升级调用装置实施例二的程序模块示意图;
图10为本发明计算机系统实施例三中计算机设备的硬件结构示意图。
附图标记:
1、版本升级调用装置 2、服务器 3、控制端 4、用户端
5、计算机设备 11、差分识别模块 12、升级管理模块
13、调用管理模块 51、存储器 52、处理器
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的版本升级调用方法、装置、计算机系统及可读存储介质,适用于通信技术领域,为提供一种基于差分识别模块、升级管理模块和调用管理模块的版本升级调用方法。本发明通过采用差分清单获得新旧版本的差别,根据该差别生成局部升级信息和整体升级信息以实现差别升级;根据局部升级信息在版本调用接口中创建目标调用方法,对应用程序进行升级;或根据整体升级信息新建控制器,并在该控制器的版本调用接口中创建新版本的调用方法,对应用程序进行升级;接收由用户端发送的请求消息,根据所述请求消息遍历版本调用接口的调用方法以获得请求调用方法,通过所述请求调用方法根据所述请求消息获得请求结果并发送所述用户端。
实施例一
请参阅图1,本实施例的一种版本升级调用方法,包括以下步骤:
S1:接收控制端发送的新版本应用程序,获取与所述新版本应用程序对应的当前应用程序,将所述当前应用程序与新版本应用程序进行比较以获得差分清单,根据所述差分清单的升级数据生成局部升级信息或整体升级信息;其中,所述差分清单是储存有升级数据的差分包,所述升级数据是用于描述新版本应用程序的代码与当前应用程序的代码之间差别的代码数据;
S2:根据所述局部升级信息并通过所述差分清单的升级数据,在所述当前应用程序的版本调用接口中创建目标调用方法;或
根据所述整体升级信息创建目标控制器,根据所述差分清单的升级数据在所述目标控制器中创建具有目标调用方法的版本调用接口;
S3:接收由用户端发送的请求消息,根据所述请求消息遍历所述版本调用接口的调用方法以获得请求调用方法;如果所述请求调用方法为所述目标调用方法,则根据所述请求消息获得请求结果并发送所述用户端;如果所述请求调用方法不为所述目标调用方法,则通过所述请求调用方法获取版本指定信息和无版本信息并形成请求结果,并将所述请求结果发送至所述用户端;其中,所述版本指定信息是基于请求消息的版本号和请求字段所获得的信息,所述无版本信息是仅基于请求消息的请求字段所获得的信息。
请参阅图2,本实施例的版本升级调用方法运行在服务器2中,服务器2通过网络与控制端3以及多个用户端4连接。
服务器2在接收到控制端3通过网络输出的新版本应用程序时,则提取服务器2中当前应用程序并将其与新版本应用程序进行对比,以获得用于描述新版本应用程序与服务器2当前应用程序之间的差别的所述升级数据,汇总升级数据获得差分清单;若所述差分清单的升级数据仅涉及字段的变更、舍弃、新增或调换位置,则生成局部升级信息;若所述差分清单的升级数据涉及到界面整体更换,或业务逻辑变更,则生成整体升级信息。
服务器2根据所述局部升级信息在其版本调用接口中,通过复制当前应用程序的调用方法,并将其载入所述版本调用接口中以作为目标调用方法,根据所述差分清单的升级数据修改所述目标调用方法,以实现服务器2的版本升级;或服务器2根据所述整体升级信息在其控制器中复制版本调用接口,并将其载入所述控制器中以实现创建版本调用接口,根据所述差分清单的升级数据修改所述创建的版本调用接口的调用方法,以实现所述服务器2的版本升级。
服务器2接收由用户端4通过网络发送的请求消息,根据所述请求消息遍历服务器2中版本调用接口的调用方法,并将与请求信息匹配的调用方法设为请求调用方法,服务器2通过所述请求调用方法根据所述请求消息获得请求结果并发送所述用户端4。
因此,本申请通过采用差分清单获得新旧版本的差别,根据该差别生成局部升级信息和整体升级信息以实现差别升级,进而实现最大限度降低对服务器2中应用程序的版本调用接口的改变,提高了升级效率,并且保证了应用程序运行可靠性;根据局部升级信息在版本调用接口中创建目标调用方法,对应用程序进行升级,使得该版本调用接口可以同时储存有新版本和旧版本的调用方法,以便于处理不同版本用户端4发送的请求;根据整体升级信息新建控制器,并在该控制器的版本调用接口中创建新版本的调用方法,对应用程序进行升级,由于保留了旧版本应用程序的控制器及其版本调用接口,因此实现了处理不同版本用户端4发送的请求消息,并根据该请求消息向用户端4发送相应的请求结果的技术效果。
服务器2可以通过一个或多个网络提供服务,网络可以包括各种网络设备,例如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或等等。网络可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,它们的组合和/或类似物。网络可以包括无线链路,例如蜂窝链路,卫星链路,Wi-Fi链路和/或类似物。控制端3可以包括各种终端设备,例如,手机、台式计算机、笔记本计算机和/或等等。用户端4可以包括各种终端设备,例如,手机、台式计算机、笔记本计算机和/或等等。
服务器2可以由单个或多个计算机设备(如,服务器)组成。该单个或多个计算设备可以包括虚拟化计算实例。虚拟化计算实例可以包括虚拟机,诸如计算机系统的仿真,操作系统,服务器等。计算设备可以基于定义用于仿真的特定软件(例如,操作系统,专用应用程序,服务器)的虚拟映像和/或其他数据来加载虚拟机。随着对不同类型的处理服务的需求改变,可以在一个或多个计算设备上加载和/或终止不同的虚拟机。可以实现管理程序以管理同一计算设备上的不同虚拟机的使用。
在示例性的实施例中,所述S1中获取与所述新版本应用程序对应的当前应用程序包括:
提取新版本应用程序的程序号;在服务器中查找与所述程序号对应的当前应用程序,以实现获取与所述新版本应用程序对应的当前应用程序的技术效果。因服务器中至少具有一个应用程序,因此,通过获取与新版本应用程序对应的当前应用程序,以实现准确升级应用程序技术效果。
在一个优选的实施例中,请参阅图3,所述S1中将新版本应用程序与当前应用程序进行比较以获得差分清单包括:
S101:提取当前应用程序。
示例性地,提取服务器当前应用程序的源代码。
S102:将所述新版本应用程序中的数据与当前应用程序中的数据逐一比较,获得用于描述所述新版本应用程序与当前应用程序之间差别的差分清单。
示例性地,新版本应用程序的源代码和当前应用程序的源代码逐一比较,将两种代码之间的差别部分作为升级数据,汇总所述升级数据形成差分清单。
在一个优选的实施例中,请参阅图4,所述S1中根据差分清单的升级数据生成局部升级信息或整体升级信息包括:
S111:检测所述差分清单中是否具有内容为更换信息或逻辑信息的升级数据;
S112:若否,则生成局部升级信息;
S113:若是,则生成整体升级信息。
其中,所述更换信息是用于对应用程序进行界面整体更换的数据,所述逻辑信息是用于对应用程序进行业务逻辑变更的数据。因此可以理解为,一旦检测到差分清单中的升级数据涉及对界面整体更换的数据,或业务逻辑变更的数据,则生成整体升级信息。
需要说明的是,应用程序的界面是通过UI代码实现界面的人机交互、操作逻辑、入口布置以及美观设计的,因此,所述界面整体更换是指通过采用目标UI代码替换当前运行的UI代码所实现的。业务逻辑变更是指用于做一些有效性验证的工作,以更好地保证程序运行的健壮性。如完成数据添加、修改和查询业务等;不允许指定的文本框中输入空字符串,数据格式是否正确以及数据类型验证;用户权限的合法性判断等;通过以上的诸多判断以决定是否将操作继续向后传递,尽量保证程序的正常运行,其为业务逻辑层中的代码。
进一步地,所述差分清单中还可具有内容为字段信息的升级数据,其中,所述字段信息为用于描述字段的变更、或舍弃、或新增或调换位置的数据。
需要说明的是,所述字段信息为根据新版本应用程序的字段修改当前应用程序的字段的代码数据,因此,若未在差分清单中的升级数据中检测到涉及对界面整体更换的数据,或业务逻辑变更的数据,则生成局部升级信息。
在一个优选的实施例中,请参阅图5,所述S2中根据所述局部升级信息并通过所述差分清单的升级数据,在所述当前应用程序的版本调用接口中创建目标调用方法包括:
S201:根据所述局部升级信息识别用于调用当前应用程序的版本调用接口,复制所述版本调用接口中用于调用当前应用程序的调用方法作为拷贝方法;
需要说明的是,版本调用接口由一套陈述、功能、选项、其它表达程序结构的形式、以及程序师使用的程序或者程序语言提供的数据组成的,用于调用服务器中指令或功能的程序接口。
S202:提取所述差分清单中的升级数据,并根据所述升级信息修改所述拷贝方法,以获得用于调用新版本应用程序的目标调用方法;
其中,根据所述升级信息,如:字段的变更、舍弃、新增或调换位置,修改所述调用方法,以实现创建目标调用方法的目的。
S203:在所述目标调用方法中载入新版本应用程序的版本号,作为所述目标调用方法的版本信息,并将载入有版本信息的目标调用方法储存至所述当前应用程序的版本调用接口中。其中,本申请利用差分清单修改版本调用接口中的调用方法,无需卸载服务器2原运行的应用程序,仅需修改调用方法,即可实现应用程序的版本升级,提高了版本升级的效率,并且节省了版本升级所需的流量。
在一个优选的实施例中,请参阅图6,所述S2中根据所述差分清单的升级数据在所述目标控制器中创建具有目标调用方法的版本调用接口包括:
S211:在所述目标控制器中创建调用接口;
其中,对于根据整体升级信息所进行的应用程序升级(如:逻辑调整,界面大幅修改等),是无法在同一版本调用接口中兼容新版本调用方法和旧版本调用方法的,因此,本申请在每次根据整体升级信息进行升级时,均创建目标具有版本调用接口的控制器,以消除上述缺陷。
S212:复制所述当前应用程序的版本调用接口的数据,并将该数据载入所述目标控制器的调用接口中;
本步骤中,通过将当前应用程序所对应的版本调用接口的数据,拷贝至目标控制器中,不仅节省控制器的创建时间,还保证了所述控制器的数据准确度。
S213:根据所述差分清单中的升级数据修改所述目标控制器的调用接口中的调用方法,以获得目标调用方法。
本步骤中,通过差分清单修改调用方法,使该调用方法转为目标调用方法,进而实现对服务器中的应用程序的升级;此时,服务器将通过多个控制器同时兼容多个不同版本应用程序的版本调用接口,以保证不同版本用户端输出的请求均能得到正确的回复。
S214:在所述目标调用方法中载入所述新版本应用程序的版本号,作为所述目标调用方法的版本信息,并使所述调用接口转为具有目标调用方法的版本调用接口。
本步骤中,通过在目标调用方法中载入版本号,以便于服务器在接收到请求消息时,能够快速获得与所述请求消息对应的调用方法。
在示例性的实施例中,在所述根据所述差分清单的升级数据在所述目标控制器中创建具有目标调用方法的版本调用接口之后还包括:
基于所述服务器的架构在所述服务器中创建应用服务模块,用于将接收到的请求消息分流到相应的应用服务上,以保证应用程序与应用程序之间,以及各应用程序之间的程序独立;
在所述服务器中创建反向代理模块,用于接收由用户端输出的请求消息并将其输出至所述服务器;所述反向代理模块还用于接收由所述服务器输出的请求结果,并将其输出至用户端。
在一个优选的实施例中,请参阅图7,所述S3中根据所述请求消息遍历上述版本调用接口的调用方法以获得请求调用方法包括:
S301:提取所述请求消息的版本号。
具体地,判断所述请求消息中的URI是否具有版本号;若是,则获取所述URI中的版本号;若否,则获取所述请求消息中HEADER中的版本号。
例如,请求消息中的URI为:https://xxxhost/api/V2/account/user/xxx,其中,版本号为V2;由于该URI中具有版本号,因此,获取URI中的版本号V2;
若上述请求消息中不具有版本号,则提取请求消息中的HEADER:
[:authority:xxxhost(Host:初始URL中的主机和端口。)
:method:GET
:path:/api/account/user/(环境变量)
:scheme:https(超文本传输安全协议)
accept:application/json,text/plain(Accept:浏览器可接受的MIME类型。)
accept-encoding:gzip,deflate,br(指定编码类型。它的值通常为gzip或compress)
api-version:V2]
其中,authority:xxxhost用于表示主机和端口;
method:GET,用于表示该请求消息的操作为读取操作;
path:/api/account/user/为环境变量,用于表示该请求消息所要读取的信息的位置;
scheme:https为请求消息的协议,即超文本传输安全协议;
accept:application/json,text/plain为用户端浏览器可接受的Accept:浏览器可接受的MIME类型,MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。accept-encoding:gzip,deflate,br为指定编码类型。它的值通常为gzip或compress;
因此,获取请求消息中的HEADER的版本号,即:api-version:V2。
S302:遍历版本调用接口以将所述版本号与所述版本调用接口中调用方法进行对比,获取版本信息与所述版本号一致的调用方法,将所述调用方法设为请求调用方法。
具体的,遍历所述服务器的版本调用接口,以提取所有版本调用接口中的调用方法;将所述版本号依次与各所述调用方法的版本信息比对,识别出与所述版本号一致的版本信息,以获得与所述版本号匹配的调用方法。
在一个优选的实施例中,请参阅图8,所述S3中通过所述请求调用方法获取版本指定信息和无版本信息并形成请求结果包括:
S311:提取所述请求消息的版本号和请求字段。
本步骤中,所述请求消息包括URI(统一资源标识符)和HEADER(消息头)。具体的,判断所述请求消息中的URI是否具有版本号;若是,则获取所述URI中的版本号;若否,则获取所述请求消息中HEADER中的版本号;将所述版本号从所述URI中解除获得请求字段,或将所述URI设为请求字段。
基于上述举例,提取请求消息中的URI的版本号V2,并将版本号从URI中解除以获得请求字段:https://xxxhost/api/account/user/xxx;
若URI中不具有版本号,则从api-version:V2为版本号,并将请求消息的URI作为请求字段。
S312:通过所述请求调用方法根据所述请求字段获取无版本信息,及根据所述版本号和请求字段获取版本指定信息。
具体的,所述无版本信息通过以下方式获得:
根据所述请求字段并通过所述请求调用方法从服务器中获取无版本信息;若获取失败,则根据所述请求字段并通过默认调用规则从服务器中获取无版本信息。
进一步的,所述服务器中的应用程序还具有用于储存默认数据的默认区;所述默认区是应用程序在最初创建时所设定的,其储存的内容不随应用程序的升级而改变。
所述默认调度规则包括:
查询所述服务器中的默认区;其中,所述默认区是应用程序在最初创建的时候所设定的,其储存的数据不随应用程序的升级而改变;
根据所述请求字段从所述默认区中提取与所述请求字段匹配的默认数据,并将该默认数据设为无版本信息。
例如,所述请求字段通过请求调用方法所需获取的无版本信息包括姓名、年龄、性别;那么若获取成功,则将从服务器中获取到的信息“张三、23、男”作为无版本信息;若获取失败,则通过默认调度规则查询服务器中的默认区;假设默认区中的默认数据包括姓名和年龄,即“张三、23”,则将其作为无版本信息。
具体的,所述版本指定信息通过以下方式获得:
根据所述请求字段通过所述请求调用方法和版本号从服务器中获取准指定信息;
判断所述版本号是否为目标版本号,其中,所述目标版本号为所述目标调用方法的目标版本号;
若是,则将该准指定信息设为版本指定信息;
若否,则通过所述目标调用方法根据请求字段和所述最新版本号从服务器中获取兼容信息,将所述准指定信息和兼容信息汇总并去重,获得版本指定信息。
进一步的,所述根据所述请求字段和版本号通过所述请求调用方法从服务器中获取准指定信息包括:
根据所述请求字段通过所述请求调用方法从服务器中获取信息;
若获取成功,则将该信息设为准指定信息;
若获取失败,则将所述版本号修改为所述服务器前一应用程序的版本号,并遍历服务器的版本调用接口以获取与该版本号匹配的调用方法,并将其作为请求调用方法,根据所述请求字段并通过该请求调用方法再次从服务器中获取信息,直到从所述服务器中成功获取信息并将其设为准指定信息为止。
进一步的,所述判断所述版本号是否为最新版本号包括:
提取所述服务器中所有调用方法的版本信息,并从所述版本信息中获取目标版本号;
判断所述版本号与所述最新的版本号是否一致。
进一步的,所述根据请求字段和所述最新版本号从服务器中获取兼容信息包括:
从所述服务器中获取与所述最新版本号一致的版本信息,获取与所述版本信息对应的调用方法,以及所述调用方法所在的版本调用接口;
根据所述请求字段和最新版本号通过所述版本调用接口中的调用方法,从所述服务器中获取兼容信息。
例如,所述请求字段和版本号V2通过请求调用方法从服务器中获取的版本指定信息为职业、收入;若获取成功,则将从服务器中获取到的信息“工人、5000元”设为准指定信息;
若获取失败,则将所述版本号修改为所述服务器前一应用程序的版本号V2改为V1,并获取与V1匹配的调用方法,再次从服务器中获取信息;假设版本号V2与所述请求字段从服务器中获取的版本指定信息为“职业、工龄”;若获取成功,则将从服务器中获取到的信息“工人、10年”设为准指定信息;
假设请求消息的版本号为V1,版本号V1获取成功,而版本信息中目标版本号为V2,因此,根据请求字段和版本号V2再次从服务器中获取兼容信息“工人、5000元”;将作为准指定信息的“工人、10年”与作为兼容信息的“工人、5000元”汇总并去重,获得“工人、5000元、10年”的版本指定信息,以避免用户端因未及时升级,而获得的请求结果不足的情况发生。
S313:汇总所述无版本信息和版本指定信息形成请求结果。
其中,将无版本信息和版本指定信息汇总并去重获得请求结果,以消除请求结果中的信息冗余。
示例性地,对于新版本的用户端,在接收到新版本的用户端输出的请求消息时,则通过新版本调用接口从服务器中提取信息并返回。
对于旧版本的用户端,在接收到旧版本的用户端输出的请求消息时,首先根据该请求消息的请求字段,通过新版本调用接口从服务器中获得无版本信息,再根据所述请求消息的版本号获得旧版本调用接口,根据所述请求消息的请求字段和版本号,通过所述旧版本调用接口从服务器中获得版本指定信息;将无版本信息与版本指定信息结合并去重形成请求结果,并将其返回至用户端。因此,避免了旧版本的用户端因未随服务器进行升级,所导致的信息返回不全的问题,保证了信息返回的全面性。
其中,无版本信息是基于请求字段所获得的,因此仅需通过版本调用系统从服务器中获取与所述请求字段匹配的信息作为无版本信息即可,保证了信息获取的可靠性,避免了因请求字段中的版本号与版本调用接口中版本信息不匹配而造成无法获取信息的情况出现;同时,当无版本信息获取失败时,还可通过访问默认区提取默认数据的方式,提取与所述请求字段匹配的默认数据并将其设为无版本信息,保证了信息获取的成功率和可靠性。
实施例二
请参阅图9,本实施例的一种版本升级调用装置1,包括:
差分识别模块11,用于接收控制端发送的新版本应用程序,获取与所述新版本应用程序对应的当前应用程序,将所述当前应用程序与新版本应用程序进行比较以获得差分清单,根据所述差分清单的升级数据生成局部升级信息或整体升级信息;其中,所述差分清单是储存有升级数据的差分包,所述升级数据是用于描述新版本应用程序的代码与当前应用程序的代码之间差别的代码数据;
升级管理模块12,用于根据所述局部升级信息并通过所述差分清单的升级数据,在所述当前应用程序的版本调用接口中创建目标调用方法,或根据所述整体升级信息创建目标控制器,根据所述差分清单的升级数据在所述目标控制器中创建具有目标调用方法的版本调用接口;
调用管理模块13,用于接收由用户端发送的请求消息,根据所述请求消息遍历所述版本调用接口的调用方法以获得请求调用方法;如果所述请求调用方法为所述目标调用方法,则根据所述请求消息获得请求结果并发送所述用户端;如果所述请求调用方法不为所述目标调用方法,则通过所述请求调用方法获取版本指定信息和无版本信息并形成请求结果,并将所述请求结果发送至所述用户端;其中,所述版本指定信息是基于请求消息的版本号和请求字段所获得的信息,所述无版本信息是仅基于请求消息的请求字段所获得的信息。
本技术方案基于基架运维领域的运维技术,通过采用差分清单获得新旧版本的差别,根据该差别生成局部升级信息和整体升级信息以实现差别升级,进而实现最大限度降低对服务器中应用程序的版本调用接口的改变,提高了升级效率,并且保证了应用程序运行可靠性;根据局部升级信息在版本调用接口中创建目标调用方法,对应用程序进行升级,使得该版本调用接口可以同时储存有新版本和旧版本的调用方法,以便于处理不同版本用户端发送的请求;根据整体升级信息新建控制器,并在该控制器的版本调用接口中创建新版本的调用方法对应用程序进行升级,由于保留了旧版本应用程序的控制器及其版本调用接口,因此实现了处理不同版本用户端发送的请求消息,并根据该请求消息向用户端发送相应的请求结果,优化了移动终端操作体验,进而实现了服务器和用户端的过程优化。
实施例三:
为实现上述目的,本发明还提供一种计算机系统,该计算机系统包括多个计算机设备5,实施例二的版本升级调用装置1的组成部分可分散于不同的计算机设备中,计算机设备可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备至少包括但不限于:可通过系统总线相互通信连接的存储器51、处理器52,如图10所示。需要指出的是,图10仅示出了具有组件-的计算机设备,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器51(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器51可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,存储器51也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器51还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,存储器51通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例一的版本升级调用装置的程序代码等。此外,存储器51还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器52在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器52通常用于控制计算机设备的总体操作。本实施例中,处理器52用于运行存储器51中存储的程序代码或者处理数据,例如运行版本升级调用装置,以实现实施例一的版本升级调用方法。
实施例四:
为实现上述目的,本发明还提供一种计算机可读存储系统,其包括多个存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器52执行时实现相应功能。本实施例的计算机可读存储介质用于存储版本升级调用装置,被处理器52执行时实现实施例一的版本升级调用方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种版本升级调用方法,其特征在于,包括以下步骤:
接收控制端发送的新版本应用程序,获取与所述新版本应用程序对应的当前应用程序,将所述当前应用程序与新版本应用程序进行比较以获得差分清单,根据所述差分清单的升级数据生成局部升级信息或整体升级信息;其中,所述差分清单是储存有升级数据的差分包,所述升级数据是用于描述新版本应用程序的代码与当前应用程序的代码之间差别的代码数据;
根据所述局部升级信息并通过所述差分清单的升级数据,在所述当前应用程序的版本调用接口中创建目标调用方法,或
根据所述整体升级信息创建目标控制器,根据所述差分清单的升级数据在所述目标控制器中创建具有目标调用方法的版本调用接口;
接收由用户端发送的请求消息,根据所述请求消息遍历所述版本调用接口的调用方法以获得请求调用方法;如果所述请求调用方法为所述目标调用方法,则根据所述请求消息获得请求结果并发送所述用户端;如果所述请求调用方法不为所述目标调用方法,则通过所述请求调用方法获取版本指定信息和无版本信息并形成请求结果,并将所述请求结果发送至所述用户端;其中,所述版本指定信息是基于请求消息的版本号和请求字段所获得的信息,所述无版本信息是仅基于请求消息的请求字段所获得的信息。
2.根据权利要求1所述的版本升级调用方法,其特征在于,所述将所述当前应用程序与新版本应用程序进行比较以获得差分清单当前包括:
提取当前应用程序;
将所述新版本应用程序中的数据与当前应用程序中的数据逐一比较,获得用于描述所述新版本应用程序与当前应用程序之间差别的差分清单。
3.根据权利要求1所述的版本升级调用方法,其特征在于,所述根据所述差分清单的升级数据生成局部升级信息或整体升级信息包括:
检测所述差分清单中是否具有内容为更换信息或逻辑信息的升级数据;若否,则生成局部升级信息;若是,则生成整体升级信息;
其中,所述更换信息是用于对应用程序进行界面整体更换的数据,所述逻辑信息是用于对应用程序进行业务逻辑变更的数据。
4.根据权利要求1所述的版本升级调用方法,其特征在于,所述根据所述局部升级信息并通过所述差分清单的升级数据,在所述当前应用程序的版本调用接口中创建目标调用方法包括:
根据所述局部升级信息识别用于调用当前应用程序的版本调用接口,复制所述版本调用接口中用于调用当前应用程序的调用方法作为拷贝方法;
提取所述差分清单中的升级数据,并根据所述升级数据修改所述拷贝方法,以获得用于调用新版本应用程序的目标调用方法;
在所述目标调用方法中载入新版本应用程序的版本号,作为所述目标调用方法的版本信息,并将载入有版本信息的目标调用方法储存至所述当前应用程序的版本调用接口中。
5.根据权利要求1所述的版本升级调用方法,其特征在于,所述根据所述差分清单的升级数据在所述目标控制器中创建具有目标调用方法的版本调用接口包括:
在所述目标控制器中创建调用接口;
复制所述当前应用程序的版本调用接口的数据,并将该数据载入所述目标控制器的调用接口中;
根据所述差分清单中的升级数据修改所述目标控制器的调用接口中的调用方法,以获得目标调用方法;
在所述目标调用方法中载入所述新版本应用程序的版本号,作为所述目标调用方法的版本信息,并使所述调用接口转为具有目标调用方法的版本调用接口。
6.根据权利要求1所述的版本升级调用方法,其特征在于,所述根据所述请求消息遍历所述版本调用接口的调用方法以获得请求调用方法包括:
提取所述请求消息的版本号;
遍历版本调用接口以将所述版本号与所述版本调用接口中调用方法进行对比,获取版本信息与所述版本号一致的调用方法,将所述调用方法设为请求调用方法。
7.根据权利要求1所述的版本升级调用方法,其特征在于,所述通过所述请求调用方法获取版本指定信息和无版本信息并形成请求结果包括:
提取所述请求消息的版本号和请求字段;
通过所述请求调用方法根据所述请求字段获取无版本信息,及根据所述版本号和请求字段获取版本指定信息;
汇总所述无版本信息和版本指定信息形成请求结果。
8.一种版本升级调用装置,其特征在于,包括:
差分识别模块,用于接收控制端发送的新版本应用程序,获取与所述新版本应用程序对应的当前应用程序,将所述当前应用程序与新版本应用程序进行比较以获得差分清单,根据所述差分清单的升级数据生成局部升级信息或整体升级信息;其中,所述差分清单是储存有升级数据的差分包,所述升级数据是用于描述新版本应用程序的代码与当前应用程序的代码之间差别的代码数据;
升级管理模块用于根据所述局部升级信息并通过所述差分清单的升级数据,在所述当前应用程序的版本调用接口中创建目标调用方法,或根据所述整体升级信息创建目标控制器,根据所述差分清单的升级数据在所述目标控制器中创建具有目标调用方法的版本调用接口;
调用管理模块,用于接收由用户端发送的请求消息,根据所述请求消息遍历所述版本调用接口的调用方法以获得请求调用方法;如果所述请求调用方法为所述目标调用方法,则根据所述请求消息获得请求结果并发送所述用户端;如果所述请求调用方法不为所述目标调用方法,则通过所述请求调用方法获取版本指定信息和无版本信息并形成请求结果,并将所述请求结果发送至所述用户端;其中,所述版本指定信息是基于请求消息的版本号和请求字段所获得的信息,所述无版本信息是仅基于请求消息的请求字段所获得的信息。
9.一种计算机系统,其包括多个计算机设备,各计算机设备包括存储器.处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述多个计算机设备的处理器执行所述计算机程序时共同实现权利要求1至7任一项所述版本升级调用方法的步骤。
10.一种计算机可读存储介质,其包括多个存储介质,各存储介质上存储有计算机程序,其特征在于,所述多个存储介质存储的所述计算机程序被处理器执行时共同实现权利要求1至7任一项所述版本升级调用方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911321639.9A CN111158716B (zh) | 2019-12-20 | 2019-12-20 | 版本升级调用方法、装置、计算机系统及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911321639.9A CN111158716B (zh) | 2019-12-20 | 2019-12-20 | 版本升级调用方法、装置、计算机系统及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111158716A true CN111158716A (zh) | 2020-05-15 |
CN111158716B CN111158716B (zh) | 2022-05-03 |
Family
ID=70557449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911321639.9A Active CN111158716B (zh) | 2019-12-20 | 2019-12-20 | 版本升级调用方法、装置、计算机系统及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111158716B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111736869A (zh) * | 2020-06-19 | 2020-10-02 | 浙江大搜车软件技术有限公司 | 服务端接口的版本更新方法和服务端接口的调用方法 |
CN113918209A (zh) * | 2021-12-16 | 2022-01-11 | 深圳市明源云科技有限公司 | 一种升级清单生成方法、设备及可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120222025A1 (en) * | 2011-02-25 | 2012-08-30 | Red Hat, Inc. | Version compatibility determination |
CN103699408A (zh) * | 2013-12-12 | 2014-04-02 | 乐视网信息技术(北京)股份有限公司 | 一种软件升级的方法和设备 |
CN107948239A (zh) * | 2017-10-16 | 2018-04-20 | 大唐网络有限公司 | 基于Android系统的版本升级方法及其系统 |
CN108509211A (zh) * | 2018-02-07 | 2018-09-07 | 深圳壹账通智能科技有限公司 | 应用程序升级方法、装置、移动终端和存储介质 |
CN109634636A (zh) * | 2018-12-17 | 2019-04-16 | 百度在线网络技术(北京)有限公司 | 应用处理方法、装置、设备和介质 |
CN110221840A (zh) * | 2019-06-05 | 2019-09-10 | 百度在线网络技术(北京)有限公司 | 应用程序的功能实现方法及装置、设备及存储介质 |
CN110377321A (zh) * | 2019-07-22 | 2019-10-25 | 平安科技(深圳)有限公司 | 应用程序升级的方法、装置、终端及存储介质 |
-
2019
- 2019-12-20 CN CN201911321639.9A patent/CN111158716B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120222025A1 (en) * | 2011-02-25 | 2012-08-30 | Red Hat, Inc. | Version compatibility determination |
CN103699408A (zh) * | 2013-12-12 | 2014-04-02 | 乐视网信息技术(北京)股份有限公司 | 一种软件升级的方法和设备 |
CN107948239A (zh) * | 2017-10-16 | 2018-04-20 | 大唐网络有限公司 | 基于Android系统的版本升级方法及其系统 |
CN108509211A (zh) * | 2018-02-07 | 2018-09-07 | 深圳壹账通智能科技有限公司 | 应用程序升级方法、装置、移动终端和存储介质 |
CN109634636A (zh) * | 2018-12-17 | 2019-04-16 | 百度在线网络技术(北京)有限公司 | 应用处理方法、装置、设备和介质 |
CN110221840A (zh) * | 2019-06-05 | 2019-09-10 | 百度在线网络技术(北京)有限公司 | 应用程序的功能实现方法及装置、设备及存储介质 |
CN110377321A (zh) * | 2019-07-22 | 2019-10-25 | 平安科技(深圳)有限公司 | 应用程序升级的方法、装置、终端及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111736869A (zh) * | 2020-06-19 | 2020-10-02 | 浙江大搜车软件技术有限公司 | 服务端接口的版本更新方法和服务端接口的调用方法 |
CN113918209A (zh) * | 2021-12-16 | 2022-01-11 | 深圳市明源云科技有限公司 | 一种升级清单生成方法、设备及可读存储介质 |
CN113918209B (zh) * | 2021-12-16 | 2022-04-15 | 深圳市明源云科技有限公司 | 一种升级清单生成方法、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111158716B (zh) | 2022-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108549580B (zh) | 自动部署Kubernetes从节点的方法及终端设备 | |
US10516526B2 (en) | Data transmitting method, server and client | |
CN114500690B (zh) | 接口数据处理方法、装置、电子设备及存储介质 | |
CN109391673A (zh) | 一种管理更新文件的方法、系统及终端设备 | |
CN115208951B (zh) | 请求处理方法、装置、电子设备及计算机可读存储介质 | |
CN111158716B (zh) | 版本升级调用方法、装置、计算机系统及可读存储介质 | |
CN104301875A (zh) | 短消息处理方法和装置 | |
CN109614131A (zh) | 一种广播设备升级控制系统 | |
CN112052141B (zh) | 数据分片校验方法、装置、计算机设备及可读存储介质 | |
CN110019158A (zh) | 一种监控数据质量的方法和装置 | |
CN110188038B (zh) | 一种参数校验方法及装置、校验架构 | |
CN112579958A (zh) | 网页转换方法、装置、计算机设备及可读存储介质 | |
CN112052256A (zh) | 多版本请求返回方法、装置、计算机设备及可读存储介质 | |
CN109327499B (zh) | 业务接口的管理方法及装置、存储介质、终端 | |
CN110737548A (zh) | 数据请求方法和服务器 | |
CN112087475A (zh) | 一种云平台组件应用的消息推送方法、装置及消息服务器 | |
CN112527780B (zh) | Redis集群的创建与管理方法、系统、计算机设备和存储介质 | |
CN114978902A (zh) | 信息处理方法、装置、设备、存储介质及程序产品 | |
CN113986289A (zh) | 边缘计算网关的固件升级方法及装置 | |
CN114489754A (zh) | 可配置服务管理方法及装置 | |
CN114925044A (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
CN110022310B (zh) | 基于云计算开放网络操作系统的授权方法及装置 | |
CN114090055A (zh) | 应用程序更新方法、装置、终端及存储介质 | |
CN111585897A (zh) | 请求路由管理方法、系统、计算机系统及可读存储介质 | |
CN110740192A (zh) | 一种基于p2p网络的虚拟化环境下的镜像分发方法及系统 |
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 |