Patent Description:
The following abbreviations and acronyms are herewith defined, at least some of which are referred to within the following description.

Third Generation Partnership Project ("3GPP"), Fifth-Generation Core ("5GC"), Access and Mobility Management Function ("AMF"), Address Resolution Function ("ARF"), Application Programing Interface ("API"), Application Performance Measurement Function ("APMF"), Domain Name System ("DNS"), Downlink ("DL"), Edge Data Network ("EDN"), Evolved Node-B ("eNB"), Evolved Packet Core ("EPC"), Internet Protocol ("IP"), Long Term Evolution ("LTE"), LTE Advanced ("LTE-A"), Modulation Coding Scheme ("MCS"), Mobility Management Entity ("MME"), Network Function ("NF"), Network Exposure Function ("NEF"), Network Repository Function ("NRF"), Network Slice Selection Assistance Information ("NSSAI"), Network Data Analytics Function ("NWDAF"), Next Generation (e.g., <NUM>) Node-B ("gNB"), Next Generation Radio Access Network ("NG-RAN" or "<NUM>-RAN"), New Radio ("NR"), Policy and Charging Control ("PCC"), Policy Control Function ("PCF"), Packet Data Network ("PDN"), Packet Data Unit ("PDU"), PDN Gateway ("PGW"), Public Land Mobile Network ("PLMN"), Radio Access Network ("RAN"), Radio Access Technology ("RAT"), Server Application Discovery Management Function ("SDMF"), Serving Gateway ("SGW"), Session Management Function ("SMF"), Single Network Slice Selection Assistance Information ("S-NSSAI"), Transmission Control Protocol ("TCP"), Unified Data Management ("UDM"), User Entity/Equipment (Mobile Terminal) ("UE"), User Plane Function ("UPF"), Uplink ("UL"), Universal Mobile Telecommunications System ("UMTS"), and Worldwide Interoperability for Microwave Access ("WiMAX").

In certain embodiments, communication systems, an edge data network may be deployed to enhance 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.

<NPL>, and proposes solution for the SMF to obtain network data analytics which can be used for UPF selection for major applications and traffic.

<NPL> and discusses: what kind of analytics could be exposed to improve edge computing related operations considering both UE and edge service mobility; what kind of data should be collected to support analytics for edge computing support; and how to assist UP optimization considering external DN characteristics.

In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store, a program for use by or in connection with an instruction execution system, apparatus, or device.

This code may be provided to a processor of a general-purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the schematic flowchart diagrams and/or schematic block diagrams.

The code may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other devices to produce a computer implemented process such that the code which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the schematic flowchart diagrams and/or schematic block diagram.

Methods, apparatuses, and systems are disclosed for selecting a server application instance. A UE communicates with a mobile network (e.g., <NUM> network) that supports edge computing services. The edge computing services are offered by one or more Edge Data Networks ("EDNs"), which are connected to the mobile network. Each EDN provides edge computing services in a geographical area composed of one or multiple cells and is referred to as the EDN Service Area.

When a client application in the UE wants to communicate with a server application, it attempts to discover a server application in the network to communicate with. In many deployment scenarios, the server application is deployed in multiple different locations in the network, e.g., in multiple application servers located in different Edge Data Networks ("EDNs"). In such scenarios, the different server applications deployed in 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 a server application instance can be selected that provides minimum transmission delay.

In scenarios where there are multiple server application instances available, the network selects the "best" server application instance for communicating with a client application in a UE. Note that which server application instance is the "best" one for the UE depends on the present location of the UE. In some embodiments, the "best" server application instance is the one deployed closest to the UE's location. However, this is not always the case that the "best" server application instance is the server application instance closest to the UE, e.g., because this instance may be using limited computing and/or networking resources, or may usually serve a large number of UEs, whereas other server application instances may use larger computing and/or networking resources and may not usually serve many UEs.

The present disclosure specifies a novel solution for selecting the "best" server application instance for a UE by considering performance analytics, which determine the expected performance between the client application in the UE and each server application instance in the network.

<FIG> depicts a wireless communication system <NUM> for selecting a server application instance, according to embodiments of the disclosure. In one embodiment, the wireless communication system <NUM> includes at least one remote unit <NUM>, at least one base unit <NUM> in an access network ("AN") <NUM>, a mobile core network <NUM>, a first EDN <NUM> at a first location, a second EDN <NUM> at a second location, and a third EDN <NUM> at a third location. The AN <NUM> and the mobile core network <NUM> form a mobile communication network. The AN <NUM> may be composed of at least one base unit <NUM>. The remote unit <NUM> may communicate with the access network <NUM> using 3GPP communication links and/or non-3GPP communication links, according to a radio access technology deployed by the AN <NUM>. Even though a specific number of remote units, base units, ANs, mobile core networks, and edge data networks are depicted in <FIG>, one of skill 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 <NUM>.

In one implementation, the wireless communication system <NUM> is compliant with the <NUM> system specified in the 3GPP specifications. More generally, however, the wireless communication system <NUM> may implement some other open or proprietary communication network, for example, LTE/EPC (referred as <NUM>) or WiMAX, among other networks.

In one embodiment, the remote units <NUM> may include computing devices, such as desktop computers, laptop computers, personal digital assistants ("PDAs"), tablet computers, smart phones, 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), or the like. Moreover, the remote units <NUM> may be referred to as UEs, subscriber units, mobiles, mobile stations, users, terminals, mobile terminals, fixed terminals, subscriber stations, user terminals, wireless transmit/receive unit ("WTRU"), a device, or by other terminology used in the art.

The remote units <NUM> may communicate directly with one or more of the base units <NUM> in the access network <NUM> via uplink ("UL") and downlink ("DL") communication signals. Furthermore, the UL and DL communication signals may be carried over the communication links <NUM>. Note, that the access network <NUM> is an intermediate network that provide the remote units <NUM> with access to the mobile core network <NUM>.

