[go: up one dir, main page]

WO2025040948A1 - Cost analysis for computational offloading decisions - Google Patents

Cost analysis for computational offloading decisions Download PDF

Info

Publication number
WO2025040948A1
WO2025040948A1 PCT/IB2023/061010 IB2023061010W WO2025040948A1 WO 2025040948 A1 WO2025040948 A1 WO 2025040948A1 IB 2023061010 W IB2023061010 W IB 2023061010W WO 2025040948 A1 WO2025040948 A1 WO 2025040948A1
Authority
WO
WIPO (PCT)
Prior art keywords
host
user data
processing circuitry
network node
network
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.)
Pending
Application number
PCT/IB2023/061010
Other languages
French (fr)
Inventor
Joacim Halén
Shilpa BUDHKAR
Andrew Williams
Ali BALADOR
Sai CHANDRASEKAR
Raihan Ul ISLAM
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of WO2025040948A1 publication Critical patent/WO2025040948A1/en
Anticipated expiration legal-status Critical
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Definitions

  • This disclosure relates to the field of wireless communication, and more particularly to the management of computing tasks by devices that make up a wireless communication network.
  • offloading means that a task performed by application functionality in one entity is instead performed in another entity.
  • a computationally intensive task is performed on a powerful server instead of a resource constrained device.
  • Another example is letting one entity handle synchronization of multiple individual sub-tasks as part of a collaborative effort in which the sub-tasks are executed at different entities.
  • An implied goal is generally to offload tasks to achieve some benefit for the device, for the application, or for the user that owns the device. This can be such measurable benefits as power saving or improved performance, more subjective benefits such as user Quality of Experience, or functional benefits such as resource accessibility.
  • Offloading requires that the functionality of the application is divided into parts that can be executed on different entities (and locations).
  • the most common way to do this is a (semi-)static division where some parts of the application always execute in the device, often referred to as User Equipment (UE), whilst other parts are always executed in a remote location, for example, at an edge data center and or at a central datacenter.
  • UE User Equipment
  • a functional component may be offloaded with an existing internal state, generally regarded to have been generated on the device itself, or with access to an external state, as in the case of “stateless” functions, or, for simple or short-running functions, only the initial parameters.
  • offloading is often described as an enabler of edge computing.
  • compute resources are located near the user to minimize the network delay that offloading introduces. This potentially enables use cases wherein an application running on UE requires both high computational resources and low network latency, such as autonomous drones or XR.
  • Various embodiments determine and use a “cost function” that maps multiple inputs to one output value, which is used to inform decisions whether to offload computational tasks from networked devices.
  • inputs characterize one or more of computational resources (e.g., processor speed and quantity), memory, network characteristics (e.g., RTT), and economic cost (e.g., price) of using a particular offloading option (perhaps including, for completeness, the option of not offloading the task), plus user and/or system preferences and/or priorities.
  • the output of the cost function represents a combination of all of the inputs into a single quantity so that, when an offloading request is or could be made, the cost function might be applied to multiple offloading options to prioritize the options and pick the numerically “best” one.
  • the cost function is determined at a point in time (perhaps long) before the offloading decision has to be made, then calculated based on current input values when offloading is requested.
  • a first embodiment of the disclosed technology includes a method performed by a user equipment for conditionally offloading a computational task, the method comprising: as a cost function of information about (i) a computational task to be executed, and (ii) an available computing resource in communication with the user equipment via a wireless network, selecting whether to execute the computational task on the user equipment or on the available computing resource; and if the user equipment selects to execute the computational task on the available computing resource, offloading the computational task by communicating data to the available computing resource, where the communicated data is sufficient to enable the available computing resource to execute the computational task.
  • a second embodiment is the method of the first embodiment, wherein the information about the computational task comprises at least one of: a representation of the code, or application requirements.
  • a third embodiment is the method of any of the previous embodiments, wherein the information about the available computing resource comprises at least one of a resource profde and a specification of capabilities of the available computing resource.
  • a fourth embodiment is the method of any of the previous embodiments, wherein the cost function is also a function of one or more user preferences.
  • a fifth embodiment is the method of any of the previous embodiments, wherein the available computing resource comprises a plurality of distinct computing resources, wherein the cost function produces a result, and wherein the result comprises a list of zero or more of the distinct computing resources that fulfill the application requirements and user preferences together with information about at least one of expected performance, expected energy consumption, or expected monetary cost associated with executing the computing task on a respective one of the distinct computing resources.
  • a sixth embodiment is the method of any of the previous embodiments, further comprising the step of, if the user equipment selects to execute the computational task on the available computing resource, receiving from the available computing resource an output of the computational task.
  • a seventh embodiment is the method of any of the previous embodiments, further comprising, based on changes in the value of the cost function after the offloading, revoking the offloading.
  • An eighth embodiment is the method of any of the previous embodiments, further comprising providing user data; and forwarding the user data to a host via the transmission to the network node.
  • a ninth embodiment is a computer-implemented method for conditionally offloading a computational task, comprising as a cost function of information about (i) a computational task to be executed, and (ii) an available computing resource in communication with the user equipment via a wireless network, selecting whether to execute the computational task on the user equipment or on the available computing resource; and if the user equipment selects to execute the computational task on the available computing resource, communicating data to the available computing resource, where the communicated data is sufficient to enable the available computing resource to execute the computational task.
  • a tenth embodiment is a system for conditionally offloading a computational task comprising processing circuitry and a memory, the memory containing instructions executable by the processing circuitry whereby the system is operative to perform any of the steps in any of the previous embodiments.
  • An eleventh embodiment is a method performed by a network node for conditionally offloading a computational task, the method comprising, as a cost function of information about (i) a computational task to be executed, and (ii) an available computing resource in communication with the network node via a wireless network, selecting whether to execute the computational task on the network node or on the available computing resource; and if the network node selects to execute the computational task on the available computing resource, communicating data to the available computing resource, where the communicated data is sufficient to enable the available computing resource to execute the computational task.
  • a twelfth embodiment is the method of the eleventh embodiment, wherein the information about the computational task comprises at least one of: a representation of the code, or application requirements.
  • a thirteenth embodiment is the method of any of the eleventh or twelfth embodiments, wherein the information about the available computing resource comprises at least one of a resource profile and a specification of capabilities of the available computing resource.
  • a fourteenth embodiment is the method of any of the eleventh through thirteenth embodiments, wherein the cost function is also a function of one or more user preferences.
  • a fifteenth embodiment is the method of any of the eleventh through fourteenth embodiment, wherein the available computing resource comprises a plurality of distinct computing resources, wherein the cost function produces a result, and wherein the result comprises a list of zero or more of the distinct computing resources that fulfill the application requirements and user preferences together with information about at least one of expected performance, expected energy consumption, or expected monetary cost associated with executing the computing task on a respective one of the distinct computing resources.
  • a sixteenth embodiment is the method of any of the eleventh through fifteenth embodiments, further comprising the step of, if the network node selects to execute the computational task on the available computing resource, receiving from the available computing resource an output of the computational task.
  • a seventeenth embodiment is the method of any of the eleventh through sixteenth embodiments, further comprising, based on changes in the value of the cost function after the offloading, revoking the offloading.
  • An eighteenth embodiment is the method of any of the eleventh through seventeenth embodiments, further comprising: obtaining user data; and forwarding the user data to a host or a user equipment.
  • a nineteenth embodiment is a user equipment for conditionally offloading a computational task, comprising: processing circuitry configured to perform any of the steps of any of the first eight embodiments; and power supply circuitry configured to supply power to the processing circuitry.
  • a twentieth embodiment is a network node for conditionally offloading a computational task, the network node comprising: processing circuitry configured to perform any of the steps of any of the eleventh through eighteenth embodiments; and power supply circuitry configured to supply power to the processing circuitry.
  • a twenty-first embodiment is a user equipment (UE) for conditionally offloading a computational task, the UE comprising: an antenna configured to send and receive wireless signals; radio front-end circuitry connected to the antenna and to processing circuitry, and configured to condition signals communicated between the antenna and the processing circuitry; the processing circuitry being configured to perform any of the steps of any of the first eight embodiments; an input interface connected to the processing circuitry and configured to allow input of information into the UE to be processed by the processing circuitry; an output interface connected to the processing circuitry and configured to output information from the UE that has been processed by the processing circuitry; and a battery connected to the processing circuitry and configured to supply power to the UE.
  • UE user equipment
  • a twenty-second embodiment is a host configured to operate in a communication system to provide an over-the-top (OTT) service, the host comprising: processing circuitry configured to provide user data; and a network interface configured to initiate transmission of the user data to a cellular network for transmission to a user equipment (UE), wherein the UE comprises a communication interface and processing circuitry, the communication interface and processing circuitry of the UE being configured to perform any of the steps of any of the first eight embodiments to receive the user data from the host.
  • OTT over-the-top
  • a twenty-third embodiment is the host of the previous embodiment, wherein the cellular network further includes a network node configured to communicate with the UE to transmit the user data to the UE from the host.
  • a twenty-fourth embodiment is the host of either of the previous 2 embodiments, wherein: the processing circuitry of the host is configured to execute a host application, thereby providing the user data; and the host application is configured to interact with a client application executing on the UE, the client application being associated with the host application.
  • a twenty-fifth embodiment is a method implemented by a host operating in a communication system that further includes a network node and a user equipment (UE), the method comprising: providing user data for the UE; and initiating a transmission carrying the user data to the UE via a cellular network comprising the network node, wherein the UE performs any of the operations of any of the first eight embodiments to receive the user data from the host.
  • a twenty-sixth embodiment is the method of the previous embodiment, further comprising: at the host, executing a host application associated with a client application executing on the UE to receive the user data from the UE.
  • a twenty-seventh embodiment is the method of the previous embodiment, further comprising: at the host, transmitting input data to the client application executing on the UE, the input data being provided by executing the host application, wherein the user data is provided by the client application in response to the input data from the host application.
  • a twenty-eighth embodiment is a host configured to operate in a communication system to provide an over-the-top (OTT) service, the host comprising: processing circuitry configured to provide user data; and a network interface configured to initiate transmission of the user data to a cellular network for transmission to a user equipment (UE), wherein the UE comprises a communication interface and processing circuitry, the communication interface and processing circuitry of the UE being configured to perform any of the steps of any of the first eight embodiments to transmit the user data to the host.
  • OTT over-the-top
  • a twenty-ninth embodiment is the host of the previous embodiment, wherein the cellular network further includes a network node configured to communicate with the UE to transmit the user data from the UE to the host.
  • a thirtieth embodiment is the host of either of the previous 2 embodiments, wherein: the processing circuitry of the host is configured to execute a host application, thereby providing the user data; and the host application is configured to interact with a client application executing on the UE, the client application being associated with the host application.
  • a thirty-first embodiment is a method implemented by a host configured to operate in a communication system that further includes a network node and a user equipment (UE), the method comprising: at the host, receiving user data transmitted to the host via the network node by the UE, wherein the UE performs any of the steps of any of the first eight embodiments to transmit the user data to the host.
  • UE user equipment
  • a thirty-second embodiment is the method of the previous embodiment, further comprising: at the host, executing a host application associated with a client application executing on the UE to receive the user data from the UE.
  • a thirty-third embodiment is the method of the previous embodiment, further comprising: at the host, transmitting input data to the client application executing on the UE, the input data being provided by executing the host application, wherein the user data is provided by the client application in response to the input data from the host application.
  • a thirty-fourth embodiment is a host configured to operate in a communication system to provide an over-the-top (OTT) service, the host comprising: processing circuitry configured to provide user data; and a network interface configured to initiate transmission of the user data to a network node in a cellular network for transmission to a user equipment (UE), the network node having a communication interface and processing circuitry, the processing circuitry of the network node configured to perform any of the operations of any of the eleventh through the eighteenth embodiments to transmit the user data from the host to the UE.
  • OTT over-the-top
  • a thirty-fifth embodiment is the host of the previous embodiment, wherein: the processing circuitry of the host is configured to execute a host application that provides the user data; and the UE comprises processing circuitry configured to execute a client application associated with the host application to receive the transmission of user data from the host.
  • a thirty-sixth embodiment is a method implemented in a host configured to operate in a communication system that further includes a network node and a user equipment (UE), the method comprising: providing user data for the UE; and initiating a transmission carrying the user data to the UE via a cellular network comprising the network node, wherein the network node performs any of the operations of any of the eleventh through the eighteenth embodiments to transmit the user data from the host to the UE.
  • UE user equipment
  • a thirty-seventh embodiment is the method of the previous embodiment, further comprising, at the network node, transmitting the user data provided by the host for the UE.
  • a thirty-eighth embodiment is the method of either of the previous 2 embodiments, wherein the user data is provided at the host by executing a host application that interacts with a client application executing on the UE, the client application being associated with the host application.
  • a thirty-ninth embodiment is a communication system configured to provide an over-the-top service, the communication system comprising: a host comprising: processing circuitry configured to provide user data for a user equipment (UE), the user data being associated with the over-the-top service; and a network interface configured to initiate transmission of the user data toward a cellular network node for transmission to the UE, the network node having a communication interface and processing circuitry, the processing circuitry of the network node configured to perform any of the operations of any of the eleventh through eighteenth embodiments to transmit the user data from the host to the UE.
  • a host comprising: processing circuitry configured to provide user data for a user equipment (UE), the user data being associated with the over-the-top service; and a network interface configured to initiate transmission of the user data toward a cellular network node for transmission to the UE, the network node having a communication interface and processing circuitry, the processing circuitry of the network node configured to perform any of the operations of any of the eleventh through eighte
  • a fortieth embodiment is the communication system of the previous embodiment, further comprising: the network node; and/or the user equipment.
  • a forty-first embodiment is a host configured to operate in a communication system to provide an over-the-top (OTT) service, the host comprising: processing circuitry configured to initiate receipt of user data; and a network interface configured to receive the user data from a network node in a cellular network, the network node having a communication interface and processing circuitry, the processing circuitry of the network node configured to perform any of the operations of any of the eleventh through eighteenth embodiments to receive the user data from a user equipment (UE) for the host.
  • OTT over-the-top
  • a forty-second embodiment is the host of the previous 2 embodiments, wherein: the processing circuitry of the host is configured to execute a host application, thereby providing the user data; and the host application is configured to interact with a client application executing on the UE, the client application being associated with the host application.
  • a forty-third embodiment is the host of the any of the previous 2 embodiments, wherein the initiating receipt of the user data comprises requesting the user data.
  • a forty-fourth embodiment is a method implemented by a host configured to operate in a communication system that further includes a network node and a user equipment (UE), the method comprising: at the host, initiating receipt of user data from the UE, the user data originating from a transmission which the network node has received from the UE, wherein the network node performs any of the steps of any of the eleventh through eighteenth embodiments to receive the user data from the UE for the host.
  • UE user equipment
  • a forty-fifth embodiment is the method of the previous embodiment, further comprising at the network node, transmitting the received user data to the host.
  • Problems 3 and 4 depend both on the type of application and on whether a (semi-)static deployment is preferred. For applications with many users using devices with similar performance, (semi-)static deployment is often chosen, as it is easier to manage. Dynamic offloading is more complicated, and the conditions must constantly be monitored and evaluated to decide whether it is beneficial to offload or not. There are many algorithms for optimal placement of a task/workload (this disclosure does not specifically target this type of placement algorithm, but the disclosed systems and methods can aid or complement them), but no known algorithm considers when to offload. Nor do they consider the tradeoff between compute gains and the network traffic that would be introduced by an offload.
  • known algorithms provide little or no support for the device to influence or decide when and under which conditions an offload is beneficial and should be performed. As conditions change dynamically, it might later be more beneficial to revoke an offload, e.g., revoking a function that is offloaded from the device to save battery when a charger is connected.
  • This disclosure proposes solutions to the problems (1-4) described in the previous passage, including those applying a cost function that takes as input certain combinations of information about the function to offload, a representation of the code, application requirements, user preferences, resource profiles, and capabilities. (Some cost functions are known, but the input, the calculated output, and how they are used make them unique in each case. The result of the cost function will be a list of detailed resource specifications that fulfill the application requirements and user preferences together with information about expected performance, energy consumption, monetary cost, etc. This cost function, together with a set of appropriate tools and mechanisms to collect and assemble the input data, can be used in various embodiments, for example:
  • the input parameters include:
  • a representation of the code e.g., virtual instructions for an abstract computer, and some metadata for the function or module to offload. This representation may be generated by a separate tool.
  • the cost function uses the code for the abstract machine to evaluate the performance and other impacts on the hardware resources available at the candidate target.
  • the result of the cost function is a list of solutions that fulfill the application requirements and user preferences.
  • Each solution in the list includes a detailed resource specification (e.g., low-level hardware requirements, bandwidth requirements, etc.) and information about expected performance, energy consumption, monetary cost, etc. The latter information can then be used for selection of preferred solution.
  • the resource specification for a selected solution in the dynamic case can be passed on to an orchestration system to allocate the specified resources.
  • the offload can be initiated by the application itself, for example, by a service running on the UE or in the network that monitors the conditions and triggers the offload when certain thresholds are met.
  • Another service can select possible candidate offload targets based on the physical and/or network location of the UE. The cost function would then be invoked for these targets and the best solution selected by the application or one of the other stakeholders, e.g., the network provider.
  • Certain embodiments may provide one or more of the following technical advantage(s).
  • the unique cost function together with a set of tools to assemble appropriate input data, provides a base for a multitude of embodiments that solve the problems described above. It can be used in a simulator tool to identify and verify an optimal functional decomposition of an application already at development, thereby saving development cost. Furthermore, it can be the core component used to evaluate whether it is beneficial to do a dynamic offload under conditions that vary in context and time. This reduces unnecessary offloads and provides great flexibility for end users to select an offloading solution that fits the conditions at a specific moment in time. BRIEF DESCRIPTION OF THE DRAWINGS
  • Fig. 1 is a block diagram illustrating the flow of data among components in one example embodiment.
  • Fig. 2 is a functional data flow diagram illustrating the processing components in the embodiment of Fig. 1.
  • Fig. 3 is a sequence diagram depicting embodiments herein.
  • Fig. 4 schematically illustrates a telecommunication network connected via an intermediate network to a host computer.
  • Fig. 5 is a generalized block diagram of a host computer communicating via a base station with a user equipment over a partially wireless connection.
  • Figs. 6-9 are flowcharts illustrating methods implemented in a communication system including a host computer, a base station, and a user equipment.
  • a UE or application has no way to steer UE-based task placement decisions, such as when and where to offload computational tasks.
  • the present disclosure includes various embodiments that determine and use a “cost function” that maps multiple inputs to one output value, which is used to inform decisions whether to offload computational tasks from networked devices.
  • inputs characterize one or more of computational resources (e.g., processor speed and quantity), memory, network characteristics (e.g., RTT), and economic cost (e.g., price) of using a particular offloading option (perhaps including, for completeness, the option of not offloading the task), plus user and/or system preferences and/or priorities.
  • the output of the cost function represents a combination of all of the inputs into a single quantity so that, when an offloading request is or could be made, the cost function might be applied to multiple offloading options to prioritize the options and pick the numerically “best” one.
  • the cost function is determined at a point in time (perhaps long) before the offloading decision has to be made, then calculated based on current input values when offloading is requested.
  • the present disclosure describes systems and methods (with new functions) of operation that enable a UE 130 to retrieve information about resource availability offers at an edge site 140 that satisfies previously collected requirements from both application 131 and user 110.
  • the present disclosure also describes adding new functionalities in different parts of the execution pipeline, including during application development, and at the UE 130 and edge site 140, shown in Fig. 1.
  • One function described herein is the cost function 143.
  • the disclosure describes a “profile tool” 125, a component responsible for receiving application source code and generating “performance metadata.”
  • the performance metadata includes an abstract representation of the actual source code that will be used later at the edge site 140 to generate the execution time at a network host (ETH) and may be based on Worst Case Execution Time (WCET) or other estimations for different available machine resources.
  • ETH network host
  • WET Worst Case Execution Time
  • the cost function 143 is located at the edge site 140 and is responsible for generating a list of possible solutions at the edge site 140 for each specific application offloading request, where each solution in the list includes resource placement or deployment options. Then the UE 130 will receive a list of deployment alternatives containing information such as storage, processing capability, and even origin of used energy resources. The list is detailed, as the monetary cost will be calculated based on that information and will be shared with the user 110 (via user interface 115) or UE 130.
  • two additional functions handle the offloading process: the offload handler 133 and offload manager 141, respectively. These two functions manage the offloading process from the UE 130 to the edge site 140 and provide a communication channel through which output from the cost function 143 can be returned to the UE 130.
  • the cost function 143 is responsible for collecting all the inputs from the application 131 and user 110 domain and the list of available resources, such as storage and processing capacities at the edge site 140, and for generating a list of possible offers to satisfy the application 131 and user 110 requirements.
  • Fig. 2 shows the process 200 of collecting and applying the inputs to the cost function 143.
  • metadata 201 is received from the offload handler 133, where Execution Time at UE (ETD) information 203 is the time expected to be needed to execute the code on UE 130 and is measured and sent to the edge site 140 by UE 130. This can be done at the network edge 140, if the UE 130 hardware configuration will be available, and shared with the offloading manager 141 at the edge site 140.
  • the process 200 also collects communication (RTT) delay information 205 to account for both communication and computation delays.
  • RTT communication
  • Execution Time at Network Host (ETH) estimation function 210 predicts performance using metadata 201, ETD information 203, and RTT delay data 205, and other information from the profiling tool 125 and using the list of available machines (H/W) 207 received from the offload manager 141, and the output is captured — along with metadata 201, ETD information 203, and RTT delay data 205 — at input collection 220.
  • the collected input, app requirements 240/127, the parameter priority list 209, and subscription information 250 characterizing resources available to the user 110 for offload of application components (and/or constraints thereon) provide parameters and data for a hierarchical search 230 based on perimeter priorities.
  • the results of the hierarchical search 230 inform negotiations 260 with the user via user interface 115 regarding the scope, timing, and other parameters of a functional offloading.
  • the calculation steps in the example cost function 143 shown as sequence 300 in Fig. 3 include:
  • Step 1 At 310, UE offload handler 303 receives input from UE 301 and other entities to perform cost analysis using the cost function 143, including inputs:
  • Metadata, application requirements 127, and application source code 121 provided 129 by an Application Developer is received with or alongside application 131 through UE offload handler 133 on UE 130;
  • Offload request with User requirements and ETD 203 is also received through UE offload handler 133.
  • Step 2 At 320, at an edge site/server 140, offload manager 141/305:
  • Step 3 The cost function 143 is used to perform a cost analysis 340 of the offloading request using steps that may include:
  • ETH Execution Time at Host estimation for the supplied list of machines.
  • H/W machine requirements vCPU, Memory, Storage
  • the list of machines and resources 207 at the edge site 140 received from offload manager 305 will be used to estimate what the performance measurements would be on that machine if it were used to execute particular offloaded code or a specific application.
  • the below parameters are examples of performance metrics that in various embodiments can be calculated and used later to check how close the performance measurements are to the application and user requirements and whether each machine or resource in the list 207 can satisfy them.
  • a. Energy consumption estimation b. Security estimation, and c. E2E Delay estimation.
  • Step 4 Orchestration and resource management function 150 determines which machine options match the specified application requirements and priorities 127 per the estimations made in Step 3.
  • Step 5 Orchestration and resource management function 150 ranks these options according to requirements and priorities 127 from the application developer and user 110.
  • Step 6 Provide these cost options 345 along with requirements satisfaction information to the UE 355, offload manager 350, or orchestrator 309 in the form of a tuple for each option.
  • each provided tuple in an exemplary embodiment may have offers with hardware configuration, monetary cost, E2E delay, energy consumption, and security level. This tuple encodes the list of detailed resource specifications that fulfill the application requirements and user preferences together with information of expected performance, energy consumption, monetary cost, etc. If the user or application requirements are not met, the UE offloading handler 303 receives a NULL offer.
  • the network nodes 2110 facilitate direct or indirect connection of UE, such as by connecting UEs 2112a, 2112b, 2112c, and 2112d (one or more of which may be generally referred to as UEs 2112) to the core network 2106 over one or more wireless connections.
  • Example wireless communications over a wireless connection include transmitting and/or receiving wireless signals using electromagnetic waves, radio waves, infrared waves, and/or other types of signals suitable for conveying information without the use of wires, cables, or other material conductors.
  • the communication system 1100 may include any number of wired or wireless networks, network nodes, UEs, and/or any other components or systems that may facilitate or participate in the communication of data and/or signals whether via wired or wireless connections.
  • the communication system 2100 may include and/or interface with any type of communication, telecommunication, data, cellular, radio network, and/or other similar type of system.
  • the UEs 2112 may be any of a wide variety of communication devices, including wireless devices arranged, configured, and/or operable to communicate wirelessly with the network nodes 2110 and other communication devices.
  • the network nodes 2110 are arranged, capable, configured, and/or operable to communicate directly or indirectly with the UEs 2112 and/or with other network nodes or equipment in the telecommunication network 2102 to enable and/or provide network access, such as wireless network access, and/or to perform other functions, such as administration in the telecommunication network 2102.
  • the core network 2106 connects the network nodes 2110 to one or more hosts, such as host 2116. These connections may be direct or indirect via one or more intermediary networks or devices. In other examples, network nodes may be directly coupled to hosts.
  • the core network 2106 includes one or more core network nodes (e.g., core network node 2108) that are structured with hardware and software components. Features of these components may be substantially similar to those described with respect to the UEs, network nodes, and/or hosts, such that the descriptions thereof are generally applicable to the corresponding components of the core network node 2108.
  • Example core network nodes include functions of one or more of a Mobile Switching Center (MSC), Mobility Management Entity (MME), Home Subscriber Server (HSS), Access and Mobility Management Function (AMF), Session Management Function (SMF), Authentication Server Function (AUSF), Subscription Identifier De-concealing function (SIDF), Unified Data Management (UDM), Security Edge Protection Proxy (SEPP), Network Exposure Function (NEF), and/or a User Plane Function (UPF).
  • MSC Mobile Switching Center
  • MME Mobility Management Entity
  • HSS Home Subscriber Server
  • AMF Access and Mobility Management Function
  • SMF Session Management Function
  • AUSF Authentication Server Function
  • SIDF Subscription Identifier De-concealing function
  • UDM Unified Data Management
  • SEPP Security Edge Protection Proxy
  • NEF Network Exposure Function
  • UPF User Plane Function
  • the host 2116 may be under the ownership or control of a service provider other than an operator or provider of the access network 2104 and/or the telecommunication network 2102, and may be operated by the service provider or on behalf of the service provider.
  • the host 2116 may host a variety of applications to provide one or more services. Examples of such applications include live and pre-recorded audio/video content, data collection services such as retrieving and compiling data on various ambient conditions detected by a plurality of UEs, analytics functionality, social media, functions for controlling or otherwise interacting with remote devices, functions for an alarm and surveillance center, or any other such function performed by a server.
  • the communication system 2100 of Fig. 4 enables connectivity between the UEs, network nodes, and hosts.
  • the communication system may be configured to operate according to predefined rules or procedures, such as specific standards that include, but are not limited to: Global System for Mobile Communications (GSM); Universal Mobile Telecommunications System (UMTS); Uong Term Evolution (UTE), and/or other suitable 2G, 3G, 4G, 5G standards, or any applicable future generation standard (e.g., 6G); wireless local area network (WLAN) standards, such as the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standards (Wi-Fi); and/or any other appropriate wireless communication standard, such as the Worldwide Interoperability for Microwave Access (WiMax), Bluetooth, Z-Wave, Near Field Communication (NFC) ZigBee, LiFi, and/or any low-power wide-area network (LPWAN) standards such as LoRa and Sigfox.
  • GSM Global System for Mobile Communications
  • UMTS Universal Mobile Telecommunications System
  • UTE Uong
  • the telecommunication network 2102 is a cellular network that implements 3GPP standardized features. Accordingly, the telecommunications network 2102 may support network slicing to provide different logical networks to different devices that are connected to the telecommunication network 2102. For example, the telecommunications network 2102 may provide Ultra Reliable Low Latency Communication (URLLC) services to some UEs, while providing Enhanced Mobile Broadband (eMBB) services to other UEs, and/or Massive Machine Type Communication (mMTC)ZMassive loT services to yet further UEs.
  • URLLC Ultra Reliable Low Latency Communication
  • eMBB Enhanced Mobile Broadband
  • mMTC Massive Machine Type Communication
  • the hub 2114 may be a data collector that acts as temporary storage for UE data and, in some embodiments, may perform analysis or other processing of the data.
  • the hub 2114 may be a content source. For example, for a UE that is a VR headset, display, loudspeaker or other media delivery device, the hub 2114 may retrieve VR assets, video, audio, or other media or data related to sensory information via a network node, which the hub 2114 then provides to the UE either directly, after performing local processing, and/or after adding additional local content.
  • the hub 2114 acts as a proxy server or orchestrator for the UEs, in particular in if one or more of the UEs are low energy loT devices.
  • the hub 2114 may have a constant/persistent or intermittent connection to the network node 2110b.
  • the hub 2114 may also allow for a different communication scheme and/or schedule between the hub 2114 and UEs (e.g., UE 2112c and/or 2112d), and between the hub 2114 and the core network 2106.
  • the hub 2114 is connected to the core network 2106 and/or one or more UEs via a wired connection.
  • the hub 2114 may be configured to connect to an M2M service provider over the access network 1104 and/or to another UE over a direct connection.
  • UEs may establish a wireless connection with the network nodes 2110 while still connected via the hub 2114 via a wired or wireless connection.
  • the hub 2114 may be a dedicated hub - that is, a hub whose primary function is to route communications to/from the UEs from/to the network node 2110b.
  • the hub 2114 may be a non-dedicated hub - that is, a device which is capable of operating to route communications between the UEs and network node 2110b, but which is additionally capable of operating as a communication start and/or end point for certain data channels.
  • a UE refers to a device capable, configured, arranged and/or operable to communicate wirelessly with network nodes and/or other UEs.
  • a UE include, but are not limited to, a smart phone, mobile phone, cell phone, voice over IP (VoIP) phone, wireless local loop phone, desktop computer, personal digital assistant (PDA), wireless cameras, gaming console or device, music storage device, playback appliance, wearable terminal device, wireless endpoint, mobile station, tablet, laptop, laptop-embedded equipment (LEE), laptop-mounted equipment (LME), smart device, wireless customer-premise equipment (CPE), vehicle-mounted or vehicle embedded/integrated wireless device, etc.
  • VoIP voice over IP
  • PDA personal digital assistant
  • gaming console or device music storage device, playback appliance
  • wearable terminal device wireless endpoint, mobile station, tablet, laptop, laptop-embedded equipment (LEE), laptop-mounted equipment (LME), smart device, wireless customer-premise equipment (CPE), vehicle-mounted or vehicle embedded/integrated wireless device, etc.
  • UEs identified by the 3rd Generation Partnership Project (3GPP), including a narrow band internet of things (NB-IoT) UE, a machine type communication (MTC) UE, and/or an enhanced MTC (eMTC) UE.
  • 3GPP 3rd Generation Partnership Project
  • NB-IoT narrow band internet of things
  • MTC machine type communication
  • eMTC enhanced MTC
  • a UE may support device-to-device (D2D) communication, for example by implementing a 3GPP standard for sidelink communication, Dedicated Short-Range Communication (DSRC), vehicle-to-vehicle (V2V), vehicle-to-infrastructure (V2I), or vehicle-to-everything (V2X).
  • D2D device-to-device
  • DSRC Dedicated Short-Range Communication
  • V2V vehicle-to-vehicle
  • V2I vehicle-to-infrastructure
  • V2X vehicle-to-everything
  • a UE may not necessarily have a user in the sense of a human user who owns and/or operates the relevant device.
  • a UE may represent a device that is intended for sale to, or operation by, a human user but which may not, or which may not initially, be associated with a specific human user (e.g., a smart sprinkler controller).
  • a UE may represent a device that is not intended for sale
  • the UE 2200 includes processing circuitry 2202 that is operatively coupled via a bus 2204 to an input/output interface 2206, a power source 2208, a memory 2210, a communication interface 2212, and/or any other component, or any combination thereof.
  • Certain UEs may utilize all or a subset of the components shown in Fig. 5. The level of integration between the components may vary from one UE to another UE. Further, certain UEs may contain multiple instances of a component, such as multiple processors, memories, transceivers, transmitters, receivers, etc.
  • the processing circuitry 2202 is configured to process instructions and data and may be configured to implement any sequential state machine operative to execute instructions stored as machine-readable computer programs in the memory 2210.
  • the processing circuitry 2202 may be implemented as one or more hardware-implemented state machines (e.g., in discrete logic, field-programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc.); programmable logic together with appropriate firmware; one or more stored computer programs, general-purpose processors, such as a microprocessor or digital signal processor (DSP), together with appropriate software; or any combination of the above.
  • the processing circuitry 2202 may include multiple central processing units (CPUs).
  • the input/output interface 2206 may be configured to provide an interface or interfaces to an input device, output device, or one or more input and/or output devices.
  • Examples of an output device include a speaker, a sound card, a video card, a display, a monitor, a printer, an actuator, an emitter, a smartcard, another output device, or any combination thereof.
  • An input device may allow a user to capture information into the UE 2200.
  • Examples of an input device include a touch-sensitive or presence-sensitive display, a camera (e.g., a digital camera, a digital video camera, a web camera, etc.), a microphone, a sensor, a mouse, a trackball, a directional pad, a trackpad, a scroll wheel, a smartcard, and the like.
  • the presence-sensitive display may include a capacitive or resistive touch sensor to sense input from a user.
  • a sensor may be, for instance, an accelerometer, a gyroscope, a tilt sensor, a force sensor, a magnetometer, an optical sensor, a proximity sensor, a biometric sensor, etc., or any combination thereof.
  • An output device may use the same type of interface port as an input device. For example, a Universal Serial Bus (USB) port may be used to provide an input device and an output device.
  • USB Universal Serial Bus
  • the power source 2208 is structured as a battery or battery pack. Other types of power sources, such as an external power source (e.g., an electricity outlet), photovoltaic device, or power cell, may be used.
  • the power source 2208 may further include power circuitry for delivering power from the power source 2208 itself, and/or an external power source, to the various parts of the UE 2200 via input circuitry or an interface such as an electrical power cable. Delivering power may be, for example, for charging of the power source 2208.
  • Power circuitry may perform any formatting, converting, or other modification to the power from the power source 2208 to make the power suitable for the respective components of the UE 2200 to which power is supplied.
  • the memory 2210 may be or be configured to include memory such as random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable readonly memory (EEPROM), magnetic disks, optical disks, hard disks, removable cartridges, flash drives, and so forth.
  • the memory 2210 includes one or more application programs 2214, such as an operating system, web browser application, a widget, gadget engine, or other application, and corresponding data 2216.
  • the memory 2210 may store, for use by the UE 2200, any of a variety of various operating systems or combinations of operating systems.
  • the memory 2210 may be configured to include a number of physical drive units, such as redundant array of independent disks (RAID), flash memory, USB flash drive, external hard disk drive, thumb drive, pen drive, key drive, high-density digital versatile disc (HD-DVD) optical disc drive, internal hard disk drive, Blu-Ray optical disc drive, holographic digital data storage (HDDS) optical disc drive, external mini-dual in-line memory module (DIMM), synchronous dynamic random access memory (SDRAM), external micro-DIMM SDRAM, smartcard memory such as tamper resistant module in the form of a universal integrated circuit card (UICC) including one or more subscriber identity modules (SIMs), such as a USIM and/or ISIM, other memory, or any combination thereof.
  • RAID redundant array of independent disks
  • HD-DVD high-density digital versatile disc
  • HDDS holographic digital data storage
  • DIMM external mini-dual in-line memory module
  • SDRAM synchronous dynamic random access memory
  • SDRAM synchronous dynamic random access memory
  • the UICC may for example be an embedded UICC (eUICC), integrated UICC (iUICC) or a removable UICC commonly known as ‘SIM card.’
  • the memory 2210 may allow the UE 2200 to access instructions, application programs and the like, stored on transitory or non-transitory memory media, to off-load data, or to upload data.
  • An article of manufacture, such as one utilizing a communication system may be tangibly embodied as or in the memory 2210, which may be or comprise a device-readable storage medium.
  • the processing circuitry 2202 may be configured to communicate with an access network or other network using the communication interface 2212.
  • the communication interface 2212 may comprise one or more communication subsystems and may include or be communicatively coupled to an antenna 2222.
  • the communication interface 2212 may include one or more transceivers used to communicate, such as by communicating with one or more remote transceivers of another device capable of wireless communication (e.g., another UE or a network node in an access network).
  • Each transceiver may include a transmitter 2218 and/or a receiver 2220 appropriate to provide network communications (e.g., optical, electrical, frequency allocations, and so forth).
  • the transmitter 2218 and receiver 2220 may be coupled to one or more antennas (e.g., antenna 2222) and may share circuit components, software or firmware, or alternatively be implemented separately.
  • communication functions of the communication interface 2212 may include cellular communication, Wi-Fi communication, LPWAN communication, data communication, voice communication, multimedia communication, short-range communications such as Bluetooth, near-field communication, location-based communication such as the use of the global positioning system (GPS) to determine a location, another like communication function, or any combination thereof.
  • GPS global positioning system
  • Communications may be implemented in according to one or more communication protocols and/or standards, such as IEEE 802.11, Code Division Multiplexing Access (CDMA), Wideband Code Division Multiple Access (W CDMA), GSM, LTE, New Radio (NR), UMTS, WiMax, Ethernet, transmission control protocol/intemet protocol (TCP/IP), synchronous optical networking (SONET), Asynchronous Transfer Mode (ATM), QUIC, Hypertext Transfer Protocol (HTTP), and so forth.
  • CDMA Code Division Multiplexing Access
  • W CDMA Wideband Code Division Multiple Access
  • GSM Global System for Mobile communications
  • LTE Long Term Evolution
  • NR New Radio
  • UMTS Worldwide Interoperability for Microwave Access
  • WiMax Ethernet
  • TCP/IP transmission control protocol/intemet protocol
  • SONET synchronous optical networking
  • ATM Asynchronous Transfer Mode
  • QUIC Hypertext Transfer Protocol
  • HTTP Hypertext Transfer Protocol
  • a UE may provide an output of data captured by its sensors, through its communication interface 2212, via a wireless connection to a network node.
  • Data captured by sensors of a UE can be communicated through a wireless connection to a network node via another UE.
  • the output may be periodic (e.g., once every 15 minutes if it reports the sensed temperature), random (e.g., to even out the load from reporting from several sensors), in response to a triggering event (e.g., when moisture is detected an alert is sent), in response to a request (e.g., a user initiated request), or a continuous stream (e.g., a live video feed of a patient).
  • a UE comprises an actuator, a motor, or a switch, related to a communication interface configured to receive wireless input from a network node via a wireless connection.
  • the states of the actuator, the motor, or the switch may change.
  • the UE may comprise a motor that adjusts the control surfaces or rotors of a drone in flight according to the received input or to a robotic arm performing a medical procedure according to the received input.
  • a UE when in the form of an Internet of Things (loT) device, may be a device for use in one or more application domains, these domains comprising, but not limited to, city wearable technology, extended industrial application and healthcare.
  • loT device are a device which is or which is embedded in: a connected refrigerator or freezer, a TV, a connected lighting device, an electricity meter, a robot vacuum cleaner, a voice controlled smart speaker, a home security camera, a motion detector, a thermostat, a smoke detector, a door/window sensor, a flood/moisture sensor, an electrical door lock, a connected doorbell, an air conditioning system like a heat pump, an autonomous vehicle, a surveillance system, a weather monitoring device, a vehicle parking monitoring device, an electric vehicle charging station, a smart watch, a fitness tracker, a head-mounted display for Augmented Reality (AR) or Virtual Reality (VR), a wearable for tactile augmentation or sensory enhancement, a water sprinkler, an animal- or item-t
  • AR Augmented
  • a UE may represent a machine or other device that performs monitoring and/or measurements, and transmits the results of such monitoring and/or measurements to another UE and/or a network node.
  • the UE may in this case be an M2M device, which may in a 3GPP context be referred to as an MTC device.
  • the UE may implement the 3GPP NB-IoT standard.
  • a UE may represent a vehicle, such as a car, a bus, a truck, a ship and an airplane, or other equipment that is capable of monitoring and/or reporting on its operational status or other functions associated with its operation.
  • any number of UEs may be used together with respect to a single use case.
  • a first UE might be or be integrated in a drone and provide the drone’s speed information (obtained through a speed sensor) to a second UE that is a remote controller operating the drone.
  • the first UE may adjust the throttle on the drone (e.g. by controlling an actuator) to increase or decrease the drone’s speed.
  • the first and/or the second UE can also include more than one of the functionalities described above.
  • a UE might comprise the sensor and the actuator, and handle communication of data for both the speed sensor and the actuators.
  • Fig. 6 shows a network node 3300 in accordance with some embodiments.
  • network node refers to equipment capable, configured, arranged and/or operable to communicate directly or indirectly with a UE and/or with other network nodes or equipment, in a telecommunication network.
  • network nodes include, but are not limited to, access points (APs) (e.g., radio access points), base stations (BSs) (e.g., radio base stations, Node Bs, evolved Node Bs (eNBs) and NRNodeBs (gNBs)).
  • APs access points
  • BSs base stations
  • Node Bs Node Bs
  • eNBs evolved Node Bs
  • gNBs NRNodeBs
  • Base stations may be categorized based on the amount of coverage they provide (or, stated differently, their transmit power level) and so, depending on the provided amount of coverage, may be referred to as femto base stations, pico base stations, micro base stations, or macro base stations.
  • a base station may be a relay node or a relay donor node controlling a relay.
  • a network node may also include one or more (or all) parts of a distributed radio base station such as centralized digital units and/or remote radio units (RRUs), sometimes referred to as Remote Radio Heads (RRHs). Such remote radio units may or may not be integrated with an antenna as an antenna integrated radio.
  • RRUs remote radio units
  • RRHs Remote Radio Heads
  • Such remote radio units may or may not be integrated with an antenna as an antenna integrated radio.
  • Parts of a distributed radio base station may also be referred to as nodes in a distributed antenna system (DAS).
  • DAS distributed antenna system
  • network nodes include multiple transmission point (multi-TRP) 5G access nodes, multi-standard radio (MSR) equipment such as MSR BSs, network controllers such as radio network controllers (RNCs) or base station controllers (BSCs), base transceiver stations (BTSs), transmission points, transmission nodes, multi-cell/multicast coordination entities (MCEs), Operation and Maintenance (O&M) nodes, Operations Support System (OSS) nodes, Self-Organizing Network (SON) nodes, positioning nodes (e.g., Evolved Serving Mobile Location Centers (E-SMLCs)), and/or Minimization of Drive Tests (MDTs).
  • MSR multi-standard radio
  • RNCs radio network controllers
  • BSCs base station controllers
  • BTSs base transceiver stations
  • OFDM Operation and Maintenance
  • OSS Operations Support System
  • SON Self-Organizing Network
  • positioning nodes e.g., Evolved Serving Mobile Location Centers (E-SMLCs)
  • the network node 3300 includes a processing circuitry 3302, a memory 3304, a communication interface 3306, and a power source 3308.
  • the network node 3300 may be composed of multiple physically separate components (e.g., aNodeB component and a RNC component, or a BTS component and a BSC component, etc.), which may each have their own respective components.
  • the network node 3300 comprises multiple separate components (e.g., BTS and BSC components)
  • one or more of the separate components may be shared among several network nodes.
  • a single RNC may control multiple NodeBs.
  • each unique NodeB and RNC pair may in some instances be considered a single separate network node.
  • the network node 1300 may be configured to support multiple radio access technologies (RATs).
  • RATs radio access technologies
  • some components may be duplicated (e.g., separate memory 3304 for different RATs) and some components may be reused (e.g., a same antenna 3310 may be shared by different RATs).
  • the network node 3300 may also include multiple sets of the various illustrated components for different wireless technologies integrated into network node 1300, for example GSM, WCDMA, LTE, NR, WiFi, Zigbee, Z-wave, LoRaWAN, Radio Frequency Identification (RFID) or Bluetooth wireless technologies. These wireless technologies may be integrated into the same or different chip or set of chips and other components within network node 1300.
  • RFID Radio Frequency Identification
  • the processing circuitry 3302 may comprise a combination of one or more of a microprocessor, controller, microcontroller, central processing unit, digital signal processor, application-specific integrated circuit, field programmable gate array, or any other suitable computing device, resource, or combination of hardware, software and/or encoded logic operable to provide, either alone or in conjunction with other network node 3300 components, such as the memory 3304, to provide network node 3300 functionality.
  • the processing circuitry 3302 includes a system on a chip (SOC). In some embodiments, the processing circuitry 3302 includes one or more of radio frequency (RF) transceiver circuitry 3312 and baseband processing circuitry 3314. In some embodiments, the radio frequency (RF) transceiver circuitry 3312 and the baseband processing circuitry 3314 may be on separate chips (or sets of chips), boards, or units, such as radio units and digital units. In alternative embodiments, part or all of RF transceiver circuitry 3312 and baseband processing circuitry 3314 may be on the same chip or set of chips, boards, or units.
  • SOC system on a chip
  • the processing circuitry 3302 includes one or more of radio frequency (RF) transceiver circuitry 3312 and baseband processing circuitry 3314.
  • the radio frequency (RF) transceiver circuitry 3312 and the baseband processing circuitry 3314 may be on separate chips (or sets of chips), boards, or units, such as radio units and digital units. In alternative embodiments, part or all of
  • the memory 3304 may comprise any form of volatile or non-volatile computer-readable memory including, without limitation, persistent storage, solid-state memory, remotely mounted memory, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), mass storage media (for example, a hard disk), removable storage media (for example, a flash drive, a Compact Disk (CD) or a Digital Video Disk (DVD)), and/or any other volatile or non-volatile, non-transitory device-readable and/or computer-executable memory devices that store information, data, and/or instructions that may be used by the processing circuitry 3302.
  • volatile or non-volatile computer-readable memory including, without limitation, persistent storage, solid-state memory, remotely mounted memory, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), mass storage media (for example, a hard disk), removable storage media (for example, a flash drive, a Compact Disk (CD) or a Digital Video Disk (DVD)), and/or any other volatile or non-
  • the memory 3304 may store any suitable instructions, data, or information, including a computer program, software, an application including one or more of logic, rules, code, tables, and/or other instructions capable of being executed by the processing circuitry 3302 and utilized by the network node 3300.
  • the memory 3304 may be used to store any calculations made by the processing circuitry 3302 and/or any data received via the communication interface 3306.
  • the processing circuitry 3302 and memory 3304 is integrated.
  • the communication interface 3306 is used in wired or wireless communication of signaling and/or data between a network node, access network, and/or UE. As illustrated, the communication interface 3306 comprises port(s)/terminal(s) 3316 to send and receive data, for example to and from a network over a wired connection.
  • the communication interface 3306 also includes radio front-end circuitry 3318 that may be coupled to, or in certain embodiments a part of, the antenna 3310. Radio front-end circuitry 3318 comprises filters 3320 and amplifiers 3322.
  • the radio front-end circuitry 3318 may be connected to an antenna 3310 and processing circuitry 3302.
  • the radio front-end circuitry may be configured to condition signals communicated between antenna 3310 and processing circuitry 3302.
  • the radio front-end circuitry 3318 may receive digital data that is to be sent out to other network nodes or UEs via a wireless connection.
  • the radio front-end circuitry 3318 may convert the digital data into a radio signal having the appropriate channel and bandwidth parameters using a combination of filters 3320 and/or amplifiers 3322.
  • the radio signal may then be transmitted via the antenna 3310.
  • the antenna 3310 may collect radio signals which are then converted into digital data by the radio front-end circuitry 3318.
  • the digital data may be passed to the processing circuitry 3302.
  • the communication interface may comprise different components and/or different combinations of components.
  • the network node 3300 does not include separate radio front-end circuitry 3318, instead, the processing circuitry 3302 includes radio front-end circuitry and is connected to the antenna 3310.
  • the processing circuitry 3302 includes radio front-end circuitry and is connected to the antenna 3310.
  • all or some of the RF transceiver circuitry 3312 is part of the communication interface 3306.
  • the communication interface 3306 includes one or more ports or terminals 3316, the radio front-end circuitry 3318, and the RF transceiver circuitry 3312, as part of a radio unit (not shown), and the communication interface 3306 communicates with the baseband processing circuitry 3314, which is part of a digital unit (not shown).
  • the antenna 3310 may include one or more antennas, or antenna arrays, configured to send and/or receive wireless signals.
  • the antenna 3310 may be coupled to the radio front-end circuitry 3318 and may be any type of antenna capable of transmitting and receiving data and/or signals wirelessly.
  • the antenna 3310 is separate from the network node 3300 and connectable to the network node 3300 through an interface or port.
  • the antenna 3310, communication interface 3306, and/or the processing circuitry 3302 may be configured to perform any receiving operations and/or certain obtaining operations described herein as being performed by the network node. Any information, data and/or signals may be received from a UE, another network node and/or any other network equipment. Similarly, the antenna 3310, the communication interface 3306, and/or the processing circuitry 3302 may be configured to perform any transmitting operations described herein as being performed by the network node. Any information, data and/or signals may be transmitted to a UE, another network node and/or any other network equipment.
  • the power source 3308 provides power to the various components of network node 3300 in a form suitable for the respective components (e.g., at a voltage and current level needed for each respective component).
  • the power source 3308 may further comprise, or be coupled to, power management circuitry to supply the components of the network node 3300 with power for performing the functionality described herein.
  • the network node 3300 may be connectable to an external power source (e.g., the power grid, an electricity outlet) via an input circuitry or interface such as an electrical cable, whereby the external power source supplies power to power circuitry of the power source 3308.
  • the power source 3308 may comprise a source of power in the form of a battery or battery pack which is connected to, or integrated in, power circuitry. The battery may provide backup power should the external power source fail.
  • Embodiments of the network node 3300 may include additional components beyond those shown in Fig. 6 for providing certain aspects of the network node’s functionality, including any of the functionality described herein and/or any functionality necessary to support the subject matter described herein.
  • the network node 3300 may include user interface equipment to allow input of information into the network node 3300 and to allow output of information from the network node 3300. This may allow a user to perform diagnostic, maintenance, repair, and other administrative functions for the network node 3300.
  • Fig. 7 is a block diagram of a host 4400, which may be an embodiment of the host 2116 of Fig. 4, in accordance with various aspects described herein.
  • the host 4400 may be or comprise various combinations hardware and/or software, including a standalone server, a blade server, a cloud-implemented server, a distributed server, a virtual machine, container, or processing resources in a server farm.
  • the host 4400 may provide one or more services to one or more UEs.
  • the host 4400 includes processing circuitry 4402 that is operatively coupled via a bus 4404 to an input/output interface 4406, a network interface 4408, a power source 4410, and a memory 4412.
  • processing circuitry 4402 that is operatively coupled via a bus 4404 to an input/output interface 4406, a network interface 4408, a power source 4410, and a memory 4412.
  • Other components may be included in other embodiments. Features of these components may be substantially similar to those described with respect to the devices of previous figures, such as Figures 40 and 41, such that the descriptions thereof are generally applicable to the corresponding components of host 4400.
  • the memory 4412 may include one or more computer programs including one or more host application programs 4414 and data 4416, which may include user data, e.g., data generated by a UE for the host 4400 or data generated by the host 4400 for a UE.
  • Embodiments of the host 4400 may utilize only a subset or all of the components shown.
  • the host application programs 4414 may be implemented in a container-based architecture and may provide support for video codecs (e.g., Versatile Video Coding (VVC), High Efficiency Video Coding (HEVC), Advanced Video Coding (AVC), MPEG, VP9) and audio codecs (e.g., FLAC, Advanced Audio Coding (AAC), MPEG, G.711), including transcoding for multiple different classes, types, or implementations of UEs (e.g., handsets, desktop computers, wearable display systems, heads-up display systems).
  • the host application programs 4414 may also provide for user authentication and licensing checks and may periodically report health, routes, and content availability to a central node, such as a device in or on the edge of a core network.
  • the host 4400 may select and/or indicate a different host for over-the-top services for a UE.
  • the host application programs 4414 may support various protocols, such as the HTTP Live Streaming (HLS) protocol, Real-Time Messaging Protocol (RTMP), Real-Time Streaming Protocol (RTSP), Dynamic Adaptive Streaming over HTTP (MPEG-DASH), etc.
  • HLS HTTP Live Streaming
  • RTMP Real-Time Messaging Protocol
  • RTSP Real-Time Streaming Protocol
  • MPEG-DASH Dynamic Adaptive Streaming over HTTP
  • Fig. 8 is a block diagram illustrating a virtualization environment 5500 in which functions implemented by some embodiments may be virtualized.
  • virtualizing means creating virtual versions of apparatuses or devices which may include virtualizing hardware platforms, storage devices and networking resources.
  • virtualization can be applied to any device described herein, or components thereof, and relates to an implementation in which at least a portion of the functionality is implemented as one or more virtual components.
  • Some or all of the functions described herein may be implemented as virtual components executed by one or more virtual machines (VMs) implemented in one or more virtual environments 5500 hosted by one or more of hardware nodes, such as a hardware computing device that operates as a network node, UE, core network node, or host.
  • VMs virtual machines
  • the node may be entirely virtualized.
  • Applications 5502 (which may alternatively be called software instances, virtual appliances, network functions, virtual nodes, virtual network functions, etc.) are run in the virtualization environment 5500 to implement some of the features, functions, and/or benefits of some of the embodiments disclosed herein.
  • Hardware 5504 includes processing circuitry, memory that stores software and/or instructions executable by hardware processing circuitry, and/or other hardware devices as described herein, such as a network interface, input/output interface, and so forth.
  • Software may be executed by the processing circuitry to instantiate one or more virtualization layers 5506 (also referred to as hypervisors or virtual machine monitors (VMMs)), provide VMs 5508a and 5508b (one or more of which may be generally referred to as VMs 5508), and/or perform any of the functions, features and/or benefits described in relation with some embodiments described herein.
  • the virtualization layer 5506 may present a virtual operating platform that appears like networking hardware to the VMs 5508.
  • the VMs 5508 comprise virtual processing, virtual memory, virtual networking or interface and virtual storage, and may be run by a corresponding virtualization layer 5506.
  • a virtualization layer 5506 may be implemented on one or more of VMs 5508, and the implementations may be made in different ways.
  • Virtualization of the hardware is in some contexts referred to as network function virtualization (NFV).
  • NFV network function virtualization
  • NFV may be used to consolidate many network equipment types onto industry standard high volume server hardware, physical switches, and physical storage, which can be located in data centers, and customer premise equipment.
  • a VM 5508 may be a software implementation of a physical machine that runs programs as if they were executing on a physical, non-virtualized machine.
  • Each of the VMs 5508, and that part of hardware 5504 that executes that VM forms separate virtual network elements.
  • a virtual network function is responsible for handling specific network functions that run in one or more VMs 5508 on top of the hardware 5504 and corresponds to the application 5502.
  • Hardware 5504 may be implemented in a standalone network node with generic or specific components. Hardware 5504 may implement some functions via virtualization. Alternatively, hardware 5504 may be part of a larger cluster of hardware (e.g., such as in a data center or CPE) where many hardware nodes work together and are managed via management and orchestration 5510, which, among others, oversees lifecycle management of applications 5502.
  • hardware 5504 is coupled to one or more radio units that each include one or more transmitters and one or more receivers that may be coupled to one or more antennas. Radio units may communicate directly with other hardware nodes via one or more appropriate network interfaces and may be used in combination with the virtual components to provide a virtual node with radio capabilities, such as a radio access node or a base station.
  • some signaling can be provided with the use of a control system 5512 which may alternatively be used for communication between hardware nodes and radio units.
  • Fig. 9 shows a communication diagram of a host 6602 communicating via a network node 6604 with a UE 6606 over a partially wireless connection in accordance with some embodiments.
  • host 6602 Like host 4400, embodiments of host 6602 include hardware, such as a communication interface, processing circuitry, and memory.
  • the host 6602 also includes software, which is stored in or accessible by the host 6602 and executable by the processing circuitry.
  • the software includes a host application that may be operable to provide a service to a remote user, such as the UE 6606 connecting via an over-the-top (OTT) connection 6650 extending between the UE 6606 and host 6602.
  • OTT over-the-top
  • a host application may provide user data which is transmitted using the OTT connection 6650.
  • the network node 6604 includes hardware enabling it to communicate with the host 6602 and UE 6606.
  • the connection 6660 may be direct or pass through a core network (like core network 2106 of Fig. 4) and/or one or more other intermediate networks, such as one or more public, private, or hosted networks.
  • a core network like core network 2106 of Fig. 4
  • one or more other intermediate networks such as one or more public, private, or hosted networks.
  • an intermediate network may be a backbone network or the Internet.
  • the UE 6606 includes hardware and software, which is stored in or accessible by UE 6606 and executable by the UE’s processing circuitry.
  • the software includes a client application, such as a web browser or operator-specific “app” that may be operable to provide a service to a human or non-human user via UE 6606 with the support of the host 6602.
  • a client application such as a web browser or operator-specific “app” that may be operable to provide a service to a human or non-human user via UE 6606 with the support of the host 6602.
  • an executing host application may communicate with the executing client application via the OTT connection 6650 terminating at the UE 6606 and host 6602.
  • the UE’s client application may receive request data from the host’s host application and provide user data in response to the request data.
  • the OTT connection 6650 may transfer both the request data and the user data.
  • the UE’s client application may interact with the user to generate the user data that it provides
  • the OTT connection 6650 may extend via a connection 6660 between the host 6602 and the network node 6604 and via a wireless connection 6670 between the network node 6604 and the UE 6606 to provide the connection between the host 6602 and the UE 6606.
  • the connection 6660 and wireless connection 6670, over which the OTT connection 6650 may be provided, have been drawn abstractly to illustrate the communication between the host 6602 and the UE 1606 via the network node 6604, without explicit reference to any intermediary devices and the precise routing of messages via these devices.
  • the host 6602 provides user data, which may be performed by executing a host application.
  • the user data is associated with a particular human user interacting with the UE 6606.
  • the user data is associated with a UE 6606 that shares data with the host 6602 without explicit human interaction.
  • the host 6602 initiates a transmission carrying the user data towards the UE 6606.
  • the host 6602 may initiate the transmission responsive to a request transmitted by the UE 6606.
  • the request may be caused by human interaction with the UE 6606 or by operation of the client application executing on the UE 6606.
  • the transmission may pass via the network node 6604, in accordance with the teachings of the embodiments described throughout this disclosure. Accordingly, in step 6612, the network node 6604 transmits to the UE 6606 the user data that was carried in the transmission that the host 6602 initiated, in accordance with the teachings of the embodiments described throughout this disclosure.
  • the UE 6606 receives the user data carried in the transmission, which may be performed by a client application executed on the UE 6606 associated with the host application executed by the host 6602. In some examples, the UE 6606 executes a client application which provides user data to the host 6602. The user data may be provided in reaction or response to the data received from the host 6602.
  • the UE 6606 may provide user data, which may be performed by executing the client application.
  • the client application may further consider user input received from the user via an input/output interface of the UE 6606.
  • the UE 6606 initiates, in step 6618, transmission of the user data towards the host 6602 via the network node 6604.
  • the network node 6604 receives user data from the UE 6606 and initiates transmission of the received user data towards the host 6602.
  • the host 6602 receives the user data carried in the transmission initiated by the UE 6606.
  • One or more of the various embodiments improve the performance of OTT services provided to the UE 6606 using the OTT connection 6650, in which the wireless connection 6670 forms the last segment. More precisely, the teachings of these embodiments may improve the data rate, latency, and/or power consumption and thereby provide benefits such as reduced user waiting time, relaxed restriction on file size, improved content resolution, better responsiveness, and/or extended battery lifetime.
  • factory status information may be collected and analyzed by the host 6602.
  • the host 6602 may process audio and video data which may have been retrieved from a UE for use in creating maps.
  • the host 6602 may collect and analyze real-time data to assist in controlling vehicle congestion (e.g., controlling traffic lights).
  • the host 6602 may store surveillance video uploaded by a UE.
  • the host 6602 may store or control access to media content such as video, audio, VR or AR which it can broadcast, multicast or unicast to UEs.
  • the host 6602 may be used for energy pricing, remote control of non-time critical electrical load to balance power generation needs, location services, presentation services (such as compiling diagrams etc. from data collected from remote devices), or any other function of collecting, retrieving, storing, analyzing and/or transmitting data.
  • a measurement procedure may be provided for the purpose of monitoring data rate, latency and other factors on which the one or more embodiments improve.
  • the measurement procedure and/or the network functionality for reconfiguring the OTT connection may be implemented in software and hardware of the host 6602 and/or UE 6606.
  • sensors (not shown) may be deployed in or in association with other devices through which the OTT connection 6650 passes; the sensors may participate in the measurement procedure by supplying values of the monitored quantities exemplified above, or supplying values of other physical quantities from which software may compute or estimate the monitored quantities.
  • the reconfiguring of the OTT connection 6650 may include message format, retransmission settings, preferred routing etc.; the reconfiguring need not directly alter the operation of the network node 6604. Such procedures and functionalities may be known and practiced in the art.
  • measurements may involve proprietary UE signaling that facilitates measurements of throughput, propagation times, latency and the like, by the host 6602.
  • the measurements may be implemented in that software causes messages to be transmitted, in particular empty or ‘dummy’ messages, using the OTT connection 6650 while monitoring propagation times, errors, etc.
  • computing devices described herein may include the illustrated combination of hardware components, other embodiments may comprise computing devices with different combinations of components. It is to be understood that these computing devices may comprise any suitable combination of hardware and/or software needed to perform the tasks, features, functions and methods disclosed herein. Determining, calculating, obtaining or similar operations described herein may be performed by processing circuitry, which may process information by, for example, converting the obtained information into other information, comparing the obtained information or converted information to information stored in the network node, and/or performing one or more operations based on the obtained information or converted information, and as a result of said processing making a determination.
  • processing circuitry may process information by, for example, converting the obtained information into other information, comparing the obtained information or converted information to information stored in the network node, and/or performing one or more operations based on the obtained information or converted information, and as a result of said processing making a determination.
  • computing devices may comprise multiple different physical components that make up a single illustrated component, and functionality may be partitioned between separate components.
  • a communication interface may be configured to include any of the components described herein, and/or the functionality of the components may be partitioned between the processing circuitry and the communication interface.
  • non-computationally intensive functions of any of such components may be implemented in software or firmware and computationally intensive functions may be implemented in hardware.
  • processing circuitry executing instructions stored in memory, which in certain embodiments may be a computer program product in the form of a non-transitory computer-readable storage medium.
  • some or all of the functionality may be provided by the processing circuitry without executing instructions stored on a separate or discrete device- readable storage medium, such as in a hard-wired manner.
  • the processing circuitry can be configured to perform the described functionality. The benefits provided by such functionality are not limited to the processing circuitry alone or to other components of the computing device but are enjoyed by the computing device as a whole, and/or by end users and a wireless network generally.
  • controller computer system
  • computing system are defined broadly as including any device or system — or combination thereof — that includes at least one physical and tangible processor and a physical and tangible memory capable of having thereon computer-executable instructions that may be executed by a processor.
  • the term “computer system” or “computing system,” as used herein is intended to include personal computers, desktop computers, laptop computers, tablets, hand-held devices (e.g., mobile telephones, PDAs, pagers), microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, multi-processor systems, network PCs, distributed computing systems, datacenters, message processors, routers, switches, and even devices that conventionally have not been considered a computing system, such as wearables (e.g., glasses).
  • the computing system also has thereon multiple structures often referred to as an “executable component.”
  • the memory of a computing system can include an executable component.
  • executable component is the name for a structure that is well understood to one of ordinary skill in the art in the field of computing as being a structure that can be software, hardware, or a combination thereof.
  • the structure of an executable component may include software objects, routines, methods, and so forth, that may be executed by one or more processors on the computing system, whether such an executable component exists in the heap of a computing system, or whether the executable component exists on computer-readable storage media.
  • the structure of the executable component exists on a computer-readable medium in such a form that it is operable, when executed by one or more processors of the computing system, to cause the computing system to perform one or more functions, such as the functions and methods described herein.
  • a structure may be computer-readable directly by a processor — as is the case if the executable component were binary.
  • the structure may be structured to be interpretable and/or compiled — whether in a single stage or in multiple stages — so as to generate such binary that is directly interpretable by a processor.
  • the terms “component,” “service,” “engine,” “module,” “control,” “generator,” or the like may also be used in this description. As used in this description and in this case, these terms — whether expressed with or without a modifying clause — are also intended to be synonymous with the term “executable component” and thus also have a structure that is well understood by those of ordinary skill in the art of computing.
  • a computer is generally understood to comprise one or more processors or one or more controllers, and the terms computer, processor, and controller may be employed interchangeably.
  • the functions may be provided by a single dedicated computer or processor or controller, by a single shared computer or processor or controller, or by a plurality of individual computers or processors or controllers, some of which may be shared or distributed.
  • the term “processor” or “controller” also refers to other hardware capable of performing such functions and/or executing software, such as the example hardware recited above.
  • the various exemplary embodiments may be implemented in hardware or special purpose chips, circuits, software, logic, or any combination thereof.
  • some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor, or other computing device, although the disclosure is not limited thereto.
  • firmware or software which may be executed by a controller, microprocessor, or other computing device, although the disclosure is not limited thereto.
  • While various aspects of the exemplary embodiments of this disclosure may be illustrated and described as block diagrams, flow charts, or using some other pictorial representation, it is well understood that these blocks, apparatus, systems, techniques, or methods described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.
  • a computing system includes a user interface for use in communicating information from/to a user.
  • the user interface may include output mechanisms as well as input mechanisms.
  • output mechanisms might include, for instance, speakers, displays, tactile output, projections, holograms, and so forth.
  • Examples of input mechanisms might include, for instance, microphones, touchscreens, projections, holograms, cameras, keyboards, stylus, mouse, or other pointer input, sensors of any type, and so forth.
  • the terms “approximately,” “about,” and “substantially,” as used herein, represent an amount or condition close to the specific stated amount or condition that still performs a desired function or achieves a desired result.
  • the terms “approximately,” “about,” and “substantially” may refer to an amount or condition that deviates by less than 10%, or by less than 5%, or by less than 1%, or by less than 0. 1%, or by less than 0.01% from a specifically stated amount or condition.
  • references to referents in the plural form does not necessarily require a plurality of such referents. Instead, it will be appreciated that independent of the inferred number of referents, one or more referents are contemplated herein unless stated otherwise.
  • references in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” and the like indicate that the embodiment described may include a particular feature, structure, or characteristic, but it is not necessary that every embodiment includes the 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 affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
  • first and second etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and similarly, a second element could be termed a first element, without departing from the scope of example embodiments.
  • the term “and/or” includes any and all combinations of one or more of the associated listed terms.
  • any of the possible candidates or alternatives listed for that component may generally be used individually or in combination with one another, unless implicitly or explicitly understood or stated otherwise. Additionally, it will be understood that any list of such candidates or alternatives is merely illustrative, not limiting, unless implicitly or explicitly understood or stated otherwise.
  • systems, devices, products, kits, methods, and/or processes, according to certain embodiments of the present disclosure may include, incorporate, or otherwise comprise properties or features (e.g., components, members, elements, parts, and/or portions) described in other embodiments disclosed and/or described herein. Accordingly, the various features of certain embodiments can be compatible with, combined with, included in, and/or incorporated into other embodiments of the present disclosure. Thus, disclosure of certain features relative to a specific embodiment of the present disclosure should not be construed as limiting application or inclusion of said features to the specific embodiment. Rather, it will be appreciated that other embodiments can also include said features, members, elements, parts, and/or portions without necessarily departing from the scope of the present disclosure.
  • any feature herein may be combined with any other feature of a same or different embodiment disclosed herein.
  • various well-known aspects of illustrative systems, methods, apparatus, and the like are not described herein in particular detail in order to avoid obscuring aspects of the example embodiments. Such aspects are, however, also contemplated herein.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Systems and methods collect input information about a function to offload, a representation of the code, application requirements, user preferences, resource profiles, and capabilities and apply a cost function to weigh these factors as applied to available offloading and local processing options. The cost function outputs a list of resource specifications that fulfill the application requirements and user preferences together with information about expected performance, energy consumption, monetary cost, and other aspects of the potential offloading. Application developer tools assemble input data and evaluate candidates for offloading functionality, which are used in static, semi-static, and dynamic deployments. They are also applied in a control plane of a framework for dynamic offloading to field requests and evaluate whether potential offloading solutions are beneficial.

