提供应用编程接口代理服务的端点管理系统的制作方法

文档序号:13823388阅读:230来源:国知局
提供应用编程接口代理服务的端点管理系统的制作方法

其他申请的交叉引用

本申请的申请人先前在2014年9月30日提交以下美国专利申请:

另外,本申请的申请人同时在2015年4月8日提交以下美国专利申请:

以上所提到的申请的公开内容的全文以引用的方式并入于此。



背景技术:

一般来说,计算装置利用通信网络、或是一系列的通信网络交换数据。公司和组织操作计算机网络,计算机网络将多个计算装置互连以支持操作或将服务提供到第三方。计算系统可以位于单个地理位置或位于多个不同地理位置(例如,经由专用通信网络或公共通信网络互连)中。具体来说,数据中心、或是数据处理中心(在本文中一般称为“数据中心”)可以包括多个互连计算系统以将计算资源提供给数据中心的用户。数据中心可以是代表组织操作的专用数据中心或代表公众或为了公众的利益操作的公共数据中心。

为了促成数据中心资源的增加的利用率,虚拟化技术可以允许单个物理计算装置托管作为单独计算装置向数据中心的用户呈现并且进行操作的虚拟机的一个或多个实例。利用虚拟化,单个物理计算装置可以动态方式创建、维护、删除或以其他方式管理虚拟机。继而,用户可从数据中心(包括单个计算装置或联网计算装置的组合)请求计算机资源,并且被提供有不同数量的虚拟机资源。

附图说明

当结合附图进行时,如通过参考以下详细描述同样更好地理解的,将更易地了解本公开的前述方面以及附带优点中的许多优点,其中:

图1是根据示例方面的描绘用于使用端点管理系统来提供应用编程接口代理服务的说明性的环境的方框图。

图2描绘了根据示例方面的计算装置的一般架构,计算装置可实现以实施端点管理系统的各种子系统和单元的各种特征。

图3描绘了根据示例方面的将各种端点管理配置选项提供给用户的示例用户界面。

图4a和图4b是根据示例方面的示出如通过端点管理系统实现的应用编程接口代理例程的流程图。

图5是示出包括客户端计算装置和服务提供商计算机网络的联网计算环境的实施方案的方框图。

具体实施方式

一般来说,本公开的方面描述一种端点管理系统,用户(诸如应用开发者)可以通过所述端点管理系统来管理和启用可用于致使在远程或第三方系统上执行程序代码的应用编程接口(“api”)的暴露。具体来说,公开促成对用户请求的处理以在远程或第三方系统上进行某些任务的系统和方法。所述端点管理系统允许应用开发者来定义和指定映射到与所述远程或第三方系统关联的第二“后端”api的第一代理api。远程或第三方系统可以包括例如在本地网络上的系统、在开放或公共可访问的网络上的系统、托管一个或多个服务(诸如虚拟计算环境)的系统等等。由端点管理系统从用户计算系统接收对执行代理api的请求,从而基于各种配置选项的由用户提供的规范确定api映射。端点管理系统继而生成并且发送一个或多个后端api请求以由相关联的远程或后端系统执行程序代码。从远程或后端系统的响应是由端点管理系统接收,所述端点管理系统可以随后分析、解析和/或变换与所述响应关联的结果并且生成用于回应于用户计算系统的输出结果。

因此,在本文所述的实施方案中,开发者可以描述暴露api(例如,代理api)并且定义逻辑和一个或多个端点(例如,后端api)。例如,基于云的“代理”api可以由客户端装置调用到端点管理系统,其中端点管理系统知道要为代理api选择哪些端点。端点可以是异构的(例如,web服务、物联网(“iot”))装置、其他基于云的服务提供商功能、数据中心功能等等),并且还可包括其他api。例如,可将映射到旧的基于soap的api的表示状态转移(“rest”)api暴露。在一些实施方案中,代理机群可以被实现为端点管理系统的部分以提高性能、效率和可扩展性。本文中描述的附加特征包括:基于单个代理api调用来链锁或链接多个功能或后端api调用(依赖或独立的)的能力;端点管理系统的用户的附加安全机制,用于管理后端api和服务的暴露;对从后端系统返回的结果的动态且智能的高速缓存,用于提高效率并且解放远程和后端系统以免进行可产生可由多个代理api使用的结果的重复任务;性能管理,用于保护远程和/或后端系统以免因高容量的api请求而过载,包括对呼入请求进行节流(例如,在给定时段内将对请求的服务限制到某个数量)的用户可配置的设置和对所接收的请求的计量。

端点管理系统可以各种协议格式实施代理接口配置,包括但不限于超文本传输协议(http)、http安全(“https”)、http2、restapi、远程过程调用(“rpc”)、二进制api、websockets、消息队列遥测传输(“mqtt”)、约束应用协议(“coap”)、java消息服务(“jms”)、高级消息队列协议(“amqp”)、简单(或流式)文本定向消息协议(“stomp”)、电子数据交换(“edi”)、简单邮件传输协议(“smtp”)、互联网消息访问协议(imap)、邮局协议(“pop”)、文件传输协议(“ftp”)、开放数据库连接性(“odbc”)、thrift、协议缓冲区、avro、cap’nproto、flatbuffers和其他类型协议。这些协议中的一些协议描述网络和数据格式,且一些协议可充当其他格式的容器。以上所列出的协议不包含的其他数据格式可以包括例如:javascript对象表示法(“json”)、可扩展的标记语言(“xml”)、简单对象访问协议(“soap”)、超文本标记语言(“html”)、逗号分隔的值(“csv”)、标签分隔的值(“tsv”)、ini文件、yamlain't标记语言(“yaml”)、二进制json(“bson”)、messagepack、sereal和bencode。这些协议和数据格式中任一者可以任何组合用于api代理映射的任一端点。例如,restapi可映射到二进制api;httpapi可映射到远程过程调用;第一二进制api可映射到第二二进制api;并且依此类推。

现将参考附图描述本公开的特定实施方案和示例应用。这些实施方案和示例应用旨在用于本公开的说明而非限制。

