System and method for distributing application logic in digital network

By using machine learning algorithms and application recommendation modules in mobile edge computing, dynamically optimize application function distribution, solving the problem of unoptimized resource allocation in the existing technology, and improving network performance and user experience.

CN120295787APending Publication Date: 2025-07-11MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510375786.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2019-05-22
Filing Date
2020-05-20
Publication Date
2025-07-11

AI Technical Summary

Technical Problem

The prior art is difficult to efficiently and intelligently distribute application functions to network edge nodes in mobile edge computing, resulting in high costs, unoptimized resource allocation and poor user experience.

Method used

Using machine learning algorithms and application recommendation modules, dynamically optimize the distribution of application functions between the control plane and the user plane by analyzing user data and network parameters, and using mobile edge computing servers to improve resource utilization and user experience.

Benefits of technology

It realizes intelligent resource allocation between the control plane and the user plane, reduces operational costs, and improves network performance and user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120295787A_ABST
    Figure CN120295787A_ABST
Patent Text Reader

Abstract

Techniques for distributing application logic in a digital network are disclosed. In one embodiment, the technique may be implemented as a method that includes receiving, from a first device, a request to initiate a service instance associated with a service. A service instance is associated with application logic. The method further includes determining one or more parameters associated with the request, identifying at least a portion of the application logic to be distributed to the mobile edge server based on the one or more parameters, and distributing the at least a portion of the application logic to the mobile edge server, thereby causing the mobile edge server to provide the service instance to the first device.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of a patent application for invention, with an international filing date of May 20, 2020, entering the Chinese national phase on November 12, 2021, with a Chinese national application number of 202080035717.3, and an invention title of "Systems and Methods for Distributing Application Logic in a Digital Network".

[0002] Cross - Reference to Related Applications

[0003] This application claims priority under 35 U.S.C.§119(e) to U.S. Provisional Patent Application No. 62 / 851,356, filed on May 22, 2019, entitled "Intelligent and Optimal User and App Placement in Mobile Edge Computing Through Machine Learning", which is incorporated herein by reference in its entirety. Technical Field

[0004] The present disclosure generally relates to digital networks and, more particularly, to the distribution of application logic in digital networks. Background Art

[0005] In current and next-generation digital mobile networks, network functions are distributed between a control plane and a user plane separation ("CUPS") architecture such that the scaling of network resources can occur at different rates in the control plane and the user plane, respectively. Given the growing usage demands of consumers, operators can scale user plane functions without investing in improved control plane hardware, thereby reducing operating costs.

[0006] Mobile edge computing ("MEC") in digital networks allows network operators to distribute computing functions that are traditionally performed at core network nodes. Distributing these operations away from the core network allows operators to reduce the computing resources used by the core network and instead perform processing functions on smaller distributed nodes closer to user equipment ("UE"). Additionally, since network traffic is not transmitted to the core network, MEC nodes can reduce the latency of performing these operations, resulting in a better user experience.

[0007] Determining which network operations to distribute to MEC nodes can be an expensive and time-consuming process that requires operators to evaluate numerous factors using data and user profiles. Accordingly, there is a need to develop improved techniques and systems for selecting distributed functions to be sent to MEC nodes. This background is provided to place the given systems and methods in context and is not intended to limit the scope or nature of any prior art of the present disclosure. Brief Description of the Drawings

[0008] Figure 1 is a simplified diagram of an existing technology network architecture that uses mobile edge computing to employ separate control plane and user plane functions at distributed locations.

[0009] Figure 2 is a simplified diagram of a system for intelligently and dynamically distributing application functions to an edge computing mode according to an embodiment of the present disclosure.

[0010] Figure 3 is a simplified flowchart of a process for training an application recommendation module according to an embodiment of the present disclosure.

[0011] Figure 4 is a simplified flowchart of a process for dynamically deploying a network service instance to a mobile edge computing server according to an embodiment of the present disclosure.

[0012] When considered in conjunction with the following drawings, reference to the following detailed description of the disclosed subject matter can more fully understand the various objects, features, and advantages of the disclosed subject matter, where like reference numerals identify like elements. Detailed Description

[0013] Due to the development of the control plane and user plane separation (“CUPS”) architecture, digital network operators have the ability to improve user plane functions by investing in increased capabilities while maintaining control plane hardware and functions. As described in 3GPP standard TS23.214, the CUPS architecture allows for the separation of key network nodes to enable flexible network deployment and operation. The CUPS architecture thus helps in the independent scaling of user plane elements and control plane elements to cope with increased user activity, whether it is an increase in data traffic or the number of user devices (“UE”). An additional benefit of the CUPS architecture is that operators can “push” user plane functions to the network edge (also known as “offloading”) and reduce the latency of network traffic by locally splitting network functions. The operator achieves this by moving operational functions closer to the UE that depends on the network data path, such that data does not need to be aggregated at a centralized core network server before entering the Internet.