Description

Cost Analysis for Computational Offloading Decisions
TECHNICAL FIELD
This disclosure relates to the field of wireless communication, and more particularly to the management of computing tasks by devices that make up a wireless communication network. BACKGROUND
In general, offloading means that a task performed by application functionality in one entity is instead performed in another entity. For example, a computationally intensive task is performed on a powerful server instead of a resource constrained device. Another example is letting one entity handle synchronization of multiple individual sub-tasks as part of a collaborative effort in which the sub-tasks are executed at different entities.
An implied goal is generally to offload tasks to achieve some benefit for the device, for the application, or for the user that owns the device. This can be such measurable benefits as power saving or improved performance, more subjective benefits such as user Quality of Experience, or functional benefits such as resource accessibility.
Offloading requires that the functionality of the application is divided into parts that can be executed on different entities (and locations). The most common way to do this is a (semi-)static division where some parts of the application always execute in the device, often referred to as User Equipment (UE), whilst other parts are always executed in a remote location, for example, at an edge data center and or at a central datacenter. It is also possible to offload dynamically; that is, a task could either be executed in the UE or, if certain conditions are met, moved dynamically to a remote location for execution.
In the latter case, a functional component may be offloaded with an existing internal state, generally regarded to have been generated on the device itself, or with access to an external state, as in the case of “stateless” functions, or, for simple or short-running functions, only the initial parameters.
The stated benefits of offloading are often weighed against the potential drawbacks, of which the most obvious is the increased data transfer time between the parts of the application residing in the UE and the offloaded functional parts. Thus, although an offloaded function may be executed faster than on the device, this may be offset by the additional time taken to offload the function, send input data or state, and then receive a response. See Xiaoqiang Ma et al., When mobile terminals meet the cloud: computation offloading as the bridge, https://doi.Org/10.l 109/MNET.2013.6616112 , which presents an overview of computation offloading in mobile cloud computing and analyzes cloud-assisted distributed interactive mobile applications in the abstract. See also Saeik, F. et al., Task offloading in Edge and Cloud Computing: A survey on mathematical, artificial intelligence and control theory solutions, https://doi.Org/10.1016/j.comnet.2021.108177 , which provides a detailed survey of how edge and/or cloud resources can be combined to facilitate task offloading.
With this in mind, offloading is often described as an enabler of edge computing. In this paradigm, compute resources are located near the user to minimize the network delay that offloading introduces. This potentially enables use cases wherein an application running on UE requires both high computational resources and low network latency, such as autonomous drones or XR.
SUMMARY
Various embodiments determine and use a “cost function” that maps multiple inputs to one output value, which is used to inform decisions whether to offload computational tasks from networked devices. As described further herein, inputs characterize one or more of computational resources (e.g., processor speed and quantity), memory, network characteristics (e.g., RTT), and economic cost (e.g., price) of using a particular offloading option (perhaps including, for completeness, the option of not offloading the task), plus user and/or system preferences and/or priorities. The output of the cost function represents a combination of all of the inputs into a single quantity so that, when an offloading request is or could be made, the cost function might be applied to multiple offloading options to prioritize the options and pick the numerically “best” one. In some embodiments, the cost function is determined at a point in time (perhaps long) before the offloading decision has to be made, then calculated based on current input values when offloading is requested.
A first embodiment of the disclosed technology includes a method performed by a user equipment for conditionally offloading a computational task, the method comprising: as a cost function of information about (i) a computational task to be executed, and (ii) an available computing resource in communication with the user equipment via a wireless network, selecting whether to execute the computational task on the user equipment or on the available computing resource; and if the user equipment selects to execute the computational task on the available computing resource, offloading the computational task by communicating data to the available computing resource, where the communicated data is sufficient to enable the available computing resource to execute the computational task.
A second embodiment is the method of the first embodiment, wherein the information about the computational task comprises at least one of: a representation of the code, or application requirements. A third embodiment is the method of any of the previous embodiments, wherein the information about the available computing resource comprises at least one of a resource profde and a specification of capabilities of the available computing resource.
A fourth embodiment is the method of any of the previous embodiments, wherein the cost function is also a function of one or more user preferences.
A fifth embodiment is the method of any of the previous embodiments, wherein the available computing resource comprises a plurality of distinct computing resources, wherein the cost function produces a result, and wherein the result comprises a list of zero or more of the distinct computing resources that fulfill the application requirements and user preferences together with information about at least one of expected performance, expected energy consumption, or expected monetary cost associated with executing the computing task on a respective one of the distinct computing resources.
A sixth embodiment is the method of any of the previous embodiments, further comprising the step of, if the user equipment selects to execute the computational task on the available computing resource, receiving from the available computing resource an output of the computational task.
A seventh embodiment is the method of any of the previous embodiments, further comprising, based on changes in the value of the cost function after the offloading, revoking the offloading.
An eighth embodiment is the method of any of the previous embodiments, further comprising providing user data; and forwarding the user data to a host via the transmission to the network node.
A ninth embodiment is a computer-implemented method for conditionally offloading a computational task, comprising as a cost function of information about (i) a computational task to be executed, and (ii) an available computing resource in communication with the user equipment via a wireless network, selecting whether to execute the computational task on the user equipment or on the available computing resource; and if the user equipment selects to execute the computational task on the available computing resource, communicating data to the available computing resource, where the communicated data is sufficient to enable the available computing resource to execute the computational task.
A tenth embodiment is a system for conditionally offloading a computational task comprising processing circuitry and a memory, the memory containing instructions executable by the processing circuitry whereby the system is operative to perform any of the steps in any of the previous embodiments. An eleventh embodiment is a method performed by a network node for conditionally offloading a computational task, the method comprising, as a cost function of information about (i) a computational task to be executed, and (ii) an available computing resource in communication with the network node via a wireless network, selecting whether to execute the computational task on the network node or on the available computing resource; and if the network node selects to execute the computational task on the available computing resource, communicating data to the available computing resource, where the communicated data is sufficient to enable the available computing resource to execute the computational task.
A twelfth embodiment is the method of the eleventh embodiment, wherein the information about the computational task comprises at least one of: a representation of the code, or application requirements.
A thirteenth embodiment is the method of any of the eleventh or twelfth embodiments, wherein the information about the available computing resource comprises at least one of a resource profile and a specification of capabilities of the available computing resource.
A fourteenth embodiment is the method of any of the eleventh through thirteenth embodiments, wherein the cost function is also a function of one or more user preferences.
A fifteenth embodiment is the method of any of the eleventh through fourteenth embodiment, wherein the available computing resource comprises a plurality of distinct computing resources, wherein the cost function produces a result, and wherein the result comprises a list of zero or more of the distinct computing resources that fulfill the application requirements and user preferences together with information about at least one of expected performance, expected energy consumption, or expected monetary cost associated with executing the computing task on a respective one of the distinct computing resources.
A sixteenth embodiment is the method of any of the eleventh through fifteenth embodiments, further comprising the step of, if the network node selects to execute the computational task on the available computing resource, receiving from the available computing resource an output of the computational task.
A seventeenth embodiment is the method of any of the eleventh through sixteenth embodiments, further comprising, based on changes in the value of the cost function after the offloading, revoking the offloading.
An eighteenth embodiment is the method of any of the eleventh through seventeenth embodiments, further comprising: obtaining user data; and forwarding the user data to a host or a user equipment.
A nineteenth embodiment is a user equipment for conditionally offloading a computational task, comprising: processing circuitry configured to perform any of the steps of any of the first eight embodiments; and power supply circuitry configured to supply power to the processing circuitry.
A twentieth embodiment is a network node for conditionally offloading a computational task, the network node comprising: processing circuitry configured to perform any of the steps of any of the eleventh through eighteenth embodiments; and power supply circuitry configured to supply power to the processing circuitry.
A twenty-first embodiment is a user equipment (UE) for conditionally offloading a computational task, the UE comprising: an antenna configured to send and receive wireless signals; radio front-end circuitry connected to the antenna and to processing circuitry, and configured to condition signals communicated between the antenna and the processing circuitry; the processing circuitry being configured to perform any of the steps of any of the first eight embodiments; an input interface connected to the processing circuitry and configured to allow input of information into the UE to be processed by the processing circuitry; an output interface connected to the processing circuitry and configured to output information from the UE that has been processed by the processing circuitry; and a battery connected to the processing circuitry and configured to supply power to the UE.
A twenty-second embodiment is a host configured to operate in a communication system to provide an over-the-top (OTT) service, the host comprising: processing circuitry configured to provide user data; and a network interface configured to initiate transmission of the user data to a cellular network for transmission to a user equipment (UE), wherein the UE comprises a communication interface and processing circuitry, the communication interface and processing circuitry of the UE being configured to perform any of the steps of any of the first eight embodiments to receive the user data from the host.
A twenty-third embodiment is the host of the previous embodiment, wherein the cellular network further includes a network node configured to communicate with the UE to transmit the user data to the UE from the host.
A twenty-fourth embodiment is the host of either of the previous 2 embodiments, wherein: the processing circuitry of the host is configured to execute a host application, thereby providing the user data; and the host application is configured to interact with a client application executing on the UE, the client application being associated with the host application.
A twenty-fifth embodiment is a method implemented by a host operating in a communication system that further includes a network node and a user equipment (UE), the method comprising: providing user data for the UE; and initiating a transmission carrying the user data to the UE via a cellular network comprising the network node, wherein the UE performs any of the operations of any of the first eight embodiments to receive the user data from the host. A twenty-sixth embodiment is the method of the previous embodiment, further comprising: at the host, executing a host application associated with a client application executing on the UE to receive the user data from the UE.
A twenty-seventh embodiment is the method of the previous embodiment, further comprising: at the host, transmitting input data to the client application executing on the UE, the input data being provided by executing the host application, wherein the user data is provided by the client application in response to the input data from the host application.
A twenty-eighth embodiment is a host configured to operate in a communication system to provide an over-the-top (OTT) service, the host comprising: processing circuitry configured to provide user data; and a network interface configured to initiate transmission of the user data to a cellular network for transmission to a user equipment (UE), wherein the UE comprises a communication interface and processing circuitry, the communication interface and processing circuitry of the UE being configured to perform any of the steps of any of the first eight embodiments to transmit the user data to the host.
A twenty-ninth embodiment is the host of the previous embodiment, wherein the cellular network further includes a network node configured to communicate with the UE to transmit the user data from the UE to the host.
A thirtieth embodiment is the host of either of the previous 2 embodiments, wherein: the processing circuitry of the host is configured to execute a host application, thereby providing the user data; and the host application is configured to interact with a client application executing on the UE, the client application being associated with the host application.
A thirty-first embodiment is a method implemented by a host configured to operate in a communication system that further includes a network node and a user equipment (UE), the method comprising: at the host, receiving user data transmitted to the host via the network node by the UE, wherein the UE performs any of the steps of any of the first eight embodiments to transmit the user data to the host.
A thirty-second embodiment is the method of the previous embodiment, further comprising: at the host, executing a host application associated with a client application executing on the UE to receive the user data from the UE.
A thirty-third embodiment is the method of the previous embodiment, further comprising: at the host, transmitting input data to the client application executing on the UE, the input data being provided by executing the host application, wherein the user data is provided by the client application in response to the input data from the host application.
A thirty-fourth embodiment is a host configured to operate in a communication system to provide an over-the-top (OTT) service, the host comprising: processing circuitry configured to provide user data; and a network interface configured to initiate transmission of the user data to a network node in a cellular network for transmission to a user equipment (UE), the network node having a communication interface and processing circuitry, the processing circuitry of the network node configured to perform any of the operations of any of the eleventh through the eighteenth embodiments to transmit the user data from the host to the UE.
A thirty-fifth embodiment is the host of the previous embodiment, wherein: the processing circuitry of the host is configured to execute a host application that provides the user data; and the UE comprises processing circuitry configured to execute a client application associated with the host application to receive the transmission of user data from the host.
A thirty-sixth embodiment is a method implemented in a host configured to operate in a communication system that further includes a network node and a user equipment (UE), the method comprising: providing user data for the UE; and initiating a transmission carrying the user data to the UE via a cellular network comprising the network node, wherein the network node performs any of the operations of any of the eleventh through the eighteenth embodiments to transmit the user data from the host to the UE.
A thirty-seventh embodiment is the method of the previous embodiment, further comprising, at the network node, transmitting the user data provided by the host for the UE.
A thirty-eighth embodiment is the method of either of the previous 2 embodiments, wherein the user data is provided at the host by executing a host application that interacts with a client application executing on the UE, the client application being associated with the host application.
A thirty-ninth embodiment is a communication system configured to provide an over-the-top service, the communication system comprising: a host comprising: processing circuitry configured to provide user data for a user equipment (UE), the user data being associated with the over-the-top service; and a network interface configured to initiate transmission of the user data toward a cellular network node for transmission to the UE, the network node having a communication interface and processing circuitry, the processing circuitry of the network node configured to perform any of the operations of any of the eleventh through eighteenth embodiments to transmit the user data from the host to the UE.
A fortieth embodiment is the communication system of the previous embodiment, further comprising: the network node; and/or the user equipment.
A forty-first embodiment is a host configured to operate in a communication system to provide an over-the-top (OTT) service, the host comprising: processing circuitry configured to initiate receipt of user data; and a network interface configured to receive the user data from a network node in a cellular network, the network node having a communication interface and processing circuitry, the processing circuitry of the network node configured to perform any of the operations of any of the eleventh through eighteenth embodiments to receive the user data from a user equipment (UE) for the host.
A forty-second embodiment is the host of the previous 2 embodiments, wherein: the processing circuitry of the host is configured to execute a host application, thereby providing the user data; and the host application is configured to interact with a client application executing on the UE, the client application being associated with the host application.
A forty-third embodiment is the host of the any of the previous 2 embodiments, wherein the initiating receipt of the user data comprises requesting the user data.
A forty-fourth embodiment is a method implemented by a host configured to operate in a communication system that further includes a network node and a user equipment (UE), the method comprising: at the host, initiating receipt of user data from the UE, the user data originating from a transmission which the network node has received from the UE, wherein the network node performs any of the steps of any of the eleventh through eighteenth embodiments to receive the user data from the UE for the host.
A forty-fifth embodiment is the method of the previous embodiment, further comprising at the network node, transmitting the received user data to the host.
There currently exist certain challenge(s). For an application to benefit from offloading, four problems may need to be solved:
1. identifying what would be beneficial for the application, e.g., saving energy, improving performance;
2. identifying the functionality that could benefit from offloading, e.g., computationally intensive, requiring synchronization;
3. determining where it is most beneficial to place the offloadable parts; and/or
4. determining when it is most beneficial to offload.
It can be difficult to provide a generic solution to Problem 1, as it depends both on the application and on the different stakeholders’ preferences and objectives. However, solutions to Problems 2-4 should allow concerns and requirements identified in Problem 1 to be expressed.
Problem 2 is often as early as during development of the application. In many cases, it is relatively easy to identify candidates for functionality to be offloaded or offloadable. To the best knowledge of the inventors, there exist no tools that can be used during development to evaluate the consequences or gains to expect by offloading a particular functionality, whether for static or dynamic deployment.
Problems 3 and 4 depend both on the type of application and on whether a (semi-)static deployment is preferred. For applications with many users using devices with similar performance, (semi-)static deployment is often chosen, as it is easier to manage. Dynamic offloading is more complicated, and the conditions must constantly be monitored and evaluated to decide whether it is beneficial to offload or not. There are many algorithms for optimal placement of a task/workload (this disclosure does not specifically target this type of placement algorithm, but the disclosed systems and methods can aid or complement them), but no known algorithm considers when to offload. Nor do they consider the tradeoff between compute gains and the network traffic that would be introduced by an offload. Furthermore, known algorithms provide little or no support for the device to influence or decide when and under which conditions an offload is beneficial and should be performed. As conditions change dynamically, it might later be more beneficial to revoke an offload, e.g., revoking a function that is offloaded from the device to save battery when a charger is connected.
Certain aspects of the disclosure and their embodiments may provide solutions to these or other challenges. This disclosure proposes solutions to the problems (1-4) described in the previous passage, including those applying a cost function that takes as input certain combinations of information about the function to offload, a representation of the code, application requirements, user preferences, resource profiles, and capabilities. (Some cost functions are known, but the input, the calculated output, and how they are used make them unique in each case. The result of the cost function will be a list of detailed resource specifications that fulfill the application requirements and user preferences together with information about expected performance, energy consumption, monetary cost, etc. This cost function, together with a set of appropriate tools and mechanisms to collect and assemble the input data, can be used in various embodiments, for example:
• In an application developer tool to be used by a developer to evaluate different candidates for functionality to offload. The tool provides numbers for expected performance, energy consumption, bandwidth requirement, etc. This can be used for both (semi-)static and dynamic deployments.
• In the control plane of a framework for dynamic offloading, where it can be used to find solutions to offload requests and evaluate whether these solutions are beneficial.
What is beneficial or not is evaluated and measured based on the requirements and preferences provided as input to the function by the different stakeholders.
One aspect of the proposed solutions is a unique cost function of input parameters that allows it to be used in combination with other tools to find solutions where offloading can be beneficial. The selection of input parameters and the time of invocation make it possible to address some or all of the problems (1-4) specified above. In various examples, the input parameters include:
• A representation of the code, e.g., virtual instructions for an abstract computer, and some metadata for the function or module to offload. This representation may be generated by a separate tool. The cost function uses the code for the abstract machine to evaluate the performance and other impacts on the hardware resources available at the candidate target.
• Application-specific requirements defined by the application developer.
• User (or other stakeholder) preferences, which can reflect what is regarded as beneficial at the time when the function is invoked, e.g., saving energy, maximizing performance, minimizing cost, etc.
• A specification of the resources available at the candidate target for the offload, e.g., CPUs, accelerators like GPUs, etc., but also things like maximum available bandwidth and expected average latency.
In this example, the result of the cost function is a list of solutions that fulfill the application requirements and user preferences. Each solution in the list includes a detailed resource specification (e.g., low-level hardware requirements, bandwidth requirements, etc.) and information about expected performance, energy consumption, monetary cost, etc. The latter information can then be used for selection of preferred solution. The resource specification for a selected solution in the dynamic case can be passed on to an orchestration system to allocate the specified resources.
In the (semi-)static offload case, the choices of when and where (that is, which parts of the application that should end up in the edge datacenter and central datacenter, respectively) to offload is predefined at development time to take place at the time of deployment.
In the dynamic offload case, the offload can be initiated by the application itself, for example, by a service running on the UE or in the network that monitors the conditions and triggers the offload when certain thresholds are met. Another service can select possible candidate offload targets based on the physical and/or network location of the UE. The cost function would then be invoked for these targets and the best solution selected by the application or one of the other stakeholders, e.g., the network provider.
Certain embodiments may provide one or more of the following technical advantage(s).
The unique cost function, together with a set of tools to assemble appropriate input data, provides a base for a multitude of embodiments that solve the problems described above. It can be used in a simulator tool to identify and verify an optimal functional decomposition of an application already at development, thereby saving development cost. Furthermore, it can be the core component used to evaluate whether it is beneficial to do a dynamic offload under conditions that vary in context and time. This reduces unnecessary offloads and provides great flexibility for end users to select an offloading solution that fits the conditions at a specific moment in time. BRIEF DESCRIPTION OF THE DRAWINGS
Examples of embodiments herein are described in more detail with reference to attached drawings in which:
Fig. 1 is a block diagram illustrating the flow of data among components in one example embodiment.
Fig. 2 is a functional data flow diagram illustrating the processing components in the embodiment of Fig. 1.
Fig. 3 is a sequence diagram depicting embodiments herein.
Fig. 4 schematically illustrates a telecommunication network connected via an intermediate network to a host computer.
Fig. 5 is a generalized block diagram of a host computer communicating via a base station with a user equipment over a partially wireless connection.
Figs. 6-9 are flowcharts illustrating methods implemented in a communication system including a host computer, a base station, and a user equipment.
DETAILED DESCRIPTION
Some of the embodiments contemplated herein will now be described more fully with reference to the accompanying drawings. Embodiments are provided by way of example to convey the scope of the subject matter to those skilled in the art.
In existing solutions, a UE or application has no way to steer UE-based task placement decisions, such as when and where to offload computational tasks. At the network level, it is also challenging to collect both application and user requirements for offloading and map them to the currently available resources at the network edge to generate suitable inputs for the UE to make offloading decisions. The present disclosure includes various embodiments that determine and use a “cost function” that maps multiple inputs to one output value, which is used to inform decisions whether to offload computational tasks from networked devices. As described further herein, inputs characterize one or more of computational resources (e.g., processor speed and quantity), memory, network characteristics (e.g., RTT), and economic cost (e.g., price) of using a particular offloading option (perhaps including, for completeness, the option of not offloading the task), plus user and/or system preferences and/or priorities. The output of the cost function represents a combination of all of the inputs into a single quantity so that, when an offloading request is or could be made, the cost function might be applied to multiple offloading options to prioritize the options and pick the numerically “best” one. In some embodiments, the cost function is determined at a point in time (perhaps long) before the offloading decision has to be made, then calculated based on current input values when offloading is requested. The present disclosure describes systems and methods (with new functions) of operation that enable a UE 130 to retrieve information about resource availability offers at an edge site 140 that satisfies previously collected requirements from both application 131 and user 110.
The present disclosure also describes adding new functionalities in different parts of the execution pipeline, including during application development, and at the UE 130 and edge site 140, shown in Fig. 1. One function described herein is the cost function 143. The disclosure describes a “profile tool” 125, a component responsible for receiving application source code and generating “performance metadata.” The performance metadata includes an abstract representation of the actual source code that will be used later at the edge site 140 to generate the execution time at a network host (ETH) and may be based on Worst Case Execution Time (WCET) or other estimations for different available machine resources. The cost function 143 is located at the edge site 140 and is responsible for generating a list of possible solutions at the edge site 140 for each specific application offloading request, where each solution in the list includes resource placement or deployment options. Then the UE 130 will receive a list of deployment alternatives containing information such as storage, processing capability, and even origin of used energy resources. The list is detailed, as the monetary cost will be calculated based on that information and will be shared with the user 110 (via user interface 115) or UE 130. In addition to the cost function, two additional functions handle the offloading process: the offload handler 133 and offload manager 141, respectively. These two functions manage the offloading process from the UE 130 to the edge site 140 and provide a communication channel through which output from the cost function 143 can be returned to the UE 130.
The cost function 143 is responsible for collecting all the inputs from the application 131 and user 110 domain and the list of available resources, such as storage and processing capacities at the edge site 140, and for generating a list of possible offers to satisfy the application 131 and user 110 requirements.
With continuing reference to items shown in Fig. 1, Fig. 2 shows the process 200 of collecting and applying the inputs to the cost function 143. Starting from the left, metadata 201 is received from the offload handler 133, where Execution Time at UE (ETD) information 203 is the time expected to be needed to execute the code on UE 130 and is measured and sent to the edge site 140 by UE 130. This can be done at the network edge 140, if the UE 130 hardware configuration will be available, and shared with the offloading manager 141 at the edge site 140. The process 200 also collects communication (RTT) delay information 205 to account for both communication and computation delays. Execution Time at Network Host (ETH) estimation function 210 predicts performance using metadata 201, ETD information 203, and RTT delay data 205, and other information from the profiling tool 125 and using the list of available machines (H/W) 207 received from the offload manager 141, and the output is captured — along with metadata 201, ETD information 203, and RTT delay data 205 — at input collection 220. The collected input, app requirements 240/127, the parameter priority list 209, and subscription information 250 characterizing resources available to the user 110 for offload of application components (and/or constraints thereon) provide parameters and data for a hierarchical search 230 based on perimeter priorities. The results of the hierarchical search 230 inform negotiations 260 with the user via user interface 115 regarding the scope, timing, and other parameters of a functional offloading.
The calculation steps in the example cost function 143 shown as sequence 300 in Fig. 3 include:
Step 1 : At 310, UE offload handler 303 receives input from UE 301 and other entities to perform cost analysis using the cost function 143, including inputs:
1. Metadata generated during application development 120 from the application source code 121 by a compiler 123 or using a profding tool 125;
2. Metadata, application requirements 127, and application source code 121 provided 129 by an Application Developer is received with or alongside application 131 through UE offload handler 133 on UE 130; and
3. Offload request with User requirements and ETD 203 is also received through UE offload handler 133.
Step 2: At 320, at an edge site/server 140, offload manager 141/305:
1. requests 325 and receives 330 RTT (round trip time) estimation 205 from network 307 for the given UE 301; and
2. requests and received 335 a list of machine and hardware resource profdes and their cost profdes 145 available at offloading network host.
Step 3: The cost function 143 is used to perform a cost analysis 340 of the offloading request using steps that may include:
1. Execution Time at Host (ETH) estimation for the supplied list of machines. Here, it estimates H/W machine requirements (vCPU, Memory, Storage) for the application 131 as it would be run on each of the list of machines provided in Step 2. Overall, in this step, the list of machines and resources 207 at the edge site 140 received from offload manager 305 will be used to estimate what the performance measurements would be on that machine if it were used to execute particular offloaded code or a specific application. The below parameters are examples of performance metrics that in various embodiments can be calculated and used later to check how close the performance measurements are to the application and user requirements and whether each machine or resource in the list 207 can satisfy them. a. Energy consumption estimation, b. Security estimation, and c. E2E Delay estimation.
2. Calculate monetary cost for each option considering cost profdes shared by edge server owners.
Step 4: Orchestration and resource management function 150 determines which machine options match the specified application requirements and priorities 127 per the estimations made in Step 3.
Step 5: Orchestration and resource management function 150 ranks these options according to requirements and priorities 127 from the application developer and user 110.
Step 6: Provide these cost options 345 along with requirements satisfaction information to the UE 355, offload manager 350, or orchestrator 309 in the form of a tuple for each option. For example, each provided tuple in an exemplary embodiment may have offers with hardware configuration, monetary cost, E2E delay, energy consumption, and security level. This tuple encodes the list of detailed resource specifications that fulfill the application requirements and user preferences together with information of expected performance, energy consumption, monetary cost, etc. If the user or application requirements are not met, the UE offloading handler 303 receives a NULL offer.
Fig. 4 shows an example of a communication system 2100 in accordance with some embodiments. In the example, the communication system 2100 includes a telecommunication network 2102 that includes an access network 2104, such as a RAN, and a core network 2106, which includes one or more core network nodes 2108. The access network 2104 includes one or more access network nodes, such as network nodes 2110a and 2110b (one or more of which may be generally referred to as network nodes 2110), or any other similar 3rd Generation Partnership Project (3GPP) access node or non-3GPP access point. The network nodes 2110 facilitate direct or indirect connection of UE, such as by connecting UEs 2112a, 2112b, 2112c, and 2112d (one or more of which may be generally referred to as UEs 2112) to the core network 2106 over one or more wireless connections.
Example wireless communications over a wireless connection include transmitting and/or receiving wireless signals using electromagnetic waves, radio waves, infrared waves, and/or other types of signals suitable for conveying information without the use of wires, cables, or other material conductors. Moreover, in different embodiments, the communication system 1100 may include any number of wired or wireless networks, network nodes, UEs, and/or any other components or systems that may facilitate or participate in the communication of data and/or signals whether via wired or wireless connections. The communication system 2100 may include and/or interface with any type of communication, telecommunication, data, cellular, radio network, and/or other similar type of system.
The UEs 2112 may be any of a wide variety of communication devices, including wireless devices arranged, configured, and/or operable to communicate wirelessly with the network nodes 2110 and other communication devices. Similarly, the network nodes 2110 are arranged, capable, configured, and/or operable to communicate directly or indirectly with the UEs 2112 and/or with other network nodes or equipment in the telecommunication network 2102 to enable and/or provide network access, such as wireless network access, and/or to perform other functions, such as administration in the telecommunication network 2102.
In the depicted example, the core network 2106 connects the network nodes 2110 to one or more hosts, such as host 2116. These connections may be direct or indirect via one or more intermediary networks or devices. In other examples, network nodes may be directly coupled to hosts. The core network 2106 includes one or more core network nodes (e.g., core network node 2108) that are structured with hardware and software components. Features of these components may be substantially similar to those described with respect to the UEs, network nodes, and/or hosts, such that the descriptions thereof are generally applicable to the corresponding components of the core network node 2108. Example core network nodes include functions of one or more of a Mobile Switching Center (MSC), Mobility Management Entity (MME), Home Subscriber Server (HSS), Access and Mobility Management Function (AMF), Session Management Function (SMF), Authentication Server Function (AUSF), Subscription Identifier De-concealing function (SIDF), Unified Data Management (UDM), Security Edge Protection Proxy (SEPP), Network Exposure Function (NEF), and/or a User Plane Function (UPF).
The host 2116 may be under the ownership or control of a service provider other than an operator or provider of the access network 2104 and/or the telecommunication network 2102, and may be operated by the service provider or on behalf of the service provider. The host 2116 may host a variety of applications to provide one or more services. Examples of such applications include live and pre-recorded audio/video content, data collection services such as retrieving and compiling data on various ambient conditions detected by a plurality of UEs, analytics functionality, social media, functions for controlling or otherwise interacting with remote devices, functions for an alarm and surveillance center, or any other such function performed by a server.
As a whole, the communication system 2100 of Fig. 4 enables connectivity between the UEs, network nodes, and hosts. In that sense, the communication system may be configured to operate according to predefined rules or procedures, such as specific standards that include, but are not limited to: Global System for Mobile Communications (GSM); Universal Mobile Telecommunications System (UMTS); Uong Term Evolution (UTE), and/or other suitable 2G, 3G, 4G, 5G standards, or any applicable future generation standard (e.g., 6G); wireless local area network (WLAN) standards, such as the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standards (Wi-Fi); and/or any other appropriate wireless communication standard, such as the Worldwide Interoperability for Microwave Access (WiMax), Bluetooth, Z-Wave, Near Field Communication (NFC) ZigBee, LiFi, and/or any low-power wide-area network (LPWAN) standards such as LoRa and Sigfox.
In some examples, the telecommunication network 2102 is a cellular network that implements 3GPP standardized features. Accordingly, the telecommunications network 2102 may support network slicing to provide different logical networks to different devices that are connected to the telecommunication network 2102. For example, the telecommunications network 2102 may provide Ultra Reliable Low Latency Communication (URLLC) services to some UEs, while providing Enhanced Mobile Broadband (eMBB) services to other UEs, and/or Massive Machine Type Communication (mMTC)ZMassive loT services to yet further UEs.
In some examples, the UEs 2112 are configured to transmit and/or receive information without direct human interaction. For instance, a UE may be designed to transmit information to the access network 2104 on a predetermined schedule, when triggered by an internal or external event, or in response to requests from the access network 2104. Additionally, a UE may be configured for operating in single- or multi-RAT or multi-standard mode. For example, a UE may operate with any one or combination of Wi-Fi, NR (New Radio) and LTE, i.e. being configured for multi-radio dual connectivity (MR-DC), such as E-UTRAN (Evolved-UMTS Terrestrial Radio Access Network) New Radio - Dual Connectivity (EN-DC).
In the example, the hub 2114 communicates with the access network 2104 to facilitate indirect communication between one or more UEs (e.g., UE 2112c and/or 2112d) and network nodes (e.g., network node 2110b). In some examples, the hub 2114 may be a controller, router, content source and analytics, or any of the other communication devices described herein regarding UEs. For example, the hub 2114 may be a broadband router enabling access to the core network 2106 for the UEs. As another example, the hub 2114 may be a controller that sends commands or instructions to one or more actuators in the UEs. Commands or instructions may be received from the UEs, network nodes 2110, or by executable code, script, process, or other instructions in the hub 2114. As another example, the hub 2114 may be a data collector that acts as temporary storage for UE data and, in some embodiments, may perform analysis or other processing of the data. As another example, the hub 2114 may be a content source. For example, for a UE that is a VR headset, display, loudspeaker or other media delivery device, the hub 2114 may retrieve VR assets, video, audio, or other media or data related to sensory information via a network node, which the hub 2114 then provides to the UE either directly, after performing local processing, and/or after adding additional local content. In still another example, the hub 2114 acts as a proxy server or orchestrator for the UEs, in particular in if one or more of the UEs are low energy loT devices.
The hub 2114 may have a constant/persistent or intermittent connection to the network node 2110b. The hub 2114 may also allow for a different communication scheme and/or schedule between the hub 2114 and UEs (e.g., UE 2112c and/or 2112d), and between the hub 2114 and the core network 2106. In other examples, the hub 2114 is connected to the core network 2106 and/or one or more UEs via a wired connection. Moreover, the hub 2114 may be configured to connect to an M2M service provider over the access network 1104 and/or to another UE over a direct connection. In some scenarios, UEs may establish a wireless connection with the network nodes 2110 while still connected via the hub 2114 via a wired or wireless connection. In some embodiments, the hub 2114 may be a dedicated hub - that is, a hub whose primary function is to route communications to/from the UEs from/to the network node 2110b. In other embodiments, the hub 2114 may be a non-dedicated hub - that is, a device which is capable of operating to route communications between the UEs and network node 2110b, but which is additionally capable of operating as a communication start and/or end point for certain data channels.
Fig. 5 shows a UE 2200 in accordance with some embodiments. As used herein, a UE refers to a device capable, configured, arranged and/or operable to communicate wirelessly with network nodes and/or other UEs. Examples of a UE include, but are not limited to, a smart phone, mobile phone, cell phone, voice over IP (VoIP) phone, wireless local loop phone, desktop computer, personal digital assistant (PDA), wireless cameras, gaming console or device, music storage device, playback appliance, wearable terminal device, wireless endpoint, mobile station, tablet, laptop, laptop-embedded equipment (LEE), laptop-mounted equipment (LME), smart device, wireless customer-premise equipment (CPE), vehicle-mounted or vehicle embedded/integrated wireless device, etc. Other examples include any UE identified by the 3rd Generation Partnership Project (3GPP), including a narrow band internet of things (NB-IoT) UE, a machine type communication (MTC) UE, and/or an enhanced MTC (eMTC) UE.
A UE may support device-to-device (D2D) communication, for example by implementing a 3GPP standard for sidelink communication, Dedicated Short-Range Communication (DSRC), vehicle-to-vehicle (V2V), vehicle-to-infrastructure (V2I), or vehicle-to-everything (V2X). In other examples, a UE may not necessarily have a user in the sense of a human user who owns and/or operates the relevant device. Instead, a UE may represent a device that is intended for sale to, or operation by, a human user but which may not, or which may not initially, be associated with a specific human user (e.g., a smart sprinkler controller). Alternatively, a UE may represent a device that is not intended for sale to, or operation by, an end user but which may be associated with or operated for the benefit of a user (e.g., a smart power meter).
The UE 2200 includes processing circuitry 2202 that is operatively coupled via a bus 2204 to an input/output interface 2206, a power source 2208, a memory 2210, a communication interface 2212, and/or any other component, or any combination thereof. Certain UEs may utilize all or a subset of the components shown in Fig. 5. The level of integration between the components may vary from one UE to another UE. Further, certain UEs may contain multiple instances of a component, such as multiple processors, memories, transceivers, transmitters, receivers, etc.
The processing circuitry 2202 is configured to process instructions and data and may be configured to implement any sequential state machine operative to execute instructions stored as machine-readable computer programs in the memory 2210. The processing circuitry 2202 may be implemented as one or more hardware-implemented state machines (e.g., in discrete logic, field-programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc.); programmable logic together with appropriate firmware; one or more stored computer programs, general-purpose processors, such as a microprocessor or digital signal processor (DSP), together with appropriate software; or any combination of the above. For example, the processing circuitry 2202 may include multiple central processing units (CPUs).
In the example, the input/output interface 2206 may be configured to provide an interface or interfaces to an input device, output device, or one or more input and/or output devices. Examples of an output device include a speaker, a sound card, a video card, a display, a monitor, a printer, an actuator, an emitter, a smartcard, another output device, or any combination thereof. An input device may allow a user to capture information into the UE 2200. Examples of an input device include a touch-sensitive or presence-sensitive display, a camera (e.g., a digital camera, a digital video camera, a web camera, etc.), a microphone, a sensor, a mouse, a trackball, a directional pad, a trackpad, a scroll wheel, a smartcard, and the like. The presence-sensitive display may include a capacitive or resistive touch sensor to sense input from a user. A sensor may be, for instance, an accelerometer, a gyroscope, a tilt sensor, a force sensor, a magnetometer, an optical sensor, a proximity sensor, a biometric sensor, etc., or any combination thereof. An output device may use the same type of interface port as an input device. For example, a Universal Serial Bus (USB) port may be used to provide an input device and an output device.
In some embodiments, the power source 2208 is structured as a battery or battery pack. Other types of power sources, such as an external power source (e.g., an electricity outlet), photovoltaic device, or power cell, may be used. The power source 2208 may further include power circuitry for delivering power from the power source 2208 itself, and/or an external power source, to the various parts of the UE 2200 via input circuitry or an interface such as an electrical power cable. Delivering power may be, for example, for charging of the power source 2208. Power circuitry may perform any formatting, converting, or other modification to the power from the power source 2208 to make the power suitable for the respective components of the UE 2200 to which power is supplied.
The memory 2210 may be or be configured to include memory such as random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable readonly memory (EEPROM), magnetic disks, optical disks, hard disks, removable cartridges, flash drives, and so forth. In one example, the memory 2210 includes one or more application programs 2214, such as an operating system, web browser application, a widget, gadget engine, or other application, and corresponding data 2216. The memory 2210 may store, for use by the UE 2200, any of a variety of various operating systems or combinations of operating systems.
The memory 2210 may be configured to include a number of physical drive units, such as redundant array of independent disks (RAID), flash memory, USB flash drive, external hard disk drive, thumb drive, pen drive, key drive, high-density digital versatile disc (HD-DVD) optical disc drive, internal hard disk drive, Blu-Ray optical disc drive, holographic digital data storage (HDDS) optical disc drive, external mini-dual in-line memory module (DIMM), synchronous dynamic random access memory (SDRAM), external micro-DIMM SDRAM, smartcard memory such as tamper resistant module in the form of a universal integrated circuit card (UICC) including one or more subscriber identity modules (SIMs), such as a USIM and/or ISIM, other memory, or any combination thereof. The UICC may for example be an embedded UICC (eUICC), integrated UICC (iUICC) or a removable UICC commonly known as ‘SIM card.’ The memory 2210 may allow the UE 2200 to access instructions, application programs and the like, stored on transitory or non-transitory memory media, to off-load data, or to upload data. An article of manufacture, such as one utilizing a communication system may be tangibly embodied as or in the memory 2210, which may be or comprise a device-readable storage medium.
The processing circuitry 2202 may be configured to communicate with an access network or other network using the communication interface 2212. The communication interface 2212 may comprise one or more communication subsystems and may include or be communicatively coupled to an antenna 2222. The communication interface 2212 may include one or more transceivers used to communicate, such as by communicating with one or more remote transceivers of another device capable of wireless communication (e.g., another UE or a network node in an access network). Each transceiver may include a transmitter 2218 and/or a receiver 2220 appropriate to provide network communications (e.g., optical, electrical, frequency allocations, and so forth). Moreover, the transmitter 2218 and receiver 2220 may be coupled to one or more antennas (e.g., antenna 2222) and may share circuit components, software or firmware, or alternatively be implemented separately.
In the illustrated embodiment, communication functions of the communication interface 2212 may include cellular communication, Wi-Fi communication, LPWAN communication, data communication, voice communication, multimedia communication, short-range communications such as Bluetooth, near-field communication, location-based communication such as the use of the global positioning system (GPS) to determine a location, another like communication function, or any combination thereof. Communications may be implemented in according to one or more communication protocols and/or standards, such as IEEE 802.11, Code Division Multiplexing Access (CDMA), Wideband Code Division Multiple Access (W CDMA), GSM, LTE, New Radio (NR), UMTS, WiMax, Ethernet, transmission control protocol/intemet protocol (TCP/IP), synchronous optical networking (SONET), Asynchronous Transfer Mode (ATM), QUIC, Hypertext Transfer Protocol (HTTP), and so forth.
Regardless of the type of sensor, a UE may provide an output of data captured by its sensors, through its communication interface 2212, via a wireless connection to a network node. Data captured by sensors of a UE can be communicated through a wireless connection to a network node via another UE. The output may be periodic (e.g., once every 15 minutes if it reports the sensed temperature), random (e.g., to even out the load from reporting from several sensors), in response to a triggering event (e.g., when moisture is detected an alert is sent), in response to a request (e.g., a user initiated request), or a continuous stream (e.g., a live video feed of a patient).
As another example, a UE comprises an actuator, a motor, or a switch, related to a communication interface configured to receive wireless input from a network node via a wireless connection. In response to the received wireless input the states of the actuator, the motor, or the switch may change. For example, the UE may comprise a motor that adjusts the control surfaces or rotors of a drone in flight according to the received input or to a robotic arm performing a medical procedure according to the received input.
A UE, when in the form of an Internet of Things (loT) device, may be a device for use in one or more application domains, these domains comprising, but not limited to, city wearable technology, extended industrial application and healthcare. Non-limiting examples of such an loT device are a device which is or which is embedded in: a connected refrigerator or freezer, a TV, a connected lighting device, an electricity meter, a robot vacuum cleaner, a voice controlled smart speaker, a home security camera, a motion detector, a thermostat, a smoke detector, a door/window sensor, a flood/moisture sensor, an electrical door lock, a connected doorbell, an air conditioning system like a heat pump, an autonomous vehicle, a surveillance system, a weather monitoring device, a vehicle parking monitoring device, an electric vehicle charging station, a smart watch, a fitness tracker, a head-mounted display for Augmented Reality (AR) or Virtual Reality (VR), a wearable for tactile augmentation or sensory enhancement, a water sprinkler, an animal- or item-tracking device, a sensor for monitoring a plant or animal, an industrial robot, an Unmanned Aerial Vehicle (UAV), and any kind of medical device, like a heart rate monitor or a remote controlled surgical robot. A UE in the form of an loT device comprises circuitry and/or software in dependence of the intended application of the loT device in addition to other components as described in relation to the UE 2200 shown in Fig. 5.
As yet another specific example, in an loT scenario, a UE may represent a machine or other device that performs monitoring and/or measurements, and transmits the results of such monitoring and/or measurements to another UE and/or a network node. The UE may in this case be an M2M device, which may in a 3GPP context be referred to as an MTC device. As one particular example, the UE may implement the 3GPP NB-IoT standard. In other scenarios, a UE may represent a vehicle, such as a car, a bus, a truck, a ship and an airplane, or other equipment that is capable of monitoring and/or reporting on its operational status or other functions associated with its operation.
In practice, any number of UEs may be used together with respect to a single use case. For example, a first UE might be or be integrated in a drone and provide the drone’s speed information (obtained through a speed sensor) to a second UE that is a remote controller operating the drone. When the user makes changes from the remote controller, the first UE may adjust the throttle on the drone (e.g. by controlling an actuator) to increase or decrease the drone’s speed. The first and/or the second UE can also include more than one of the functionalities described above. For example, a UE might comprise the sensor and the actuator, and handle communication of data for both the speed sensor and the actuators.
Fig. 6 shows a network node 3300 in accordance with some embodiments. As used herein, network node refers to equipment capable, configured, arranged and/or operable to communicate directly or indirectly with a UE and/or with other network nodes or equipment, in a telecommunication network. Examples of network nodes include, but are not limited to, access points (APs) (e.g., radio access points), base stations (BSs) (e.g., radio base stations, Node Bs, evolved Node Bs (eNBs) and NRNodeBs (gNBs)).
Base stations may be categorized based on the amount of coverage they provide (or, stated differently, their transmit power level) and so, depending on the provided amount of coverage, may be referred to as femto base stations, pico base stations, micro base stations, or macro base stations. A base station may be a relay node or a relay donor node controlling a relay. A network node may also include one or more (or all) parts of a distributed radio base station such as centralized digital units and/or remote radio units (RRUs), sometimes referred to as Remote Radio Heads (RRHs). Such remote radio units may or may not be integrated with an antenna as an antenna integrated radio. Parts of a distributed radio base station may also be referred to as nodes in a distributed antenna system (DAS).
Other examples of network nodes include multiple transmission point (multi-TRP) 5G access nodes, multi-standard radio (MSR) equipment such as MSR BSs, network controllers such as radio network controllers (RNCs) or base station controllers (BSCs), base transceiver stations (BTSs), transmission points, transmission nodes, multi-cell/multicast coordination entities (MCEs), Operation and Maintenance (O&M) nodes, Operations Support System (OSS) nodes, Self-Organizing Network (SON) nodes, positioning nodes (e.g., Evolved Serving Mobile Location Centers (E-SMLCs)), and/or Minimization of Drive Tests (MDTs).
The network node 3300 includes a processing circuitry 3302, a memory 3304, a communication interface 3306, and a power source 3308. The network node 3300 may be composed of multiple physically separate components (e.g., aNodeB component and a RNC component, or a BTS component and a BSC component, etc.), which may each have their own respective components. In certain scenarios in which the network node 3300 comprises multiple separate components (e.g., BTS and BSC components), one or more of the separate components may be shared among several network nodes. For example, a single RNC may control multiple NodeBs. In such a scenario, each unique NodeB and RNC pair, may in some instances be considered a single separate network node. In some embodiments, the network node 1300 may be configured to support multiple radio access technologies (RATs). In such embodiments, some components may be duplicated (e.g., separate memory 3304 for different RATs) and some components may be reused (e.g., a same antenna 3310 may be shared by different RATs). The network node 3300 may also include multiple sets of the various illustrated components for different wireless technologies integrated into network node 1300, for example GSM, WCDMA, LTE, NR, WiFi, Zigbee, Z-wave, LoRaWAN, Radio Frequency Identification (RFID) or Bluetooth wireless technologies. These wireless technologies may be integrated into the same or different chip or set of chips and other components within network node 1300.
The processing circuitry 3302 may comprise a combination of one or more of a microprocessor, controller, microcontroller, central processing unit, digital signal processor, application-specific integrated circuit, field programmable gate array, or any other suitable computing device, resource, or combination of hardware, software and/or encoded logic operable to provide, either alone or in conjunction with other network node 3300 components, such as the memory 3304, to provide network node 3300 functionality.
In some embodiments, the processing circuitry 3302 includes a system on a chip (SOC). In some embodiments, the processing circuitry 3302 includes one or more of radio frequency (RF) transceiver circuitry 3312 and baseband processing circuitry 3314. In some embodiments, the radio frequency (RF) transceiver circuitry 3312 and the baseband processing circuitry 3314 may be on separate chips (or sets of chips), boards, or units, such as radio units and digital units. In alternative embodiments, part or all of RF transceiver circuitry 3312 and baseband processing circuitry 3314 may be on the same chip or set of chips, boards, or units.
The memory 3304 may comprise any form of volatile or non-volatile computer-readable memory including, without limitation, persistent storage, solid-state memory, remotely mounted memory, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), mass storage media (for example, a hard disk), removable storage media (for example, a flash drive, a Compact Disk (CD) or a Digital Video Disk (DVD)), and/or any other volatile or non-volatile, non-transitory device-readable and/or computer-executable memory devices that store information, data, and/or instructions that may be used by the processing circuitry 3302. The memory 3304 may store any suitable instructions, data, or information, including a computer program, software, an application including one or more of logic, rules, code, tables, and/or other instructions capable of being executed by the processing circuitry 3302 and utilized by the network node 3300. The memory 3304 may be used to store any calculations made by the processing circuitry 3302 and/or any data received via the communication interface 3306. In some embodiments, the processing circuitry 3302 and memory 3304 is integrated.
The communication interface 3306 is used in wired or wireless communication of signaling and/or data between a network node, access network, and/or UE. As illustrated, the communication interface 3306 comprises port(s)/terminal(s) 3316 to send and receive data, for example to and from a network over a wired connection. The communication interface 3306 also includes radio front-end circuitry 3318 that may be coupled to, or in certain embodiments a part of, the antenna 3310. Radio front-end circuitry 3318 comprises filters 3320 and amplifiers 3322. The radio front-end circuitry 3318 may be connected to an antenna 3310 and processing circuitry 3302. The radio front-end circuitry may be configured to condition signals communicated between antenna 3310 and processing circuitry 3302. The radio front-end circuitry 3318 may receive digital data that is to be sent out to other network nodes or UEs via a wireless connection. The radio front-end circuitry 3318 may convert the digital data into a radio signal having the appropriate channel and bandwidth parameters using a combination of filters 3320 and/or amplifiers 3322. The radio signal may then be transmitted via the antenna 3310. Similarly, when receiving data, the antenna 3310 may collect radio signals which are then converted into digital data by the radio front-end circuitry 3318. The digital data may be passed to the processing circuitry 3302. In other embodiments, the communication interface may comprise different components and/or different combinations of components.
In certain alternative embodiments, the network node 3300 does not include separate radio front-end circuitry 3318, instead, the processing circuitry 3302 includes radio front-end circuitry and is connected to the antenna 3310. Similarly, in some embodiments, all or some of the RF transceiver circuitry 3312 is part of the communication interface 3306. In still other embodiments, the communication interface 3306 includes one or more ports or terminals 3316, the radio front-end circuitry 3318, and the RF transceiver circuitry 3312, as part of a radio unit (not shown), and the communication interface 3306 communicates with the baseband processing circuitry 3314, which is part of a digital unit (not shown).
The antenna 3310 may include one or more antennas, or antenna arrays, configured to send and/or receive wireless signals. The antenna 3310 may be coupled to the radio front-end circuitry 3318 and may be any type of antenna capable of transmitting and receiving data and/or signals wirelessly. In certain embodiments, the antenna 3310 is separate from the network node 3300 and connectable to the network node 3300 through an interface or port.
The antenna 3310, communication interface 3306, and/or the processing circuitry 3302 may be configured to perform any receiving operations and/or certain obtaining operations described herein as being performed by the network node. Any information, data and/or signals may be received from a UE, another network node and/or any other network equipment. Similarly, the antenna 3310, the communication interface 3306, and/or the processing circuitry 3302 may be configured to perform any transmitting operations described herein as being performed by the network node. Any information, data and/or signals may be transmitted to a UE, another network node and/or any other network equipment.
The power source 3308 provides power to the various components of network node 3300 in a form suitable for the respective components (e.g., at a voltage and current level needed for each respective component). The power source 3308 may further comprise, or be coupled to, power management circuitry to supply the components of the network node 3300 with power for performing the functionality described herein. For example, the network node 3300 may be connectable to an external power source (e.g., the power grid, an electricity outlet) via an input circuitry or interface such as an electrical cable, whereby the external power source supplies power to power circuitry of the power source 3308. As a further example, the power source 3308 may comprise a source of power in the form of a battery or battery pack which is connected to, or integrated in, power circuitry. The battery may provide backup power should the external power source fail.
Embodiments of the network node 3300 may include additional components beyond those shown in Fig. 6 for providing certain aspects of the network node’s functionality, including any of the functionality described herein and/or any functionality necessary to support the subject matter described herein. For example, the network node 3300 may include user interface equipment to allow input of information into the network node 3300 and to allow output of information from the network node 3300. This may allow a user to perform diagnostic, maintenance, repair, and other administrative functions for the network node 3300.
Fig. 7 is a block diagram of a host 4400, which may be an embodiment of the host 2116 of Fig. 4, in accordance with various aspects described herein. As used herein, the host 4400 may be or comprise various combinations hardware and/or software, including a standalone server, a blade server, a cloud-implemented server, a distributed server, a virtual machine, container, or processing resources in a server farm. The host 4400 may provide one or more services to one or more UEs.
The host 4400 includes processing circuitry 4402 that is operatively coupled via a bus 4404 to an input/output interface 4406, a network interface 4408, a power source 4410, and a memory 4412. Other components may be included in other embodiments. Features of these components may be substantially similar to those described with respect to the devices of previous figures, such as Figures 40 and 41, such that the descriptions thereof are generally applicable to the corresponding components of host 4400.
The memory 4412 may include one or more computer programs including one or more host application programs 4414 and data 4416, which may include user data, e.g., data generated by a UE for the host 4400 or data generated by the host 4400 for a UE. Embodiments of the host 4400 may utilize only a subset or all of the components shown. The host application programs 4414 may be implemented in a container-based architecture and may provide support for video codecs (e.g., Versatile Video Coding (VVC), High Efficiency Video Coding (HEVC), Advanced Video Coding (AVC), MPEG, VP9) and audio codecs (e.g., FLAC, Advanced Audio Coding (AAC), MPEG, G.711), including transcoding for multiple different classes, types, or implementations of UEs (e.g., handsets, desktop computers, wearable display systems, heads-up display systems). The host application programs 4414 may also provide for user authentication and licensing checks and may periodically report health, routes, and content availability to a central node, such as a device in or on the edge of a core network. Accordingly, the host 4400 may select and/or indicate a different host for over-the-top services for a UE. The host application programs 4414 may support various protocols, such as the HTTP Live Streaming (HLS) protocol, Real-Time Messaging Protocol (RTMP), Real-Time Streaming Protocol (RTSP), Dynamic Adaptive Streaming over HTTP (MPEG-DASH), etc.
Fig. 8 is a block diagram illustrating a virtualization environment 5500 in which functions implemented by some embodiments may be virtualized. In the present context, virtualizing means creating virtual versions of apparatuses or devices which may include virtualizing hardware platforms, storage devices and networking resources. As used herein, virtualization can be applied to any device described herein, or components thereof, and relates to an implementation in which at least a portion of the functionality is implemented as one or more virtual components. Some or all of the functions described herein may be implemented as virtual components executed by one or more virtual machines (VMs) implemented in one or more virtual environments 5500 hosted by one or more of hardware nodes, such as a hardware computing device that operates as a network node, UE, core network node, or host. Further, in embodiments in which the virtual node does not require radio connectivity (e.g., a core network node or host), then the node may be entirely virtualized.
Applications 5502 (which may alternatively be called software instances, virtual appliances, network functions, virtual nodes, virtual network functions, etc.) are run in the virtualization environment 5500 to implement some of the features, functions, and/or benefits of some of the embodiments disclosed herein.
Hardware 5504 includes processing circuitry, memory that stores software and/or instructions executable by hardware processing circuitry, and/or other hardware devices as described herein, such as a network interface, input/output interface, and so forth. Software may be executed by the processing circuitry to instantiate one or more virtualization layers 5506 (also referred to as hypervisors or virtual machine monitors (VMMs)), provide VMs 5508a and 5508b (one or more of which may be generally referred to as VMs 5508), and/or perform any of the functions, features and/or benefits described in relation with some embodiments described herein. The virtualization layer 5506 may present a virtual operating platform that appears like networking hardware to the VMs 5508.
The VMs 5508 comprise virtual processing, virtual memory, virtual networking or interface and virtual storage, and may be run by a corresponding virtualization layer 5506. Different embodiments of the instance of a virtual appliance 5502 may be implemented on one or more of VMs 5508, and the implementations may be made in different ways. Virtualization of the hardware is in some contexts referred to as network function virtualization (NFV). NFV may be used to consolidate many network equipment types onto industry standard high volume server hardware, physical switches, and physical storage, which can be located in data centers, and customer premise equipment. In the context of NFV, a VM 5508 may be a software implementation of a physical machine that runs programs as if they were executing on a physical, non-virtualized machine. Each of the VMs 5508, and that part of hardware 5504 that executes that VM, be it hardware dedicated to that VM and/or hardware shared by that VM with others of the VMs, forms separate virtual network elements. Still in the context of NFV, a virtual network function is responsible for handling specific network functions that run in one or more VMs 5508 on top of the hardware 5504 and corresponds to the application 5502.
Hardware 5504 may be implemented in a standalone network node with generic or specific components. Hardware 5504 may implement some functions via virtualization. Alternatively, hardware 5504 may be part of a larger cluster of hardware (e.g., such as in a data center or CPE) where many hardware nodes work together and are managed via management and orchestration 5510, which, among others, oversees lifecycle management of applications 5502. In some embodiments, hardware 5504 is coupled to one or more radio units that each include one or more transmitters and one or more receivers that may be coupled to one or more antennas. Radio units may communicate directly with other hardware nodes via one or more appropriate network interfaces and may be used in combination with the virtual components to provide a virtual node with radio capabilities, such as a radio access node or a base station. In some embodiments, some signaling can be provided with the use of a control system 5512 which may alternatively be used for communication between hardware nodes and radio units.
Fig. 9 shows a communication diagram of a host 6602 communicating via a network node 6604 with a UE 6606 over a partially wireless connection in accordance with some embodiments. Example implementations, in accordance with various embodiments, of the UE (such as a UE 2112a of Fig. 4 and/or UE 2200 of Fig. 5), network node (such as network node 2110a of Fig. 4 and/or network node 3300 of Fig. 6), and host (such as host 2116 of Fig. 4 and/or host 4400 of Fig. 7) discussed in the preceding paragraphs will now be described with reference to Fig. 9.
Like host 4400, embodiments of host 6602 include hardware, such as a communication interface, processing circuitry, and memory. The host 6602 also includes software, which is stored in or accessible by the host 6602 and executable by the processing circuitry. The software includes a host application that may be operable to provide a service to a remote user, such as the UE 6606 connecting via an over-the-top (OTT) connection 6650 extending between the UE 6606 and host 6602. In providing the service to the remote user, a host application may provide user data which is transmitted using the OTT connection 6650.
The network node 6604 includes hardware enabling it to communicate with the host 6602 and UE 6606. The connection 6660 may be direct or pass through a core network (like core network 2106 of Fig. 4) and/or one or more other intermediate networks, such as one or more public, private, or hosted networks. For example, an intermediate network may be a backbone network or the Internet.
The UE 6606 includes hardware and software, which is stored in or accessible by UE 6606 and executable by the UE’s processing circuitry. The software includes a client application, such as a web browser or operator-specific “app” that may be operable to provide a service to a human or non-human user via UE 6606 with the support of the host 6602. In the host 6602, an executing host application may communicate with the executing client application via the OTT connection 6650 terminating at the UE 6606 and host 6602. In providing the service to the user, the UE’s client application may receive request data from the host’s host application and provide user data in response to the request data. The OTT connection 6650 may transfer both the request data and the user data. The UE’s client application may interact with the user to generate the user data that it provides to the host application through the OTT connection 6650.
The OTT connection 6650 may extend via a connection 6660 between the host 6602 and the network node 6604 and via a wireless connection 6670 between the network node 6604 and the UE 6606 to provide the connection between the host 6602 and the UE 6606. The connection 6660 and wireless connection 6670, over which the OTT connection 6650 may be provided, have been drawn abstractly to illustrate the communication between the host 6602 and the UE 1606 via the network node 6604, without explicit reference to any intermediary devices and the precise routing of messages via these devices.
As an example of transmitting data via the OTT connection 6650, in step 6608, the host 6602 provides user data, which may be performed by executing a host application. In some embodiments, the user data is associated with a particular human user interacting with the UE 6606. In other embodiments, the user data is associated with a UE 6606 that shares data with the host 6602 without explicit human interaction. In step 6610, the host 6602 initiates a transmission carrying the user data towards the UE 6606. The host 6602 may initiate the transmission responsive to a request transmitted by the UE 6606. The request may be caused by human interaction with the UE 6606 or by operation of the client application executing on the UE 6606. The transmission may pass via the network node 6604, in accordance with the teachings of the embodiments described throughout this disclosure. Accordingly, in step 6612, the network node 6604 transmits to the UE 6606 the user data that was carried in the transmission that the host 6602 initiated, in accordance with the teachings of the embodiments described throughout this disclosure. In step 6614, the UE 6606 receives the user data carried in the transmission, which may be performed by a client application executed on the UE 6606 associated with the host application executed by the host 6602. In some examples, the UE 6606 executes a client application which provides user data to the host 6602. The user data may be provided in reaction or response to the data received from the host 6602. Accordingly, in step 6616, the UE 6606 may provide user data, which may be performed by executing the client application. In providing the user data, the client application may further consider user input received from the user via an input/output interface of the UE 6606. Regardless of the specific manner in which the user data was provided, the UE 6606 initiates, in step 6618, transmission of the user data towards the host 6602 via the network node 6604. In step 6620, in accordance with the teachings of the embodiments described throughout this disclosure, the network node 6604 receives user data from the UE 6606 and initiates transmission of the received user data towards the host 6602. In step 6622, the host 6602 receives the user data carried in the transmission initiated by the UE 6606.
One or more of the various embodiments improve the performance of OTT services provided to the UE 6606 using the OTT connection 6650, in which the wireless connection 6670 forms the last segment. More precisely, the teachings of these embodiments may improve the data rate, latency, and/or power consumption and thereby provide benefits such as reduced user waiting time, relaxed restriction on file size, improved content resolution, better responsiveness, and/or extended battery lifetime.
In an example scenario, factory status information may be collected and analyzed by the host 6602. As another example, the host 6602 may process audio and video data which may have been retrieved from a UE for use in creating maps. As another example, the host 6602 may collect and analyze real-time data to assist in controlling vehicle congestion (e.g., controlling traffic lights). As another example, the host 6602 may store surveillance video uploaded by a UE. As another example, the host 6602 may store or control access to media content such as video, audio, VR or AR which it can broadcast, multicast or unicast to UEs. As other examples, the host 6602 may be used for energy pricing, remote control of non-time critical electrical load to balance power generation needs, location services, presentation services (such as compiling diagrams etc. from data collected from remote devices), or any other function of collecting, retrieving, storing, analyzing and/or transmitting data.
In some examples, a measurement procedure may be provided for the purpose of monitoring data rate, latency and other factors on which the one or more embodiments improve. There may further be an optional network functionality for reconfiguring the OTT connection 6650 between the host 6602 and UE 6606, in response to variations in the measurement results. The measurement procedure and/or the network functionality for reconfiguring the OTT connection may be implemented in software and hardware of the host 6602 and/or UE 6606. In some embodiments, sensors (not shown) may be deployed in or in association with other devices through which the OTT connection 6650 passes; the sensors may participate in the measurement procedure by supplying values of the monitored quantities exemplified above, or supplying values of other physical quantities from which software may compute or estimate the monitored quantities. The reconfiguring of the OTT connection 6650 may include message format, retransmission settings, preferred routing etc.; the reconfiguring need not directly alter the operation of the network node 6604. Such procedures and functionalities may be known and practiced in the art. In certain embodiments, measurements may involve proprietary UE signaling that facilitates measurements of throughput, propagation times, latency and the like, by the host 6602. The measurements may be implemented in that software causes messages to be transmitted, in particular empty or ‘dummy’ messages, using the OTT connection 6650 while monitoring propagation times, errors, etc.
Although the computing devices described herein (e.g., UEs, network nodes, hosts) may include the illustrated combination of hardware components, other embodiments may comprise computing devices with different combinations of components. It is to be understood that these computing devices may comprise any suitable combination of hardware and/or software needed to perform the tasks, features, functions and methods disclosed herein. Determining, calculating, obtaining or similar operations described herein may be performed by processing circuitry, which may process information by, for example, converting the obtained information into other information, comparing the obtained information or converted information to information stored in the network node, and/or performing one or more operations based on the obtained information or converted information, and as a result of said processing making a determination. Moreover, while components are depicted as single boxes located within a larger box, or nested within multiple boxes, in practice, computing devices may comprise multiple different physical components that make up a single illustrated component, and functionality may be partitioned between separate components. For example, a communication interface may be configured to include any of the components described herein, and/or the functionality of the components may be partitioned between the processing circuitry and the communication interface. In another example, non-computationally intensive functions of any of such components may be implemented in software or firmware and computationally intensive functions may be implemented in hardware.
In certain embodiments, some or all of the functionality described herein may be provided by processing circuitry executing instructions stored in memory, which in certain embodiments may be a computer program product in the form of a non-transitory computer-readable storage medium. In alternative embodiments, some or all of the functionality may be provided by the processing circuitry without executing instructions stored on a separate or discrete device- readable storage medium, such as in a hard-wired manner. In any of those particular embodiments, whether executing instructions stored on a non-transitory computer-readable storage medium or not, the processing circuitry can be configured to perform the described functionality. The benefits provided by such functionality are not limited to the processing circuitry alone or to other components of the computing device but are enjoyed by the computing device as a whole, and/or by end users and a wireless network generally.
It will be appreciated that computer systems are increasingly taking a wide variety of forms. In this description and in the claims, the terms “controller,” “computer system,” or “computing system” are defined broadly as including any device or system — or combination thereof — that includes at least one physical and tangible processor and a physical and tangible memory capable of having thereon computer-executable instructions that may be executed by a processor. By way of example, not limitation, the term “computer system” or “computing system,” as used herein is intended to include personal computers, desktop computers, laptop computers, tablets, hand-held devices (e.g., mobile telephones, PDAs, pagers), microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, multi-processor systems, network PCs, distributed computing systems, datacenters, message processors, routers, switches, and even devices that conventionally have not been considered a computing system, such as wearables (e.g., glasses).
The computing system also has thereon multiple structures often referred to as an “executable component.” For instance, the memory of a computing system can include an executable component. The term “executable component” is the name for a structure that is well understood to one of ordinary skill in the art in the field of computing as being a structure that can be software, hardware, or a combination thereof. For instance, when implemented in software, one of ordinary skill in the art would understand that the structure of an executable component may include software objects, routines, methods, and so forth, that may be executed by one or more processors on the computing system, whether such an executable component exists in the heap of a computing system, or whether the executable component exists on computer-readable storage media. The structure of the executable component exists on a computer-readable medium in such a form that it is operable, when executed by one or more processors of the computing system, to cause the computing system to perform one or more functions, such as the functions and methods described herein. Such a structure may be computer-readable directly by a processor — as is the case if the executable component were binary. Alternatively, the structure may be structured to be interpretable and/or compiled — whether in a single stage or in multiple stages — so as to generate such binary that is directly interpretable by a processor. The terms “component,” “service,” “engine,” “module,” “control,” “generator,” or the like may also be used in this description. As used in this description and in this case, these terms — whether expressed with or without a modifying clause — are also intended to be synonymous with the term “executable component” and thus also have a structure that is well understood by those of ordinary skill in the art of computing.
In terms of computer implementation, a computer is generally understood to comprise one or more processors or one or more controllers, and the terms computer, processor, and controller may be employed interchangeably. When provided by a computer, processor, or controller, the functions may be provided by a single dedicated computer or processor or controller, by a single shared computer or processor or controller, or by a plurality of individual computers or processors or controllers, some of which may be shared or distributed. Moreover, the term “processor” or “controller” also refers to other hardware capable of performing such functions and/or executing software, such as the example hardware recited above.
In general, the various exemplary embodiments may be implemented in hardware or special purpose chips, circuits, software, logic, or any combination thereof. For example, some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor, or other computing device, although the disclosure is not limited thereto. While various aspects of the exemplary embodiments of this disclosure may be illustrated and described as block diagrams, flow charts, or using some other pictorial representation, it is well understood that these blocks, apparatus, systems, techniques, or methods described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.
While not all computing systems require a user interface, in some embodiments a computing system includes a user interface for use in communicating information from/to a user. The user interface may include output mechanisms as well as input mechanisms. The principles described herein are not limited to the precise output mechanisms or input mechanisms as such will depend on the nature of the device. However, output mechanisms might include, for instance, speakers, displays, tactile output, projections, holograms, and so forth. Examples of input mechanisms might include, for instance, microphones, touchscreens, projections, holograms, cameras, keyboards, stylus, mouse, or other pointer input, sensors of any type, and so forth.
Abbreviations and Defined Terms
At least some of the following abbreviations may be used in this disclosure. If there is an inconsistency between abbreviations, preference should be given to how it is used above. If listed multiple times below, the first listing should be preferred over any subsequent listing(s). UE User Equipment
XR Extended Reality
WCET Worst-Case Execution Time
ETD Execution Time at Device (UE)
RTT Round Trip Time (Communication Delay)
ETH Execution Time at (Network) Host
To assist in understanding the scope and content of this written description and the appended claims, a select few terms are defined directly below. Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present disclosure pertains.
The terms “approximately,” “about,” and “substantially,” as used herein, represent an amount or condition close to the specific stated amount or condition that still performs a desired function or achieves a desired result. For example, the terms “approximately,” “about,” and “substantially” may refer to an amount or condition that deviates by less than 10%, or by less than 5%, or by less than 1%, or by less than 0. 1%, or by less than 0.01% from a specifically stated amount or condition.
Various aspects of the present disclosure, including devices, systems, and methods may be illustrated with reference to one or more embodiments or implementations, which are exemplary in nature. As used herein, the term “exemplary” means “serving as an example, instance, or illustration,” and should not necessarily be construed as preferred or advantageous over other embodiments disclosed herein. In addition, reference to an “implementation” of the present disclosure or embodiments includes a specific reference to one or more embodiments thereof, and vice versa, and is intended to provide illustrative examples without limiting the scope of the present disclosure, which is indicated by the appended claims rather than by the present description.
As used in the specification, a word appearing in the singular encompasses its plural counterpart, and a word appearing in the plural encompasses its singular counterpart, unless implicitly or explicitly understood or stated otherwise. Thus, it will be noted that, as used in this specification and the appended claims, the singular forms “a,” “an” and “the” include plural referents unless the context clearly dictates otherwise. For example, reference to a singular referent (e.g., “a widget”) includes one, two, or more referents unless implicitly or explicitly understood or stated otherwise. Similarly, reference to a plurality of referents should be interpreted as comprising a single referent and/or a plurality of referents unless the content and/or context clearly dictate otherwise. For example, reference to referents in the plural form (e.g., “widgets”) does not necessarily require a plurality of such referents. Instead, it will be appreciated that independent of the inferred number of referents, one or more referents are contemplated herein unless stated otherwise.
References in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” and the like indicate that the embodiment described may include a particular feature, structure, or characteristic, but it is not necessary that every embodiment includes the 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 affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
It shall be understood that although the terms “first” and “second” etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and similarly, a second element could be termed a first element, without departing from the scope of example embodiments. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed terms.
It will be further understood that the terms “comprises”, “comprising”, “has”, “having”, “includes” and/or “including”, when used herein, specify the presence of stated features, elements, and/or components etc., but do not preclude the presence or addition of one or more other features, elements, components and/ or combinations thereof.
Conclusion
The present disclosure includes any novel feature or combination of features disclosed herein either explicitly or any generalization thereof. Various modifications and adaptations to the foregoing exemplary embodiments of this disclosure may become apparent to those skilled in the relevant arts in view of the foregoing description, when read in conjunction with the accompanying drawings. However, any and all modifications will still fall within the scope of the non-limiting and exemplary embodiments of this disclosure.
It is understood that for any given component or embodiment described herein, any of the possible candidates or alternatives listed for that component may generally be used individually or in combination with one another, unless implicitly or explicitly understood or stated otherwise. Additionally, it will be understood that any list of such candidates or alternatives is merely illustrative, not limiting, unless implicitly or explicitly understood or stated otherwise.
In addition, unless otherwise indicated, numbers expressing quantities, constituents, distances, or other measurements used in the specification and claims are to be understood as being modified by the term “about,” as that term is defined herein. Accordingly, unless indicated to the contrary, the numerical parameters set forth in the specification and attached claims are approximations that may vary depending upon the desired properties sought to be obtained by the subject matter presented herein. At the very least, and not as an attempt to limit the application of the doctrine of equivalents to the scope of the claims, each numerical parameter should at least be construed in light of the number of reported significant digits and by applying ordinary rounding techniques. Notwithstanding that the numerical ranges and parameters setting forth the broad scope of the subject matter presented herein are approximations, the numerical values set forth in the specific examples are reported as precisely as possible. Any numerical values, however, inherently contain certain errors necessarily resulting from the standard deviation found in their respective testing measurements.
Any headings and subheadings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. The terms and expressions which have been employed herein are used as terms of description and not of limitation, and there is no intention in the use of such terms and expressions of excluding any equivalents of the features shown and described or portions thereof, but it is recognized that various modifications are possible within the scope of the present disclosure. Thus, it should be understood that although the present disclosure has been specifically disclosed in part by certain embodiments, and optional features, modification and variation of the concepts herein disclosed may be resorted to by those skilled in the art, and such modifications and variations are considered to be within the scope of this present description.
It will also be appreciated that systems, devices, products, kits, methods, and/or processes, according to certain embodiments of the present disclosure may include, incorporate, or otherwise comprise properties or features (e.g., components, members, elements, parts, and/or portions) described in other embodiments disclosed and/or described herein. Accordingly, the various features of certain embodiments can be compatible with, combined with, included in, and/or incorporated into other embodiments of the present disclosure. Thus, disclosure of certain features relative to a specific embodiment of the present disclosure should not be construed as limiting application or inclusion of said features to the specific embodiment. Rather, it will be appreciated that other embodiments can also include said features, members, elements, parts, and/or portions without necessarily departing from the scope of the present disclosure.
Moreover, unless a feature is described as requiring another feature in combination therewith, any feature herein may be combined with any other feature of a same or different embodiment disclosed herein. Furthermore, various well-known aspects of illustrative systems, methods, apparatus, and the like are not described herein in particular detail in order to avoid obscuring aspects of the example embodiments. Such aspects are, however, also contemplated herein.
It will be apparent to one of ordinary skill in the art that methods, devices, device elements, materials, procedures, and techniques other than those specifically described herein can be applied to the practice of the described embodiments as broadly disclosed herein without resort to undue experimentation. All art-known functional equivalents of methods, devices, device elements, materials, procedures, and techniques specifically described herein are intended to be encompassed by this present disclosure.
When a group of materials, compositions, components, or compounds is disclosed herein, it is understood that all individual members of those groups and all subgroups thereof are disclosed separately. When a Markush group or other grouping is used herein, all individual members of the group and all combinations and sub-combinations possible of the group are intended to be individually included in the disclosure.
The above-described embodiments are examples only. Alterations, modifications, and variations to the particular embodiments may be effected by those of skill in the art without departing from the scope of the description, which is defined solely by the appended claims.