In some embodiments, the remote units <NUM> communicate with an Application Server Instance (i.e., <NUM>, <NUM> or <NUM>) via a network connection with the mobile core network <NUM>. For example, an application in a remote unit <NUM> (e.g., web browser, media client, telephone/VoIP application) may trigger the remote unit <NUM> to establish a PDU session (or other data connection) with the mobile core network <NUM> using the access network <NUM>. The mobile core network <NUM> then relays traffic between the remote unit <NUM> and the Application Server Instance (e.g., in EDN <NUM>, <NUM> or <NUM>) using the PDU session. Note that the remote unit <NUM> may establish one or more PDU sessions (or other data connections) with the mobile core network <NUM>. The remote unit <NUM> may establish additional PDU sessions for communicating with other data network and/or other communication peers. As discussed in further detail below, the mobile data connection (PDU session) of a remote unit <NUM> may be modified to include an edge Application Server Instance (i.e., <NUM>, <NUM> or <NUM>) if the remote unit <NUM> is located in an EDN service area.

The base units <NUM> may be distributed over a geographic region. In certain embodiments, a base unit <NUM> may also be referred to as an access terminal, an access point, a base, a base station, a Node-B, an eNB, a gNB, a Home Node-B, a relay node, a device, or by any other terminology used in the art. The base units <NUM> are generally part of a radio access network ("RAN"), such as the access network <NUM>, that may include one or more controllers communicably coupled to one or more corresponding base units <NUM>. These and other elements of radio access network are not illustrated but are well known generally by those having ordinary skill in the art. The base units <NUM> connect to the mobile core network <NUM> via the access network <NUM>.

The base units <NUM> may serve a number of remote units <NUM> within a serving area, for example, a cell or a cell sector, via a communication link <NUM>. The base units <NUM> may communicate directly with one or more of the remote units <NUM> via communication signals. Generally, the base units <NUM> transmit DL communication signals to serve the remote units <NUM> in the time, frequency, and/or spatial domain. Furthermore, the DL communication signals may be carried over the communication links <NUM>. The communication links <NUM> may be any suitable carrier in licensed or unlicensed radio spectrum. The communication links <NUM> facilitate communication between one or more of the remote units <NUM> and/or one or more of the base units <NUM>.

In one embodiment, the mobile core network <NUM> is a <NUM> core ("5GC") or the evolved packet core ("EPC"), which may be coupled to a data network (e.g., the data network <NUM>, such as the Internet and private data networks, among other data networks. A remote unit <NUM> may have a subscription or other account with the mobile core network <NUM>. In certain embodiments, each mobile core network <NUM> belongs to a single public land mobile network ("PLMN"). However, the present disclosure is not intended to be limited to the implementation of any particular wireless communication system architecture or protocol.

The mobile core network <NUM> includes several network functions ("NFs"). As depicted, the mobile core network <NUM> includes at least one UPF user plane function ("UPF") <NUM> that serves the access network <NUM>. Note that in certain embodiments, the mobile core network may contain one or more intermediate UPFs, for example an additional UPF that serves one or more of the edge data networks <NUM>, <NUM>, <NUM>. In such embodiments, the UPF <NUM> would be a central UPF, as discussed in further detail below.

The mobile core network <NUM> also includes multiple control plane functions including, but not limited to, an Access and Mobility Management Function ("AMF") <NUM>, a Session Management Function ("SMF") <NUM>, a Network Data Analytics Function ("NWDAF") <NUM>, a Network Repository Function ("NRF") <NUM> (used by the various NFs to discover and communicate with each other over APIs), and a Network Exposure Function <NUM>. In certain embodiments, the mobile core network <NUM> may also include a Unified Data Management function ("UDM"), an Authentication Server Function ("AUSF"), a Policy Control Function ("PCF"), or other NFs defined for the 5GC. In certain embodiments, the mobile core network <NUM> may include a AAA server.

In various embodiments, the mobile core network <NUM> supports different types of mobile data connections and different types of network slices, wherein each mobile data connection utilizes a specific network slice. Here, a "network slice" refers to a portion of the mobile core network <NUM> optimized for a certain traffic type or communication service. A network instance may be identified by a S-NSSAI, while a set of network slices for which the remote unit <NUM> is authorized to use is identified by NSSAI. In certain embodiments, the various network slices may include separate instances of network functions, such as the SMF <NUM> and UPF <NUM>. In some embodiments, the different network slices may share some common network functions, such as the AMF <NUM>. The different network slices are not shown in <FIG> for ease of illustration, but their support is assumed.

The NWDAF <NUM> derives analytics based on an NF request (Consumer NF). A Consumer NF may ask analytics either in form of statistics or predictions. The NWDAF <NUM> derives the analytics by collecting relevant data from other NFs. For example, the NWDAF <NUM> derives statistics or predictions for a location of the remote unit <NUM> by collecting location changes events from the AMF <NUM>. In various embodiments, the NWDAF <NUM> retrieves the related data from the NFs by using the Event Exposure Subscribe/Notify service operation to collect specific data. For example, the NWDAF <NUM> may subscribe from a NF/AF (e.g., AMF <NUM>) to retrieve specific data by including an Event ID (e.g., Location Changes). The NF/AFs then Notifies the NWDAF when the "Event" took place. In the above example, an AMF notifies the NWDAF <NUM> when the UE location changes.

As mentioned above, the NWDAF <NUM> needs to collect performance data for one or more applications. The present disclosure introduces a new network function, called Application Performance Measurement Function ("APMF"), for obtaining network performance data. In the depicted embodiment, each of the EDN <NUM>, <NUM> and <NUM> include an APMF (i.e., APMFs <NUM>, <NUM>, and <NUM>). An APMF is located in an EDN and can measure the performance of one or more applications deployed in this EDN. For obtaining the performance of a certain application, the APMF obtains the performance of all (or selected) communication sessions between a client app instance of this application and a server app instance of this application, where the server app instance is located in same EDN as the EDN of the APMF. The NWDAF <NUM> collects performance data for this application from multiple APMFs in each EDN supporting this application. After obtaining the performance data for a communication session, the APMF reports the data to NWDAF <NUM>. Because the NWDAF <NUM> collects measurements from many APMFs, each one located in a different EDN, the NWDAF <NUM> can analyze these measurements and estimate which server application instance is expected to provide the best performance when a new client application instance requests to connect with a server application instance.

The present disclosure introduces a new <NUM> network function, called a Server application Discovery Management Function ("SDMF") <NUM> which selects the best server app instance based on analytics provided by the NWDAF. In various embodiments, the SDMF <NUM> determines the location of the remote unit <NUM>, determines the client application instance requesting to connect to a server application instance, retrieves network performance analytics relating to the location, and determines a best Application Server Instance (i.e., <NUM>, <NUM> or <NUM>).

<FIG> shows three server application instances (i.e., Application Server Instances <NUM>, <NUM>, and <NUM>) deployed in three different EDNs (i.e., Edge Data Networks <NUM>, <NUM>, and <NUM>, respectively). In the example shown in <FIG>, the SDMF <NUM> considers selecting the server application instance <NUM> of the EDN network <NUM> because this is the closest to the remote unit <NUM>. However, this server <NUM> may provide an average latency (<NUM>) that is larger to average latency of server application instance <NUM> located at the EDN <NUM> of Location <NUM> (<NUM>), which is not the closest to the remote unit <NUM>'s present location. In such embodiments, the SDMF <NUM> selects the application server instance with the best performance and sends the IP address of the selected server instance to the remote unit <NUM>.

While <FIG> depicts components of a <NUM> RAN and a <NUM> core network, the described embodiments for selecting a server application instance apply to other types of communication networks and RATs, including IEEE <NUM> variants, GSM, GPRS, UMTS, LTE variants, CDMA <NUM>, Bluetooth, ZigBee, Sigfoxx, and the like. For example, in an LTE variant involving an EPC, the AMF <NUM> may be mapped to an MME, the SMF <NUM> may be mapped to a control plane portion of a PGW and/or to an MME, the UPF <NUM> may be mapped to an SGW and a user plane portion of the PGW, the UDM/UDR may be mapped to an HSS, etc..

Although specific numbers and types of network functions are depicted in <FIG>, one of skill in the art will recognize that any number and type of network functions may be included in the mobile core network <NUM>. Moreover, where the mobile core network <NUM> is deployed as an EPC, the depicted network functions may be replaced with appropriate EPC entities, such as an MME, S-GW, P-GW, HSS, and the like.

<FIG> depicts a network deployment <NUM> comprising a UE <NUM>, a <NUM> Radio Access Network (<NUM>-RAN) <NUM>, a <NUM> core network <NUM> and an edge data networks ("EDN") <NUM>. The UE <NUM> is one embodiment of the remote unit <NUM> and runs an instance of a first client application ("Client app-<NUM> instance") <NUM>. Note that for certain Server Applications, a local instance of the Server Application may be located in the EDN <NUM> (e.g., Server app-<NUM> instance <NUM> and Server app-<NUM> instance <NUM>). The <NUM> core network <NUM> includes a UPF <NUM>, an AMF <NUM>, a SDMF <NUM> and a NWDAF <NUM>. Via the <NUM> core <NUM>, the UE <NUM> establishes an application session (e.g., TCP connection) <NUM> with a local instance of a server application (here server app-<NUM> instance <NUM>).

As aforementioned, the present disclosure specifies a novel solution for selecting the "best" server app instance for a UE <NUM> at the current location of the UE <NUM>, by considering performance analytics, which determine the expected performance between a given client app <NUM> in the UE <NUM> and each server app instance <NUM>, <NUM> in the network based on the present location <NUM> of the UE <NUM>. There may be multiple client app instances, each one in a different UE <NUM> and there could be multiple server app instances, each one in a different network location (e.g., in a different EDN). The performance analytics are derived by the NWDAF <NUM> in the <NUM> core network <NUM>.

Note that the "best" server app instance selected with this solution is the best server app instance from a statistical point of view. This means that the solution can optimize the average communication performance when a large number of UEs establish communication sessions with multiple server app instances in the network. In this case, the solution can optimize the average communication performance across all these communication sessions. However, the solution does not guarantee that the best server app instance will be selected for every single UE <NUM> (or, for every client app instance <NUM>) because it is based on historical data and it filters out short-time changes in the network, e.g., short congestion conditions, short transmission failures, etc..

For deriving performance analytics for an application, the NWDAF <NUM> needs to collect performance data for this application. This means that every time a client app instance <NUM> of this application establishes a communication session <NUM> with a server app instance <NUM> of this application, performance data is to be collected (such as latency and packet loss rate) that characterizes the performance of this communication session.

As depicted, the NWDAF <NUM> obtains performance data from the APMF <NUM> located in the EDN <NUM>. The APMF <NUM> measures performance data for all (or selected) communication sessions established with the server application instances <NUM>, <NUM> deployed in this EDN <NUM>. The illustrated server app-<NUM> instance <NUM> and server app-<NUM> instance <NUM> correspond to server application instances of two different applications. The APMF <NUM> obtains the performance of the communication session <NUM> between a client app instance <NUM> of this application and a server app instance <NUM> of this application, where the server app instance <NUM> is located in same EDN <NUM> as the APMF <NUM>. The NWDAF <NUM> collects performance data for this application from multiple APMFs in each EDN supporting this application.

After the communication session <NUM> is terminated, the APMF obtains the performance data (e.g., the average packet loss rate and the average latency) of this session, it determines the UE location (e.g., gNB with cell ID 'xyz' at Location <NUM>) and sends to NWDAF <NUM> a measurement report containing: A) the application identity associated with the communication session; B) the UE location; C) an identifier of the server app instance (e.g., its IP address); D) 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.).

The NWDAF <NUM> collects all the received measurement reports from one or more APMFs and builds a big table of performance data. <FIG> depicts one example of a performance data table. Because the NWDAF <NUM> collects measurements from many APMFs, each one located in a different EDN, the NWDAF <NUM> can analyze these measurements and estimate which server app instance is expected to provide the best performance when a new client app instance requests to connect with a server app instance. The SDMF <NUM> selects the best server app instance based on analytics provided by the NWDAF <NUM>, as discussed if further detail below.

<FIG> depicts an exemplary table <NUM> of server application performance data collected from multiple server application instances. As depicted, the table <NUM> may contain data for different applications, different UE locations, different server instances, different times-of-day, different session protocols, etc. An NWDAF <NUM> may store and maintain the table <NUM> in order to determine a best/optimal server instance when a UE <NUM> requests a data session involving a particular application. Here, the UE location and time-of-day may be used by the NWDAF <NUM> to identify the best/optimal server instance.

<FIG> depicts a scenario <NUM> of the APMF obtaining performance data for the application "App-<NUM>", according to embodiments of the disclosure. Here, a client App-<NUM> instance <NUM> establishes an application session with a server App-<NUM> instance <NUM>. In the depicted scenario, the App-<NUM> is a web application (i.e., is based on the HTTP protocol), where the web client <NUM> accesses the web server <NUM>. The web server <NUM> that hosts the server App-<NUM> instance <NUM> is configured by the APMF <NUM> to report measurements for all (or selected) communication sessions of App-<NUM> (see step <NUM>). The web server <NUM> then identifies a communication session (e.g., TCP connection) established for the server App-<NUM> instance <NUM>, obtains the performance data for this session, e.g., by requesting TCP statistics from the TCP layer (see step <NUM>), and finally reports this data to the APMF <NUM> when the communication session is completed (see step <NUM>). In some embodiments, the web server <NUM> may be configured, e.g., in step <NUM>, to report measurements only for selected communication sessions of App-<NUM>, e.g., only for long-lived communication sessions, say, with minimum duration of one (<NUM>) minute. 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.

After the APMF <NUM> obtains the performance data (i.e., measurements) for a communication session of the App-<NUM>, the APMF <NUM> determines the location of the UE <NUM> associated with this communication session, e.g., by interacting with a Location Management server <NUM> located in the EDN <NUM> (see step <NUM>). Note that the UE <NUM> may have a corresponding location management client <NUM> for reporting a UE location. After determining the UE location, the APMF <NUM> may send to the NWDAF <NUM> (not shown in <FIG>) a performance data report for this communication session of App-<NUM>, assuming the NWDAF <NUM> has subscribed with the APMF <NUM> to receive such reports for App-<NUM>.

<FIG> depicts a scenario <NUM> for the SDMF <NUM> selecting the best server application instance based on performance analytics from the NWDAF <NUM>, according to embodiments of the disclosure. The SDMF <NUM> identifies when a UE <NUM> requests to communicate with a server application of a given application (see block <NUM>), it retrieves performance analytics from the NWDAF by providing the UE location and the identity of the given application (see messaging <NUM>-<NUM>), and selects the "best" server app instance for this UE <NUM> by using the performance analytics returned by NWDAF (see block <NUM>). For example, when a UE <NUM> located in cell-X has a client app that sends a DNS query (client app request) to find an IP address for app1. com (routed to SDMF <NUM> via UPF <NUM>, see messaging <NUM> and <NUM>), the SDMF <NUM> requests from the NWDAF <NUM> to provide performance analytics for application=app1. com and location=cell-X (see messaging <NUM>).

As discussed above, the NWDAF <NUM> collects the performance data provided by APMFs in different EDNs, and can utilize this data to know the communication performance experienced by many UEs, in many different locations and at many different times, which communicated with many server app instances in different EDNs. This knowledge may be exploited to predict the communication performance that will be experienced by a UE in a certain location and at a certain time instance, when this UE starts communication with a certain server app instance. For example, by analyzing the collected measurement reports, the NWDAF <NUM> may predict that, for a UE in cell-X and at <NUM>:23pm, the expected performance will be: [{Loss data rate=5x10-<NUM>, Latency=<NUM>}, if the UE communicates with server app instance <NUM>; {Loss data rate=6x10-<NUM>, Latency=<NUM>}, if the UE communicates with server app instance <NUM>;. ; {Loss data rate=7x10-<NUM>, Latency=<NUM>}, if the UE communicates with server app instance N].

The above predicted data, also referred to as "performance analytics," can be used for determining the "best" (i.e., optimal) server app instance for a UE (client app request) at a specific location that requests to communicate with a server app at a specific time instance.

The NWDAF responds to the SDMF with performance analytics (see messaging <NUM>), which include the expected performance at the requested time of day between this UE <NUM> and each known server app instance of app1. Based on the performance analytics from NWDAF <NUM>, the SDMF <NUM> determines the best server app instance (see block <NUM>) and sends a DNS reply to UE including the IP address of the best server app instance (routed to UE <NUM> via UPF <NUM>, see messaging <NUM> and <NUM>).

In some embodiments, the NWDAF <NUM> may provide suggestions on which server app instance has the best expected performance at the UE location. In other embodiments, the NWDAF <NUM> may provide a list of one or more server app instances and the associated performance data, and the SDMF <NUM> may select the best server app instance based on the performance data.

The NWDAF <NUM> derives analytics for "best" server app instance for an application at the current UE location where the client app in the UE <NUM> requests to discover a server app instance. The UE location may be a cell identity, or geographical coordinates, or the identity of a non-3GPP access point serving the UE <NUM>, etc..

When a client app in a UE <NUM> sends a request to discover a server app instance (in one embodiment this is a DNS request), an SDMF <NUM> in the <NUM> core network <NUM> determines the application initiating the client app request, and that the request can be served by a server app instance in an EDN. In one embodiment, the SDMF <NUM> is the SMF or an NF handling DNS requests.