参考图1,将描述示出计算环境100的实施方案的方框图。图1中示出的示例包括计算环境100,其中用户计算装置102的用户可以经由网络104a和/或网络104b访问由端点管理系统106、端点代理系统132和后端系统114提供的各种服务。

在图1的示例中,示出了各种示例用户计算装置102,包括桌上型计算机、膝上型计算机、移动电话和平板电脑。一般来说,用户计算装置102可以是各种各样的计算装置,包括个人计算装置、膝上计算装置、手持计算装置、终端计算装置、移动装置(例如,移动电话、智能电话、平板计算装置、电子书阅读器等等)、无线装置、各种电子装置以及用具等等。另外,用户计算装置102可以包括在相同或不同的数据中心上运行的web服务,其中例如不同web服务可以编程方式彼此通信,以便执行本文中描述的一种或多种技术。另外,用户计算装置102可以包括物联网(iot)装置,诸如互联网用具和被连接的装置。计算环境100的其他部件(例如,端点管理系统106)可向用户计算装置102提供一个或多个用户界面、命令行界面(cli)、应用编程接口(api)和/或其他编程接口用于利用由相应部件提供的一个或多个服务。此类服务可以包括生成并且上传用户代码、调用用户代码(例如,提交对执行用户代码的请求(例如,经由端点代理系统132))、配置一个或多个api(例如,经由端点管理系统106)、高速缓存用户代码和api的执行结果和/或监视api调用使用的安全、性能、计量和其他因素。虽然一个或多个实施方案可以在本文中被描述为使用用户界面,但是应当了解,此类实施方案可另外地或替代地使用任何cli、api或其他编程接口。

用户计算装置102通过网络104a访问端点代理系统132和/或端点管理系统106。端点代理系统132可以包括一个或多个服务器或系统(例如,代理机群),一个或多个服务器或系统可以被配置为管理端点或后端api的执行(例如,如在后端系统114上执行的)。端点代理系统132可以通过网络104b访问计算环境100的其他部件(诸如后端系统114和端点结果高速缓存130)。网络104a和/或104b可以是任何有线网络、无线网络或其组合。另外,网络104a和/或104b可以是个人区域网络、局域网、广域网、空中广播网络(例如,用于无线电或电视)、电缆网络、卫星网络、蜂窝电话网络或其组合。例如,网络104a可以是可能由不同各方(诸如互联网)操作的被链接的网络的公开可访问的网络。在一些实施方案中,网络104b可以是专用或半专用网络(诸如公司或大学内联网)或公共可访问的网络(诸如互联网)。在一个实施方案中,网络104b可共同位于或位于紧邻端点代理系统132的位置处,使得在端点代理系统132与后端系统114之间通过网络104b而进行的通信可受益于被提高的性能(例如,更快速的和/或更有效的通信)。网络104a和/或104b可以包括一个或多个无线网络,诸如全球移动通信系统(gsm)网络、码分多址(cdma)网络、长期演进(lte)网络或任何其他类型无线网络。网络104a和/或104b可以使用协议和部件来经由互联网或任一其他前述类型网络进行通信。例如,由网络104a和/或104b使用的协议可以包括超文本传输协议(http)、http安全(https)、消息队列遥测传输(mqtt)、约束应用协议(coap)等等。用于经由互联网或任一其他前述类型通信网络进行通信的协议和部件是本领域的技术人员熟知的,且因此在此不再赘述。

计算环境100在图1中被描绘为在分布式计算环境中操作,分布式计算环境包括使用一个或多个计算机网络来互连的若干计算机系统。端点管理系统106和/或端点代理系统132也可在具有比图1中示出的数量更少或更多的装置的计算环境内操作。因此,对图1中的计算环境100的描绘应当被认为是说明性的,而非本公开的限制。例如,计算环境100或其各种组成部分可实现各种web服务部件、托管或“云”计算环境和/或对等网络配置以实现本文中描述的进程的至少一部分。

另外,计算环境100的各种部件可以硬件和/或软件实现,并且可以例如包括实现在物理计算机硬件上的一个或多个物理或虚拟服务器,物理计算机硬件被配置为进行计算机可执行指令以便执行将在本文中描述的各种特征。一个或多个服务器可以在地理上分散或在地理上共同位于例如一个或多个数据中心中。

如图1所示,端点代理系统132包括响应处理程序108、高速缓存管理器120和性能单元124。响应处理程序108可以被配置为例如从调用系统(包括例如用户装置102)接收请求以执行对应于在一个或多个后端系统114上被调用或调用的一个或多个api的代理api。响应处理程序108可与端点/api映射定义数据来源128通信并且对其进行访问,以便查找用于所接收的请求的api映射定义。响应处理程序108可以至少部分基于api映射定义确定要用于服务请求的一个后端api(或多个后端api)和后端系统。响应处理程序108还可被配置为解析和/或分析请求和与请求一起提供的任何相关联的输入参数,并且基于api映射定义确定任何适当数据变换和相关联的输入参数到后端api的输入参数的映射。在一些实施方案中,响应处理程序108可以利用高速缓存管理器120进行检查,以便确定代理api请求的高速缓存结果是否可用,如以下将更详细地描述。然后,响应处理程序108可以将所变换的api请求发送到适当后端系统114,并且继而作为响应而接收回结果。响应处理程序108可以继而解析结果和/或将结果变换为用于响应于原始调用系统的输出结果,并且提供输出结果。结果可以部分基于api映射定义进行解析和/或变换。结果也可被提供给高速缓存管理器120以便进行进一步的处理,如本文中所述。

高速缓存管理器120可以被配置为以多种方式管理与后端api请求关联地从后端系统114接收的结果。高速缓存管理器120可与端点结果高速缓存130通信,其中与后端api请求关联地从后端系统114接收的结果可以被存储和访问以供用于未来api代理请求。高速缓存结果可以包括来自后端系统114的原始后端api结果、以及在原始后端api结果由响应处理程序108处理后的变换或输出结果两者。