Claims

CLAIMS What is claimed is:
1. A method performed by a user equipment for conditionally offloading a computational task, the method comprising: as a cost function of information about (i) a computational task to be executed, and (ii) an available computing resource in communication with the user equipment via a wireless network, selecting whether to execute the computational task on the user equipment or on the available computing resource; and if the user equipment selects to execute the computational task on the available computing resource, offloading the computational task by communicating data to the available computing resource, where the communicated data is sufficient to enable the available computing resource to execute the computational task.
2. The method of claim 1, wherein the information about the computational task comprises at least one of: a representation of the code, or application requirements.
3. The method of any of the previous claims, wherein the information about the available computing resource comprises at least one of a resource profile and a specification of capabilities of the available computing resource.
4. The method of any of the previous claims, wherein the cost function is also a function of one or more user preferences.
5. The method of any of the previous claims, wherein the available computing resource comprises a plurality of distinct computing resources, wherein the cost function produces a result, and wherein the result comprises a list of zero or more of the distinct computing resources that fulfill the application requirements and user preferences together with information about at least one of expected performance, expected energy consumption, or expected monetary cost associated with executing the computing task on a respective one of the distinct computing resources.
6. The method of any of the previous claims, further comprising the step of, if the user equipment selects to execute the computational task on the available computing resource, receiving from the available computing resource an output of the computational task.
7. The method of any of the previous claims, further comprising, based on changes in the value of the cost function after the offloading, revoking the offloading.
8. The method of any of the previous claims, further comprising: providing user data; and forwarding the user data to a host via the transmission to the network node.
9. A computer-implemented method for conditionally offloading a computational task, comprising: as a cost function of information about (i) a computational task to be executed, and (ii) an available computing resource in communication with the user equipment via a wireless network, selecting whether to execute the computational task on the user equipment or on the available computing resource; and if the user equipment selects to execute the computational task on the available computing resource, communicating data to the available computing resource, where the communicated data is sufficient to enable the available computing resource to execute the computational task.
10. A system for conditionally offloading a computational task comprising processing circuitry and a memory, the memory containing instructions executable by the processing circuitry whereby the system is operative to perform any of the steps in any of the previous claims.
11. A method performed by a network node for conditionally offloading a computational task, the method comprising: as a cost function of information about (i) a computational task to be executed, and (ii) an available computing resource in communication with the network node via a wireless network, selecting whether to execute the computational task on the network node or on the available computing resource; and if the network node selects to execute the computational task on the available computing resource, communicating data to the available computing resource, where the communicated data is sufficient to enable the available computing resource to execute the computational task.
12. The method of claim 11, wherein the information about the computational task comprises at least one of: a representation of the code, or application requirements.
13. The method of any of claims 11 or 12, wherein the information about the available computing resource comprises at least one of a resource profile and a specification of capabilities of the available computing resource.
14. The method of any of claims 11-13, wherein the cost function is also a function of one or more user preferences.
15. The method of any of claims 11-14, wherein the available computing resource comprises a plurality of distinct computing resources, wherein the cost function produces a result, and wherein the result comprises a list of zero or more of the distinct computing resources that fulfill the application requirements and user preferences together with information about at least one of expected performance, expected energy consumption, or expected monetary cost associated with executing the computing task on a respective one of the distinct computing resources.
16. The method of any of claims 11-15, further comprising the step of, if the network node selects to execute the computational task on the available computing resource, receiving from the available computing resource an output of the computational task.
17. The method of any of claims 11-16, further comprising, based on changes in the value of the cost function after the offloading, revoking the offloading.
18. The method of any of claims 11-17, further comprising: obtaining user data; and forwarding the user data to a host or a user equipment.
19. A user equipment for conditionally offloading a computational task, comprising: processing circuitry configured to perform any of the steps of any of the claims 1-8; and power supply circuitry configured to supply power to the processing circuitry.
20. A network node for conditionally offloading a computational task, the network node comprising: processing circuitry configured to perform any of the steps of any of the claims 11-18; power supply circuitry configured to supply power to the processing circuitry.
21. A user equipment (UE) for conditionally offloading a computational task, the UE comprising: an antenna configured to send and receive wireless signals; radio front-end circuitry connected to the antenna and to processing circuitry, and configured to condition signals communicated between the antenna and the processing circuitry; the processing circuitry being configured to perform any of the steps of any of the claims 1-
8; an input interface connected to the processing circuitry and configured to allow input of information into the UE to be processed by the processing circuitry; an output interface connected to the processing circuitry and configured to output information from the UE that has been processed by the processing circuitry; and a battery connected to the processing circuitry and configured to supply power to the UE.
22. A host configured to operate in a communication system to provide an over-the-top (OTT) service, the host comprising: processing circuitry configured to provide user data; and a network interface configured to initiate transmission of the user data to a cellular network for transmission to a user equipment (UE), wherein the UE comprises a communication interface and processing circuitry, the communication interface and processing circuitry of the UE being configured to perform any of the steps of any of the claims 1-8 to receive the user data from the host.
23. The host of claim 22, wherein the cellular network further includes a network node configured to communicate with the UE to transmit the user data to the UE from the host.
24. The host of claims 22-23, wherein: the processing circuitry of the host is configured to execute a host application, thereby providing the user data; and the host application is configured to interact with a client application executing on the UE, the client application being associated with the host application.
25. A method implemented by a host operating in a communication system that further includes a network node and a user equipment (UE), the method comprising: providing user data for the UE; and initiating a transmission carrying the user data to the UE via a cellular network comprising the network node, wherein the UE performs any of the operations of any of the claims 1-8 to receive the user data from the host.
26. The method of claim 25, further comprising: at the host, executing a host application associated with a client application executing on the UE to receive the user data from the UE.
27. The method of claim 26, further comprising: at the host, transmitting input data to the client application executing on the UE, the input data being provided by executing the host application, wherein the user data is provided by the client application in response to the input data from the host application.
28. A host configured to operate in a communication system to provide an over-the-top (OTT) service, the host comprising: processing circuitry configured to provide user data; and a network interface configured to initiate transmission of the user data to a cellular network for transmission to a user equipment (UE), wherein the UE comprises a communication interface and processing circuitry, the communication interface and processing circuitry of the UE being configured to perform any of the steps of any of the claims 1-8 to transmit the user data to the host.
29. The host of claim 28, wherein the cellular network further includes a network node configured to communicate with the UE to transmit the user data from the UE to the host.
30. The host of any of claims 28-29, wherein: the processing circuitry of the host is configured to execute a host application, thereby providing the user data; and the host application is configured to interact with a client application executing on the UE, the client application being associated with the host application.
31. A method implemented by a host configured to operate in a communication system that further includes a network node and a user equipment (UE), the method comprising: at the host, receiving user data transmitted to the host via the network node by the UE, wherein the UE performs any of the steps of any of the claims 1-8 to transmit the user data to the host.
32. The method of claim 31, further comprising: at the host, executing a host application associated with a client application executing on the UE to receive the user data from the UE.
33. The method of claim 32, further comprising: at the host, transmitting input data to the client application executing on the UE, the input data being provided by executing the host application, wherein the user data is provided by the client application in response to the input data from the host application.
34. A host configured to operate in a communication system to provide an over-the-top (OTT) service, the host comprising: processing circuitry configured to provide user data; and a network interface configured to initiate transmission of the user data to a network node in a cellular network for transmission to a user equipment (UE), the network node having a communication interface and processing circuitry, the processing circuitry of the network node configured to perform any of the operations of any of the claims 11-18 to transmit the user data from the host to the UE.
35. The host of claim 34, wherein: the processing circuitry of the host is configured to execute a host application that provides the user data; and the UE comprises processing circuitry configured to execute a client application associated with the host application to receive the transmission of user data from the host.
36. A method implemented in a host configured to operate in a communication system that further includes a network node and a user equipment (UE), the method comprising: providing user data for the UE; and initiating a transmission carrying the user data to the UE via a cellular network comprising the network node, wherein the network node performs any of the operations of any of the claims 11-18 to transmit the user data from the host to the UE.
37. The method of claim 36, further comprising, at the network node, transmitting the user data provided by the host for the UE.
38. The method of any of claims 36-37, wherein the user data is provided at the host by executing a host application that interacts with a client application executing on the UE, the client application being associated with the host application.
39. A communication system configured to provide an over-the-top service, the communication system comprising: a host comprising: processing circuitry configured to provide user data for a user equipment (UE), the user data being associated with the over-the-top service; and a network interface configured to initiate transmission of the user data toward a cellular network node for transmission to the UE, the network node having a communication interface and processing circuitry, the processing circuitry of the network node configured to perform any of the operations of any of the claims 11-18 to transmit the user data from the host to the UE.
40. The communication system of claim 39, further comprising: the network node; and/or the user equipment.
41. A host configured to operate in a communication system to provide an over-the-top (OTT) service, the host comprising: processing circuitry configured to initiate receipt of user data; and a network interface configured to receive the user data from a network node in a cellular network, the network node having a communication interface and processing circuitry, the processing circuitry of the network node configured to perform any of the operations of any of the claims 11-18 to receive the user data from a user equipment (UE) for the host.
42. The host of claim 41, wherein: the processing circuitry of the host is configured to execute a host application, thereby providing the user data; and the host application is configured to interact with a client application executing on the UE, the client application being associated with the host application.
43. The host of the any of the claims 41-42, wherein the initiating receipt of the user data comprises requesting the user data.
44. A method implemented by a host configured to operate in a communication system that further includes a network node and a user equipment (UE), the method comprising: at the host, initiating receipt of user data from the UE, the user data originating from a transmission which the network node has received from the UE, wherein the network node performs any of the steps of any of the claims 11- 18 to receive the user data from the UE for the host.
45. The method of claim 44, further comprising at the network node, transmitting the received user data to the host.
PCT/IB2023/061010 2023-08-23 2023-11-01 Cost analysis for computational offloading decisions Pending WO2025040948A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202363534147P 2023-08-23 2023-08-23
US63/534,147 2023-08-23

