CN112771500A - 功能即服务网关 - Google Patents
功能即服务网关 Download PDFInfo
- Publication number
- CN112771500A CN112771500A CN201980044521.8A CN201980044521A CN112771500A CN 112771500 A CN112771500 A CN 112771500A CN 201980044521 A CN201980044521 A CN 201980044521A CN 112771500 A CN112771500 A CN 112771500A
- Authority
- CN
- China
- Prior art keywords
- cloud service
- gateway
- function
- platforms
- cloud
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 32
- 230000006870 function Effects 0.000 claims description 60
- 230000007246 mechanism Effects 0.000 claims description 14
- 230000015654 memory Effects 0.000 description 26
- 238000012545 processing Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000012552 review Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100521334 Mus musculus Prom1 gene Proteins 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229920000747 poly(lactic acid) Polymers 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/59—Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- 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
-
- 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/10—Protocols in which an application is distributed across nodes in the network
-
- 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/2866—Architectures; Arrangements
- H04L67/2895—Intermediate processing functionally located close to the data provider application, e.g. reverse proxies
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/567—Integrating service provisioning from a plurality of service providers
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- 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/50—Network services
- H04L67/75—Indicating network or usage conditions on the user display
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本文公开的实施例提供了使用功能即服务(“FaaS”)网关在可用的无服务器计算供应商平台上高效调度用户提供的功能的执行的系统和方法,其中,FaaS网关基于每个平台提供的服务参数向其中一个可用的无服务器计算供应商平台提供功能代码。
Description
相关应用的交叉引用
本申请主张2018年5月11日提交的美国临时专利申请序列号62/670243的申请日的权益,并通过引用将其全部合并于此。
技术领域
本公开总体涉及无服务器计算,更具体地涉及用于实现功能即服务(“FaaS”)网关的系统和方法。
背景技术
无服务器计算指的是一种云计算模型,在这种模型中,开发人员能够根据需要在云服务供应商的服务器上运行代码,从而允许开发人员能够不需要自己基础设施。例如,开发人员可以运行与特定应用功能相关联的代码。因此,云服务供应商的服务器可以用来提供功能即服务(“FaaS”)。利用FaaS,由代码所消耗的计算是按现收现付的方式支付的,当代码不运行时不收费。因此,该模型适用于高响应性的面向客户的网站,其中访问者往往对延迟问题敏感。大多数(如果不是全部)主要云服务供应商都为无服务器计算提供了一定程度的支持。示例产品包括AWS Lambda、Google云功能、microsoft Azure功能、IBM/ApacheOpenWhisk和Oracle Cloud Fn。
由于无服务器计算有多种选择,目前选择“合适”的供应商取决于诸如成本、性能、数据和功能端点的接近程度之类的若干因素。特别地,开发人员通过手动比较各种供应商产品(例如价格和能力)来选择“合适”的供应商。然而,运行特定功能的“合适”供应商可能会在给定的时间点基于外部、供应商管理的因素发生变化。在这方面,选择供应商的手动过程可能无法考虑这种实时变化。此外,即使不考虑实时变化,识别和选择“合适”供应商的手动过程通常被认为是一项复杂和耗时的任务。此外,维护针对无服务器计算资源的“合适”供应商还需要一个耗时的手动过程,包括定期审查和修订。因此,当前的系统无法在不同的供应商之间执行实时路由。
因此,需要一种系统和方法来有效地调度在可用的无服务器计算供应商平台上执行用户提供的功能。
发明内容
本公开的一个方面涉及提供用于在可用的无服务器计算供应商平台上高效地调度用户提供的功能的执行的系统和方法。
根据一个实施例,一种用于在多个云服务平台之间调度功能代码执行的系统可以包括:(i)网关,其中网关包括被配置为接收引入的功能代码的至少一个连接器;(ii)云服务平台数据聚合器,其中云服务平台数据聚合器被配置为从多个云服务平台中的每一个接收服务参数;和(iii)度量调度器,其中度量调度器定义用于将引入的功能代码路由到多个云服务平台中的至少一个的策略,其中,网关被配置为基于(i)由多个云服务平台中的每一个提供的服务参数和(ii)由度量调度器提供的策略,将引入的功能代码提供给多个云服务平台中的一个以供执行。
根据一个实施例,一种用于调度在多个云服务平台之间的功能代码的执行的方法可以包括:利用网关接收引入的功能代码;利用云服务平台数据聚合器接收来自多个云服务平台中的每一个的服务参数;以及基于由多个云服务平台中的每一个提供的服务参数,利用网关将引入的功能代码路由到多个云服务平台中的一个以供执行。
根据一个实施例,一种用于在多个云服务平台之间调度功能代码的执行的系统可以包括:(i)第一计算设备,其中第一计算设备被配置为接收引入的功能代码;和(ii)第二计算设备,其中第二计算设备被配置为接收来自多个云服务平台中的每一个的服务参数,其中第一计算设备被配置成基于由多个云服务平台中的每一个所提供的服务参数,将引入的功能代码提供给多个云服务平台中的一个以供执行。
具体地,本文公开的实施例针对FaaS网关,该网关可以调度在可用供应商平台上执行用户提供的功能。
FaaS网关可以提供以下技术优势:能够以自动化的方式对供应商计算资源、供应商成本、应用程序的已知资源需求和供应商服务质量进行交叉比较;基于(策略和规则)的自动审查和修订确定针对无服务器计算资源的“合适”供应商的能力;基于业务定义的度量执行智能路由的能力;提供智能路由,包括(通过用户接口)提供反馈和基于历史用户活动提出建议的能力;如果应用程序被认为不适合FaaS,则恢复到其他专用基础设施的能力;以及将单入口点提供到外部无服务器计算资源的能力。
附图说明
为了便于更全面地理解本发明,现在参考附图。附图不应被解释为限制本发明,而是旨在说明本发明的不同方面和实施例。
图1图示说明了根据本发明实施例的用于在多个云服务平台之间调度功能代码的执行的系统。
图2图示说明了与图1中的仪表板相关联的用户接口的一个示例实施例。
图3图示说明了与图1中的仪表板相关联的用户接口的另一个示例实施例。
图4图示说明了与图1中的仪表板相关联的用户接口的另一个示例实施例。
图5图示说明了与图1中的仪表板相关联的用户接口的另一个示例实施例。
具体实施方式
现在将描述本发明的示例性实施例以说明本发明的各种特征。本文描述的实施例并不意旨限制本发明的范围,而是旨在提供本发明的组成部分、用途和操作的示例。
图1图示说明了根据本发明实施例的用于在多个云服务平台之间调度功能代码的执行的系统。如图所描绘的,系统100包括(1)FaaS网关110,(2)供应商平台数据聚合器120;(3)业务定义的度量调度器130;和(4)仪表板140。根据一个实施例,FaaS网关110还可以包括一个或多个连接器111。一个或多个连接器111可用于消耗FaaS网关110中的各种不同协议或输入。具体而言,每个连接器111可以与不同的协议或输入相关联。例如,连接器111中的一个可以与企业服务总线(ESB)协议相关联。类似地,其他连接器111还可以与相应的协议或输入相关联,例如,超文本传送协议(HTTP)、传输控制协议(TCP)通信协议(例如Kafka、Apigee等)、远程过程调用(例如gRPC)、消息传递协议(例如,消息队列遥测输送(MQTT))、连续的集成/连续递送(CI/CD)等。根据一个实施例,可以基于与FaaS网关110通信的应用程序60选择特定连接器111。具体地说,当应用程序60正在FaaS网关110上注册/登录时,可以为每个应用程序60定义一个或多个连接器111。此外,在注册过程中还可以配置以下特征:(i)导入或创建新功能,(ii)将特定连接器111输入内容映射到功能调用元素,(iii)对功能调用进行排队或调度(以及出于什么原因,例如,价格点),(iv)选择输入内容或输出结果以被缓存,(v)配置要使用的调用机制(例如200或220),(vi)配置功能调用是同步还是异步,以及(vii)从目标云服务供应商中选择云服务供应商。此外,根据一个实施例,将应用程序60注册到FaaS网关110提供了用于经由API 210或经由与仪表板140相关联的图形用户接口(UI)对FaaS网关110的许多上述特征进行自助服务的能力。连接器111还为仪表板140提供接口。根据一个实施例,与仪表板140相关联的UI可用于向FaaS网关110及其支持组件的所有方面提供配置、管理和运行时门户。
与应用程序60相关联的特定连接器111可用于接收和消耗来自应用程序60的输入。此外,在特定连接器111接收并消耗来自应用程序60的输入之后,FaaS网关110随后可以触发对可用云服务供应商的无服务器计算服务之一的功能调用。换句话说,FaaS网关110可以调用与连接器111处的输入相对应的期望功能(或功能的预定义工作流)。此外,可以经由与专有的无服务器计算服务(例如,AWS Lambda、Google云功能、Microsoft Azure功能、IBM/Apache OpenWhisk、Oracle Cloud Fn)相关联的第一调用机制200,或与开源无服务器计算服务(例如Kubernetes、Docker)相关联的第二调用机制220来调用所需的功能(或功能的预定义工作流)。例如,如图所描绘的,第一调用机制200可与无服务器计算服务201至204相关联,而第二调用机制220可与无服务器计算服务221相关联。
此外,根据一个实施例,聚合器120可以负责用于对服务参数的收集。服务参数可能包括遥测、定价、服务级别、合规性(如PCI、SOC2)、FaaS功能(或FaaS服务本身)依赖的安全特征(如加密)、资源可用性、性能,以及由可用云服务供应商的无服务器计算服务201、202、203、204和221提供的其他感兴趣的源。根据一个实施例,遥测可以包括操作数据、财务数据等。服务参数可以包括本领域已知的任何参数,这些参数可以影响是否使用特定云服务供应商的无服务器计算服务的决策。
度量调度器130可以为开发者50提供创建策略(例如,成本策略、处理策略等)的能力,该策略(i)确定要调用的云服务供应商或(ii)支持逻辑流控制。根据一个实施例,形成策略基础的规则可以独立于这些策略来创建和强制执行。例如,如果特定的提供商脱机,则可以创建一条规则来动态路由到替代的合适的无服务器计算服务,覆盖可能适当的策略。此外,FaaS网关110还可提供以下规则和/或定义:(i)基于内容的路由,(ii)数据元素的双向映射和/或用于充实数据的双向映射,以及(iii)为状态管理目的而在数据高速缓存服务中保存的数据元素等。定义可以简单到用一个值替换另一个值,例如将“Texas”替换为“TX”。规则将应用条件逻辑,诸如“如果值=是(if value=yes)”,则调用函数func1(),“如果值=否(if value=no)”,则调用函数func2()。此外,横贯FaaS网关110的信息或值可以被标记以高速缓存该信息。根据一个实施例,可以在应用程序60的注册/登入期间针对每个入站事务限定定义、规则和高速缓存要求。
此外,关于逻辑流控制,FaaS网关110可以使用与仪表板140的UI相关联的应用“流”设计器来构造功能调用顺序的逻辑流。例如,进入FaaS网关110中针对“下单”的功能调用可能导致许多FaaS调用,例如验证地址、欺诈订单保护、下单和发送确认电子邮件。FaaS网关110可能需要基于这些有序功能调用中的每一个的结果来高速缓存信息或作出流决策。这些FaaS调用中的一些可能被定义为并行或按顺序运行。这被配置为事务流的一部分——在这种情况下,FaaS网关110中的一次调用导致四个FaaS调用。
此外,根据一个实施例,FaaS网关110可以被配置为也接收来自外部数据存储(例如,企业配置管理数据库(CMDB)、大数据(例如,Elasticse arch、Logstash和Kibana(ELK))等的数据。相应地,通过托管和/或利用这些数据存储,FaaS网关110能够丰富(i)关于在何处运行事务/FaaS调用的决策点和(ii)发送到无服务器计算服务(或返回到FaaS网关110调用者)的数据有效载荷。
此外,无服务器计算服务之间的路由可以基于可定期更新的各种供应商参数,包括定价(例如,按GB-s或百万次执行计算的成本)、支持的语言、每个请求的最大执行时间、并发执行等,作为一个说明性的、非限制性的示例,在开发人员50向FaaS网关110提交特定功能代码以供检查之后,FaaS网关110实施路由算法,以便为每个可用的供应商确定(i)功能的复杂性,(ii)执行它所需的资源和时间,(iii)使用的语言,以及(iv)提供的价格。基于此,FaaS网关110可以建议该功能需要分配512MB内存,3秒的执行时间。以下是不同供应商的成本的示例计算,假设每月有500万个请求:
无服务器计算服务201=$136.95
无服务器计算服务202=$120.70
无服务器计算服务203=$119.16
无服务器计算服务204=$114.40
如上所描绘的,无服务器计算服务204供应最低的成本。假设成本是唯一和/或最重要的因素,FaaS网关110将使用服务204来执行代码。一般而言,FaaS网关110通过以下方式比较供应商:(i)访问由若干机制频繁更新的动态数据点集,以确保近实时数据可用;(ii)在从中导出最终得分的静态度量集中使用所访问的数据点集;这里,度量可以包括但不包括仅限于价格、容量或历史数据。
在一个实施例中,机器学习、人工智能和/或反馈可用于将功能路由到云服务供应商。例如,基于先前的选择、规则的应用等,FaaS网关110可以选择用于路由该功能的云服务供应商。如上所述,使用聚合数据的定义或规则或策略将决定路由,在某些情况下,路由将是动态的,例如基于云提供商可用容量的价格波动。
在一个实施例中,FaaS网关可以识别组织可用的折扣(例如,批量折扣),并且可以在确定针对云提供商的成本信息时考虑在一段时间内接收这些折扣的可能性。
根据一个实施例,系统100可以包括一个或多个计算设备,例如服务器和个人计算设备。系统100还可以包括连接各种计算设备的一个或多个网络。例如,系统100以及应用程序60可以在单个计算设备中实现。在另一实施例中,应用程序60、度量调度器130和仪表板140可以与一个计算设备相关联,而FaaS网关110和聚合器120可以与一个或多个其他计算设备相关联。此外,根据一个实施例,无服务器计算服务201到204和221中的每一个可以用一个或多个计算设备来实现。
图2图示说明了与仪表板140相关联的用户接口的示例实施例。如图所描绘的,业务#1的每个应用程序(例如,应用程序#1、#2等)都包括相关联的成本,并且还识别了收费的基础(例如入站HTTP、映射功能、出站FaaS等)。
图3图示说明了与图1中的仪表板相关联的用户接口的另一个示例实施例。特别地,利用UI,用户50可以可视化、修改和向与应用程序60相关联的FaaS网关110添加功能。例如,对于每个功能(“以前的功能”),它可以识别(i)最佳匹配,(ii)选定的目标平台,以及(iii)总累积成本。它还允许用户调整配置/设置,报告每次迭代运行的时间,并允许执行测试。对于“正在运行的功能”,接口可以指示智能重新路由(例如,支持弹性),并可以显示功能的执行进度。其他特性,包括“添加新功能”(例如,通过用户接口创建新应用程序功能的能力)和“审查策略”(例如,审查包含约束和偏好的策略的能力),可根据需要和/或期望提供。
图4图示说明了与图1中的仪表板相关联的用户接口的另一个示例实施例。特别地,该图描绘了针对特定功能的每个FaaS平台根据1MM执行的当前成本。此外,根据一个实施例,FaaS网关110还可以(i)根据云服务供应商提供1MM执行的摊余成本,并且(ii)根据策略和业务驱动因素检查算法以支持决策。策略和业务驱动因素将(i)与定价相关,(ii)具有可接受价格点的峰值或范围,(iii)允许调用或执行功能,以及(iv)提供服务级别、合规性(例如PCI、SOC2)和FaaS功能或FaaS平台服务本身依赖的安全特征(例如,加密)。此外,用户可以根据需要和/或期望选择添加新的“云服务”FaaS端点来承载功能。
图5图示说明了与图1中的仪表板相关联的用户接口的另一个示例实施例。特别是,该图图示说明了现有策略和相应的相关联的功能。此外,根据一个实施例,FaaS网关110还可以允许创建新策略,以及选择由决策引擎所使用的其他标准或限制(例如,区域偏好、成本限制、请求限制、计算限制等)以执行和路由功能执行。
下面,将描述本发明的系统和方法的实施方式的一般方面。
例如,本发明的系统或本发明的系统的部分可以是“处理机”的形式,例如通用计算机。如本文所用,术语“处理机”应理解为包括使用至少一个存储器的至少一个处理器。至少一个存储器存储指令集。指令可以永久地或临时地存储在处理机的一个或多个存储器中。处理器执行存储在一个或多个存储器中的指令以处理数据。指令集可以包括执行特定一个或多个任务(例如上述任务)的各种指令。这种用于执行特定任务的指令集可以被特征化为程序、软件程序或简单的软件。
在一个实施例中,处理机可以是专用处理器。
如上所述,处理机执行存储在存储器中的指令来处理数据。例如,数据的这种处理可以响应于处理机的一个或多个用户的命令、响应于先前的处理、响应于另一个处理机的请求和/或任何其他输入。
如上所述,用于实现本发明的处理机可以是通用计算机。然而,上述处理机还可以利用各种各样的其它技术中的任何一种,该技术包括专用计算机、包括例如微型计算机、小型计算机或大型机、可编程微处理器、微控制器、外围集成电路元件、CSIC(客户专用集成电路)或ASIC(专用集成电路)或其他集成电路、逻辑电路、数字信号处理器、可编程逻辑设备(例如FPGA、PLD、PLA或PAL)或能够实现本发明的过程的步骤的任何其他设备或设备的布置。
用于实现本发明的处理机可以利用合适的操作系统。因此,本发明的实施例可以包括运行iOS操作系统、OS X操作系统、Android操作系统、Microsoft WindowsTM操作系统、Unix操作系统、Linux操作系统、Xenix操作系统、IBM AIXTM操作系统,Hewlett-PackardUXTM操作系统、Novell NetwareTM操作系统、Sun Microsystems SolarisTM操作系统、OS/2TM操作系统、BeOSTM操作系统、Macintosh操作系统、Apache操作系统、OpenStepTM操作系统或其他操作系统或平台的处理机。
应了解的是,为了实施如上所述的本发明的方法,处理机的处理器和/或存储器不必物理地位于同一地理位置。也就是说,由处理机使用的处理器和存储器中的每一个可以位于地理上不同的位置并且被连接以便以任何合适的方式进行通信。另外,应了解的是,处理器和/或存储器中的每一个可以由仪器的不同的物理部件组成。因此,处理器不必是在一个位置中的仪器的单个部件,而存储器是在另一个位置中的仪器的另一个单个部件。也就是说,预期处理器可以是在两个不同物理位置中的仪器的两个部件。仪器的两个不同部件可以任何适当的方式连接。另外,存储器可以包括在两个或更多个物理位置中的存储器的两个或更多部分。
为了进一步解释,如上所述,由各种组件和各种存储器执行处理。然而,应了解根据本发明的另一实施例,如上所述由两个不同的组件执行的处理可以由单个组件执行。此外,如上所述由一个不同的组件执行的处理可以由两个不同的组件执行。以类似的方式,根据本发明的另一实施例,如上所述由两个不同的存储器部分执行的存储器存储可以由单个存储器部分执行。此外,如上所述由一个不同的存储器部分执行的存储器存储可以由两个存储器部分执行。
此外,各种技术可用于提供各种处理器和/或存储器之间的通信,以及允许本发明的处理器和/或存储器与任何其他实体通信;即,例如,以便获得进一步的指令或访问和使用远程存储器存储。例如,用于提供这种通信的技术可以包括网络、因特网、内联网、外联网、局域网、以太网、经由蜂窝塔或卫星的无线通信、或提供通信的任何客户端-服务器系统。这种通信技术可以使用任何合适的协议,例如TCP/IP、UDP或OSI。
如上所述,可以在本发明的处理中使用指令集。指令集可以是程序或软件的形式。例如,软件可以是系统软件或应用软件的形式。例如,软件也可以是以独立程序的集合、在较大程序内的程序模块或程序模块的一部分的形式。使用的软件也可能包括面向对象编程形式的模块化编程。软件告诉处理机如何处理正在被处理的数据。
此外,应了解的是,在本发明的实施方式和操作中使用的指令或指令集可以是适当的形式,使得处理机可以读取指令。例如,形成程序的指令可以是以合适的编程语言的形式,该语言被转换成机器语言或目标代码,以允许一个或多个处理器读取指令。也就是说,使用编译器、汇编器或解释器将特定编程语言中的编程代码或源代码的书面行转换为机器语言。机器语言是一种二进制编码的机器指令,它特定于一种特殊类型的处理机,即,例如特定类型的计算机。计算机理解机器语言。
根据本发明的各种实施例,可以使用任何合适的编程语言。举例说明,所使用的编程语言可以包括例如汇编语言、Ada、APL、Basic、C、C++、COBOL、dBase、Fortran、Java、Modula-2、Pascal、Prolog、REXX、Visual Basic和/或JavaScript。此外,不必结合本发明的系统和方法的操作来使用单一类型的指令或单一编程语言。相反,可以根据需要和/或期望使用任意数量的不同编程语言。
此外,在本发明的实施例中使用的指令和/或数据可以根据期望利用任何压缩或加密技术或算法。加密模块可用于加密数据。此外,例如,可以使用适当的解密模块对文件或其他数据进行解密。
如上所述,本发明可以说明性地体现为处理机的形式,该处理机包括例如包括至少一个存储器的计算机或计算机系统。应了解的是,指令集,例如,即,使计算机操作系统能够执行上述操作的软件,可以根据期望包含在各种各样的媒体或介质中的任何一种上。该各种媒体或介质的任何一个上也可能包含由指令集处理数据。也就是说,用于保存本发明中使用的指令集和/或数据的特定介质(即,处理器中的存储器)可以采用各种物理形式或传输中的任何一种。说明性地,该介质可以是以纸张、纸张透明胶片、光盘、DVD、集成电路、硬盘、软盘、光盘、磁带、RAM、ROM、PROM、EPROM、电线、电缆、光纤、通信信道、卫星传输、存储卡、SIM卡,或其他远程传输,以及本发明的处理器可以读取的任何其他介质或数据源的形式。
此外,在实现本发明的处理机中使用的一个或多个存储器可以是多种形式中的任何一个,以允许存储器如所期望的那样保存指令、数据或其他信息。因此,存储器可能以数据库的形式保存数据。数据库可以使用任何所期望的文件排列,例如平面文件排列或关系数据库排列。
在本发明的系统和方法中,可以利用各种“用户接口”来允许用户与用于实现本发明的一个或多个处理机接合。如本文所使用的,用户接口包括由处理机使用的允许用户与处理机交互的任何硬件、软件或硬件和软件的组合。例如,用户接口可以是以对话屏幕的形式。用户接口还可以包括鼠标、触摸屏、键盘、小键盘、语音读取器、语音识别器、对话屏幕、菜单框、列表、复选框、切换开关、按钮或任何其它设备中的任何一个,当用户接口处理指令集和/或向处理机提供信息时,允许用户接收有关处理机操作的信息。因此,用户接口是在用户和处理机之间提供通信的任何设备。例如,用户通过用户接口向处理机提供的信息可以是命令、数据选择或其他一些输入的形式。
如上所述,处理机利用用户接口来执行指令集,使得处理机为用户处理数据。处理机通常使用用户接口与用户交互,以传递信息或从用户接收信息。然而,应了解的是,根据本发明的系统和方法的一些实施例,人类用户不必实际与本发明的处理机使用的用户接口交互。相反,还设想本发明的用户接口可以与另一处理机(而不是人类用户)交互,即,传递和接收信息。因此,另一处理机可以被特征化为用户。此外,预期在本发明的系统和方法中使用的用户接口可以部分地与另一个或多个处理机交互,同时也可以部分地与人类用户交互。
本领域技术人员容易理解,本发明易于广泛实用和应用。在不脱离本发明的实质内容或范围的情况下,本发明的许多实施例和改编(除本文所述的实施例和改编外)以及许多变体、修改和等效布置将从本发明及其前面的描述中是明显的或合理地建议。
因此,虽然本发明已经在这里相对于其示例性实施例进行了详细描述,但是应当理解,本公开仅是本发明的说明性和示例性的,并且旨在提供本发明的使能公开。因此,上述公开并不旨在解释或限制本发明或以其他方式排除任何其他此类实施例、调整、变体、修改或等效布置。
Claims (16)
1.一种用于调度在多个云服务平台之间功能代码的执行的系统,所述系统包括:
网关,其中所述网关包括至少一个连接器,所述连接器被配置成接收引入的功能代码;
云服务平台数据聚合器,其中所述云服务平台数据聚合器被配置为从所述多个云服务平台中的每一个接收服务参数;以及
度量调度器,其中所述度量调度器定义用于将所述引入的功能代码路由到所述多个云服务平台中的至少一个的策略,
其中,所述网关被配置为基于(i)由所述多个云服务平台中的每一个提供的所述服务参数和(ii)由所述度量调度器提供的所述策略,将所述引入的功能代码提供给所述多个云服务平台中的一个以供执行。
2.根据权利要求1所述的系统,其进一步包括:
图形用户接口,其中所述图形用户接口被配置为显示所述服务参数中的至少一个。
3.根据权利要求1所述的系统,其中所述网关基于在所述至少一个连接器处的所述引入的功能代码触发对所述多个云服务平台中的一个的功能调用。
4.根据权利要求3所述的系统,其中所述功能经由第一调用机制和第二调用机制中的一个调用,其中所述第一调用机制与专有计算服务相关联,以及所述第二调用机制与开源计算服务相关联。
5.根据权利要求3所述的系统,其中所述至少一个连接器是为在向所述网关注册应用程序期间提供所述引入数据的应用程序定义的。
6.根据权利要求1所述的系统,其中所述至少一个连接器中的每一个都与不同的协议相关联。
7.根据权利要求1所述的系统,其中所述聚合器还被配置为从所述多个云服务平台中的每一个接收合规性和安全性信息。
8.根据权利要求1所述的系统,其中所述网关实现路由算法,以便针对所述多个云服务平台中的每一个确定(i)执行与所述功能代码相关联的功能所需的资源和时间,(ii)针对所述功能所使用的语言,(iii)由所述云服务平台为执行所述功能而供应的价格。
9.根据权利要求1所述的系统,其中所述网关、所述聚合器和所述度量调度器通过一个或多个计算设备实现。
10.一种用于调度在多个云服务平台之间功能代码的执行的方法,所述方法包括:
利用网关接收引入的功能代码;
利用云服务平台数据聚合器从所述多个云服务平台中的每一个接收服务参数;以及
利用所述网关,基于所述多个云服务平台中的每一个提供的所述服务参数,将所述引入的功能代码路由到所述多个云服务平台中的一个以供执行。
11.根据权利要求10所述的方法,其进一步包括:
利用图形用户接口显示所述服务参数中的至少一个。
12.根据权利要求10所述的方法,其进一步包括:
使用所述网关,基于所述引入的功能代码触发对所述多个云服务平台中的一个的功能调用。
13.根据权利要求12所述的方法,其中所述功能经由第一调用机制和第二调用机制中的一个调用,其中所述第一调用机制与专有计算服务相关联,以及所述第二调用机制与开源计算服务相关联。
14.根据权利要求10所述的方法,其进一步包括:
利用网关为所述多个云服务平台中的每一个确定(i)执行与所述功能代码相关联的功能所需的资源和时间,(ii)针对所述功能所使用的语言,以及(iii)由所述云服务平台为执行所述功能而供应的价格。
15.根据权利要求10所述的方法,其中所述网关和所述聚合器利用一个或多个计算设备实现。
16.一种用于调度在多个云服务平台之间功能代码的执行的系统,所述系统包括:
第一计算设备,其中所述第一计算设备被配置成接收引入的功能代码;以及
第二计算设备,其中所述第二计算设备被配置为从所述多个云服务平台中的每一个接收服务参数,
其中,所述第一计算设备被配置成基于所述多个云服务平台中的每一个所提供的所述服务参数,将所述引入的功能代码提供给所述多个云服务平台中的一个以供执行。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862670243P | 2018-05-11 | 2018-05-11 | |
US62/670,243 | 2018-05-11 | ||
PCT/US2019/031822 WO2019217889A1 (en) | 2018-05-11 | 2019-05-10 | Function as a service gateway |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112771500A true CN112771500A (zh) | 2021-05-07 |
CN112771500B CN112771500B (zh) | 2024-05-24 |
Family
ID=68464415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980044521.8A Active CN112771500B (zh) | 2018-05-11 | 2019-05-10 | 功能即服务网关 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11310335B2 (zh) |
EP (1) | EP3791277A4 (zh) |
CN (1) | CN112771500B (zh) |
SG (1) | SG11202011209XA (zh) |
WO (1) | WO2019217889A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10678522B1 (en) * | 2018-12-14 | 2020-06-09 | Mouri Tech Llc | Compiler and method for compiling business rules for a serverless runtime environment |
US10798157B2 (en) * | 2018-12-28 | 2020-10-06 | Intel Corporation | Technologies for transparent function as a service arbitration for edge systems |
US10917461B2 (en) * | 2019-03-29 | 2021-02-09 | Intel Corporation | Technologies for matching security requirements of function-as-a-service services in edge clouds |
US11055256B2 (en) | 2019-04-02 | 2021-07-06 | Intel Corporation | Edge component computing system having integrated FaaS call handling capability |
US11082333B1 (en) * | 2019-09-05 | 2021-08-03 | Turbonomic, Inc. | Systems and methods for managing resources in a serverless workload |
JP7434560B2 (ja) | 2019-12-13 | 2024-02-20 | ライブパーソン, インコーポレイテッド | 双方向通信システムのためのサービスとしての機能クラウドチャットボット |
US11863673B1 (en) | 2019-12-17 | 2024-01-02 | APPDIRECT, Inc. | White-labeled data connections for multi-tenant cloud platforms |
CN111209084B (zh) * | 2020-01-12 | 2022-11-15 | 苏州浪潮智能科技有限公司 | 一种faas分布式计算方法和装置 |
CN111309304B (zh) * | 2020-02-11 | 2023-07-11 | 北京字节跳动网络技术有限公司 | 一种生成idl文件的方法、装置、介质和电子设备 |
CN111752688A (zh) * | 2020-06-03 | 2020-10-09 | 五八有限公司 | 一种数据获取方法、装置、电子设备及存储介质 |
US11671419B2 (en) * | 2020-09-30 | 2023-06-06 | APPDIRECT, Inc. | Multi-cloud data connections for white-labeled platforms |
CN114697395A (zh) * | 2020-12-11 | 2022-07-01 | 北京神州泰岳软件股份有限公司 | 服务资源调用执行方法、装置、服务网关和可读存储介质 |
CN113300985B (zh) * | 2021-03-30 | 2023-04-07 | 阿里巴巴(中国)有限公司 | 数据处理方法、装置、设备和存储介质 |
US11995473B2 (en) * | 2021-07-28 | 2024-05-28 | International Business Machines Corporation | System and apparatus for FaaS business goals optimization |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100131624A1 (en) * | 2008-11-26 | 2010-05-27 | James Michael Ferris | Systems and methods for multiple cloud marketplace aggregation |
US20100235355A1 (en) * | 2009-03-13 | 2010-09-16 | Novell, Inc. | System and method for unified cloud management |
US20110153727A1 (en) * | 2009-12-17 | 2011-06-23 | Hong Li | Cloud federation as a service |
US20130066940A1 (en) * | 2010-05-20 | 2013-03-14 | Weixiang Shao | Cloud service broker, cloud computing method and cloud system |
US20130067090A1 (en) * | 2011-09-12 | 2013-03-14 | Microsoft Corporation | Coordination engine for cloud selection |
US20130080509A1 (en) * | 2011-09-27 | 2013-03-28 | Alcatel-Lucent Shanghai Bell Co. Ltd. | Cloud computing access gateway and method for providing a user terminal access to a cloud provider |
KR20150053675A (ko) * | 2013-11-07 | 2015-05-18 | 경희대학교 산학협력단 | 클라우드 서버의 중개 방법 |
US20150332357A1 (en) * | 2014-05-16 | 2015-11-19 | Centurylink Intellectual Property Llc | System and Method for Service Provider Cloud Services |
US20160019636A1 (en) * | 2013-03-15 | 2016-01-21 | Gravitant, Inc | Cloud service brokerage service store |
CN106464736A (zh) * | 2014-10-30 | 2017-02-22 | 环球互连及数据中心公司 | 用于基于云的服务交换的实时配置和管理的互连平台 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7729363B2 (en) * | 2005-01-24 | 2010-06-01 | Research In Motion Limited | System and method for managing communication for component applications |
US20060235978A1 (en) * | 2005-04-18 | 2006-10-19 | Viera Bibr | System and method for connecting wireless applications to heterogeneous backend servers via a gateway server |
US8626822B2 (en) * | 2008-08-28 | 2014-01-07 | Hewlett-Packard Development Company, L.P. | Method for implementing network resource access functions into software applications |
US20110154353A1 (en) * | 2009-12-22 | 2011-06-23 | Bmc Software, Inc. | Demand-Driven Workload Scheduling Optimization on Shared Computing Resources |
US20110173626A1 (en) * | 2010-01-12 | 2011-07-14 | Nec Laboratories America, Inc. | Efficient maintenance of job prioritization for profit maximization in cloud service delivery infrastructures |
JP5925774B2 (ja) * | 2010-07-30 | 2016-05-25 | アクセンチュア グローバル サービスィズ リミテッド | インテリジェントコアエンジン |
US9716634B2 (en) * | 2013-03-15 | 2017-07-25 | International Business Machines Corporation | Fulfillment of cloud service orders |
US9818127B2 (en) * | 2013-03-15 | 2017-11-14 | International Business Machines Corporation | Implementing comparison of cloud service provider package offerings |
US20140280964A1 (en) * | 2013-03-15 | 2014-09-18 | Gravitant, Inc. | Systems, methods and computer readable mediums for implementing cloud service brokerage platform functionalities |
US10860390B2 (en) * | 2017-06-28 | 2020-12-08 | Intel Corporation | Microservices architecture |
US11385944B2 (en) * | 2017-07-10 | 2022-07-12 | Nokia Solutions And Networks Oy | Event handling in distributed event handling systems |
US10742750B2 (en) * | 2017-07-20 | 2020-08-11 | Cisco Technology, Inc. | Managing a distributed network of function execution environments |
US10671360B1 (en) * | 2017-11-03 | 2020-06-02 | EMC IP Holding Company LLC | Resource-aware compiler for multi-cloud function-as-a-service environment |
-
2019
- 2019-05-10 WO PCT/US2019/031822 patent/WO2019217889A1/en active Application Filing
- 2019-05-10 SG SG11202011209XA patent/SG11202011209XA/en unknown
- 2019-05-10 US US16/409,353 patent/US11310335B2/en active Active
- 2019-05-10 CN CN201980044521.8A patent/CN112771500B/zh active Active
- 2019-05-10 EP EP19800645.4A patent/EP3791277A4/en active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100131624A1 (en) * | 2008-11-26 | 2010-05-27 | James Michael Ferris | Systems and methods for multiple cloud marketplace aggregation |
US20100235355A1 (en) * | 2009-03-13 | 2010-09-16 | Novell, Inc. | System and method for unified cloud management |
US20110153727A1 (en) * | 2009-12-17 | 2011-06-23 | Hong Li | Cloud federation as a service |
US20130066940A1 (en) * | 2010-05-20 | 2013-03-14 | Weixiang Shao | Cloud service broker, cloud computing method and cloud system |
US20130067090A1 (en) * | 2011-09-12 | 2013-03-14 | Microsoft Corporation | Coordination engine for cloud selection |
US20130080509A1 (en) * | 2011-09-27 | 2013-03-28 | Alcatel-Lucent Shanghai Bell Co. Ltd. | Cloud computing access gateway and method for providing a user terminal access to a cloud provider |
US20160019636A1 (en) * | 2013-03-15 | 2016-01-21 | Gravitant, Inc | Cloud service brokerage service store |
KR20150053675A (ko) * | 2013-11-07 | 2015-05-18 | 경희대학교 산학협력단 | 클라우드 서버의 중개 방법 |
US20150332357A1 (en) * | 2014-05-16 | 2015-11-19 | Centurylink Intellectual Property Llc | System and Method for Service Provider Cloud Services |
CN106464736A (zh) * | 2014-10-30 | 2017-02-22 | 环球互连及数据中心公司 | 用于基于云的服务交换的实时配置和管理的互连平台 |
Also Published As
Publication number | Publication date |
---|---|
EP3791277A1 (en) | 2021-03-17 |
CN112771500B (zh) | 2024-05-24 |
EP3791277A4 (en) | 2022-01-26 |
US20190349447A1 (en) | 2019-11-14 |
WO2019217889A1 (en) | 2019-11-14 |
SG11202011209XA (en) | 2020-12-30 |
US11310335B2 (en) | 2022-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112771500B (zh) | 功能即服务网关 | |
US11005969B2 (en) | Problem solving in a message queuing system in a computer network | |
US10733557B2 (en) | Optimization of a workflow employing software services | |
US8380837B2 (en) | Software license management within a cloud computing environment | |
US9336059B2 (en) | Forecasting capacity available for processing workloads in a networked computing environment | |
US10965566B2 (en) | System and method for detecting changes in cloud service up-time | |
US11157318B2 (en) | Optimizing timeouts and polling intervals | |
US20190318219A1 (en) | Personalized artificial intelligence interactions and customized responses of a computer system | |
US20150142950A1 (en) | Management of cloud provider selection | |
US10282208B2 (en) | Cognitive thread management in a multi-threading application server environment | |
US10305752B2 (en) | Automatically orchestrating the compliance of cloud services to selected standards and policies | |
US9473304B1 (en) | Generation and distribution of named, definable, serialized tokens | |
US20190213511A1 (en) | Predictive service-reduction remediation | |
US11288601B2 (en) | Self-learning selection of information-analysis runtimes | |
US10581696B2 (en) | Intelligent information adapter generation for service management | |
CN110011875A (zh) | 拨测方法、装置、设备及计算机可读存储介质 | |
US11755305B2 (en) | Automatic update scheduler systems and processes | |
US20170012897A1 (en) | Intelligent framework for shared services orchestration | |
US10554770B2 (en) | Dynamic cognitive optimization of web applications | |
AU2021398915B2 (en) | Coordinating requests actioned at a scalable application | |
US20190069121A1 (en) | Direct update of mobile applications based on features used | |
US20230056965A1 (en) | Dynamic multi-stream deployment planner | |
KR20230058498A (ko) | 성능 보고서 생성 및 업데이트 |
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 |