[0014] Proposals leveraging Mobile Edge Computing (“MEC”) have recently started to look for effective ways to improve network functionality. MEC enables specific applications or programming logic to be pushed closer to the end user at the network edge to reduce latency, improve the user experience, and reduce the costs incurred in transporting data traffic to the core network routers. In the user plane, MEC allows certain logic / applications to be executed outside of the core network and closer to the client device, thereby improving key performance indicators (“KPIs”) such as latency and network congestion. Additionally, MEC supports local breakout at the network edge, allowing roaming mobile users to connect to alternative service providers without having to drag the user's data traffic back to their home core network.

[0015] MEC is made possible by providing separate distributed servers (e.g., MEC servers) at strategic physical locations to effectively serve users and reduce the operator's costs. This can result in improved application performance and faster data speeds, as well as the effective deployment of existing network infrastructure without the need for expensive investments on behalf of the operator for comprehensive end-to-end network improvements. Typically, because the space and power at the local exchange are very valuable, the computing power of MEC servers is much lower than that of core network routers and servers. As a result, only a limited number of users or application functions can be moved to the network edge of MEC servers. Network operators currently use iterative methods to determine such distribution to the network edge nodes, such as caching application content or operations that require manual reconfiguration, which is time-consuming, expensive, and data-intensive, and also prone to human error.

[0016] Accordingly, the present disclosure describes systems and methods by which automated intelligent computing can dynamically offload entire users or specific applications to network edge nodes such as MEC servers for optimized network resource assignment. Embodiments of the present disclosure allow operators to maximize the benefits of the MEC servers employed and minimize the operating costs at the same time. There is currently no intelligent system that focuses on user-centric requirements and synchronizes these requirements to improve the functionality / function distribution between the user plane and the control plane. Without such an intelligent system, it is difficult to ensure that costs, resource assignment, and the user experience are optimized.

[0017] Figure 1 is a simplified diagram of a prior art network architecture that uses mobile edge computing and employs separate control plane and user plane functions at distributed locations. Figure 1The figure shows an Internet 100, a core network 102, user plane sites 104, 106, and multiple UEs 108 - 114. Using a traditional CUPS architecture, the core network 102 includes a control plane device 116 capable of performing control plane functions. The user plane site 104 includes a user plane device 118 and a Mobile Edge Computing (“MEC”) server 120. Similarly, the user plane site 106 includes a user plane device 122 and an MEC server 124. The user plane devices 118, 122 are capable of performing user plane functions. The MEC servers 120, 124 perform certain calculations or data processing that was originally done at the Internet 100. Because the calculations are done closer to the user, the MEC servers 120, 124 allow for faster data processing.

[0018] For example, as Figure 1 shown, UEs 108 and 110 are served at the user plane site 104 such that all user plane functions associated with UEs 108, 110 are completed by the user plane device 118. As defined by rules set by the operator at the core network 102, the MEC server 120 may complete data processing on packets received from UEs 108, 110. Data packets received by the user plane site 104 that are not directed by the user plane device 118 to the MEC server 120 will pass through the core network 102 for processing at the Internet 100. Similarly, UEs 112, 114 are Figure 1 shown and served by the user plane site 106.

[0019] The control plane device 116 may assign UEs 108 - 114 to the user plane sites 104, 106 and assign whether specific functions or application logic are to be executed at the MEC servers 120, 124. However, the MEC servers 120, 124 may have limited computing capabilities. The limitations of the MEC servers 120, 124 may include minimum computing capabilities due to device data traffic capacity, the operator's decision to serve specific types of UEs only through specific MEC servers, and physical proximity limitations to RAN or backhaul network devices.

[0020] The MEC servers 104 - 106 may include several server designs, including Small Cell Cloud (“SCC”), Mobile Micro Cloud (“MCC”), Fast Moving Personal Cloud (“MobiScud”), Follow me Cloud (“FMC”), and the concept of Converged Cloud and Cellular Systems (“CONCERT”). The UEs 108 - 114 may include mobile phones, laptops, desktop computers, tablets, personal data assistants, smart watches, electronic devices, or other network - operating devices.

[0021] Figure 2A simplified diagram of a system for intelligently and dynamically distributing application functions to an edge computing mode according to some embodiments of the present disclosure. Figure 2 A network system 200 is shown that includes an Internet 100, a core network 202, and a user plane site 204. For illustrative purposes, only a single user plane site 204 is shown; however, multiple user plane sites may be employed in embodiments of an end-to-end network using the present system. The user plane site 204 is configured to serve multiple UEs (not shown). The core network 202 includes a control plane device 216, which includes a data storage device 206, a processor 208, and a control plane manager 210. The control plane device 216 may communicate with the user plane site 204 via a user plane device 218 by utilizing a CUPS architecture protocol described as part of a Packet Forwarding Control Protocol (“PFCP”).

[0022] The user plane site 204 includes a user plane device 218 and an MEC server 220. The MEC server 220 includes a controller 222, a processor 224, and a memory 226. The user plane device 218 may include a physical network node, such as a packet data network gateway (“PGW”), a serving gateway (“SGW”), an evolved Node B (“enodeB”), or other devices capable of performing user plane functions. Examples of services performed by the user plane device may include quality of service (QoS) handling, charging, shallow and deep data packet inspection, traffic throttling, TCP optimization, etc. In some non-limiting embodiments of the MEC server 220, the controller 222 is capable of responding to data and operation requests (also referred to herein as “services”) received from a UE at the user plane device 218. The controller 222 is capable of performing user plane functions, including functions performed by physical nodes such as a user plane serving gateway (“SGW-U”) or a user plane PDN gateway (“PGW-U”). In some embodiments, the controller 222 and corresponding controllers in the MEC server 220 may be a small cell manager, a MobiScud controller, or an FMC controller. In other embodiments, for example, by virtualizing the devices and functions of the MEC server 220, the controller 222 may be a control plane resident application function. Similarly, the processor 224 may include specific nodes for performing user plane functions, such as physical nodes SGW, PGW, and evolved Node B (“enodeB”). The memory 226 may cache specific service functions (e.g., application logic) executed at the MEC server 220, such that those same operations may be invoked for later service requests. In some embodiments, the MEC server 220 may be one of multiple physically distributed data centers or servers hosting interoperable virtual machines (“VMs”) based on the location of the user equipment. In some embodiments, distributing network traffic in the user plane site 204 may require intelligence (e.g., separate device logic) to determine which data processing to distribute between the user plane site 204 and the Internet 100. In some embodiments, the MEC server 220 may also be used for enterprise customer settings, such that all traffic belonging to the enterprise will be subject to the application logic assigned to the enterprise on the MEC server 220, such as security functions, data backup, or other enterprise-specific operations.

[0023] In some embodiments, the user plane device 218 may communicate directly with the Internet 100. When a UE (not shown) seeks services associated with that particular UE outside of the core network 202, the user plane device 218 may direct network traffic received from the UE to the Internet 100 as part of a local breakout process. In some embodiments, user traffic destined relatively close to the originating UE may only need to be processed using a user plane site (such as user plane site 204), such that the data traffic does not have to be processed at the Internet 100. In such cases, the user traffic may be distributed for processing only at the local user plane site or local router, without dragging the data traffic out to the Internet 100. Local breakout may allow the operator to limit bandwidth requirements, data processing requirements, and latency in network processing, among other things.

[0024] Within the control plane device 216, in addition to the PFCP identified devices, the data storage 206, the processor 208, and the control plane manager ("CP manager") 210 perform control plane operations for the end-to-end network. In some embodiments, the data storage 206 is a memory that contains information related to computing and application operations (also referred to herein as "usage parameters"), including application functions performed for a particular user, usage data on a per-use basis, application usage frequency, frequency of application functions used, quality of service (QoS) items, historical network latency associated with the application, user membership profiles, user data, application data, network traffic statistics, KPIs, or other forms of user-specific data. The data storage 206 may also contain logs of user plane device functions outside of application functions, such as total data throughput between the core network 202 and the Internet 100, from the user plane site 204 to the core network 202, and from the user plane device 218 to the MEC server 202. The data storage 206 may store relevant data in containers or sub-containers that enable the operator to more effectively use the data stored in the data storage 206 for analysis. In some embodiments, the data storage 206 may include a neural network to determine how to organize the usage data (e.g., assign weights or a hierarchical structure to the stored usage data).

