IP Library Patent Application 18371762
Patent Application
App. No. 18/371,762

FUNCTIONS AS A SERVICE

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
18/371,762
Abstract

Some embodiments of the invention provide a method for providing a functions as a service (FaaS). The method is performed at a FaaS framework executing in a first cloud. The method receives a first API (Application Programming Interface) call invoking a particular function that is stored by for the FaaS framework. The method selects, from multiple cloud providers, a particular cloud provider for executing the particular function. The method sends executable code for the particular function in a format compatible with the selected particular cloud provider to the particular cloud provider to use to instantiate and execute the particular function.

Claims (35)

1 . A method of providing a functions as a service (FaaS), the method comprising:

at a FaaS framework executing in a first cloud:

receiving a first API (Application Programming Interface) call invoking a particular function that is stored by for the FaaS framework;

selecting, from a plurality of cloud providers, a particular cloud provider for executing the particular function; and

sending executable code for the particular function in a format compatible with the selected particular cloud provider to the particular cloud provider to use to instantiate and execute the particular function.

2 . The method of claim 1 further comprising:

receiving, from the particular cloud provider, a result of a desired operation of the particular function; and

providing the result to a source of the first API call.

3 . The method of claim 2 , wherein after the particular cloud provider provides the result to the FaaS framework, the particular cloud provider discards the particular function.

4 . The method of claim 1 , wherein the executable code is written in a particular programming language, wherein identifying the particular cloud provider for executing the particular function comprises identifying a cloud provider that supports the particular programming language.

5 . The method of claim 4 , wherein when at least two different cloud providers support the particular programming language, identifying the particular cloud provider for executing the particular function comprises identifying a cloud provider associated with a lowest cost for executing the particular function.

6 . The method of claim 4 , wherein when at least two different cloud providers support the particular programming language, identifying the particular cloud provider for executing the particular function comprises identifying a cloud provider associated with a best set of performance metrics.

7 . The method of claim 4 , wherein when at least two different cloud providers support the particular programming language, identifying the particular cloud provider for executing the particular function comprises identifying a cloud provider having a most geographically proximate cloud with respect to the first machine.

8 . The method of claim 4 , wherein when at least two different cloud providers support the particular programming language, identifying the particular cloud provider for executing the particular function comprises randomly selecting a cloud provider from the at least two different cloud providers.

9 . The method of claim 4 , wherein when at least two different cloud providers support the particular programming language, identifying the particular cloud provider for executing the particular function comprises using a set of user-defined selection rules.

10 . The method of claim 1 , wherein the particular function is a first function in a plurality of functions stored by the FaaS framework, wherein to invoke the first function, the first API call comprises (i) a name of the first function, (ii) a particular programming language to be used at runtime of the first function, and (iii) a set of input values for the first function.

11 . The method of claim 10 , wherein sending executable code for the first function in the format compatible with the selected particular cloud provider comprises sending to the particular cloud provider a second API call comprising (i) the set of executable code in the particular programming language, (ii) the set of input values, and (iii) a set of credentials that allow the FaaS framework to access the particular cloud provider.

12 . The method of claim 10 , wherein the particular programming language is a first programming language in a plurality of programming language in which the plurality of functions stored by the FaaS framework are written, the method further comprising:

at the FaaS framework:

receiving a third API call invoking a second function that is stored by the FaaS framework, the third API call comprising (i) a name of the second function, (ii) a second programming language to be used at runtime of the second function, and (iii) a set of input values for the second function;

selecting, from the plurality of cloud providers, a second cloud provider for executing the second function; and

sending a fourth API call in a format compatible with the selected second cloud provider to the selected second cloud provider to use to instantiate and execute the second function, wherein the fourth API call comprises (i) a set of executable code for the second function in the particular programming language, (ii) the set of input values for the second function, and (iii) a second set of credentials that allow the FaaS framework to access the second cloud provider.

13 . The method of claim 10 , wherein the plurality of functions stored by the FaaS framework comprises a plurality of user-defined functions provided to the FaaS framework as part of a configuration of the FaaS framework.

14 . A non-transitory machine readable medium storing a program for execution by a set of processing units, the program for a FaaS (functions as a service) framework that executes in a first cloud to provide FaaS, the program comprising sets of instructions for:

receiving a first API (Application Programming Interface) call invoking a particular function that is stored by for the FaaS framework;

selecting, from a plurality of cloud providers, a particular cloud provider for executing the particular function; and

sending executable code for the particular function in a format compatible with the selected particular cloud provider to the particular cloud provider to use to instantiate and execute the particular function.

15 . The non-transitory machine readable medium of claim 14 , the program further comprising sets of instructions for:

receiving, from the particular cloud provider, a result of a desired operation of the particular function; and

providing the result to a source of the first API call, wherein after the particular cloud provider provides the result to the FaaS framework, the particular cloud provider discards the particular function.

16 . The non-transitory machine readable medium of claim 14 , wherein the executable code is written in a particular programming language, wherein identifying the particular cloud provider for executing the particular function comprises identifying a cloud provider that supports the particular programming language.

17 . The non-transitory machine readable medium of claim 16 , wherein when at least two different cloud providers support the particular programming language, the set of instructions for identifying the particular cloud provider for executing the particular function comprises a set of instructions for identifying a cloud provider associated with a lowest cost for executing the particular function.

18 . The non-transitory machine readable medium of claim 16 , wherein when at least two different cloud providers support the particular programming language, the set of instructions for identifying the particular cloud provider for executing the particular function comprises a set of instructions for identifying a cloud provider associated with a best set of performance metrics.

19 . The non-transitory machine readable medium of claim 16 , wherein when at least two different cloud providers support the particular programming language, the set of instructions for identifying the particular cloud provider for executing the particular function comprises a set of instructions for identifying a cloud provider having a most geographically proximate cloud with respect to the first machine.

20 . The non-transitory machine readable medium of claim 16 , wherein when at least two different cloud providers support the particular programming language, the set of instructions for identifying the particular cloud provider for executing the particular function comprises a set of instructions for randomly selecting a cloud provider from the at least two different cloud providers.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2025
From: SHIPKOVENSKI, MIROSLAV KRASIMIROV; FILIPOV, ANTONIO KRISTIYANOV; ZHELYAZKOVA, PETYA GEORGIEVA; POPOVA, VESELA STAYKOVA
To: VMWARE, INC.
Reel/Frame 073206/0110 →
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →