Select application instance
The system addresses the challenge of selecting optimal server instances by using NWDAF and APMF to collect performance data, enabling SDMF to choose the best instance for UEs, thereby enhancing communication efficiency.
Patent Information
- Application Number
- KR1020227043539
- Authority / Receiving Office
- KR · KR
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2020-05-15
- Publication Date
- 2026-11-03
- Estimated Expiration
- 2040-05-15
AI Technical Summary
Existing communication systems struggle to efficiently select the optimal server application instance for UEs based on their current location and performance data, leading to suboptimal communication performance due to factors like latency and resource utilization.
A system utilizing NWDAF and APMF to collect performance data from multiple server application instances, with SDMF selecting the best instance based on analytics to ensure optimal performance.
This approach optimizes average communication performance by selecting the best server instance statistically, considering historical data and filtering out short-term network fluctuations, thus improving overall communication efficiency.
Smart Images

Figure R1020227043539_ABST
Abstract
Description
Technology Field
[0001] The gist of the disclosed herein is generally about wireless communications and, more specifically, about selecting the optimal server instance using UE location and performance data analytics. Background Technology
[0002] The following abbreviations and acronyms are defined here, and at least some of them are mentioned in the following description.
[0003] "3GPP"(Third Generation Partnership Project), "5GC"((Fifth-Generation Core), "AMF"(Access and Mobility Management Function), "ARF")Address Resolution Function), "API"(Application Programing Interface), "APMF"(Application Performance Measurement Function), "DNS"(Domain Name System), "DL"(Downlink), "EDN"(Edge Data Network), "eNB"(Evolved Node-B), "EPC"(Evolved Packet Core), "IP"(Internet Protocol), "LTE"(Long Term Evolution), "LTE-A"(LTE Advanced), "MCS"(Modulation Coding Scheme), "MME"(Mobility Management Entity), "NF"(Network Function), "NEF"(Network Exposure Function), "NRF"(Network Repository Function), "NSSAI"(Network Slice Selection Assistance Information), "NWDAF"(Network Data Analytics Function), "gNB"(Next Generation(예컨대, 5G) Node-B), "NG-RAN"(Next Generation Radio Access Network) 또는 "5G-RAN"), "NR"(New Radio), "PCC"(Policy and Charging Control), "PCF"(Policy Control Function), "PDN"(Packet Data Network), "PDU"(Packet Data Unit), "PGW"(PDN Gateway),“PLMN” (Public Land Mobile Network), “RAN” (Radio Access Network), “RAT” (Radio Access Technology), “SDMF” (Server Application Discovery Management Function), “SGW” (Serving Gateway), “SMF” (Session Management Function), “S-NSSAI” (Single Network Slice Selection Assistance Information), “TCP” (Transmission Control Protocol), “UDM” (Unified Data Management), “UE” (User Entity / Equipment (Mobile Terminal)), “UPF” (User Plane Function), “UL” (Uplink), “UMTS” (Universal Mobile Telecommunications System), and “WiMAX” (Worldwide Interoperability for Microwave Access).,
[0004] In certain embodiments, communication systems, edge data networks may be deployed to improve performance. When a UE is located in an edge data network service area, it receives the address of an appropriate edge-instance server application. Otherwise (i.e., when the UE roams outside the edge data network service area), it receives the address of a default (e.g., cloud-based) instance of the server application.
[0005] Methods for selecting a server application instance are disclosed. Devices and systems also perform the functions of the methods.
[0006] A method for selecting, for example, a server application instance of an NWDAF comprises receiving a request from a first network function unit (e.g., SDMF) to provide performance analytics for a first application, wherein the request includes a current location and a requested time. Additionally, the first application includes a group of application instances. The method comprises generating performance analytics for the first application using a first performance data collection, wherein the performance analytics represents the best application instance in the group of application instances for the current location and a requested time. The method comprises reporting the performance analytics to the first network function unit.
[0007] A method for selecting, for example, a server application instance of SDMF comprises receiving a first request from a remote unit for discovering a server application instance for a first application, wherein the remote unit corresponds to a first location. The method comprises determining that the first request is serviceable by a plurality of server application instances at the first location. The method comprises identifying an analytics unit (e.g., NWDAF) that provides performance data analytics for the first application. The method comprises sending a second request to the analytics unit for retrieving performance data analytics for the first application at the first location and for a requested time. The method comprises selecting an optimal server application instance based on the performance data analytics. The method comprises sending a response to the first request—the response including the selected server application instance. Brief explanation of the drawing
[0008] A more specific description of the embodiments briefly described above is provided by reference to specific embodiments illustrated in the accompanying drawings. It is understood that these drawings depict only some embodiments and are therefore not to be construed as limiting the scope. Embodiments will be described and explained with additional specificity and detail using the accompanying drawings, among which: FIG. 1 is a block diagram illustrating one embodiment of a wireless communication system for selecting a server application instance; FIG. 2 is a network diagram illustrating one embodiment of a network deployment for selecting a server application instance; FIG. 3 is a drawing illustrating one embodiment of a collection of performance data; FIG. 4 is a drawing illustrating one embodiment for collecting performance data; FIG. 5 is a diagram illustrating one embodiment for identifying an optimal server instance; FIG. 6a is a signal flow diagram illustrating one embodiment for identifying an optimal server instance; FIG. 6b is a continuation of the procedure depicted in FIG. 6a; FIG. 7a is a signal flow diagram illustrating one embodiment for collecting performance data; FIG. 7b is a continuation of the procedure depicted in FIG. 7a; FIG. 8 is a block diagram illustrating one embodiment of a network equipment device for selecting a server application instance; FIG. 9 is a flowchart illustrating one embodiment of a first method for selecting a server application instance; FIG. 10 is a flowchart illustrating one embodiment of a second method for selecting a server application instance. Specific details for implementing the invention
[0009] As will be understood by those skilled in the art, aspects of the embodiments may be implemented as systems, devices, methods, or program products. Accordingly, the embodiments may take the form of entirely hardware embodiments, entirely software embodiments (including firmware, resident software, microcode, etc.), or embodiments combining software and hardware aspects.
[0010] For example, the disclosed embodiments may be implemented as hardware circuits comprising custom "VLSI (very-large-scale integration) circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. The disclosed embodiments may also be implemented as programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices, etc. As another example, the disclosed embodiments may include one or more physical or logical blocks of executable code that can be organized, for example, as objects, procedures, or functional units.
[0011] Furthermore, embodiments may take the form of a program product implemented in one or more computer-readable storage devices storing machine-readable code, computer-readable code, and / or program code, hereinafter referred to as code. The storage devices may be tangible, non-transient, and / or non-transmitting. The storage devices may not contain signals. In a particular embodiment, the storage devices contain only signals for accessing the code.
[0012] Any combination of one or more computer-readable media may be used. A computer-readable medium may be a computer-readable storage medium. A computer-readable storage medium may be a storage device storing code. A storage device may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, holographic, micromechanical, or semiconductor system, device, or any suitable combination of the foregoing.
[0013] More specific examples of storage devices (a non-comprehensive list) will include: electrical connections having one or more wires, portable computer disks, hard disks, random access memory (“RAM”), read-only memory (“ROM”), erasable programmable read-only memory (“EPROM”) or flash memory, portable compact disc read-only memory (“CD-ROM”), optical storage devices, magnetic storage devices, or any suitable combination of the foregoings. In the context of this document, a computer-readable storage medium may be any type of medium capable of containing or storing a program for use by a command execution system, device, or device, or a program related thereto.
[0014] References throughout this specification using "one embodiment," "one embodiment," or similar linguistic expressions mean that the specific features, structures, or characteristics described in relation to the embodiment are included in at least one embodiment. Accordingly, the appearance of phrases such as "in one embodiment," "in one embodiment," and similar linguistic expressions throughout this specification may all refer to the same embodiment, though not necessarily, and may mean "one or more embodiments other than all embodiments" unless explicitly specified otherwise. The terms "comprising," "comprising," "having," and variations thereof mean "including but not limited to" unless explicitly specified otherwise. An enumerated listing of items does not mean that any or all of the items are mutually exclusive unless explicitly specified otherwise. Terms corresponding to the use of the articles "a," "an," and "the" also refer to "one or more" unless otherwise explicitly specified.
[0015] As used in this disclosure, a list associated with "and / or" includes any single item in the list or a combination of items in the list. For example, a list of A, B, and / or C includes A only, B only, C only, a combination of A and B, a combination of B and C, a combination of A and C, or a combination of A, B, and C. As used in this disclosure, a list using the technical term "one or more of" includes any single item in the list or a combination of items in the list. For example, one or more of A, B, and C include A only, B only, C only, a combination of A and B, a combination of B and C, a combination of A and C, or a combination of A, B, and C. As used in this disclosure, a list using the technical term "one of" includes only one and any one single item in that list. For example, "one of A, B, and C" includes A only, B only, or C only and excludes combinations of A, B, and C. As used in the present disclosure, “a member selected from the group consisting of A, B, and C” comprises one and only one of A, B, or C, and excludes combinations of A, B, and C. As used in the present disclosure, “a member selected from the group consisting of A, B, and C and combinations thereof” comprises A only, B only, C only, a combination of A and B, a combination of B and C, a combination of A and C, or a combination of A, B, and C.
[0016] Furthermore, the described features, structures, or characteristics of the embodiments may be combined in any suitable manner. In the following description, numerous specific details, such as examples of programming, software modules, user choices, network transactions, database queries, database structures, hardware modules, hardware circuits, hardware chips, etc., are provided to provide a thorough understanding of the embodiments. However, a person skilled in the art will recognize that the embodiments may be put into practice without one or more specific details or with other methods, components, materials, etc. In other cases, widely known structures, materials, or operations are not illustrated or described in detail to avoid obscuring aspects of the embodiments.
[0017] Aspects of the embodiments are described below with reference to the schematic flowcharts and / or schematic block diagrams of the methods, apparatuses, systems, and program products according to the embodiments. It will be understood that each block of the schematic flowcharts and / or schematic block diagrams, and combinations of blocks in the schematic flowcharts and / or schematic block diagrams, may be implemented by code. This code may be provided to create a machine on the processor of a general-purpose computer, a dedicated computer, or other programmable data processing device, so that instructions executed through the processor of the computer or other programmable data processing device create means for implementing the functions / acts specified in the schematic flowcharts and / or schematic block diagrams.
[0018] Code capable of instructing a computer, other programmable data processing device, or other device to function in a specific way may also be stored in a storage device, so that the instructions stored in the storage device produce a manufactured article containing instructions that implement a function / act specified in schematic flowcharts and / or schematic block diagrams.
[0019] The code may also be loaded onto a computer, other programmable data processing device, or other devices to generate a computer implementation process that provides a series of operational steps to be performed on the computer, other programmable device, or other devices, such that the code executed on the computer or other programmable device provides processes that implement functions / acts specified in schematic flowcharts and / or schematic block diagrams.
[0020] The schematic flowcharts and / or schematic block diagrams in the drawings illustrate the architecture, function, and operation of possible embodiments of devices, systems, methods, and program products according to various embodiments. In this regard, each block in the schematic flowcharts and / or schematic block diagrams may represent a module, segment, or part of code containing one or more executable instructions of code for implementing a specified logical function(s).
[0021] It should also be noted that in some alternative embodiments, the functions mentioned in the blocks may occur out of the order mentioned in the drawings. For example, two blocks depicted consecutively may, in fact, be executed substantially simultaneously, or the blocks may be executed in reverse order from time to time, depending on the accompanying functions. Other steps and methods equivalent in function, logic, or effect may be conceived for one or more of the blocks or parts thereof of the illustrated drawings.
[0022] The descriptions of elements in each drawing may refer to elements in the drawings being processed. Similar numbers refer to similar elements in all drawings that include alternative embodiments of similar elements.
[0023] Methods, devices, and systems for selecting a server application instance are disclosed. A UE communicates with a mobile network (e.g., a 5G network) that supports edge computing services. Edge computing services are provided by one or more edge data networks (“EDN”) connected to the mobile network. Each EDN provides edge computing services in a geographic area consisting of one or more cells and is referred to as an EDN service area.
[0024] When a client application in a UE wants to communicate with a server application, it attempts to discover the server application on the network to communicate with. In many deployment scenarios, the server application is deployed at multiple different locations on the network, for example, on multiple application servers located in different edge data networks ("EDNs"). In these scenarios, the different server applications deployed on the network are referred to as server application instances. Deploying multiple server application instances enables better traffic distribution, better resilience, and better communication performance because the server application instance providing the minimum transmit latency can be selected.
[0025] In scenarios where there are multiple available server application instances, the network selects the "best" server application instance to communicate with the client application on the UE. Note that which server application instance is "best" for the UE depends on the UE's current location. In some embodiments, the "best" server application instance is the one deployed closest to the UE's location. However, this does not always mean that the "best" server application instance is the one closest to the UE, for example, because this instance may be using limited computing and / or networking resources or may generally be able to serve multiple UEs, whereas other server application instances may be using larger computing and / or networking resources and may generally not be able to serve many UEs.
[0026] The present disclosure specifies a novel solution for selecting the "best" server application instance for a UE by considering performance analytics that determine the expected performance between the client application in the UE and each server application instance in the network.
[0027] FIG. 1 depicts a wireless communication system (100) for selecting a server application instance according to embodiments of the present disclosure. In one embodiment, the wireless communication system (100) comprises at least one remote unit (105), at least one base unit (110) in an access network ("AN") (115), a mobile core network (120), a first EDN (130) in a first location, a second EDN (140) in a second location, and a third EDN (150) in a third location. The AN (115) and the mobile core network (120) form a mobile communication network. The AN (115) may consist of at least one base unit (110). The remote unit (105) may communicate with the access network (115) using 3GPP communication links and / or non-3GPP communication links according to the radio access technology deployed by the AN (115). Although a specific number of remote units, base units, ANs, mobile core networks, and edge data networks are depicted in FIG. 1, a person skilled in the art will recognize that any number of remote units, base units, ANs, edge data networks, and mobile core networks may be included in the wireless communication system (100).
[0028] In one embodiment, the wireless communication system (100) complies with the 5G system specified in 3GPP specifications. However, more generally, the wireless communication system (100) may implement some other open or private communication networks, such as LTE / EPC (referred to as 4G) or WiMAX, among others, although other networks may also be implemented. The present disclosure is not intended to be limited to any specific wireless communication system architecture or implementation of a protocol.
[0029] In one embodiment, the remote units (105) may include computing devices such as desktop computers, laptop computers, personal digital assistants ("PDAs"), tablet computers, smartphones, smart televisions (e.g., televisions connected to the Internet), smart appliances (e.g., appliances connected to the Internet), set-top boxes, game consoles, security systems (including security cameras), vehicle on-board computers, network devices (e.g., routers, switches, modems), etc. In some embodiments, the remote units (105) include wearable devices such as smartwatches, fitness bands, optical head-mounted displays, etc. Furthermore, remote units (105) may be referred to as UEs, subscriber units, mobiles, mobile stations, users, terminals, mobile terminals, fixed terminals, subscriber stations, user terminals, wireless transmit / receive units ("WTRU"), devices, or other technical terms used in the art.
[0030] Remote units (105) can communicate directly with one or more of the base units (110) in the access network (115) via uplink ("UL") and downlink ("DL") communication signals. Furthermore, the UL and DL communication signals can be transmitted via communication links (113). Note that the access network (115) is an intermediate network that provides the remote units (105) with access to the mobile core network (120).
[0031] In some embodiments, remote units (105) communicate with an application server instance (i.e., 131, 141, or 151) through a network connection with a mobile core network (120). For example, an application in the remote unit (105) (e.g., a web browser, a media client, a phone / VoIP application) may trigger the remote unit (105) to establish a PDU session (or other data connection) with the mobile core network (120) using the access network (115). The mobile core network (120) then relays traffic between the remote unit (105) and the application server instance (e.g., in an EDN (130, 140, or 150)) using the PDU session. Note that the remote unit (105) may establish one or more PDU sessions (or other data connections) with the mobile core network (120). The remote unit (105) may establish additional PDU sessions to communicate with other data networks and / or other communication peers. As discussed in more detail below, the mobile data connection (PDU session) of the remote unit (105) may be modified to include an edge application server instance (i.e., 131, 141, or 151) when the remote unit (105) is located in an EDN service area.
[0032] Base units (110) may be distributed over an entire geographical area. In specific embodiments, the base unit (110) may also be referred to as an access terminal, access point, base, base station, node-B, eNB, gNB, home node-B, relay node, device, or any other technical term used in the art. The base units (110) are generally part of a radio access network (“RAN”) such as an access network (115) which may include one or more controllers telecommunicationally coupled to one or more of the base units (110). These and other elements of the radio access network are not illustrated but are generally well known to those skilled in the art. The base units (110) are connected to a mobile core network (120) through the access network (115).
[0033] Base units (110) can serve multiple remote units (105) within a serving area, e.g., a cell or cell sector, via a communication link (113). Base units (110) can communicate directly with one or more of the remote units (105) via communication signals. Generally, base units (110) transmit DL communication signals to serve the remote units (105) in the time, frequency, and / or space domains. Furthermore, DL communication signals can be transmitted via communication links (113). The communication links (113) may be any suitable carrier in the licensed or unlicensed radio spectrum. The communication links (113) facilitate communication between one or more of the remote units (105) and / or one or more of the base units (110).
[0034] In one embodiment, the mobile core network (120) is a 5G core (“5GC”) or an evolutionary packet core (“EPC”), which may be coupled to a data network (e.g., other data networks, but above all, data networks such as the Internet and private data networks (150)). The remote unit (105) may have a subscription or other account for the mobile core network (120). In specific embodiments, each mobile core network (120) belongs to a single public terrestrial mobile network (“PLMN”). However, the present disclosure is not intended to be limited to any specific wireless communication system architecture or implementation of a protocol.
[0035] The mobile core network (120) includes several network function parts ("NFs"). As described, the mobile core network (120) includes at least one UPF user plane function part ("UPF") (121) serving to the access network (115). Note that in certain embodiments, the mobile core network may include one or more intermediate UPFs, for example, additional UPFs serving to one or more of the edge data networks (130, 140, 150). In these embodiments, the UPF (121) will be a central UPF, as will be discussed in more detail below.
[0036] The mobile core network (120) also includes a plurality of control plane functions, including, but not limited to, an access and mobility management function ("AMF") (123), a session management function ("SMF") (125), a network data analytics function ("NWDAF") (127), a network repository function ("NRF") (128) (used by various NFs to discover and communicate with each other via APIs), and a network exposure function (129). In specific embodiments, the mobile core network (120) may also include an integrated data management function ("UDM"), an authentication server function ("AUSF"), a policy control function ("PCF"), or other NFs defined for 5GC. In specific embodiments, the mobile core network (120) may include an AAA server.
[0037] In various embodiments, the mobile core network (120) supports different types of mobile data connections and different types of network slices, each mobile data connection utilizing a specific network slice. Here, "network slice" refers to a portion of the mobile core network (120) optimized for a specific type of traffic or communication service. While network instances may be identified by the S-NSSAI, the set of network slices authorized for use by the remote unit (105) is identified by the NSSAI. In certain embodiments, the different network slices may include individual instances of network functional units such as the SMF (125) and UPF (121). In some embodiments, the different network slices may share some common network functional units such as the AMF (123). The different network slices are not illustrated in FIG. 1 for convenience of illustration, but their support is assumed.
[0038] NWDAF (127) derives analytics based on NF requests (consumer NFs). A consumer NF may request analytics in the form of either statistics or predictions. NWDAF (127) derives analytics by collecting relevant data from other NFs. For example, NWDAF (127) derives statistics or predictions regarding the location of a remote unit (105) by collecting location change events from an AMF (123). In various embodiments, NWDAF (127) retrieves relevant data from NFs by using an event exposure subscription / notification service operation to collect specific data. For example, NWDAF (127) may subscribe to an NF / AF (e.g., AMF (123)) to retrieve specific data by including an event ID (e.g., location change). The NF / AFs then notify NWDAF when an "event" occurs. In the example above, AMF notifies NWDAF (127) when the UE location changes.
[0039] As mentioned above, the NWDAF (127) needs to collect performance data for one or more applications. The present disclosure introduces a new network function called an application performance measurement function ("APMF") for acquiring network performance data. In the described embodiment, each of the EDNs (130, 140, and 150) includes an APMF (i.e., APMFs (133, 143, and 153)). An APMF may be located in an EDN and may measure the performance of one or more applications deployed in that EDN. To acquire the performance of a specific application, the APMF acquires the performance of all (or selected) communication sessions between a client app instance of the application and a server app instance of the application, wherein the server app instance is located in the same EDN as the APMF's EDN. The NWDAF (127) collects performance data for the application from multiple APMFs in each of the EDNs supporting the application. After acquiring performance data for the communication sessions, the APMF reports the data to the NWDAF (127). Because NWDAF (127) collects measurements from many APMFs, each located in a different EDN, NWDAF (127) can analyze these measurements when a new client application instance requests to connect with a server application instance and estimate which server application instance is expected to provide the best performance.
[0040] The present disclosure introduces a new 5G network function called a server application discovery management function ("SDMF") (126) that selects the best server application instance based on analytics provided by the NWDAF. In various embodiments, the SDMF (126) determines the location of a remote unit (105), determines a client application instance requesting to connect to a server application instance, retrieves network performance analytics related to that location, and determines the best application server instance (i.e., 131, 141, or 151).
[0041] FIG. 1 illustrates three server application instances (i.e., application server instances (131, 141, and 151)) deployed in three different EDNs (i.e., edge data networks (130, 140, and 150) respectively). In the example illustrated in FIG. 1, the SDMF (126) considers selecting the server application instance (131) of the EDN network (130) because it is closest to the remote unit (105). However, this server (131) may provide an average latency (50ms) greater than the average latency (10ms) of the server application instance (141) located in the EDN (140) of location 2, which is not closest to the current location of the remote unit (105). In these embodiments, the SDMF (126) selects the application server instance with the best performance and transmits the IP address of the selected server instance to the remote unit (105).
[0042] FIG. 1 depicts components of a 5G RAN and a 5G core network, but the described embodiments for selecting server application instances apply to other types of communication networks and RATs including IEEE 802.11 variants, GSM, GPRS, UMTS, LTE variants, CDMA 2000, Bluetooth, ZigBee, Sigfoxx, etc. For example, in an LTE variant involving an EPC, the AMF (123) may be mapped to the MME, the SMF (125) may be mapped to the control plane portion of the PGW and / or the MME, the UPF (121) may be mapped to the user plane portion of the SGW and the PGW, the UDM / UDR may be mapped to the HSS, etc.
[0043] Although specific numbers and types of network functions are depicted in FIG. 1, a person skilled in the art will recognize that any number and type of network functions may be included in the mobile core network (120). Furthermore, when the mobile core network (120) is deployed as an EPC, the depicted network functions may be replaced with appropriate EPC entities such as MME, S-GW, P-GW, HSS, etc.
[0044] FIG. 2 depicts a network deployment (200) comprising a UE (205), a 5G radio access network (5G-RAN) (210), a 5G core network (220), and edge data networks ("EDN") (230). The UE (205) is one embodiment of a remote unit (105) and runs an instance of a first client application ("client app-1 instance") (207). Note that for certain server applications, local instances of the server application (e.g., server app-1 instance (231) and server app-2 instance (233)) may be located in the EDN (230). The 5G core network (220) includes a UPF (221), an AMF (223), an SDMF (225), and an NWDAF (227). Through the 5G core (220), the UE (205) establishes an application session (e.g., a TCP connection) (240) with a local instance of the server application (here, the server app-1 instance (321)).
[0045] As described above, the present disclosure specifies a novel solution for selecting the "best" server app instance for the UE (205) at the current location of the UE (205) by considering performance analytics that determine the expected performance between a given client app (207) in the UE (205) and each server app instance (231, 233) in the network based on the current location (209) of the UE (205). There may be multiple client app instances in different UEs (205) and multiple server app instances in different network locations (e.g., different EDNs). Performance analytics are derived by the NWDAF (227) in the 5G core network (220).
[0046] Note that the "best" server app instance selected by this solution is the best server app instance from a statistical perspective. This means that when multiple UEs establish communication sessions with multiple server app instances in the network, the solution can optimize average communication performance. In this case, the solution can optimize average communication performance across all of these communication sessions. However, the solution does not guarantee that the best server app instance will be selected for every single UE (205) (or for every client app instance (207)), because it is based on historical data and filters out short-time changes in the network, such as short congestion conditions, short transmission failures, etc.
[0047] In order to derive performance analytics for the application, NWDAF (227) needs to collect performance data for the application. This means that whenever a client app instance (207) of the application establishes a communication session (240) with a server app instance (231) of the application, performance data (e.g., latency and packet loss rate) characterizing the performance of the communication session is collected.
[0048] As described, the NWDAF (227) obtains performance data from an APMF (235) located in an EDN (230). The APMF (235) measures performance data for all (or selected) communication sessions established with server application instances (231, 233) deployed in this EDN (230). The example server app-1 instance (231) and server app-2 instance (233) correspond to server application instances of two different applications. The APMF (235) obtains performance for a communication session (240) between a client app instance (207) of this application and a server app instance (231) of this application, where the server app instance (231) is located in the same EDN (230) as the APMF (235). The NWDAF (227) collects performance data for this application from multiple APMFs in each EDN supporting this application.
[0049] After the communication session (240) is terminated, the APMF obtains performance data of this session (e.g., average packet loss rate and average latency), determines the UE location (e.g., gNB has cell ID 'xyz' at location 1), and transmits a measurement report to the NWDAF (227) including: A) the application identity associated with the communication session; B) the UE location; C) the identifier of the server app instance (e.g., its IP address); D) the start and end times of the session; and E) the measured performance data for the session (e.g., average packet delay, average loss rate, etc.).
[0050] NWDAF (227) collects all received measurement reports from one or more APMFs and builds a large performance data table. FIG. 3 depicts one example of a performance data table. Because NWDAF (227) collects measurement results from many APMFs, each located in a different EDN, NWDAF (227) can analyze these measurement results when a new client app instance requests to connect with a server app instance and estimate which server app instance is expected to provide the best performance. SDMF (225) selects the best server app instance based on the analytics provided by NWDAF (227), as will be discussed in more detail below.
[0051] FIG. 3 depicts an exemplary table (300) of server application performance data collected from multiple server application instances. As depicted, the table (300) may include data regarding different applications, different UE locations, different server instances, different times of day, different session protocols, etc. NWDAF (227) may store and maintain the table (300) to determine the best / optimal server instance when a UE (205) requests a data session involved in a specific application. Here, UE locations and times of day may be used by NWDAF (227) to identify the best / optimal server instance.
[0052] FIG. 4 depicts a scenario (400) of an APMF for obtaining performance data for an application "App-1" according to embodiments of the present disclosure. Here, a client App-1 instance (401) establishes an application session with a server App-1 instance (411). In the depicted scenario, App-1 is a web application (i.e., based on the HTTP protocol), where a web client (403) accesses a web server (413). The web server (413) hosting the server App-1 instance (411) is configured by the APMF (235) to report measurement results for all (or selected) communication sessions of App-1 (see Step 1). The web server (413) then identifies the established communication session (e.g., TCP connection) for the server App-1 instance (411), obtains performance data for this session, for example, by requesting TCP statistics from the TCP layer (see step 2), and finally reports this data to the APMF (235) when the communication session is completed (see step 3). In some embodiments, the web server (413) may be configured to report measurement results only for selected communication sessions of App-1, for example, in step 1, for long-life communication sessions with a minimum duration of one (1) minute. In this way, the frequency of measurement reports is reduced and the obtained performance data is more accurate because it is averaged over a longer time window.
[0053] After APMF (235) obtains performance data (i.e., measurement results) for a communication session of App-1, APMF (235) determines the location of the UE (205) associated with this communication session by interacting, for example, with a location management server (437) located in the EDN (230) (see step 4). Note that the UE (205) may have a corresponding location management client (407) to report the UE location. After determining the UE location, assuming that NWDAF (227) subscribes to APMF (235) to receive these reports for App-1, APMF (235) may transmit the performance data report for this communication session of App-1 to NWDAF (227) (not shown in FIG. 4).
[0054] FIG. 5 depicts a scenario (500) for an SDMF (225) that selects the best server application instance based on performance analytics from an NWDAF (227) according to embodiments of the present disclosure. The SDMF (225) identifies when a UE (205) requests to communicate with a server application of a given application (see block 505), retrieves performance analytics from the NWDAF by providing the UE location and the identity of the given application (see messaging 507-509), and selects the "best" server app instance for this UE (205) using the performance analytics returned by the NWDAF (see block 511). For example, when a UE (205) located in cell-X has a client app that sends a DNS query (client app request) to find an IP address for app1.example.com (routed to SDMF (225) via UPF (221), see Messaging 501 and 503), SDMF (225) requests from NWDAF (227) to provide performance analytics for the application=app1.example.com and location=cell-X (see Messaging 507).
[0055] As discussed above, NWDAF (227) collects performance data provided by APMFs in different EDNs and, using this data, can determine the communication performance experienced by many UEs that have communicated with many server app instances in different EDNs at many different locations and at many different times. This knowledge can be used to predict the communication performance that will be experienced by the UE at a specific location and at a specific time instance when the UE begins communicating with a specific server app instance. For example, by analyzing the collected measurement reports, NWDAF (227) can predict that for a UE in Cell-X at 05:23pm, the expected performance will be as follows: [When the UE communicates with server app instance 1, {loss data rate = 5x10-3, latency = 35.7ms}; when the UE communicates with server app instance 2, {loss data rate = 6x10-4, latency = 10.5ms}; ... ; When the UE communicates with server app instance N, {lost data rate = 7x10-4, latency = 53.2ms}]
[0056] The above predicted data, also referred to as "performance analytics," can be used to determine the "best" (i.e., optimal) server app instance for a UE (client app request) at a specific location requesting to communicate with the server app at a specific time instance.
[0057] NWDAF responds to SDMF with performance analytics (see Messaging 509), which includes the expected performance at the requested time of day between this UE (205) and each known server app instance of app1.example.com. Based on the performance analytics from NWDAF (227), SDMF (225) determines the best server app instance (see Block 511) and sends a DNS reply to the UE containing the IP address of the best server app instance (routed to UE (205) via UPF (221), see Messaging 513 and 515).
[0058] In some embodiments, NWDAF (227) may provide suggestions regarding which server app instance has the best expected performance at the UE location. In other embodiments, NWDAF (227) may provide a list of one or more server app instances and associated performance data, and SDMF (225) may select the best server app instance based on the performance data.
[0059] NWDAF (227) derives analytics on the "best" server app instance for an application at the current UE location where the client app at the UE (205) requests to discover a server app instance. The UE location may be a cell identity, or geographic coordinates, or the identity of a non-3GPP access point serving the UE (205), etc.
[0060] When a client app in a UE (205) sends a request to discover a server app instance (in one embodiment, this is a DNS request), an SDMF (225) in a 5G core network (220) determines the application initiating the client app request, and the request can be served by a server app instance in an EDN. In one embodiment, the SDMF (225) is an SMF or NF that processes DNS requests.
[0061] SDMF (225) determines the "best" server app instance by requesting analytics on server app instance performance at the UE location from NWDAF (227). NWDAF (227) may provide a list of one or more server app instances along with their respective statistical performances in the response. In certain embodiments, SDMF (225) selects a server app instance, and UPF (221) serving to the UE (205) may be configured to route client app requests to the selected server app instance.
[0062] FIGS. 6a and 6b illustrate a signaling flow for a procedure (600) for analytics-based server selection according to embodiments of the present disclosure. The procedure (600) involves a UE (205), an SDMF (225), a NWDAF (227), a plurality of APMFs (601) (each located in an EDN), and a plurality of server app instances (603) monitored by the APMFs (601). It is made clear once again that although the SDMF (225) is presented as a standalone function, it can be juxtaposed with other mobile network functions, such as the SMF (125).
[0063] In step 0, NWDAF (227) collects performance data for multiple communication sessions, each associated with an application, a server app instance for the application, a UE location, a duration (start time / end time), etc. (see block 605). The collection of performance data is described in more detail below with reference to FIGS. 7a and 7b.
[0064] In Step 1, the client application of the UE (205) (i.e., that of Application 1) is triggered to discover the application server (see Block 607). In Step 2, the client app of the UE (205) sends a request over the user plane connection to discover an instance of the server app (see Messaging 609). In one embodiment, the request is a DNS request.
[0065] Note that in FIGS. 6a and 6b, the UE (205) is assumed to be "Edge Unaware," that is, there is no client in the UE (205) to determine whether a client app request should be sent to a server app instance of an anchor application server (e.g., in the cloud) or to a server app instance of the EDN.
[0066] In step 3, a client app request is received by the SDMF (225) in the 5G core. The SDMF (225) determines the application of the client app request (i.e., Application 1 is identified from the request) (see block 611). In one embodiment, the application determination is performed based on PCC rules provided by the PCF in the 5G core.
[0067] In step 4, SDMF (225) also determines that, at a UE location, a client app request can be served by a server app instance hosted on an EDN (e.g., EDN (230)) (see block 613). The service determination can also be made based on PCC rules provided by PCF.
[0068] In step 5, SDMF (225) decides to send a request to NWDAF (227) to receive analytics on the performance of server app instances hosted on the EDN at the UE location (see Messaging 615). SDMF (225) may query NRF (128) to determine which NWDAF (227) provides analytics at the UE location.
[0069] Accordingly, the SDMF (225) sends a request for analytics to the NWDAF (see Messaging 615). In one embodiment, the request includes an analytics ID identifying the type of analytics being requested (i.e., server app performance) and the location of the UE where the performance data is being requested. The request also includes a requested time, such as a time of day, day of the week, calendar date, etc.
[0070] Continuing from FIG. 6b, in step 6, NWDAF (227) derives performance analytics using performance data collected for multiple communication sessions for Application 1, and taking into account the current UE location and requested time (see block 623).
[0071] In step 7, NWDAF (227) reports analytics including a list of one or more server app instances and associated statistical performance data (see Messaging 625). In step 8, SDMF (225) selects the application server instance that provided the best performance based on the statistical performance data (see Block 627).
[0072] In step 9, the SDMF (225) responds to the UE (205)'s client app, including the selected server app instance (see Messaging 629). The UE (205) then initiates communication with the selected server app instance. An alternative embodiment of step 9 is to configure the UPF (i.e., UPF (221)) so that the SDMF (225) routes the client app request to the selected server app instance. In this case, the server app instance will respond directly to the UE (205).
[0073] FIGS. 7a and 7b depict a signaling flow for a procedure (700) for collecting performance data for a plurality of communication sessions according to embodiments of the present disclosure. The procedure (700) involves an NWDAF (227), an NRF (128), an NEF (129), an APMF (701), and a server app instance (703).
[0074] In step 0, the NRF (128) contains domain names served by each NEF (129). The APMF (701) compiles a list of applications that support reporting performance data of server app instances — through the NEF (129).
[0075] In step 1, NWDAF (227) is configured to collect performance data for the application. NWDAF (227) may be configured to collect performance data for the application, for example, when there is a Service Level Agreement requiring specific performance for the application or when NWDAF (227) is required to provide performance analytics for the application.
[0076] In step 2, the NWDAF (227) identifies the APMF(s) (701) that support this application. Alternatively, the NWDAF (227) may discover an NEF (129) that interfaces with the APMF(s) (701) that support this application. The NWDAF (227) may retrieve this information from the NRF (128) or it may be requested as part of an analysis request from an NF consumer. In step 3, the NWDAF (227) may interface with the NRF (128) to obtain a list of NEFs that interface with one or more APMFs (701) that support the application.
[0077] In step 4, NWDAF (227) decides to subscribe to all APMFs (701) that can provide performance data for the application under consideration. NWDAF (227) may decide to subscribe to specific events related to performance data.
[0078] Continuing from FIG. 7b, in step 5, the NWDAF (227) sends an event subscription request toward the APMF (701) (see Messaging 725). When the request passes through the NEF (129), the NEF (129) forwards the request to the appropriate APMF (701) in each EDN that the NEF (129) can interface with (the NEF (129) registers domain names supported by the NRF (128)).
[0079] A subscription request includes an event ID identifying the type of information to be reported (i.e., performance data), an identifier of the application, and additional parameters already specified in 3GPP specifications, such as the target of the event reporting (i.e., any UE) and event filter information (e.g., reporting performance data at a specific time of day).
[0080] In step 6, the NEF (129) forwards the subscription request to the APMF(s) (701) (see Messaging 729). In the described embodiment, the server app instance (703) initiates a TCP session with the UE for Application-x (see Messaging 729). Here, the TCP session is associated with the source UE IP address.
[0081] In step 7, the APMF (701) measures performance data whenever a client app instance establishes a communication session (e.g., a TCP connection) with a server app instance (703) associated with this APMF (701) (see block 731).
[0082] In step 8, the APMF (701) can obtain the UE location by sending a location report request to the location manager server (437) (see block 733; an exemplary location report request is described with reference to TS 23.434, section 9.2.2). The location manager server (437) requests the location management client (407) of the UE (205) to provide the location (see FIG. 4).
[0083] In step 9 of FIG. 7b, after a communication session is completed (see Messaging 735), the APMF (701) may report performance data for this communication session to the NWDAF (227) (see Messaging 737). Alternatively, to minimize signaling between the APMF (701) and the NWDAF (227), the APMF (701) may send a single report containing performance data for multiple communication sessions to the NWDAF (227).
[0084] To improve signaling efficiency, note that when APMF (701) acquires performance data for more communication sessions and provides this data to NWDAF (227) in batches, APMF (701) may defer reporting the performance data to NWDAF (227) to a later time instance.
[0085] In addition to performance data, APMF (701) may also report the UE IP address, the address / ID of the edge application server instance hosting the application, a timestamp indicating when the performance was measured, and an identifier for the application. The report may be transmitted to NWDAF (227) via NEF (129).
[0086] FIG. 8 depicts one embodiment of a network equipment device (800) that can be used to select a server application instance according to embodiments of the present disclosure. In some embodiments, the network equipment device (800) may be one embodiment of NWDAF (127). In certain embodiments, the network equipment device (800) may be one embodiment of SDMF (126). In other embodiments, the network equipment device (800) may be one embodiment of APMF. Furthermore, the network equipment device (800) may include a processor (805), memory (810), an input device (815), an output device (820), and a transceiver (825). In some embodiments, the input device (815) and the output device (820) are combined in a single device, such as a touch screen. In certain embodiments, the network equipment device (800) does not include any input device (815) and / or output device (820).
[0087] As described, the transceiver (825) includes at least one transmitter (830) and at least one receiver (835). Here, the transceiver (825) communicates with one or more remote units (105). Additionally, the transceiver (825) may support at least one network interface (840). In some embodiments, the transceiver (825) supports an interface for communicating with NWDAF (e.g., Nnwdaf interface). In some embodiments, the transceiver (825) supports an interface for communicating with SDMF. In some embodiments, the transceiver (825) supports an interface for communicating with APMF. In some embodiments, the transceiver (825) supports an interface for communicating with UPF in a mobile core network (e.g., 5GC) (e.g., Nupf interface).
[0088] In one embodiment, the processor (805) may include any known controller capable of executing computer-readable instructions and / or performing logical operations. For example, the processor (805) may be a microcontroller, a microprocessor, a central processing unit ("CPU"), a graphics processing unit ("GPU"), an auxiliary processing unit, a field programmable gate array ("FPGA"), or a similar programmable controller. In some embodiments, the processor (805) executes instructions stored in memory (810) to perform the methods and routines described in this disclosure. The processor (805) is communicationally coupled to memory (810), an input device (815), an output device (820), and a first transceiver (825).
[0089] In various embodiments, the processor (805) controls the network equipment device (800) to implement the NWDAF behaviors described above. In some embodiments, the processor (805) receives a request from a first network function unit (e.g., SDMF) to provide performance analytics for a first application. The request includes the current location and the requested time. Additionally, the first application includes an application instance group. The processor generates performance analytics for the first application using a first performance data collection. The performance analytics represents the best application instance in the application instance group for the current location and the requested time. Through a network interface, the processor reports the performance analytics to the first network function unit.
[0090] In some embodiments, the processor identifies a first APMF set capable of providing performance data for a first application, each APMF providing performance data for at least one application instance in an application instance group. In these embodiments, the processor may receive performance data for the first application and subscribe to each APMF in the first APMF set to build a first performance data collection for the first application. Here, the first collection includes all performance data for the first application received from the first APMF set, and each performance data is associated with a coverage location and time (e.g., a cell or cells where the performance data was taken).
[0091] In specific embodiments, the processor selects a subset of performance data from a first performance data collection. Here, each performance data in the subset has a coverage location that corresponds to the current location. As used in this disclosure, having a coverage location that corresponds to the current location means that the current UE location is within the location where the performance data was taken.
[0092] In additional embodiments, selecting a subset of performance data may include filtering the first collection according to the current location and a specific time. For example, if a request includes the parameter 'location=cell-X' and the request arrives at 13:00, the processor (805) may filter the first performance data collection to find the best instance for this location (cell-X) and around this time (13:00). As such, performance data taken at this location at 22:00 may be irrelevant. Note that in various embodiments, the first request specifies the requested time. Here, the processor filters the first collection according to the requested time.
[0093] In some embodiments, the processor (805) reports performance analytics by providing at least one of performance statistics and performance predictions for each application instance in an application instance group. In some embodiments, reporting performance analytics to the first network function includes proposing application instances. In some embodiments, the processor (805) reports performance analytics to the first network function by providing a list of one or more server app instances and associated performance data.
[0094] In various embodiments, the processor (805) controls the network equipment device (800) to implement the SDMF behaviors described above. In some embodiments, the processor (805) receives a first request from a remote unit (i.e., UE) and discovers an application server instance for a first application. Here, the remote unit corresponds to a first location. The processor (805) determines that the first request is serviceable by a number of application server instances at the first location and identifies an analytics unit (e.g., NWDAF) that provides performance data analytics for the first application. Through a network interface, the processor (805) transmits a second request to the NWDAF to retrieve performance data analytics for the first application at the first location and for the requested time. The processor (805) selects the optimal application server instance based on the performance data analytics. Through a network interface, the processor (805) transmits a response to the first request, the response including the selected application server instance.
[0095] In some embodiments, the processor (805) receives a notification from NWDAF, the notification includes a list of multiple application server instances for the first application and performance data analytics for a requested time at the first location for each application server instance among the application server instances in the list of multiple application server instances.
[0096] In some embodiments, the processor (805) receives PCC rules from a policy control unit in a mobile communication network. In these embodiments, the processor (805) uses the PCC rules to identify a first application from a first request. In certain embodiments, the processor (805) determines that the first request is serviceable by a number of application server instances using the PCC rules.
[0097] In some embodiments, the processor (805) configures the user plane function to route the first request to a selected application server instance. In some embodiments, the second request identifies the first application and the first location. In some embodiments, the first request includes a DNS request. In these embodiments, the response to the first request includes a DNS reply containing the IP address of the selected application server instance.
[0098] In various embodiments, the processor (805) controls the network equipment device (800) to implement the AMPF behaviors described above. In some embodiments, the processor (805) obtains the performance of all (or a selected set) communication sessions between the client app instance of the first application and the server app instances of the first application. The processor (805) may receive a subscription request from the analytics function. In response to obtaining performance data for the subscribed application, the processor (805)
[0099] In certain embodiments, the AMPF and the server app instance are located in the same EDN. In certain embodiments, the processor (805) configures an application server running the server app instance to report performance data. In one embodiment, the performance data includes TCP statistics from the TCP layer. In certain embodiments, the processor (805) queries the location management server for performance data associated with the UE location.
[0100] In one embodiment, memory (810) is a computer-readable storage medium. In some embodiments, memory (810) includes volatile computer storage media. For example, memory (810) may include RAM including dynamic RAM ("DRAM"), synchronous dynamic RAM ("SDRAM"), and / or static RAM ("SRAM"). In some embodiments, memory (810) includes non-volatile computer storage media. For example, memory (810) may include a hard disk drive, flash memory, or any other suitable non-volatile computer storage device. In some embodiments, memory (810) includes both volatile computer storage media and non-volatile computer storage media. In some embodiments, memory (810) stores data related to selecting a server application instance, such as server addresses, UE locations, DNS cache, etc. In certain embodiments, the memory (810) also stores program code and related data, such as other controller algorithms that operate on an operating system ("OS") or network equipment device (800) and one or more software applications.
[0101] The input device (815) may, in one embodiment, include any known computer input device, such as a touch panel, a button, a keyboard, a stylus, a microphone, etc. In some embodiments, the input device (815) may be integrated with an output device (820), for example, a touchscreen or a similar touch-sensitive display. In some embodiments, the input device (815) includes a touchscreen on which text can be entered using a virtual keyboard on which text is displayed on the touchscreen and / or by handwriting on the touchscreen. In some embodiments, the input device (815) includes two or more different devices, such as a keyboard and a touch panel.
[0102] In one embodiment, the output device (820) may include any known electronically controllable display or display device. The output device (820) may be designed to output visual, auditory, and / or haptic signals. In some embodiments, the output device (820) includes an electronic display capable of outputting visual data to a user. For example, the output device (820) may, without limitation, include an LCD display, an LED display, an OLED display, a projector, or a similar display device capable of outputting images, text, etc. to a user. As another non-limiting example, the output device (820) may include a wearable display such as a smart watch, smart glasses, a head-up display, etc. Furthermore, the output device (820) may be a component such as a smartphone, a personal information terminal, a television, a table computer, a laptop computer, a personal computer, a vehicle dashboard, etc.
[0103] In certain embodiments, the output device (820) includes one or more speakers for generating sound. For example, the output device (820) may generate an audible alarm or notification (e.g., a beep or a chime). In some embodiments, the output device (820) includes one or more haptic devices for generating vibrations, motion, or other haptic feedback. In some embodiments, all or part of the output device (820) may be integrated with the input device (815). For example, the input device (815) and the output device (820) may form a touchscreen or a similar touch-sensitive display. In other embodiments, all or part of the output device (820) may be located near the input device (815).
[0104] As discussed above, the transceiver (825) may communicate with one or more remote units and / or one or more interoperability units that provide access to one or more PLMNs. The transceiver (825) may also communicate with one or more network units (e.g., in the mobile core network (120)). The transceiver (825) operates under the control of the processor (805) to transmit messages, data, and other signals and to receive messages, data, and other signals. For example, the processor (805) may selectively activate the transceiver (or parts thereof) at specific times to transmit and receive messages.
[0105] The transceiver (825) may include one or more transmitters (830) and one or more receivers (835). In certain embodiments, one or more transmitters (830) and / or one or more receivers (835) may share transceiver hardware and / or circuitry. For example, one or more transmitters (830) and / or one or more receivers (835) may share antenna(s), antenna tuner(s), amplifier(s), filter(s), oscillator(s), mixer(s), modulator / demodulator(s), power supply(s), etc. In one embodiment, the transceiver (825) implements multiple logical transceivers using different communication protocols or protocol stacks while using common physical hardware.
[0106] FIG. 9 illustrates one embodiment of a method (900) for selecting a server application instance according to embodiments of the present disclosure. In various embodiments, the method (900) is performed by the analytics function described above, such as NWDAF (127), NWDAF (227), and network equipment device (800). In some embodiments, the method (900) is performed by a processor such as a microcontroller, a microprocessor, a CPU, a GPU, an auxiliary processing unit, an FPGA, etc.
[0107] Method (900) starts and receives a request from a first network function unit [i.e., SDMF] to provide performance analytics for a first application (905). Herein, the request includes the current location and the requested time. Additionally, the first application includes an application instance group. Method (900) includes the step (910) of generating performance analytics for the first application using a first performance data collection. Herein, the performance analytics represents the best application instance in the application instance group for the current location and the requested time. Method (900) includes the step (915) of reporting the performance analytics to the first network function unit. Method (900) terminates.
[0108] FIG. 10 illustrates one embodiment of a method (1000) for selecting a server application instance according to embodiments of the present disclosure. In various embodiments, the method (1000) is performed by the network function unit described above, such as SDMF (126), SDMF (225), and network equipment device (800). In some embodiments, the method (1000) is performed by a processor such as a microcontroller, microprocessor, CPU, GPU, auxiliary processing unit, FPGA, etc.
[0109] The method (1000) starts and receives a first request from a remote unit and discovers an application server instance for the first application (1005). Here, the remote unit corresponds to a first location. The method (1000) includes the step (1010) of determining that the first request is serviceable by a plurality of application server instances at the first location. The method (1000) includes the step (1015) of identifying an NWDAF that provides performance data analytics for the first application.
[0110] The method (1000) includes the step (1020) of sending a second request to NWDAF to retrieve performance data analytics for the first application at the first location and for the requested time. The method (1000) includes the step (1025) of selecting an optimal application server instance based on the performance data analytics. The method (1000) includes the step (1030) of sending a response to the first request, the response including the selected application server instance. The method (1000) terminates.
[0111] What is disclosed herein is a first device for selecting a server application instance according to embodiments of the present disclosure. The first device may be implemented by the analytics function described above, such as NWDAF (127), NWDAF (227), and network equipment device (800). The first device includes a network interface (e.g., APMFs, SDMF, etc.) that communicates with a plurality of network function functions in a mobile communication network. The first device includes a processor that receives a request from the first network function (e.g., SDMF) and provides performance analytics for the first application. Herein, the request includes the current location and the requested time. Additionally, the first application includes an application instance group. The processor generates performance analytics for the first application using a first performance data collection. Herein, the performance analytics represents the best application instance in the application instance group for the current location and the requested time. Through the network interface, the processor reports the performance analytics to the first network function.
[0112] In some embodiments, the processor identifies a first APMF set capable of providing performance data for a first application, each APMF providing performance data for at least one application instance in an application instance group. In these embodiments, the processor may receive performance data for the first application and subscribe to each APMF in the first APMF set to build a first performance data collection for the first application. Here, the first collection includes all performance data for the first application received from the first APMF set, and each performance data is associated with a coverage location and time (e.g., a cell or cells where the performance data was taken).
[0113] In specific embodiments, the processor selects a subset of performance data from a first performance data collection. Here, each performance data in the subset has a coverage location that matches the current location. Here, matching means that "the current UE location is within the location where the performance data was taken." In additional embodiments, selecting a subset of performance data may include filtering the first collection according to the current location and the requested time.
[0114] In some embodiments, reporting performance analytics includes providing at least one of performance statistics and performance predictions for each application instance in an application instance group. In some embodiments, reporting performance analytics to the first network function includes suggesting application instances. In some embodiments, reporting performance analytics to the first network function includes providing a list of one or more server app instances and associated performance data.
[0115] What is disclosed herein is a first method for selecting a server application instance according to embodiments of the present disclosure. The first method may be performed by the analytics function described above, such as NWDAF (127), NWDAF (227), and network equipment device (800). The first method includes the step of receiving a request from a first network function (e.g., SDMF) and providing performance analytics for a first application. Herein, the request includes a current location and a requested time. Additionally, the first application includes an application instance group. The method includes the step of generating performance analytics for the first application using a first performance data collection. Herein, the performance analytics represents the best application instance in the application instance group for the current location and a requested time. The method includes the step of reporting performance analytics to the first network function.
[0116] In some embodiments, the first method includes the step of identifying a first APMF set capable of providing performance data for a first application. Here, each APMF provides performance data for at least one application instance in an application instance group. In these embodiments, the first method may include the step of receiving performance data for the first application and subscribing to each APMF in the first APMF set to build a first performance data collection for the first application. Here, the first collection includes all performance data for the first application received from the first APMF set, and each performance data is associated with a coverage location and time (e.g., a cell or cells where the performance data was taken).
[0117] In specific embodiments, the first method includes the step of selecting a subset of performance data from a first performance data collection—each performance data in the subset having a coverage location that matches the current location. Here, "match" means that "the current UE location is within the location where the performance data was taken." In additional embodiments, selecting a subset of performance data may include filtering the first collection according to the current location and the requested time.
[0118] In some embodiments, reporting performance analytics includes providing at least one of performance statistics and performance predictions for each application instance in an application instance group. In some embodiments, reporting performance analytics to the first network function includes suggesting application instances. In some embodiments, reporting performance analytics to the first network function includes providing a list of one or more server app instances and associated performance data.
[0119] What is disclosed herein is a second device for selecting a server application instance according to embodiments of the present disclosure. The second device may be implemented by the network function unit described above, such as SDMF (126), SDMF (225), and network equipment device (800). The second device includes a network interface (e.g., NWDAF, UPF, etc.) that communicates with a plurality of network function units in a mobile communication network. The second device includes a processor that receives a first request from a remote unit and discovers an application server instance for a first application. Here, the remote unit corresponds to a first location. The processor determines that the first request is serviceable by a plurality of application server instances at the first location and identifies an analytics function unit (e.g., NWDAF) that provides performance data analytics for the first application. Through the network interface, the processor transmits a second request to the NWDAF to retrieve performance data analytics for the first application at the first location and for the requested time. The processor selects the optimal application server instance based on performance data analytics. Through a network interface, the processor transmits a response to the first request, which includes the selected application server instance.
[0120] In some embodiments, the processor receives a notification from NWDAF, the notification comprising a list of multiple application server instances for a first application and performance data analytics for a requested time at a first location for each application server instance among the application server instances in the list of multiple application server instances.
[0121] In some embodiments, the processor receives PCC rules from a policy control unit in a mobile communication network. In these embodiments, the processor uses the PCC rules to identify a first application from a first request. In certain embodiments, the processor determines that the first request is serviceable by a number of application server instances using the PCC rules.
[0122] In some embodiments, the processor configures the user plane function to route the first request to a selected application server instance. In some embodiments, the second request identifies the first application and the first location. In some embodiments, the first request includes a DNS request. In these embodiments, the response to the first request includes a DNS reply containing the IP address of the selected application server instance.
[0123] What is disclosed herein is a second method for selecting a server application instance according to embodiments of the present disclosure. The second method may be implemented by the network function described above, such as SDMF (126), SDMF (225), and network equipment device (800). The second method includes the step of receiving a first request from a remote unit to discover an application server instance for a first application. Herein, the remote unit corresponds to a first location. The second method includes the step of determining that the first request is serviceable by a plurality of application server instances at the first location. The second method includes the step of identifying an analytics function (e.g., NWDAF) that provides performance data analytics for the first application. The second method includes the step of transmitting a second request to the analytics function to retrieve performance data analytics for the first application at the first location and at the requested time. The second method includes the step of selecting an optimal application server instance based on performance data analytics. The second method includes the step of transmitting a response to the first request, the response including a selected application server instance.
[0124] In some embodiments, the second method includes the step of receiving a notification from NWDAF, the notification comprising a list of multiple application server instances for the first application and performance data analytics for a requested time at the first location for each application server instance among the application server instances in the list of multiple application server instances.
[0125] In some embodiments, the second method includes the step of receiving PCC rules from a policy control unit in a mobile communication network. In these embodiments, the first application is identified from the first request using the PCC rules. In certain embodiments, the first request is determined to be serviceable by a plurality of application server instances using the PCC rules.
[0126] In some embodiments, the second method includes the step of configuring a user plane function to route the first request to a selected application server instance. In some embodiments, the second request identifies a first application and a first location. In some embodiments, the first request includes a DNS request. In these embodiments, the response to the first request includes a DNS reply containing the IP address of the selected application server instance.
[0127] The embodiments may be put into practice in other specific forms. The described embodiments are exemplary in all respects but should be considered not limiting. The scope of the invention is, therefore, defined by the appended claims rather than by the foregoing description. All modifications falling within the equivalent meaning and scope of the claims are included within their scope.
Claims
Claim 1 A device comprising: a network interface communicating with a plurality of network functional units in a mobile communication network; and a processor, wherein the processor receives a request from a first network functional unit for providing performance analytics for a first application—the request includes a current location and a requested time, and the first application includes an application instance group—and generates performance analytics for the first application by using a first performance data collection—the performance analytics indicates the best application instance in the application instance group for the current location and the requested time—and reports the performance analytics to the first network functional unit. Claim 2 The device of claim 1, wherein the processor identifies a first application performance measurement function set (“APMFs”) capable of providing performance data for the first application — each APMF provides performance data for at least one application instance in the application instance group —; subscribes to each APMF in the first APMF set to receive performance data for the first application; and constructs the first performance data collection for the first application — the first performance data collection includes all performance data for the first application received from the first APMF set, and each performance data is associated with a coverage location and time —. Claim 3 A device according to paragraph 2, further comprising filtering the first performance data collection according to the current location and the requested time. Claim 4 A device according to claim 1, wherein reporting the performance analytics comprises providing at least one of performance statistics and performance predictions for each application instance in the application instance group. Claim 5 A device according to claim 1, wherein reporting the performance analytics to the first network function unit includes proposing an application instance. Claim 6 A device according to claim 1, wherein reporting the performance analytics to the first network function unit comprises providing a list of one or more server app instances and associated performance data. Claim 7 A method performed by a processor, comprising: receiving a request from a first network function unit for providing performance analytics for a first application — said request including a current location and a requested time, and said first application including an application instance group —; generating performance analytics for the first application by using a first performance data collection — said performance analytics representing the best application instance in said application instance group for said current location and said requested time —; and reporting said performance analytics to the first network function unit. Claim 8 In claim 7, the step of reporting the performance analytics comprises providing at least one of performance statistics and performance predictions for each application instance in the application instance group. Claim 9 In claim 7, the step of reporting the performance analytics to the first network function unit includes the step of proposing an application instance. Claim 10 In claim 7, the step of reporting the performance analytics to the first network function unit comprises the step of providing one or more server app instances and a list of associated performance data. Claim 11 A device comprising: a network interface communicating with a plurality of network functional units in a mobile communication network; and a processor, wherein the processor receives a first request from a remote unit for discovering an application server instance for a first application — said remote unit corresponds to a first location —; determines that the first request is serviceable by a plurality of application server instances at said first location; identifies a network data analytics functional unit ("NWDAF") that provides performance data analytics for said first application; transmits a second request to the NWDAF for retrieving performance data analytics for said first application at the first location and for a requested time; selects an optimal application server instance based on said performance data analytics; and transmits a response to said first request — said response includes the selected application server instance —. Claim 12 A device according to claim 11, wherein the processor receives a notification from the NWDAF — the notification comprises a list of multiple application server instances for the first application and performance data analytics for each application server instance among the application server instances in the list of multiple application server instances for the requested time at the first location. Claim 13 A device according to claim 11, wherein the processor receives PCC rules from a policy control function unit in the mobile communication network, and the processor uses the PCC rules to identify the first application from the first request. Claim 14 A device according to claim 11, wherein the processor receives PCC rules from a policy control function unit in the mobile communication network, and the processor determines that the first request is serviceable by a plurality of application server instances using the PCC rules. Claim 15 In paragraph 11, the device, wherein the processor configures a user plane function to route the first request to a selected application server instance. Claim 16 In paragraph 11, the second request is a device that identifies the first application and the first location. Claim 17 A device according to claim 11, wherein the first request comprises a DNS request, and the response to the first request comprises a DNS reply including the IP address of a selected application server instance. Claim 18 A method performed by a processor, comprising: receiving a first request from a remote unit for discovering an application server instance for a first application—the remote unit corresponds to a first location—; determining that the first request is serviceable by a plurality of application server instances at the first location; identifying a network data analytics function unit ("NWDAF") that provides performance data analytics for the first application; transmitting a second request to the NWDAF for retrieving performance data analytics for the first application at the first location and for a requested time; selecting an optimal application server instance based on the performance data analytics; and transmitting a response to the first request—the response including the selected application server instance. Claim 19 A method according to claim 18, further comprising the step of receiving a notification from the NWDAF — said notification comprising a list of multiple application server instances for said first application and performance data analytics for said first location for said application server instance for each of said application server instances in said list of the multiple application server instances for said requesting time. Claim 20 A method according to claim 18, further comprising the steps of receiving PCC rules from a policy control function unit, and identifying the first application from the first request using the PCC rules, wherein the first request is determined to be serviceable by a plurality of application server instances using the PCC rules.
Citation Information
Patent Citations
Open network automation platform (ONAP) - fifth generation core (5GC) interaction for analytics
WO2020018012A1