[0025] The processor 208 includes an application recommendation module 228. The application recommendation module 228 processes data received from the data storage 206 to identify the best application functions to be performed at either the Internet 100 or the MEC server 220. The application recommendation module 228 may include a simulation system (not shown) to train machine learning algorithms to be deployed within the application recommendation module 228. This will be discussed below with reference to Figure 3 and Figure 4Further describe the process of the application recommendation module 228 training and employing machine learning algorithms to generate an optimized application function distribution between the Internet 100 and the MEC server 220. The CP manager 210 determines whether a particular UE is assigned to the user plane site 204 for serving, or whether the particular UE will be better served at other user plane sites as part of the end-to-end network. In some embodiments, after receiving the output of the application recommendation module 228, the CP manager communicates with the user plane site 204, and specifically with the user plane device 218. In other embodiments, the CP manager 210 can dynamically change the selected user plane site 204 for a particular UE in response to changing conditions of the service instance, such as changes in network data traffic or UE location. In some embodiments, the CP manager 210 can identify the location of the UE based on the limitations of the RAN or backhaul network devices to instantiate the service at the MEC server 220 physically close to the user. In other embodiments, the CP manager 210 can select the MEC server 220 or other MEC servers based on the VMs currently deployed across the user plane sites in the network, where the VMs may or may not be physically close to the user. When determining whether to serve the UE via the MEC server 220 that is physically close or computationally close, the CP manager 210 can consider parameters including the following: for example, the data traffic throughput of the user plane site 204, the device type, the type of application logic to be executed, the time of day, the user membership identifier (e.g., premium user level), the quality of service (QoS), the computing power at the processor 224, or the latency requirements of the requested application, etc.

[0026] Figure 3FIG. 300 is a simplified flowchart of a process for training an algorithm within application recommendation module 228 according to one embodiment of the present disclosure. For example, application recommendation module 228 may include algorithms such as content-based and collaborative filtering methods. For example, such methods may include user-based K-Nearest-Neighbors, matrix factorization, deep neural networks (e.g., convolutional neural networks), etc. At step 302, control plane device 216 receives usage data reported from UEs in the network and stored in data storage device 206. At step 304, all data received from the UEs is classified / parsed into usage parameters. Usage parameters may be defined by an operator (e.g., by a subject matter expert (“SME”)), such as, for example, application type; network data throughput; data usage of a particular application; usage frequency of the application; membership level of the user (including billing terms); QoS terms; latency requirements; latency requirements associated with the application; MEC function capacity; MEC function tailoring; computational requirements of the application function; geographical location; compatibility of co-executed applications; time of day; energy usage of the MEC server, capacity of the MEC server processor or memory; access point name (APN); destination URL of the application; historical usage patterns; historical UE behavior; day of the week; date of the year; current system utilization; and number of nearby UEs requiring the same application, as well as other parameters that may be related to or identified by the operator or the machine learning algorithm itself, etc.

[0027] In some embodiments, as described in detail below with respect to Figure 4 the usage parameters may be updated via the output from application recommendation module 228 such that data storage device 206 includes within the data parameter connections not previously identified by the SME. At step 306, the system identifies and compiles a training data set and a calibration data set from the data within data storage device 206. In some embodiments, the training data set may be the majority of the data within data storage device 206 over a set time period compared to the calibration data set. The calibration data set and the training data set may be taken from the same data source but are partitioned as subsets of the same data set to provide an accurate comparison between data points for training purposes. For example, if the data set in data storage device 206 represents data acquired over a 48-hour period, the training data set may include all data acquired during the first thirty-six hours of the time period, where the calibration data set may include only the data acquired during the last twelve hours of the time period. Having consistent training and calibration data sets allows the operator to ensure the accurate performance of application recommendation module 228.

[0028] At step 308, the control plane device 216 trains the algorithm of the application recommendation module 228 by using the training data from the data storage device 206. To this end, the training data set is systematically input into the simulation environment, whereby the SME can identify the key parameters and the associated weights within the algorithm of the application recommendation module 228. In some embodiments, the SME can utilize a subset of the training data set to identify the key parameters of the algorithm and compare the algorithm performance of each subset of the training data set before proceeding with training using a larger portion of the training data set. For example, if the training data set represents data collected during the first thirty-six hours of a given time period, the SME can start by training the algorithm using subsets of data received every thirty minutes to identify the discrete variables that are part of the subset. Once the algorithm has been properly calibrated to account for the variables in the first thirty-minute subset, the SME can apply the algorithm to the next thirty-minute data segment and identify any previously unaccounted variables that need to become part of the algorithm. In some embodiments, this type of iterative process allows the SME to ensure that the algorithm of the application recommendation module 228 is ready to account for previously unknown variables. As part of this process, the SME can also provide a random number (nonce) variable in the algorithm so that the application recommendation module 228 can consider new variables as they are encountered without the need for interaction from the SME or other operators. In some embodiments, the processor 208 is also configured to identify the key parameters and associated weights by receiving usage data and passing it through the algorithm. The algorithm then generates recommendations regarding the location of specific user plane functions that should be allocated between the user plane device and the Internet.

[0029] At step 310, as described in step 308 above, the algorithm is applied to the calibration data set in the simulation environment to confirm proper training. Using the calibration data set, the operator has the ability to know the values of each parameter identified within the data set, but only introduces a subset of these parameters into the algorithm. Based on the operation and output of the algorithm, the operator can compare the calculated output to the calibration data set to determine whether the algorithm correctly identifies the parameters of the system operation and their expected values. In some embodiments, as described above, the calibration data set can be used in subsets in a process similar to that which can be used for the training data set. At step 312, after sufficient testing, the processor 224 sends the algorithm from the simulation environment to the application recommendation module 228 (e.g., to the "live system").

[0030] Figure 4 is a simplified flowchart of a process for dynamically deploying a network service instance to a mobile edge computing server according to an embodiment of the present disclosure. For illustrative purposes, reference is made to Figure 2Describe the process diagram by the parts of the networking system 200 depicted in and performed by the network elements shown. At step 402, the CP manager 210 receives a request from the UE to instantiate a service. Examples of service requests can include operating a specific application, such as Netflix, Facebook, or a virtual reality application, at the UE, etc. After receiving the request, at step 404, the CP manager 210, in conjunction with the user plane device 218, determines the service attributes and parameters associated with the request. This can be done by parsing the service instance request into parameters that identify the user, the user device, and the application logic, etc. In some embodiments, the variables identified in step 404 can be the same variables as those used to parse the data stored in the data storage device 206 as described above in Figure 3 As described in, for parsing the data stored in the data storage device 206. In other embodiments, the service attributes can be just a subset of the variables identified for the organization in the data storage device 206.

[0031] At step 406, the CP manager 210 determines whether to distribute the service instance application logic to the MEC server. For the purpose of completing the requested service instance, the service instance logic can be distributed to the MEC server in whole or in part. In the case where the service is fully distributed (e.g., fully offloaded) to the MEC server 220, the CP manager 210 identifies the user plane functions required to execute the service and directs the application logic to the MEC server 220 associated with the user plane site 204 of the assigned UE. In some cases, the service can be partially distributed (e.g., partially offloaded) such that only the requested portion of the service is executed at the MEC server 220 via the user plane functions. For the partially offloaded service, the portions of the application logic that are not executed at the MEC server 220 will be routed from the user plane site 204 through the user plane device 218 to the core network 202. The core network 202 routes the requested service packets to the Internet 100 for processing. To determine whether to offload and which portions of the service instance to offload, the CP manager 210 can adopt the optimization recommendations from the application recommendation module 228. The output from the application recommendation module 228 can be stored in the memory associated with the CP manager 210 as part of the control plane device 216. In some embodiments, the CP manager 210 applies the output from the application recommendation module 228 to the network layout such that the responsibility for network resource allocation is distributed across the network. In some embodiments, the user plane device 218 can also include logic to identify the portions of the application logic that are partially or fully offloaded and routed to the MEC server 220 or the Internet 100 for processing. Once the CP manager 210 distributes the application logic for the service instance, the network executes the service according to the distributed application logic, i.e., the processing of the service associated with the application logic distributed to the user plane is processed at the user plane, and the processing of the service associated with the application logic at the control plane or the Internet is processed at those respective locations.

[0032] After or during the service instance, at step 408, the control plane device 216 (e.g., via the CP manager 210) extracts service instance performance metrics related to the service instance and stores them as usage data. For the data extracted and received at the control plane device 216, the data can be routed to the data storage device 206 for later processing. In some embodiments, the usage data can be temporarily stored at the memory 226 of the MEC server 220. The usage data stored at the memory 226 can then be periodically sent to the control plane device 216 (e.g., the data repository 206) for long-term storage. The service instance performance metrics that make up the usage data received at the control plane device 216 or the MEC server 220 can include application type; network data throughput; data usage of a particular application; application usage frequency; user membership level (including billing terms); QoS terms; latency requirements; latency requirements associated with the application; MEC function capacity; MEC function tailoring; computational requirements of the application functions; geographical location; compatibility of co-executed applications; time of day; energy usage of the MEC server; capacity of the MEC server processor or memory; access point name (APN); destination URL of the application: historical usage patterns; historical UE behavior; day of the week; date of the year; current system utilization; and the number of nearby UEs that require the same application; and other parameters that may be related to or identified by the operator or the machine learning algorithm itself, etc. In some embodiments, the CP manager 210 can evaluate the service instance performance metrics associated with the service instance in real time.

[0033] At step 410, the CP manager 210 evaluates the service instance performance metrics compared to usage data thresholds set by the operator or defined by the application recommendation module 228. In some embodiments, the CP manager 210 reassigns the UE service instance to a separate MEC server 220 based on the comparison of the service instance performance metrics with the usage data thresholds. In other embodiments, the CP manager 210 can reassign the UE service instance to a different user plane site (not shown) included in the network 200.