Publications (1)

Publication Number Publication Date
WO2025040948A1 true WO2025040948A1 (en) 2025-02-27

Family

ID=88731254

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2023/061010 Pending WO2025040948A1 (en) 2023-08-23 2023-11-01 Cost analysis for computational offloading decisions

Country Status (1)

Country Link
WO (1) WO2025040948A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853953B2 (en) * 2005-05-27 2010-12-14 International Business Machines Corporation Methods and apparatus for selective workload off-loading across multiple data centers
US20190141120A1 (en) * 2018-12-28 2019-05-09 Intel Corporation Technologies for providing selective offload of execution to the edge

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853953B2 (en) * 2005-05-27 2010-12-14 International Business Machines Corporation Methods and apparatus for selective workload off-loading across multiple data centers
US20190141120A1 (en) * 2018-12-28 2019-05-09 Intel Corporation Technologies for providing selective offload of execution to the edge

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MA XIAOQIANG ET AL: "When Mobile Terminals Meet the Cloud: Computation Offloading as the Bridge", 1 October 2013 (2013-10-01), pages 28 - 33, XP93123227, Retrieved from the Internet <URL:https://ieeexplore.ieee.org/stampPDF/getPDF.jsp?tp=&arnumber=6616112&ref=aHR0cHM6Ly9pZWVleHBsb3JlLmllZWUub3JnL2RvY3VtZW50LzY2MTYxMTI=> [retrieved on 20240124] *
SAEIK, F. ET AL., TASK OFFLOADING IN EDGE AND CLOUD COMPUTING: A SURVEY ON MATHEMATICAL, ARTIFICIAL INTELLIGENCE AND CONTROL THEORY SOLUTIONS, Retrieved from the Internet <URL:https://doi.org/10.1016/j.comnet.2021.108177>
XIAOQIANG MA ET AL., WHEN MOBILE TERMINALS MEET THE CLOUD: COMPUTATION OFFLOADING AS THE BRIDGE, Retrieved from the Internet <URL:https://doi.org/10.1109/MNET.2013.6616112>

