CN107733922B - 用于调用服务的方法和装置 - Google Patents
用于调用服务的方法和装置 Download PDFInfo
- Publication number
- CN107733922B CN107733922B CN201711157944.XA CN201711157944A CN107733922B CN 107733922 B CN107733922 B CN 107733922B CN 201711157944 A CN201711157944 A CN 201711157944A CN 107733922 B CN107733922 B CN 107733922B
- Authority
- CN
- China
- Prior art keywords
- service
- service interface
- predetermined
- database
- object instance
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000004044 response Effects 0.000 claims abstract description 15
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 abstract description 8
- 230000008569 process Effects 0.000 abstract description 8
- 238000011161 development Methods 0.000 abstract description 6
- 238000012360 testing method Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 8
- 230000006978 adaptation Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了用于调用服务的方法和装置。该方法的一具体实施方式包括:响应于接收到客户端对预定服务的调用请求信息,获取保存在预设数据库中的与服务对应的服务接口的完全限定名;基于服务接口的完全限定名确定与服务接口对应的通用服务接口对象实例;获取与预定服务对应的参数类型;基于通用服务接口对象实例以及参数类型调用设置在远程服务器上的预定服务。省却了在原有的调用远程服务时向Web工程发送请求,通过项目对象模型依赖分布式服务框架项目来调用远程服务的过程,同时节省了因远程服务的变化导致的调用端进行开发、测试、上线所产生的成本。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及用于调用服务的方法和装置。
背景技术
随着互联网的发展,多个应用系统之间可以相互提供远程过程调用(RemoteProcedure Call Protocol,RPC)服务。相应地,支持远程过程调用的分布式服务框架(例如Dubbo框架)也得到了越来越多的应用。若从安装在移动终端上的应用或者从Web页面访问运行于远程服务器或者远程设备上的服务时,需要经过支持上述应用或者Web页面的网络工程(Web工程)接收请求,然后通过网络工程中建立的项目对象模型(Project ObjectModel,POM)依赖分布式服务框架项目(Dubbo项目)实现远程服务的调用。
此外,当运行于远程服务器上的服务有新增、修改、删除等变化时,需要同时修改Web工程以及项目对象模型。
发明内容
本申请实施例提出了一种用于调用服务的方法和装置。
第一方面,本申请实施例提供了一种用于调用服务的方法,该方法包括:响应于接收到客户端对预定服务的调用请求信息,获取保存在预设数据库中的与预定服务对应的服务接口的完全限定名;其中,调用请求信息包括用户信息、预定服务对应的服务接口的标识信息以及预定服务的标识信息;基于服务接口的完全限定名确定与服务接口对应的通用服务接口对象实例;获取与预定服务对应的参数类型;基于通用服务接口对象实例以及参数类型调用设置在远程服务器上的预定服务。
第二方面,本申请实施例提供了一种的装置,该装置包括:第一获取单元,配置用于响应于接收到客户端对预定服务的调用请求信息,获取保存在预设数据库中的与预定服务对应的服务接口的完全限定名;其中,调用请求信息包括用户信息、预定服务对应的服务接口的标识信息以及预定服务的标识信息;确定单元,配置用于基于服务接口的完全限定名确定与服务接口对应的通用服务接口对象实例;第二获取单元,配置用于获取与预定服务对应的参数类型;调用单元,配置用于基于通用服务接口对象实例以及参数类型调用设置在远程服务器上的预定服务。
第三方面,本申请实施例提供了一种电子设备,上述电子设备包括一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现第一方面的用于调用服务的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面的用于调用服务的方法。
本申请实施例提供的用于调用服务的方法和装置,通过在接收到客户端对预定服务的调用请求信息之后,获取保存在预设数据库中的服务接口的完全限定名,然后确定与上述服务接口的对应的通用服务接口对象实例,接着获取预定服务对应的参数类型,最后基于上述通用服务接口对象实例以及参数类型调用设置在远程服务器上的预定服务,使得客户端可以不再通过Web工程的项目对象模型对远程服务进行调用,而是向上述电子设备发出调用请求,由上述电子设备建立用于调用上述服务的通用服务接口对象实例并获取调用上述服务所需的参数类型来完成远程服务调用,相对在原有的调用远程服务时向Web工程发送请求,然后通过项目对象模型依赖分布式服务框架项目来调用远程服务的过程简化了服务调用过程。另外,对于客户端而言,对远程服务可以类似透明化的调用,上述电子设备在一定程度上可以作为网关使用。此外,当设置在远程服务器上的服务发生新增、修改、删除等修改时,只需要在上述数据库中做相应配置,可以节省因远程服务的变化导致的对调用端进行开发、测试、上线所产生的成本。
在一些实施例中,上述预定服务可以包括不同的版本,上述数据库中可以预先设置配置表,在上述配置表中设置有不同版本的上述预定服务以及不同版本的上述预定服务分别对应的客户端的类型和版本。上述电子设备基于预先设置的配置表确定与客户端对应的上述预定服务的版本。这样一来,上述电子设备可以根据客户端的类型和版本来确定与客户端匹配的一定版本的上述预定服务,从而实现对于相同的服务请求调用不同版本的服务的目的,可以满足线上多版本服务对比、多版本客户端兼容等需求。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的用于调用服务的方法的一个实施例的流程图;
图3是图2所示响应于接收到客户端对预定服务的调用请求信息,获取保存在预设数据库中的与服务对应的服务接口的完全限定名的一个分解流程示意图;
图4是图2所示基于服务接口的完全限定名确定与服务接口对应的通用服务接口对象实例的一个分解流程示意图;
图5是适用于本申请实施例的原理性架构示意图;
图6是适用于本申请实施例的原理性流程示意图;
图7是根据本申请的用于调用服务的装置的一个实施例的结构示意图;
图8是适于用来实现本申请实施例的设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于调用服务的方法或用于调用服务的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、第一服务器102、第二服务器103、数据库104、第三服务器105。终端设备101和第一服务器102之间、第一服务器102和第二服务器103之间以及第一服务器102和数据库104之间、第一服务器102和第三服务器105之间、第二服务器103和第三服务器105之间分别可以通过网络实现通信连接,网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备101可以通过网络向第一服务器102发送预定服务的调用请求。终端设备101上可以安装有各种通讯终端设备应用,例如网页浏览器应用、购物类应用、搜索类应用等。
终端设备101可以是具有显示屏并且支持无线通信的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机等等。
第一服务器102可以是提供各种服务的服务器,例如根据用户对预定服务的调用请求,确定与预定服务对应的通用服务接口对象实例以及调用预定服务的所需的参数,并通过网络调用设置在第二服务器103上的预定服务的后台服务器。此外,第一服务器102还可以对第二服务器103通过网络返回的结果数据进行预处理,将符合用户需要的结果数据通过网络发送到终端设备101。
第二服务器103可以是提供各种服务的服务器。例如提供上述预定服务的服务器。
数据库104可以是用于存储各种数据的数据库。例如用于存储多个服务接口数据的数据库。其中,每一个服务接口数据可以包括与该服务接口数据对应的服务接口的标识、完全限定名及服务接口数据在数据库中的主关键字。此外,数据库104中还可以存储多个服务数据。每一个服务数据可以包括与该服务数据对应的服务的标识,名称及该服务数据在数据库中的主关键字。用户可利用后台数据库进行服务接口数据或服务数据的新增、更新和删除等操作。
需要说明的是,数据库104可以是安装在第一服务器102中的本地数据库。数据库104还可以安装在与第一服务器102连接的各种类型的服务器上,例如后台服务器。
第三服务器105可以是提供各种服务的服务器,例如可以是保存第二服务器103上的预定服务的注册信息的服务器,上述注册信息可以包括第二服务器103的互联网协议(Internet Protocol,IP)信息以及上述预定服务的标识信息。
第一服务器102可以通过网络与第三服务器105交互以从第三服务器105获取提供上述预定服务的第二服务器103的互联网协议IP地址信息。需要说明的是,本申请实施例所提供的用于调用服务的方法可以由第一服务器102执行,相应地,用于调用服务的装置一般设置于第一服务器102中。
应该理解,图1中的终端设备、第一服务器、第二服务器和第三服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、第一服务器、第二服务器和第三服务器。
继续参考图2,其示出了根据本申请的用于调用服务的方法一个实施例的流程200。该用于调用服务的方法,包括以下步骤:
步骤201,响应于接收到客户端对预定服务的调用请求信息,获取保存在预设数据库中的与预定服务对应的服务接口的完全限定名。
在本实施例中,用户可以通过终端设备(例如图1所示的终端设备101)上安装的客户端向用于调用服务的方法运行于其上的电子设备(例如图1所示的第一服务器102)发送对预定服务的调用请求信息。上述调用请求信息可以包括用户信息、上述预定服务对应的服务接口的标识信息以及上述预定服务的标识信息。上述用户信息可以包括用户标识的信息等。
用于调用服务的方法运行于其上的上述电子设备可以通过网络接收安装在终端设备上的客户端发送的上述预定服务的调用请求信息。
在本实施例中,上述客户端可以为运行在终端设备(例如图1所示的终端设备101)上的购物类应用的客户端、搜索类应用的客户端等。上述客户端还可以为运行在终端设备上的用于调用上述预定服务的Web网页。
在接收到上述预定服务的调用请求信息之后,上述电子设备可以根据服务接口的标识在数据库(例如图1所示的数据库104)中获取保存在其中的与上述服务接口的标识对应的服务接口的完全限定名。上述服务接口的完全限定名用于在网络中唯一标识该服务接口。
在本实施例中,上述数据库中可以保存多个服务接口数据。每一个服务接口数据与一个服务接口一一对应。其中,每一个服务接口数据可以包括与其对应的服务接口的标识、完全限定名以及该服务接口数据在数据库中的主关键字。此外,数据库中还可以存储多个服务数据,每一个服务数据与一个服务一一对应。对于每一个服务数据,该服务数据可以包括与其对应的服务的标识、名称以及该服务数据在数据库中的主关键字。在本实施例中,任意一个服务接口可以对应至少一个服务。任意一个服务可以对应至少一个服务接口。任意一个服务,其主关键字可以与该服务对应的服务接口的主关键字关联存储。这样一来,当用户的调用请求信息中包括服务接口的标识信息和预定服务的标识信息时,可首先根据服务接口的标识信息在数据库中查找与服务接口的标识对应的服务接口的完全限定名以及该服务接口对应的服务接口数据的主关键字。然后根据服务接口数据的主关键字查找与服务接口数据的主关键字关联的各服务数据的主关键字。在上述各服务数据的主关键字中查找与预定服务的标识对应的主关键字,进而确定预定服务的名称。
此外,用户可以对上述数据库中的服务接口数据或服务数据进行新增、更新和删除等操作。
在本实施例的一些可选实现方式中,在上述数据库中还可以标注各服务对应的服务接口的状态信息,上述状态信息例如可以包括具体的数字或者字母。上述具体的数字例如可以为“0”或“1”。上述状态信息用来标识服务接口是否可用。例如“0”可以表示服务接口不可用,“1”可以表示服务接口可用等。当数据库中的上述服务接口的状态信息标识为可用时,可以继续如下操作。
步骤202,基于服务接口的完全限定名确定与服务接口对应的通用服务接口对象实例。
在本实施例中,上述电子设备在步骤201中确定了与上述预定服务对应的服务接口的完全限定名之后,可以创建与上述服务接口的完全限定名对应的通用服务接口对象实例。具体地,可以使用常规的创建通用服务接口实例的方法创建与上述服务接口的完全限定名对应的通用服务接口对象实例,此处不赘述。
步骤203,获取与预定服务对应的参数类型。
在本实施例中,用于提供服务注册信息的注册中心(例如图1所示的第三服务器105)中可以存储多个服务的注册信息。其中每一个服务的注册信息可以包括服务的标识信息以及提供该服务的服务器的互联网协议IP地址信息。在一些应用场景中,对于每一个服务的注册信息,上述注册信息中还可以包括提供该服务的服务器的端口信息。
在本实施例中,在步骤202中确定了上述预定服务对应的通用服务接口对象实例之后,上述电子设备可以从注册中心获取提供上述预定服务的服务器的IP地址。在一些应用场景中,提供上述预定服务服务器可以多于一个。这样,上述电子设备可以从注册中心获取提供上述预定服务的多个服务器的IP地址。上述电子设备可以从上述多个服务器中根据预设规则选取一个服务器来进行访问,例如可以根据多个服务器在注册中心的排序来选择提供该预定服务的服务器;又例如可以根据各个服务器的负载状态来选择提供该预定服务的服务器。然后可以根据选择的服务器的IP地址远程登录被选择的服务器,从该服务器中查询调用上述预定服务所需的多个参数对应的参数类型。
步骤204,基于通用服务接口对象实例以及参数类型调用设置在远程服务器上的预定服务。
在本实施例中,由于在步骤202中确定了与上述服务的接口对应的通用服务接口对象实例以及在步骤203中获取到了上述服务对应的参数类型,上述电子设备可以根据上述通用服务接口对象实例以及调用上述预定服务所需的多个参数的参数类型调用设置在远程服务器(例如图1所示的第二服务器103)上的上述预定服务。
具体地,可以在上述通用服务接口对像实例中定义多个参数,各个参数对应的类型与设置在远程服务器上的调用该预定服务所需的参数的类型一致。使用设置了多个参数的通用服务接口对象实例通过网络调用设置在远程服务器上的预定服务。上述远程服务器可以是由步骤202中根据预设规则选择的服务器。
本申请上述实施例提供的用于调用服务的方法,在接收到客户端对预定服务的调用请求信息之后,确定与上述预定服务对应的服务接口的完全限定名,然后确定与上述服务接口对应的通用服务接口对象实例,接着获取预定服务对应的参数类型,最后基于上述通用服务接口对象实例以及参数类型调用设置在远程服务器上的预定服务,使得客户端可以不再通过Web工程的项目对象模型对远程服务进行调用,而是直接向上述电子设备发出调用请求,由上述电子设备建立用于调用上述服务的通用服务接口对象实例并获取调用上述服务对应的参数类型来完成远程服务调用,从而实现了远程服务业务的透明化。上述电子设备在一定程度上可以作为网关使用。此外,当设置在远程服务器上的服务发生新增、修改、删除等修改时,只需要在上述数据库中做相应配置,可以节省因远程服务的变化导致的调用端进行开发、测试、上线所产生的成本。
在本实施例的一些可选实现方式中,请参考图3,其示出了图2所示的响应于接收到客户端对预定服务的调用请求信息,获取保存在预设数据库中的与预定服务对应的服务接口的完全限定名的一个分解流程示意图300。如图3所示,上述响应于接收到客户端对预定服务的调用请求信息,获取保存在预设数据库中的与预定服务对应的服务接口的完全限定名可以包括如下子步骤2011和子步骤2012:
子步骤2011,响应于接收到客户端对预定服务的调用请求信息,对发送调用请求信息的用户进行鉴权。
上述数据库中可以预先设置用户服务对照表。在上述用户服务对照表中可以设置多个用户的用户标识以及与各个用户标识对应的服务。在上述电子设备接收到一个客户端的调用请求信息之后,由于调用请求信息中可以包括用户信息(例如用户标识的信息),上述电子设备可以通过网络访问上述数据库。并根据上述用户标识首先在上述数据库中的用户服务对照表中查找与该用户标识对应的服务的标识。然后确定上述用户服务对照表中与该用户标识对应的服务中是否包含上述调用请求中所调用的预定服务的标识。如果包含上述预定服务的标识,则鉴权通过;否则,鉴权不通过。当鉴权不通过时,可以向客户端返回禁止调用的提示信息。
子步骤2012,在鉴权通过之后,获取保存在数据库中的与预定服务对应的服务接口的完全限定名。
在本实施例中,上电子设备可以在预先存储有多个服务接口数据的数据库中查找与上述调用请求信息中的服务接口的标识对应的服务接口的完全限定名。
这样一来,在接收到客户端的对预定服务的调用请求信息之后,首先对用户的身份进行鉴权,之后,再获取与上述预定服务对应的服务接口的完全限定名,可以增加服务调用的安全性。
在本实施例的一些可选实现方式中,上述预定服务可以包括不同版本。不同版本的上述预定服务对应的标识可以各不相同。相应地,在上述数据库中对于不同版本的上述预定服务可以对应不同的服务数据。这样一来,在上述数据库中不同版本的上述预定服务可以对应不同的主关键字。也就是在上述数据库中存储有不同版本的上述预定服务以及不同版本的预定服务各自在数据库中的主关键字。不同版本的上述预定服务所分别对应的服务接口的完全限定名可以各不相同。任一版本的预定服务在上述数据库中的主关键字与该版本的预定服务对应的服务接口在上述数据库中的主关键字关联存储。在这些可选的实现方式中,上述预定服务的不同版本可以是预定服务的不同实现方法。这里的实现方法例如可以为实现上述预定服务的一段程序代码。
在上述数据库中,可以预先设置配置表。上述配置表中设置不同版本的上述预定服务各自对应的主关键字以及各版本的预定服务分别对应的客户端。在数据库中可以维护不同版本的预定服务的主关键字与不同版本的服务分别对应的客户端的类型以及客户端的版本。当远程服务器上建立预定服务的新版本时,可以在数据库中增加该新版本的预定服务的服务数据,以及与该新版本预定服务对应的服务接口的服务接口数据。可以在上述数据库中的配置表中增加该新版本的预定服务的主关键字以及该新版本预定服务对应的客户端的类型和客户端的版本。
上述步骤201获取保存在预设数据库中的与预定服务对应的服务接口的完全限定名,包括:根据服务接口的标识确定与预定服务对应的服务接口的完全限定名,以及基于预先设置的配置表确定与上述客户端对应的服务接口的完全限定名以及预定服务的版本。这样一来上述电子设备可以根据客户端的版本来配置并调用与该客户端匹配的服务的版本。可以省却由于远程服务器上对服务进行版本变更而引起的开发、测试、上线的成本。可以用于不同版本服务实验对比,多版本客户端兼容等需求。
在本实施例的一些可选实现方式中,在上述电子设备接收预定服务的调用请求信息之前,上述电子设备中可以预先从上述数据库获取多个服务接口的完全限定名,然后对每一个服务接口创建与该服务接口对应的通用服务接口对象实例并保存在上述电子设备中。在一些应用场景中,上述电子设备可以在支持上述用于调用服务的方法程序启动时,从上述数据库中获取多个服务接口的完全限定名,接着分别创建与各个服务接口对应的通用服务接口对象实例,并将多个通用服务接口对象实例保存在内存中。
请参考图4,其示出了图2所示的基于服务接口的完全限定名确定与服务接口对应的通用服务接口对象实例的一个分解流程示意图400。如图4所示,上述基于服务接口的完全限定名确定与服务接口对应的通用服务接口对象实例可以包括如下子步骤2021、子步骤2022和子步骤2023:
子步骤2021,在内存中预先存储的多个通用服务接口对象实例中确定是否存在与服务接口的完全限定名匹配的通用服务接口对象实例。
子步骤2022,若存在与服务接口的完全限定名匹配的通用服务接口对象实例,则将该通用服务接口对象实例确定为与服务接口对应的通用服务接口对象实例。
子步骤2023,若不存在与服务接口的完全限定名匹配的通用服务接口对象实例,则根据预设规则创建与服务接口的完全限定名对应的通用服务接口对象实例。
在具体应用时,上述电子设备可以根据预设规则创建预定次数的与上述服务接口的完全限定名对应的通用服务接口对象实例,超过预定次数,仍然创建不成功上述通用服务接口对象实例,则提示通用服务接口对象实例创建异常。
上述预设规则可以为通用的创建接口对象实例的规则,也可以为上述电子设备与远程服务器约定的创建通用服务接口对象实例的规则。上述预定次数可以为任意整数,例如3次等,此处不做限定。
这样一来,上述电子设备可以根据上述服务接口的完全限定名在存储在其内存中的多个通用服务接口对象实例中查找与上述服务接口的完全限定名匹配的通用服务接口对象实例。当查找成功时,将与上述服务接口的完全限定名匹配的通用服务接口对象实例作为上述服务接口对应的通用服务接口对象实例。
由于预先创建了与各服务接口的完全限定名匹配的服务接口对象实例,并将多个服务接口对象实例保存在内存中,当客户端调用任一服务时,可以快速的从内存中查找与该服务对应的通用服务接口对象实例来远程调用该服务,提高了对客户端服务调用的响应速度。
在本实施例的一些可选实现方式中,在上述电子设备接收预定服务的调用请求信息之前,上述电子设备中可以预先从上述数据库获取多个服务接口各自对应的完全限定名,然后确定各服务接口的完全限定名分别对应的服务标识,并根据服务标识访问注册中心。对于任意一个服务标识,可以在上述注册中心中查找提供与该服务标识对应服务的多个服务器各自的IP地址。对于任意一个服务器,上述电子设备根据该服务器的IP地址,远程登录该服务器获取该服务器提供的与上述服务标识对应的服务的参数类型。并将获取到的上述服务的参数类型保存在内存中。在上述内存中的保存格式例如可以包括存储标识和存储数据。任意一个服务对应的参数在内存的存储标识例如可以为“服务对应的服务接口的完全限定名-服务名”,存储数据例如可以为封装有服务对应的服务接口的完全限定名、服务名、服务对应的参数类型的集合数据。在一些应用场景中,一个服务对应多个版本,任意版本的上述服务在内存中的存储标识例如可以为“该版本上述服务对应的服务接口的完全限定名-该版本服务名”。
进一步地,上述电子设备可以每隔预定时间段按照上述方法在各个服务器中获取多个服务分别对应的参数类型。这样一来,上述电子设备可以自动获取到服务的参数的变化,无需由于服务的参数的变化来修改Web项目,从而进一步节省服务变化带来的工作量。
上述服务对应的参数类型是在该服务器上定义的用于调用服务的各个参数的类型。上述参数类型可以是例如正整数型、字符串型等等。
也就是说在上述电子设备的内存中可以预先存储多个服务对应的各个参数的参数类型。上述预先存储的对个服务的参数类型是按照如下步骤获得的:在上述数据库中获取多个服务的服务接口的完全限定名。对于每一个服务、确定提供该服务的服务器的地址信息,例如服务器的IP地址,根据上述服务器的IP地址信息,通过远程登录的方法获取该服务的参数类型。并将获取的参数类型保存在上述电子设备的内存中。
这样一来,当上述电子接收到客户端对预定服务的调用请求信息之后,上述电子设备可以直接在存储在其内存中的查找调用预定服务所需的多个参数分别对应的参数类型,可以更加节省远程调用所消耗的时间。
在本实施例的一些可选实现方式中,对于每一个服务,可以包括多个版本。对应地,在上述电子设备的内存中预先存储的多个服务的参数类型可以包括各个版本的同一服务各自对应的参数类型。这里,任一服务的每一个版本对应的参数类型可以包括多个参数的类型,例如正整数型、字符串型等等。
在一些应用场景中,在内存中预先存储的多个服务的参数类型可以包括多个版本同一服务以及各个版本的同一服务各自对应的参数类型;上述步骤203中获取与服务对应的参数类型,可以进一步包括:在内存中获取与客户端匹配的一定版本的上述预定服务对应的参数类型。
在本实施例的一些可选实现方式中,上述用于服务调用的方法在基于述通用服务接口对象实例以及上述参数类型调用设置在远程服务器上的上述服务之后,还可以包括接收远程服务器对预设服务的调用的返回结果,并对返回结果进行预处理。当上述返回结果与上述电子设备和客户端预先设定的返回结果的数据格式不相同,或者返回结果包含冗余数据时,可以对上述返回结果进行预处理。例如将返回的数据格式处理成上述电子设备与客户端预先设定的数据格式、去除冗余数据等等。
进一步地,上述电子设备在接收上述调用的返回结果并对返回结果进行预处理之后,将经过预处理的返回结果发送的客户端。
请参考图5,其示出了图5是适用于本申请实施例的原理性流程示意图。
如图5所示,用于服务调用的原理性流程示意图500包括接收客户端对预定服务的服务调用请求50,首先访问数据库(Database,DB),查找存储在数据库中的用户服务对照表,根据用户服务对照表对用户进行鉴权511。在对用户进行鉴权511通过之后,继续在上述数据库中查找与上述服务调用请求包括的服务接口标识匹配的上述预定服务对应的服务接口的完全限定名;同时在上述数据库中查询与上述发出服务调用请求的客户端匹配的上述预定服务的版本512。接着查询与上述预定服务对应的服务接口的完全限定名匹配的通用服务接口对象实例52。判断是否查询到与上述预定服务服务接口的完全限定名匹配上述通用服务接口对象实例521。当判断查询到与上述预定服务服务接口的完全限定名匹配的通用服务接口对象实例时,查询调用服务所需的服务参数类型数据53。当判断查询不到与上述预定服务服务接口的完全限定名匹配的通用服务接口对象实例时,创建与上述预定服务的服务接口的完全限定名的匹配的通用服务接口对象实例522。判断创建与上述预定服务的服务接口的完全限定名的匹配的通用服务接口对象实例是否成功523。若创建成功,则将上述通用服务接口对象实例存入内存524。然后查询调用上述预定服务所需的各参数的类型数据53。若创建不成功,则提示创建通用服务接口对象实例异常525。当查询到调用上述预定服务所需的各参数的参数类型数据之后,将参数类型、参数内容拼装成参数模型54。然后根据上述通用服务接口对象实例及上述参数模型调用远程服务55。在获取到调用返回结果56之后,对返回结果进行预处理57。最后将经过预处理的返回结果返回到客户端58。
在查询与预定服务对应的通用服务接口对象实例52时,可以向电子设备的内存中查询接口对象实例5200。具体地,上述电子设备内存中可以设置实例管控区520,在实例管控区520中存储有多个预先创建的通用服务接口对象实例。在实例管控区520中存储的多个通用服务接口对象实例可以是通过如下步骤获得的:当在上述电子设备的提供上述用于调用服务的程序启动5201时,上述电子设备可以读取保存在预定数据库中的服务接口的完全限定名列表5202,分别创建与服务接口的完全限定名列表中的各个服务接口的完全限定名匹配的通用服务接口对象实例5203。然后将与各个服务接口的完全限定名匹配的通用服务接口对象实例保存在内存中的上述实例管控区中5204。
在查询服务参数类型数据53时,可以向电子设备的内存中查询服务参数类型5300。具体地,上述电子设备内存中可以设置参数类型管控区530,在该内存区中预先存储有多个从远程服务器中获取的调用每一个服务所需的各个参数的参数类型数据。
在参数类型管控区530中存储的调用每一个服务所需的各个参数类型数据可以是通过如下步骤获得的:当在上述电子设备启动上述用于调用服务的程序531时,或者每隔预定时间间隔532,上述电子设备可以读取保存在预定数据库中服务接口数据以及服务数据,以提取多个服务接口的完全限定名、以及各个服务接口的完全限定名对应的服务533。对于多个服务中的每一个服务而言,上述电子设备可以通过服务注册中心获取提供该服务的多个远程服务器的IP地址信息,并从多个远程服务器中确定一个远程服务器作为提供该服务的远程服务器534。上述电子设备可以远程登录被选中的远程服务器,并从其上获取调用该服务所需的各个参数的参数类型数据535,然后将获取到的调用该服务所需的各个参数的参数类型数据保存到内存中的参数类型管控区中536。
请参考图6,其示出了适用于本申请实施例的原理性架构示意图。
如图6所示,用于服务调用的模块架构600包括适配器62(如图1中的第一服务器102)、数据库64、服务注册中心63以及多个远程服务器651。其中,适配器62包括鉴权&服务选择模块621和服务适配模块622。进一步地,鉴权&服务选择模块621包括用户鉴权子模块6211和服务版本选择子模块6212。服务适配模块622包括实例管控子模块6221、参数类型管控子模块6222、远程服务确定子模块6223和动态调用子模块6224。
当适配器62接收到对预定服务的调用请求61后,适配器62启动鉴权&服务选择模块621。鉴权&服务选择模块621中的用户鉴权子模块6211首先调用数据库64中的用户服务对照表对用户进行鉴权。在用户鉴权通过后将服务调用请求发送到服务版本选择子模块6212。服务版本选择子模块6212调用预先设置在数据库64中的配置表确定与发送调用请求的客户端匹配的上述预定服务的版本号以及提供该版本预定服务的服务接口的完全限定名。在服务版本选择子模块6212选择了与客户端匹配的一定版本的上述预定服务之后,启动服务适配模块622。服务适配模块622的实例管控子模块6221创建与上述服务接口的完全限定名匹配的通用服务接口对象实例。在一些应用场景中,上述实例管控子模块6221可以预先在数据库中获取多个服务接口的完全限定名,创建与各个服务接口的完全限定名对应的通用服务接口对象实例,并保存在适配器62中。服务适配模块622根据调用请求在数据库中查找与服务接口标识对应的服务接口的完全限定名,接着根据服务接口的完全限定名在适配器62中查找与上述预定服务匹配的通用服务接口对象实例。在服务适配模块622确定了与上述预定服务匹配的通用服务接口对象实例之后,远程服务确定模块6223可以访问服务注册中心,获取提供上述预定服务的远程服务器651(远程服务器1、远程服务器2、…、远程服务器n中的一个或多个)的服务注册信息631。上述服务注册信息631可以包括多个远程服务器651的IP地址信息。远程服务确定子模块6223可以从多个远程服务器651中确定一个远程服务器651以进行预定服务调用。远程服务确定模块6223将确定的远程服务器的地址信息传输给参数类型管控模块6222,参数类型管控模块6222可以根据被选择的远程服务器的IP地址,远程登录该远程服务器获取调用上述预定服务所需的各个参数的类型。在一些应用场景中,远程服务确定子模块6223可以通过设置在适配器62中的服务注册中心客户端访问注册中心,获取在上述注册中心注册的多个服务的注册信息631。其中,任意一个服务的注册信息631中可以包括提供该服务的多个远程服务器651的IP地址信息。进一步地,一个服务的注册信息631还可以包括提供该服务的任意一个远程服务器651的端口信息。对于任一服务,上述远程服务确定子模块6223可以确定提供该服务的远程服务器,并将远程服务器信息发送给参数类型管控子模块6222。参数类型管控子模块6222可以根据由远程服务确定子模块6223确定的提供该服务的远程服务器651的IP地址预先获取调用该服务所需的各个参数的类型。并将上述该服务与调用该服务所需的多个参数的参数类型关联存储在适配器62中。当实例管控子模块6221确定了预定服务对应的通用服务接口对象实例后,参数类型管控模块6222可以直接查找存储在适配器62中的调用上述预定服务所需的各个参数的类型。动态调用子模块6223在上述实例管控子模块6221确定了上述预定服务对应的通用服务接口对象实例和参数类型管控子模块6222确定了调用上述预定服务所需的各个参数的类型之后,向确定的远程服务器执行调用服务操作65。
进一步参考图7,作为对上述图2所示方法的实现,本申请提供了一种用于调用服务的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图7所示,本实施例的用于调用服务的装置700包括:第一获取单元701、确定单元702、第二获取单元703以及调用单元704。其中,第一获取单元701,配置用于响应于接收到客户端对预定服务的调用请求信息,获取保存在预设数据库中的与预定服务对应的服务接口的完全限定名;其中,调用请求信息包括用户信息、预定服务对应的服务接口的标识信息以及预定服务的标识信息;确定单元702,配置用于基于服务接口的完全限定名确定与服务接口对应的通用服务接口对象实例;第二获取单元703,配置用于获取与预定服务对应的参数类型;调用单元704,配置用于基于通用服务接口对象实例以及参数类型调用设置在远程服务器上的预定服务。
在本实施例中,用于调用服务的装置700的第一获取单元701、确定单元702、第二获取单元703以及调用单元704的具体处理及其所带来的技术效果可分别参考图2对应实施例中步骤201、步骤202、步骤203和步骤204的相关说明,在此不再赘述。
在本实施例的一些可选实现方式中,第一获取单元701进一步配置用于:响应于接收到客户端对预定服务的调用请求信息,根据用户信息对发送调用请求信息的用户进行鉴权。在鉴权通过之后,获取保存在数据库中的与预定服务对应的服务接口的完全限定名。
在本实施例的一些可选实现方式中,数据库中存储有不同版本的预定服务以及与不同版本的预定服务各自在数据库中的主关键字,任一版本的预定服务在数据库中的主关键字与该版本的预定服务对应的服务接口在数据库中的主关键字关联存储。第一获取单元701进一步配置用于基于预先设置的配置表确定与客户端对应的服务接口的完全限定名以及预定服务的版本,其中,配置表中设置有不同版本的预定服务以及不同版本的预定服务分别对应的客户端的类型和版本。
在本实施例的一些可选实现方式中,确定单元702进一步配置用于:在内存中预先存储的多个通用服务接口对象实例中确定是否存在与服务接口的完全限定名匹配的通用服务接口对象实例,其中,预先存储的多个通用服务接口对象实例是按照如下步骤获得的:在接收到调用请求信息之前,在数据库中获取多个服务接口的完全限定名;对于每一个服务接口的完全限定名,创建与该服务接口的完全限定名对应的通用服务接口对象实例;将各通用服务接口对象实例存储在内存中;若存在与服务接口的完全限定名匹配的通用服务接口对象实例,则将该通用服务接口对象实例确定为与服务接口对应的通用服务接口对象实例;若不存在与服务接口的完全限定名匹配的通用服务接口对象实例,则根据预设规则创建与服务接口的完全限定名对应的通用服务接口对象实例。
在本实施例的一些可选实现方式中,第二获取单元703进一步配置用于:在内存中预先存储的多个服务对应的参数类型中获取与预定服务对应的参数类型,其中预先存储的多个服务对应的参数类型中的每一个服务对应的参数类型是按照如下步骤获得的:在数据库中获取该服务对应的服务接口的完全限定名;确定提供该服务的服务器的地址信息,根据服务器的地址信息,远程登录获取调用该服务所需的参数类型,将获取到的参数类型与该服务关联保存至内存。
在本实施的一些可选实现方式中,确定单元702进一步配置用于:对于任一服务,在注册中心中查找提供该服务的多个服务器的地址信息;按照预设规则从多个服务器的地址信息中选取其中一个服务器的地址信息;根据选取的服务器的地址信息,远程登录选取的服务器获取调用该服务所需的参数类型。
在本实施例的一些可选实现方式中,在内存中预先存储的多个服务对应的参数类型包括不同版本号的同一服务各自对应的参数类型。第二获取单元703进一步配置用于:对于任一服务,在内存中获取与客户端匹配的版本的该服务对应的参数类型。
本申请实施例提供的用于调用服务的方法与装置,客户端可以不再通过Web工程的项目对象模型对远程服务进行调用,而是直接向上述电子设备发出调用请求,由上述电子设备建立用于调用上述服务的通用服务接口对象实例并获取调用上述服务对应的参数类型来完成远程服务调用,从而实现了远程服务业务的透明化。上述电子设备在一定程度上可以作为网关使用。此外,当设置在远程服务器上的服务发生新增、修改、删除等修改时,只需要在上述数据库中做相应配置,可以节省因远程服务的变化导致的对调用端进行开发、测试、上线所产生的成本。
下面参考图8,其示出了适于用来实现本申请实施例的电子设备的计算机系统800的结构示意图。图8示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如液晶显示器(LCD)以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、服务器或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、服务器或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、服务器或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一获取单元、确定单元、第二获取单元和调用单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取服务接口的完全限定名的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:响应于接收到客户端对预定服务的调用请求信息,获取保存在预设数据库中的与所述预定服务对应的服务接口的完全限定名;其中,所述调用请求信息包括用户信息、所述预定服务对应的服务接口的标识信息以及所述预定服务的标识信息;基于所述服务接口的完全限定名确定与所述服务接口对应的通用服务接口对象实例;获取与所述预定服务对应的参数类型;基于所述通用服务接口对象实例以及所述参数类型调用设置在远程服务器上的所述预定服务。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (14)
1.一种用于调用服务的方法,其特征在于,所述方法包括:
响应于接收到客户端对预定服务的调用请求信息,获取保存在预设数据库中的与所述预定服务对应的服务接口的完全限定名;其中,所述调用请求信息包括用户信息、所述预定服务对应的服务接口的标识信息以及所述预定服务的标识信息;
基于所述服务接口的完全限定名确定与所述服务接口对应的通用服务接口对象实例;
获取与所述预定服务对应的参数类型;
基于所述通用服务接口对象实例以及所述参数类型调用设置在远程服务器上的所述预定服务;其中,
所述响应于接收到客户端对预定服务的调用请求信息,获取保存在数据库中的与所述预定服务对应的服务接口的完全限定名,包括:
响应于接收到客户端对所述预定服务的调用请求信息,根据所述用户信息对发送所述调用请求信息的用户进行鉴权;
在鉴权通过之后,获取保存在所述数据库中的与所述预定服务对应的服务接口的完全限定名。
2.根据权利要求1所述的方法,其特征在于,所述数据库中存储有不同版本的所述预定服务以及与不同版本的所述预定服务各自在所述数据库中的主关键字,任一版本的所述预定服务在所述数据库中的主关键字与该版本的所述预定服务对应的服务接口在所述数据库中的主关键字关联存储;以及
所述获取保存在预设数据库中的与所述预定服务对应的服务接口的完全限定名,包括:
基于预先设置的配置表确定与所述客户端对应的服务接口的完全限定名以及所述预定服务的版本,其中,所述配置表中设置有不同版本的所述预定服务以及不同版本的所述预定服务分别对应的客户端的类型和版本。
3.根据权利要求1所述的方法,其特征在于,所述基于所述服务接口的完全限定名确定与所述服务接口对应的通用服务接口对象实例,包括:
在内存中预先存储的多个通用服务接口对象实例中确定是否存在与所述服务接口的完全限定名匹配的通用服务接口对象实例,其中,所述预先存储的多个通用服务接口对象实例是按照如下步骤获得的:在接收到所述调用请求信息之前,在所述数据库中获取多个服务接口的完全限定名;对于每一个服务接口的完全限定名,创建与该服务接口的完全限定名对应的通用服务接口对象实例;将各所述通用服务接口对象实例存储在内存中;
若存在与所述服务接口的完全限定名匹配的通用服务接口对象实例,则将该通用服务接口对象实例确定为与所述服务接口对应的通用服务接口对象实例;
若不存在与所述服务接口的完全限定名匹配的通用服务接口对象实例,则根据预设规则创建与所述服务接口的完全限定名对应的通用服务接口对象实例。
4.根据权利要求1所述的方法,其特征在于,所述获取所述预定服务对应的参数类型,包括:
在内存中预先存储的多个服务对应的参数类型中获取与所述预定服务对应的参数类型,其中
所述预先存储的多个服务对应的参数类型中的任一服务对应的参数类型是按照如下步骤获得的:在所述数据库中获取该服务对应的服务接口的完全限定名;确定提供该服务的服务器的地址信息,根据所述服务器的地址信息,远程登录获取调用该服务所需的参数类型,将获取到的参数类型与该服务关联保存至所述内存。
5.根据权利要求4所述的方法,其特征在于,所述确定提供该服务的服务器的地址信息,包括:
在注册中心中查找提供该服务的多个服务器的地址信息;
按照预设规则从多个服务器的地址信息中选取其中一个服务器的地址信息;
根据选取的服务器的地址信息,远程登录选取的服务器获取调用该服务所需的参数类型。
6.根据权利要求4所述的方法,其特征在于,在内存中预先存储的多个服务对应的参数类型包括不同版本的同一服务各自对应的参数类型;以及
所述获取与所述服务对应的参数类型,包括:
在所述内存中获取与所述客户端匹配的版本的所述服务对应的参数类型。
7.一种用于调用服务的装置,其特征在于,所述装置包括:
第一获取单元,配置用于响应于接收到客户端对预定服务的调用请求信息,获取保存在预设数据库中的与所述预定服务对应的服务接口的完全限定名;其中,所述调用请求信息包括用户信息、所述预定服务对应的服务接口的标识信息以及所述预定服务的标识信息;
确定单元,配置用于基于所述服务接口的完全限定名确定与所述服务接口对应的通用服务接口对象实例;
第二获取单元,配置用于获取与所述预定服务对应的参数类型;
调用单元,配置用于基于所述通用服务接口对象实例以及所述参数类型调用设置在远程服务器上的所述预定服务;
所述第一获取单元进一步配置用于:
响应于接收到客户端对所述预定服务的调用请求信息,根据所述用户信息对发送所述调用请求信息的用户进行鉴权;
在鉴权通过之后,获取保存在所述数据库中的与所述预定服务对应的服务接口的完全限定名。
8.根据权利要求7所述的装置,其特征在于,所述数据库中存储有不同版本的所述预定服务以及与不同版本的所述预定服务各自在所述数据库中的主关键字,任一版本的所述预定服务在所述数据库中的主关键字与该版本的所述预定服务对应的服务接口在所述数据库中的主关键字关联存储;以及
第一获取单元进一步配置用于基于预先设置的配置表确定与所述客户端对应的服务接口的完全限定名以及所述预定服务的版本,其中,所述配置表中设置有不同版本的所述预定服务以及不同版本的所述预定服务分别对应的客户端的类型和版本。
9.根据权利要求8所述的装置,其特征在于,所述确定单元进一步配置用于:
在内存中预先存储的多个通用服务接口对象实例中确定是否存在与所述服务接口的完全限定名匹配的通用服务接口对象实例,其中,所述预先存储的多个通用服务接口对象实例是按照如下步骤获得的:在接收到所述调用请求信息之前,在所述数据库中获取多个服务接口的完全限定名;对于每一个服务接口的完全限定名,创建与该服务接口的完全限定名对应的通用服务接口对象实例;将各所述通用服务接口对象实例存储在内存中;
若存在与所述服务接口的完全限定名匹配的通用服务接口对象实例,则将该通用服务接口对象实例确定为与所述服务接口对应的通用服务接口对象实例;
若不存在与所述服务接口的完全限定名匹配的通用服务接口对象实例,则根据预设规则创建与所述服务接口的完全限定名对应的通用服务接口对象实例。
10.根据权利要求7所述的装置,其特征在于,所述第二获取单元进一步配置用于:
在内存中预先存储的多个服务对应的参数类型中获取与所述预定服务对应的参数类型,其中
所述预先存储的多个服务对应的参数类型中的任一服务对应的参数类型是按照如下步骤获得的:在所述数据库中获取该服务对应的服务接口的完全限定名;确定提供该服务的服务器的地址信息,根据所述服务器的地址信息,远程登录获取调用该服务所需的参数类型,将获取到的参数类型与该服务关联保存至所述内存。
11.根据权利要求10所述的装置,其特征在于,所述确定单元进一步配置用于:
对于任一服务,在注册中心中查找提供该服务的多个服务器的地址信息;
按照预设规则从多个服务器的地址信息中选取其中一个服务器的地址信息;
根据选取的服务器的地址信息,远程登录选取的服务器获取调用该服务所需的参数类型。
12.根据权利要求10所述的装置,其特征在于,所述在内存中预先存储的多个服务对应的参数类型包括不同版本的同一服务各自对应的参数类型;以及
所述第二获取单元进一步配置用于:
对于任一服务,在所述内存中获取与所述客户端匹配的版本的该服务对应的参数类型。
13.一种服务器,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711157944.XA CN107733922B (zh) | 2017-11-20 | 2017-11-20 | 用于调用服务的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711157944.XA CN107733922B (zh) | 2017-11-20 | 2017-11-20 | 用于调用服务的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107733922A CN107733922A (zh) | 2018-02-23 |
CN107733922B true CN107733922B (zh) | 2020-12-08 |
Family
ID=61216505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711157944.XA Active CN107733922B (zh) | 2017-11-20 | 2017-11-20 | 用于调用服务的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107733922B (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110474863B (zh) * | 2018-05-10 | 2021-11-09 | 中国移动通信集团浙江有限公司 | 微服务安全认证方法及装置 |
CN108647102B (zh) * | 2018-05-11 | 2022-05-13 | 创新先进技术有限公司 | 异构系统的服务请求处理方法、装置和电子设备 |
CN108718339A (zh) * | 2018-05-23 | 2018-10-30 | 杭州优行科技有限公司 | 数据处理方法、装置及服务器 |
CN108897766A (zh) * | 2018-05-24 | 2018-11-27 | 沈阳东软医疗系统有限公司 | 一种互联网服务的查询方法及相关装置 |
CN110830280B (zh) * | 2018-08-10 | 2023-05-30 | 深圳市鸿合创新信息技术有限责任公司 | 一种微服务网关装置及方法、电子设备 |
CN109298958A (zh) * | 2018-10-26 | 2019-02-01 | 恒生电子股份有限公司 | 服务的调用方法及相关系统 |
CN109597854A (zh) * | 2018-10-31 | 2019-04-09 | 深圳壹账通智能科技有限公司 | 一种服务请求的路由方法、装置、计算机设备及计算机存储介质 |
CN109542645A (zh) * | 2018-11-20 | 2019-03-29 | 北京锐安科技有限公司 | 一种调用服务的方法、装置、电子设备及存储介质 |
CN109495591A (zh) * | 2019-01-04 | 2019-03-19 | 中企动力科技股份有限公司 | 访问服务方法、装置及系统 |
CN110244990A (zh) * | 2019-04-29 | 2019-09-17 | 五八有限公司 | 应用组件调用方法、装置、电子设备及存储介质 |
CN110245030B (zh) * | 2019-05-29 | 2021-11-12 | 北京字节跳动网络技术有限公司 | 一种数据服务提供方法、装置、介质和电子设备 |
CN110333957B (zh) * | 2019-05-30 | 2024-02-02 | 深圳创芯在线科技有限公司 | 远程过程调用rpc服务调用方法、装置和计算机设备 |
CN110602212A (zh) * | 2019-09-16 | 2019-12-20 | 京东数字科技控股有限公司 | 应用服务管理方法、装置及存储介质 |
CN110647316B (zh) * | 2019-09-23 | 2022-10-28 | 苏州达家迎信息技术有限公司 | 通用业务对象的生成方法、装置、计算机设备及存储介质 |
CN110851209B (zh) * | 2019-11-08 | 2023-07-21 | 北京字节跳动网络技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN111240868B (zh) * | 2020-01-22 | 2024-04-02 | 阿里巴巴集团控股有限公司 | 实例处理与调用方法、设备、系统及存储介质 |
CN113568672A (zh) * | 2020-04-27 | 2021-10-29 | 阿里巴巴集团控股有限公司 | 云应用启动方法、装置、电子设备及计算机存储介质 |
CN113709085A (zh) * | 2020-05-22 | 2021-11-26 | 成都鼎桥通信技术有限公司 | 远程过程调用处理方法、装置及设备 |
CN113722115A (zh) * | 2020-05-26 | 2021-11-30 | 北京沃东天骏信息技术有限公司 | 调用接口的方法、装置、设备和计算机可读介质 |
CN111831566A (zh) * | 2020-07-17 | 2020-10-27 | 北京字节跳动网络技术有限公司 | 测试方法、装置、电子设备和计算机可读存储介质 |
CN111930534A (zh) * | 2020-07-29 | 2020-11-13 | 北京字节跳动网络技术有限公司 | 数据调用方法、装置和电子设备 |
CN112114979B (zh) * | 2020-08-31 | 2024-03-19 | 厦门安胜网络科技有限公司 | 远程过程调用方法和装置 |
CN112965758A (zh) * | 2021-03-03 | 2021-06-15 | 北京百度网讯科技有限公司 | 接口数据确定方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677975A (zh) * | 2013-12-09 | 2014-03-26 | 北京恒华伟业科技股份有限公司 | 一种访问应用系统内部对象的系统和方法 |
CN104063273A (zh) * | 2014-06-13 | 2014-09-24 | 航天恒星科技有限公司 | 一种中控式业务流程调度管理系统及实现方法 |
US9191343B2 (en) * | 2013-03-15 | 2015-11-17 | Sap Se | Consistent interface for appointment activity business object |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101924768B (zh) * | 2010-08-20 | 2013-05-15 | 华南理工大学 | 一种分布式rfid中间件的通信控制方法 |
CN102402456B (zh) * | 2010-09-17 | 2014-07-09 | 金蝶软件(中国)有限公司 | 一种服务请求处理方法、装置及服务系统 |
US9442700B2 (en) * | 2013-09-30 | 2016-09-13 | MuleSoft, Inc. | API notebook tool |
-
2017
- 2017-11-20 CN CN201711157944.XA patent/CN107733922B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9191343B2 (en) * | 2013-03-15 | 2015-11-17 | Sap Se | Consistent interface for appointment activity business object |
CN103677975A (zh) * | 2013-12-09 | 2014-03-26 | 北京恒华伟业科技股份有限公司 | 一种访问应用系统内部对象的系统和方法 |
CN104063273A (zh) * | 2014-06-13 | 2014-09-24 | 航天恒星科技有限公司 | 一种中控式业务流程调度管理系统及实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107733922A (zh) | 2018-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107733922B (zh) | 用于调用服务的方法和装置 | |
US10462118B2 (en) | Systems and methods for login and authorization | |
KR100998515B1 (ko) | 클라이언트-서버 네트워크에서 파일-유형 연관성을 이용한분산 프로그램 실행 방법 | |
EP2771803B1 (en) | File fetch from a remote client device | |
CN111045788B (zh) | 用于虚拟机实例的自动目录加入 | |
JP2002533830A (ja) | クライアント−サーバネットワークにおいてクライアントノードの近隣プログラムを判定するための装置および方法 | |
US11882154B2 (en) | Template representation of security resources | |
RU2237275C2 (ru) | Сервер и способ (варианты) определения программного окружения клиентского узла в сети с архитектурой клиент/сервер | |
CN112835782B (zh) | 接口的接入测试方法和系统 | |
CN110162994A (zh) | 权限控制方法、系统、电子设备及计算机可读存储介质 | |
CN111191200B (zh) | 一种三方联动鉴权页面展示方法、装置和电子设备 | |
CN110750780B (zh) | 基于多业务系统的用户角色权限融合方法、装置以及设备 | |
CN111078424A (zh) | 一种信息交互方法、装置、计算机设备和存储介质 | |
EP4310693A1 (en) | Evaluating the quality of integrations for executing searches using application programming interfaces | |
CN108228280A (zh) | 浏览器参数的配置方法及装置、存储介质、电子设备 | |
CN114443002A (zh) | 创建应用程序的方法、装置、计算机设备及存储介质 | |
CN113946739A (zh) | 敏感数据查询方法、装置、设备及存储介质 | |
CN116546062A (zh) | 云手机控制方法及装置、云服务端、存储介质 | |
US11757976B2 (en) | Unified application management for heterogeneous application delivery | |
CN110765445B (zh) | 处理请求的方法和装置 | |
CN112883309B (zh) | 一种通过浏览器访问应用的方法、装置、设备及介质 | |
CN114745164B (zh) | 一种业务处理方法、装置、电子设备及计算机可读介质 | |
CN113128200B (zh) | 用于处理信息的方法和装置 | |
US20230419067A1 (en) | ENHANCED QUICK RESPONSE (qr) CODE SCAN SECURITY | |
JP2017004296A (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 |