可以至少部分基于api映射定义进行对结果的高速缓存。例如,api映射定义可以包括用户提供的配置设置,用以指定是否应当高速缓存来自后端api的结果,并且如果如此,那么应当高速缓存多久。因此,开发者可以指示来自特定后端api的结果可被高速缓存一段时间(例如,秒、分钟、小时、天、周、月、年或任何其他时间量)。如以上参考响应处理程序108而描述,当代理api请求被接收和处理时,高速缓存管理器120可进行高速缓存检查以确定高速缓存结果是否可用、有效和/或以其他方式未到期(例如,经过高速缓存持续时间)。如果高速缓存结果可用,那么高速缓存管理器120可以从端点结果高速缓存130访问和检索高速缓存结果并且将它们提供给响应处理程序108。

如上提及,高速缓存管理器120可以多种方式高速缓存来自后端api调用的结果。例如,在某些实施方案中,如果第一api调用多次是由端点代理系统132接收并且第一后端api的高速缓存结果可用,那么可以提供高速缓存结果副本而不需要利用高速缓存持续时段来再次或多次将相关联的第一后端api请求发送到相应后端系统114。在另一个实施方案中,可由端点代理系统132接收第二代理api调用,第二代理api调用映射到与第一代理api调用相同的后端api,在这种情况下,响应处理程序108和/或高速缓存管理器120就可确定可以提供相同高速缓存结果而不需要将相关联的后端api请求发送到相应后端系统114。在又一示例中,第二代理api调用可映射到第二后端api,第二后端api仍然返回与第一后端api相同的结果或相同结果的部分。在这种情景下,可以提供相同高速缓存结果(或其相关部分)而不需要将相关联的第二后端api请求发送到相应后端系统114。

作为上述灵活且动态的高速缓存特征的说明性的示例,考虑的是:提供包括记录集合(包括相应个体的姓名、电话号码和邮寄地址)的结果的第一后端api;以及提供包括特定个体的邮寄地址的结果的第二后端api。如果第一代理api调用被接收和处理,以便进行第一后端api,那么所述记录集合可由高速缓存管理器120高速缓存。之后,如果再次接收到了第一代理api调用,那么可以访问高速缓存记录集合,而非将请求发出到后端系统114。另外,如果接收到了对应于请求特定个体的邮寄地址的第二后端api的第二代理api调用,那么也可访问高速缓存记录集合,以便将输出结果提供到调用系统,而非将请求发出到后端系统114以执行第二代理api调用。因此,可能优先高速缓存后端api调用的结果而不需要调用那个后端api,例如,在高速缓存结果是与另一后端api调用重叠累积的。

性能单元124可以被配置为管理性能相关方面,其涉及了发送到后端系统114的后端api请求。例如,api映射定义可以包括用户提供的配置设置,用以指定可调用后端api的频率的限值或频率。这个特征在后端系统114可以是旧的系统或过时系统、性能较差或效率较低、或因服务后端api请求而负荷过度时,可以是有益的。因此,例如,用户可以指定某个后端api可仅在某个时间长度内调用某个次数(例如,每分钟100次、每小时10次或任何其他频率);或者可仅在特定时段内调用某个次数(例如,以对在数个高峰服务小时期间接收的请求进行节流)。

可与性能单元124相关联地提供和利用的另一性能配置选项是指定是否要求或将使用计量标识符跟踪或监视调用系统对后端api的使用的设置。此类计量信息可有益于使得能够看到调用的是哪个代理api和/或后端api、调用频率如何和通过哪个调用系统调用。

如图1所示,端点管理系统106包括管理器用户控制台132、安全管理器122和软件开发者工具包(“sdk”)生成服务126。管理器用户控制台132可以提供一个或多个用户界面,用户(诸如系统管理员和/或开发者)可通过其管理例如api代理设置,包括api映射定义、高速缓存选项、性能选项和安全选项。可由管理器用户控制台132生成和提供的一个示例端点管理用户界面是在本文中参考图3示出和描述的示例用户界面300。用户可以例如使用用户计算装置102通过网络104a(例如,当网络104a被配置为公共网络时)或通过网络104b(例如,当网络104b被配置为专用网络时)访问管理器用户控制台132和相关用户界面。例如,管理器用户控制台132可以提供web、移动、独立或其他应用,这些应用可以在用户计算装置102上被访问或安装并且被配置为与端点管理系统106通信。用户经由端点管理系统106创建和修改的api映射定义可以存储在端点/api映射定义数据来源128中。端点管理系统106可以被配置为将各种api映射定义发布、推送或以其他方式传输到端点代理系统132,端点代理系统可将api定义用于本文中描述的各种响应处理和相关进程。

安全管理器122可以被配置为管理后端系统114和后端api的安全和对它们的访问。例如,api映射定义可包括用户提供的配置设置,用以指定是否可仅允许某些用户或组调用后端api。代理api请求可以包括与请求用户或组关联的指示器(或安全令牌),并且基于api映射定义,安全管理器122可以确定应当允许还是拒绝请求。如果调用系统(例如,用户计算装置102)提供映射到被允许调用后端api的用户或组的指示器或安全令牌,那么安全管理器122可向响应处理程序108指示可以继续进行请求处理。如果调用系统无法提供指示器或安全令牌,或者提供并非映射到被允许调用后端api的用户或组的指示器或安全令牌,那么安全管理器122可向响应处理程序108指示停止请求处理(在这种情况下,返回指示器可以可选地由端点代理系统132提供以指示因缺乏授权而拒绝请求)。以此方式,例如,开发者可保护或限制对某些后端api的访问。

端点管理系统106还可包括sdk生成服务126以使得用户能够基于一个或多个api映射定义而生成sdk。对于端点管理系统106的已经投入大量的时间和精力将一系列的旧的后端api映射到新的代理api集合的用户来说,这个特征可能是特别有益的。sdk可以基于api映射定义生成,并且提供给其他用户(诸如希望使用更现代的api协议来对接或使用后端系统114的系统开发者)以促成经由这系列的代理api利用后端系统114的其他应用和服务的开发。

