US20210099516A1 - Technologies for transparent function as a service arbitration for edge systems - Google Patents
Technologies for transparent function as a service arbitration for edge systems Download PDFInfo
- Publication number
- US20210099516A1 US20210099516A1 US16/989,210 US202016989210A US2021099516A1 US 20210099516 A1 US20210099516 A1 US 20210099516A1 US 202016989210 A US202016989210 A US 202016989210A US 2021099516 A1 US2021099516 A1 US 2021099516A1
- Authority
- US
- United States
- Prior art keywords
- service provider
- function
- service
- reputation score
- registration
- 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.)
- Abandoned
Links
- 238000005516 engineering process Methods 0.000 title abstract description 6
- 230000006870 function Effects 0.000 claims description 219
- 230000004044 response Effects 0.000 claims description 31
- 238000003860 storage Methods 0.000 claims description 13
- 238000012795 verification Methods 0.000 claims description 6
- 238000000034 method Methods 0.000 description 28
- 238000004891 communication Methods 0.000 description 16
- 238000013500 data storage Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013497 data interchange Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5006—Creating or negotiating SLA contracts, guarantees or penalties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1021—Server selection for load balancing based on client or server locations
-
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- 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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5019—Ensuring fulfilment of SLA
Definitions
- FaaS function as a service
- Typical FaaS systems allow a client to invoke a particular function on-demand, without executing a dedicated service process.
- Typical cloud service providers statically define application requirements, and resource selection for performing requests is typically performed by one or more software orchestration layers and load balancers.
- FIG. 1 is a simplified block diagram of at least one embodiment of a system for transparent function as a service (FaaS) arbitration;
- FIG. 2 is a simplified block diagram of at least one embodiment of various environments of the system of FIG. 1 ;
- FIG. 3 is a simplified flow diagram of at least one embodiment of a method for service provider registration that may be executed by an edge gateway device of FIGS. 1-2 ;
- FIGS. 4 and 5 are a simplified flow diagram of at least one embodiment of a method for service provider and function arbitration that may be executed by an edge gateway device of FIGS. 1-2 ;
- FIG. 6 is a simplified block diagram of at least one embodiment of an edge architecture that may include the system of FIGS. 1-2 .
- references in the specification to “one embodiment,” “an embodiment,” “an illustrative embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may or may not necessarily include that particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
- items included in a list in the form of “at least one A, B, and C” can mean (A); (B); (C); (A and B); (A and C); (B and C); or (A, B, and C).
- items listed in the form of “at least one of A, B, or C” can mean (A); (B); (C); (A and B); (A and C); (B and C); or (A, B, and C).
- the disclosed embodiments may be implemented, in some cases, in hardware, firmware, software, or any combination thereof.
- the disclosed embodiments may also be implemented as instructions carried by or stored on a transitory or non-transitory machine-readable (e.g., computer-readable) storage medium, which may be read and executed by one or more processors.
- the disclosed embodiments may be initially encoded as a set of preliminary instructions (e.g., encoded on a machine-readable storage medium) that may require a preliminary processing operations to prepare the instructions for execution on a destination device.
- the preliminary processing may include combining the instructions with data present on a device, translating the instructions to a different format, performing compression, decompression, encryption, and/or decryption, combining multiple files that include different sections of the instructions, integrating the instructions with other code present on a device, such as a library, an operating system, etc., or similar operations.
- the preliminary processing may be performed by the source compute device (e.g., the device that is to send the instructions), the destination compute device (e.g., the device that is to execute the instructions), or an intermediary device.
- a machine-readable storage medium may be embodied as any storage device, mechanism, or other physical structure for storing or transmitting information in a form readable by a machine (e.g., a volatile or non-volatile memory, a media disc, or other media device).
- a machine e.g., a volatile or non-volatile memory, a media disc, or other media device.
- a system 100 for transparent function as a service (FaaS) arbitration includes an edge gateway 102 , multiple endpoint devices 104 , and multiple service providers 106 .
- each service provider 106 registers with the edge gateway 102 as providing one or more FaaS functions.
- Each endpoint device 104 may submit a request for a FaaS function to the edge gateway 102 using standard interfaces. It may be preferred to have a single interface, but to support legacy implementations and integrate multiple different implementations, the edge gateway 102 may support multiple interfaces to endpoint devices 104 and service providers 106 , effectively performing some level of translation to match between them.
- the edge gateway 102 selects a service provider 106 for each FaaS function request, transforms the request to the specific interface of the service provider 106 , and submits the request for execution.
- the service provider 106 may be selected based on expected service level agreement (SLA), reputation, cost, power, geographical location, or other factors.
- SLA expected service level agreement
- the edge gateway 102 may monitor execution of the FaaS function and update the reputation score of the service provider 106 appropriately.
- the system 100 allows edge endpoint devices 104 to discover and access services provided by multiple service providers 106 , with attestation and security policies transparently managed by the edge gateway 102 .
- the system 100 may dynamically adjust to changes in service provider offerings and application requirements, without requiring customers to constantly query the cloud provider for updates to FaaS service providers and update requirements for forthcoming requests.
- FIG. 1 shows a single edge gateway 102 in the system 100
- the system 100 may include multiple instances of edge gateways 102 .
- Such instances may be responsible for independent subsets of endpoint devices 104 and service providers 106 or may share some or all of those devices 104 , 106 .
- the edge gateway 102 instances may be independent or interconnected by a network (e.g., full or partial mesh interconnects or other interconnect topologies) to be able to match between endpoint devices 104 from one edge gateway 102 instance with service providers 106 from another edge gateway instance 102 .
- the edge gateways 102 may share service provider 106 registrations across the entire system 100 .
- the edge gateway 102 may be embodied as any type of device capable of performing the functions described herein.
- the edge gateway 102 may be embodied as, without limitation, a switch, a router, a network device, a computer, a mobile computing device, a server, a workstation, a multiprocessor system, a distributed computing device, and/or a consumer electronic device.
- the edge gateway 102 may be embodied as a one or more compute sleds, memory sleds, or other racks, sleds, computing chassis, or other components of a physically disaggregated computing device. As shown in FIG.
- the illustrative edge gateway 102 includes a compute engine 120 , an I/O subsystem 122 , a memory 124 , a data storage device 126 , and a communication subsystem 128 . Additionally, in some embodiments, one or more of the illustrative components may be incorporated in, or otherwise form a portion of, another component. For example, the memory 124 , or portions thereof, may be incorporated in the compute engine 120 in some embodiments.
- the compute engine 120 may be embodied as any type of compute engine capable of performing the functions described herein.
- the compute engine 120 may be embodied as a single or multi-core processor(s), digital signal processor, microcontroller, field-programmable gate array (FPGA), or other configurable circuitry, application-specific integrated circuit (ASIC), or other processor or processing/controlling circuit.
- the memory 124 may be embodied as any type of volatile or non-volatile memory or data storage capable of performing the functions described herein. In operation, the memory 124 may store various data and software used during operation of the edge gateway 102 such as operating systems, applications, programs, libraries, and drivers.
- the memory 124 may be communicatively coupled to the compute engine 120 via the I/O subsystem 122 , which may be embodied as circuitry and/or components to facilitate input/output operations with the compute engine 120 , the memory 124 , and other components of the edge gateway 102 .
- the I/O subsystem 122 may be embodied as, or otherwise include, memory controller hubs, input/output control hubs, sensor hubs, host controllers, firmware devices, communication links (i.e., point-to-point links, bus links, wires, cables, light guides, printed circuit board traces, etc.) and/or other components and subsystems to facilitate the input/output operations.
- the memory 124 may be directly coupled to the compute engine 120 , for example via an integrated memory controller hub. Additionally, in some embodiments, the I/O subsystem 122 may form a portion of a system-on-a-chip (SoC) and be incorporated, along with the compute engine 120 , the memory 124 , the accelerator 130 , and/or other components of the edge gateway 102 , on a single integrated circuit chip.
- SoC system-on-a-chip
- the data storage device 126 may be embodied as any type of device or devices configured for short-term or long-term storage of data such as, for example, memory devices and circuits, memory cards, hard disk drives, solid-state drives, non-volatile flash memory, or other data storage devices.
- the communications subsystem 128 may be embodied as any communication circuit, device, or collection thereof, capable of enabling communications between the edge gateway 102 and other remote devices over the network 108 .
- the communications subsystem 128 may be configured to use any one or more communication technology (e.g., wired or wireless communications) and associated protocols (e.g., Ethernet, Bluetooth®, WiMAX, 3G, 4G LTE, 5G, etc.) to effect such communication.
- the accelerator 130 may be embodied as a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), a coprocessor, or other digital logic device capable of performing accelerated functions (e.g., accelerated application functions, accelerated network functions, or other accelerated functions).
- FPGA field-programmable gate array
- ASIC application-specific integrated circuit
- coprocessor or other digital logic device capable of performing accelerated functions (e.g., accelerated application functions, accelerated network functions, or other accelerated functions).
- the accelerator 130 is an FPGA, which may be embodied as an integrated circuit including programmable digital logic resources that may be configured after manufacture.
- the FPGA may include, for example, a configurable array of logic blocks in communication over a configurable data interchange.
- the accelerator 130 may be coupled to the compute engine 120 via a high-speed connection interface such as a peripheral bus (e.g., a PCI Express bus) or an inter-processor interconnect (e.g., an in-die interconnect (IDI) or QuickPath Interconnect (QPI)), or via any other appropriate interconnect.
- a peripheral bus e.g., a PCI Express bus
- an inter-processor interconnect e.g., an in-die interconnect (IDI) or QuickPath Interconnect (QPI)
- IPI in-die interconnect
- QPI QuickPath Interconnect
- Each endpoint device 104 may be embodied as any type of computation or computer device capable of performing the functions described herein, including, without limitation, a computer, a mobile computing device, a wearable computing device, a network appliance, a web appliance, a distributed computing system, an autonomous vehicle, an autonomous aerial vehicle, an Internet of Things (IoT) sensor, an IoT gateway, an industrial automation device, a processor-based system, and/or a consumer electronic device.
- each endpoint device 104 may include components and features similar to the edge gateway 102 , such as a compute engine 120 , I/O subsystem 122 , memory 124 , data storage 126 , communication subsystem 128 , and/or various peripheral devices. Those individual components of each endpoint device 104 may be similar to the corresponding components of the edge gateway 102 , the description of which is applicable to the corresponding components of the endpoint device 104 and is not repeated for clarity of the present description.
- Each service provider 106 may be embodied as any type of computation or computer device capable of performing the functions described herein, including, without limitation, a switch, a router, a network device, a computer, a mobile computing device, a server, a workstation, a multiprocessor system, a distributed computing device, and/or a consumer electronic device. Additionally or alternatively, each service provider 106 may be embodied as a one or more compute sleds, memory sleds, or other racks, sleds, computing chassis, or other components of a physically disaggregated computing device.
- each service provider 106 may include components and features similar to the edge gateway 102 , such as a compute engine 120 , I/O subsystem 122 , memory 124 , data storage 126 , communication subsystem 128 , and/or various peripheral devices. Those individual components of each service provider 106 may be similar to the corresponding components of the edge gateway 102 , the description of which is applicable to the corresponding components of the service provider 106 and is not repeated for clarity of the present description.
- the edge gateway 102 , the endpoint devices 104 , and the service providers 106 may be configured to transmit and receive data with each other and/or other devices of the system 100 over the network 108 .
- the network 108 may be embodied as any number of various wired and/or wireless networks.
- the network 108 may be embodied as, or otherwise include a mobile access network, a network edge infrastructure, a wired or wireless local area network (LAN), and/or a wired or wireless wide area network (WAN).
- the network 108 may include any number of additional devices, such as additional base stations, access points, computers, routers, and switches, to facilitate communications among the devices of the system 100 .
- the network 108 is embodied as an edge network fabric.
- the edge gateway 102 establishes an environment 200 during operation.
- the illustrative environment 200 includes a function execution interface 202 , a registration manager 204 , a service provider manager 206 , a transform manager 208 , and a function execution manager 210 .
- the various components of the environment 200 may be embodied as hardware, firmware, software, or a combination thereof.
- one or more of the components of the environment 200 may be embodied as circuitry or collection of electrical devices (e.g., function execution interface circuitry 202 , registration manager circuitry 204 , service provider manager circuitry 206 , transform manager circuitry 208 , and/or function execution manager circuitry 210 ). It should be appreciated that, in such embodiments, one or more of the function execution interface circuitry 202 , the registration manager circuitry 204 , the service provider manager circuitry 206 , the transform manager circuitry 208 , and/or the function execution manager circuitry 210 may form a portion of the compute engine 120 , the I/O subsystem 122 , the accelerator 130 , and/or other components of the edge gateway 102 . Additionally, in some embodiments, one or more of the illustrative components may form a portion of another component and/or one or more of the illustrative components may be independent of one another.
- electrical devices e.g., function execution interface circuitry 202 , registration manager circuitry 204 , service
- the function execution interface 202 is configured to expose an FaaS function discovery interface to the endpoint devices 104 .
- the function execution interface 202 is further configured to receive a function execution request from an endpoint device 104 .
- the function execution request is indicative of an FaaS function identifier.
- the function execution request may also include other parameters such as an expected service level.
- the function execution interface 202 may be further configured to verify an identity or a security property of the endpoint device 104 in response to receiving the function execution request.
- the service provider manager 206 is configured to select a service provider 106 from multiple registered service providers 106 based on the FaaS function identifier.
- the service provider 106 may be selected based on the expected service level and a service level associated with the service provider 106 , based on a reputation score indicative of a proportion of requests completed by the service provider 106 , based on prior matched requests (e.g., for stateful services), or based on other parameters.
- the transform manager 208 is configured to program the accelerator 130 of the edge gateway 102 with a transform function associated with the service provider 106 and to execute the transform function with the accelerator 130 .
- the transform function transforms the function execution request to a provider request that is compatible with the service provider 106 .
- the function execution manager 210 is configured to submit the provider request to the service provider 106 .
- the provider request may be submitted to the service provider 106 via another edge gateway 102 , as described further below.
- the function execution manager 210 may be further configured to monitor execution status of the provider request and to update the reputation score or cost data based on the execution status.
- the registration manager 204 is configured to receive a registration request from the service provider 106 .
- the registration request is indicative of the FaaS function identifier and the transform function associated with the service provider 106 .
- the registration manager 204 is further configured to receive an attestation from the service provider 106 and verify the registration request and the attestation.
- the attestation may be indicative of a security property of the service provider 106 .
- the verifying the registration request may include verifying an identity of the service provider 106 or the transform function with a core network.
- the registration manager 204 is further configured to register the service provider 106 in response to successfully verifying the registration request and the attestation.
- the registration manager 204 may be further configured to register the service provider 106 with another edge gateway 102 in response verifying the registration request and the attestation.
- the registration manager 204 may be further configured to determine a reputation score associated with the service provider 106 based on the attestation.
- the endpoint device 104 establishes an environment 220 during operation.
- the illustrative environment 220 includes an application function as a service (FaaS) proxy 222 and an edge application 224 .
- the various components of the environment 220 may be embodied as hardware, firmware, software, or a combination thereof.
- one or more of the components of the environment 220 may be embodied as circuitry or collection of electrical devices (e.g., application FaaS proxy circuitry 222 and/or edge application circuitry 224 ).
- one or more of the application FaaS proxy circuitry 222 and/or the edge application circuitry 224 may form a portion of the compute engine, the I/O subsystem, and/or other components of the endpoint device 104 . Additionally, in some embodiments, one or more of the illustrative components may form a portion of another component and/or one or more of the illustrative components may be independent of one another.
- the edge application 224 may be embodied as any internet-of-things application, edge application, or other application executed by the endpoint device 104 .
- the edge application 224 may consume one or more FaaS functions provided by the service providers 106 .
- the application FaaS proxy 222 is configured to submit a function execution request to the edge gateway 102 .
- the function execution request may be submitted in response to a function call or other event triggered by the edge application 224 .
- the service provider 106 establishes an environment 240 during operation.
- the illustrative environment 240 includes an FaaS function subscriber 242 , an FaaS scheduler 244 , and one or more FaaS functions 246 .
- the various components of the environment 240 may be embodied as hardware, firmware, software, or a combination thereof.
- one or more of the components of the environment 240 may be embodied as circuitry or collection of electrical devices (e.g., FaaS function subscriber circuitry 242 , FaaS scheduler circuitry 244 , and/or FaaS function circuitry 246 ).
- one or more of the FaaS function subscriber circuitry 242 , the FaaS scheduler circuitry 244 , and/or the FaaS function circuitry 246 may form a portion of the compute engine, the I/O subsystem, and/or other components of the service provider 106 . Additionally, in some embodiments, one or more of the illustrative components may form a portion of another component and/or one or more of the illustrative components may be independent of one another.
- the FaaS function subscriber 242 is configured to submit a registration request to the edge gateway 102 .
- the registration request identifies one or more FaaS functions 246 of the service provider 106 and any associated transform functions.
- the FaaS scheduler 244 is configured to receive a provider request that identifies a FaaS function 246 from the edge gateway 102 .
- Each FaaS function 246 may execute a function, subroutine, lambda, or other computer code in response to being invoked for execution by the FaaS scheduler 244 .
- the service provider 106 communicates with the edge gateway 102 and, in some embodiments, may communicate directly with the endpoint device 104 (e.g., to provide execution results of the FaaS function 246 ).
- the edge gateway 102 may execute a method 300 for service provider registration. It should be appreciated that, in some embodiments, the operations of the method 300 may be performed by one or more components of the environment 200 of the edge gateway 102 as shown in FIG. 2 .
- the method 300 begins in block 302 , in which the edge gateway 102 receives a registration request from a FaaS service provider 106 .
- the registration request may include one or more parameters as shown in Function 1 , below.
- EFSP ID Edge FaaS Service Provider ID
- Each SLA may specify one or more performance, accuracy, availability, latency, bandwidth, or other requirements that the service provider 106 agrees to meet during execution of the FaaS function.
- the Cost may be embodied as any cost associated with processing the FaaS function (e.g., per-invocation cost, bandwidth cost, etc.).
- the transform function bitstream may be embodied as bitstream data that may be installed and executed on the accelerator 130 of the edge gateway 102 . As described further below, the transform function maps between a standardized function interface or API and a specific interface of the service provider 106 .
- the request further includes a service provider certificate associated with the service provider 106 .
- the edge gateway 102 validates the service provider certificate included with the registration request.
- the edge gateway 102 may validate that the service provider 106 is trusted by a core network.
- the service provider trust may be validated, for example, with a communication provider core network, or with any other network or device that is logically closer to the core network.
- the edge gateway 102 may validate that the transfer function is trusted by the core network. For example, the edge gateway 102 may validate a certificate, signature, or other identification of the transfer function with the core network.
- the edge gateway 102 receives an attestation of one or more protection properties from the service provider 106 .
- the attestation may be embodied as any signed data or other proof of the protection properties.
- the protection properties may include security or other properties of the execution environment of the FaaS function 246 .
- the protection properties may include key protection properties for keys used to protect end-to-end payloads.
- the edge gateway 102 verifies the attestation received from the service provider 106 .
- the edge gateway 102 determines whether both the registration request and the attestation received from the service provider 106 were verified. If either were not successfully verified, the registration request is rejected and the method 300 loops back to block 302 . If the registration request and the attestation are verified, the method 300 advances to block 316 .
- the edge gateway 102 registers the service provider 106 for the requested FaaS function identifier and/or type. As described further below, after registration, the edge gateway 102 may allow endpoint devices 104 to discover and access the service provider 106 and/or the FaaS functions 246 provided by the service provider 106 . In some embodiments, in block 318 the edge gateway 102 may update a reputation score associated with the service provider 106 based on attestation results. For example, a higher reputation score may be assigned for service providers 106 that attest to a more secure execution environment and/or key protection properties. As described further below, the edge gateway 102 may select service providers 106 based upon expected reputation score.
- the edge gateway 102 may determine a separate reputation score based on the attestation results related to trust/security/protection properties as compared to a reputation score based on reliability/availability/response time as discussed below in connection with FIG. 5 .
- the edge gateway 102 may execute a method 400 for service provider and function arbitration. It should be appreciated that, in some embodiments, the operations of the method 400 may be performed by one or more components of the environment 200 of the edge gateway 102 as shown in FIG. 2 .
- the method 400 begins in block 402 , in which in some embodiments the edge gateway 102 may register with an orchestrator or other orchestration service.
- the edge gateway 102 may, for example, register functions for discovery and execution with the orchestrator as a service provider.
- the orchestrator may expose discovery interfaces to the endpoint devices 104 as entry points to FaaS function execution.
- the edge gateway 102 may expose service provider 106 and FaaS function discovery interfaces to the endpoint devices 104 .
- the edge gateway 102 may expose RESTful and/or non-RESTful interfaces for service provider discovery, function discovery, and/or function execution.
- the edge gateway 102 may accept subscriptions from various service providers 106 that host specific FaaS functions or workloads.
- the function discovery interface may provide a list of functions provided by a service provider 106 according to a particular FasS type (e.g., video analytics, face recognition, etc.), as well as other properties such as SLA, cost, reputation score, bit-stream acceleration availability, and function-specific properties.
- the function execution interface may provide a generic API to invoke for scheduling FaaS function for execution.
- the edge gateway 102 receives an execution request for a FaaS function from an endpoint device 104 .
- the execution request may include one or more parameters as shown in Function 2 , below.
- the FaaS ID parameter identifies the FaaS function(s) 246 requested by the endpoint device 104 .
- the FaaS ID may identify a FaaS type or class of function requested by the endpoint device 104 (e.g., face recognition, video analytics, or other function).
- the Expected SLA parameter indicates the service level agreement (SLA) requested by the endpoint device 104 .
- each SLA may specify one or more performance, accuracy, availability, latency, bandwidth, or other requirements that the endpoint device 104 requests be met during execution of the FaaS function.
- Expected cost may be embodied as a maximum cost other requested cost associated with processing the FaaS function (e.g., per-invocation cost, bandwidth cost, etc.).
- the Expected Reputation Score may be embodied as a minimum score or other requested reputation score for the service provider 106 that executes the FaaS function. Reputation score may be embodied as any value indicative of how likely the service provider 106 is to satisfy the expected SLA.
- the reputation score may be embodied as a percentage of FaaS function executions by a particular service provider 106 that have satisfied the associated SLA.
- the Expected Reputation Score may be represented as, for example, a score as in M of N stars, a real value between 0 and 1, or other score, and may include a range from low to high values.
- Expected EFSP may be embodied as an identifier of a particular service provider 106 requested by the endpoint device 104 .
- the Expected EFSP may be determined by the endpoint device 104 , for example, using a service provider discovery interface of the edge gateway 102 .
- the function execution request may also include one or more function-specific invocation parameters.
- the edge gateway 102 After receiving the execution request, in block 408 the edge gateway 102 verifies the endpoint device 104 and the function execution request.
- the edge gateway 102 may, for example, verify FaaS function invocation parameters for semantic and syntactic correctness. If the endpoint device 104 and/or the function execution request are not verified, the edge gateway 102 may reject the function execution request.
- the edge gateway 102 may verify an identity of the endpoint device 104 .
- the edge gateway 102 may verify a credential of the endpoint device 104 , such as an identity certificate, OAuth 2 token, password, or other credentials.
- the edge gateway 102 may verify one or more security properties of the endpoint device 104 .
- the edge gateway 102 may receive an attestation from the endpoint device 104 and verify the security properties indicated in the attestation.
- the endpoint device 104 may perform any secure attestation protocol, such as a Trusted Computing Group (TCG) TPM Quote operation or an exchange as described in the W 3 C Verifiable Claims data model.
- TCG Trusted Computing Group
- the endpoint device 104 may verify that the expected SLA of the request is authorized by a trusted orchestrator. After successfully verifying the endpoint device 104 and the function execution request, the method 400 advances to block 416 .
- the edge gateway 102 determines whether a service provider 106 was specified in the function execution request. If so, the method 400 skips ahead to block 426 , described below. If no service provider 106 is specified in the request, the method 400 advances to block 418 .
- the edge gateway 102 selects a service provider 106 for the requested FaaS function based on the accepted SLA, reputation score, and/or other parameters associated with the service provider 106 . For example, the edge gateway 102 may select a service provider 106 having an accepted SLA that meets or exceeds the expected SLA included in the function execution request. Similarly, the edge gateway 102 may select a service provider 106 having a reputation score that meets or exceeds the expected reputation score included in the function execution request. The edge gateway 102 selects the service provider 106 from one or more service providers 106 that were previously registered as providing the requested FaaS function as described above in connection with FIG. 3 .
- the edge gateway 102 may select the service provider 106 while applying an endpoint device privacy and/or security control. For example, certain endpoint devices 104 may be restricted from accessing particular service providers 106 based on one or more security policies, privacy policies, or other policies.
- the edge gateway 102 may select from multiple service providers 106 using a scheduling policy. For example, multiple service providers 106 may be registered to provide the requested FaaS function with the expected SLA. In that circumstance, the edge gateway 102 may select among the qualifying service providers 106 using a round-robin scheduling policy or other scheduling policy.
- the edge gateway 102 may select a service provider 106 that was originally registered with a different edge gateway 102 . In those embodiments, the registration information may be shared among multiple edge gateway 102 instances as described above.
- the edge gateway 102 programs a transform function associated with the selected service provider 106 to the accelerator 130 .
- the transform function may be embodied as bitstream, firmware, or other data that may be programmed to the accelerator 130 for execution.
- the accelerator 130 is an FPGA, and the FGPA may be configured or partially configured with bitstream data corresponding to the transform function.
- the edge gateway 102 transforms the function execution request to a service provider request that conforms to the interface provided by the selected service provider 106 using the transform function programmed to the accelerator 130 .
- the function execution request may be a request to a generic face recognition API.
- the accelerator 130 may transform the request, associated parameters, and/or other data into a request matching a particular face recognition API established by the service provider 106 . Transforming the request using the accelerator 130 may reduce latency or otherwise improve performance for servicing the function execution request.
- the edge gateway 102 submits the service provider interface request to the selected service provider 106 for execution.
- the edge gateway 102 may submit the request to an FaaS scheduler or other FaaS component of the service provider 106 .
- the edge gateway 102 may submit the service request via another edge gateway 102 instance, for example the instance to which the service provider 106 originally registered.
- the edge gateway 102 determines whether the selected service provider 106 accepted the service provider interface request. For example, the service provider 106 may accept the request only if sufficient resources are available to satisfy the expected SLA of the request. If the service provider request is not accepted, the method 400 loops back to block 418 , shown in FIG. 4 , in which the edge gateway 102 may select a different service provider 106 for execution. If the service provider request is accepted, the method 400 advances to block 436 .
- the edge gateway 102 monitors the execution status of the FaaS function.
- the edge gateway 102 may, for example, determine whether the service provider 106 has successfully completed processing the FaaS function request, and whether the service provider 106 satisfied the expected SLA. In a system 100 with multiple edge gateway 102 instances, such monitoring may be performed by the edge gateway 102 instance that handled the service provider 106 registration, the edge gateway 102 instance that is handling the FaaS function request, or both instances.
- the edge gateway 102 may monitor the execution status using a telemetry collection infrastructure based on system audit, performance counters, power metering in a main board, power supplies, daughter cards, memory, CPU, FPGAs, GPUs, system software and trusted execution environments, BMCs, or other telemetry system.
- the edge gateway 102 may receive execution results from the service provider 106 and forward the results to the endpoint device 104 .
- the endpoint device 104 and the service provider 106 may communicate directly.
- the edge gateway 102 may poll or otherwise wait for completion of the FaaS function.
- the edge gateway 102 updates data based on the execution results of the FaaS function.
- the edge gateway 102 may update cost and/or billing statistics based on execution of the FaaS function.
- the edge gateway 102 may update a reputation score associated with the service provider 106 based on whether the expected SLA was satisfied. For example, the reputation score may be embodied as a percentage of requests that are satisfied within the expected SLA by the particular service provider 106 .
- diagram 600 shows an edge architecture that may include the system 100 .
- the edge architecture includes multiple layers 602 , 604 , 606 , 608 .
- Each layer includes multiple nodes that may communicate with an edge fabric to other nodes of the same layer and/or nodes at other layers.
- the endpoint devices 104 may be included in the things/endpoint layer 602 .
- the things/endpoint layer 602 may include large numbers of endpoint devices 104 that are heterogeneous, may be mobile, and are widely distributed geographically.
- the access/edge layer 604 may include access network components such as wireless towers, access points, base stations, intermediate nodes, gateways, fog nodes, central offices, and other access network or edge components.
- Components of the access/edge layer 604 may be distributed at the building, small cell, neighborhood, or cell scale. Thus, components of the access/edge layer 604 may be relatively close in physical proximity to components of the things/endpoint layer 602 . As shown, the access/edge layer 604 may include the edge gateway 102 and the service providers 106 .
- the core network layer 606 may include core network routers, network gateways, servers, and other more-centralized computing devices. Components of the core network layer 606 may be distributed regionally or nationally.
- the cloud/Internet layer 608 may include Internet backbone routers, cloud service providers, datacenters, and other cloud resources. The components of the cloud/Internet layer 608 may be distributed globally.
- the edge architecture is organized according to a logical gradient 610 from global, cloud-based components toward local, endpoint devices.
- Components that are closer to the network edge i.e., closer to the endpoint layer 602
- network communications among components closer to the network edge may be faster and/or have lower latency as compared to communications that traverse through layers closer to the network core.
- the same logical gradient 610 may apply to components within a layer.
- the access/edge layer 604 may include numerous, widely spread base stations, street cabinets, and other access nodes as well as less-numerous but more sophisticated central offices or other aggregation nodes.
- FaaS function arbitration and execution in the access/edge layer 608 or other components close to the network edge the system 100 may improve latency and performance as compared to traditional cloud-computing based FaaS architectures.
- the methods 300 and/or 400 may be embodied as various instructions stored on a computer-readable media, which may be executed by the compute engine 120 , the I/O subsystem 122 , the accelerator 130 , and/or other components of the edge gateway 102 to cause the edge gateway 102 to perform the respective method 300 and/or 400 .
- the computer-readable media may be embodied as any type of media capable of being read by the edge gateway 102 including, but not limited to, the memory 124 , the data storage device 126 , firmware devices, other memory or data storage devices of the edge gateway 102 , portable media readable by a peripheral device of the edge gateway 102 , and/or other media.
- An embodiment of the technologies disclosed herein may include any one or more, and any combination of, the examples described below.
- Example 1 includes an edge gateway device for function as a service arbitration, the edge gateway device comprising: a function execution interface to receive a function execution request from an endpoint device, wherein the function execution request is indicative of a function as a service (FaaS) function identifier; a service provider manager to select a service provider device from a plurality of registered service provider devices based on the FaaS function identifier; a transform manager to (i) program an accelerator of the edge gateway device with a transform function associated with the service provider device and (ii) execute the transform function with the accelerator to transform the function execution request to a provider request, wherein the provider request is compatible with the service provider device; and a function execution manager to submit the provider request to the service provider device.
- a function execution interface to receive a function execution request from an endpoint device, wherein the function execution request is indicative of a function as a service (FaaS) function identifier
- a service provider manager to select a service provider device from a plurality of registered service provider devices based
- Example 2 includes the subject matter of Example 1, and wherein: to receive the function execution request comprises to receive an expected service level from the endpoint device; and to select the service provider device comprises to select the service provider device based on the expected service level and a service level associated with the service provider device.
- Example 3 includes the subject matter of any of Examples 1 and 2, and wherein to select the service provider device comprises to select the service provider device based on a reputation score associated with the service provider device, wherein the reputation score is indicative of a proportion of requests completed by the service provider device within the service level associated with the service provider device.
- Example 4 includes the subject matter of any of Examples 1-3, and wherein the function execution manager is further to: monitor an execution status of the provider request in response to submission of the provider request to the service provider device; and update the reputation score based on the execution status.
- Example 5 includes the subject matter of any of Examples 1-4, and wherein to submit the provider request comprises to submit the provider request to the service provider device via a second edge gateway device.
- Example 6 includes the subject matter of any of Examples 1-5, and wherein the function execution manager is further to: monitor an execution status of the provider request in response to submission of the provider request to the service provider device; and update cost data associated with the provider request based on the execution status.
- Example 7 includes the subject matter of any of Examples 1-6, and wherein the function execution interface is further to verify an identity of the endpoint device in response to receipt of the function execution request.
- Example 8 includes the subject matter of any of Examples 1-7, and wherein the function execution interface is further to verify a security property of the endpoint device in response to receipt of the function execution request.
- Example 9 includes the subject matter of any of Examples 1-8, and further comprising a registration manager to: receive a registration request from the service provider device, wherein the registration request is indicative of the FaaS function identifier and the transform function; receive an attestation from the service provider device; verify the registration request and the attestation; and register the service provider device in the plurality of service provider devices in response to verification of the registration request and the attestation; wherein to select the service provider device comprises to select the service provider device in response to registration of the service provider device.
- a registration manager to: receive a registration request from the service provider device, wherein the registration request is indicative of the FaaS function identifier and the transform function; receive an attestation from the service provider device; verify the registration request and the attestation; and register the service provider device in the plurality of service provider devices in response to verification of the registration request and the attestation; wherein to select the service provider device comprises to select the service provider device in response to registration of the service provider device.
- Example 10 includes the subject matter of any of Examples 1-9, and wherein the attestation is indicative of a security property of the service provider device.
- Example 11 includes the subject matter of any of Examples 1-10, and wherein the registration manager is further to determine a reputation score associated with the service provider device based on the attestation.
- Example 12 includes the subject matter of any of Examples 1-11, and wherein to verify the registration request comprises to verify an identity of the service provider device with a core network.
- Example 13 includes the subject matter of any of Examples 1-12, and wherein to verify the registration request comprises to verify the transform function with a core network.
- Example 14 includes the subject matter of any of Examples 1-13, and wherein the registration manager is further to register the service provider device with a second edge gateway device in response to verification of the registration request and the attestation.
- Example 15 includes the subject matter of any of Examples 1-14, and wherein: the function execution interface is further to expose an FaaS function discovery interface to a plurality of endpoint devices; and to receive the function execution request comprises to receive the function execution request in response to exposing of the FaaS function discovery interface.
- Example 16 includes a method for function as a service arbitration, the method comprising: receiving, by an edge gateway device, a function execution request from an endpoint device, wherein the function execution request is indicative of a function as a service (FaaS) function identifier; selecting, by the edge gateway device, a service provider device from a plurality of registered service provider devices based on the FaaS function identifier; programming, by the edge gateway device, an accelerator of the edge gateway device with a transform function associated with the service provider device; executing, by the accelerator, the transform function to transform the function execution request to a provider request, wherein the provider request is compatible with the service provider device; and submitting, by the edge gateway device, the provider request to the service provider device.
- FaaS service
- Example 17 includes the subject matter of Example 16, and wherein: receiving the function execution request comprises receiving an expected service level from the endpoint device; and selecting the service provider device comprises selecting the service provider device based on the expected service level and a service level associated with the service provider device.
- Example 18 includes the subject matter of any of Examples 16 and 17, and wherein selecting the service provider device comprises selecting the service provider device based on a reputation score associated with the service provider device, wherein the reputation score is indicative of a proportion of requests completed by the service provider device within the service level associated with the service provider device.
- Example 19 includes the subject matter of any of Examples 16-18, and further comprising: monitoring, by the edge gateway device, an execution status of the provider request in response to submitting the provider request to the service provider device; and updating, by the edge gateway device, the reputation score based on the execution status.
- Example 20 includes the subject matter of any of Examples 16-19, and wherein submitting the provider request comprises submitting the provider request to the service provider device via a second edge gateway device.
- Example 21 includes the subject matter of any of Examples 16-20, and further comprising: monitoring, by the edge gateway device, an execution status of the provider request in response to submitting the provider request to the service provider device; and updating, by the edge gateway device, cost data associated with the provider request based on the execution status.
- Example 22 includes the subject matter of any of Examples 16-21, and further comprising verifying, by the edge gateway device, an identity of the endpoint device in response to receiving the function execution request.
- Example 23 includes the subject matter of any of Examples 16-22, and further comprising verifying, by the edge gateway device, a security property of the endpoint device in response to receiving the function execution request.
- Example 24 includes the subject matter of any of Examples 16-23, and further comprising: receiving, by the edge gateway device, a registration request from the service provider device, wherein the registration request is indicative of the FaaS function identifier and the transform function; receiving, by the edge gateway device, an attestation from the service provider device; verifying, by the edge gateway device, the registration request and the attestation; and registering, by the edge gateway device, the service provider device in the plurality of service provider devices in response to verifying the registration request and the attestation; wherein selecting the service provider device comprises selecting the service provider device in response to registering the service provider device.
- Example 25 includes the subject matter of any of Examples 16-24, and wherein receiving the attestation comprises receiving an attestation indicative of a security property of the service provider device.
- Example 26 includes the subject matter of any of Examples 16-25, and further comprising determining, by the edge gateway device, a reputation score associated with the service provider device based on the attestation.
- Example 27 includes the subject matter of any of Examples 16-26, and wherein verifying the registration request comprises verifying an identity of the service provider device with a core network.
- Example 28 includes the subject matter of any of Examples 16-27, and wherein verifying the registration request comprises verifying the transform function with a core network.
- Example 29 includes the subject matter of any of Examples 16-28, and further comprising registering, by the edge gateway device, the service provider device with a second edge gateway device in response to verifying the registration request and the attestation.
- Example 30 includes the subject matter of any of Examples 16-29, and further comprising: exposing, by the edge gateway device, a FaaS function discovery interface to a plurality of endpoint devices; wherein receiving the function execution request comprises receiving the function execution request in response to exposing the FaaS function discovery interface.
- Example 31 includes a computing device comprising: a processor; and a memory having stored therein a plurality of instructions that when executed by the processor cause the computing device to perform the method of any of Examples 16-30.
- Example 32 includes one or more non-transitory, computer-readable storage media comprising a plurality of instructions stored thereon that in response to being prepared for execution and subsequently being executed result in a computing performing the method of any of Examples 16-30.
- Example 33 includes a computing device comprising means for performing the method of any of Examples 16-30.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
- This application is a continuation application of U.S. application Ser. No. 16/234,734, entitled “TECHNOLOGIES FOR TRANSPARENT FUNCTION AS A SERVICE ARBITRATION FOR EDGE SYSTEMS,” which was filed on Dec. 28, 2018.
- Certain cloud computing architectures may provide function as a service (FaaS) services. Typical FaaS systems allow a client to invoke a particular function on-demand, without executing a dedicated service process. Typical cloud service providers statically define application requirements, and resource selection for performing requests is typically performed by one or more software orchestration layers and load balancers.
- The concepts described herein are illustrated by way of example and not by way of limitation in the accompanying figures. For simplicity and clarity of illustration, elements illustrated in the figures are not necessarily drawn to scale. Where considered appropriate, reference labels have been repeated among the figures to indicate corresponding or analogous elements.
-
FIG. 1 is a simplified block diagram of at least one embodiment of a system for transparent function as a service (FaaS) arbitration; -
FIG. 2 is a simplified block diagram of at least one embodiment of various environments of the system ofFIG. 1 ; -
FIG. 3 is a simplified flow diagram of at least one embodiment of a method for service provider registration that may be executed by an edge gateway device ofFIGS. 1-2 ; -
FIGS. 4 and 5 are a simplified flow diagram of at least one embodiment of a method for service provider and function arbitration that may be executed by an edge gateway device ofFIGS. 1-2 ; and -
FIG. 6 is a simplified block diagram of at least one embodiment of an edge architecture that may include the system ofFIGS. 1-2 . - While the concepts of the present disclosure are susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and will be described herein in detail. It should be understood, however, that there is no intent to limit the concepts of the present disclosure to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives consistent with the present disclosure and the appended claims.
- References in the specification to “one embodiment,” “an embodiment,” “an illustrative embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may or may not necessarily include that particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described. Additionally, it should be appreciated that items included in a list in the form of “at least one A, B, and C” can mean (A); (B); (C); (A and B); (A and C); (B and C); or (A, B, and C). Similarly, items listed in the form of “at least one of A, B, or C” can mean (A); (B); (C); (A and B); (A and C); (B and C); or (A, B, and C).
- The disclosed embodiments may be implemented, in some cases, in hardware, firmware, software, or any combination thereof. The disclosed embodiments may also be implemented as instructions carried by or stored on a transitory or non-transitory machine-readable (e.g., computer-readable) storage medium, which may be read and executed by one or more processors. Furthermore, the disclosed embodiments may be initially encoded as a set of preliminary instructions (e.g., encoded on a machine-readable storage medium) that may require a preliminary processing operations to prepare the instructions for execution on a destination device. The preliminary processing may include combining the instructions with data present on a device, translating the instructions to a different format, performing compression, decompression, encryption, and/or decryption, combining multiple files that include different sections of the instructions, integrating the instructions with other code present on a device, such as a library, an operating system, etc., or similar operations. The preliminary processing may be performed by the source compute device (e.g., the device that is to send the instructions), the destination compute device (e.g., the device that is to execute the instructions), or an intermediary device. A machine-readable storage medium may be embodied as any storage device, mechanism, or other physical structure for storing or transmitting information in a form readable by a machine (e.g., a volatile or non-volatile memory, a media disc, or other media device).
- In the drawings, some structural or method features may be shown in specific arrangements and/or orderings. However, it should be appreciated that such specific arrangements and/or orderings may not be required. Rather, in some embodiments, such features may be arranged in a different manner and/or order than shown in the illustrative figures. Additionally, the inclusion of a structural or method feature in a particular figure is not meant to imply that such feature is required in all embodiments and, in some embodiments, may not be included or may be combined with other features.
- Referring now to
FIG. 1 , asystem 100 for transparent function as a service (FaaS) arbitration includes anedge gateway 102,multiple endpoint devices 104, andmultiple service providers 106. In use, as described further below, eachservice provider 106 registers with theedge gateway 102 as providing one or more FaaS functions. Eachendpoint device 104 may submit a request for a FaaS function to theedge gateway 102 using standard interfaces. It may be preferred to have a single interface, but to support legacy implementations and integrate multiple different implementations, theedge gateway 102 may support multiple interfaces toendpoint devices 104 andservice providers 106, effectively performing some level of translation to match between them. Theedge gateway 102 selects aservice provider 106 for each FaaS function request, transforms the request to the specific interface of theservice provider 106, and submits the request for execution. Theservice provider 106 may be selected based on expected service level agreement (SLA), reputation, cost, power, geographical location, or other factors. Theedge gateway 102 may monitor execution of the FaaS function and update the reputation score of theservice provider 106 appropriately. Thus, thesystem 100 allowsedge endpoint devices 104 to discover and access services provided bymultiple service providers 106, with attestation and security policies transparently managed by theedge gateway 102. Unlike certain typical cloud architectures, thesystem 100 may dynamically adjust to changes in service provider offerings and application requirements, without requiring customers to constantly query the cloud provider for updates to FaaS service providers and update requirements for forthcoming requests. - Although
FIG. 1 shows asingle edge gateway 102 in thesystem 100, it should understood that thesystem 100 may include multiple instances ofedge gateways 102. Such instances may be responsible for independent subsets ofendpoint devices 104 andservice providers 106 or may share some or all of thosedevices edge gateway 102 instances may be independent or interconnected by a network (e.g., full or partial mesh interconnects or other interconnect topologies) to be able to match betweenendpoint devices 104 from oneedge gateway 102 instance withservice providers 106 from anotheredge gateway instance 102. In some embodiments, theedge gateways 102 may shareservice provider 106 registrations across theentire system 100. - The
edge gateway 102 may be embodied as any type of device capable of performing the functions described herein. For example, theedge gateway 102 may be embodied as, without limitation, a switch, a router, a network device, a computer, a mobile computing device, a server, a workstation, a multiprocessor system, a distributed computing device, and/or a consumer electronic device. Additionally or alternatively, theedge gateway 102 may be embodied as a one or more compute sleds, memory sleds, or other racks, sleds, computing chassis, or other components of a physically disaggregated computing device. As shown inFIG. 1 , theillustrative edge gateway 102 includes acompute engine 120, an I/O subsystem 122, amemory 124, adata storage device 126, and acommunication subsystem 128. Additionally, in some embodiments, one or more of the illustrative components may be incorporated in, or otherwise form a portion of, another component. For example, thememory 124, or portions thereof, may be incorporated in thecompute engine 120 in some embodiments. - The
compute engine 120 may be embodied as any type of compute engine capable of performing the functions described herein. For example, thecompute engine 120 may be embodied as a single or multi-core processor(s), digital signal processor, microcontroller, field-programmable gate array (FPGA), or other configurable circuitry, application-specific integrated circuit (ASIC), or other processor or processing/controlling circuit. Similarly, thememory 124 may be embodied as any type of volatile or non-volatile memory or data storage capable of performing the functions described herein. In operation, thememory 124 may store various data and software used during operation of theedge gateway 102 such as operating systems, applications, programs, libraries, and drivers. As shown, thememory 124 may be communicatively coupled to thecompute engine 120 via the I/O subsystem 122, which may be embodied as circuitry and/or components to facilitate input/output operations with thecompute engine 120, thememory 124, and other components of theedge gateway 102. For example, the I/O subsystem 122 may be embodied as, or otherwise include, memory controller hubs, input/output control hubs, sensor hubs, host controllers, firmware devices, communication links (i.e., point-to-point links, bus links, wires, cables, light guides, printed circuit board traces, etc.) and/or other components and subsystems to facilitate the input/output operations. In some embodiments, thememory 124 may be directly coupled to thecompute engine 120, for example via an integrated memory controller hub. Additionally, in some embodiments, the I/O subsystem 122 may form a portion of a system-on-a-chip (SoC) and be incorporated, along with thecompute engine 120, thememory 124, theaccelerator 130, and/or other components of theedge gateway 102, on a single integrated circuit chip. - The
data storage device 126 may be embodied as any type of device or devices configured for short-term or long-term storage of data such as, for example, memory devices and circuits, memory cards, hard disk drives, solid-state drives, non-volatile flash memory, or other data storage devices. Thecommunications subsystem 128 may be embodied as any communication circuit, device, or collection thereof, capable of enabling communications between theedge gateway 102 and other remote devices over thenetwork 108. Thecommunications subsystem 128 may be configured to use any one or more communication technology (e.g., wired or wireless communications) and associated protocols (e.g., Ethernet, Bluetooth®, WiMAX, 3G, 4G LTE, 5G, etc.) to effect such communication. - The
accelerator 130 may be embodied as a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), a coprocessor, or other digital logic device capable of performing accelerated functions (e.g., accelerated application functions, accelerated network functions, or other accelerated functions). Illustratively, theaccelerator 130 is an FPGA, which may be embodied as an integrated circuit including programmable digital logic resources that may be configured after manufacture. The FPGA may include, for example, a configurable array of logic blocks in communication over a configurable data interchange. Theaccelerator 130 may be coupled to thecompute engine 120 via a high-speed connection interface such as a peripheral bus (e.g., a PCI Express bus) or an inter-processor interconnect (e.g., an in-die interconnect (IDI) or QuickPath Interconnect (QPI)), or via any other appropriate interconnect. - Each
endpoint device 104 may be embodied as any type of computation or computer device capable of performing the functions described herein, including, without limitation, a computer, a mobile computing device, a wearable computing device, a network appliance, a web appliance, a distributed computing system, an autonomous vehicle, an autonomous aerial vehicle, an Internet of Things (IoT) sensor, an IoT gateway, an industrial automation device, a processor-based system, and/or a consumer electronic device. As such, eachendpoint device 104 may include components and features similar to theedge gateway 102, such as acompute engine 120, I/O subsystem 122,memory 124,data storage 126,communication subsystem 128, and/or various peripheral devices. Those individual components of eachendpoint device 104 may be similar to the corresponding components of theedge gateway 102, the description of which is applicable to the corresponding components of theendpoint device 104 and is not repeated for clarity of the present description. - Each
service provider 106 may be embodied as any type of computation or computer device capable of performing the functions described herein, including, without limitation, a switch, a router, a network device, a computer, a mobile computing device, a server, a workstation, a multiprocessor system, a distributed computing device, and/or a consumer electronic device. Additionally or alternatively, eachservice provider 106 may be embodied as a one or more compute sleds, memory sleds, or other racks, sleds, computing chassis, or other components of a physically disaggregated computing device. As such, eachservice provider 106 may include components and features similar to theedge gateway 102, such as acompute engine 120, I/O subsystem 122,memory 124,data storage 126,communication subsystem 128, and/or various peripheral devices. Those individual components of eachservice provider 106 may be similar to the corresponding components of theedge gateway 102, the description of which is applicable to the corresponding components of theservice provider 106 and is not repeated for clarity of the present description. - As discussed in more detail below, the
edge gateway 102, theendpoint devices 104, and theservice providers 106 may be configured to transmit and receive data with each other and/or other devices of thesystem 100 over thenetwork 108. Thenetwork 108 may be embodied as any number of various wired and/or wireless networks. For example, thenetwork 108 may be embodied as, or otherwise include a mobile access network, a network edge infrastructure, a wired or wireless local area network (LAN), and/or a wired or wireless wide area network (WAN). As such, thenetwork 108 may include any number of additional devices, such as additional base stations, access points, computers, routers, and switches, to facilitate communications among the devices of thesystem 100. In the illustrative embodiment, thenetwork 108 is embodied as an edge network fabric. - Referring now to
FIG. 2 , in an illustrative embodiment, theedge gateway 102 establishes anenvironment 200 during operation. Theillustrative environment 200 includes afunction execution interface 202, aregistration manager 204, aservice provider manager 206, atransform manager 208, and afunction execution manager 210. The various components of theenvironment 200 may be embodied as hardware, firmware, software, or a combination thereof. As such, in some embodiments, one or more of the components of theenvironment 200 may be embodied as circuitry or collection of electrical devices (e.g., functionexecution interface circuitry 202,registration manager circuitry 204, serviceprovider manager circuitry 206, transformmanager circuitry 208, and/or function execution manager circuitry 210). It should be appreciated that, in such embodiments, one or more of the functionexecution interface circuitry 202, theregistration manager circuitry 204, the serviceprovider manager circuitry 206, thetransform manager circuitry 208, and/or the functionexecution manager circuitry 210 may form a portion of thecompute engine 120, the I/O subsystem 122, theaccelerator 130, and/or other components of theedge gateway 102. Additionally, in some embodiments, one or more of the illustrative components may form a portion of another component and/or one or more of the illustrative components may be independent of one another. - The
function execution interface 202 is configured to expose an FaaS function discovery interface to theendpoint devices 104. Thefunction execution interface 202 is further configured to receive a function execution request from anendpoint device 104. The function execution request is indicative of an FaaS function identifier. The function execution request may also include other parameters such as an expected service level. Thefunction execution interface 202 may be further configured to verify an identity or a security property of theendpoint device 104 in response to receiving the function execution request. - The
service provider manager 206 is configured to select aservice provider 106 from multiple registeredservice providers 106 based on the FaaS function identifier. Theservice provider 106 may be selected based on the expected service level and a service level associated with theservice provider 106, based on a reputation score indicative of a proportion of requests completed by theservice provider 106, based on prior matched requests (e.g., for stateful services), or based on other parameters. - The
transform manager 208 is configured to program theaccelerator 130 of theedge gateway 102 with a transform function associated with theservice provider 106 and to execute the transform function with theaccelerator 130. The transform function transforms the function execution request to a provider request that is compatible with theservice provider 106. - The
function execution manager 210 is configured to submit the provider request to theservice provider 106. The provider request may be submitted to theservice provider 106 via anotheredge gateway 102, as described further below. Thefunction execution manager 210 may be further configured to monitor execution status of the provider request and to update the reputation score or cost data based on the execution status. - The
registration manager 204 is configured to receive a registration request from theservice provider 106. The registration request is indicative of the FaaS function identifier and the transform function associated with theservice provider 106. Theregistration manager 204 is further configured to receive an attestation from theservice provider 106 and verify the registration request and the attestation. The attestation may be indicative of a security property of theservice provider 106. The verifying the registration request may include verifying an identity of theservice provider 106 or the transform function with a core network. Theregistration manager 204 is further configured to register theservice provider 106 in response to successfully verifying the registration request and the attestation. Theregistration manager 204 may be further configured to register theservice provider 106 with anotheredge gateway 102 in response verifying the registration request and the attestation. Theregistration manager 204 may be further configured to determine a reputation score associated with theservice provider 106 based on the attestation. - Still referring to
FIG. 2 , in the illustrative embodiment, theendpoint device 104 establishes anenvironment 220 during operation. Theillustrative environment 220 includes an application function as a service (FaaS)proxy 222 and anedge application 224. The various components of theenvironment 220 may be embodied as hardware, firmware, software, or a combination thereof. As such, in some embodiments, one or more of the components of theenvironment 220 may be embodied as circuitry or collection of electrical devices (e.g., applicationFaaS proxy circuitry 222 and/or edge application circuitry 224). It should be appreciated that, in such embodiments, one or more of the applicationFaaS proxy circuitry 222 and/or theedge application circuitry 224 may form a portion of the compute engine, the I/O subsystem, and/or other components of theendpoint device 104. Additionally, in some embodiments, one or more of the illustrative components may form a portion of another component and/or one or more of the illustrative components may be independent of one another. - The
edge application 224 may be embodied as any internet-of-things application, edge application, or other application executed by theendpoint device 104. Theedge application 224 may consume one or more FaaS functions provided by theservice providers 106. Theapplication FaaS proxy 222 is configured to submit a function execution request to theedge gateway 102. The function execution request may be submitted in response to a function call or other event triggered by theedge application 224. - Still referring to
FIG. 2 , in the illustrative embodiment, theservice provider 106 establishes anenvironment 240 during operation. Theillustrative environment 240 includes anFaaS function subscriber 242, anFaaS scheduler 244, and one or more FaaS functions 246. The various components of theenvironment 240 may be embodied as hardware, firmware, software, or a combination thereof. As such, in some embodiments, one or more of the components of theenvironment 240 may be embodied as circuitry or collection of electrical devices (e.g., FaaSfunction subscriber circuitry 242,FaaS scheduler circuitry 244, and/or FaaS function circuitry 246). It should be appreciated that, in such embodiments, one or more of the FaaSfunction subscriber circuitry 242, theFaaS scheduler circuitry 244, and/or theFaaS function circuitry 246 may form a portion of the compute engine, the I/O subsystem, and/or other components of theservice provider 106. Additionally, in some embodiments, one or more of the illustrative components may form a portion of another component and/or one or more of the illustrative components may be independent of one another. - The
FaaS function subscriber 242 is configured to submit a registration request to theedge gateway 102. The registration request identifies one or moreFaaS functions 246 of theservice provider 106 and any associated transform functions. TheFaaS scheduler 244 is configured to receive a provider request that identifies aFaaS function 246 from theedge gateway 102. EachFaaS function 246 may execute a function, subroutine, lambda, or other computer code in response to being invoked for execution by theFaaS scheduler 244. As shown inFIG. 2 , theservice provider 106 communicates with theedge gateway 102 and, in some embodiments, may communicate directly with the endpoint device 104 (e.g., to provide execution results of the FaaS function 246). - Referring now to
FIG. 3 , in use, theedge gateway 102 may execute amethod 300 for service provider registration. It should be appreciated that, in some embodiments, the operations of themethod 300 may be performed by one or more components of theenvironment 200 of theedge gateway 102 as shown inFIG. 2 . Themethod 300 begins inblock 302, in which theedge gateway 102 receives a registration request from aFaaS service provider 106. The registration request may include one or more parameters as shown in Function 1, below. EFSP ID (Edge FaaS Service Provider ID) may be embodied as any computing context identity that identifies theservice provider 106. The EFSP ID may be embodied as, for example, an Intel® Software Guard Extensions (SGX) enclave identity, a Cloud Native Computing Forum (CNCF) SPIFFE identity, a universally unique identifier (UUID), or a W3C Decentralized Identifier (DID). The FaaS ID parameter identifies the FaaS function(s) 246 provided by theservice provider 106. The FaaS Type parameter may identify a general class of FaaS function (e.g., face detection). Thus, in some embodiments, theservice provider 106 may provide multipleFaaS functions 246 of the same type with different parameters (e.g., accuracy). The accepted SLAs indicates different service level agreements (SLAs) that will be accepted by theservice provider 106. Each SLA may specify one or more performance, accuracy, availability, latency, bandwidth, or other requirements that theservice provider 106 agrees to meet during execution of the FaaS function. The Cost may be embodied as any cost associated with processing the FaaS function (e.g., per-invocation cost, bandwidth cost, etc.). The transform function bitstream may be embodied as bitstream data that may be installed and executed on theaccelerator 130 of theedge gateway 102. As described further below, the transform function maps between a standardized function interface or API and a specific interface of theservice provider 106. The request further includes a service provider certificate associated with theservice provider 106. - Request(EFSP ID,
-
- FaaS ID,
- FaaS Type,
- Accepted SLAs,
- Cost,
- Transform Function bitstream,
- Service Provider Certificate) (1)
- In
block 304, theedge gateway 102 validates the service provider certificate included with the registration request. In some embodiments, inblock 306 theedge gateway 102 may validate that theservice provider 106 is trusted by a core network. The service provider trust may be validated, for example, with a communication provider core network, or with any other network or device that is logically closer to the core network. In some embodiments, inblock 308 theedge gateway 102 may validate that the transfer function is trusted by the core network. For example, theedge gateway 102 may validate a certificate, signature, or other identification of the transfer function with the core network. - In
block 310, theedge gateway 102 receives an attestation of one or more protection properties from theservice provider 106. The attestation may be embodied as any signed data or other proof of the protection properties. The protection properties may include security or other properties of the execution environment of theFaaS function 246. As another example, the protection properties may include key protection properties for keys used to protect end-to-end payloads. Inblock 312, theedge gateway 102 verifies the attestation received from theservice provider 106. - In
block 314, theedge gateway 102 determines whether both the registration request and the attestation received from theservice provider 106 were verified. If either were not successfully verified, the registration request is rejected and themethod 300 loops back to block 302. If the registration request and the attestation are verified, themethod 300 advances to block 316. - In
block 316, theedge gateway 102 registers theservice provider 106 for the requested FaaS function identifier and/or type. As described further below, after registration, theedge gateway 102 may allowendpoint devices 104 to discover and access theservice provider 106 and/or the FaaS functions 246 provided by theservice provider 106. In some embodiments, inblock 318 theedge gateway 102 may update a reputation score associated with theservice provider 106 based on attestation results. For example, a higher reputation score may be assigned forservice providers 106 that attest to a more secure execution environment and/or key protection properties. As described further below, theedge gateway 102 may selectservice providers 106 based upon expected reputation score. Additionally or alternatively, in some embodiments theedge gateway 102 may determine a separate reputation score based on the attestation results related to trust/security/protection properties as compared to a reputation score based on reliability/availability/response time as discussed below in connection withFIG. 5 . - In some embodiments, in
block 320 theedge gateway 102 may share the registration of theservice provider 106 with one or moreother edge gateway 102 instances. As described above, theother edge gateway 102 instances may be responsible for independent subsets ofendpoint devices 104 andservice providers 106, or may share some or all of thosedevices multiple edge gateways 102 may enable further matching between FaaS function requests and service providers as described below. After registering theservice provider 106, themethod 300 loops back to block 302 to continue registeringadditional service providers 106. - Referring now to
FIGS. 4 and 5 , in use, theedge gateway 102 may execute amethod 400 for service provider and function arbitration. It should be appreciated that, in some embodiments, the operations of themethod 400 may be performed by one or more components of theenvironment 200 of theedge gateway 102 as shown inFIG. 2 . Themethod 400 begins inblock 402, in which in some embodiments theedge gateway 102 may register with an orchestrator or other orchestration service. Theedge gateway 102 may, for example, register functions for discovery and execution with the orchestrator as a service provider. In that example, the orchestrator may expose discovery interfaces to theendpoint devices 104 as entry points to FaaS function execution. In some embodiments, inblock 404 theedge gateway 102 may exposeservice provider 106 and FaaS function discovery interfaces to theendpoint devices 104. For example, theedge gateway 102 may expose RESTful and/or non-RESTful interfaces for service provider discovery, function discovery, and/or function execution. As described above, for service provider discovery theedge gateway 102 may accept subscriptions fromvarious service providers 106 that host specific FaaS functions or workloads. The function discovery interface may provide a list of functions provided by aservice provider 106 according to a particular FasS type (e.g., video analytics, face recognition, etc.), as well as other properties such as SLA, cost, reputation score, bit-stream acceleration availability, and function-specific properties. As described further below, the function execution interface may provide a generic API to invoke for scheduling FaaS function for execution. - In
block 406, theedge gateway 102 receives an execution request for a FaaS function from anendpoint device 104. The execution request may include one or more parameters as shown inFunction 2, below. As described above, The FaaS ID parameter identifies the FaaS function(s) 246 requested by theendpoint device 104. In some embodiments, the FaaS ID may identify a FaaS type or class of function requested by the endpoint device 104 (e.g., face recognition, video analytics, or other function). The Expected SLA parameter indicates the service level agreement (SLA) requested by theendpoint device 104. As described above, each SLA may specify one or more performance, accuracy, availability, latency, bandwidth, or other requirements that theendpoint device 104 requests be met during execution of the FaaS function. Expected cost may be embodied as a maximum cost other requested cost associated with processing the FaaS function (e.g., per-invocation cost, bandwidth cost, etc.). The Expected Reputation Score may be embodied as a minimum score or other requested reputation score for theservice provider 106 that executes the FaaS function. Reputation score may be embodied as any value indicative of how likely theservice provider 106 is to satisfy the expected SLA. For example, the reputation score may be embodied as a percentage of FaaS function executions by aparticular service provider 106 that have satisfied the associated SLA. The Expected Reputation Score may be represented as, for example, a score as in M of N stars, a real value between 0 and 1, or other score, and may include a range from low to high values. Expected EFSP may be embodied as an identifier of aparticular service provider 106 requested by theendpoint device 104. The Expected EFSP may be determined by theendpoint device 104, for example, using a service provider discovery interface of theedge gateway 102. The function execution request may also include one or more function-specific invocation parameters. - Execute(FaaS ID,
-
- Expected SLA,
- Expected Cost,
- Expected Reputation Score,
- Expected EFSP) (2)
- After receiving the execution request, in
block 408 theedge gateway 102 verifies theendpoint device 104 and the function execution request. Theedge gateway 102 may, for example, verify FaaS function invocation parameters for semantic and syntactic correctness. If theendpoint device 104 and/or the function execution request are not verified, theedge gateway 102 may reject the function execution request. In some embodiments, inblock 410 theedge gateway 102 may verify an identity of theendpoint device 104. For example, theedge gateway 102 may verify a credential of theendpoint device 104, such as an identity certificate, OAuth2 token, password, or other credentials. In some embodiments, inblock 412 theedge gateway 102 may verify one or more security properties of theendpoint device 104. For example, theedge gateway 102 may receive an attestation from theendpoint device 104 and verify the security properties indicated in the attestation. Theendpoint device 104 may perform any secure attestation protocol, such as a Trusted Computing Group (TCG) TPM Quote operation or an exchange as described in the W3C Verifiable Claims data model. In some embodiments, inblock 414 theendpoint device 104 may verify that the expected SLA of the request is authorized by a trusted orchestrator. After successfully verifying theendpoint device 104 and the function execution request, themethod 400 advances to block 416. - In
block 416, theedge gateway 102 determines whether aservice provider 106 was specified in the function execution request. If so, themethod 400 skips ahead to block 426, described below. If noservice provider 106 is specified in the request, themethod 400 advances to block 418. - In
block 418, theedge gateway 102 selects aservice provider 106 for the requested FaaS function based on the accepted SLA, reputation score, and/or other parameters associated with theservice provider 106. For example, theedge gateway 102 may select aservice provider 106 having an accepted SLA that meets or exceeds the expected SLA included in the function execution request. Similarly, theedge gateway 102 may select aservice provider 106 having a reputation score that meets or exceeds the expected reputation score included in the function execution request. Theedge gateway 102 selects theservice provider 106 from one ormore service providers 106 that were previously registered as providing the requested FaaS function as described above in connection withFIG. 3 . In some embodiments, inblock 420 theedge gateway 102 may select theservice provider 106 while applying an endpoint device privacy and/or security control. For example,certain endpoint devices 104 may be restricted from accessingparticular service providers 106 based on one or more security policies, privacy policies, or other policies. In some embodiments, inblock 422 theedge gateway 102 may select frommultiple service providers 106 using a scheduling policy. For example,multiple service providers 106 may be registered to provide the requested FaaS function with the expected SLA. In that circumstance, theedge gateway 102 may select among thequalifying service providers 106 using a round-robin scheduling policy or other scheduling policy. In some embodiments, inblock 424, theedge gateway 102 may select aservice provider 106 that was originally registered with adifferent edge gateway 102. In those embodiments, the registration information may be shared amongmultiple edge gateway 102 instances as described above. - In
block 426, theedge gateway 102 programs a transform function associated with the selectedservice provider 106 to theaccelerator 130. The transform function may be embodied as bitstream, firmware, or other data that may be programmed to theaccelerator 130 for execution. Illustratively, theaccelerator 130 is an FPGA, and the FGPA may be configured or partially configured with bitstream data corresponding to the transform function. - In
block 428, theedge gateway 102 transforms the function execution request to a service provider request that conforms to the interface provided by the selectedservice provider 106 using the transform function programmed to theaccelerator 130. For example, the function execution request may be a request to a generic face recognition API. In that example, theaccelerator 130 may transform the request, associated parameters, and/or other data into a request matching a particular face recognition API established by theservice provider 106. Transforming the request using theaccelerator 130 may reduce latency or otherwise improve performance for servicing the function execution request. - Referring now to
FIG. 5 , inblock 430, theedge gateway 102 submits the service provider interface request to the selectedservice provider 106 for execution. Theedge gateway 102 may submit the request to an FaaS scheduler or other FaaS component of theservice provider 106. In some embodiments, inblock 432 theedge gateway 102 may submit the service request via anotheredge gateway 102 instance, for example the instance to which theservice provider 106 originally registered. Inblock 434, theedge gateway 102 determines whether the selectedservice provider 106 accepted the service provider interface request. For example, theservice provider 106 may accept the request only if sufficient resources are available to satisfy the expected SLA of the request. If the service provider request is not accepted, themethod 400 loops back to block 418, shown inFIG. 4 , in which theedge gateway 102 may select adifferent service provider 106 for execution. If the service provider request is accepted, themethod 400 advances to block 436. - In
block 436 theedge gateway 102 monitors the execution status of the FaaS function. Theedge gateway 102 may, for example, determine whether theservice provider 106 has successfully completed processing the FaaS function request, and whether theservice provider 106 satisfied the expected SLA. In asystem 100 withmultiple edge gateway 102 instances, such monitoring may be performed by theedge gateway 102 instance that handled theservice provider 106 registration, theedge gateway 102 instance that is handling the FaaS function request, or both instances. Theedge gateway 102 may monitor the execution status using a telemetry collection infrastructure based on system audit, performance counters, power metering in a main board, power supplies, daughter cards, memory, CPU, FPGAs, GPUs, system software and trusted execution environments, BMCs, or other telemetry system. In some embodiments, theedge gateway 102 may receive execution results from theservice provider 106 and forward the results to theendpoint device 104. In some embodiments, theendpoint device 104 and theservice provider 106 may communicate directly. Theedge gateway 102 may poll or otherwise wait for completion of the FaaS function. - In
block 438, theedge gateway 102 updates data based on the execution results of the FaaS function. In some embodiments, inblock 440 theedge gateway 102 may update cost and/or billing statistics based on execution of the FaaS function. In some embodiments, inblock 442, theedge gateway 102 may update a reputation score associated with theservice provider 106 based on whether the expected SLA was satisfied. For example, the reputation score may be embodied as a percentage of requests that are satisfied within the expected SLA by theparticular service provider 106. After updating data based on execution results, themethod 400 loops back to block 406, shown inFIG. 4 , to process additional function execution requests. - Referring now to
FIG. 6 , diagram 600 shows an edge architecture that may include thesystem 100. As shown, the edge architecture includesmultiple layers endpoint devices 104 may be included in the things/endpoint layer 602. The things/endpoint layer 602 may include large numbers ofendpoint devices 104 that are heterogeneous, may be mobile, and are widely distributed geographically. The access/edge layer 604 may include access network components such as wireless towers, access points, base stations, intermediate nodes, gateways, fog nodes, central offices, and other access network or edge components. Components of the access/edge layer 604 may be distributed at the building, small cell, neighborhood, or cell scale. Thus, components of the access/edge layer 604 may be relatively close in physical proximity to components of the things/endpoint layer 602. As shown, the access/edge layer 604 may include theedge gateway 102 and theservice providers 106. Thecore network layer 606 may include core network routers, network gateways, servers, and other more-centralized computing devices. Components of thecore network layer 606 may be distributed regionally or nationally. The cloud/Internet layer 608 may include Internet backbone routers, cloud service providers, datacenters, and other cloud resources. The components of the cloud/Internet layer 608 may be distributed globally. - As shown, the edge architecture is organized according to a
logical gradient 610 from global, cloud-based components toward local, endpoint devices. Components that are closer to the network edge (i.e., closer to the endpoint layer 602) may be smaller but more numerous, with fewer processing resources and lower power consumption, as compared to components that are closer to the network core (i.e., closer to the cloud/Internet layer 608). However, network communications among components closer to the network edge may be faster and/or have lower latency as compared to communications that traverse through layers closer to the network core. The samelogical gradient 610 may apply to components within a layer. For example, the access/edge layer 604 may include numerous, widely spread base stations, street cabinets, and other access nodes as well as less-numerous but more sophisticated central offices or other aggregation nodes. Thus, by including FaaS function arbitration and execution in the access/edge layer 608 or other components close to the network edge, thesystem 100 may improve latency and performance as compared to traditional cloud-computing based FaaS architectures. - It should be appreciated that, in some embodiments, the
methods 300 and/or 400 may be embodied as various instructions stored on a computer-readable media, which may be executed by thecompute engine 120, the I/O subsystem 122, theaccelerator 130, and/or other components of theedge gateway 102 to cause theedge gateway 102 to perform therespective method 300 and/or 400. The computer-readable media may be embodied as any type of media capable of being read by theedge gateway 102 including, but not limited to, thememory 124, thedata storage device 126, firmware devices, other memory or data storage devices of theedge gateway 102, portable media readable by a peripheral device of theedge gateway 102, and/or other media. - Illustrative examples of the technologies disclosed herein are provided below. An embodiment of the technologies may include any one or more, and any combination of, the examples described below.
- Example 1 includes an edge gateway device for function as a service arbitration, the edge gateway device comprising: a function execution interface to receive a function execution request from an endpoint device, wherein the function execution request is indicative of a function as a service (FaaS) function identifier; a service provider manager to select a service provider device from a plurality of registered service provider devices based on the FaaS function identifier; a transform manager to (i) program an accelerator of the edge gateway device with a transform function associated with the service provider device and (ii) execute the transform function with the accelerator to transform the function execution request to a provider request, wherein the provider request is compatible with the service provider device; and a function execution manager to submit the provider request to the service provider device.
- Example 2 includes the subject matter of Example 1, and wherein: to receive the function execution request comprises to receive an expected service level from the endpoint device; and to select the service provider device comprises to select the service provider device based on the expected service level and a service level associated with the service provider device.
- Example 3 includes the subject matter of any of Examples 1 and 2, and wherein to select the service provider device comprises to select the service provider device based on a reputation score associated with the service provider device, wherein the reputation score is indicative of a proportion of requests completed by the service provider device within the service level associated with the service provider device.
- Example 4 includes the subject matter of any of Examples 1-3, and wherein the function execution manager is further to: monitor an execution status of the provider request in response to submission of the provider request to the service provider device; and update the reputation score based on the execution status.
- Example 5 includes the subject matter of any of Examples 1-4, and wherein to submit the provider request comprises to submit the provider request to the service provider device via a second edge gateway device.
- Example 6 includes the subject matter of any of Examples 1-5, and wherein the function execution manager is further to: monitor an execution status of the provider request in response to submission of the provider request to the service provider device; and update cost data associated with the provider request based on the execution status.
- Example 7 includes the subject matter of any of Examples 1-6, and wherein the function execution interface is further to verify an identity of the endpoint device in response to receipt of the function execution request.
- Example 8 includes the subject matter of any of Examples 1-7, and wherein the function execution interface is further to verify a security property of the endpoint device in response to receipt of the function execution request.
- Example 9 includes the subject matter of any of Examples 1-8, and further comprising a registration manager to: receive a registration request from the service provider device, wherein the registration request is indicative of the FaaS function identifier and the transform function; receive an attestation from the service provider device; verify the registration request and the attestation; and register the service provider device in the plurality of service provider devices in response to verification of the registration request and the attestation; wherein to select the service provider device comprises to select the service provider device in response to registration of the service provider device.
- Example 10 includes the subject matter of any of Examples 1-9, and wherein the attestation is indicative of a security property of the service provider device.
- Example 11 includes the subject matter of any of Examples 1-10, and wherein the registration manager is further to determine a reputation score associated with the service provider device based on the attestation.
- Example 12 includes the subject matter of any of Examples 1-11, and wherein to verify the registration request comprises to verify an identity of the service provider device with a core network.
- Example 13 includes the subject matter of any of Examples 1-12, and wherein to verify the registration request comprises to verify the transform function with a core network.
- Example 14 includes the subject matter of any of Examples 1-13, and wherein the registration manager is further to register the service provider device with a second edge gateway device in response to verification of the registration request and the attestation.
- Example 15 includes the subject matter of any of Examples 1-14, and wherein: the function execution interface is further to expose an FaaS function discovery interface to a plurality of endpoint devices; and to receive the function execution request comprises to receive the function execution request in response to exposing of the FaaS function discovery interface.
- Example 16 includes a method for function as a service arbitration, the method comprising: receiving, by an edge gateway device, a function execution request from an endpoint device, wherein the function execution request is indicative of a function as a service (FaaS) function identifier; selecting, by the edge gateway device, a service provider device from a plurality of registered service provider devices based on the FaaS function identifier; programming, by the edge gateway device, an accelerator of the edge gateway device with a transform function associated with the service provider device; executing, by the accelerator, the transform function to transform the function execution request to a provider request, wherein the provider request is compatible with the service provider device; and submitting, by the edge gateway device, the provider request to the service provider device.
- Example 17 includes the subject matter of Example 16, and wherein: receiving the function execution request comprises receiving an expected service level from the endpoint device; and selecting the service provider device comprises selecting the service provider device based on the expected service level and a service level associated with the service provider device.
- Example 18 includes the subject matter of any of Examples 16 and 17, and wherein selecting the service provider device comprises selecting the service provider device based on a reputation score associated with the service provider device, wherein the reputation score is indicative of a proportion of requests completed by the service provider device within the service level associated with the service provider device.
- Example 19 includes the subject matter of any of Examples 16-18, and further comprising: monitoring, by the edge gateway device, an execution status of the provider request in response to submitting the provider request to the service provider device; and updating, by the edge gateway device, the reputation score based on the execution status.
- Example 20 includes the subject matter of any of Examples 16-19, and wherein submitting the provider request comprises submitting the provider request to the service provider device via a second edge gateway device.
- Example 21 includes the subject matter of any of Examples 16-20, and further comprising: monitoring, by the edge gateway device, an execution status of the provider request in response to submitting the provider request to the service provider device; and updating, by the edge gateway device, cost data associated with the provider request based on the execution status.
- Example 22 includes the subject matter of any of Examples 16-21, and further comprising verifying, by the edge gateway device, an identity of the endpoint device in response to receiving the function execution request.
- Example 23 includes the subject matter of any of Examples 16-22, and further comprising verifying, by the edge gateway device, a security property of the endpoint device in response to receiving the function execution request.
- Example 24 includes the subject matter of any of Examples 16-23, and further comprising: receiving, by the edge gateway device, a registration request from the service provider device, wherein the registration request is indicative of the FaaS function identifier and the transform function; receiving, by the edge gateway device, an attestation from the service provider device; verifying, by the edge gateway device, the registration request and the attestation; and registering, by the edge gateway device, the service provider device in the plurality of service provider devices in response to verifying the registration request and the attestation; wherein selecting the service provider device comprises selecting the service provider device in response to registering the service provider device.
- Example 25 includes the subject matter of any of Examples 16-24, and wherein receiving the attestation comprises receiving an attestation indicative of a security property of the service provider device.
- Example 26 includes the subject matter of any of Examples 16-25, and further comprising determining, by the edge gateway device, a reputation score associated with the service provider device based on the attestation.
- Example 27 includes the subject matter of any of Examples 16-26, and wherein verifying the registration request comprises verifying an identity of the service provider device with a core network.
- Example 28 includes the subject matter of any of Examples 16-27, and wherein verifying the registration request comprises verifying the transform function with a core network.
- Example 29 includes the subject matter of any of Examples 16-28, and further comprising registering, by the edge gateway device, the service provider device with a second edge gateway device in response to verifying the registration request and the attestation.
- Example 30 includes the subject matter of any of Examples 16-29, and further comprising: exposing, by the edge gateway device, a FaaS function discovery interface to a plurality of endpoint devices; wherein receiving the function execution request comprises receiving the function execution request in response to exposing the FaaS function discovery interface.
- Example 31 includes a computing device comprising: a processor; and a memory having stored therein a plurality of instructions that when executed by the processor cause the computing device to perform the method of any of Examples 16-30.
- Example 32 includes one or more non-transitory, computer-readable storage media comprising a plurality of instructions stored thereon that in response to being prepared for execution and subsequently being executed result in a computing performing the method of any of Examples 16-30.
- Example 33 includes a computing device comprising means for performing the method of any of Examples 16-30.
Claims (34)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/989,210 US20210099516A1 (en) | 2018-12-28 | 2020-08-10 | Technologies for transparent function as a service arbitration for edge systems |
US18/234,791 US20230396669A1 (en) | 2018-12-28 | 2023-08-16 | Technologies for transparent function as a service arbitration for edge systems |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/234,734 US10798157B2 (en) | 2018-12-28 | 2018-12-28 | Technologies for transparent function as a service arbitration for edge systems |
US16/989,210 US20210099516A1 (en) | 2018-12-28 | 2020-08-10 | Technologies for transparent function as a service arbitration for edge systems |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/234,734 Continuation US10798157B2 (en) | 2018-12-28 | 2018-12-28 | Technologies for transparent function as a service arbitration for edge systems |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/234,791 Continuation US20230396669A1 (en) | 2018-12-28 | 2023-08-16 | Technologies for transparent function as a service arbitration for edge systems |
Publications (1)
Publication Number | Publication Date |
---|---|
US20210099516A1 true US20210099516A1 (en) | 2021-04-01 |
Family
ID=66329031
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/234,734 Active 2039-01-29 US10798157B2 (en) | 2018-12-28 | 2018-12-28 | Technologies for transparent function as a service arbitration for edge systems |
US16/989,210 Abandoned US20210099516A1 (en) | 2018-12-28 | 2020-08-10 | Technologies for transparent function as a service arbitration for edge systems |
US18/234,791 Pending US20230396669A1 (en) | 2018-12-28 | 2023-08-16 | Technologies for transparent function as a service arbitration for edge systems |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/234,734 Active 2039-01-29 US10798157B2 (en) | 2018-12-28 | 2018-12-28 | Technologies for transparent function as a service arbitration for edge systems |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/234,791 Pending US20230396669A1 (en) | 2018-12-28 | 2023-08-16 | Technologies for transparent function as a service arbitration for edge systems |
Country Status (2)
Country | Link |
---|---|
US (3) | US10798157B2 (en) |
DE (1) | DE102019131123A1 (en) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10523646B2 (en) | 2015-08-24 | 2019-12-31 | Virtru Corporation | Methods and systems for distributing encrypted cryptographic data |
US10536341B2 (en) * | 2017-03-01 | 2020-01-14 | Cisco Technology, Inc. | Fog-based service function chaining |
US11182206B2 (en) | 2019-01-10 | 2021-11-23 | Vmware, Inc. | Event proxies for functions-as-a-service (FAAS) infrastructures |
US11531777B2 (en) * | 2019-01-30 | 2022-12-20 | Virtru Corporation | Methods and systems for restricting data access based on properties of at least one of a process and a machine executing the process |
US11240155B2 (en) * | 2019-03-29 | 2022-02-01 | Intel Corporation | Technologies for network device load balancers for accelerated functions as a service |
US10764244B1 (en) * | 2019-06-12 | 2020-09-01 | Cisco Technology, Inc. | Systems and methods providing a multi-cloud microservices gateway using a sidecar proxy |
US11924060B2 (en) | 2019-09-13 | 2024-03-05 | Intel Corporation | Multi-access edge computing (MEC) service contract formation and workload execution |
CN110602677A (en) * | 2019-09-16 | 2019-12-20 | 云赛智联股份有限公司 | 5G edge intelligent gateway |
CN110769055B (en) * | 2019-10-22 | 2022-06-10 | 北京地平线机器人技术研发有限公司 | Method, device, medium and electronic equipment for realizing service discovery |
US11330064B2 (en) * | 2019-12-04 | 2022-05-10 | At&T Intellectual Property I, L.P. | Method and apparatus to facilitate a multi-point connection with a communication device |
US12105842B1 (en) * | 2020-01-15 | 2024-10-01 | Ledgerdomain Inc. | Verifiable credentialling and message content provenance authentication |
CN111641637B (en) * | 2020-05-28 | 2021-05-11 | 重庆邮电大学 | Edge node calculation result credibility judgment method based on trust evaluation |
US11356383B2 (en) * | 2020-06-19 | 2022-06-07 | Hewlett Packard Enterprise Development Lp | Cloud translation mechanism |
US11496589B2 (en) | 2020-11-13 | 2022-11-08 | Cisco Technology, Inc. | Zero day zero touch providing of services with policy control |
US11558189B2 (en) * | 2020-11-30 | 2023-01-17 | Microsoft Technology Licensing, Llc | Handling requests to service resources within a security boundary using a security gateway instance |
US11496556B1 (en) * | 2021-04-26 | 2022-11-08 | Cisco Technology, Inc. | Service provider selection for application-driven routing |
US11606267B1 (en) * | 2021-09-10 | 2023-03-14 | Microsoft Technology Licensing, Llc | Detecting and quantifying latency components in accessing cloud services |
US20230156004A1 (en) * | 2021-11-15 | 2023-05-18 | Red Hat, Inc. | Scalable and secure edge cluster registration |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020069279A1 (en) * | 2000-12-29 | 2002-06-06 | Romero Francisco J. | Apparatus and method for routing a transaction based on a requested level of service |
US20040122926A1 (en) * | 2002-12-23 | 2004-06-24 | Microsoft Corporation, Redmond, Washington. | Reputation system for web services |
US20080109452A1 (en) * | 2002-02-15 | 2008-05-08 | Cognos Incorporated | Queuing model for a plurality of servers |
US20080259794A1 (en) * | 2006-05-30 | 2008-10-23 | Huawei Technologies Co., Ltd. | Apparatus And Method For Providing End-To-End QoS Guarantee Within Service Network |
US20160364271A1 (en) * | 2015-06-09 | 2016-12-15 | Microsoft Technology Licensing, Llc | Independently networkable hardware accelerators for increased workflow optimization |
US20160379686A1 (en) * | 2015-06-29 | 2016-12-29 | Microsoft Technology Licensing, Llc | Server systems with hardware accelerators including stacked memory |
US20190281123A1 (en) * | 2016-11-15 | 2019-09-12 | Huawei Technologies Co., Ltd. | Service acceleration method, system, apparatus, and server in nfv system |
US20200174840A1 (en) * | 2018-11-30 | 2020-06-04 | EMC IP Holding Company LLC | Dynamic composition of data pipeline in accelerator-as-a-service computing environment |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0610302D0 (en) * | 2006-05-24 | 2006-07-05 | Ibm | A method, apparatus and computer program for validating that a clients request has been routed to an appropriate server |
RU2597507C2 (en) * | 2010-07-09 | 2016-09-10 | Виза Интернэшнл Сервис Ассосиэйшн | Sluice abstraction level |
US8990917B2 (en) * | 2012-12-27 | 2015-03-24 | Alcatel Lucent | Authentication of applications that access web services |
US20150067171A1 (en) * | 2013-08-30 | 2015-03-05 | Verizon Patent And Licensing Inc. | Cloud service brokering systems and methods |
GB2530040B (en) * | 2014-09-09 | 2021-01-20 | Arm Ip Ltd | Communication mechanism for data processing devices |
EP3210350B1 (en) * | 2014-10-21 | 2020-05-20 | Twilio, Inc. | Method for providing a miro-services communication platform |
US10091329B2 (en) * | 2015-06-30 | 2018-10-02 | Amazon Technologies, Inc. | Device gateway |
US10701160B2 (en) * | 2016-07-28 | 2020-06-30 | Polybit Inc. | System and method for a unified interface to networked webservices |
US11050607B2 (en) * | 2017-06-21 | 2021-06-29 | Red Hat, Inc. | Proxy with a function as a service (FAAS) support |
US10771463B2 (en) * | 2017-10-30 | 2020-09-08 | International Business Machines Corporation | Third-party authorization of access tokens |
US10901804B2 (en) * | 2017-12-15 | 2021-01-26 | Fujitsu Limited | Apparatus and method to select services for executing a user program based on a code pattern included therein |
CN112771500B (en) * | 2018-05-11 | 2024-05-24 | 摩根大通国家银行 | Functional instant service gateway |
US11263087B2 (en) * | 2018-07-05 | 2022-03-01 | EMC IP Holding Company LLC | Methods and systems for serverless data deduplication |
US10747580B2 (en) * | 2018-08-17 | 2020-08-18 | Vmware, Inc. | Function as a service (FaaS) execution distributor |
-
2018
- 2018-12-28 US US16/234,734 patent/US10798157B2/en active Active
-
2019
- 2019-11-18 DE DE102019131123.3A patent/DE102019131123A1/en active Pending
-
2020
- 2020-08-10 US US16/989,210 patent/US20210099516A1/en not_active Abandoned
-
2023
- 2023-08-16 US US18/234,791 patent/US20230396669A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020069279A1 (en) * | 2000-12-29 | 2002-06-06 | Romero Francisco J. | Apparatus and method for routing a transaction based on a requested level of service |
US20080109452A1 (en) * | 2002-02-15 | 2008-05-08 | Cognos Incorporated | Queuing model for a plurality of servers |
US20040122926A1 (en) * | 2002-12-23 | 2004-06-24 | Microsoft Corporation, Redmond, Washington. | Reputation system for web services |
US20080259794A1 (en) * | 2006-05-30 | 2008-10-23 | Huawei Technologies Co., Ltd. | Apparatus And Method For Providing End-To-End QoS Guarantee Within Service Network |
US20160364271A1 (en) * | 2015-06-09 | 2016-12-15 | Microsoft Technology Licensing, Llc | Independently networkable hardware accelerators for increased workflow optimization |
US20160379686A1 (en) * | 2015-06-29 | 2016-12-29 | Microsoft Technology Licensing, Llc | Server systems with hardware accelerators including stacked memory |
US20190281123A1 (en) * | 2016-11-15 | 2019-09-12 | Huawei Technologies Co., Ltd. | Service acceleration method, system, apparatus, and server in nfv system |
US20200174840A1 (en) * | 2018-11-30 | 2020-06-04 | EMC IP Holding Company LLC | Dynamic composition of data pipeline in accelerator-as-a-service computing environment |
Also Published As
Publication number | Publication date |
---|---|
US20230396669A1 (en) | 2023-12-07 |
US10798157B2 (en) | 2020-10-06 |
US20190141119A1 (en) | 2019-05-09 |
DE102019131123A1 (en) | 2020-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230396669A1 (en) | Technologies for transparent function as a service arbitration for edge systems | |
EP3716107B1 (en) | Technologies for accelerated orchestration and attestation with edge device trust chains | |
JP6314236B2 (en) | Entity handle registry to support traffic policy enforcement | |
US9813423B2 (en) | Trust-based computing resource authorization in a networked computing environment | |
US9342353B2 (en) | Techniques for implementing information services with tenant specific service level agreements | |
US10534627B2 (en) | Scalable policy management in an edge virtual bridging (EVB) environment | |
US11388164B2 (en) | Distributed application programming interface whitelisting | |
US10048980B2 (en) | Scalable policy assignment in an edge virtual bridging (EVB) environment | |
US11861406B2 (en) | Dynamic microservices allocation mechanism | |
US20220200788A1 (en) | Technologies for accelerated hierarchical key caching in edge systems | |
US10681154B2 (en) | Gateway device allowing multiple infrastructural services to access multiple IoT devices | |
US11861386B1 (en) | Application gateways in an on-demand network code execution system | |
US12107870B2 (en) | Protecting accelerators from malicious network functions | |
US10225261B2 (en) | Adaptive enhanced environment-aware authentication for IoT devices | |
US11586626B1 (en) | Optimizing cloud query execution | |
US20230188341A1 (en) | Cryptographic operations in edge computing networks | |
Dinis et al. | Pluggable scheduling on an open-source based volunteer computing infrastructure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTEL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BERNAT, FRANCESC GUIM;SMITH, NED;DOSHI, KSHITIJ;AND OTHERS;SIGNING DATES FROM 20190111 TO 20200616;REEL/FRAME:053451/0242 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: APPLICATION DISPATCHED FROM PREEXAM, NOT YET DOCKETED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |