System and method for distributing application logic in a digital network
By dynamically distributing application logic and service instances in a mobile edge computing environment, the cost and time-consuming problem of determining network operation distribution paths is solved, and the effect of optimized network resource assignment and reduced operation costs is achieved.
Patent Information
- Application Number
- CN202080035717.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-05-22
- Filing Date
- 2020-05-20
- Publication Date
- 2025-04-04
- Estimated Expiration
- 2040-05-20
AI Technical Summary
In a mobile edge computing environment, determining which network operations should be distributed to the MEC node is an expensive and time-consuming process that requires evaluating a variety of factors, including the use of data and user profiles.
By dynamically distributing application logic between the user equipment and the MEC server, receiving requests using the hardware processor, determining relevant parameters, identifying part of the application logic, and distributing it to the appropriate MEC server. At the same time, the service instance performance metrics are extracted and the application logic part is reassigned to another MEC server based on the comparison of these metrics with the usage data threshold.
It realizes automated intelligent computing, dynamically offload users or apply them to network edge nodes, optimizes network resource assignment, maximizes the advantages of MEC servers, and minimizes operating costs.
Smart Images

Figure CN113826080B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] 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
[0003] The present disclosure relates generally to digital networks, and more particularly to the distribution of application logic in digital networks. Background Art
[0004] In current iterations and next generation digital mobile networks, network functions are distributed between the control plane and user plane separation ("CUPS") architecture, so that scaling of network resources can occur at different rates in the control plane and user plane, respectively. Given the growing usage demands of consumers, operators can scale user plane functions without investing in improving control plane hardware, thereby reducing operating costs.
[0005] Mobile edge computing (“MEC”) in digital networks allows network operators to distribute computing functions that are traditionally done 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 the 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.
[0006] Determining which network operations to distribute to MEC nodes can be an expensive and time-consuming process, requiring operators to evaluate numerous factors of usage data and user profiles. Therefore, there is a need to develop improved techniques and systems for selecting distributed functions to be sent to MEC nodes. This background is intended to provide context for a given system and method and is not intended to limit the scope or nature of any prior art disclosed herein. Summary of the invention
[0007] In a first aspect, a method for distributing application logic is provided. The method includes: receiving, by one or more hardware processors, a request for initiating a service instance associated with a service from a first user device, the service instance being associated with the application logic; determining, by one or more hardware processors, one or more parameters associated with the request; identifying, by one or more hardware processors, a portion of the application logic based on the one or more parameters, the portion of the application logic to be distributed to a first mobile edge server; distributing, by one or more hardware processors, the portion of the application logic to the first mobile edge server so that the first mobile edge server provides the service instance to the first user device; extracting a service instance performance indicator while the service instance is being provided to the first user device; and reassigning a portion of the application logic from the first mobile edge server to a second mobile edge server based on a comparison of the service instance performance indicator with a usage data threshold.
[0008] In a second aspect, a system for distributing application logic is provided. The system includes: a non-transitory memory; and one or more hardware processors configured to read instructions from the non-transitory memory, wherein executing the instructions causes the one or more hardware processors to perform operations, the operations including: receiving a request from a user equipment UE for initiating a service instance associated with a service, the service instance being associated with the application logic; parsing the request to determine one or more parameters associated with the request; identifying a portion of the application logic based on the one or more parameters, the portion of the application logic to be distributed to a first mobile edge computing MEC server; distributing a portion of the application logic to the first mobile edge computing MEC server so that the first mobile edge computing MEC server provides the service instance to the user equipment; based on the historical behavior of the user equipment, identifying a predetermined time when a portion of the application logic should be unloaded from the first mobile edge computing MEC server to a second MEC server; and at the predetermined time, reassigning a portion of the application logic from the first mobile edge computing MEC server to the second MEC server. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Figure 1 is a simplified diagram of a prior art network architecture employing separated control plane and user plane functions at distributed locations using mobile edge computing.
[0010] Figure 2 is a simplified diagram of a system for intelligently and dynamically distributing application functions to edge computing modes according to one embodiment of the present disclosure.
[0011] Figure 3 is a simplified flowchart of a process for training an application recommendation module according to one embodiment of the present disclosure.
[0012] Figure 4is a simplified flowchart of a process of dynamically deploying a network service instance to a mobile edge computing server according to one embodiment of the present disclosure.
[0013] Various objects, features, and advantages of the disclosed subject matter may be more fully understood by reference to the following detailed description of the disclosed subject matter when considered in conjunction with the following drawings, wherein like reference numerals identify like elements. DETAILED DESCRIPTION
[0014] Thanks 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 functionality. 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 therefore facilitates 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 an increase in the number of user equipment ("UE"). An additional benefit of the CUPS architecture is that operators can "push" user plane functions to the edge of the network (also known as "offloading") and reduce latency in network traffic by locally splitting network functions. Operators achieve this by moving operational functions closer to the UE that relies on the network data path, so that data does not need to be aggregated at a centralized core network server before entering the Internet.
[0015] Proposals to utilize mobile edge computing (“MEC”) have recently begun to find effective ways to improve network functionality. MEC enables specific applications or programming logic to be pushed to end users closer to the edge of the network to reduce latency, improve user experience, and reduce the costs incurred by transporting data traffic to core network routers. Within the user plane, MEC allows certain logic / applications to execute outside 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 splitting at the edge of the network, allowing roaming mobile users to connect to alternative service providers without the need to drag the user's data traffic back to their home core network.
[0016] MEC is made possible by providing separate distributed servers (e.g., MEC servers) at strategic physical locations to efficiently serve users and reduce costs for operators. This can result in improved application performance and faster data speeds, as well as efficient deployment of existing network infrastructure without the need to make expensive investments on behalf of operators for comprehensive end-to-end network improvements. Typically, because space and power in local exchange offices are at a premium, MEC servers have much lower computing power than core network routers and servers. Therefore, only a limited number of users or application functions can be moved to the network edge of the MEC server. Network operators currently use iterative methods to determine this distribution to network edge nodes, such as caching application content or operations that require manual reconfiguration, which is time-consuming, expensive, and data-intensive, while also prone to human error.
[0017] Therefore, 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 adopted MEC servers and minimize operating costs at the same time. There is currently no intelligent system that focuses on user-centric needs and synchronizes these needs to improve the functionality (functionality / function) distribution between the user plane and the control plane. Without this intelligent system, it is difficult to ensure that costs, resource assignments, and user experience are optimized.
[0018] Figure 1 is a simplified diagram of a prior art network architecture employing separated control plane and user plane functions at distributed locations using mobile edge computing. Figure 1 The Internet 100, the core network 102, the user plane sites 104, 106, and a plurality of UEs 108-114 are shown. Using the 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 a MEC server 124. The user plane devices 118, 122 are capable of performing user plane functions. The MEC servers 120, 124 perform certain computations or data processing that would otherwise be done at the Internet 100. Because the computation is done closer to the user, the MEC servers 120, 124 allow for faster data processing.
[0019] For example, Figure 1As shown, UEs 108 and 110 are served at user plane site 104 such that all user plane functions associated with UEs 108, 110 are completed by user plane device 118. As defined by the rules set by the operator at core network 102, MEC server 120 can complete data processing of packets received from UEs 108, 110. Data packets received by user plane site 104 that are not directed to MEC server 120 by user plane device 118 will pass through core network 102 for processing at Internet 100. Similarly, UEs 112, 114 are served at user plane site 104 such that all user plane functions associated with UEs 108, 110 are completed by user plane device 118. As defined by the rules set by the operator at core network 102, MEC server 120 can complete data processing of packets received from UEs 108, 110. Data packets received by user plane site 104 that are not directed to MEC server 120 by user plane device 118 will pass through core network 102 for processing at Internet 100. Figure 1 As shown, it is served by user plane site 106.
[0020] The control plane device 116 may assign UEs 108-114 to user plane sites 104, 106 and whether specific functions or application logic are 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, an operator's decision to only serve certain types of UEs through certain MEC servers, and physical proximity limitations on RAN or backhaul network equipment.
[0021] MEC servers 104-106 may include several server designs, including Small Cell Cloud ("SCC"), Mobile Micro Cloud ("MCC"), Fast Mobile Personal Cloud ("MobiScud"), Follow me Cloud ("FMC"), and Concept of Converged Cloud and Cellular Systems ("CONCERT"). UEs 108-114 may include mobile phones, laptops, desktop computers, tablets, personal data assistants, smart watches, electronic devices, or other network-operated devices.
[0022] Figure 2 is a simplified diagram of a system for intelligently and dynamically distributing application functions to edge computing modes according to some embodiments of the present disclosure. Figure 2A network system 200 including the Internet 100, a core network 202, and a user plane site 204 is shown. For illustrative purposes, only a single user plane site 204 is shown, however, multiple user plane sites may be employed in embodiments of end-to-end networks 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 can communicate with the user plane site 204 via the user plane device 218 by utilizing the CUPS architecture protocol described as part of the Packet Forwarding Control Protocol ("PFCP").
[0023] The user plane site 204 includes a user plane device 218 and a MEC server 220, which 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) processing, billing, 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 the 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 the corresponding controller 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 so that those same operations can be called 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 device. 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 is distributed between the user plane site 204 and the Internet 100. In some embodiments, the MEC server 220 may also be used in an enterprise customer setting so that all traffic belonging to the enterprise will obey the application logic assigned to the enterprise on the MEC server 220, such as security functions, data backup, or other enterprise-specific operations.
[0024] In some embodiments, the user plane device 218 can 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 can direct network traffic received from the UE to the Internet 100 as part of a local split process. In some embodiments, user traffic destined to be relatively close to the originating UE may only need to be processed using a user plane site (such as user plane site 204), so that the data traffic does not have to be processed at the Internet 100. In such a case, the user traffic can be distributed for processing only at a local user plane site or a local router, without dragging the data traffic to the Internet 100. Local splitting can allow operators to limit bandwidth requirements, data processing requirements, and delays in network processing, among other things.
[0025] Within the control plane device 216, in addition to the PFCP identified devices, the data storage device 206, the processor 208, and the control plane manager ("CP manager") 210 also perform control plane operations for the end-to-end network. In some embodiments, the data storage device 206 is a memory containing information related to computing and application operations (also referred to as "usage parameters" herein), including application functions performed for a specific user, usage data divided by volume, application usage frequency, application function frequency used, quality of service (QoS) items, historical network delays associated with applications, user membership profiles, user data, application data, network traffic statistics, KPIs, or other forms of user-specific data. The data storage device 206 may also contain logs of user plane device functions other than application functions, such as the total data throughput between the core network 202 and the Internet 100, the user plane site 204 to the core network 202, and the user plane device 218 to the MEC server 220. The data storage device 206 can store relevant data in containers or sub-containers that enable operators to more effectively use the data stored in the data storage device 206 for analysis. In some embodiments, data storage 206 may include a neural network to determine how to organize usage data (eg, assign weights or a hierarchy to stored usage data).
[0026] The processor 208 includes an application recommendation module 228. The application recommendation module 228 processes the data received from the data storage device 206 to identify the best application function to be executed at either the Internet 100 or the MEC server 220. The application recommendation module 228 may include a simulation system (not shown) to train the machine learning algorithm to be deployed within the application recommendation module 228. Figure 3 and Figure 4The process of training and employing a machine learning algorithm by the application recommendation module 228 to generate an optimized application function distribution between the Internet 100 and the MEC server 220 is further described. The CP manager 210 determines whether to assign a particular UE to the user plane site 204 for service, or whether the particular UE will be better served at other user plane sites that are part of the end-to-end network. In some embodiments, the CP manager communicates with the user plane site 204, and specifically with the user plane device 218, after receiving the output of the application recommendation module 228. 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 equipment to instantiate the service at the MEC server 220 that is 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, and the VMs may be physically close to the user or not. When determining whether to provide services to a UE via a physically or computationally proximate MEC server 220, the CP manager 210 may consider parameters including, for example, data traffic throughput of the user plane site 204, device type, type of application logic to be executed, time of day, user membership identifier (e.g., premium user level), quality of service (QoS), computing power at the processor 224, or latency requirements of the requested application, etc.
[0027] Figure 3300 is a simplified flow chart of a process 300 of training an algorithm within the application recommendation module 228 according to one embodiment of the present disclosure. For example, the 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 decomposition, deep neural networks (e.g., convolutional neural networks), etc. At step 302, the control plane device 216 receives usage data reported from UEs in the network and stored in the data storage device 206. At step 304, all data received from the UE is classified / parsed into usage parameters. Usage parameters may be defined by the operator (e.g., by subject matter experts (“SMEs”)), such as application type; network data throughput; data usage for a particular application; frequency of use of an application; a user's membership level (including billing terms); QoS terms; latency requirements; latency requirements associated with an application; MEC function capacity; MEC function tailoring; computational requirements of application functions; geographic location; compatibility of co-executing 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; day of the year; current system utilization; and the 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.
[0028] In some embodiments, as described below with respect to Figure 4 As described in detail, the usage parameters can be updated by output from the application recommendation module 228, so that the data storage device 206 contains parameter connections within the data that were 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 the data storage device 206. In some embodiments, the training data set can be a majority of the data within a set time period within the data storage device 206 compared to the calibration data set. The calibration data set and the training data set can be taken from the same data source, but are divided into subsets of the same data set to provide accurate comparisons between data points for training purposes. For example, if the data set in the data storage device 206 represents data acquired within a 48-hour period, the training data set may include all data acquired within the first thirty-six hours of the time period, where the calibration data set may only include data acquired within the last twelve hours of the time period. Having consistent training and calibration data sets allows operators to ensure accurate performance of the application recommendation module 228.
[0029] 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 key parameters and associated weights within the algorithm of the application recommendation module 228. In some embodiments, the SME can use 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 continuing with a larger portion of the training data set for training purposes. For example, if the training data set represents data collected during the first thirty-six hours of a given time period, the SME can begin to train the algorithm using a subset of data received every thirty minutes to identify discrete variables that are part of the subset. Once the algorithm is properly calibrated to consider 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 unexplained variables that need to be 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 consider previously unknown variables. As part of this process, the SME may also provide a nonce variable in the algorithm so that the application recommendation module 228 can consider new variables as they are encountered without interaction from the SME or other operators. In some embodiments, the processor 208 is further configured to identify 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.
[0030] At step 310, as described above in step 308, the algorithm is applied to the calibration data set in the simulation environment to confirm correct training. Using the calibration data set, the operator has the ability to know the value of each parameter identified in the data set, but only a subset of these parameters will be introduced into the algorithm. Based on the operation and output of the algorithm, the operator can compare the calculated output with the calibration data set to determine whether the algorithm correctly identifies the parameters of system operation and their expected values. In some embodiments, as described above, the calibration data set can be used in a subset of the process similar to that in which the training data set can be used. 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 a "real-time system").
[0031] Figure 4 is a simplified flowchart of a process for dynamically deploying a network service instance to a mobile edge computing server according to one embodiment of the present disclosure. Figure 2, and executed by the network elements shown. At step 402, the CP manager 210 receives a request from a UE to instantiate a service. Examples of service requests may include operating a specific application, such as Netflix, Facebook, or a virtual reality application, at a UE, etc. After receiving the request, at step 404, the CP manager 210, in conjunction with the user plane device 218, determines service attributes and parameters associated with the request. This can be accomplished by parsing the service instance request into parameters that identify the user, user device, and application logic, etc. In some embodiments, the variables identified in step 404 may be the same as those described above in Figure 3 The service attributes may be the same variables as those described in , used to parse data stored in the data store 206. In other embodiments, the service attributes may be only a subset of the variables identified for the organization in the data store 206.
[0032] 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 may 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 function required to perform 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 may be partially distributed (e.g., partially offloaded) so that only the requested portion of the service is executed at the MEC server 220 via the user plane function. For partially offloaded services, the portions of the application logic that are not executed at the MEC server 220 will be routed from the user plane site 204 to the core network 202 through the user plane device 218. The core network 202 routes the requested service packet to the Internet 100 for processing. In order to determine whether to offload and which parts of the service instance to offload, the CP manager 210 may adopt optimization recommendations from the application recommendation module 228. The output from the application recommendation module 228 may be stored in a 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 so that the responsibility for network resource allocation is distributed throughout the network. In some embodiments, the user plane device 218 may also include logic to identify partially or fully unloaded application logic that is 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, that is, 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 these locations, respectively.
[0033] After or during the service instance, at step 408, the control plane device 216 (e.g., with the CP manager 210) extracts service instance performance indicators related to the service instance and stores them as usage data. For 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 storage device 206) for long-term storage. The service instance performance indicators constituting the usage data received at the control plane device 216 or MEC server 220 may include application type; network data throughput; data usage for a particular application; application usage frequency; user membership level (including billing terms); QoS terms; latency requirements; latency requirements associated with an application; MEC function capacity; MEC function tailoring; computing requirements of application functions; geographic location; compatibility of co-executing applications; time of day; energy usage of MEC servers; capacity of MEC server processors or memory; access point names (APNs); destination URLs of applications: historical usage patterns; historical UE behavior; day of the week; date of the year; current system utilization; and number of nearby UEs that need the same application; and other parameters that may be associated with or identified by the operator or the machine learning algorithm itself, etc. In some embodiments, the CP manager 210 may evaluate the service instance performance indicators associated with the service instance in real time.
[0034] At step 410, the CP manager 210 evaluates the service instance performance indicator compared to the usage data threshold 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 indicator to the usage data threshold. In other embodiments, the CP manager 210 may reassign the UE service instance to a different user plane site (not shown) included in the network system 200.
[0035] For example, if a UE is traveling across geographic regions (e.g., traveling from the suburbs to the city for work) and is streaming data while traveling, the associated user plane site at which the UE begins its service instance may be different from the user plane site that is required to process that data at the UE ending 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 point in time 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 geographic locations during consistent time periods. In this way, the CP manager 210 can anticipate the need for transfer of UE service instances and predetermine the moments when the UE service instances will be offloaded between different user plane sites in the network.
[0036] As another example, the CP manager 210 may identify membership criteria (e.g., pricing tiers) for quality of service (“QoS”) associated with individual UEs. When multiple UEs associated with a single user plane site are requesting services, some UEs may have their specific service instance requests routed to a MEC server within the user plane site due to their premium QoS membership. In this case, a first UE may have a first level premium QoS membership, while a second UE may have a second level QoS membership. If both a first UE and a 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 may be routed to the Internet 100 for processing. Alternatively, the CP manager 210 may reassign the second UE to a second user plane site for processing at the MEC server associated with the second user plane site. Reassignment of different user plane sites may also be performed due to overall data traffic, application type, or other service instance performance indicators as identified above. As described above, the reassignment of service instances may be part of the data stored in the data store 206 and the memory 226 .
[0037] In some embodiments, the control plane device (e.g., CP manager 210) can predict the service instances of the UE and effectively assign them to the user plane site. This reassignment may, for example, be due to a UE with a higher level QoS membership and require a larger network capacity. In other embodiments, the UE may request the same or similar application services, so that the control plane device anticipates assigning the application logic to a single user plane site through the application recommendation module. In this example, the operator may want the user plane site to contain application logic for avoiding duplicate network resource deployment.
[0038] At step 412, the CP manager 210 requests an updated algorithm for the real-time system based on the performance of the completed service instance. 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 demand is low (e.g., in the middle of the night). 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 foreseeable network usage and predicted service instance requirements, thereby effectively deploying application logic between MEC servers and user plane sites.
[0039] 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, which, 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, wherein 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.
[0040] 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 a performance indicator 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 a data repository.
[0041] The subject matter described herein may be implemented in a digital electronic circuit, or in a computer software, firmware or hardware including a structural device disclosed in this specification and its structural equivalent or a combination thereof. The subject matter described herein may be implemented as one or more computer program products, such as one or more computer programs that are tangibly embodied in an information carrier (e.g., in a machine-readable storage device) or embodied in a propagation signal, executed by a data processing device (e.g., a programmable processor, a computer or multiple computers) or control the operation of a data processing device. Computer programs (also referred to as programs, software, software applications or codes) may be written in any form of programming language, including compiled or interpreted languages, and may be deployed in any form, including being deployed as a standalone program or a module, component, subroutine or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file. A program may be stored in a portion of a file that stores other programs or data, in a single file dedicated to a related program, or in multiple coordination files (e.g., files storing one or more modules, subroutines or code portions). A computer program may be deployed to be executed on one computer or on multiple computers at one site, or distributed across multiple sites and interconnected by a communication network.
[0042] The processes and logic flows described in this specification (including the method steps of the subject matter described herein) can be performed by one or more programmable processors, which execute one or more computer programs to perform the functions of the subject matter described herein by operating input data and generating output. The processes and logic flows can also be performed by special purpose logic circuits (e.g., FPGAs (field programmable gate arrays) or ASICs (application-specific integrated circuits), and the apparatus of the subject matter described herein can be implemented as special purpose logic circuits, such as FPGAs (field programmable gate arrays) or ASICs (application-specific integrated circuits).
[0043] Processors suitable for executing computer programs include, for example, general and special purpose microprocessors and any one or more processors of any kind of digital computer. Typically, the processor will receive instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices for storing data or be operably coupled to receive data from one or more mass storage devices 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, for example, semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices); magnetic disks (e.g., internal hard disks or removable disks); magneto-optical disks; and optical disks (e.g., CD and DVD disks). The processor and memory may be supplemented by or incorporated into a dedicated logic circuit.
[0044] To provide interaction with a user, the subject matter described herein can be implemented on a computer having: a display device for displaying information to a user, such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor; and a keyboard and pointing device (e.g., a mouse or trackball) through which a user can provide input to the computer. Other types of devices can also be used to provide interaction with a user. For example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback) and the input from the user can be received in any form, including acoustic, voice, or tactile input.
[0045] The subject matter described herein can be implemented in a computing system that includes a back-end component (e.g., a data server), a middleware component (e.g., an application server), or a front-end component (e.g., a client computer with a graphical user interface or a web browser by which a user can interact with an implementation of the subject matter described herein), or any combination of such back-end, middleware, and front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include local area networks ("LANs") and wide area networks ("WANs"), such as the Internet.
[0046] It should be understood that the disclosed subject matter is not limited in its application to the construction details and component arrangements set forth in the following description or shown in the accompanying drawings. The disclosed subject matter is capable of other embodiments and can be practiced and executed in various ways. In addition, it should be understood that the wording and terminology employed herein are for descriptive purposes and should not be considered limiting.
[0047] Therefore, those skilled in the art will appreciate that the concepts upon which the present disclosure is based can be readily used as a basis for designing other structures, methods, and systems for carrying out the 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 the present disclosure is made by way of example only, and that many changes may be made to the implementation details of the disclosed subject matter without departing from the spirit and scope of the disclosed subject matter.
Claims
1. A method for distributing application logic, comprising: receiving, by one or more hardware processors, from a first user device, a request to initiate a service instance associated with a service, the service instance being associated with application logic; determining, by the one or more hardware processors, one or more parameters associated with the request; identifying, by the one or more hardware processors, a portion of the application logic based on the one or more parameters, the portion of the application logic to be distributed to a first mobile edge server; distributing, by the one or more hardware processors, the portion of the application logic to the first mobile edge server so that the first mobile edge server provides the service instance to the first user device; extracting a service instance performance indicator while the service instance is provided to the first user equipment; as well as Based on a comparison of the service instance performance indicator to a usage data threshold, the portion of the application logic is reassigned from the first mobile edge server to a second mobile edge server. 2 . The method of claim 1 , 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. 3 . The method of claim 2 , wherein at least a portion of the application logic is reassigned at a predetermined time based on a travel pattern associated with the first user device. 4 . The method of claim 1 , wherein at least a portion of the application logic is reassigned based on membership criteria associated with the first user device.
5. The method according to claim 1, further comprising: receiving, by the one or more hardware processors, from a second device, a second request to initiate a second service instance associated with the service; as well as Wherein at least a portion of the application logic is reassigned based on the second request.
6. The method of claim 1 , wherein the one or more parameters correspond to at least one of: the first user device, a user of the first user device, a geographic location of the first user device, a type of the service instance, a network data throughput, an amount of data used by the service instance, a frequency of use of the service instance, a membership level of the user, a quality of service QoS, a delay associated with the service, a capacity of the first mobile edge server, a geographic location of the first mobile edge server, a compatibility of service instances co-executed at the first mobile edge server, an access point name APN, a destination URL of the application, a historical usage pattern associated with the first user device, a day of the week, a date of the year, a current system utilization, or a number of second devices requesting the same application in the vicinity of the first user device.
7. The method of claim 1, wherein distributing at least a portion of the application logic to the first mobile edge server causes the first mobile edge server to route at least a second portion of the application logic for processing via the Internet.
8. The method of claim 1, wherein at least a portion of the application logic is identified using at least one algorithm selected from the group consisting of K-nearest neighbor, matrix factorization, and deep neural network.
9. The method of claim 8, further comprising periodically updating, by the one or more hardware processors, the at least one algorithm.
10. The method of claim 9, wherein the at least one algorithm is periodically updated when network resource demand is low.
11. The method according to claim 1, wherein the service instance performance indicator comprises at least one of the following: application type, membership level of the user, compatibility of jointly executed applications, and historical behavior of the first user device.
12. A system for distributing application logic, comprising: non-transitory memory; as well as One or more hardware processors configured to read instructions from the non-transitory memory, wherein executing the instructions causes the one or more hardware processors to perform operations comprising: receiving, from a user equipment UE, a request for initiating a service instance associated with a service, the service instance being associated with the application logic; parsing the request to determine one or more parameters associated with the request; identifying a portion of the application logic based on the one or more parameters, the portion of the application logic to be distributed to a first mobile edge computing MEC server; Distributing the portion of the application logic to the first mobile edge computing MEC server so that the first mobile edge computing MEC server provides the service instance to the user equipment; Based on historical behavior of the user device, identifying a predetermined time when the portion of the application logic should be offloaded from the first mobile edge computing MEC server to a second MEC server; and At the predetermined time, the portion of the application logic is reassigned from the first mobile edge computing MEC server to the second MEC server.
13. The system of claim 12, wherein the first mobile edge computing (MEC) server is located at a first user plane site and the second MEC server is located at a second user plane site.
14. The system of claim 13, wherein at least a portion of the application logic is reassigned at a predetermined time based on a travel mode associated with the UE.
15. The system of claim 12, wherein distributing at least a portion of the application logic to the first mobile edge computing MEC server causes the first mobile edge computing MEC server to route at least a second portion of the application logic for processing via the Internet.
Citation Information
Patent Citations
Service migration across cluster boundaries
CN105052111A
Traffic path change detection mechanism of mobile edge calculation
CN108574728A