[0034] For example, if the UE is traveling across geographical regions (e.g., traveling from a suburb to a city for work) and streaming data while traveling, the user plane site associated with the UE that starts its service instance may be different from the user plane site that needs to process this data where the UE ends its service instance. In this case, the CP manager 210 will identify the location of the UE at periodic points during the service instance, and at each time point during the service instance, transfer the service instance application logic between user plane sites that are geographically close to the UE. In some embodiments, using the output from the application recommendation module 228, the CP manager 210 can identify a particular UE as traveling consistently between these geographical locations during a consistent time period. In this way, the CP manager 210 can anticipate the transfer requirements of the UE service instance and pre-determine the moment when the UE service instance will be offloaded between different user plane sites in the network.

[0035] As another example, the CP manager 210 can identify the membership criteria for quality of service ("QoS") associated with each UE (e.g., pricing tier). When multiple UEs associated with a single user plane site are requesting services, some UEs can route their specific service instance requests to the MEC server within that user plane site due to their premium QoS membership. In this case, the first UE can have a first level of premium QoS membership, while the second UE can have a second level of QoS membership. If both the first UE and the second UE request a service instance of the same application (e.g., Netflix) through the same user plane device, the first UE may be assigned to the MEC server at the user plane site due to its premium QoS membership, while the second UE can be routed to the Internet 100 for processing. Alternatively, the CP manager 210 can re-assign the second UE to a second user plane site for processing at the MEC server associated with the second user plane site. Re-assignment to different user plane sites can also be performed due to overall data traffic, application type, or other service instance performance metrics as identified above. As described above, the re-assignment of service instances can be part of the data stored in the data storage device 206 and the memory 226.

[0036] In some embodiments, the control plane device (e.g., CP manager 210) can anticipate the service instances of the UE and effectively assign them to user plane sites. This re-assignment may, for example, stem from UEs with a higher level of QoS membership and a need for greater network capacity. In other embodiments, UEs can request the same or similar application services, such that the control plane device anticipates through the application recommendation module to assign the application logic to a single user plane site. In this example, the operator may want the user plane site to contain the application logic to avoid duplicate network resource deployment.

[0037] At step 412, the CP manager 210 requests an update algorithm for the real-time system based on the performance of the completed service instances. In some embodiments, step 412 may occur at a periodic frequency determined by the operator, such as a known data traffic period when network resource demands are low (e.g., midnight). The CP manager 210 may request that information from the data storage device 206 and the memory 226 be used to update the algorithm of the application recommendation module 228. The stored data may include the reassignment data discussed above with respect to step 410. In this way, the algorithm can improve the analysis details by "learning" more about predictable network usage and predicted service instance demands, so as to effectively deploy the application logic between the MEC server and the user plane site.

[0038] In some embodiments, the disclosed system for assigning application logic between user plane locations includes a processor and a memory, the memory being coupled to the processor and including computer-readable instructions that, when executed by the processor, cause the processor to receive a service request from at least one user device and determine at least one service attribute associated with the service request. In some embodiments, the processor may also distribute at least a portion of the service to at least one distributed server node and extract service instance usage data associated with the service request. In some embodiments, the processor may transmit the service instance usage data to a data repository, where the data repository includes a neural network or a machine learning algorithm. In some embodiments, the processor may also reconfigure at least a portion of the service distributed to at least one distributed server node.

[0039] In some embodiments, the system may further include an artificial intelligence computing system. In some embodiments, the processor may further reconfigure at least a portion of the service based on performance metrics at at least one distributed server node. In some embodiments, the processor may also request an updated algorithm from the artificial intelligence computing system. In some embodiments, the distributed server node may be a virtual machine system including a controller, a processor, and a memory configured to store service instance usage data. In some embodiments, the distributed service node may transmit the service instance usage data to the data repository.

[0040] The subject matter described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware that includes the structural means disclosed in this specification and their structural equivalents, or combinations thereof. The subject matter described in this specification can be implemented as one or more computer program products, such as one or more computer programs tangibly embodied in an information carrier (e.g., in a machine-readable storage device) or embodied in a propagated signal, and executed or controlled by a data processing apparatus (e.g., a programmable processor, a computer, or multiple computers) to operate on input data and generate output. A computer program (also referred to as a program, software, software application, or code) can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including being deployed as a stand-alone program or as modules, components, subroutines, or other units suitable for use in a computing environment. A computer program does not necessarily correspond to a file. A program can be stored in a part of a file that holds other programs or data, in a single file dedicated to the relevant program, or in multiple coordinated files (e.g., files that store one or more modules, subroutines, or portions of code). A computer program can be deployed to execute on one computer or on multiple computers at one site, or be distributed across multiple sites and interconnected by a communication network.

[0041] The processes and logical flows described in this specification, including the method steps of the subject matter described in this specification, can be performed by one or more programmable processors that execute one or more computer programs to perform the functions of the subject matter described in this specification by operating on input data and generating output. The processes and logical flows can also be performed by dedicated logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit), and the apparatus of the subject matter described in this specification can be implemented as dedicated logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

[0042] Processors suitable for executing computer programs include, by way of example, any one or more processors of general and special purpose microprocessors as well as any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include one or more mass storage devices for storing data or operatively coupled to receive data from or transfer data to one or more mass storage devices, such as magnetic disks, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor storage devices (such as, EPROM, EEPROM, and flash memory devices); magnetic disks (such as internal hard disks or removable disks); magneto-optical disks; and optical disks (such as CD and DVD disks). The processor and the memory may be supplemented by, or incorporated in, special purpose logic circuitry.

[0043] For providing interaction with a user, the subject matter described herein may be implemented on a computer having: a display device for displaying information to the user, such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor; and a keyboard and a pointing device (such as, a mouse or a trackball) by which the user may provide input to the computer. Other types of devices may also be used to provide interaction with the user. For example, feedback provided to the user may be any form of sensory feedback (such as, visual feedback, auditory feedback, or tactile feedback) and input received from the user may be in any form, including acoustic, speech, or tactile input.

[0044] The subject matter described herein may be implemented in a computing system that includes backend components (such as, data servers), middleware components (such as, application servers) or frontend components (such as, client computers having a graphical user interface or a web browser through which a user may interact with an implementation of the subject matter described herein) or any combination of such backend, middleware, and frontend components. The components of the system may be interconnected by any form or medium of digital data communication (such as, a communication network). Examples of communication networks include local area networks (“LANs”) and wide area networks (“WANs”), such as the Internet.

[0045] It should be understood that the disclosed subject matter is not limited in its application to the details of construction and the arrangement of components set forth in the following description or illustrated in the drawings. The disclosed subject matter is capable of other embodiments and of being practiced and carried out in various ways. Further, it should be understood that the phraseology and terminology employed herein is for the purpose of description and should not be regarded as limiting.

[0046] Accordingly, those skilled in the art will understand that the concepts upon which this disclosure is based can be readily utilized as a basis for designing other structures, methods, and systems for carrying out several purposes of the disclosed subject matter. Although the disclosed subject matter has been described and illustrated in the foregoing exemplary embodiments, it should be understood that this disclosure has been made only by way of example and that numerous changes in the details of implementation of the disclosed subject matter can be made without departing from the spirit and scope of the disclosed subject matter.

Claims

1. A method, comprising: Receiving, from a first device of a wireless network, a request to initiate a service instance associated with a service, the service instance being associated with application logic; Identifying a portion of the application logic for distribution to a mobile edge server or an Internet location, wherein the mobile edge server is located in a user plane site that directly serves the first device and is separate from the Internet and the Internet location; Generating, using a machine learning algorithm, an application logic distribution based on the request, the machine learning algorithm parsing the request into a plurality of parameters and processing the plurality of parameters to indicate how to distribute the portion of the application logic between the mobile edge server and the Internet location; Determining, using the application logic distribution generated by the machine learning algorithm, to distribute the portion of the application logic to the mobile edge server; And Distributing the portion of the application logic to a first mobile edge server in the mobile edge server to enable the first mobile edge server to provide the service instance to the first device.

2. The method according to claim 1, further comprising: At a core wireless network, receiving usage data reported from the wireless network via one or more user plane sites; Providing a training data set and a calibration data set based on the usage data; And Training the machine learning algorithm using the training data set by a control plane device of the core wireless network.

3. The method according to claim 2, further comprising training the machine learning algorithm to identify relevant weights of the plurality of parameters and new usage data received from a wireless device of the wireless network, wherein the plurality of parameters include a user identifier, a user device, and the application logic.

4. The method according to claim 1, wherein the machine learning algorithm generates and outputs an application logic distribution that recommends how to distribute user plane functions between a mobile edge server and an Internet location.

5. The method according to claim 1, wherein the machine learning algorithm is selected from the group consisting of K-nearest neighbor, matrix factorization, and deep neural network.

6. The method according to claim 1, further comprising periodically updating the machine learning algorithm based on performance feedback of the mobile edge server for completed services.

7. The method according to claim 1, further comprising: Receiving, from a second device of the wireless network, an additional request to initiate a service instance associated with the application logic; Identifying an additional portion of the application logic for distribution to the mobile edge server or the Internet location; Determining, using the machine learning algorithm, to distribute the additional portion of the application logic to the Internet location; And Distributing the additional portion of the application logic to the Internet location to enable the Internet location to provide the service instance to the second device.

8. The method according to claim 1, further comprising: Identify a predetermined time at which the portion of the application logic should be offloaded from a first mobile edge server to a second mobile edge server based on historical behavior of the first device; and Reassign the portion of the application logic to the second mobile edge server among the mobile edge servers at the predetermined time.

