一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

云边协同分布式API网关系统及API调用方法与流程

2022-06-05 05:54:56 来源:中国专利 TAG:

云边协同分布式api网关系统及api调用方法
技术领域
1.本发明涉及通信领域,尤其涉及一种云边协同分布式api网关系统及api调用方法。


背景技术:

2.目前业界的api(application programming interface,应用程序接口)网关相当于反向代理,用于接受所有的api调用,整合处理这些调用所需的各种服务,并返回相应的结果。但现有的api网关只能完成单边场景下的代理,无法路由到指定局域网下的服务;也即处于局域网外的应用(application,app)无法访问局域网下服务。
3.因此,如何使得局域网外的应用访问局域网下服务,是目前亟需解决的技术问题。


技术实现要素:

4.本发明提供了一种云边协同分布式api网关系统及api调用方法,解决处于局域网外的应用无法访问局域网下服务的问题。
5.为了解决上述问题,本发明实施例提供了一种云边协同分布式api网关系统,包括:
6.云端api网关和连接于所述云端api网关之下的至少一个边缘api网关;
7.所述云端api网关和所述边缘api网关分别接入云端和局域网,所述云端api网关与所述边缘api网关通过通信隧道通信连接;
8.所述云端api网关用于接收云端应用发送的服务请求,所述服务请求包括边缘api网关的识别信息和所请求服务的识别信息;
9.所述云端api网关还用于根据所述边缘api网关的识别信息,通过所述通信隧道将所述服务请求路由至对应的所述边缘api网关;
10.所述边缘api网关用于根据所述所请求服务的识别信息路由到对应的边缘服务。
11.在一些实施例中,所述边缘api网关的识别信息包括所述云端api网关为所述边缘api网关分配的边缘网关域名;
12.所述边缘网关域名被携带在所述服务请求的host请求头中,请求行的url地址中,或自定义请求头中。
13.在一些实施例中,所述所请求服务的识别信息包括所请求服务的前缀,所述所请求服务的前缀被携带在所述服务请求的url地址中。
14.在一些实施例中,所述服务请求的请求头中包括ak/sk认证参数;
15.所述云端api网关接收所述云端应用发送的服务请求后,根据所述边缘api网关的识别信息将所述服务请求路由至对应的所述边缘api网关之前,还用于根据所述ak/sk认证参数进行ak/sk认证,认证成功后再将所述服务请求路由至对应的所述边缘api网关。
16.在一些实施例中,所述云端api网关根据所述ak/sk认证参数进行ak/sk认证,认证成功后,将所述服务请求路由至对应的所述边缘api网关之前,还包括:
17.根据预设的access key限流策略对所述服务请求进行限流处理。
18.在一些实施例中,所述边缘api网关根据所述所请求服务的识别信息路由到对应的边缘服务后,还用于接收所述边缘服务发送的服务响应结果,将所述服务响应结果通过所述通信隧道发给所述云端api网关。
19.在一些实施例中,所述云端api网关与所述边缘api网关通过tcp隧道通信连接。
20.在一些实施例中,所述边缘api网关与所述边缘服务通过http协议连接;
21.和/后,所述云端api网关与所述云端应用通过http协议连接。
22.基于同样的发明构思,本发明实施例还提供一种如上所述的云边协同分布式api网关系统的api调用方法,包括:
23.所述云端api网关接收云端应用发送的服务请求,所述服务请求包括边缘api网关的识别信息和所请求服务的识别信息;
24.所述云端api网关根据所述边缘api网关的识别信息,通过所述通信隧道将所述服务请求路由至对应的所述边缘api网关;
25.所述边缘api网关根据所述所请求服务的识别信息路由到对应的边缘服务。
26.在一些实施例中,所述api调用方法还包括:
27.所述边缘api网关接收所述边缘服务发送的服务响应结果;
28.所述边缘api网关将所述服务响应结果通过所述通信隧道发给所述云端api网关。
29.有益效果
30.本发明实施例提供的云边协同分布式api网关系统及api调用方法,其中云边协同分布式api网关系统的云端api网关接入云端,也即接入公网;云边协同分布式api网关系统还包括连接于云端api网关之下的至少一个边缘api网关,且边缘api网关接入局域网,云端api网关与边缘api网关通过通信隧道通信连接;云端应用(也即处于局域网之外的应用)在需要访问局域网下的边缘服务时,可向云端api网关发送服务请求,该服务请求包括边缘api网关的识别信息和所请求服务的识别信息;云端api网关还可根据该服务请求中的边缘api网关的识别信息,通过通信隧道将服务请求路由至对应的边缘api网关;边缘api网关则可根据该所请求服务的识别信息路由到对应的边缘服务,从而实现云端应用对局域网内的边缘服务的访问,可大大提升用户体验的满意度。
附图说明
31.图1为本发明实施例提供的云边协同分布式api网关系统的结构示意图;
32.图2为本发明实施例提供的ak/sk认证流程示意图;
33.图3为本发明实施例提供的云边协同分布式api网关系统的api调用方法流程示意图;
34.图4为本发明实施例提供的另一云边协同分布式api网关系统的api调用方法流程示意图;
35.图5为本发明实施例提供的网关设备的结构示意图。
具体实施方式
36.为了使本发明的目的、技术方案及优点更加清楚明白,下面通过具体实施方式结
合附图对本发明实施例作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
37.针对现有局域网外的应用不能访问局域网下边缘服务的问题。本实施例提供了一种云边协同分布式api网关系统,参见图1所示,其包括但不限于:
38.云端api网关1(本实施例也可称之为公网api网关)和连接于云端api网关1之下的至少一个边缘api网关2(本实施例也可称之为局域网网关或边端网关)。本实施例中对一个云端api网关1之下连接的边缘api网关2的具体个数不做限制,具体可根据具体应用场景需求灵活设置。
39.本实施例中,云端api网关1接入云端,也即接入公网,可供处于云端的各云端应用调用。
40.本实施例中的边缘api网关2接入对应的局域网,可供局域网内的应用直接调用,云端api网关1与边缘api网关2通过通信隧道通信连接;这样边缘api网关2也可通过通信隧道与云端api网关1进行数据交互,可供云端api网关1调用,也可根据需求向云端api网关1发送相应的数据。应当理解的是,本实施例中的云端api网关1与边缘api网关2之间的通信隧道可灵活选择,例如可选用但不限于tcp(transmission control protocol,传输控制协议)隧道。tcp隧道简单可靠且通用性好。tcp是一种面向连接的、可靠的、基于字节流的传输层通信协议,由ietf的rfc 793
1.定义。tcp旨在适应支持多网络应用的分层协议层次结构,连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠tcp提供可靠的通信服务。tcp可以从较低级别的协议获得简单的数据报服务。当然也可采用其他类型的通信隧道替换tcp隧道,本实施例对其不做限制。
41.云端应用(也即处于局域网之外的应用)在需要访问局域网下的边缘服务时,可向云端api网关1发送服务请求,发送的该服务请求包括边缘api网关2的识别信息和所请求服务的识别信息。本实施例的一些示例中,云端api网关1与云端应用可通过但不限于http协议连接,采用http协议通用性好,且不需要做改动,易于实现成本低。
42.云端api网关1用于接收云端应用发送的服务请求,根据边缘api网关2的识别信息即可确定对应的边缘api网关2,进而通过与边缘api网关2之间建立的通信隧道将服务请求路由至对应的边缘api网关2;
43.边缘api网关2则用于根据该服务请求中包括的所请求服务的识别信息路由到对应的边缘服务,从而实现云端应用对局域网内的边缘服务的访问,可大大提升用户体验的满意度。本实施例的一些示例中,边缘api网关2与边缘服务可通过但不限于http协议连接;采用http协议通用性好,且不需要做改动,易于实现成本低。例如参见图1所示,边缘api网关2与边缘服务a和边缘服务b可都采用但不限于http协议连接。
44.本实施例中边缘api网关2的识别信息可灵活设置,只要能使得云端api网关1根据该边缘api网关2的识别信息确定出对应的边缘api网关即可。例如,在一些应用示例中,云端api网关1可为连接于云端api网关1之下的各边缘api网关2分配的边缘网关域名,不同的边缘api网关2分配的边缘网关域名各不相同,这样可以将边缘网关域名作为各边缘api网关2的识别信息。当然,应当理解的是,在本实施例中,边缘api网关2的识别信息并不限于边缘网关域名,也可采用其他的能唯一识别边缘api网关2的标识信息作为其识别信息,例如可以采用但不限于各边缘api网关2的id或名称等。但本实施例中采用边缘网关域名作为各
边缘api网关2的识别信息,既能起到边缘api网关2的确定作用,又能供后续路由到对应的边缘api网关2。为了便于理解,本实施例下面以边缘网关域名作为各边缘api网关2的识别信息为示例进行说明。在本实施例中,云端应用发送服务请求所携带边缘网关域名的几种示例方式进行说明。
45.示例一:云端应用可以在请求行的url(uniform resource locator,统一资源定位器)地址中携带边缘网关域名。
46.例如,云端应用可以在发送http(hyper text transfer protocol,超文本传输协议)包的时候,在请求行的url地址部分填写边缘网关域名。其中在www上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫url地址,它是www的统一资源定位标志,也可指网络地址。url可包括三部分:资源类型、存放资源的主机域名、资源文件名。http是一个简单的请求-响应协议,它通常运行在tcp之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ascii形式给出;而消息内容则具有一个类似mime的格式。这个简单模型是早期web成功的有功之臣,因为它使开发和部署非常地直截了当。
47.一个http数据包请求包括4个部分:请求行、请求头标、空行、请求数据。
48.请求行:请求行由三个标记组成:请求方法、请求url和http版本,它们使用空格分隔。如:get/www.xxxx.com/index.html http/1.1
49.请求头行:由关键字/值对组成,每一行头,关键字和值用冒号(:)分隔。
50.空行:最后一个请求头标之后是一个空行,发送回车符和退行,表示服务器以下不再有头标。
51.请求数据:使用post传送数据,最常用的就是content-type和content-length头标。
52.示例二:云端应用可以在服务请求的host请求头中携带边缘网关域名。
53.其中host是http1.1协议中新增的一个请求头,可用来但不限于实现虚拟主机技术。
54.示例三:云端应用可以在服务请求的自定义请求头中携带边缘网关域名。
55.云端应用发送服务请求时具体采用哪种方式携带边缘网关域名可根据具体应用需求灵活设置,并不限于上述示例的三种方式。且采用示例一和示例二时不需要对发送的数据包做过大的改动,且通用性好,实现成本低。
56.同样,本实施例中所请求服务的识别信息也可灵活设置,只要能使得边缘api网关2根据该所请求服务的识别信息确定出对应的边缘服务即可。例如,在一些应用示例中,所请求服务的识别信息包括所请求服务的前缀,也即边缘api网关2下的不同边缘服务的前缀各不相同。通过所请求服务的前缀既能唯一确定出云端应用所请求的边缘服务,又能供后续直接路由到对应的边缘服务。在本实施例中,请求服务所包括的所请求服务的前缀可被携带在服务请求的url地址中。也即云端应用可以在服务请求的url地址中携带请求服务的前缀。
57.在本实施例中,为了提升安全性,还可对云端应用发送的服务请求进行安全认证。且采用的安全认证方式可灵活设置。例如本实施例中可采用进行ak/sk认证。云端应用可以在服务请求的请求头中包括ak(access key id)/sk(/secret access key)认证参数。一种
进行ak/sk认证的过程参见图2所示,包括:
58.s201:云端api网关1接收云端应用发送的服务请求后,根据边缘api网关2的识别信息将服务请求路由至对应的边缘api网关2之前,从服务请求的请求头中提取ak/sk认证参数。
59.云主机通过使用access key id/secret access key加密的方法来验证某个请求的发送者身份。access key id(ak)用于标示用户,secret access key(sk)是用户用于加密认证字符串和云厂商用来验证认证字符串的密钥,其中sk必须保密。ak/sk原理可使用但不限于对称加解密。
60.s202:云端api网关1根据提取的ak/sk认证参数进行ak/sk认证,认证成功后再将服务请求路由至对应的边缘api网关2。
61.在本实施例中,云端api网关1根据提取的ak/sk认证参数进行ak/sk认证失败时,可以丢弃该服务请求,和/或向该服务请求的云端应用反馈身份认证失败或非法访问等通知等。
62.在本实施例中,为了保证资源利用的合理性和负载均衡。还可对云端应用发送的服务请求采用相应的限流策略进行限流处理。例如在一些示例中,云端api网关1可根据ak/sk认证参数进行ak/sk认证,认证成功后,将服务请求路由至对应的边缘api网关2之前,还可包括:根据预设的access key限流策略对服务请求进行限流处理。
63.在本应用示例中,可采用通过access key调用api的方式,这种调用方式难免会碰到一个问题,那就是,如果用户不停地高频率调用api,服务器是否会过载,如果过载了,是否会影响内部服务。针对该问题,本实施例给access key设置调用配额(limit,duration),这个配额指的是在某个时间段内(duration),调用的次数不能超过limit指定的数额。如果超过了,则拒绝服务。这种可以通过缓存来实现,利用缓存的expire时间,并且维持一个计数器,每当调用一次,则计数器减一。从而实现资源的合理调用,维持负载均衡。当然,应当理解的是,本实施例中并不限于access key限流策略,还可采用其他限流策略进行等同替换,在此不在一一赘述。
64.在一些实施例中,边缘api网关2根据所请求服务的识别信息路由到对应的边缘服务后,还可用于接收边缘服务发送的服务响应结果,将服务响应结果通过通信隧道发给云端api网关1;云端api网关1则可将服务响应结果反馈给发送服务请求的云端应用。
65.本实施例还提供一种如上的云边协同分布式api网关系统的api调用方法,参见图3所示,其包括但不限于:
66.s301:云端api网关1接收云端应用发送的服务请求,服务请求包括边缘api网关2的识别信息和所请求服务的识别信息。
67.s302:云端api网关根据边缘api网关2的识别信息,通过通信隧道将服务请求路由至对应的边缘api网关2。
68.s303:边缘api网关2根据所请求服务的识别信息路由到对应的边缘服务。
69.在一些应用场景中,api调用方法还包括:
70.s304:边缘api网关2接收边缘服务发送的服务响应结果。
71.s305:边缘api网关2将服务响应结果通过通信隧道发给云端api网关1,通过云端api网关1发送给对应的云端应用。
72.为了便于理解,本实施例以边缘api网关的识别信息包括云端api网关1为边缘api网关2分配的边缘网关域名,以及所请求服务的识别信息包括所请求服务的前缀,结合认证及限流处理的应用示例进行说明,参见图4所示,其包括但不限于:
73.s401:云端应用向云端api网关1发送的服务请求,服务请求包括边缘api网关2的边缘网关域名和所请求服务的所请求服务的前缀以及ak/sk认证参数。
74.s402:云端api网关1接收到服务请求后,提取ak/sk认证参数进行ak/sk认证。
75.s403:云端api网关1根据预设的access key限流策略对该服务请求进行限流处理。
76.应当理解的是,s403和s402的执行顺序可以调换,或并行执行。
77.s404:云端api网关根据边缘api网关2的边缘网关域名,通过tcp隧道将服务请求路由至对应的边缘api网关2。
78.s405:边缘api网关2根据所请求服务的前缀路由到对应的边缘服务。
79.s406:边缘api网关2接收边缘服务发送的服务响应结果。
80.s407:边缘api网关2将服务响应结果通过tcp隧道发给云端api网关1,通过云端api网关1发送给对应的云端应用。
81.本实施例还提供了一种网关设备(可以是云端api网关,也可以是边缘api网关),参见图5所示,其包括处理器51、存储器52及通信总线53,其中:
82.通信总线53用于实现处理器51和存储器52之间的连接通信;
83.处理器51用于执行存储器52中存储的一个或者多个计算机程序,以实现上述实施例中的api调用方法中的至少一个步骤。
84.本实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、计算机程序模块或其他数据)的任何方法或技术中实施的易失性或非易失性、可移除或不可移除的介质。计算机可读存储介质包括但不限于ram(random access memory,随机存取存储器),rom(read-only memory,只读存储器),eeprom(electrically erasable programmable read only memory,带电可擦可编程只读存储器)、闪存或其他存储器技术、cd-rom(compact disc read-only memory,光盘只读存储器),数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。
85.本实施例中的计算机可读存储介质可用于存储一个或者多个计算机程序,其存储的一个或者多个计算机程序可被处理器执行,以实现上述实施例中api调用方法的至少一个步骤。
86.本实施例还提供了一种计算机程序(或称计算机软件),该计算机程序可以分布在计算机可读介质上,由可计算装置来执行,以实现上述实施例中的api调用方法的至少一个步骤;并且在某些情况下,可以采用不同于上述实施例所描述的顺序执行所示出或描述的至少一个步骤。
87.本实施例还提供了一种计算机程序产品,包括计算机可读装置,该计算机可读装置上存储有如上所示的计算机程序。本实施例中该计算机可读装置可包括如上所示的计算机可读存储介质。
88.可见,本领域的技术人员应该明白,上文中所公开方法中的全部或某些步骤、系
统、装置中的功能模块/单元可以被实施为软件(可以用计算装置可执行的计算机程序代码来实现)、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。
89.此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、计算机程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。所以,本发明不限制于任何特定的硬件和软件结合。
90.以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献