可用于实现端点管理系统106和/或端点代理系统132的各种子系统和单元的示例配置在下文中参考图2更详细地描述。

如图1所示,端点管理系统106与端点代理机群123a…n通信。例如,第一代理服务器可以被配置为管理第一代理api的执行;第二代理服务器可以被配置为管理第二代理api的执行;并且第n代理服务器可以被配置为管理第n代理api的执行。或者,例如部分基于后端api的类似性、相关联的后端api的从后端系统114获得的累积结果或重叠结果等等,一个代理服务器可以被配置为管理多个代理api(它们可以是相关的,或分组在一起)的执行。代理服务器机群中的每个代理服务器可以针对特定任务或后端系统的性能或效率进行配置。例如,代理服务器可以被配置为用于代理api的有效进行和执行,这涉及了数据库查询,而另一个代理服务器可以被配置为用于代理api的有效进行和执行,这涉及了后端api结果到输出结果的显著数据变换。

在图1的示例中,端点代理系统132被示出为连接到网络104a和网络104b。在一些实施方案中,端点代理系统132内的任何部件可经由网络104a和/或网络104b与计算环境100的其他部件(例如,用户计算装置102和后端系统114)通信。在其他实施方案中,并非端点代理系统132的所有部件都能够与计算环境100的其他部件进行通信。在一个示例中,仅响应处理程序108可连接到网络104a,并且端点代理系统132的其他部件可经由响应处理程序108与计算环境100的其他部件通信。

在图1的示例中,端点管理系统106被示出为连接到网络104a。在一些实施方案中,端点管理系统106内的任何部件可经由网络104a和/或网络104b与计算环境100的其他部件(例如,用户计算装置102和后端系统114)通信。在其他实施方案中,并非端点管理系统106的所有部件都能够与计算环境100的其他部件进行通信。在一个示例中,仅管理器用户控制台132可连接到网络104a,并且端点管理系统106的其他部件可经由管理器用户控制台132与计算环境100的其他部件通信。

后端系统114可以包括旧的系统,所述旧的系统具有与用户计算装置102中的协议不可兼容或不易被用户计算装置102以其他方式访问的协议。后端系统114还可包括具有装置专用协议的装置(例如,iot装置)。

在一些实施方案中,端点代理系统132向用户计算装置102提供对后端系统114或其他系统或装置的更方便的访问。在一些此类实施方案中,端点代理系统132可与具有装置专用协议的iot装置通信。例如,iot装置可以具有温度传感器,并且用户可从iot装置请求温度信息。在另一示例中,iot装置可以是恒温器,并且用户可能能够致使iot装置将温度设置为给定温度。iot装置可取决于装置类型具有不同能力。所有这些能力可由某一类型api(例如,后端api)管理,此类型api将存在以操纵所述能力。端点代理系统132可以执行必要协议变换和/或数据操纵以允许用户与此类iot装置无缝通信,而不需要担心装置专用协议或要求。例如,端点代理系统132可向iot装置查询数据或向iot装置发送命令。从那些iot装置接收的响应可以用于基于调用程序要求形成对调用程序的回应。

图2描绘了计算装置106a的一般架构,所述计算装置可以被实现为允许端点管理系统的各种子系统和单元的各种特征,包括但不限于响应处理程序108、高速缓存管理器120、安全管理器122、性能单元124和sdk生成服务126。图2中描绘的计算装置106a的一般架构包括可用于实现本公开的方面的计算机硬件和软件模块的布置。计算装置106a可以包括比图2中示出的那些更多(或更少)的元件。然而,为了提供可允许的公开内容,没有必要示出所有这些大体上常规的元件。如图所示,计算装置106a包括处理单元190、网络接口192、计算机可读介质驱动器194、输入/输出装置接口196,它们所有都可借助通信总线彼此通信。网络接口192可以提供与一个或多个网络或计算系统的连接。处理单元190可以因此经由网络104a或104b从其他计算系统或服务接收信息和指令。处理单元190还可向存储器180通信和从存储器180通信,并且还经由输入/输出装置接口196而提供用于可选的显示器(未示出)的输出信息。输入/输出装置接口196还可接受来自可选输入装置(未示出)的输入。

存储器180可以包含计算机程序指令(在一些实施方案中,它们被分组为模块),处理单元190执行计算机程序指令,以便实现本公开的一个或多个方面。存储器180一般包括ram、rom和/或其他永久、辅助或非暂时计算机可读介质。存储器180可以存储操作系统184,所述操作系统提供计算机程序指令以供处理单元190用于响应处理程序108的一般管理和操作。存储器180还可包括计算机程序指令和用于实现本公开的方面的其他信息。例如,在一个实施方案中,存储器180包括用户接口单元182,所述用户接口单元生成用于例如经由导航和/或浏览界面(诸如安装在计算装置上的浏览器或应用)在计算装置上进行显示的用户界面(和/或指令)。例如,用户接口单元182可以生成一个或多个端点管理配置用户界面,诸如在本文中参考图3示出和描述的示例用户界面300。虽然在用户界面的上下文中描述图2的示例,但是应当了解,本文中描述的一个或多个实施方案可另外地或替代地使用任何cli、api或其他编程接口实现。另外,存储器180可以包括一个或多个数据储库(未示出)和/或与之通信,例如,以便访问程序代码、图案匹配定义和/或库。

除了和/或结合用户接口单元182,存储器180可以包括附加单元186a...n,所述附加单元可由处理单元190执行,以便提供与端点管理系统106和/或端点代理机群132的子系统和单元的特定实例关联的各种特征。例如,响应处理程序108可以包括响应解析单元,所述响应解析单元可以被执行以解析从后端系统114接收的响应或结果。高速缓存管理器120可以包括高速缓存单元,所述高速缓存单元可以被执行以确定是否高速缓存从后端系统114接收的结果、以及是否应当使用高速缓存结果来响应于某些代理api请求。安全管理器122可以包括授权单元,所述授权单元可以被执行以确定代理api请求是否具有正确安全标识并且是否应当允许代理api请求继续进行。性能单元124可以包括节流单元,所述节流单元可以被执行以确定是否应当允许代理api请求在当前需求条件下继续进行。sdk生成服务126可以包括api映射分析单元,所述api映射分析单元可以被执行以将api映射定义集合聚合到统一sdk库中。