9. The method according to claim 1, further comprising: Extract service instance performance metrics while the service instance is provided to the first device, wherein the application logic distribution generated by the machine learning algorithm includes the service instance performance metrics; and Based on a comparison of the service instance performance metrics with usage data thresholds of the first mobile edge server and the second mobile edge server among the mobile edge servers, reassign the portion of the application logic from the first mobile edge server to the second mobile edge server.

10. The method according to claim 8, wherein the first mobile edge server is located at a first user plane site and the second mobile edge server is located at a second user plane site, wherein the first user plane site is part of a core radio network that is separated from the Internet and the Internet location.

11. A system, comprising: A non-transitory memory; and One or more hardware processors configured to read instructions from the non-transitory memory, wherein execution of the instructions causes the one or more hardware processors to perform operations, the operations including: Receive a request from a first device of a wireless network to initiate a service instance associated with a service, the service instance being associated with application logic; Identify a portion of the application logic for distribution to a mobile edge computing (MEC) server or an Internet location, wherein the MEC server is located in a user plane site that directly serves the first device and is separated from the Internet and the Internet location; Generate an application logic distribution using a machine learning algorithm that parses the request into a plurality of parameters and processes the plurality of parameters to indicate how to distribute the portion of the application logic between the MEC server and the Internet location; Determine to distribute the portion of the application logic to the MEC server using the application logic distribution generated by the machine learning algorithm; and Distribute the portion of the application logic to a first MEC server among the mobile edge servers to cause the first MEC server to provide the service instance to the first device.

12. The system according to claim 11, further comprising additional instructions that cause the one or more hardware processors to perform operations, the operations including: At a core radio network, receive usage data reported from the wireless network via one or more user plane sites; Provide a training data set and a calibration data set based on the usage data; and Train the machine learning algorithm using the training data set via a control plane device of the core radio network.

13. The system according to claim 12, wherein the application logic distribution includes connecting new parameters not previously identified in the training dataset.

14. The system according to claim 12, wherein the training of the machine learning algorithm is performed according to an iterative process that utilizes a subset of the training dataset.

15. The system according to claim 11, wherein the machine learning algorithm is selected from the group consisting of K-nearest neighbor, matrix factorization, and deep neural network.

16. The system according to claim 11, further comprising periodically updating the machine learning algorithm based on performance feedback of the completed service by the MEC server.

17. A non-transitory computer-readable medium storing instructions that, when executed by one or more hardware processors, cause the one or more hardware processors to perform operations including: Receiving, from a first device of a wireless network, a request to initiate a service instance associated with a service, the service instance being associated with application logic; Identifying a portion of the application logic to distribute to a mobile edge server or an Internet location, wherein the mobile edge server is located in a user plane site that directly serves the first device and is separate from the Internet and the Internet location; Generating, using a machine learning algorithm, an application logic distribution based on the request, the machine learning algorithm parsing the request into a plurality of parameters and processing the plurality of parameters to indicate how to distribute the portion of the application logic between the mobile edge server and the Internet location; Determining, using the application logic distribution generated by the machine learning algorithm, to distribute the portion of the application logic to the mobile edge server; And Distributing the portion of the application logic to a first mobile edge server in the mobile edge server to cause the first mobile edge server to provide the service instance to the first device.

18. The non-transitory computer-readable medium according to claim 17, further comprising additional instructions that, when executed by one or more hardware processors, cause the one or more hardware processors to perform operations including: Receiving, from a second device of the wireless network, an additional request to initiate a service instance associated with the application logic; Identifying an additional portion of the application logic to distribute to the mobile edge server or the Internet location; Determining, using the machine learning algorithm, to distribute the additional portion of the application logic to the Internet location; And Distributing the additional portion of the application logic to the Internet location to cause the Internet location to provide the service instance to the second device.

19. The non-transitory computer-readable medium according to claim 17, further comprising additional instructions that, when executed by one or more hardware processors, cause the one or more hardware processors to perform operations including: Identify a predetermined time at which the portion of the application logic should be offloaded from the first mobile edge server to the second mobile edge server based on the historical behavior of the first device; And Reassign the portion of the application logic to the second mobile edge server among the mobile edge servers at the predetermined time.

20. The non-transitory computer-readable medium according to claim 17, further comprising additional instructions that, when executed by one or more hardware processors, cause the one or more hardware processors to perform operations, the operations including: Extract service instance performance metrics while the service instance is being provided to the first device, wherein the application logic distribution generated by the machine learning algorithm includes the service instance performance metrics; And Based on a comparison of the service instance performance metrics with usage data thresholds of the first mobile edge server and the second mobile edge server among the mobile edge servers, reassign the portion of the application logic from the first mobile edge server to the second mobile edge server.