CN111431956B - 跨网络的服务访问方法、设备、系统及存储介质 - Google Patents

跨网络的服务访问方法、设备、系统及存储介质 Download PDF

Info

Publication number
CN111431956B
CN111431956B CN201910023380.3A CN201910023380A CN111431956B CN 111431956 B CN111431956 B CN 111431956B CN 201910023380 A CN201910023380 A CN 201910023380A CN 111431956 B CN111431956 B CN 111431956B
Authority
CN
China
Prior art keywords
service
proxy device
network
external access
request
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
Application number
CN201910023380.3A
Other languages
English (en)
Other versions
CN111431956A (zh
Inventor
周文
李颜良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910023380.3A priority Critical patent/CN111431956B/zh
Publication of CN111431956A publication Critical patent/CN111431956A/zh
Application granted granted Critical
Publication of CN111431956B publication Critical patent/CN111431956B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供一种跨网络的服务访问方法、设备、系统及存储介质。在本申请实施例中,在注册中心所在的第一网络区中部署第一代理设备,在第二网络区中部署第二代理设备,由第一代理设备为第一网络区和第二网络区中的服务提供者和服务请求者提供服务访问条件,并由第二代理设备辅助第一代理设备在两个网络区中的服务请求者与服务提供者之间进行信息传递,打通两个网络区之间的服务访问通道,使得一个网络区中的服务请求者可以跨网络访问另一网络区中的服务,不仅可以跨网络进行服务访问,而且通过部署代理设备打通两个网络区之间的服务访问通道的方式,对两个网络区的网络环境没有特别要求,相对易于实施,实现成本较低。

Description

跨网络的服务访问方法、设备、系统及存储介质
技术领域
本申请涉及网络通信技术领域,尤其涉及一种跨网络的服务访问方法、设备、系统及存储介质。
背景技术
随着互联网行业的迅猛发展,服务供应商的服务规模的不断扩张,用户需求或用户量的不断增加,传统的模型-视图-控制(Model View Controller,MVC)软件架构模型以及ALL-IN-ONE(一体化)部署形态已经无法满足互联网时代的需求,于是出现了微服务架构(Microservice Architect)。
微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终服务。每个服务是一个完整的自治系统,可被独立部署,并可与其它服务相互访问。
在实际应用中,同一应用程序下的不同服务有可能被部署到不同网络环境,目前,跨网络环境的服务之间是不可相互访问的。因此,有必要提供一种解决方案,解决跨网络环境的服务之间相互访问的问题。
发明内容
本申请的多个方面提供一种跨网络的服务访问方法、设备、系统及存储介质,用以实现跨网络的服务访问,并降低对网络环境的要求。
本申请实施例提供一种跨网络的服务系统,包括:第一网络区和第二网络区;
所述第一网络区包括服务请求者A1、以及与所述服务请求者A1通信连接的第一代理设备和注册中心;所述第二网络区包括提供服务S2的服务提供者P2、以及与所述服务提供者P2通信连接的第二代理设备;
其中,所述注册中心维护有所述服务S2的标识与外部访问端口,所述服务S2的外部访问端口是所述服务S2在所述第一代理设备上的映射端口;所述第一代理设备与所述第二代理设备通信连接,并存储有所述服务S2的外部访问端口与所述服务S2在服务提供者P2上的实际服务端口之间的映射关系,用于辅助所述服务请求者A1跨网络访问所述服务提供者P2所提供的服务S2。
本申请实施例还提供一种跨网络的服务系统,包括:第一网络区和第二网络区;
所述第一网络区包括:提供服务S1的服务提供者P1以及与所述服务提供者P1通信连接的第一代理设备和注册中心;所述第二网络区包括:服务请求者A2,以及与所述服务请求者A2通信连接的第二代理设备;
其中,所述注册中心维护有所述服务S1的标识与外部访问端口,所述服务S1的外部访问端口是所述服务S1在所述服务提供者P1上的实际服务端口;所述第一代理设备与所述第二代理设备通信连接,用于辅助所述服务请求者A2跨网络访问所述服务提供者P1提供的服务S1。
本申请实施例提供一种跨网络的服务访问方法,适用于第一网络区中的服务请求者A1,所述方法包括:
向所述第一网络区中的注册中心请求服务S2的外部访问端口,所述服务S2由第二网络区中的服务提供者P2提供;
接收所述注册中心返回的所述服务S2的外部访问端口,所述服务S2的外部访问端口是所述服务S2在所述第一网络区中的第一代理设备上的映射端口;
基于所述服务S2的外部访问端口向所述第一代理设备发送服务请求,以借由所述第一代理设备将所述服务请求中所述服务S2的外部访问端口替换为所述服务S2在所述服务提供者P2上的实际服务端口后经所述第二网络区中的第二代理设备转发给所述服务提供者P2,以供所述服务提供者P2提供所述服务S2。
本申请实施例还提供一种跨网络的服务访问方法,适用于第一网络区中的第一代理设备,所述方法包括:
接收所述第一网络区中的服务请求者A1发送的第一服务请求,所述第一服务请求携带有服务S2的外部访问端口,所述服务S2由第二网络区中的服务提供者P2提供;
将所述第一服务请求中携带的所述服务S2的外部访问端口替换为所述服务S2在所述服务提供者P2上的实际服务端口,所述服务S2的外部访问端口是所述服务S2在所述第一代理设备上的映射端口;
将经过端口替换的第一服务请求发送给所述第二网络区中的第二代理设备,以借由所述第二代理设备转发给所述服务提供者P2,以供所述服务提供者P2为所述服务请求者A1提供服务S2。
本申请实施例还提供一种跨网络的服务访问方法,适用于第二网络区中的第二代理设备,所述方法包括:
接收第一网络区中第一代理设备发送的经过端口替换的第一服务请求,所述第一服务请求携带有服务S2的标识,且所述第一服务请求携带的所述服务S2的外部访问端口被替换为所述服务S2在第二网络区中的服务提供者P2上的实际服务端口;
将所述经过端口替换的第一服务请求转发给所述服务提供者P2,以供所述服务提供者P2为第一网络区中的服务请求者A1提供服务S2;其中,所述第一服务请求是所述服务请求者A1发送给所述第一代理设备的。
本申请实施例还提供一种跨网络的服务访问方法,适用于第二网络区中的服务请求者A2,所述方法包括:
经所述第二网络区中的第二代理设备和第一网络区中的第一代理设备向所述第一网络区中的注册中心发送寻址请求,以请求服务S1的外部访问端口;所述服务S1由所述第一网络区中的服务提供者P1提供;
接收所述注册中心经所述第一代理设备和所述第二代理设备转发的所述服务S1的外部访问端口;
根据所述服务S1的标识与外部访问端口生成服务请求,并经所述第二代理设备和所述第一代理设备转发给所述服务提供者P1,以供所述服务提供者P1提供服务S1。
本申请实施例还提供一种计算机设备,可作为第一网络区中的服务请求者A1实现,所述计算机设备包括:存储器、处理器以及通信组件;所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序,以用于:
通过所述通信组件向所述第一网络区中的注册中心请求服务S2的外部访问端口,所述服务S2由第二网络区中的服务提供者P2提供;
通过所述通信组件接收所述注册中心返回的所述服务S2的外部访问端口,所述服务S2的外部访问端口是所述服务S2在所述第一网络区中的第一代理设备上的映射端口;
基于所述服务S2的外部访问端口通过所述通信组件向所述第一代理设备发送服务请求,以借由所述第一代理设备将所述服务请求中所述服务S2的外部访问端口替换为所述服务S2在所述服务提供者P2上的实际服务端口后经所述第二网络区中的第二代理设备转发给所述服务提供者P2,以供所述服务提供者P2提供所述服务S2。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被处理器执行时,致使所述处理器实现上述可由服务请求者A1执行的方法中的步骤。
本申请实施例还提供一种计算机设备,可作为第一网络区中的第一代理设备实现,所述计算机设备包括:存储器、处理器以及通信组件;所述处理器,用于存储计算机程序;所述处理器,用于执行所述计算机程序,以用于:
通过所述通信组件接收所述第一网络区中的服务请求者A1发送的第一服务请求,所述第一服务请求携带有服务S2的外部访问端口,所述服务S2由第二网络区中的服务提供者P2提供;
将所述第一服务请求中携带的所述服务S2的外部访问端口替换为所述服务S2在所述服务提供者P2上的实际服务端口,所述服务S2的外部访问端口是所述服务S2在所述第一代理设备上的映射端口;
通过所述通信组件将经过端口替换的第一服务请求发送给所述第二网络区中的第二代理设备,以借由所述第二代理设备转发给所述服务提供者P2,以供所述服务提供者P2为所述服务请求者A1提供服务S2。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时,致使所述处理器实现上述可由第一代理设备执行的方法中的步骤。
本申请实施例还提供一种计算机设备,可作为第二网络区中的第二代理设备实现,所述计算机设备包括:存储器、处理器以及通信组件;所述处理器,用于存储计算机程序;所述处理器,用于执行所述计算机程序,以用于:
通过所述通信组件接收第一网络区中第一代理设备发送的经过端口替换的第一服务请求,所述第一服务请求携带有服务S2的标识,且所述第一服务请求携带的所述服务S2的外部访问端口被替换为所述服务S2在第二网络区中的服务提供者P2上的实际服务端口;
通过所述通信组件将所述经过端口替换的第一服务请求转发给所述服务提供者P2,以供所述服务提供者P2为第一网络区中的服务请求者A1提供服务S2;其中,所述第一服务请求是所述服务请求者A1发送给所述第一代理设备的。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被处理器执行时,致使所述处理器实现上述可由第二代理设备执行的方法中的步骤。
本申请实施例还提供一种计算机设备,可作为第二网络区中的服务请求者A2实现,所述计算机设备包括:存储器、处理器以及通信组件;所述处理器,用于存储计算机程序;所述处理器,用于执行所述计算机程序,以用于:
通过所述通信组件经所述第二网络区中的第二代理设备和第一网络区中的第一代理设备向所述第一网络区中的注册中心发送寻址请求,以请求服务S1的外部访问端口;所述服务S1由所述第一网络区中的服务提供者P1提供;
通过所述通信组件接收所述注册中心经所述第一代理设备和所述第二代理设备转发的所述服务S1的外部访问端口;
根据所述服务S1的标识与外部访问端口生成服务请求,并经所述第二代理设备和所述第一代理设备转发给所述服务提供者P1,以供所述服务提供者P1提供服务S1。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被处理器执行时,致使所述处理器实现上述可由服务请求者A2执行的方法中的步骤。
在本申请实施例中,在注册中心所在的第一网络区中部署第一代理设备,在第二网络区中部署第二代理设备,由第一代理设备为第一网络区和第二网络区中的服务提供者和服务请求者提供服务访问条件,并由第二代理设备辅助第一代理设备在两个网络区中的服务请求者与服务提供者之间进行信息传递,打通两个网络区之间的服务访问通道,使得一个网络区中的服务请求者可以跨网络访问另一网络区中的服务,不仅可以跨网络进行服务访问,而且通过部署代理设备打通两个网络区之间的服务访问通道的方式,对两个网络区的网络环境没有特别要求,相对易于实施,实现成本较低。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请示例性实施例提供的一种跨网络的服务系统的结构示意图;
图1b为图1a所示服务系统中各设备间的一种交互流程示意图;
图1c为图1a所示服务系统中各设备间的另一种交互流程示意图;
图2a为本申请示例性实施例提供的另一种跨网络的服务系统的结构示意图;
图2b为图2a所示服务系统中各设备间的交互流程示意图;
图3a为本申请示例性实施例提供的又一种跨网络的服务系统的结构示意图;
图3b为本申请示例性实施例提供的再一种跨网络的服务系统的结构示意图;
图3c为本申请示例性实施例提供的一个服务化的宠物商店的信息交互系统的示意图。
图4a为本申请示例性实施例提供的一种跨网络的服务访问方法的流程示意图;
图4b为本申请示例性实施例提供的另一种跨网络的服务访问方法的流程示意图;
图4c为本申请示例性实施例提供的又一种跨网络的服务访问方法的流程示意图;
图4d为本申请示例性实施例提供的再一种跨网络的服务访问方法的流程示意图;
图5a为本申请示例性实施例提供的一种计算机设备的结构示意图;
图5b为本申请示例性实施例提供的另一种计算机设备的结构示意图;
图5c为本申请示例性实施例提供的又一种计算机设备的结构示意图;
图5d为本申请示例性实施例提供的再一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在微服务架构下,同一应用程序下的不同服务可能被部署到不同网络环境,如果一个服务需要访问另一个服务,就会涉及跨网络访问服务的问题。在本申请一些实施例中,针对需要跨网络访问服务的第一网络区和第二网络区,在注册中心所在的第一网络区中部署第一代理设备,在第二网络区中部署第二代理设备,由第一代理设备为第一网络区和第二网络区中的服务提供者和服务请求者提供服务访问条件,并由第二代理设备辅助第一代理设备在两个网络区中的服务请求者与服务提供者之间进行信息传递,打通两个网络区之间的服务访问通道,使得一个网络区中的服务请求者可以跨网络访问另一网络区中的服务,不仅可以跨网络进行服务访问,而且通过部署代理设备打通两个网络区之间的服务访问通道的方式,对两个网络区的网络环境没有特别要求,相对易于实施,实现成本较低。
图1a为本申请示例性实施例提供的一种跨网络的服务系统的结构示意图。如图1a所示,该服务系统包括:第一网络区10和第二网络区20。第一网络区10包括服务请求者A1和与服务请求者A1通信连接的注册中心(Registry)。第二网络区20包括提供服务S2的服务提供者P2。
其中,第一网络区10和第二网络区20是两个不完全连通的网络环境,但第一网络区10内部或第二网络区20内部是连通的。本实施例并不对第一网络区10和第二网络区20的网络形态进行限定。例如,第一网络区10和第二网络区20可以是两个互联网数据中心(Internet Data Center,IDC);或者,第一网络区10和第二网络区20是两个虚拟的私有云(Virtual Private Cloud,VPC),或者,第一网络区10和第二网络区20中一个是IDC,另一个是VPC等。其中,VPC是一种建立在私有云上的局域网。
在第一网络区10中,包括服务请求者,即服务的消费者(Consumer)。为便于区分和描述,将第一网络区10中的服务请求者标记为A1。在实现上,服务请求者A1可以是一台实体设备,也可以是一个应用程序、一个软件模块或需要一个服务的另一个服务。若服务请求者A1是应用程序、软件模块或需要一个服务的另一个服务,则服务请求者A1可以部署在第一网络区10中的节点设备上实现,该节点设备可以是各种具有计算能力和通信能力的计算机设备,例如可以是台式电脑、平板电脑、笔记本电脑、智能终端,还可以是常规服务器、云服务器、云主机、虚拟中心等服务器。
在第二网络区20中,包括服务提供者,即服务的提供者(Provider)。为便于区分和描述,将第二网络区20中的服务提供者标记为P2。服务提供者P2是一个可通过网络寻址的实体,它可以接受和执行来自服务请求者的服务请求。在实现上,服务提供者P2可以是一台实体设备,也可以是一个应用程序、软件模块或一个服务。若服务提供者P2是应用程序、软件模块或服务,则可以部署在第二网络区20中的节点设备上实现,该节点设备可以是各种具有计算能力和通信能力的计算机设备,例如可以是台式电脑、平板电脑、笔记本电脑、智能终端,还可以是常规服务器、云服务器、云主机、虚拟中心等服务器。
在本实施例中,注册中心是各个服务请求者的支持者,负责维护整个服务系统中存在的各服务的标识和外部访问端口,以便于服务请求者发现所需服务。注册中心可以部署在第一网络区10中的节点设备上,例如可以包含数据库,用于存储各服务的标识与外部访问端口,但不限于此。对服务提供者P2来说,可以将自己提供的服务S2的标识和服务S2的外部访问端口发布到注册中心,由注册中心负责维护服务S2的标识和外部访问端口,以便服务请求者可以发现和访问该服务S2。其中,服务S2的标识可以是服务S2的名称、服务号、IP地址等任何能够唯一标识服务S2的信息。
值得说明的是,服务请求者A1除了是一种服务的消费者之外,其本身也可以是另一种服务的提供者。同理,服务提供者P2除了是一种服务的提供者之外,其本身也可以是另一种服务的消费者。另外,第一网络区10中除了包括服务请求者A1之外,也可以包括服务提供者P1,详见后续实施例。同理,第二网络区20除了包括服务提供者P2之外,也可以包括服务请求者A2,详见后续实施例。为便于区分和描述,将第二网络区20中的服务请求者标记为A2,将第一网络区10中的服务提供者标记为P1。
值的说明的是,本实施例跨网络的服务系统的架构可应用于任何“涉及一个网络区中的服务请求者需要访问另一网络区中的服务提供者提供的服务”的应用场景中。例如,本实施例跨网络的服务系统可以作为微服务架构下的一种服务系统实现,但不限于此。
若本实施例跨网络的服务系统是微服务架构下的服务系统,则同一应用程序被划分为多个服务,多个服务可以分散部署在本实施例服务系统包括的各网络区中。例如,本实施例服务系统包含第一网络区和第二网络区,则由同一应用程序划分出的多个服务可以被分散部署在第一网络区和第二网络区中。进一步可选地,若本实施例服务系统除了第一网络区和第二网络区之外,还包括第三网络区等其它网络区,则由同一应用程序划分出的多个服务可以被分散部署在第一网络区、第二网络区以及第三网络区等网络区中。
其中,同一应用程序下的多个服务可能因为各种原因被部署在不同网络区中,下面列举几种做下说明:
情况1:一些服务可能存在环境亲和性的依赖,只能部署在特定的网络环境下,致使同一应用程序下的多个服务被部署到网络环境不同的网络区中。
情况2:同一应用程序下的不同服务,其安全级别不同,对网络环境的安全等级要求也会不同,这就要求不同安全级别的服务部署在相应安全级别的网络区中。
情况3:同一应用程序下的不同服务,可能由不同的研发团队开发,不同研发团队使用的开发环境不同,不同研发团队开发的服务部署在开发环境不同的网络区中。
情况4:单一网络环境内的资源不足以支撑多个服务的正常运转,需要多个网络环境协同,导致多个服务被部署到不同网络区中。
无论是何种原因导致多个服务被部署在不同网络区中,这些服务可能需要相互访问,甚至可能跨网络区访问,即部署于一个网络区中的服务需要访问部署于另一网络区中的服务。在本实施例中,将需要访问部署于另一网络区中的服务的服务视为服务请求者A1,将需要被部署于另一网络区中的服务访问的服务视为服务提供者P2。
无论是哪种应用场景,在本实施例服务系统中,第一网络区10中的服务请求者A1有可能跨网络访问第二网络区20中的服务提供者P2提供的服务。为便于区分和描述,将服务提供者P2提供的服务标记为S2。根据应用场景的不同,服务提供者P2提供的服务S2也会有所不同,例如服务S2可以是存储服务、装机服务、域名查询服务、监控服务、风控服务、支付服务等等。
为了让服务请求者A1能够跨网络访问第二网络区20中的服务提供者P2提供的服务S2,在本实施例中,在第一网络区10和第二网络区20中分别增加代理设备。为便于描述和区分,将第一网络区10中的代理设备记为第一代理设备,将第二网络区20中的代理设备记为第二代理设备,如图1a所示。其中,服务请求者A1与第一代理设备通信连接,服务提供者P2与第二代理设备通信连接,且第一代理设备与第二代理设备之间通信连接。
在此说明,在本申请各实施例中,所涉及的“通信连接”主要是指逻辑连接,例如TCP或UDP连接。当然,任何两个设备之间的逻辑连接均是以两个设备之间的物理连接为基础的。例如,第一代理设备与第二代理设备之间的通信连接是指两者之间建立起来的逻辑连接,例如TCP或UDP连接。而且,对第一代理设备和第二代理设备来说,在两者之间可以针对不同服务分别建立逻辑连接。其中,一个服务对应一个逻辑连接。具体地,对于服务S2,第一代理设备与第二代理设备之间通信连接可以是第一代理设备和第二代理设备针对服务S2建立的TCP或UDP连接。
在本申请实施例中,第一代理设备和第二代理设备虽然都具有代理功能,但却不完全相同。第一代理设备可以看作是服务请求者A1与服务提供者P2之间的订约居间人,为服务请求者A1与服务提供者P2提供服务访问条件,使得服务请求者A1能够跨网络访问服务提供者P2所提供的服务。第二代理设备更像一个行为代理,主要负责在服务请求者A1与服务提供者P2之间进行信息传递。基于第一代理设备和第二代理设备,可以打通两个网络区之间的服务访问通道。
在实际实现上,第一代理设备可在本地为服务S2分配映射端口,并允许服务S2将其在第一代理设备上的映射端口作为服务S2的外部访问端口发布到注册中心。值得说明的是,除了将服务S2在第一代理设备上的映射端口作为其外部访问端口发布到注册中心之外,还会将第一代理设备的IP地址发布到注册中心中,而第一代理设备的IP地址、服务S2在第一代理设备上的映射端口以及使用的传输层协议(例如TCP或UDP)结合起来可唯一标识服务S2对应的通信连接。对服务请求者A1来说,服务S2相当于是本地服务,而非跨网络的服务,服务请求者A1可以向第一代理设备发起访问服务S2的请求。
进一步,第一代理设备在本地保存服务S2的外部访问端口与服务S2在服务提供者P2上的实际服务端口之间的映射关系,以便对服务请求者A1发起的服务请求进行端口替换,并结合其与第二代理设备之间的通信连接,将服务请求者A1的服务请求转发至第二网络区20中的服务提供者P2,由服务提供者P2为服务请求者A1提供服务S2。
由此可见,在本实施例中,第一代理设备为服务S2提供端口映射和替换功能,进一步结合第二代理设备的信息传递功能,相当于打通了第一网络区10与第二网络区20之间的服务访问通道,因此,服务请求者A1可以跨网络访问服务提供者P2所提供的服务S2。
进一步,若将本实施例的技术方案应用于线上运行中的应用系统中,可以解决不同服务之间跨网络互访的问题,将极大地提高业务整体的可用性。若将本实施例的技术方案应用于开发过程中的应用系统中,可以解决不同服务之间跨网络互访的问题,有利于提高系统的开发效率与服务质量。
另外,在本实施例中,第一代理设备为第二网络区20中的服务S2提供端口映射和替换功能,结合第二代理设备的信息传递功能,即可打通了第一网络区10与第二网络区20之间的服务访问通道,在第一网络区10与第二网络区20之间不需要搭建虚拟专用网络(Virtual Private Network,VPN),因为不依赖于VPN,所以不用规划第一网络区和第二网络区间的地址段,不用担心两个网络区之间的地址段是否发生冲突。采用本实施例的方法,对各网络区使用的地址段不做限定,各网络区使用的地址段可以存在重叠,也可以不存在重叠,对网络区环境的要求较低,相对易于实施,实现成本较低。
在此说明,在图1a所示实施例中,第一代理设备的数量可以是一个,也可以是多个,具体可视第一网络区10覆盖范围的大小而定;同理,第二代理设备的数量可以是一个,也可以是多个,具体可视第二网络区20覆盖范围的大小而定。
另外,在第一网络区10中,服务请求者A1可以是一个,也可以是多个。可选地,若服务请求者A1的数量为多个,多个服务请求者A1可以共用同一第一代理设备,即多个服务请求者A1均与同一第一代理设备通信连接;或者,多个服务请求者A1使用多个不同的第一代理设备,即不同服务请求者A1可以与不同的第一代理设备通信连接。同理,在第二网络区20中,服务提供者P2可以是一个,也可以是多个,不同服务提供者P2提供不同的服务。可选地,若服务提供者P2的数量为多个,则多个服务提供者P2可以共用同一个第二代理设备,即多个服务提供者P2均与同一第二代理设备通信连接;或者,多个服务提供者P2使用多个不同的第二代理设备,即不同服务提供者P2与不同第二代理设备通信连接。
不论第一代理设备、第二代理设备、服务请求者A1以及服务提供者P2的数量是一个还是多个,对任意一个服务请求者A1与任意一个服务提供者P2来说,两者之间会通过一个第一代理设备和一个第二代理设备进行通信连接,并且对任意一个服务请求者A1访问任意一个服务提供者P2提供的服务的过程均相同,故在本申请各实施例中重点以其中一个服务请求者A1访问一个服务提供者P2提供的服务S2为例进行图示和说明。
结合图1b所示的交互流程,对图1a所示服务系统中各设备的工作原理以及各设备配合实现的跨网络的服务访问过程进行说明。如图1b所示:
b11、服务请求者A1向注册中心发送寻址请求,该寻址请求携带有服务S2的标识。
b12、注册中心根据服务S2的标识,查询得到服务S2的外部访问端口。
b13、服务请求者A1接收注册中心返回的服务S2的外部访问端口,即服务S2在第一代理设备上的映射端口。
b14、服务请求者A1基于服务S2的外部访问端口向第一代理设备发送第一服务请求。
b15、第一代理设备将第一服务请求中携带的服务S2的外部访问端口替换为服务S2在服务提供者P2上的实际服务端口。
b16、第一代理设备将经过端口替换的第一服务请求转发给第二代理设备。
b17、第二代理设备将经过端口替换的第一服务请求转发给服务提供者P2,以供服务提供者P2为服务请求者A1提供服务S2。
b18、服务提供者P2在接收到经过端口替换的第一服务请求后为服务请求者A1提供服务S2。
在图1a所示跨网络的服务系统中,注册中心上维护有服务S2的标识和外部访问端口,便于访问请求者A1发现服务S2。服务请求者A1需要访问第二网络区20中的服务S2时,可以直接从注册中心获取服务S2的外部访问端口,如步骤b11-b13所示。其中,服务S2的外部访问端口是服务S2在第一代理设备上的映射端口。
之后,服务请求者A1可以基于服务S2的外部访问端口向第一代理设备发送第一服务请求,如步骤b14所示。其中,服务请求者A1可以将第一代理设备的IP地址和服务S2的外部访问端口(即服务S2在第一代理设备上的映射端口)作为目的IP地址和目的端口,将自己的IP地址和端口作为源IP地址和源端口,生成第一服务请求,并基于服务请求者A1与第一代理设备之间的通信连接(这里的通信连接主要是指TCP或UDP等逻辑连接)将第一服务请求发送给第一代理设备。可选地,第一代理设备可以采用开源的OpenSSH技术与服务请求者A1及第一网络区10中的其它设备建立TCP或UDP连接,但不限于此。
对第一代理设备来说,可接收服务请求者A发送的第一服务请求,并在接收到第一服务请求之后,将第一服务请求中服务S2的外部访问端口替换为服务S2在服务提供者P2上的实际服务端口,进而将经过端口替换的第一服务请求发送给第二网络区20中的第二代理设备,以便于第二代理设备转发给服务提供者P2。服务S2在服务提供者P2上的实际服务端口是服务提供者P2分配给服务S2使用的端口,该端口与服务S2具有对应关系,可唯一标识服务S2。
其中,第一代理设备可根据本地存储的服务S2的外部访问端口与服务S2实际服务端口之间的映射关系,将第一服务请求中服务S2的外部访问端口替换为服务S2的实际服务端口。当然,也会将第一服务请求中的目的IP地址由第一代理设备的IP地址替换为服务提供者P2的IP地址。之后,第一代理设备可通过其与第二代理设备之间的通信连接,将经过端口替换后的第一服务请求发送给第二代理设备。
对第二代理设备来说,可接收第一代理设备发送的经过端口替换的第一服务请求,并负责将接收到的经过端口替换的第一服务请求转发给服务提供者P2,以供服务提供者P2为服务请求者A1提供服务S2。可选地,第二代理设备可以采用套接字(Socket)技术与服务提供者P2及第二网络区20中的其它设备建立通信连接,但不限于此。
值得说明的是,服务提供者P2在接收到第二代理设备发来的经过端口替换的第一服务请求,可以沿着相同路径向服务请求者A1返回服务响应。可选地,该服务响应可以是一通知消息,用于通知服务请求者A1服务请求已接收到,或者,该服务响应可以包括服务请求对应的服务结果。
进一步,结合图1c所示的交互流程,在图1a所示服务系统中服务请求者A1请求服务S2之前,服务提供者P2还需要向注册中心注册服务S2的信息。如图1c所示:
c1、服务提供者P2向第二代理设备发送第一注册请求,该第一注册请求携带有服务S2的标识与外部访问端口。
c2、第二代理设备将第一注册请求转发给第一代理设备。
c3、第一代理设备将第一注册请求转发给注册中心。
c4、注册中心基于第一注册请求维护服务S2的标识与外部访问端口。
c5、服务请求者A1向注册中心发送寻址请求,该寻址请求携带有服务S2的标识。
c6、注册中心根据服务S2的标识,查询得到服务S2的外部访问端口并返回给服务请求者A1。
c7、服务请求者A1接收注册中心返回的服务S2的外部访问端口,即服务S2在第一代理设备上的映射端口。
c8、服务请求者A1基于服务S2的外部访问端口向第一代理设备发送第一服务请求。
c9、第一代理设备将第一服务请求中携带的服务S2的外部访问端口替换为服务S2在服务提供者P2上的实际服务端口。
c10、第一代理设备将经过端口替换的第一服务请求转发给第二代理设备。
c11、第二代理设备将经过端口替换的第一服务请求转发给服务提供者P2,以供服务提供者P2为服务请求者A1提供服务S2。
c12、服务提供者P2在接收到经过端口替换的第一服务请求后为服务请求者A1提供服务S2。
在本实施例中,第二网络区20中的服务提供者P2可通过第二代理设备和第一代理设备向注册中心发送第一注册请求,并在第一注册请求中携带服务S2的标识与外部访问端口,以便注册中心基于接收到的第一注册请求在本地维护服务S2的标识与外部访问端口。对注册中心来说,还会接收服务提供者P2通过第二代理设备和第一代理设备转发的第一注册请求,从接收到的第一注册请求中解析出服务S2的标识与外部访问端口,在本地维护各服务S2标识与外部访问端口,以便于服务请求者发现服务S2。之后,如步骤c5-c12所描述,服务请求者A1可以通过注册中心发现服务S2并可向服务提供者P2请求服务S2。关于步骤c5-c12的描述,可参见图1b所示实施例中的相应描述,在此不再赘述。
在图1c所示实施例中,并未限定服务提供者P2获取服务S2的外部访问端口的方式。任何能够让服务提供者P2获知服务S2的外部访问端口的实施方式均适用于本申请实施例。例如,网络管理人员或网络配置人员可以手动在第一代理设备上为服务S2分配映射端口作为服务S2的外部访问端口,并手动将服务S2的外部访问端口配置给服务提供者P2。除此之外,也可以在第二代理设备与第一代理设备和服务提供者P2建立通信连接的过程中,由第一代理设备主动分配并经第二代理设备转发给服务提供者P2。如图1c所示,在步骤c1之前,还包括以下步骤:
c01、第二代理设备获取服务S2在服务提供者P2上的实际服务端口。
c02、第二代理设备为服务S2启动本地代理端口。其中,与服务S2相关的对外通信过程均通过该代理端口代理后发出,如步骤c1-c4中的注册过程等。
c03、第二代理设备将服务S2的实际服务端口发送给第一代理设备,以请求第一代理设备为服务S2分配外部访问端口。
c04、第一代理设备在本地为服务S2分配映射端口作为服务S2的外部访问端口,建立服务S2的外部访问端口与实际服务端口之间的映射关系。
c05、第一代理设备将服务S2的外部访问端口发送给第二代理设备。
c06、第二代理设备将服务S2的外部访问端口转发给服务提供者P2,以供服务提供者P2向注册中心注册服务S2的信息。
在本实施例中,在跨网络的服务系统成功部署之后,第二代理设备可以获取服务提供者P2上服务S2使用的端口,即服务S2的实际服务端口并发送给第一代理设备,以请求第一代理设备为服务S2分配外部访问端口。
可选地,第二代理设备可以在系统启动后向第一代理设备发起连接请求,该连接请求中包含第二代理设备的身份信息。对第一代理设备来说,可以接收第二代理设备发送的连接请求,从中解析出第二代理设备的身份信息,并根据第二代理设备的身份信息对第二代理设备进行身份验证,以保证安全性。进一步,第一代理设备可以在第二代理设备通过身份验证后,与第一代理设备建立通信连接。
之后,第二代理设备可以基于其与第一代理设备之间的通信连接,将服务S2的实际服务端口发送给第一代理设备。第一代理设备接收第二代理设备发送的服务S2的实际服务端口,在本地为服务S2分配映射端口作为服务S2的外部访问端口。在为服务S2分配外部访问端口之后,第一代理设备一方面可以建立服务S2的外部访问端口与实际服务端口之间的映射关系,另一方面可以将服务S2的外部访问端口发送给第二代理设备,并且还会启动对服务S2的外部访问端口的监听操作,以便接收来自服务请求者对服务S2的服务请求。
第二代理设备还用于接收第一代理设备发送的服务S2的外部访问端口并转发给服务提供者P2。这样,服务提供者P2就得到了服务S2的外部访问端口,进而可以将服务S2的标识和外部访问端口携带在第一注册请求中发送给注册中心,从而将服务S2发布在注册中心上,便于服务请求者发现服务S2。
在图1a所示服务系统的基础上,本申请示例性实施例提供了另一种跨网络的服务系统。如图2a所示,该服务系统包括:第一网络区10和第二网络区20。第一网络区10包括服务请求者A1、提供服务S1的服务提供者P1、第一代理设备和注册中心(Registry)。第二网络区20包括提供服务S2的服务提供者P2、第二代理设备以及服务请求者A2。
在第一网络区10中,第一代理设备分别与服务请求者A1、服务提供者P1以及注册中心通信连接;注册中心分别与服务请求者A1和服务提供者P1通信连接。在第二网络区20中,第二代理设备分别与服务提供者P2和服务请求者A2通信连接。
在本实施例中,注册中心除了维护服务S2的标识与外部访问端口之外,还负责维护服务S1的标识与外部访问端口。其中,服务S2是部署于第二网络区20中的服务,而服务S1是部署于第一网络区10中的服务。在本实施例中,以是否与注册中心位于同一网络区作为划分基准,将服务系统中存在的服务划分为两类,一类是与注册中心位于同一网络区的服务,记为第一类服务,一类是与注册中心位于不同网络区的服务,记为第二类服务。对于第一类服务,其外部访问端口是其在相应服务提供者上的实际服务端口,例如对服务S1,其外部访问端口是服务S1在服务提供者P1上的实际服务端口。对于第二类服务,其外部访问端口是其在第一网络区10(即注册中心所在网络区)中相应代理设备(即可为该类服务提供访问通道的代理设备)上的映射端口,例如对于服务S2,其外部访问端口是其在第一代理设备上的映射端口。
与图1a所示服务系统相比,在本实施例的服务系统中,第一网络区10除了包括服务请求者A1之外,还包括服务提供者。为便于区分和描述,将第一网络区中10中的服务提供者标记为P1。服务提供者P1可以是一个,也可以是多个,不同服务提供者P1提供的服务S1不同。与服务提供者P2类似,服务提供者P1也是一个可通过网络寻址的实体,它可以接受和执行来自服务请求者的服务请求。服务提供者P1可以部署在第一网络区10中的节点设备上实现,该节点设备可以是各种具有计算能力和通信能力的计算机设备,例如可以是台式电脑、平板电脑、笔记本电脑、智能终端,还可以是常规服务器、云服务器、云主机、虚拟中心等服务器。
值得说明的是,在图2a所示服务系统中,以服务请求者A1和服务提供者P1共享一个代理设备,即第一代理设备为例进行说明,但并不限于此。服务请求者A1与服务提供者P1也可以使用不同的代理设备,其服务访问过程与两者共享一个代理设备类似,主要区别是相关通信过程会多经过一个代理设备进行转发,故详细过程不做赘述。
与图1a所示服务系统相比,在本实施例的服务系统中,第二网络区20除了包括服务提供者P2之外,还包括服务请求者。为便于区分和描述,将第二网络区20中的服务请求者标记为A2。与服务请求者A1类似,服务请求者A2可以是一个应用程序、一个软件模块或需要一个服务的另一个服务。服务请求者A2可以部署在第二网络区20中的节点设备上实现,该节点设备可以是各种具有计算能力和通信能力的计算机设备,例如可以是台式电脑、平板电脑、笔记本电脑、智能终端,还可以是常规服务器、云服务器、云主机、虚拟中心等服务器。
在本实施例的服务系统中,第一代理设备不仅可以作为服务请求者A1与服务提供者P2之间的订约居间人,为服务请求者A1与服务提供者P2提供服务访问条件,使得服务请求者A1能够跨网络访问服务提供者P2所提供的服务;还可以作为服务请求者A2与服务提供者P1之间的订约居间人,为服务请求者A2与服务提供者P1提供服务访问条件,使得服务请求者A2能够跨网络访问服务提供者P1所提供的服务。相应地,第二代理设备不仅可以为服务提供者P1启动本地代理端口,基于为服务提供者P1启动的本地代理端口在服务请求者A1与服务提供者P2之间进行信息传递;还可以为服务请求者A2启动本地代理端口,并基于为服务请求者A1启动的本地代理端口在服务请求者A2与服务提供者P1之间进行信息传递。基于此,第一网络区10中的服务请求者A1可以跨网络访问第二网络区20中的服务S2,第二网络区20中的服务请求者A2也可以跨网络访问第一网络区10中的服务S1。关于服务请求者A1跨网络访问服务S2的过程可参见前述实施例的描述,在此不再赘述。本实施例重点针对服务请求者A2跨网络访问服务S1进行相关说明。
结合图2b所示交互流程,对图2a所示服务系统中与服务请求者A2跨网络访问服务S1相关的内容进行说明。如图2b所示:
b21、服务提供者P1向注册中心发送第二注册请求,该第二注册请求携带有服务S1的标识与外部访问端口。
b22、注册中心根据第二注册请求,维护维护服务S1的标识与外部访问端口。
b23、第二代理设备与第一代理设备建立通信连接。
b24、第二代理设备为服务请求者A2启动本地代理端口。其中,与服务请求者A2相关的对外通信过程均通过该代理端口代理后发出,如下述步骤b24中的寻址过程、步骤b26中的服务请求过程等。
b25、服务请求者A2经第二代理设备和第一代理设备向注册中心发送寻址请求,该寻址请求携带有服务S1的标识。
b26、注册中心经第一代理设备和第二代理设备向服务请求者A2返回服务S1的外部访问端口。
b27、服务请求者A2基于服务S1的外部访问端口经第二代理设备和第一代理设备向服务提供者P1发送第二服务请求,以向服务提供者P1请求服务S1。
b28、服务提供者P1接收到第二服务请求后,为服务请求者A2提供服务S1。
值得说明的是,服务提供者P1向注册中心注册服务S1的操作与第二代理设备与第一代理设备建立通信连接的操作之间的执行顺序不做限定,两个操作可以并行执行,也可以先执行其中一个操作再执行另一个操作。
在本实施例中,注册中心会存储服务S1的标识与外部访问端口。如图2b所示,可由服务提供者P1自动向注册中心发布服务S1的标识与外部访问端口等信息。当然,也可以由网络管理人员手动在注册中心上配置服务S1的标识与外部访问端口。
对服务提供者P1自动向注册中心发布服务S1的标识与外部访问端口等信息的情况,由于服务提供者P1与注册中心在同一网络区中,因此可以直接向注册中心发送第二注册请求,该第二注册请求携带有服务S1的标识和外部访问端口。注册中心可接收服务提供者P1提供的第二注册请求,从第二注册请求中解析出服务S1的标识和外部访问端口,并在本地维护服务S1的标识和外部访问端口,以供服务请求者(例如A2)发现服务S1。
另外,在本实施例中,第一代理设备与第二代理设备之间也会为服务S1建立一条通信连接,作为服务S1的访问通道。可选地,该通信连接的建立过程可以由第二代理设备发起。例如,第二代理设备可以向第一代理设备发起连接请求,该连接请求中包含第二代理设备的身份信息。对第一代理设备来说,可以接收第二代理设备发送的连接请求,从中解析出第二代理设备的身份信息,并根据第二代理设备的身份信息对第二代理设备进行身份验证,以保证安全性。进一步,第一代理设备可以在第二代理设备通过身份验证后,与第一代理设备建立通信连接。与此同时,第二代理设备会针对服务S1为服务请求者A2启动本地代理端口,后续与服务请求者A2相关的对外通信过程均通过该代理端口代理后发出。可选地,第二代理设备可以启动服务请求者A2。服务请求者A2启动之后,可以发起请求服务S1的操作。当然,服务请求者A2也可以由业务人员或管理人员手动启动,也可以在设定事件的触发下启动。
在上述基础上,服务请求者A2可以经第二代理设备和第一代理设备从注册中心获取服务S1的外部访问端口,进而可基于服务S1的外部访问端口经第二代理设备和第一代理设备向服务提供者P1发送第二服务请求,以向服务提供者P1请求服务S1。
具体的,服务请求者A2可以生成寻址请求,该寻址请求中携带有服务S1的标识,将该寻址请求发送给第二代理设备;第二代理设备将该寻址请求转发给第一代理设备;第一代理设备将该寻址请求转发给注册中心。注册中心根据该寻址请求查询得到服务S1的外部访问端口,将S1的外部访问端口发送给第一代理设备;第一代理设备将服务S1的外部访问端口转发给第二代理设备,进而由第二代理设备转发给服务请求者A2。服务请求者A2获得服务S1的外部访问端口之后,可以生成第二服务请求并发送给第一代理设备;第一代理设备将第二服务请求转发给第二代理设备;第二代理设备将第二服务请求转发给服务提供者P1。服务提供者P1接收到第二服务请求之后,为服务请求者A2提供服务S1。可选地,服务提供者P1还可以经第一代理设备和第二代理设备向服务请求者A2返回服务响应,该服务响应可以是一通知消息,也可以是服务结果。该通知消息用于通知服务请求者A2已经收到服务请求。
由上述可知,在本实施例中,在第一网络区中部署第一代理设备,在第二网络区中部署第二代理设备,由第一代理设备为两个网络区中的服务提供者和服务请求者提供服务访问条件,并由第二代理设备辅助第一代理设备在两个网络区中的服务请求者与服务提供者之间进行信息传递,打通两个网络区之间的服务访问通道,使得一个网络区中的服务请求者可以跨网络访问另一网络区中的服务。
值得说明的是,本领域技术人员可以在图1a和图2a所示服务系统的基础上,无需付出创造性劳动即可变形得到多种类似的服务系统,这些服务系统均在本申请保护范围之内。下面列举几种在图1a和图2a所示服务系统的基础上变形得到的服务系统。
如图3a所示,为本申请示例性实施例提供的又一种服务系统的结构示意图。该服务系统包括:第一网络区10、第二网络区20和第三网络区30。其中,第一网络区10和第二网络区20可以与图1a或图2a所示实施例中的相应网络区相同。在本实施例中,以与图1a所示实施例相同为例进行图示,不再赘述。第三网络区30包括:服务请求者A3、以及与服务请求者A3通信连接的第三代理设备;其中,第三代理设备与第一代理设备通信连接。
可选地,如图3a所示,第三网络区30除了包括服务请求者A3之外,也可以包括服务提供者P3。换句话说,第三网络区30可以为其它网络区提供服务,也可以访问其它网络区提供的服务。第三网络区30中的服务请求者A3可以是单纯的服务需求者,当然,也可以即是某一服务的需求者,同时又是另一服务的提供者。第三网络区30中的服务提供者P3可以是单纯的服务提供者,当然,也可以即是某一服务的提供者,同时又是另一服务的需求者。
其中,第一网络区10中的服务请求者A1也可以请求访问第三网络区30中的服务提供者P3提供的服务S3,该过程与服务请求者A1也可以请求访问第二网络区20中的服务提供者P2提供的服务S2的过程类似,在此不再赘述。另外,第三网络区30中的服务请求者A3可以请求访问第一网络区10中的服务,例如服务S1,也可以请求访问第二网络区20中的服务,例如服务S2。若第三网络区30中的服务请求者A3可以请求访问第一网络区10中的服务S1,则该访问过程与第二网络区20中的服务请求者A2请求访问第一网络区10中的服务S1的过程类似,在此不再赘述。关于服务请求者A3请求访问第二网络区20中的服务S2的过程,下面将重点进行描述。
在本实施例中,第一代理设备与第三代理设备通信连接。例如,第三代理设备可以向第一代理设备发起连接请求,该连接请求中包含第三代理设备的身份信息。对第一代理设备来说,可以接收第三代理设备发送的连接请求,从中解析出第三代理设备的身份信息,并根据第三代理设备的身份信息对第三代理设备进行身份验证,以保证安全性。进一步,第一代理设备可以在第三代理设备通过身份验证后,与第三代理设备建立通信连接。另外,第三代理设备会针对服务请求者A3启动本地代理端口,后续与服务请求者A3相关的对外通信均通过该代理端口代理后发出。可选地,第三代理设备还可以启动服务请求者A3。服务请求者A3启动之后,可以发起请求服务S2的操作。当然,服务请求者A3也可以由业务人员或管理人员手动启动,也可以在设定事件的触发下启动。
基于第一代理设备与第三代理设备之间以及第一代理设备与第二代理设备之间的通信连接,可以辅助服务请求者A3跨网络访问服务提供者P2提供的服务S2。这里的通信连接是指第一代理设备与第三代理设备针对服务S2为服务请求者A3建立的通信连接。
例如,服务请求者A3可经第三代理设备和第一代理设备从注册中心获取服务S2的外部访问端口,并基于服务S2的外部访问端口经第三代理设备向第一代理设备发送第三服务请求。
对第一代理设备来说,可接收第三代理设备发送的第三服务请求,并将第三服务请求中携带的服务S2的外部访问端口替换为服务S2的实际服务端口后转发给第二代理设备。第二代理设备接收第一代理设备发送的端口替换后的第三服务请求,并转发给服务提供者P2,以供服务提供者P2为服务请求者A3提供服务S2。
当然,如果服务请求者A3还需要访问第一网络区10中的服务S1,那么第三代理设备还需要针对服务S1为服务请求者A3与第一代理设备建立另一通信连接。基于该通信连接,服务请求者A3就可以跨网络访问服务提供者P1提供的服务S1了。
值得说明的是,第二网络区20中的服务请求者A2也可以请求访问第三网络区30中的服务S3,该服务访问过程与服务请求者A3访问服务S2的过程类似,在此不再赘述。在服务请求者A2访问服务S3的过程中,第一代理设备需要将服务S3的外部访问端口替换为服务S3的实际服务端口。服务S3的外部访问端口是服务S3在第一代理设备上的映射端口。
如图3b所示,为本申请示例性实施例提供的再一种服务系统的结构示意图。该服务系统包括:第一网络区10和第二网络区20。与图2a所示服务系统相比,第一网络区10缺少了服务请求者A1,第二网络区20缺少了服务提供者P2。在该服务系统中,第二网络区20中的服务请求者A2可以跨网络访问服务请求者P1提供的服务S1,访问过程可参见图2a和图2b所示实施例中的描述,在此不再赘述。
在图1a、图2a以及图3a、图3b所示服务系统中,均以各网络区包括一个代理设备为例进行图示,实际上并不限于一个代理设备,代理设备的数量不同可以变形出新的服务系统,对此本申请实施例不一一展开说明。
最后说明一点:上可以在网络区中新增物理设备,并由新增物理设备作为网络区中的代理设备实现;也可以部署在网络区中已有设备上部署相应的代理功能,由部署代理功能的已有设备作为网络区中的代理设备实现。部署相应的代理功能包括部署代理功能对应的程序代码和进行相关配置操作。
以一个服务化的宠物商店的信息交互系统为例对本申请技术方案进行说明。如图3c所示为服务化的宠物商店信息交互系统的示意图。在该系数中,包括公共云VPC、自建IDC和银行数据中心。因为银行结算服务只能专线接入,所以用户需要自建IDC,并将交易中心(交易中心提供交易服务)放在自建IDC中;其他的服务都运行在公共云VPC,包含服务注册中心。如图3c所示,加粗的两条数据通路就涉及跨网络进行服务访问的问题。对此问题,可以采用本申请实施例提供的解决方案,在公共云VPC中部署第一代理设备,在交易中心和银行数据中心中分别部署第二代理设备和第三代理设备,并采用上述实施例中的服务访问逻辑实现跨网络的服务访问。
除了上述服务系统之外,本申请实施例还提供一些跨网络的服务访问方法,下面针对这些方法进行说明。
图4a为本申请示例性实施例提供的一种跨网络的服务访问方法的流程示意图。本实施例是从第一网络区中的服务请求者A1的角度进行的描述,如图4a所示,该方法包括:
41a、向第一网络区中的注册中心请求服务S2的外部访问端口,该服务S2由第二网络区中的服务提供者P2提供。
42a、接收注册中心返回的服务S2的外部访问端口,该服务S2的外部访问端口是服务S2在第一网络区中的第一代理设备上的映射端口。
43a、基于服务S2的外部访问端口向第一代理设备发送服务请求,以借由第一代理设备将服务请求中服务S2的外部访问端口替换为服务S2在服务提供者P2上的实际服务端口后经第二网络区中的第二代理设备转发给服务提供者P2,以供服务提供者P2提供服务S2。
图4b为本申请示例性实施例提供的另一种跨网络的服务访问方法的流程示意图。本实施例是从第一网络区中的第一代理设备的角度进行的描述,如图4b所示,该方法包括:
41b、接收第一网络区中的服务请求者A1发送的第一服务请求,第一服务请求携带有服务S2的外部访问端口,服务S2由第二网络区中的服务提供者P2提供。
42b、将第一服务请求中携带的服务S2的外部访问端口替换为服务S2在服务提供者P2上的实际服务端口,服务S2的外部访问端口是服务S2在第一代理设备上的映射端口。
43b、将经过端口替换的第一服务请求发送给第二网络区中的第二代理设备,以借由第二代理设备转发给服务提供者P2,以供服务提供者P2为服务请求者A1提供服务S2。
在一可选实施例中,在步骤41b之前还包括:接收第二代理设备转发的来自服务提供者P2的第一注册请求,第一注册请求携带有服务S2的标识与外部访问端口;将第一注册请求转发给第一网络区中的注册中心,以供注册中心维护服务S2的标识与外部访问端口。
在一可选实施例中,在接收第二代理设备转发的来自服务提供者P2的第一注册请求之前,还包括:接收第二代理设备发送的服务S2的实际服务端口;在本地为服务S2分配映射端口作为服务S2的外部访问端口,并建立服务S2的外部访问端口与实际服务端口之间的映射关系;以及将服务S2的外部访问端口发送给第二代理设备,以供第二代理设备转发给服务提供者P2。
在一可选实施例中,该方法还包括:接收第二代理设备转发的来自第二网络区中的服务请求者A2的寻址请求,该寻址请求包括服务S1的标识,服务S1由第一网络区中的服务提供者P1提供;将寻址请求发送给第一网络区中的注册中心,以及接收注册中心返回的服务S1的外部访问端口并借由第二代理设备转发给服务请求者A2;接收第二代理设备转发的来自服务请求者A2的第二服务请求,第二服务请求携带有服务S1的标识与外部访问端口;将第二服务请求转发给服务提供者P1,以供服务提供者P1为服务请求者A2提供服务S1。
图4c为本申请示例性实施例提供的又一种跨网络的服务访问方法的流程示意图。本实施例是从第二网络区中的第二代理设备的角度进行的描述,如图4c所示,该方法包括:
41c、接收第一网络区中第一代理设备发送的经过端口替换的第一服务请求,第一服务请求携带有服务S2的标识,且第一服务请求携带的服务S2的外部访问端口被替换为服务S2在第二网络区中的服务提供者P2上的实际服务端口。
42c、将经过端口替换的第一服务请求转发给服务提供者P2,以供服务提供者P2为第一网络区中的服务请求者A1提供服务S2;其中,第一服务请求是服务请求者A1发送给第一代理设备的。
在一可选实施例中,在步骤41c之前,还包括:接收服务提供者P2发送的第一注册请求,第一注册请求携带有服务S2的标识与外部访问端口,服务S2的外部访问端口是服务S2在第一代理设备上的映射端口;将第一注册请求转发给第一代理设备,以借由第一代理设备转发给第一网络区中的注册中心,供注册中心维护服务S2的标识与外部访问端口。
在一可选实施例中,在接收服务提供者P2发送的第一注册请求之前,还包括:获取服务S2在服务提供者P2上的实际服务端口并发送给第一代理设备,以供第一代理设备在本地为服务S2分配映射端口作为服务S2的外部访问端口;接收第一代理设备返回的服务S2的外部访问端口并转发给服务提供者P2,以供服务提供者P2向注册中心注册。
在一可选实施例中,该方法还包括:接收第二网络区中的服务请求者A2发送的寻址请求,该寻址请求携带有服务S1的标识,服务S1由第一网络区中的服务提供者P1提供;将寻址请求转发给第一代理设备,以借由第一代理设备转发给第一网络区中的注册中心;接收第一代理设备转发的由注册中心返回的服务S1的外部访问端口,服务S1的外部访问端口是服务S1在服务提供者P1上的实际服务端口;将服务S1的外部访问端口转发给服务请求者A2,以供服务请求者A2生成第二服务请求;接收服务请求者A2发送的第二服务请求并借由第一代理设备转发给服务提供者P1,以供服务提供者P1为服务请求者A2提供服务S1。
图4d为本申请示例性实施例提供的再一种跨网络的服务访问方法的流程示意图。本实施例是从第二网络区中的服务请求者A2的角度进行的描述,如图4d所示,该方法包括:
41d、经第二网络区中的第二代理设备和第一网络区中的第一代理设备向第一网络区中的注册中心发送寻址请求,以请求服务S1的外部访问端口;服务S1由第一网络区中的服务提供者P1提供。
42d、接收注册中心经第一代理设备和第二代理设备转发的服务S1的外部访问端口。
43d、根据服务S1的标识与外部访问端口生成服务请求,并经第二代理设备和第一代理设备转发给服务提供者P1,以供服务提供者P1提供服务S1。
在本申请上述方法实施例中,第一网络区中部署第一代理设备,第二网络区中部署第二代理设备,一方面由第一代理设备为第二网络区中的服务进行端口映射和转换,打通第一网络区中的服务请求者与第二网络区中的服务提供者之间的服务访问通道,使得第一网络区中的服务请求者可以跨网络访问第二网络区中的服务。另一方面,基于第一代理设备与第二代理设备之间针对第一网络区中的服务建立通信连接,并由第二代理设备为第二网络区中的服务请求者分配本地代理端口,从而打通第二网络区中的服务请求者与第一网络区中的服务提供者之间的服务访问通道,使得第二网络区中的服务请求者可以跨网络访问第一网络区中的服务。由此可见,本申请实施例不仅可以跨网络进行服务访问,而且整个方案只需在不同网络区中部署代理设备即可,对两个网络区的网络环境没有特别要求,相对易于实施,实现成本较低。
需要说明的是,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如41a、42a等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图5a为本申请示例性实施例提供的一种计算机设备的结构示意图。本实施例的计算机设备可作为第一网络区中的服务请求者A1实现。可选地,若服务请求者A1是一应用程序、软件模块或需要一个服务的另一个服务,则该计算机设备可作为服务请求者A1所在的节点设备实现。如图5a所示,该计算机设备包括:存储器51a、处理器52a以及通信组件53a。
存储器51a,用于存储计算机程序。处理器52a,与存储器51a耦合,用于执行存储器51a中存储的计算机程序,以用于:
通过通信组件53a向第一网络区中的注册中心请求服务S2的外部访问端口,服务S2由第二网络区中的服务提供者P2提供;
通过通信组件53a接收注册中心返回的服务S2的外部访问端口,服务S2的外部访问端口是服务S2在第一网络区中的第一代理设备上的映射端口;
基于服务S2的外部访问端口通过通信组件53a向第一代理设备发送服务请求,以借由第一代理设备将服务请求中服务S2的外部访问端口替换为服务S2在服务提供者P2上的实际服务端口后经第二网络区中的第二代理设备转发给服务提供者P2,以供服务提供者P2提供服务S2。
进一步,如图5a所示,该计算机设备还包括:显示器54a、电源组件55a、音频组件56a等其它组件。图5a中仅示意性给出部分组件,并不意味着计算机设备只包括图5a所示组件。另外,图5a中虚线框所示组件为可选组件,而非必选组件,具体可视计算机设备的产品形态而定。本实施例的计算机设备可以实现为台式电脑、笔记本电脑、智能手机等终端设备,也可以是常规服务器、云服务器等服务器。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器实现上述实施例中可由服务请求者A1执行的方法逻辑。
图5b为本申请示例性实施例提供的另一种计算机设备的结构示意图。本实施例的计算机设备可作为第一网络区中的第一代理设备实现。如图5b所示,该计算机设备包括:存储器51b、处理器52b以及通信组件53b。
存储器51b,用于存储计算机程序。处理器52b,与存储器51b耦合,用于执行存储器51b中存储的计算机程序,以用于:
通过通信组件53b接收第一网络区中的服务请求者A1发送的第一服务请求,第一服务请求携带有服务S2的外部访问端口,服务S2由第二网络区中的服务提供者P2提供;
将第一服务请求中携带的服务S2的外部访问端口替换为服务S2在服务提供者P2上的实际服务端口,服务S2的外部访问端口是服务S2在第一代理设备上的映射端口;
通过通信组件53b将经过端口替换的第一服务请求发送给第二网络区中的第二代理设备,以借由第二代理设备转发给服务提供者P2,以供服务提供者P2为服务请求者A1提供服务S2。
在一可选实施例中,处理器52b还用于:在接收第一网络区中的服务请求者A1发送的第一服务请求之前,通过通信组件53b接收第二代理设备转发的来自服务提供者P2的第一注册请求,第一注册请求携带有服务S2的标识与外部访问端口;通过通信组件53b将第一注册请求转发给第一网络区中的注册中心,以供注册中心维护服务S2的标识与外部访问端口。
在一可选实施例中,处理器52b还用于:在接收第二代理设备转发的来自服务提供者P2的第一注册请求之前,通过通信组件53b接收第二代理设备发送的服务S2的实际服务端口;在本地为服务S2分配映射端口作为服务S2的外部访问端口,并建立服务S2的外部访问端口与实际服务端口之间的映射关系;以及通过通信组件53b将服务S2的外部访问端口发送给第二代理设备,以供第二代理设备转发给服务提供者P2。
在一可选实施例中,处理器52b还用于:通过通信组件53b接收第二代理设备转发的来自第二网络区中的服务请求者A2的寻址请求,寻址请求包括服务S1的标识,服务S1由第一网络区中的服务提供者P1提供;通过通信组件53b将寻址请求发送给第一网络区中的注册中心,以及接收注册中心返回的服务S1的外部访问端口并借由第二代理设备转发给服务请求者A2;通过通信组件53b接收第二代理设备转发的来自服务请求者A2的第二服务请求,第二服务请求携带有服务S1的标识与外部访问端口;通过通信组件53b将第二服务请求转发给服务提供者P1,以供服务提供者P1为服务请求者A2提供服务S1。
进一步,如图5b所示,该计算机设备还包括:显示器54b、电源组件55b、音频组件56b等其它组件。图5b中仅示意性给出部分组件,并不意味着计算机设备只包括图5b所示组件。另外,图5b中虚线框所示组件为可选组件,而非必选组件,具体可视计算机设备的产品形态而定。本实施例的计算机设备可以实现为台式电脑、笔记本电脑、智能手机等终端设备,也可以是常规服务器、云服务器等服务器。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器实现上述实施例中可由第一代理设备执行的方法逻辑。
图5c为本申请示例性实施例提供的又一种计算机设备的结构示意图。本实施例的计算机设备可作为第二网络区中的第二代理设备实现。如图5c所示,该计算机设备包括:存储器51c、处理器52c以及通信组件53c。
存储器51c,用于存储计算机程序。处理器52c,与存储器51c耦合,用于执行存储器51c中存储的计算机程序,以用于:
通过通信组件53c接收第一网络区中第一代理设备发送的经过端口替换的第一服务请求,第一服务请求携带有服务S2的标识,且第一服务请求携带的服务S2的外部访问端口被替换为服务S2在第二网络区中的服务提供者P2上的实际服务端口;
通过通信组件53c将经过端口替换的第一服务请求转发给服务提供者P2,以供服务提供者P2为第一网络区中的服务请求者A1提供服务S2;其中,第一服务请求是服务请求者A1发送给第一代理设备的。
在一可选实施例中,处理器52c还用于:在接收第一网络区中第一代理设备发送的经过端口替换的第一服务请求之前,通过通信组件53c接收服务提供者P2发送的第一注册请求,第一注册请求携带有服务S2的标识与外部访问端口,服务S2的外部访问端口是服务S2在第一代理设备上的映射端口;通过通信组件53c将第一注册请求转发给第一代理设备,以借由第一代理设备转发给第一网络区中的注册中心,供注册中心维护服务S2的标识与外部访问端口。
在一可选实施例中,处理器52c还用于:在接收服务提供者P2发送的第一注册请求之前,获取服务S2在服务提供者P2上的实际服务端口并发送给第一代理设备,以供第一代理设备在本地为服务S2分配映射端口作为服务S2的外部访问端口;通过通信组件53c接收第一代理设备返回的服务S2的外部访问端口并转发给服务提供者P2,以供服务提供者P2向注册中心注册。
在一可选实施例中,处理器52c还用于:通过通信组件53c接收第二网络区中的服务请求者A2发送的寻址请求,寻址请求携带有服务S1的标识,服务S1由第一网络区中的服务提供者P1提供;通过通信组件53c将寻址请求转发给第一代理设备,以借由第一代理设备转发给第一网络区中的注册中心;通过通信组件53c接收第一代理设备转发的由注册中心返回的服务S1的外部访问端口,服务S1的外部访问端口是服务S1在服务提供者P1上的实际服务端口;通过通信组件53c将服务S1的外部访问端口转发给服务请求者A2,以供服务请求者A2生成第二服务请求;接收服务请求者A2发送的第二服务请求并借由第一代理设备转发给服务提供者P1,以供服务提供者P1为服务请求者A2提供服务S1。
进一步,如图5c所示,该计算机设备还包括:显示器54c、电源组件55c、音频组件56c等其它组件。图5c中仅示意性给出部分组件,并不意味着计算机设备只包括图5c所示组件。另外,图5c中虚线框所示组件为可选组件,而非必选组件,具体可视计算机设备的产品形态而定。本实施例的计算机设备可以实现为台式电脑、笔记本电脑、智能手机等终端设备,也可以是常规服务器、云服务器等服务器。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器实现上述实施例中可由第二代理设备执行的方法逻辑。
图5d为本申请示例性实施例提供的再一种计算机设备的结构示意图。本实施例的计算机设备可作为第二网络区中的第二网络区中的服务请求者A2实现。可选地,若服务请求者A2是一应用程序、软件模块或需要一个服务的另一个服务,则该计算机设备可作为服务请求者A2所在的节点设备实现。如图5d所示,该计算机设备包括:存储器51d、处理器52d以及通信组件53d。
存储器51d,用于存储计算机程序。处理器52d,与存储器51d耦合,用于执行存储器51d中存储的计算机程序,以用于:
通过通信组件53d经第二网络区中的第二代理设备和第一网络区中的第一代理设备向第一网络区中的注册中心发送寻址请求,以请求服务S1的外部访问端口;服务S1由第一网络区中的服务提供者P1提供;
通过通信组件53d接收注册中心经第一代理设备和第二代理设备转发的服务S1的外部访问端口;
根据服务S1的标识与外部访问端口生成服务请求,并经第二代理设备和第一代理设备转发给服务提供者P1,以供服务提供者P1提供服务S1。
进一步,如图5d所示,该计算机设备还包括:显示器54d、电源组件55d、音频组件56d等其它组件。图5d中仅示意性给出部分组件,并不意味着计算机设备只包括图5d所示组件。另外,图5d中虚线框所示组件为可选组件,而非必选组件,具体可视计算机设备的产品形态而定。本实施例的计算机设备可以实现为台式电脑、笔记本电脑、智能手机等终端设备,也可以是常规服务器、云服务器等服务器。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器实现上述实施例中可由服务请求者A2执行的方法逻辑。
上述各实施例中的存储器除了存储计算机程序之外,还可被配置为存储其它各种数据以支持在其所属设备上的操作。这些数据的示例包括用于在存储器所属设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
上述各实施例中的存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
上述各实施例中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还可以包括近场通信(NFC)模块,射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术等。
上述各实施例中的显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
上述各实施例中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述各实施例中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (28)

1.一种跨网络的服务系统,其特征在于,包括:第一网络区和第二网络区;
所述第一网络区包括服务请求者A1、以及与所述服务请求者A1通信连接的第一代理设备和注册中心;所述第二网络区包括提供服务S2的服务提供者P2、以及与所述服务提供者P2通信连接的第二代理设备;
其中,所述注册中心维护有所述服务S2的标识与外部访问端口,所述服务S2的外部访问端口是所述服务S2在所述第一代理设备上的映射端口;所述第一代理设备与所述第二代理设备通信连接,并存储有所述服务S2的外部访问端口与所述服务S2在服务提供者P2上的实际服务端口之间的映射关系,用于辅助所述服务请求者A1跨网络访问所述服务提供者P2所提供的服务S2,其中,第一代理设备基于所述映射关系对服务请求者A1发起的服务请求进行端口替换,并基于与所述第二代理设备之间的通信连接,将服务请求者A1的服务请求转发给所述服务提供者P2,由服务提供者P2为服务请求者A1提供服务S2。
2.根据权利要求1所述的服务系统,其特征在于,
所述服务请求者A1,用于直接从所述注册中心获取所述服务S2的外部访问端口,基于所述服务S2的外部访问端口向所述第一代理设备发送第一服务请求;
所述第一代理设备,用于接收所述第一服务请求,将所述第一服务请求中携带的所述服务S2的外部访问端口替换为所述服务S2的实际服务端口后转发给所述第二代理设备;
所述第二代理设备,用于接收所述第一代理设备发送的经过端口替换的第一服务请求并转发给所述服务提供者P2,以供所述服务提供者P2为所述服务请求者A1提供服务S2。
3.根据权利要求2所述的服务系统,其特征在于,
所述服务提供者P2还用于:通过所述第二代理设备和所述第一代理设备向所述注册中心发送第一注册请求,所述第一注册请求携带有所述服务S2的标识与外部访问端口;
所述注册中心还用于:接收所述第一注册请求,并基于所述第一注册请求维护所述服务S2的标识与外部访问端口。
4.根据权利要求3所述的服务系统,其特征在于,
所述第二代理设备还用于:获取所述服务S2的实际服务端口并发送给所述第一代理设备,以及接收所述第一代理设备为所述服务S2分配并返回的所述服务S2的外部访问端口,并转发给所述服务提供者P2;
所述第一代理设备还用于:在本地为所述服务S2分配映射端口作为所述服务S2的外部访问端口,建立所述服务S2的外部访问端口与实际服务端口之间的映射关系,并将所述服务S2的外部访问端口发送给所述第二代理设备;
所述服务提供者P2还用于:接收所述第二代理设备转发的所述服务S2的外部访问端口并存储,以向所述注册中心进行注册。
5.根据权利要求1所述的服务系统,其特征在于,所述第一网络区还包括:提供服务S1的服务提供者P1;所述第二网络区还包括:服务请求者A2;
其中,所述注册中心还维护有所述服务S1的标识与外部访问端口,所述服务S1的外部访问端口是所述服务S1在所述服务提供者P1上的实际服务端口;
所述服务请求者A2,用于经所述第二代理设备和所述第一代理设备从所述注册中心获取所述服务S1的外部访问端口,并基于所述服务S1的外部访问端口经所述第二代理设备和所述第一代理设备向所述服务提供者P1发送第二服务请求,以向所述服务提供者P1请求所述服务S1。
6.根据权利要求5所述的服务系统,其特征在于,所述服务提供者P1还用于:直接向所述注册中心发送第二注册请求,所述第二注册请求携带有所述服务S1的标识与外部访问端口;
所述注册中心还用于:接收所述第二注册请求,并基于所述第二注册请求维护服务S1的标识与外部访问端口。
7.根据权利要求1-6任一项所述的服务系统,其特征在于,还包括:第三网络区;所述第三网络区包括服务请求者A3、以及与所述服务请求者A3通信连接的第三代理设备;
所述第一代理设备与所述第三代理设备通信连接,用于辅助所述服务请求者A3跨网络访问所述服务提供者P2提供的服务S2。
8.根据权利要求7所述的服务系统,其特征在于,
所述服务请求者A3,用于经所述第三代理设备和所述第一代理设备从所述注册中心获取所述服务S2的外部访问端口,并基于所述服务S2的外部访问端口经所述第三代理设备向所述第一代理设备发送第三服务请求;
所述第一代理设备还用于:接收所述第三服务请求,将所述第三服务请求中携带的所述服务S2的外部访问端口替换为所述服务S2的实际服务端口后转发给所述第二代理设备;
所述第二代理设备还用于:接收所述第一代理设备发送的端口替换后的第三服务请求,并转发给所述服务提供者P2,以供所述服务提供者P2为所述服务请求者A3提供服务S2。
9.一种跨网络的服务系统,其特征在于,包括:第一网络区和第二网络区;
所述第一网络区包括:提供服务S1的服务提供者P1以及与所述服务提供者P1通信连接的第一代理设备和注册中心;所述第二网络区包括:服务请求者A2,以及与所述服务请求者A2通信连接的第二代理设备;
其中,所述注册中心维护有所述服务S1的标识与外部访问端口,所述服务S1的外部访问端口是所述服务S1在所述服务提供者P1上的实际服务端口;所述第一代理设备与所述第二代理设备通信连接,用于辅助所述服务请求者A2跨网络访问所述服务提供者P1提供的服务S1,其中,所述服务请求者A2经所述第二代理设备和所述第一代理设备从注册中心获取服务S1的外部访问端口,基于服务S1的外部访问端口经所述第二代理设备和所述第一代理设备向所述服务提供者P1发送第二服务请求,以向所述服务提供者P1请求服务S1。
10.根据权利要求9所述的服务系统,其特征在于,
所述服务请求者A2,用于通过所述第二代理设备和所述第一代理设备从所述注册中心获取所述服务S1的外部访问端口,基于所述服务S1的外部访问端口经所述第二代理设备和所述第一代理设备向所述服务提供者P1发送服务请求;
所述第二代理设备用于:接收所述服务请求并转发给所述第一代理设备;
所述第一代理设备用于:接收所述服务请求并转发给所述服务提供者P1,以供所述服务提供者P1为所述服务请求者A2提供服务S1。
11.一种跨网络的服务访问方法,其特征在于,适用于权利要求1-8任一项所述跨网络的服务系统的第一网络区中的服务请求者A1,所述方法包括:
向所述第一网络区中的注册中心请求服务S2的外部访问端口,所述服务S2由第二网络区中的服务提供者P2提供;
接收所述注册中心返回的所述服务S2的外部访问端口,所述服务S2的外部访问端口是所述服务S2在所述第一网络区中的第一代理设备上的映射端口;
基于所述服务S2的外部访问端口向所述第一代理设备发送服务请求,以借由所述第一代理设备将所述服务请求中所述服务S2的外部访问端口替换为所述服务S2在所述服务提供者P2上的实际服务端口后经所述第二网络区中的第二代理设备转发给所述服务提供者P2,以供所述服务提供者P2提供所述服务S2。
12.一种跨网络的服务访问方法,其特征在于,适用于权利要求1-8任一项所述跨网络的服务系统的第一网络区中的第一代理设备,所述方法包括:
接收所述第一网络区中的服务请求者A1发送的第一服务请求,所述第一服务请求携带有服务S2的外部访问端口,所述服务S2由第二网络区中的服务提供者P2提供;
将所述第一服务请求中携带的所述服务S2的外部访问端口替换为所述服务S2在所述服务提供者P2上的实际服务端口,所述服务S2的外部访问端口是所述服务S2在所述第一代理设备上的映射端口;
将经过端口替换的第一服务请求发送给所述第二网络区中的第二代理设备,以借由所述第二代理设备转发给所述服务提供者P2,以供所述服务提供者P2为所述服务请求者A1提供服务S2。
13.根据权利要求12所述的方法,其特征在于,在接收所述第一网络区中的服务请求者A1发送的第一服务请求之前,还包括:
接收所述第二代理设备转发的来自所述服务提供者P2的第一注册请求,所述第一注册请求携带有所述服务S2的标识与外部访问端口;
将所述第一注册请求转发给所述第一网络区中的注册中心,以供所述注册中心维护所述服务S2的标识与外部访问端口。
14.根据权利要求13所述的方法,其特征在于,在接收所述第二代理设备转发的来自所述服务提供者P2的第一注册请求之前,还包括:
接收所述第二代理设备发送的所述服务S2的实际服务端口;
在本地为所述服务S2分配映射端口作为所述服务S2的外部访问端口,并建立所述服务S2的外部访问端口与实际服务端口之间的映射关系;以及
将所述服务S2的外部访问端口发送给所述第二代理设备,以供所述第二代理设备转发给所述服务提供者P2。
15.根据权利要求12-14任一项所述的方法,其特征在于,还包括:
接收所述第二代理设备转发的来自所述第二网络区中的服务请求者A2的寻址请求,所述寻址请求包括服务S1的标识,所述服务S1由所述第一网络区中的服务提供者P1提供;
将所述寻址请求发送给所述第一网络区中的注册中心,以及接收所述注册中心返回的所述服务S1的外部访问端口并借由所述第二代理设备转发给所述服务请求者A2;
接收所述第二代理设备转发的来自所述服务请求者A2的第二服务请求,所述第二服务请求携带有所述服务S1的标识与外部访问端口;
将所述第二服务请求转发给所述服务提供者P1,以供所述服务提供者P1为所述服务请求者A2提供服务S1。
16.一种跨网络的服务访问方法,其特征在于,适用于权利要求1-8任一项所述跨网络的服务系统的第二网络区中的第二代理设备,所述方法包括:
接收第一网络区中第一代理设备发送的经过端口替换的第一服务请求,所述第一服务请求携带有服务S2的标识,且所述第一服务请求携带的所述服务S2的外部访问端口被替换为所述服务S2在第二网络区中的服务提供者P2上的实际服务端口;
将所述经过端口替换的第一服务请求转发给所述服务提供者P2,以供所述服务提供者P2为第一网络区中的服务请求者A1提供服务S2;其中,所述第一服务请求是所述服务请求者A1发送给所述第一代理设备的。
17.根据权利要求16所述的方法,其特征在于,在接收第一网络区中第一代理设备发送的经过端口替换的第一服务请求之前,还包括:
接收所述服务提供者P2发送的第一注册请求,所述第一注册请求携带有所述服务S2的标识与外部访问端口,所述服务S2的外部访问端口是所述服务S2在所述第一代理设备上的映射端口;
将所述第一注册请求转发给所述第一代理设备,以借由所述第一代理设备转发给所述第一网络区中的注册中心,供所述注册中心维护所述服务S2的标识与外部访问端口。
18.根据权利要求17所述的方法,其特征在于,在接收所述服务提供者P2发送的第一注册请求之前,还包括:
获取所述服务S2在所述服务提供者P2上的实际服务端口并发送给所述第一代理设备,以供所述第一代理设备在本地为所述服务S2分配映射端口作为所述服务S2的外部访问端口;
接收所述第一代理设备返回的所述服务S2的外部访问端口并转发给所述服务提供者P2,以供服务提供者P2向所述注册中心注册。
19.根据权利要求16-18任一项所述的方法,其特征在于,还包括:
接收所述第二网络区中的服务请求者A2发送的寻址请求,所述寻址请求携带有服务S1的标识,所述服务S1由所述第一网络区中的服务提供者P1提供;
将所述寻址请求转发给所述第一代理设备,以借由所述第一代理设备转发给所述第一网络区中的注册中心;
接收所述第一代理设备转发的由所述注册中心返回的所述服务S1的外部访问端口,所述服务S1的外部访问端口是所述服务S1在所述服务提供者P1上的实际服务端口;
将所述服务S1的外部访问端口转发给所述服务请求者A2,以供所述服务请求者A2生成第二服务请求;
接收所述服务请求者A2发送的所述第二服务请求并借由所述第一代理设备转发给所述服务提供者P1,以供所述服务提供者P1为所述服务请求者A2提供服务S1。
20.一种跨网络的服务访问方法,其特征在于,适用于权利要求9或10所述跨网络的服务系统的第二网络区中的服务请求者A2,所述方法包括:
经所述第二网络区中的第二代理设备和第一网络区中的第一代理设备向所述第一网络区中的注册中心发送寻址请求,以请求服务S1的外部访问端口;所述服务S1由所述第一网络区中的服务提供者P1提供;
接收所述注册中心经所述第一代理设备和所述第二代理设备转发的所述服务S1的外部访问端口;
根据所述服务S1的标识与外部访问端口生成服务请求,并经所述第二代理设备和所述第一代理设备转发给所述服务提供者P1,以供所述服务提供者P1提供服务S1。
21.一种计算机设备,可作为第一网络区中的服务请求者A1实现,其特征在于,应用于权利要求1-8任一项所述跨网络的服务系统,所述计算机设备包括:存储器、处理器以及通信组件;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以用于:
通过所述通信组件向所述第一网络区中的注册中心请求服务S2的外部访问端口,所述服务S2由第二网络区中的服务提供者P2提供;
通过所述通信组件接收所述注册中心返回的所述服务S2的外部访问端口,所述服务S2的外部访问端口是所述服务S2在所述第一网络区中的第一代理设备上的映射端口;
基于所述服务S2的外部访问端口通过所述通信组件向所述第一代理设备发送服务请求,以借由所述第一代理设备将所述服务请求中所述服务S2的外部访问端口替换为所述服务S2在所述服务提供者P2上的实际服务端口后经所述第二网络区中的第二代理设备转发给所述服务提供者P2,以供所述服务提供者P2提供所述服务S2。
22.一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被处理器执行时,致使所述处理器实现权利要求11所述方法中的步骤。
23.一种计算机设备,可作为第一网络区中的第一代理设备实现,其特征在于,应用于权利要求1-8任一项所述跨网络的服务系统,所述计算机设备包括:存储器、处理器以及通信组件;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以用于:
通过所述通信组件接收所述第一网络区中的服务请求者A1发送的第一服务请求,所述第一服务请求携带有服务S2的外部访问端口,所述服务S2由第二网络区中的服务提供者P2提供;
将所述第一服务请求中携带的所述服务S2的外部访问端口替换为所述服务S2在所述服务提供者P2上的实际服务端口,所述服务S2的外部访问端口是所述服务S2在所述第一代理设备上的映射端口;
通过所述通信组件将经过端口替换的第一服务请求发送给所述第二网络区中的第二代理设备,以借由所述第二代理设备转发给所述服务提供者P2,以供所述服务提供者P2为所述服务请求者A1提供服务S2。
24.一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被处理器执行时,致使所述处理器实现权利要求12-15任一项所述方法中的步骤。
25.一种计算机设备,可作为第二网络区中的第二代理设备实现,其特征在于,应用于权利要求1-8任一项所述跨网络的服务系统,所述计算机设备包括:存储器、处理器以及通信组件;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以用于:
通过所述通信组件接收第一网络区中第一代理设备发送的经过端口替换的第一服务请求,所述第一服务请求携带有服务S2的标识,且所述第一服务请求携带的所述服务S2的外部访问端口被替换为所述服务S2在第二网络区中的服务提供者P2上的实际服务端口;
通过所述通信组件将所述经过端口替换的第一服务请求转发给所述服务提供者P2,以供所述服务提供者P2为第一网络区中的服务请求者A1提供服务S2;其中,所述第一服务请求是所述服务请求者A1发送给所述第一代理设备的。
26.一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被处理器执行时,致使所述处理器实现权利要求16-19任一项所述方法中的步骤。
27.一种计算机设备,可作为第二网络区中的服务请求者A2实现,其特征在于,应用于权利要求9或10所述跨网络的服务系统,所述计算机设备包括:存储器、处理器以及通信组件;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以用于:
通过所述通信组件经所述第二网络区中的第二代理设备和第一网络区中的第一代理设备向所述第一网络区中的注册中心发送寻址请求,以请求服务S1的外部访问端口;所述服务S1由所述第一网络区中的服务提供者P1提供;
通过所述通信组件接收所述注册中心经所述第一代理设备和所述第二代理设备转发的所述服务S1的外部访问端口;
根据所述服务S1的标识与外部访问端口生成服务请求,并经所述第二代理设备和所述第一代理设备转发给所述服务提供者P1,以供所述服务提供者P1提供服务S1。
28.一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被处理器执行时,致使所述处理器实现权利要求20所述方法中的步骤。
CN201910023380.3A 2019-01-10 2019-01-10 跨网络的服务访问方法、设备、系统及存储介质 Active CN111431956B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910023380.3A CN111431956B (zh) 2019-01-10 2019-01-10 跨网络的服务访问方法、设备、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910023380.3A CN111431956B (zh) 2019-01-10 2019-01-10 跨网络的服务访问方法、设备、系统及存储介质

Publications (2)

Publication Number Publication Date
CN111431956A CN111431956A (zh) 2020-07-17
CN111431956B true CN111431956B (zh) 2022-07-05

Family

ID=71545800

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910023380.3A Active CN111431956B (zh) 2019-01-10 2019-01-10 跨网络的服务访问方法、设备、系统及存储介质

Country Status (1)

Country Link
CN (1) CN111431956B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112804303B (zh) * 2020-12-31 2023-11-03 网银在线(北京)科技有限公司 服务提供方法、装置、系统、中转平台及存储介质
CN112738284B (zh) * 2021-04-01 2021-06-04 腾讯科技(深圳)有限公司 服务集成中的数据传输方法、装置、设备及存储介质
CN113301116B (zh) * 2021-04-15 2024-08-09 阿里巴巴创新公司 微服务应用跨网络通信方法、装置、系统及设备
CN114025010B (zh) * 2021-10-20 2024-04-16 北京奥星贝斯科技有限公司 建立连接的方法和网络设备
CN114125025B (zh) * 2021-11-23 2024-02-13 北京奥星贝斯科技有限公司 一种多目标网络下的数据传输方法及装置
CN114448686B (zh) * 2022-01-14 2024-01-05 武汉三江中电科技有限责任公司 一种基于微服务的跨网络通信装置与方法
CN114500653A (zh) * 2022-01-27 2022-05-13 阿里巴巴(中国)有限公司 数据访问系统、方法及计算设备
US11943115B2 (en) * 2022-04-05 2024-03-26 International Business Machines Corporation Locally debugging remote deployment of microservices
CN114826754B (zh) * 2022-05-06 2024-06-11 中国光大银行股份有限公司 一种不同网络间的通信方法及系统、存储介质、电子装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103152445A (zh) * 2013-04-03 2013-06-12 晶赞广告(上海)有限公司 一种互联网安全的异步跨域身份标识映射方法
CN106170008A (zh) * 2016-05-17 2016-11-30 北京畅游天下网络技术有限公司 一种跨网通讯方法、装置及负载均衡器
CN107483538A (zh) * 2017-07-06 2017-12-15 聚好看科技股份有限公司 一种在微服务集群的节点上处理访问请求包的方法和装置
CN107635022A (zh) * 2016-07-18 2018-01-26 华为软件技术有限公司 跨内外网服务访问方法和装置
CN108600326A (zh) * 2018-03-29 2018-09-28 阿里巴巴集团控股有限公司 通信方法、装置及设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117340B2 (en) * 2005-04-25 2012-02-14 Microsoft Corporation Trans-network roaming and resolution with web services for devices
CN101247408B (zh) * 2008-03-20 2010-11-03 中国科学院计算技术研究所 多层nat网络中面向应用的名字注册系统及方法
JP4802295B1 (ja) * 2010-08-31 2011-10-26 株式会社スプリングソフト ネットワークシステム及び仮想プライベート接続形成方法
US8452874B2 (en) * 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
CN102355292A (zh) * 2011-08-05 2012-02-15 中兴通讯股份有限公司 参数传输方法及装置、参数生成方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103152445A (zh) * 2013-04-03 2013-06-12 晶赞广告(上海)有限公司 一种互联网安全的异步跨域身份标识映射方法
CN106170008A (zh) * 2016-05-17 2016-11-30 北京畅游天下网络技术有限公司 一种跨网通讯方法、装置及负载均衡器
CN107635022A (zh) * 2016-07-18 2018-01-26 华为软件技术有限公司 跨内外网服务访问方法和装置
CN107483538A (zh) * 2017-07-06 2017-12-15 聚好看科技股份有限公司 一种在微服务集群的节点上处理访问请求包的方法和装置
CN108600326A (zh) * 2018-03-29 2018-09-28 阿里巴巴集团控股有限公司 通信方法、装置及设备

Also Published As

Publication number Publication date
CN111431956A (zh) 2020-07-17

Similar Documents

Publication Publication Date Title
CN111431956B (zh) 跨网络的服务访问方法、设备、系统及存储介质
US10764244B1 (en) Systems and methods providing a multi-cloud microservices gateway using a sidecar proxy
US10469314B2 (en) API gateway for network policy and configuration management with public cloud
CN113810230B (zh) 对容器集群中的容器进行网络配置的方法、装置及系统
CN105684376A (zh) 数据交换层上的位置服务
CN112910692A (zh) 基于微服务网关的服务网格流量控制方法、系统和介质
CN114726827B (zh) 多集群服务系统、服务访问与信息配置方法、设备及介质
CN113535691B (zh) 一种用户服务注册方法及装置
WO2023143574A1 (zh) 设备选择的方法以及装置
JP7325423B2 (ja) トラステッドサービスマネージメントのための方法および装置
CN112953992B (zh) 网络系统、通信与组网方法、设备及存储介质
JP7458377B2 (ja) フォグベースのデータ処理を有効にするためのデータサンプルテンプレート(Data Sample Template:DST)管理
US11134365B2 (en) Resource link management at service layer
CN113300866A (zh) 节点能力管控方法、设备、系统及存储介质
CN116405567A (zh) 用户资源管理方法、系统、设备及存储介质
US10143022B2 (en) Dynamic generation of geographically bound MANET IDs
CN113535690A (zh) 一种区块链服务网络的组建方法和装置
CN115174687B (zh) 服务调用方法、装置、电子设备及存储介质
WO2023143560A1 (zh) 设备选择的方法以及装置
CN116056240B (zh) 资源配置系统、方法及设备
CN113765904B (zh) 一种认证方法及装置
CN111131538B (zh) 访问控制方法及访问控制系统
CN115914389B (zh) 云服务控制系统、方法、装置、电子设备和存储介质
US11102329B2 (en) Miniaturized network nodes
CN118488101A (zh) 云网络系统、通信方法、设备、存储介质及程序产品

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