在各种实施方案中,附加单元186a...n的全部或部分可由端点管理系统106、端点代理系统132和/或另一计算装置的其他部件实现。例如,在本公开的某些实施方案中,与端点管理系统106和/或端点代理系统132通信的另一计算装置可以包括若干类似于作为计算装置106a的部分示出的模块和部件操作的模块或部件。

现在转到图3,将描述示例用户界面300,示例用户界面向用户提供了与端点管理系统106关联的各种端点管理配置选项。在各种实施方案中,图3中示出的用户界面300可呈现为web页面、移动应用显示、独立应用显示、弹出窗口或对话框、电子邮件消息、或通过其他通信构件呈现。在其他实施方案中,类似界面可以使用音频或其他形式的通信呈现。在实施方案中,图3中示出的界面被配置为是交互的并响应于各种用户交互。此类用户交互可以包括鼠标点击、键盘打字、触摸屏幕上的触摸和/或手势、语音命令等等。用户界面300中示出的显示元素仅是出于示例目的;可取决于实施方案而呈现或多或少的显示元素和用户输入字段。

如图所示,示例用户界面300包括多个显示元素(例如,对各种api映射配置选项的描述)和用户输入字段(例如,文本框、复选框或单选框等等)。在显示元素302处,用户界面呈现多个端点api选项,包括例如:系统访问/连接设置(显示元素304)和相关联的文本输入字段,用户可通过其指定后端api的系统或连接设置;功能名称(显示元素306)和相关联的文本输入字段,用户可通过其指定后端api的名称;输入参数(显示元素308)和相关联的文本输入字段,用户可通过其指定后端api的一个或多个输入参数;以及输出结果参数(显示元素308)和相关联的文本输入字段,用户可通过其指定由后端api提供的输出类型。

在显示元素312处,用户界面呈现多个代理api选项,包括例如:功能名称(显示元素314)和相关联的文本输入字段,用户可通过其指定代理api的名称;输入参数(显示元素316)和相关联的文本输入字段,用户可通过其指定代理api的一个或多个输入参数;以及输出参数(显示元素318)和相关联的文本输入字段,用户可通过其指定由代理api提供的输出类型。

在显示元素322处,用户界面呈现多个高速缓存选项,包括例如:高速缓存结果设置(显示元素324)和相关联的单选框选择用户输入字段,用户可通过其指定输出结果是否应当被端点管理系统所高速缓存;以及高速缓存持续时间(显示元素326)和相关联的文本输入字段,用户可通过其指定高速缓存结果应当保持为有效的持续时间。

在显示元素328处,用户界面呈现多个安全和用户访问选项,包括例如:限制访问设置(显示元素330)和相关联的文本框用户输入字段,用户可通过其指定被允许调用代理和/或相关联的后端api的用户和/或组;以及计量标识要求设置(显示元素332)和相关联的单选框选择字段,用户可通过其指定执行代理api是否应当强制实施或要求计量标识符要求。

在显示元素334处,用户界面呈现多个性能选项,包括例如:api调用服务限制设置(显示元素336)和相关联的文本框用户输入字段,用户可通过其指定在某时间量内后端api请求的最大数量。

在显示元素338处,用户界面呈现保存按钮,用以保存api映射定义和设置,当用户选择保存按钮时,就可致使端点管理系统将api映射定义保存在端点/api映射定义数据来源128中。显示元素340呈现取消按钮,用以取消或结束当前配置而不保存api映射或设置。