Similar Documents

Publication Publication Date Title
WO2023209577A1 (en) Ml model support and model id handling by ue and network
US20250274346A1 (en) Network slicing fixed wireless access (fwa) use case
EP4566257A1 (en) Performance analytics for assisting machine learning in a communications network
WO2024072305A1 (en) Systems and methods for beta offset configuration for transmitting uplink control information
WO2024193831A1 (en) Performing a closed-loop prediction based on behavior of a network in response to a control policy
WO2022243941A1 (en) Mobility history information capability indication
WO2025040948A1 (en) Cost analysis for computational offloading decisions
WO2025120355A1 (en) Profiling tools for analyzing software code performance
US20250227764A1 (en) Handling of random access partitions and priorities
US20250294421A1 (en) Calculation of combined cell reselect priorities with slice base cell re-selection
WO2024241178A1 (en) Network management task id function
US20250023798A1 (en) Configurable support for generic virtualized infrastructure manager resources
WO2025159675A1 (en) Methods, apparatus and computer-readable media relating to user equipment capability reporting
WO2025177243A1 (en) System and method for performance aware dynamic uncore frequency scaling
WO2024235918A1 (en) Sending and receiving information identifying energy usage by a computing unit
WO2025122057A1 (en) Identifying energy consumption in a wireless communications network
WO2024210795A1 (en) Idle/inactivity mobility procedure for timing resiliency
WO2025158176A1 (en) Policy-based roaming sim profile activation
WO2025068521A1 (en) Modified protocol description for handling transport protocols
WO2025172756A1 (en) Enhanced configuration and reporting of idle/inactive mode measurements
WO2025012677A1 (en) A hybrid system and method for application resource configuration in cloud
WO2024218534A1 (en) Method and system for providing timely microservice execution in a cloud system
WO2025134067A1 (en) Ai/ml positioning for location management function
WO2025172736A1 (en) System and method for energy-efficient resource allocation for microservice-based application in the cloud
WO2024075129A1 (en) Handling sequential agents in a cognitive framework

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23801904

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)