The SDMF <NUM> determines the "best" server app instance by requesting analytics for server app instance performance at the UE location from the NWDAF <NUM>. The NWDAF <NUM> in the response may provide a list of one or more server app instances with their respective statistical performance. In certain embodiments, the SDMF <NUM> selects a server app instance, the UPF <NUM> serving the UE <NUM> may be configured to route the client app request to the selected server app instance.

<FIG> depict a signaling flow for a procedure <NUM> for analytics-based server selection, according to embodiments of the disclosure. The procedure <NUM> involves the UE <NUM>, the SDMF <NUM>, the NWDAF <NUM>, a plurality of APMFs <NUM> (each located in an EDN), and a plurality of server app instances <NUM> monitored by the APMFs <NUM>. It is clarified again that, although the SDMF <NUM> is presented as a standalone function, it may be collocated with another mobile network function, e.g., with the SMF <NUM>.

At Step <NUM>, the NWDAF <NUM> collects performance data for a plurality of communication sessions, each one associated with an application, a server app instance for this application, a UE location, time duration (start/end times), etc. (see block <NUM>). Collecting performance data is described in further detail below with reference to <FIG>.

At Step <NUM>, a client application (i.e., of Application <NUM>) in the UE <NUM> is triggered to discover an application server (see block <NUM>). At Step <NUM>, the client app in the UE <NUM> sends a request via a user plane connection to discover a server app instance (see messaging <NUM>). In one embodiment the request is a DNS request.

Note that in the <FIG>, the UE <NUM> is assumed to be "Edge Unaware," i.e., there is no client in the UE <NUM> that determines whether the client app request should be send to a server app instance in the anchor application server (e.g., in the cloud) or to a server app instance in an EDN.

At Step <NUM>, the client app request is received by an SDMF <NUM> in the <NUM> core. The SDMF <NUM> determines the application of the client app request (i.e., the Application <NUM> is identified from the request) (see block <NUM>). In one embodiment, the application determination is carried out based on PCC rules provided by a PCF in the <NUM> core.

At Step <NUM>, the SDMF <NUM> also determines that at the UE location, the client app request may be served by a server app instance hosted in an EDN (e.g., EDN <NUM>) (see block <NUM>). The service determination may also be carried out based on PCC rules provided by the PCF.

At Step <NUM>, the SDMF <NUM> decides to send a request to the NWDAF <NUM> to receive analytics of performance of server app instances hosted at an EDN at the UE location (see messaging <NUM>). The SDMF <NUM> may query the NRF <NUM> to determine the NWDAF <NUM> providing analytics at the UE location.

Accordingly, the SDMF <NUM> sends a request for Analytics to the NWDAF (see messaging <NUM>). In one embodiment, the request includes an Analytic ID identifying the type of analytics required (i.e., server app performance) and the location of the UE where the performance data are requested. The request also includes a requested time, such as time-of-day, day-of-the-week, calendar date, etc..

Continuing on <FIG>, at Step <NUM> the NWDAF <NUM> derives performance analytics by using the collected performance data for a plurality of communication sessions for Application <NUM>, and by considering the present UE location and requested time (see block <NUM>).

At Step <NUM>, the NWDAF <NUM> reports analytics containing a list of one or more server app instances and associated statistical performance data (see messaging <NUM>). At Step <NUM>, the SDMF <NUM> selects the Application Server instance that provided the best performance based on the statistical performance data (see block <NUM>).

At Step <NUM>, the SDMF <NUM> responds to the client app in the UE <NUM> including the selected server app instance (see messaging <NUM>). The UE <NUM> then initiates communication with the selected server app instance. An alternative embodiment of step <NUM> is that the SDMF <NUM> configures the UPF (i.e., UPF <NUM>) to route the client app request to the selected server app instance. In such a case the server app instance will respond directly to the UE <NUM>.

<FIG> depict a signaling flow for a procedure <NUM> for collecting performance data for a plurality of communication sessions, according to embodiments of the disclosure. The procedure <NUM> involves the NWDAF <NUM>, the NRF <NUM>, the NEF <NUM>, an APMF <NUM>, and a server app instance <NUM>.

At step <NUM>, the NRF <NUM> contains domain names served by each NEF <NUM>. The APMF <NUM> configures - via the NEF <NUM> - a list of applications supporting the reporting of performance data of server app instances.

At step <NUM>, the NWDAF <NUM> is configured to collect performance data for an application. The NWDAF <NUM> may be configured to collect performance data for an application when, e.g., there is a Service Level Agreement requiring specific performance for this application or when the NWDAF <NUM> is required to provide performance analytics for this application.

At step <NUM>, the NWDAF <NUM> identifies the APMF(s) <NUM> that supports this application. Alternatively, the NWDAF <NUM> may discover the NEF <NUM> that interfaces with the APFM(s) <NUM> that supports this application. The NWDAF <NUM> may retrieve this information from the NRF <NUM>, or may be requested as part of an Analytic request from a NF consumer. At step <NUM>, the NWDAF <NUM> may interface with the NRF <NUM> to obtain a list of NEFs that interface with one or more APMFs <NUM> supporting the application.

At step <NUM>, the NWDAF <NUM> determines to subscribe with every APMF <NUM> that can provide performance data for the considered application. The NWDAF <NUM> may determine to subscribe for certain events relevant to the performance data.

Continuing on <FIG>, at step <NUM>, the NWDAF <NUM> sends an event subscription request towards an APMF <NUM> (see messaging <NUM>). If the request goes via the NEF <NUM>, then the NEF <NUM> forwards the request to the appropriate APMF <NUM> in each EDN that the NEF <NUM> can interface to (the NEF <NUM> registers domain names supported at the NRF <NUM>).

The subscription request contains an Event ID identifying the type of information to report (i.e., performance data), an identifier of the application, and additional parameters already specified in 3GPP specs, such as a target of event reporting (i.e., any UE) and Event Filter information (for example report performance data at a particular time of day).