未在图3中示出的另一特征(可由端点管理系统106提供)可以是api映射定义的变化可能造成api映射发生破坏性的变化的指示器。例如,代理api的名称、输入参数和/或输出参数的变化可以包括破坏性的变化,使得在不更新到已变化的代理api定义的情况下,使用在破坏性的变化前的代理api的调用系统可能不再能够使用代理api。例如,如果代理api的名称已经变化,那么调用系统将会不再能够调用使用旧的名称的代理api;或者,如果所要求的输入参数(和/或相关联的属性)数量变化,那么调用系统可能无法使用比现在要求的更少的输入调用代理api;并且依此类推。在各种实例下,端点管理系统106可以被配置为检测何时可能发生api代理定义的破坏性的变化,并且将警告或指示器提供给用户。指示器可选地可以包括对如何解决破坏性的变化的建议(例如,创建新的代理api,而非改变现有api;使得新的或已修改的输入和/或输出参数是可选的;使得现有属性名称或标识符保持相同,并且仅仅添加新的属性名称或标识符;以及进行用于维护或保留现有api代理映射定义的类似类型动作。

现在转到图4a,将描述例程400a,所述例程是由端点管理系统106和/或端点代理系统132的一个或多个部件(例如,响应处理程序108、高速缓存管理器120、安全管理器122、性能单元124和/或sdk生成服务126)实现。虽然例程400a是关于端点管理系统106的实现而进行描述,但是相关领域中的技术人员将了解到,替代部件也可实现例程400a,或者一个或多个方框可由不同部件或以分布式方式实现。

在说明性的例程400a的方框402处,端点管理系统106接收api映射定义以与后端或端点api和相关联的后端系统对接。api映射定义可以例如经由用户界面300(在本文中参考图3而示出和描述)接收。可将api映射定义存储在例如端点/api映射定义数据来源128中。api映射定义可以包括如本公开的全文描述的多个配置选项。

接着,在方框404处,端点代理系统132经由api代理从调用系统接收对执行程序代码的请求。请求可从例如用户计算装置102接收。

在方框406处,端点代理系统132是基于所接收的请求而确定api映射定义。所述确定可以是基于例如与所接收的请求关联的各种因素的,所述因素包括代理api的名称、与代理api关联的输入参数、调用系统或请求实体、与请求一起提供的任何安全或标识信息(诸如标识令牌、计量标识符或其他标识符)等等。

在方框408处,端点代理系统132可选地执行某一与api映射定义关联的预处理。例如,在一个实施方案中,响应处理程序108可以确定代理api请求是否具有正确安全标识并且是否应当允许代理api请求继续进行。或者,在相同的实施方案或另一个实施方案中,响应处理程序108可与高速缓存管理器120交互,以便确定高速缓存结果是否可用和/或应当使用来响应于代理api请求。或者,在相同的实施方案或另一个实施方案中,响应处理程序108可与性能单元124交互,以便确定是否应当允许代理api请求在当前需求条件下继续进行。例如,响应于确定已经超过允许(如api映射定义中所指示的)的api请求数量的某个限值,性能单元124可拒绝代理api请求。

在方框410处,端点代理系统132经由如api映射定义中所指定的后端api将api代理请求变换以供通过后端系统处理。例如,api映射定义可以指定,与代理api请求关联的一个或多个输入参数将映射、解析和/或变换为后端或端点api请求的一个或多个输入参数。端点代理系统132还可从api映射定义而确定后端api请求将被发送到的特定后端系统。一旦这个完成,例程400a就可继续到图4b的方框412。

现在转到图4b,例程400a以说明性的例程400b而继续。在例程400b的方框412处,端点代理系统132经由后端api将执行程序代码的请求发送到特定后端系统114。在一些实施方案中,端点代理系统132可以发送与代理api请求关联的多个后端api请求,这可在api映射定义中指定。可取决于api映射定义中的特定配置而串行或并行发送多个后端api请求。例如,一个api映射定义可以指定工作流程,其中单个代理api请求对应并涉及多个后端api请求,一些后端api请求可以是独立的(例如,可被并行执行),并且一些后端api请求可以是有依赖性的(例如,对第二后端api的执行可取决于从对第一后端api的执行接收的所得结果,串行处理第一后端api、接着执行第二后端api的情景可能是必要的)。

在方框414处,端点代理系统132从特定后端系统114接收后端api请求的结果(例如,来自对程序代码的执行)。

接着,在方框416处,端点代理系统132至少部分基于api映射定义而变换所接收的结果。例如,api映射定义可以指定,与后端api请求关联的一个或多个结果参数将映射、解析和/或变换为代理api请求的一个或多个输出结果参数。例如,从后端系统114接收的结果可呈一种格式(例如,xml文档),这种格式将根据api映射定义变换为另一格式(例如,json对象)。

在方框418处,端点代理系统132可选地高速缓存所接收的结果和/或所变换的结果。例如,api映射定义可以包括用户指定的配置选项,用户指定的配置选项指示所接收的结果和/或所变换的结果(或这两者)是否应当高速缓存,并且如果如此,那么高速缓存多久。结果可以高速缓存在例如端点结果高速缓存130中,如上讨论。

在方框420,端点代理系统132响应于所接收的代理api请求而将所变换结果提供到调用系统(例如,用户计算装置102)。在一些实施方案中,端点代理系统132可以继续发送与代理api请求关联的附加后端api请求,这可在api映射定义中指定。

尽管在上文中已经参考方框402-410和412-420描述图4a-4b的例程400a-400b,但是本文所述的实施方案不限于此,并且在不脱离本公开的精神的情况下,可以省略、修改或交换一个或多个方框。

图5是示出联网计算环境500的实施方案的方框图,联网计算环境包括通过通信网络104a和/或104b与服务提供商计算机网络501通信的一个或多个客户端计算装置(“客户端”)102。联网计算环境500可以包括不同部件、数量更多或更少的部件,并且可以被不同地构造。例如,可以存在多于一个服务提供商计算机网络501,使得可以例如基于已建立的协议或协定跨多个服务提供商计算机网络501而实现托管服务或数据存储服务。作为另一示例,服务提供商计算机网络501可以包括更多或更少的部件,并且一些部件可以通过通信网络104a和/或104b彼此通信。

说明性地,可由服务提供商计算机网络501的客户使用客户端102。在说明性实施方案中,客户端102包括用于通过通信网络104a和/或104b(诸如广域网或局域网)与服务提供商计算机网络501的各种部件建立通信的必要硬件和软件部件。例如,客户端102可以被配备有促成经由互联网或内联网的通信的联网设备和浏览器软件应用。客户端102可以具有各种本地计算资源,诸如中央处理单元和架构、存储器、大容量存储装置、图形处理单元、通信网络可用性和带宽等等。在一个实施方案中,客户端102可访问或控制被服务提供商计算机网络501托管的虚拟机实例。客户端102还可访问由服务提供商计算机网络501提供的数据存储资源。

继续参考图5,根据一个说明性实施方案,服务提供商计算机网络501可以包括互连部件,诸如端点管理系统106、端点代理系统132、一个或多个主机计算装置510、存储管理服务503和一个或多个存储系统507,所述互连部件具有与一个或多个服务提供商关联的一个或多个数据中心的逻辑关联。端点管理系统106可由一个或多个计算装置实现。例如,端点管理系统106可由计算装置实现,所述计算装置包括用以执行一个或多个指令的一个或多个处理器、存储器、以及用以与一个或多个客户端102或服务提供商计算机网络501的其他部件通信的通信装置。在一些实施方案中,端点管理系统106在能够通过网络而通信的一个或多个服务器上实现。在其他实施方案中,端点管理系统106是由托管计算环境中的一个或多个虚拟机实现。说明性地,端点管理系统106可以代理api管理和配置以及本文中公开的其他相关功能。

端点代理系统132也可以由一个或多个计算装置实现。在一些实施方案中,端点代理系统132在能够通过网络而通信的一个或多个计算装置上实现。在其他实施方案中,端点代理系统132是由托管计算环境中的一个或多个虚拟机实例实现。端点代理系统132可以接收并响应于对执行代理api并且与后端系统114通信的电子请求,如本文中所述。

每个主机计算装置510可以是托管一个或多个虚拟机实例514的物理计算装置。主机计算装置510可通过执行软件虚拟机管理器122(诸如监管程序)来托管虚拟机实例114,软件虚拟机管理器管理虚拟机实例114。虚拟机实例114可以执行操作系统和应用软件的实例。

在一些实施方案中,主机计算装置510可与服务提供商计算机网络501内的专用网络地址(诸如ip地址)关联,使得客户端102无法直接访问这些主机计算装置。虚拟机实例(如由虚拟机管理器122和端点管理系统106促成)可与公共网络地址关联,公共网络地址可由服务提供商计算机网络501的边缘处的网关提供。因此,虚拟机实例514可由客户端102经由公共网络地址直接寻址。相关领域中的技术人员将了解到,每个主机计算装置510都将包括其他物理计算装置资源和软件以执行多个虚拟机实例或动态地实例化虚拟机实例。这样的实例化可以基于特定请求,诸如来自客户端102的请求。

存储管理服务503可与一个或多个存储系统507关联。存储系统507可以是服务器,用于存储由虚拟机实例生成或利用的或由客户端以其他方式提供的数据。说明性地,存储管理服务503可以在逻辑上组织和维护数据存储卷中的数据。例如,存储管理服务503可执行或促成存储空间分配、输入/输出操作、元数据管理或关于卷的其他功能。

在一些实施方案中,卷可以跨多个存储系统进行分布,可以出于性能目的而复制于不同网络区域中的存储系统。存储系统可附接到不同电源或冷却系统,可以位于一个数据中心的不同房间中或不同数据中心中,或者可附接到不同路由器或网络交换机。

在说明性实施方案中,主机计算装置510或存储系统507被认为是在逻辑上分组的,无论部件、或部件的部分是否在物理上分离。例如,服务提供商计算机网络501可以维护用于提供主机部件和存储部件的分开位置。另外,主机计算装置510可以最佳服务其用户的各种人口统计资料方式在地理上分布。相关领域中的技术人员将了解到,服务提供商计算机网络501可与各种附加计算资源、用于内容和资源的管理的此类附加计算装置等等关联。

本领域和其他领域中的技术人员将了解到,本公开描述的所有功能可以体现于由所公开的部件和移动通信装置的一个或多个物理处理器执行的软件中。软件可被永久存储在任何类型非易失性存储装置中。

除非另外具体表述,或以其他方式在使用的上下文中进行理解,否则,一般来说,条件语言(诸如“可”、“会”、“可以”或“可能”等等)旨在表达某些实施方案包括而其他实施方案不包括某些特征、要素和/或步骤。因此,一般来说,此类条件语言并不旨在暗示一个或多个实施方案无论如何都会要求特征、要素和/或步骤,或者一个或多个实施方案都必须包括在有或没有用户输入或提示下用于决定在任何特定的实施方案中是否包括或将执行这些特征、要素和/或步骤的逻辑。

在本文中描述和/或在附图中描绘的流程图中的任何过程描述、要素或方框应当被理解为潜在表示代码的模块、节段或部分,其包括了用于实现过程中的特定逻辑功能或步骤的一个或多个可执行指令。替代实现包括在本文所述的实施方案范围内,其中的要素或功能可以删除、不按示出或讨论的顺序执行(包括基本上同时地或以相反顺序),这取决于所涉及的功能,如本领域的技术人员将理解。还将了解,上述数据和/或部件可以存储在计算机可读介质上并且使用与计算机可读存储介质关联的驱动机制加载到计算装置的存储器中,计算机可读存储介质存储计算机可执行部件,诸如cd-rom、dvd-rom或网络接口。另外,部件和/或数据可以包括在单个装置中或以任何方式分布。因此,通用计算装置可以被配置为利用对上述各种数据和/或部件的处理和/或执行实现本公开的过程、算法和方法。

应当强调,可对上述的实施方案做出许多变化和修改,其要素如在其他可接受的示例中理解。所有此类修改和变化在本文中旨在包括在本公开的范围内并由随附权利要求保护。

本公开的实施方案可以根据以下条款进行描述:

1.一种用于提供应用编程接口的端点管理的系统,所述系统包括:

电子数据存储区,所述电子数据存储区被配置为存储应用编程接口(“api”)映射定义;以及

端点系统,所述端点系统包括一个或多个硬件计算装置,所述一个或多个硬件计算装置执行特定计算机可执行指令,其中所述端点系统与所述电子数据存储区通信,并且被配置为至少:

接收多个api映射定义,其中每个相应api映射定义将代理api与至少一个端点api关联;

由特定代理api从调用系统接收对执行程序代码的请求;

至少部分基于所接收的请求和所述特定代理api确定与所述特定代理api关联的api映射定义;

将所述请求变换为端点请求以由端点api系统处理,其中所述请求至少部分基于所述api映射定义进行变换,并且其中所述端点请求包括用于在所述端点api系统上执行所述程序代码的指令;

将所述端点请求传送到所述端点api系统,以便致使在所述端点api系统上执行所述程序代码;

从所述端点api系统接收端点结果,其中所述端点结果通过在所述端点api系统上执行所述程序代码生成;

将所述端点结果变换为代理结果,其中所述端点结果至少部分基于所述api映射定义进行变换;以及

将返回响应提供到所述调用系统,其中所述返回响应包括至少所述代理结果。

2.如条款1所述的系统,其中所述端点系统还配置为将所述端点结果的副本存储在第二电子数据存储区中,所述第二电子数据存储区被配置为存储从相应端点api系统接收的高速缓存结果。

3.如条款1所述的系统,其中所述端点系统还配置为从第二电子数据存储区访问所述端点结果的高速缓存副本,所述第二电子数据存储区被配置为存储从相应端点api系统接收的高速缓存结果。

4.一种系统,所述系统包括:

端点代理系统,所述端点代理系统包括适于执行特定计算机可执行指令的一个或多个硬件计算装置并且与电子数据存储区通信,所述电子数据存储区被配置为存储应用编程接口(“api”)映射定义,其中所述端点代理系统被配置为至少:

从用户计算装置接收对执行代理api的请求;

至少部分基于所接收的请求和所述代理api确定与所述代理api关联的api映射定义;

将所述请求变换为后端请求以由后端api系统处理,其中所述请求至少部分基于所述api映射定义进行变换,并且其中所述后端请求包括用于在所述端点api系统上执行后端api的指令;

将所述后端请求传送到所述端点api系统,其中所述后端请求适于致使在所述端点api系统上执行所述后端api;

从所述后端api系统接收后端结果,其中所述端点结果通过在所述后端api系统上执行所述后端api生成;

将所述后端结果变换为输出结果,其中所述后端结果至少部分基于所述api映射定义进行变换;以及

将所述输出结果提供到所述用户计算装置。

5.如条款4所述的系统,其中所述端点代理系统还配置为将所述后端结果的副本存储在第二电子数据存储区中,所述第二电子数据存储区被配置为存储从相应后端api系统接收的高速缓存结果。

6.如条款5所述的系统,其中所述端点代理系统还配置为根据与所述api映射定义关联的高速缓存持续时间设置将所述后端结果的所述副本存储在所述第二电子数据存储区中。

7.如条款4所述的系统,其中所述端点代理系统还配置为从第二电子数据存储区访问所述后端结果的高速缓存副本,所述第二电子数据存储区被配置为存储从相应后端api系统接收的高速缓存结果。

8.如条款4所述的系统,其中所述api映射定义至少包括用于所述代理api的相关联的配置设置和用于所述后端api的相关联的配置设置。

9.如条款8所述的系统,其中用于所述代理api的所述相关联的配置设置包括代理api名称、代理api输入参数和代理api输出结果类型。

10.如条款8所述的系统,其中用于所述后端api的所述相关联的配置设置包括后端api名称、后端api输入参数和后端api输出结果类型。

11.如条款4所述的系统,其中对执行代理api的所述请求是通过第一网络从所述用户计算装置接收,并且所述后端结果是通过第二网络从所述后端api系统接收,其中所述第二网络与所述第一网络是分开且不同的。

12.如条款11所述的系统,其中所述端点代理系统和所述后端系统是共同位于所述第二网络上。

13.一种计算机实现的方法,所述计算机实现的方法包括:

如通过被配置有特定可执行指令的一个或多个计算装置实现的,

从调用系统接收对执行代理api的请求;

至少部分基于所接收的请求和所述代理api确定与所述代理api关联的api映射定义;

将所述请求变换为后端请求以由后端api系统处理,其中所述请求至少部分基于所述api映射定义进行变换,并且其中所述后端请求包括用于在所述端点api系统上执行后端api的指令;

将所述后端请求发送到所述端点api系统,其中所述后端请求适于致使在所述端点api系统上执行所述后端api;

从所述后端api系统接收后端结果,其中所述端点结果通过在所述后端api系统上执行所述后端api生成;

将所述后端结果变换为输出结果,其中所述后端结果至少部分基于所述api映射定义进行变换;以及

将所述输出结果提供到所述调用系统。

14.如条款13所述的计算机实现的方法,其还包括将所述后端结果的副本存储在第二电子数据存储区中,所述第二电子数据存储区被配置为存储从相应后端api系统接收的高速缓存结果。

15.如条款13所述的计算机实现的方法,其还包括:

接收对执行第二代理api的第二请求;以及

至少部分基于所接收的第二请求和所述第二代理api确定与所述第二代理api关联的第二api映射定义;

16.如条款15所述的计算机实现的方法,其还包括:

基于所述api映射定义确定所述第二代理api被映射到所述后端api;以及

从第二电子数据存储区访问所述后端结果的高速缓存副本,所述第二电子数据存储区被配置为存储从相应后端api系统接收的高速缓存结果。

17.如条款15所述的计算机实现的方法,其还包括:

基于所述api映射定义确定所述第二代理api被映射到第二后端api,其中所述第二后端api被配置为返回第二后端结果,所述第二后端结果是通过执行所述后端api而生成的所述后端结果的子集;

从第二电子数据存储区访问所述后端结果的高速缓存副本,所述第二电子数据存储区被配置为存储从相应后端api系统接收的高速缓存结果;以及

将所述高速缓存副本的变换输出结果提供到所述调用系统。

18.一种计算机可读非暂时存储介质,所述计算机可读非暂时存储介质存储计算机可执行指令,所述计算机可执行指令由一个或多个计算装置执行时将所述一个或多个计算装置配置为执行操作,所述操作包括:

从调用系统接收对执行代理api的请求;

至少部分基于所接收的请求和所述代理api确定与所述代理api关联的api映射定义;

将所述请求变换为后端请求以由后端api系统处理,其中所述请求至少部分基于所述api映射定义进行变换,并且其中所述后端请求包括用于在所述端点api系统上执行后端api的指令;

将所述后端请求发送到所述端点api系统,其中所述后端请求适于致使在所述端点api系统上执行所述后端api;

从所述后端api系统接收后端结果,其中所述端点结果通过在所述后端api系统上执行所述后端api生成;

将所述后端结果变换为输出结果,其中所述后端结果至少部分基于所述api映射定义进行变换;以及

将所述输出结果提供到所述调用系统。

19.如条款18所述的计算机可读非暂时存储介质,其中所述操作还包括:将所述后端结果的副本存储在第二电子数据存储区中,所述第二电子数据存储区被配置为存储从相应后端api系统接收的高速缓存结果。

20.如条款18所述的计算机可读非暂时存储介质,其中所述操作还包括:至少部分基于与所述api映射定义关联的授权设置,确定与对执行所述代理api的所述请求关联的用户标识符包括在所述api映射定义中作为授权用户或组。

21.如条款18所述的计算机可读非暂时存储介质,其中所述操作还包括:至少部分基于与所述api映射定义关联的性能节流设置和与所述后端api系统关联的当前api请求工作负载的比较,确定对执行所述代理api的所述请求被允许以继续进行。

22.如条款18所述的计算机可读非暂时存储介质,其中所述api映射定义至少包括用于所述代理api的相关联的配置设置和用于所述后端api的相关联的配置设置。

23.如条款18所述的计算机可读非暂时存储介质,其中所述代理api是与第一协议关联,并且所述后端api是与第二协议关联。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1