CN105577707A - 一种远程调用方法与设备 - Google Patents
一种远程调用方法与设备 Download PDFInfo
- Publication number
- CN105577707A CN105577707A CN201410524408.9A CN201410524408A CN105577707A CN 105577707 A CN105577707 A CN 105577707A CN 201410524408 A CN201410524408 A CN 201410524408A CN 105577707 A CN105577707 A CN 105577707A
- Authority
- CN
- China
- Prior art keywords
- application
- version
- item
- target application
- privately owned
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本申请的目的是提供一种远程调用方法及设备。远程调用设备根据应用调用请求所对应的应用项目确定所述应用调用请求所对应的目标应用的版本,再调用所述目标应用的版本。其中,所述目标应用的版本包括:所述目标应用的公共版本,或所述目标应用对应于所述应用项目的私有版本。与现有技术相比,当目标应用无需修改时,所述应用项目可以调用目标应用的公共版本,当目标应用在应用项目中需被修改时,所述远程调用设备可以根据应用项目所发送的应用调用请求来提供该目标应用对应于该应用项目的私有版本,从而避免了在每个应用被修改及调试时重复配置多个版本以供其他应用调用,节约了计算设备资源。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种远程调用技术。
背景技术
通过远程调用,例如HSF(highspeedframework,高速框架)或RMI等RPC,许多大型的网络服务能够由多个应用完成一项业务。例如,用户网购一件商品,此时网络服务平台通过为用户提供商品查询、购买流程、在线支付等应用来帮助用户实现购买商品的业务。由上可见,为了完成一项业务,应用间需要相互调用以配合实现所需业务功能或性能,甚至一项应用可能会被多项其他应用调用。当某个项目需要升级或修改一应用时,将会影响需调用该应用的其他应用正常运行。现有技术中,针对每个应用项目,完全搭建一套新的环境,这个环境里有项目所涉及的所有应用,各个项目环境是网络上隔离的,所以无法相互调用。这样当项目B里的应用B出错时,并不会影响项目A里的应用A。对于大型网络服务平台来说,由于各应用的研发团队并不相同,如果每个应用在修改时都配置一套与平台上运行相同的环境,是费时费事的。因此,如何确保通过应用调用实现业务功能并减少应用的重复配置,是本领域技术人员所要解决的问题。
发明内容
本申请的目的是提供一种的远程调用方法与设备。
根据本申请的一个方面,提供了一种远程调用方法,其步骤包括:
根据应用调用请求所对应的应用项目确定所述应用调用请求所对应的目标应用的版本;
调用所述目标应用的版本;
其中,所述目标应用的版本包括:所述目标应用的公共版本,或所述目标应用对应于所述应用项目的私有版本。
根据本申请的另一方面,还提供了一种远程调用设备,包括:
第一装置,用于根据应用调用请求所对应的应用项目确定所述应用调用请求所对应的目标应用的版本;
第二装置,用于调用所述目标应用的版本;
其中,所述目标应用的版本包括:所述目标应用的公共版本,或所述目标应用对应于所述应用项目的私有版本。
与现有技术相比,本申请的一种远程调用方法与设备,当目标应用无需修改时,所述应用项目可以调用目标应用的公共版本,当目标应用在应用项目中需被修改时,所述远程调用设备可以根据应用项目所发送的应用调用请求来提供该目标应用对应于该应用项目的私有版本,从而避免了在每个应用被修改及调试时重复配置多个版本以供其他应用调用,节约了计算设备资源。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种远程调用设备示意图;
图2示出根据本申请一个优选实施例的一种远程调用设备示意图;
图3示出根据本申请另一个优选实施例的一种远程调用设备示意图;
图4示出根据本申请另一个方面的一种远程调用方法流程图;
图5示出根据本申请一个优选实施例的一种远程调用方法流程图;
图6示出根据本申请另一个优选实施例的一种远程调用方法流程图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
图1示出根据本申请一个方面的一种远程调用设备,其中,远程调用设备10包括第一装置11和第二装置12。具体地,所述第一装置11用于根据应用调用请求所对应的应用项目2确定所述应用调用请求所对应的目标应用的版本3;所述第二装置12用于调用所述目标应用的版本3,其中,所述目标应用的版本3包括:所述目标应用的公共版本;或所述目标应用对应于所述应用项目2的私有版本。
在此,远程调用设备10可由网络主机、单个网络服务器、多个网络服务器集、终端等实现。本领域技术人员应能理解上述远程调用设备10仅为举例,其他现有的或今后可能出现的网络服务器如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在此,所述应用包括实现一定功能并提供功能访问服务的模块或子系统;所述应用项目包括通过调用一项或多项所述应用实现一定功能的模块或子系统,例如一应用项目通过分别调用应用AppA、AppB及AppC实现特定功能,或者通过先调用应用AppA、后由应用AppA调用应用AppB、再由应用AppB调用应用AppC,实现特定功能。
本领域技术人员还能够理解,所述应用项目和/或所述目标应用的版本通常被部署于一台或多台计算设备,因此,所述应用项目和/或所述目标应用的版本的内涵包括但不限于所对应的应用项目或该应用,以及部署有该应用项目或该应用的计算设备,其具体含义可视其上下文确定。
具体地,所述第一装置11中可预设有各应用项目2与所对应调用的各目标应用的版本3之间的映射关系,或者可通过网络访问获取各应用项目2与所对应调用的各目标应用的版本3之间的映射关系,其中,所述应用项目2和目标应用的版本3既可位于同一个网络服务器中,也可以位于不同的网络服务器并通过网络互相通信。所述第一装置11通过http、https、程序接口等约定通信方式,从不同应用/网络平台、客户端、或者自身所在的远程调用设备10中获取应用调用请求,所述第一装置11根据上述映射关系确定所述应用调用请求所对应的目标应用的版本3。其中,所确定的目标应用的版本3既可位于一台网络服务器/终端中,也可以位于同时运行在多个网络服务器/终端中。所述映射关系将每个应用项目2与各自所要调用的所有目标应用的版本3相对应。
在此,所述映射关系可以通过动态链表、配置表等方式实现。技术人员可以通过升级或手工配置等方式来更新所述映射关系。
在此,所述目标应用的私有版本和公共版本均包含目标应用所在位置、版本号等。
在此,所述第一装置11根据应用调用请求所对应的应用项目2确定所述应用调用请求所对应的目标应用的版本3的方式包括但不限于:
1)根据接收所述应用调用请求的专用接口来确定应用项目2,并通过查找所述映射关系来确定目标应用的版本3。例如,程序接口a1是应用项目A1与所述第一装置11相通信的专用接口,当所述第一装置11接收到程序接口a1所传递的调用目标应用B1的应用调用请求时,就能确定该应用调用请求来自应用项目A1,并根据预设的应用项目A1与目标应用B1的V1.0版本位于网络服务器b1上的映射关系来确定所要调用的目标应用B1的版本为V1.0且位于网络服务器b1上。
2)根据应用调用请求所对应的项目标识信息确定所述应用调用请求所对应的应用项目2;以及,根据所述应用项目2确定所述应用调用请求所对应的目标应用的版本3。其中,所述项目标识信息包括但不限于以下一种或多种的组合:应用项目所在设备的IP、应用项目的名称、或其他可用于标识该应用项目的信息等。
具体地,所述第一装置11中可预设了各应用项目2的项目标识信息与各自所对应调用的目标应用的版本3的映射关系,或者可通过网络访问获取各应用项目2的项目标识信息与各自所对应调用的目标应用的版本3的映射关系,当所述第一装置11接收到来自网络的应用调用请求中包含项目标识信息和所要调用的目标应用名称,则通过查找预设的映射关系,所述第一装置11确定所述应用调用请求中的项目标识信息所对应的目标应用的版本3。
例如,某网络服务器中包含应用项目A2和A3,为了能够准确分辨,在所述第一装置11中预设应用项目A2的名称和其所能调用的目标应用B1和B2的版本的映射关系,以及应用项目A3的名称与其所能调用的各目标应用B2和B3的版本的映射关系,则所述第一装置11通过解析应用调用请求中的应用项目的名称和目标应用的名称来确定应用项目所对应的目标应用的版本。
进一步地,所述第一装置11可以仅预设各应用项目2与目标应用的私有版本的映射关系,当所述第一装置11查找到所述目标应用对应于所述应用项目2的私有版本时,确定该私有版本为所述应用调用请求所对应的目标应用的版本3;反之,则确定所述目标应用的公共版本为所述应用调用请求所对应的目标应用的版本3。
例如,所述第一装置11预设的映射关系包括:应用项目A4的名称和其所能调用的目标应用B1的私有版本的映射关系,以及应用项目A5的名称与其所能调用的各目标应用B2的私有版本和B3的私有版本的映射关系,所述第一装置11还预设有目标应用B1、B2和B3的公共版本。当所述第一装置11接收到的应用调用请求为:应用项目A4调用目标应用B2,则所述第一装置11在所预设的映射关系中未能查找到应用项目A4与目标应用B2的私有版本之间的映射关系,则所述第一装置11确定所述应用项目A4所要调用的目标应用B2的版本为公共版本。
当根据所述应用项目2得到多个所对应的目标应用的版本3时,所述第一装置11可随机的或根据各目标应用所在设备的实际负载情况来确定一个目标应用的版本3。
例如,当所述第一装置11所找到的目标应用的版本3运行在多个网络服务器或终端中,则所述第一装置11还通过与监控各网络服务器或终端中各应用运行情况的列表做交集的方式,来确认所找到的每个目标应用的版本3是否正在运行在各自的网络服务器中,并随机的从正在运行的各目标应用的版本3中确定一个目标应用的版本3。
在此,所述目标应用的公共版本可被设置在开放的网络环境中、并能够被多个应用项目2调用,或者可默认的被应用项目2调用。其中,所述目标应用的公共版本优选地存储于由基于远程调用的多个应用项目共享的公共环境。例如,在应用项目A5、A6正常运行期间,应用项目A5、A6都能够调用到应用B3的V1.0版本,则当前应用B3的版本为公共版本。
所述目标应用的私有版本包括:仅为某一个或多个指定的应用项目2服务的目标应用的版本3;或者在应用项目2及目标应用调试阶段,为调试中的应用项目2服务的目标应用的版本3。其中,所述目标应用的私有版本既可以存储在应用项目2的私有环境中,也可以存储在基于远程调用的公共环境中,或其他可供访问的任意第三方存储空间。优选地,所述目标应用的私有版本位于所述应用项目2的私有环境中,其中,所述应用项目2的私有环境包括至少一个应用对应于该应用项目2的私有版本。其中,所述应用项目2涉及对所述至少一个应用的修改。例如,某个应用项目A7和所要调用的应用B1正在被研发人员进行研发或升级调试,该应用项目A7的私有环境中包括目标应用B1的一个版本,即应用B1对应于应用项目A7的私有版本;当所述第一装置11接收到来自所述应用项目A7的应用调用请求时,根据预设的应用项目A7与应用B1的私有版本的映射关系,所述第一装置11确定了所述应用项目A7的私有环境中应用B1的版本为目标应用的版本。
所述第一装置11在确定目标应用的版本3后,将所确定的目标应用的版本3提供给所述第二装置12,则所述第二装置12调用所确定的版本的目标应用。
具体地,所述第一装置11将所确定的目标应用的版本3的启动入口提供给所述第二装置12,则所述第二装置12根据所得到的启动入口来调用相应版本的目标应用。其中,各版本所对应的目标应用的启动入口既可在所述第二装置12所在的远程调用设备10中,也可以位于任一与所述远程调用设备10网络通信连接的网络服务器或终端中。
例如,所述第一装置11确定了目标应用B1的V1.1版本,该版本中包含了:启动入口位于网络服务器b1上,则所述第一装置11将所确定的目标应用B1的V1.1版本提供给所述第二装置12,则所述第二装置12据此来调用网络服务器b1上的目标应用B1的V1.1版本。
图2示出根据本申请一个优选实施例的一种远程调用设备。所述远程调用设备100包括:第一装置101、第二装置102和第三装置103。具体地,在第一应用项目21处于升级或研发阶段,通常会对所要调用的第二应用31进行适应性的修改,此时需要单独配置第二应用31的私有版本。在第一应用项目21和第二应用31调试期间,包括第二应用31的公共版本在内的各应用需要正常运行,因此,所述第一装置101根据应用调用请求所对应的第一应用项目21确定该私有版本为所述应用调用请求所对应目标应用的版本。接着,所述第二装置102调用该私有版本。当第二应用31的私有版本调试完成且运行稳定后,第三装置103更新第二应用31对应于第一应用项目21的私有版本,并根据该私有版本更新所述第二应用31的公共版本,使得其他应用项目也能够使用所述第二应用31的更新。
具体地,一方面,当技术人员需要修改和调试第一应用项目21和所需调用的第二应用31时,先为第一应用项目21和第二应用31配置私有环境,其中,私有环境中的第二应用31为所述第二应用31的私有版本,当接收第一应用项目21所发送的应用调用请求时,所述第一装置101通过查询映射关系来确定所述第二应用31的私有版本为目标应用的版本,并通知所述第二装置102调用相应的第二应用31的私有版本。
另一方面,在第一应用项目21和第二应用31调试稳定运行后,所述第三装置103根据该私有版本更新位于公共环境中的所述第二应用31的公共版本,由此使得其他应用项目也能够使用所述第二应用31的更新。
图3示出根据本申请又一个优选实施例的一种远程调用设备。所述远程调用设备1000应用于至少由第一应用项目21’、第二应用31和第三应用41来实现一个完整业务的场景下。其中,所述远程调用设备1000包含第一装置1001和第二装置1002。具体地,所述第一装置1001根据应用调用请求所对应的项目标识信息确定所述应用调用请求所对应的应用项目,其中,所述项目标识信息在所述应用调用请求所属的调用链中被传递至下一个应用调用请求。所述第一装置1001还根据所述应用项目确定所述应用调用请求所对应的目标应用的版本。所述第二装置1002调用所述目标应用的版本,其中,所述目标应用的版本包括:所述目标应用的公共版本;或所述目标应用对应于所述应用项目的私有版本。在此,远程调用设备1000中的第二装置1002与图1中远程调用设备10中的第二装置12的内容相同或基本相同,为简明起见,故在此不再赘述,并以引用的方式包含于此。
在此,所述调用链包括但不限于:第一应用项目21’为了完成业务或实现特定功能请求调用第二应用31,第二应用31为了完成所述业务请求调用第三应用41,如此,第一应用项目21’、第二应用31和第三应用41构成了一个调用链。本领域技术人员应能理解上述调用链仅为举例,其他现有的或今后可能出现的调用链如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
例如,所述第一装置1001根据各应用之间的调用链预设了应用项目A8与应用B8的各版本的映射关系、应用项目A8和应用项目C8的各版本的映射关系。当应用项目A8在运行时需要调用应用项目B8,则向所述第一装置1001发出调用应用项目B8的应用调用请求request1包括:包含应用项目A8所在设备的IP地址或/和应用项目A8的名称等项目标识信息,和应用项目B8的名称。所述第一装置1001根据所述应用调用请求request1中的项目标识信息和预设的映射关系来找到一个应用项目B8的版本并由所述第二装置1002来调用应用项目B8;在所述应用项目B8在运行时,需要调用应用项目C8,则所述应用项目B8向所述第一装置1001发出调用应用项目C8的应用调用请求request2,所述应用调用请求request2包括:包含应用项目A8所在设备的IP地址或/和应用项目A8的名称等项目标识信息,和应用项目C8的名称。所述第一装置1001根据所述应用调用请求request2中的项目标识信息和映射关系来查找应用项目A8通过应用项目B8所要调用的应用C8的版本,并查找到所要调用的应用项目C8的版本同时位于三个网络服务器中,所述第一装置1001随机选择一个网络服务器上的应用项目C8,并由所述第二装置1002来调用所选中的应用项目C8,如此应用项目A8完成其业务或实现其功能。
所述远程调用设备1000中还可以包含第三装置(未予图示),在此,所述第三装置与图2中远程调用设备100中的第三装置103的内容相同或基本相同,为简明起见,故在此不再赘述,并以引用的方式包含于此。
图4示出根据本申请一个方面的一种远程调用方法,其中,远程调用方法包括步骤S11和步骤S12。具体地,在步骤S11中,远程调用设备根据应用调用请求所对应的应用项目确定所述应用调用请求所对应的目标应用的版本;在步骤S12中,所述远程调用设备调用所述目标应用的版本,其中,所述目标应用的版本包括:所述目标应用的公共版本;或所述目标应用对应于所述应用项目的私有版本。
在此,远程调用设备可由网络主机、单个网络服务器、多个网络服务器集、终端等实现。本领域技术人员应能理解上述远程调用设备仅为举例,其他现有的或今后可能出现的网络服务器如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在此,所述应用包括实现一定功能并提供功能访问服务的模块或子系统;所述应用项目包括通过调用一项或多项所述应用实现一定功能的模块或子系统,例如一应用项目通过分别调用应用AppA、AppB及AppC实现特定功能,或者通过先调用应用AppA、后由应用AppA调用应用AppB、再由应用AppB调用应用AppC,实现特定功能。
本领域技术人员还能够理解,所述应用项目和/或所述目标应用的版本通常被部署于一台或多台计算设备,因此,所述应用项目和/或所述目标应用的版本的内涵包括但不限于所对应的应用项目或该应用,以及部署有该应用项目或该应用的计算设备,其具体含义可视其上下文确定。
具体地,所述远程调用设备中可预设有各应用项目与所对应调用的各目标应用的版本之间的映射关系,或者可通过网络访问获取各应用项目与所对应调用的各目标应用的版本之间的映射关系,其中,所述应用项目和目标应用的版本既可位于同一个网络服务器中,也可以位于不同的网络服务器并通过网络互相通信。所述远程调用设备通过http、https、程序接口等约定通信方式,从不同应用/网络平台、客户端、或者自身所在的远程调用设备中获取应用调用请求,所述远程调用设备根据上述映射关系确定所述应用调用请求所对应的目标应用的版本。其中,所确定的目标应用的版本既可位于一台网络服务器/终端中,也可以位于同时运行在多个网络服务器/终端中。所述映射关系将每个应用项目与各自所要调用的所有目标应用的版本相对应。
在此,所述映射关系可以通过动态链表、配置表等方式实现。技术人员可以通过升级或手工配置等方式来更新所述映射关系。
在此,所述目标应用的私有版本和公共版本均包含目标应用所在位置、版本号等。
在此,所述远程调用设备根据应用调用请求所对应的应用项目确定所述应用调用请求所对应的目标应用的版本的方式包括但不限于:
1)根据接收所述应用调用请求的专用接口来确定应用项目,并通过查找所述映射关系来确定目标应用的版本。例如,程序接口a1是应用项目A1与所述远程调用设备相通信的专用接口,当所述远程调用设备接收到程序接口a1所传递的调用目标应用B1的应用调用请求时,就能确定该应用调用请求来自应用项目A1,并根据预设的应用项目A1与目标应用B1的V1.0版本位于网络服务器b1上的映射关系来确定所要调用的目标应用B1的版本为V1.0且位于网络服务器b1上。
2)根据应用调用请求所对应的项目标识信息确定所述应用调用请求所对应的应用项目;以及,根据所述应用项目确定所述应用调用请求所对应的目标应用的版本。其中,所述项目标识信息包括但不限于以下一种或多种的组合:应用项目所在设备的IP、应用项目的名称、或其他可用于标识该应用项目的信息等。
具体地,所述远程调用设备中可预设了各应用项目的项目标识信息与各自所对应调用的目标应用的版本的映射关系,或者可通过网络访问获取各应用项目的项目标识信息与各自所对应调用的目标应用的版本的映射关系,当所述远程调用设备接收到来自网络的应用调用请求中包含项目标识信息和所要调用的目标应用名称,则通过查找预设的映射关系,所述远程调用设备确定所述应用调用请求中的项目标识信息所对应的目标应用的版本。
例如,某网络服务器中包含应用项目A2和A3,为了能够准确分辨,在所述远程调用设备中预设应用项目A2的名称和其所能调用的目标应用B1和B2的版本的映射关系,以及应用项目A3的名称与其所能调用的各目标应用B2和B3的版本的映射关系,则所述远程调用设备通过解析应用调用请求中的应用项目的名称和目标应用的名称来确定应用项目所对应的目标应用的版本。
进一步地,所述远程调用设备可以仅预设各应用项目与目标应用的私有版本的映射关系,当所述远程调用设备查找到所述目标应用对应于所述应用项目的私有版本时,确定该私有版本为所述应用调用请求所对应的目标应用的版本;反之,则确定所述目标应用的公共版本为所述应用调用请求所对应的目标应用的版本。
例如,所述远程调用设备预设的映射关系包括:应用项目A4的名称和其所能调用的目标应用B1的私有版本的映射关系,以及应用项目A5的名称与其所能调用的各目标应用B2的私有版本和B3的私有版本的映射关系,所述远程调用设备还预设有目标应用B1、B2和B3的公共版本。当所述远程调用设备接收到的应用调用请求为:应用项目A4调用目标应用B2,则所述远程调用设备在所预设的映射关系中未能查找到应用项目A4与目标应用B2的私有版本之间的映射关系,则所述远程调用设备确定所述应用项目A4所要调用的目标应用B2的版本为公共版本。
当根据所述应用项目得到多个所对应的目标应用的版本时,所述远程调用设备可随机的或根据各目标应用所在设备的实际负载情况来确定一个目标应用的版本。
例如,当所述远程调用设备所找到的目标应用的版本运行在多个网络服务器或终端中,则所述远程调用设备还通过与监控各网络服务器或终端中各应用运行情况的列表做交集的方式,来确认所找到的每个目标应用的版本是否正在运行在各自的网络服务器中,并随机的从正在运行的各目标应用的版本中确定一个目标应用的版本。
在此,所述目标应用的公共版本可被设置在设置在开放的网络环境中、并能够被多个应用项目调用,或者可默认的被应用项目调用。其中,所述目标应用的公共版本优选地存储于由基于远程调用的多个应用项目共享的公共环境。例如,在应用项目A5、A6正常运行期间,应用项目A5、A6都能够调用到应用B3的V1.0版本,则当前应用B3的版本为公共版本。
所述目标应用的私有版本包括:仅为某一个或多个指定的应用项目服务的目标应用的版本;或者在应用项目及目标应用调试阶段,为调试中的应用项目服务的目标应用的版本。其中,所述目标应用的私有版本既可以存储在应用项目的私有环境中,也可以存储在基于远程调用的公共环境中,或其他可供访问的任意第三方存储空间。优选地,所述目标应用的私有版本位于所述应用项目的私有环境中,其中,所述应用项目的私有环境包括至少一个应用对应于该应用项目的私有版本。其中,所述应用项目涉及对所述至少一个应用的修改。例如,某个应用项目A7和所要调用的应用B1正在被研发人员进行研发或升级调试,该应用项目A7的私有环境中包括目标应用B1的一个版本,即应用B1对应于应用项目A7的私有版本;当所述远程调用设备接收到来自所述应用项目A7的应用调用请求时,根据预设的应用项目A7与应用B1的私有版本的映射关系,所述远程调用设备确定了所述应用项目A7的私有环境中应用B1的版本为目标应用的版本。
所述远程调用设备在确定目标应用的版本后,调用所确定的版本的目标应用。
具体地,所述远程调用设备根据所确定的目标应用的版本所对应的应用启动入口,来调用相应版本的目标应用。其中,所确定的版本所对应的目标应用的启动入口既可在所述远程调用设备所在的远程调用设备中,也可以位于任一与所述远程调用设备网络通信连接的网络服务器或终端中。
例如,所述远程调用设备确定了目标应用B1的V1.1版本,该版本中包含了:启动入口位于网络服务器b1上,则所述远程调用设备据此来调用网络服务器b1上的目标应用B1的V1.1版本。
图5示出根据本申请一个优选实施例的一种远程调用方法。所述远程调用方法包括:步骤S21、步骤S22、S23。具体地,在第一应用项目处于升级或研发阶段,通常会对所要调用的第二应用进行适应性的修改,此时需要单独配置第二应用的私有版本。在第一应用项目和第二应用调试期间,包括第二应用的公共版本在内的各应用需要正常运行,因此,在步骤S21中,所述远程调用设备根据应用调用请求所对应的第一应用项目确定该私有版本为所述应用调用请求所对应目标应用的版本。接着,在步骤S22中,所述远程调用设备调用该私有版本。当第一应用项目和第二应用的私有版本调试完成且运行稳定后,所述远程调用设备执行步骤S23,即更新第二应用对应于第一应用项目的私有版本,并根据该私有版本更新所述第二应用的公共版本,使得与其他应用项目也能够使用所述第二应用的更新。
具体地,当技术人员需要修改和调试第一应用项目和所需调用的第二应用时,先为第一应用项目和第二应用配置私有环境,其中,私有环境中的第二应用为所述第二应用的私有版本,当接收第一应用项目所发送的应用调用请求时,通过查询映射关系来确定所述第二应用的私有版本为目标应用的版本,并调用相应的第二应用。在第一应用项目和第二应用调试稳定运行后,所述远程调用设备根据该私有版本更新位于公共环境中的所述第二应用的公共版本,由此使得其他应用项目也能够使用所述第二应用的更新。
图6示出根据本申请又一个优选实施例的一种远程调用方法。所述远程调用方法应用于至少由第一应用项目、第二应用和第三应用来实现一个完整业务的场景下。其中,所述远程调用方法包含步骤S31、S32和S33。在步骤S31中,所述远程调用设备根据应用调用请求所对应的项目标识信息确定所述应用调用请求所对应的应用项目,其中,所述项目标识信息在所述应用调用请求所属的调用链中被传递至下一个应用调用请求。在步骤S32中,所述远程调用设备根据所述应用项目确定所述应用调用请求所对应的目标应用的版本。在步骤S33中,所述远程调用设备调用所述目标应用的版本,其中,所述目标应用的版本包括:所述目标应用的公共版本;或所述目标应用对应于所述应用项目的私有版本。在此,远程调用方法中的步骤S33与图4中远程调用方法中的步骤S12的内容相同或基本相同,为简明起见,故在此不再赘述,并以引用的方式包含于此。
在此,所述调用链包括但不限于:第一应用项目为了完成业务或实现特定功能请求调用第二应用,第二应用为了完成所述业务请求调用第三应用,如此,第一应用、第二应用和第三应用构成了一个调用链。本领域技术人员应能理解上述调用链仅为举例,其他现有的或今后可能出现的调用链如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
例如,所述远程调用设备根据各应用之间的调用链预设了应用项目A8与应用B8的各版本的映射关系、应用项目A8和应用C8的各版本的映射关系。当应用项目A8在运行时需要调用应用项目B8,则向所述远程调用设备发出调用应用项目B8的应用调用请求request1包括:包含应用项目A8所在设备的IP地址和应用项目A8的名称的项目标识信息,和应用项目B8的名称。所述远程调用设备根据所述应用调用请求request1中的项目标识信息和预设的映射关系来找到一个应用项目B8的版本并由所述远程调用设备来调用应用项目B8,以便所述应用项目B8运行,在所述应用项目B8在运行时,需要调用应用项目C8,则所述应用项目B8向所述远程调用设备发出调用应用项目C8的应用调用请求request2,所述应用调用请求request2包括:包含应用项目A8所在设备的IP地址、应用项目A8的名称等的项目标识信息,和应用项目C8的名称。所述远程调用设备根据所述应用调用请求request2中的项目标识信息和映射关系来查找应用项目A8通过应用项目B8所要调用的应用项目C8的版本,并查找到所要调用的应用项目C8的版本同时位于三个网络服务器中,所述远程调用设备随机选择一个网络服务器上的应用项目C8,并由所述远程调用设备来调用所选中的应用项目C8,如此应用项目A8完成了一个业务或实现其功能。
所述远程调用方法中还可以包含步骤S34(未予图示)。在此,所述步骤S34与图5中远程调用方法中的步骤S23的内容相同或基本相同,为简明起见,故在此不再赘述,并以引用的方式包含于此。
综上所述,本申请的一种远程调用方法与设备,当目标应用无需修改时,所述应用项目可以调用目标应用的公共版本,当目标应用与应用项目均需修改时,所述远程调用设备可以根据应用项目所发送的应用调用请求来提供私有版本的目标应用,如此解决了在每个应用被修改及调试时重复配置已有的、需要被所述修改的应用调用的其他应用的问题;另外,当目标应用具有私有版本时,所述远程调用设备还可以只设置某些应用项目与目标调用应用的私有版本之间的映射关系,而对未能从映射关系中找到目标应用的版本时,默认的选择目标应用的公共版本,如此能够提高查询的效率;还有,当三个或以上的应用之间构成调用链时,在调用链上的各应用调用请求中均包含应用项目,能够确保当所调用的目的应用有多个版本时,能够根据应用项目来区分所需版本;此外,当目标应用和应用项目的调试完成时,所述远程调用设备还能及时更新各自的公共版本。所以,本申请有效克服了现有技术中的种种缺点而具高度产业利用价值。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (18)
1.一种远程调用方法,包括:
根据应用调用请求所对应的应用项目确定所述应用调用请求所对应的目标应用的版本;
调用所述目标应用的版本;
其中,所述目标应用的版本包括:
所述目标应用的公共版本;或
所述目标应用对应于所述应用项目的私有版本。
2.根据权利要求1所述的方法,其中,该方法还包括:
更新第二应用对应于第一应用项目的私有版本,并根据该私有版本更新所述第二应用的公共版本。
3.根据权利要求1或2所述的方法,其中,所述根据应用调用请求所对应的应用项目确定所述应用调用请求所对应的目标应用的版本包括:
根据应用调用请求所对应的项目标识信息确定所述应用调用请求所对应的应用项目;
根据所述应用项目确定所述应用调用请求所对应的目标应用的版本。
4.根据权利要求3所述的方法,其中,根据所述应用项目确定所述应用调用请求所对应的目标应用的版本包括:
当所述目标应用对应于所述应用项目的私有版本存在时,确定该私有版本为所述应用调用请求所对应的目标应用的版本。
5.根据权利要求4所述的方法,其中,根据所述应用项目确定所述应用调用请求所对应的目标应用的版本还包括:
当所述目标应用对应于所述应用项目的私有版本不存在时,确定所述目标应用的公共版本为所述应用调用请求所对应的目标应用的版本。
6.根据权利要求4或5所述的方法,其中,所述应用项目的私有环境包括至少一个应用对应于该应用项目的私有版本;
所述当所述目标应用对应于所述应用项目的私有版本存在时包括:
当所述目标应用对应于所述应用项目的私有版本存在于所述私有环境时。
7.根据权利要求6所述的方法,其中,所述应用项目涉及对所述至少一个应用的修改。
8.根据权利要求3至7中任一项所述的方法,其中,所述项目标识信息在所述应用调用请求所属的调用链中被传递至下一个应用调用请求。
9.根据权利要求1至8中任一项所述的方法,其中,所述目标应用的公共版本存储于由基于远程调用的多个应用共享的公共环境。
10.一种远程调用设备,包括:
第一装置,用于根据应用调用请求所对应的应用项目确定所述应用调用请求所对应的目标应用的版本;
第二装置,用于调用所述目标应用的版本;
其中,所述目标应用的版本包括:
所述目标应用的公共版本;或
所述目标应用对应于所述应用项目的私有版本。
11.根据权利要求10所述的设备,其中,该设备还包括:
第三装置,用于更新第二应用对应于第一应用项目的私有版本,并根据该私有版本更新所述第二应用的公共版本。
12.根据权利要求10或11所述的设备,其中,所述第一装置用于:
根据应用调用请求所对应的项目标识信息确定所述应用调用请求所对应的应用项目;
根据所述应用项目确定所述应用调用请求所对应的目标应用的版本。
13.根据权利要求12所述的设备,其中,根据所述应用项目确定所述应用调用请求所对应的目标应用的版本包括:
当所述目标应用对应于所述应用项目的私有版本存在时,确定该私有版本为所述应用调用请求所对应的目标应用的版本。
14.根据权利要求13所述的设备,其中,根据所述应用项目确定所述应用调用请求所对应的目标应用的版本还包括:
当所述目标应用对应于所述应用项目的私有版本不存在时,确定所述目标应用的公共版本为所述应用调用请求所对应的目标应用的版本。
15.根据权利要求13或145所述的设备,其中,所述应用项目的私有环境包括至少一个应用对应于该应用项目的私有版本;
所述当所述目标应用对应于所述应用项目的私有版本存在时包括:
当所述目标应用对应于所述应用项目的私有版本存在于所述私有环境时。
16.根据权利要求15所述的设备,其中,所述应用项目涉及对所述至少一个应用的修改。
17.根据权利要求12至16中任一项所述的设备,其中,所述项目标识信息在所述应用调用请求所属的调用链中被传递至下一个应用调用请求。
18.根据权利要求10至17中任一项所述的设备,其中,所述目标应用的公共版本存储于由基于远程调用的多个应用共享的公共环境。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410524408.9A CN105577707B (zh) | 2014-10-08 | 2014-10-08 | 一种远程调用方法与设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410524408.9A CN105577707B (zh) | 2014-10-08 | 2014-10-08 | 一种远程调用方法与设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105577707A true CN105577707A (zh) | 2016-05-11 |
CN105577707B CN105577707B (zh) | 2019-01-11 |
Family
ID=55887362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410524408.9A Active CN105577707B (zh) | 2014-10-08 | 2014-10-08 | 一种远程调用方法与设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105577707B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484482A (zh) * | 2016-10-10 | 2017-03-08 | 广东欧珀移动通信有限公司 | 一种多开应用中的分身应用管理方法、装置及智能终端 |
CN110162389A (zh) * | 2019-05-15 | 2019-08-23 | 广州视源电子科技股份有限公司 | 应用程序的启动方法、装置和智能交互设备 |
CN113259433A (zh) * | 2016-12-28 | 2021-08-13 | 谷歌有限责任公司 | 为未来动作优化用户界面数据缓存的方法、设备和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631033A (zh) * | 2008-07-14 | 2010-01-20 | 中兴通讯股份有限公司 | 远程组件的调用方法和系统、以及服务器、客户端 |
CN103309985A (zh) * | 2013-06-17 | 2013-09-18 | 广东电网公司电力科学研究院 | 针对服务注册中心的业务服务注册与发布方法及其系统 |
CN103500102A (zh) * | 2013-10-16 | 2014-01-08 | 迈普通信技术股份有限公司 | 一种服务调用方法和提供服务调用的装置 |
US20140207851A1 (en) * | 2013-01-23 | 2014-07-24 | Alibaba Group Holding Limited | Resource calling for hybrid applications |
-
2014
- 2014-10-08 CN CN201410524408.9A patent/CN105577707B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631033A (zh) * | 2008-07-14 | 2010-01-20 | 中兴通讯股份有限公司 | 远程组件的调用方法和系统、以及服务器、客户端 |
US20140207851A1 (en) * | 2013-01-23 | 2014-07-24 | Alibaba Group Holding Limited | Resource calling for hybrid applications |
CN103309985A (zh) * | 2013-06-17 | 2013-09-18 | 广东电网公司电力科学研究院 | 针对服务注册中心的业务服务注册与发布方法及其系统 |
CN103500102A (zh) * | 2013-10-16 | 2014-01-08 | 迈普通信技术股份有限公司 | 一种服务调用方法和提供服务调用的装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484482A (zh) * | 2016-10-10 | 2017-03-08 | 广东欧珀移动通信有限公司 | 一种多开应用中的分身应用管理方法、装置及智能终端 |
CN106484482B (zh) * | 2016-10-10 | 2019-12-10 | Oppo广东移动通信有限公司 | 一种多开应用中的分身应用管理方法、装置及智能终端 |
CN113259433A (zh) * | 2016-12-28 | 2021-08-13 | 谷歌有限责任公司 | 为未来动作优化用户界面数据缓存的方法、设备和系统 |
CN113259433B (zh) * | 2016-12-28 | 2024-01-09 | 谷歌有限责任公司 | 为未来动作优化用户界面数据缓存的方法、设备和系统 |
CN110162389A (zh) * | 2019-05-15 | 2019-08-23 | 广州视源电子科技股份有限公司 | 应用程序的启动方法、装置和智能交互设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105577707B (zh) | 2019-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11048620B2 (en) | Distributed system test device | |
US10735345B2 (en) | Orchestrating computing resources between different computing environments | |
CN108829588B (zh) | 一种测试应用程序的处理方法、部署系统及装置 | |
CN107239279B (zh) | 基于电商类PaaS平台系统的订单数据获取和推送方法 | |
US10430172B2 (en) | Re-configuration in cloud computing environments | |
EP3043258A1 (en) | iOS APPLICATION AUTOMATIC COMPILATION METHOD AND SYSTEM | |
US20170024396A1 (en) | Determining application deployment recommendations | |
KR102100323B1 (ko) | 머신러닝 플랫폼 서비스 방법 및 서버 | |
CN111913738A (zh) | 访问请求的处理方法、装置、计算设备和介质 | |
CN103152391B (zh) | 一种日志输出方法和装置 | |
CN104423961A (zh) | 一种生成测试脚本的方法及系统 | |
US11716354B2 (en) | Determination of compliance with security technical implementation guide standards | |
CN116303309A (zh) | 文件挂载方法、装置和电子设备 | |
CN105577707A (zh) | 一种远程调用方法与设备 | |
CN113641503B (zh) | 多云多集群的Kubernetes管理系统及方法与设备 | |
US20230008839A1 (en) | Smart environment assessment of prerequisites to private cloud provisioning | |
US11071151B2 (en) | Methods and apparatuses for connecting a wireless access point through an application in a user equipment | |
US20180198707A1 (en) | Partial switching of network traffic | |
US11652849B2 (en) | Identifying recommended feature sets based on application feature popularity | |
CN114116030A (zh) | 操作系统的运行方法、装置、电子设备、存储介质 | |
CN109462868B (zh) | 无线接入点查询目标信息的方法与设备 | |
CN111694611B (zh) | 一种数据处理方法、装置、电子设备 | |
CN112559001A (zh) | 更新应用的方法和装置 | |
US11520685B2 (en) | Systems and methods for an end-to-end automation framework | |
CN111737149B (zh) | 一种真机平台、测试方法、以及测试脚本处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211104 Address after: Room 554, floor 5, building 3, No. 969, Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province Patentee after: TAOBAO (CHINA) SOFTWARE CO.,LTD. Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands Patentee before: ALIBABA GROUP HOLDING Ltd. |