At step <NUM>, the NEF <NUM> forwards the subscription request to the APMF(s) <NUM> (see messaging <NUM>). In the depicted embodiment, the server app instance <NUM> starts a TCP session with a UE for Application-x (see messaging <NUM>). Here, the TCP session is associated with a source UE IP address.

At step <NUM>, the APMF <NUM> measures performance data every time a client app instance establishes a communication session (such as a TCP connection) with the server app instance <NUM> associated with this APMF <NUM> (see block <NUM>).

At step <NUM>, the APMF <NUM> may get the UE location by sending a Location Report request to a Location Manager Server <NUM> (see block <NUM>, an example Location Report request is described with reference to TS <NUM>, clause <NUM>. The Location Manager Server <NUM> than asks the Location Management Client <NUM> in the UE <NUM> to provide its location (refer to <FIG>).

At step <NUM> of <FIG>, after the communication session is completed (see messaging <NUM>) the APMF <NUM> may report the performance data for this communication session to the NWDAF <NUM> (see messaging <NUM>). Alternatively, in order to minimize the signaling between the APMF <NUM> and the NWDAF <NUM>, the APMF <NUM> may send a single report to the NWDAF <NUM> containing performance data for multiple communication sessions.

Note that, in order to improve signaling efficiency, the APMF <NUM> may defer reporting the performance data to the NWDAF <NUM> to a later time instance, when the APMF <NUM> has obtained performance data for more communication sessions and provides this data to NWDAF <NUM> in a batch.

In addition to the performance data, the APMF <NUM> may also report the UE IP address, the address/ID of the edge application server instance hosting the application, a timestamp denoting when the performance was measured and an identifier for the application. The report may be sent to the NWDAF <NUM> via the NEF <NUM>.

<FIG> depicts one embodiment of a network equipment apparatus <NUM> that may be used for selecting a server application instance, according to embodiments of the disclosure. In some embodiments, the network equipment apparatus <NUM> may be one embodiment of a NWDAF <NUM>. In certain embodiments, the network equipment apparatus <NUM> may be an embodiment of the SDMF <NUM>. In other embodiments, the network equipment apparatus <NUM> may be one embodiment of an APMF. Furthermore, network equipment apparatus <NUM> may include a processor <NUM>, a memory <NUM>, an input device <NUM>, an output device <NUM>, a transceiver <NUM>. In some embodiments, the input device <NUM> and the output device <NUM> are combined into a single device, such as a touch screen. In certain embodiments, the network equipment apparatus <NUM> does not include any input device <NUM> and/or output device <NUM>.

As depicted, the transceiver <NUM> includes at least one transmitter <NUM> and at least one receiver <NUM>. Here, the transceiver <NUM> communicates with one or more remote units <NUM>. Additionally, the transceiver <NUM> may support at least one network interface <NUM>. In some embodiments, the transceiver <NUM> supports an interface (e.g., an Nnwdaf interface) for communicating with an NWDAF. In some embodiments, the transceiver <NUM> supports an interface for communicating with an SDMF. In some embodiments, the transceiver <NUM> supports an interface for communicating with an APMF. In some embodiments, the transceiver <NUM> supports an interface (e.g., an Nupf interface) for communicating with an UPF in a mobile core network (e.g., a 5GC).

The processor <NUM> is communicatively coupled to the memory <NUM>, the input device <NUM>, the output device <NUM>, and the first transceiver <NUM>.

In various embodiments, the processor <NUM> controls the network equipment apparatus <NUM> to implement the above described NWDAF behaviors. In some embodiments, the processor <NUM> receives a request from a first network function (e.g., SDMF) to provide performance analytics for a first application. Here, the request includes a present location and a requested time. Additionally, the first application comprises a group of application instances. The processor generates performance analytics for the first application by using a first collection of performance data. Here, the performance analytics indicate a best application instance in the group of application instances for the present location and the requested time. Via the network interface, the processor reports the performance analytics to the first network function.

In some embodiments, the processor identifies a first set of APMFs capable of providing performance data for the first application, wherein each APMF provides performance data for at least one application instance in the group of application instances. In such embodiments, the processor may subscribe with each APMF in the first set of APMFs to receive performance data for the first application and build the first collection of performance data for the first application. Here, the first collection comprises all performance data for the first application received from the first set of APMFs, and each performance data is associated with a coverage location and time (e.g. the cell or cells in which the performance data was taken).

In certain embodiments, the processor selects a subset of performance data from a first collection of performance data. Here, each performance data in the subset has a coverage location matching the present location. As used herein, having a coverage location matching the present location means that the present UE location is inside the location wherein the performance data was taken.

In further embodiments, selecting the subset of performance data may include filtering the first collection according to the present location and a particular time. For example, if the request contains the parameter 'location=cell-X' and the request arrives at <NUM>:<NUM>, the the processor <NUM> may filter the first collection of performance data to discover the best instance for this location (cell-X) and arround this time (<NUM>:<NUM>). As such, performance data taken for this location but at <NUM>:<NUM>, may be irrelevant. Note that in various embodiments the first request specifies a requested time. Here, the processor filters the first collection according to the requested time.

In some embodiments, the processor <NUM> reports the performance analytics by providing - for each application instance in the group of application instances - at least one of: performance statistics and performance predictions. In some embodiments, reporting the performance analytics to the first network function includes suggesting an application instance. In some embodiments, the processor <NUM> reports the performance analytics to the first network function by providing a list of one or more server app instances and the associated performance data.

In various embodiments, the processor <NUM> controls the network equipment apparatus <NUM> to implement the above described SDMF behaviors. In some embodiments, the processor <NUM> receives a first request from a remote unit (i.e., UE) to discover an application server instance for a first application. Here, the remote unit corresponds to a first location. The processor <NUM> determines that the first request is serviceable by multiple application server instances at the first location and identifies an analytics function (e.g., NWDAF) that provides performance data analytics for the first application. Via the network interface, the processor <NUM> sends a second request to an NWDAF to retrieve performance data analytics for the first application at the first location and for a requested time. The processor <NUM> selects an optimal application server instance based on the performance data analytics. Via the network interface, the processor <NUM> sends a response to the first request, the response including the selected application server instance.

In some embodiments, the processor <NUM> receives a notification from the NWDAF, the notification including a list of plurality of application server instances for the first application and performance data analytics for the requested time at the first location for each of the application server instances of the list of the plurality of application server instances.

In some embodiments, the processor <NUM> receives PCC rules from a policy control function in the mobile communication network. In such embodiments, the processor <NUM> identifies the first application from the first request using the PCC rules. In certain embodiments, the processor <NUM> determines that the first request is serviceable by multiple application server instances using the PCC rules.

In some embodiments, the processor <NUM> configures a user plane function to route the first request to the selected application server instance. In some embodiments, the second request identifies the first application and the first location. In some embodiments, the first request comprises a DNS request. In such embodiments, the response to the first request comprises a DNS reply including an IP address of the selected application server instance.

In various embodiments, the processor <NUM> controls the network equipment apparatus <NUM> to implement the above described AMPF behaviors. In some embodiments, the processor <NUM> obtains performance of all (or a selected set) of communication sessions between a client app instance of a first application and a server app instances of the first application. The processor <NUM> may receive a subscription request from an analytics function. In response to obtaining performance data for a subscribed application, the processor <NUM>.

In certain embodiments, the AMPF and server app instance are located in the same EDN. In certain embodiments, the processor <NUM> configures an application server running the server app instance to report performance data. In one embodiment, the performance data include TCP statistics from the TCP layer. In certain embodiments, the processor <NUM> queries a location management server and associated performance data with a UE location.

In some embodiments, the memory <NUM> stores data relating to selecting a server application instance, for example storing server addresses, UE locations, DNS cache, and the like. In certain embodiments, the memory <NUM> also stores program code and related data, such as an operating system ("OS") or other controller algorithms operating on the network equipment apparatus <NUM> and one or more software applications.

The output device <NUM>, in one embodiment, may include any known electronically controllable display or display device. The output device <NUM> may be designed to output visual, audible, and/or haptic signals. In some embodiments, the output device <NUM> includes an electronic display capable of outputting visual data to a user. As another, nonlimiting, example, the output device <NUM> may include a wearable display such as a smart watch, smart glasses, a heads-up display, or the like.

In other embodiments, all or portions of the output device <NUM> may be located near the input device <NUM>.

As discussed above, the transceiver <NUM> may communicate with one or more remote units and/or with one or more interworking functions that provide access to one or more PLMNs. The transceiver <NUM> may also communicate with one or more network functions (e.g., in the mobile core network <NUM>). The transceiver <NUM> operates under the control of the processor <NUM> to transmit messages, data, and other signals and also to receive messages, data, and other signals. For example, the processor <NUM> may selectively activate the transceiver (or portions thereof) at particular times in order to send and receive messages.

The transceiver <NUM> may include one or more transmitters <NUM> and one or more receivers <NUM>. In certain embodiments, the one or more transmitters <NUM> and/or the one or more receivers <NUM> may share transceiver hardware and/or circuitry. For example, the one or more transmitters <NUM> and/or the one or more receivers <NUM> may share antenna(s), antenna tuner(s), amplifier(s), filter(s), oscillator(s), mixer(s), modulator/demodulator(s), power supply, and the like. In one embodiment, the transceiver <NUM> implements multiple logical transceivers using different communication protocols or protocol stacks, while using common physical hardware.

<FIG> depicts one embodiment of a method <NUM> for selecting a server application instance, according to embodiments of the disclosure. In various embodiments, the method <NUM> is performed by an analytics function, such as the NWDAF <NUM>, the NWDAF <NUM>, the network equipment apparatus <NUM>, described above. In some embodiments, the method <NUM> is performed by a processor, such as a microcontroller, a microprocessor, a CPU, a GPU, an auxiliary processing unit, a FPGA, or the like.

The method <NUM> begins and receives <NUM> a request from a first network function [i.e., SDMF] to provide performance analytics for a first application. Here, the request includes a present location and a requested time. Additionally, the first application comprises a group of application instances. The method <NUM> includes generating <NUM> performance analytics for the first application by using a first collection of performance data. Here, the performance analytics indicate a best application instance in the group of application instances for the present location and the requested time. The method <NUM> includes reporting <NUM> the performance analytics to the first network function. The method <NUM> ends.

<FIG> depicts one embodiment of a method <NUM> for selecting a server application instance, according to embodiments of the disclosure. In various embodiments, the method <NUM> is performed by a network function, such as the SDMF <NUM>, the SDMF <NUM>, the network equipment apparatus <NUM>, described above. In some embodiments, the method <NUM> is performed by a processor, such as a microcontroller, a microprocessor, a CPU, a GPU, an auxiliary processing unit, a FPGA, or the like.

The method <NUM> begins and receives <NUM> a first request from a remote unit to discover an application server instance for a first application. Here, the remote unit corresponds to a first location. The method <NUM> includes determining <NUM> that the first request is serviceable by multiple application server instances at the first location. The method <NUM> includes identifying <NUM> a NWDAF that provides performance data analytics for the first application.

The method <NUM> includes sending <NUM> a second request to an NWDAF to retrieve performance data analytics for the first application at the first location and for a requested time. The method <NUM> includes selecting <NUM> an optimal application server instance based on the performance data analytics. The method <NUM> includes sending <NUM> a response to the first request, the response including the selected application server instance. The method <NUM> ends.

Disclosed herein is a first apparatus for selecting a server application instance, according to embodiments of the disclosure. The first apparatus may be implemented by an analytics function, such as the NWDAF <NUM>, the NWDAF <NUM>, the network equipment apparatus <NUM>, described above. The first apparatus includes a network interface that communicates with a plurality of network functions (e.g., APMFs, SDMF, etc.) in a mobile communication network. The first apparatus includes a processor that receives a request from a first network function (e.g., SDMF) to provide performance analytics for a first application. Here, the request includes a present location and a requested time. Additionally, the first application comprises a group of application instances. The processor generates performance analytics for the first application by using a first collection of performance data. Here, the performance analytics indicate a best application instance in the group of application instances for the present location and the requested time. Via the network interface, the processor reports the performance analytics to the first network function.

In certain embodiments, the processor selects a subset of performance data from a first collection of performance data. Here, each performance data in the subset has a coverage location matching the present location. Here, matches means "the present UE location is inside the location wherein the performance data was taken. " In further embodiments, selecting the subset of performance data may include filtering the first collection according to the present location and the requested time.

In some embodiments, reporting the performance analytics includes providing - for each application instance in the group of application instances - at least one of: performance statistics and performance predictions. In some embodiments, reporting the performance analytics to the first network function includes suggesting an application instance. In some embodiments, reporting the performance analytics to the first network function includes providing a list of one or more server app instances and the associated performance data.

Disclosed herein is a first method for selecting a server application instance, according to embodiments of the disclosure. The first method may be performed by an analytics function, such as the NWDAF <NUM>, the NWDAF <NUM>, the network equipment apparatus <NUM>, described above. The first method includes receiving a request from a first network function (e.g., SDMF) to provide performance analytics for a first application. Here, the request includes a present location and a requested time. Additionally, the first application comprises a group of application instances. The method includes generating performance analytics for the first application by using a first collection of performance data. Here, the performance analytics indicate a best application instance in the group of application instances for the present location and the requested time. The method includes reporting the performance analytics to the first network function.

In some embodiments, the first method includes identifying a first set of APMFs capable of providing performance data for the first application. Here, each APMF provides performance data for at least one application instance in the group of application instances. In such embodiments, the first method may include subscribing with each APMF in the first set of APMFs to receive performance data for the first application and build the first collection of performance data for the first application. Here, the first collection comprises all performance data for the first application received from the first set of APMFs, and each performance data is associated with a coverage location and time (e.g. the cell or cells in which the performance data was taken).

In certain embodiments, the first method includes selecting a subset of performance data from a first collection of performance data, wherein each performance data in the subset has a coverage location matching the present location. Here, matches means "the present UE location is inside the location wherein the performance data was taken. " In further embodiments, selecting the subset of performance data may include filtering the first collection according to the present location and the requested time.

Disclosed herein is a second apparatus for selecting a server application instance, according to embodiments of the disclosure. The second apparatus may be implemented by a network function, such as the SDMF <NUM>, the SDMF <NUM>, the network equipment apparatus <NUM>, described above. The second apparatus includes a network interface that communicates with a plurality of network functions (e.g., NWDAF, UPF, etc.) in a mobile communication network. The second apparatus includes a processor that receives a first request from a remote unit to discover 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 multiple application server instances at the first location and identifies an analytics function (e.g., NWDAF) that provides performance data analytics for the first application. Via the network interface, the processor sends a second request to an NWDAF to retrieve performance data analytics for the first application at the first location and for a requested time. The processor selects an optimal application server instance based on the performance data analytics. Via the network interface, the processor sends a response to the first request, the response including the selected application server instance.

In some embodiments, the processor receives a notification from the NWDAF, the notification including a list of plurality of application server instances for the first application and performance data analytics for the requested time at the first location for each of the application server instances of the list of the plurality of application server instances.

In some embodiments, the processor receives PCC rules from a policy control function in the mobile communication network. In such embodiments, the processor identifies the first application from the first request using the PCC rules. In certain embodiments, the processor determines that the first request is serviceable by multiple application server instances using the PCC rules.

In some embodiments, the processor configures a user plane function to route the first request to the selected application server instance. In some embodiments, the second request identifies the first application and the first location. In some embodiments, the first request comprises a DNS request. In such embodiments, the response to the first request comprises a DNS reply including an IP address of the selected application server instance.

Disclosed herein is a second method for selecting a server application instance, according to embodiments of the disclosure. The second method may be implemented by a network function, such as the SDMF <NUM>, the SDMF <NUM>, the network equipment apparatus <NUM>, described above. The second method includes receiving a first request from a remote unit to discover an application server instance for a first application. Here, the remote unit corresponds to a first location. The second method includes determining that the first request is serviceable by multiple application server instances at the first location. The second method includes identifying an analytics function (e.g., NWDAF) that provides performance data analytics for the first application. The second method includes sending a second request to the analytics function to retrieve performance data analytics for the first application at the first location and for a requested time. The second method includes selecting an optimal application server instance based on the performance data analytics. The second method includes sending a response to the first request, the response including the selected application server instance.

In some embodiments, the second method includes receiving a notification from the NWDAF, the notification including a list of plurality of application server instances for the first application and performance data analytics for the requested time at the first location for each of the application server instances of the list of the plurality of application server instances.

In some embodiments, the second method includes receiving PCC rules from a policy control function in the mobile communication network. In such 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 multiple application server instances using the PCC rules.

In some embodiments, the second method includes configuring a user plane function to route the first request to the selected application server instance. In some embodiments, the second request identifies the first application and the first location. In some embodiments, the first request comprises a DNS request. In such embodiments, the response to the first request comprises a DNS reply including an IP address of the selected application server instance.

Claim 1:
An analytics function (<NUM>) comprising:
a network interface (<NUM>) arranged to communicate with a plurality of network functions in a mobile communication network; and
a processor (<NUM>) arranged to:
receive a request from a first network function to provide performance analytics for a first application, wherein the request includes a location of a remote unit and a requested time, wherein the first application comprises a group of server application instances;
generate performance analytics for the first application by using a first collection of performance data, wherein the performance analytics indicate a best server application instance in the group of server application instances for the location of the remote unit and the requested time; and
report the performance analytics to the first network function.