Patent Description:
Considering the development of wireless communication from generation to generation, the technologies have been developed mainly for services targeting humans, such as voice calls, multimedia services, and data services. Following the commercialization of <NUM> (5th-generation) communication systems, it is expected that the number of connected devices will exponentially grow. Increasingly, these will be connected to communication networks. Examples of connected things may include vehicles, robots, drones, home appliances, displays, smart sensors connected to various infrastructures, construction machines, and factory equipment. Mobile devices are expected to evolve in various form-factors, such as augmented reality glasses, virtual reality headsets, and hologram devices. In order to provide various services by connecting hundreds of billions of devices and things in the <NUM> (6th-generation) era, there have been ongoing efforts to develop improved <NUM> communication systems. For these reasons, <NUM> communication systems are referred to as beyond-<NUM> systems.

<NUM> communication systems, which are expected to be commercialized around <NUM>, will have a peak data rate of tera (<NUM>,<NUM> giga)-level bps and a radio latency less than 100µsec, and thus will be <NUM> times as fast as <NUM> communication systems and have the <NUM>/<NUM> radio latency thereof.

In order to accomplish such a high data rate and an ultra-low latency, it has been considered to implement <NUM> communication systems in a terahertz band (for example, <NUM> to 3THz bands). It is expected that, due to more severe path loss and atmospheric absorption in the terahertz bands than those in mmWave bands introduced in <NUM>, technologies capable of securing the signal transmission distance (that is, coverage) will become more crucial. It is necessary to develop, as major technologies for securing the coverage, radio frequency (RF) elements, antennas, novel waveforms having a better coverage than orthogonal frequency division multiplexing (OFDM), beamforming and massive multiple input multiple output (MIMO), full dimensional MIMO (FD-MIMO), array antennas, and multiantenna transmission technologies such as large-scale antennas. In addition, there has been ongoing discussion on new technologies for improving the coverage of terahertz-band signals, such as metamaterial-based lenses and antennas, orbital angular momentum (OAM), and reconfigurable intelligent surface (RIS).

Moreover, in order to improve the spectral efficiency and the overall network performances, the following technologies have been developed for <NUM> communication systems: a full-duplex technology for enabling an uplink transmission and a downlink transmission to simultaneously use the same frequency resource at the same time; a network technology for utilizing satellites, high-altitude platform stations (HAPS), and the like in an integrated manner; an improved network structure for supporting mobile base stations and the like and enabling network operation optimization and automation and the like; a dynamic spectrum sharing technology via collison avoidance based on a prediction of spectrum usage; an use of artificial intelligence (AI) in wireless communication for improvement of overall network operation by utilizing Al from a designing phase for developing <NUM> and internalizing end-to-end Al support functions; and a next-generation distributed computing technology for overcoming the limit of UE computing ability through reachable super-high-performance communication and computing resources (such as mobile edge computing (MEC), clouds, and the like) over the network. In addition, through designing new protocols to be used in <NUM> communication systems, developing mechanisms for implementing a hardware-based security environment and safe use of data, and developing technologies for maintaining privacy, attempts to strengthen the connectivity between devices, optimize the network, promote softwarization of network entities, and increase the openness of wireless communications are continuing.

It is expected that research and development of <NUM> communication systems in hyper-connectivity, including person to machine (P2M) as well as machine to machine (M2M), will allow the next hyper-connected experience. Particularly, it is expected that services such as truly immersive extended reality (XR), high-fidelity mobile hologram, and digital replica could be provided through <NUM> communication systems. In addition, services such as remote surgery for security and reliability enhancement, industrial automation, and emergency response will be provided through the <NUM> communication system such that the technologies could be applied in various fields such as industry, medical care, automobiles, and home appliances.

With advancements in smart devices, the amount of data being processed by smart devices has increased, and types of data processed by the smart devices have diversified. In other words, as types of smart devices have diversified and their performance has improved, the amount of data to be processed has increased, and a required level of data processing has been heightened.

Accordingly, an offloading technology is required which allows a part of data to be processed by a smart device to be processed by a server instead of the smart device. When it is more efficient to transmit data to a server for processing than to process the data in a smart device, the offloading technology refers to a technology that allows the smart device to transmit some of its data to the server for processing and receive a result of the processing from the server.

Moreover, when a plurality of smart devices offload data, each of the smart devices may offload a different type of data, and thus, different requirements need to be satisfied. Furthermore, as data is offloaded from multiple smart devices, there is a need for an offloading technology that takes into account real-time changing channel conditions and server environment.

A prior art of <CIT> concerns a method for offloading data.

Accordingly, an aspect of the disclosure is to provide a method and an apparatus for offloading data in a wireless communication system.

Another aspect of the disclosure is to provide a method and an apparatus for offloading data so as to satisfy preset requirements.

Another aspect of the disclosure is to provide a method and an apparatus for offloading data according to changing channel conditions and server environment.

In accordance with an aspect of the disclosure, a method performed by a user equipment (UE) of offloading data is provided is provided as defined by the appended claims.

In accordance with another aspect of the disclosure, a method performed by a server of processing offloading data is provided as defined by the appended claims. In accordance with another embodiment of the disclosure, a UE for offloading data is provided as defined by appended claims.

In accordance with another embodiment of the disclosure, a server for processing offloading data is provided as defined by the appended claims.

Throughout the specification, it will be understood that when an element is referred to as being "connected" or "coupled" to another element, it can be directly connected to or electrically coupled to the other element with one or more intervening elements interposed therebetween. Furthermore, when a part "includes" or "comprises" an element, unless there is a particular description contrary thereto, the part may further include other elements, not excluding the other elements.

Examples of a terminal may include a user equipment (UE), a mobile station (MS), a cellular phone, a smartphone, a computer, a multimedia system capable of performing a communication function, or the like.

Expressions, such as "in some embodiments of the disclosure" or "in an embodiment of the disclosure" described in various parts of this specification do not necessarily refer to the same embodiment(s) of the disclosure.

Some embodiments of the disclosure may be described in terms of functional block components and various processing operations. Some or all of such functional blocks may be implemented by any number of hardware and/or software components that perform particular functions. For example, functional blocks of the disclosure may be implemented by one or more microprocessors or by circuit components for performing certain functions. For example, functional blocks according to the disclosure may be implemented with any programming or scripting language. The functional blocks may be implemented using various algorithms executed by one or more processors. Furthermore, the disclosure may employ techniques of the related art for electronics configuration, signal processing and/or data processing. Terms, such as "module" and "configuration" may be used in a broad sense and are not limited to mechanical or physical embodiments.

Furthermore, connecting lines or connectors shown in various figures are intended to represent functional relationships and/or physical or logical couplings between components in the figures. In an actual device, connections between components may be represented by alternative or additional various functional connections, physical connections, or logical connections.

In addition, the expression 'at least one of a or b' indicates 'a or b', or 'both a and b'.

Hereinafter, the disclosure will be described with reference to the accompanying drawings.

<FIG> is a schematic diagram of a system for offloading data according to an embodiment of the disclosure.

Referring to <FIG>, the system for offloading data may include a UE <NUM> and a server <NUM>.

According to an embodiment of the disclosure, a data offloading method and apparatus for performing, at the server <NUM>, a part of data processing done at the UE <NUM> may be provided.

Referring to <FIG>, examples of the UE <NUM> may include, but are not limited to, a smartphone, a tablet PC, a PC, a smart TV, a mobile phone, a personal digital assistant (PDA), a laptop, a media player, a micro server, a global positioning system (GPS), an electronic book terminal, a digital broadcasting terminal, a navigation device, a kiosk, an MP3 player, a digital camera, home appliances, and other mobile or non-mobile computing devices. Furthermore, the UE <NUM> may be a wearable device, such as a watch, glasses, a hair band, or a ring, having a communication function and a data processing function. However, embodiments of the disclosure are not limited thereto, and the UE <NUM> may include any apparatus capable of transmitting or receiving data to or from the server <NUM> via a network.

According to an embodiment of the disclosure, the network may include a local area network (LAN), a wide area network (WAN), a value added network (VAN), a mobile radio communication network, a satellite communication network, and a combination thereof. Furthermore, the network may be a comprehensive data communication network configured to enable smooth communication across network entities shown in <FIG> and include a wired Internet, a wireless Internet, and a mobile wireless communication network.

Examples of a wireless communication technology may include, but are not limited to, a wireless LAN (Wi-Fi), Bluetooth, Bluetooth Low Energy (BLE), ZigBee, Wi-Fi Direct (WFD), Ultra-Wideband (UWB), Infrared Data Association (IrDA), and Near Field Communication (NFC).

In addition, according to an embodiment of the disclosure, the server <NUM> may communicate with the UE <NUM> via the network, process data received from the UE <NUM>, and transmit a result of the processing to the UE <NUM>. When at least some of data for the UE <NUM> is processed by the server <NUM>, the at least some of the data processed by the server <NUM> is hereinafter referred to as offloading data.

<FIG> is a diagram illustrating a server for processing offloading data according to an embodiment of the disclosure.

Referring to <FIG>, the UE <NUM> may include an operating system (OS) and hardware (HW). A processor of the UE <NUM> may process data. Furthermore, the UE <NUM> may allow some of its data to be processed on servers <NUM>-<NUM> and <NUM>-<NUM> and receive results of the processing from the servers <NUM>-<NUM> and <NUM>-<NUM>. According to an embodiment of the disclosure, the efficiency of data processing may be improved by processing at least some of the data on the servers <NUM>-<NUM> and <NUM>-<NUM> rather than processing all of the data on the UE <NUM> alone. In this case, the servers <NUM>-<NUM> and <NUM>-<NUM> according to an embodiment of the disclosure are servers configured for more efficient use of physical servers, and may be servers to which a virtualization technology is applied.

According to an embodiment of the disclosure, the server <NUM>-<NUM> is a server for performing computing based on a virtual machine (VM). More particularly, the server <NUM>-<NUM> may be a server for virtualizing hardware resources using a hypervisor. The hypervisor is software that enables multiple OSs to run and may be, for example, a virtual machine monitor (VMM). In other words, the server <NUM>-<NUM> is a server capable of virtualizing hardware and monitoring the virtualized hardware.

Furthermore, according to an embodiment of the disclosure, the server <NUM>-<NUM> is a server that performs container-based distributed computing. A container for the server <NUM>-<NUM> may run an application in its own isolated space. Accordingly, the server <NUM>-<NUM> may run a plurality of applications on one physical server.

The server <NUM>-<NUM> for performing VM-based computing and the server <NUM>-<NUM> for performing container-based computing are merely an example of a server, and embodiments of the disclosure are not limited thereto. The server may be any server capable of receiving and processing data for the UE <NUM>.

<FIG> is a flowchart of a method, performed by a system, of offloading data according to a claimed embodiment of the disclosure.

Referring to <FIG>, the UE <NUM> may receive server information from the server <NUM> at operation S310. The server information received from the server <NUM> may include computing capability information of the server <NUM>, capacity information of the server <NUM>, or information about a condition of a communication channel for the server <NUM>.

The UE <NUM> determines a server for processing offloading data based on the received server information at operation S320. The UE <NUM> may determine whether data is suitable for processing in the server <NUM> based on the server information. The UE <NUM> may also determine whether to offload the data to the server <NUM> based on a result of the determination.

The UE <NUM> transmits data to the server <NUM> at operation S330. For example, the data may be an executable file for software constituting an application. In other words, the UE <NUM> may copy code constituting the executable file for the software and transmit the copied code to the server <NUM>.

The server <NUM> determines a splitting point at which the received data is splittable at operation S340. More particularly, upon receipt of the code constituting the executable file for the software, the server <NUM> may analyze the received code and split the code to determine executable points in the code. In this case, a splitting point may mean a point for splitting the code into code parts that are to be executed even when the code is offloaded because each part has no dependency on the other parts of the code. In other words, the splitting point may be used as a reference for splitting the code into code parts, each part being independently executable. On the other hand, when the UE <NUM> has sufficient capabilities, the UE <NUM> may directly analyze the data to determine a splitting point at which the data is splittable.

The UE <NUM> receives a list regarding splitting points at which the data is splittable at operation S350. For example, when a splitting point corresponds to a particular part of the code, the UE <NUM> may receive a list including information regarding corresponding parts of the code.

The UE <NUM> determines an offloading point for the data based on the received list at operation S360. More particularly, the UE <NUM> may select, as an offloading point, a point for splitting the data from among the splitting points included in the list. In this case, data corresponding to the offloading point may be determined as offloading data to be processed by the server <NUM>.

The offloading point may include a start point and an end point of offloading data. When the data is code constituting an executable file for software, start and end points of the code may be offloading points. For example, when offloading points are a first line and a 500th line of the code, the first line of the code through the 500th line of the code may be offloading data to be processed by the server <NUM>.

The UE <NUM> transmits information about the offloading point and information about requirements corresponding thereto at operation S370. When the UE <NUM> transmits information about the offloading point to the server <NUM>, the server <NUM> may recognize information about offloading data. For example, the server <NUM> may recognize a start point and an end point of offloading data based on the offloading point.

Furthermore, the UE <NUM> may transmit information about requirements for the offloading data corresponding to the offloading point. The information about the requirements for the offloading data may include reference information for processing the offloading data.

The UE <NUM> receives a response as to whether offloading data is capable of being processed by the server <NUM> at operation S380. More particularly, the server <NUM> may determine whether it is capable of processing the offloading data so as to satisfy the requirements based on the received information about the offloading point and information about the requirements. As a result of the determination, the server <NUM> may transmit, to the UE <NUM>, a response including information about whether the server <NUM> is capable of processing the offloading data.

The UE <NUM> determines whether the offloading data is to be processed by the server <NUM> based on the received response at operation S390. More particularly, when the UE <NUM> determines that the offloading data is to be processed by the server <NUM>, the UE <NUM> may transmit information necessary for processing the offloading data to the server <NUM> and receive a result of the processing of the offloading data from the server <NUM>. In this case, the information necessary for processing the offloading data may be changed according to the response received from the server <NUM>, as described below. On the other hand, when the UE <NUM> determines that the offloading data is not to be processed by the server <NUM>, the UE <NUM> may terminate the data offloading procedure.

<FIG> is a flowchart of a method, performed by a UE, of offloading data according to an embodiment of the disclosure.

Referring to <FIG>, the UE <NUM> may determine the server <NUM> for processing at least a part of data at operation S410. More particularly, the UE <NUM> may receive server information from the server <NUM> and determine the server <NUM> for processing at least a part of data for the UE <NUM> based on the received server information.

The UE <NUM> may receive a list regarding splitting points at which the data is splittable from the server <NUM> at operation S420. More particularly, the UE <NUM> may copy the data and provide the copied data to the server <NUM>. The data may be a software executable file constituting an application. For example, the data may be Java bytecode constituting an Android application. The UE <NUM> may provide the copied code to the server <NUM> and may receive a list regarding splitting points at which the code is splittable from the server <NUM>. For example, when the code is splittable at a first line, a 500th line, a 700th line, and a 1000th line, the UE <NUM> may receive a list regarding the corresponding splitting points from the server <NUM>.

In the disclosure, although code constituting an application has been described as an example of data for convenience, a type of the data is not limited thereto, and the data may be any type of data capable of being processed by the UE <NUM> or the server <NUM>. For convenience of description, splitting points at which data is splittable are hereinafter indicated as A, B, C, and D.

The UE <NUM> may determine at least one of the splitting points as an offloading point based on the list at operation S430. When the UE <NUM> determines points A and B as offloading points, data corresponding to point A to point B may be determined as offloading data. On the other hand, when the UE <NUM> selects only point A as an offloading point, offloading data may be data before or after point A. In other words, the offloading point may be used as a reference for determining the offloading data.

The UE <NUM> may transmit, to the server <NUM>, information about the offloading point and information about requirements for offloading data corresponding to the offloading point at operation S440. For example, the UE <NUM> may transmit points A and B determined as the offloading points to the server <NUM>. Furthermore, the UE <NUM> may transmit information about requirements for offloading data corresponding to point A to point B to the server <NUM>. The information about the requirements may include reference information for processing the offloading data corresponding to point A to point B. For example, the requirements may include information indicating that a latency of less than <NUM> or image quality of <NUM> or higher should be satisfied. Information that may be included in the requirements will be described below with reference to <FIG>.

The UE <NUM> may receive, from the server <NUM>, a response as to whether the offloading data is capable of being processed by the server <NUM> at operation S450. Determining whether the offloading data is to be processed by the server <NUM> may mean determining whether the server <NUM> is capable of processing the offloading data so as to satisfy the requirements therefor. The response received from the server <NUM> may include an indicator indicating whether the server <NUM> is capable of processing the offloading data. While an acknowledgement (ACK) or negative-ACK (NACK) will be hereinafter described, for convenience, as an example of an indicator indicating whether the server <NUM> is capable of processing offloading data, a type of the indicator is not limited thereto, and the indicator may be any type of indicator capable of indicating whether the server <NUM> is capable of processing the offloading data.

More particularly, when the server <NUM> is capable of processing the offloading data so as to satisfy the received requirements, the response may include an ACK. On the other hand, when the server <NUM> is not capable of processing the offloading data so as to satisfy the requirements, the response may include a NACK when the requirements are mandatory requirements and include change request information when the requirements are not mandatory requirements.

The UE <NUM> may determine whether the offloading data is to be processed by the server <NUM> based on the received response at operation S460. The received response may include at least one of an ACK, a NACK, or change request information.

More particularly, when the received response includes only an ACK, the UE <NUM> may transmit information necessary for processing the offloading data to the server <NUM> and receive a result of the processing of the offloading data from the server <NUM>. In this case, the information necessary for processing the offloading data may be data context information stored in a memory of the UE <NUM>. More particularly, a result value of data processed by the UE <NUM> may be an input value for the offloading data to be processed by the server <NUM>, and thus, the UE <NUM> may transmit data context information previously stored in the memory to the server <NUM>. For example, when a code corresponding to point B to point C is determined as offloading data, the UE <NUM> may transmit data necessary for executing the code corresponding to point B to point C to the server <NUM>. In this case, the information necessary for processing the offloading data may be a result value obtained by executing the code corresponding to point A to point B or a data context.

On the other hand, when the received response includes a NACK, the UE <NUM> may determine to terminate the offloading procedure. The UE <NUM> may request the server <NUM> to terminate the offloading procedure. Furthermore, when the offloading procedure is terminated, the UE <NUM> may process data alone or request offloading of its data from a new server <NUM>.

In addition, when the received response includes change request information along with an ACK or NACK, the UE <NUM> may determine whether to change the offloading point or requirements based on the change request information. In other words, when the response as to whether the offloading data is capable of being processed by the server <NUM> includes change request information, the UE <NUM> may change the offloading point or requirements based on the change request information and transmit, to the server <NUM>, information necessary for processing offloading data changed based on the changed offloading point or requirements. When the offloading point is changed, information necessary for processing the changed offloading data may include data context information of the UE <NUM>, corresponding to the changed offloading point. For example, when offloading data corresponding to point B to point C is changed to offloading data corresponding to point C to point D, information necessary for processing the changed offloading data may be obtained by changing information for executing a code corresponding to point B to point C to information necessary for executing a code corresponding to point C to point D.

Moreover, when the requirements are changed, information necessary for processing the changed offloading data may include information about the changed requirements. The requirement information will be described below with reference to <FIG>.

<FIG> is a diagram illustrating distributed machine learning according to an embodiment of the disclosure.

Referring to <FIG>, the UE <NUM> may perform distributed machine learning which allows the server <NUM> to process at least some of training data <NUM> for machine learning. More particularly, the server <NUM> may perform training on training data <NUM> for the server <NUM>, including at least some of the training data <NUM>. Furthermore, the server <NUM> may transmit a result of the training of the training data <NUM> to the UE <NUM>. In addition, the UE <NUM> may perform training on training data <NUM> for the UE <NUM> based on the result of the training of the training data <NUM>, which is received from the server <NUM>. Moreover, the UE <NUM> may perform inference on certain data based on the results of training of the training data <NUM> and the training data <NUM>. More particularly, the UE <NUM> may infer an output value for input data based on results of distributed training on the training data <NUM>. Furthermore, the inference on the data may also be performed by the UE <NUM> and the server <NUM> in a distributed manner.

Although <FIG> shows an example in which the UE <NUM> additionally performs training based on a training result from the server <NUM>, the training may be performed the other way round, i.e., the UE <NUM> may first train at least some of the training data <NUM> and then the server <NUM> may additionally performs training based on a training result from the UE <NUM>. Furthermore, the UE <NUM> may receive the result of training from the server <NUM> and infer an output value for input data based on a received result of distributed training. In addition, the server <NUM> may perform distributed inference by inferring an output value for input data based on the result of distributed training.

<FIG> is a diagram illustrating a method, performed by a UE, of determining a server for performing data offloading according to an embodiment of the disclosure.

Referring to <FIG>, before offloading its data, the UE <NUM> may determine a server for performing offloading. Although <FIG> shows an example in which server information is first broadcast to the UE <NUM>, the UE <NUM> may first broadcast UE information to a server. More particularly, when the UE information is first broadcast to the server, the server may broadcast server information to the UE <NUM> based on the broadcast UE information.

The UE <NUM> may receive first server information from a first server <NUM> at operation S610. Furthermore, the UE <NUM> may receive second server information from a second server <NUM> at operation S620.

The UE <NUM> may determine to offload its data to the first server <NUM> at operation S630. More particularly, the UE <NUM> may determine to offload the data to the first server <NUM> that is one of the first and second servers <NUM> and <NUM> based on the received first server information and second server information. For example, the UE <NUM> may determine to offload the data to the first server <NUM> by taking into account channel conditions, supportable quality of service (QoS), capacity information, or the like, for the first and second servers <NUM> and <NUM>, which are respectively included in the first server information and the second server information.

The UE <NUM> may transmit a server access request and UE information to the first server <NUM> at operation S640. The first server <NUM> may then transmit an access grant to the UE <NUM> based on the received server request access and UE information at operation S650. Accordingly, the UE <NUM> may be connected to the first server <NUM> via a network.

The UE <NUM> may transmit the data to the first server <NUM> at operation S660. More particularly, the UE <NUM> may copy code and transmit the copied code to the first server <NUM> in advance. Descriptions of an offloading procedure are already provided above with respect to <FIG>, and thus will be omitted here.

<FIG> is a diagram illustrating a method, performed by a UE, of changing or adding a server for performing data offloading while performing an offloading procedure according to an embodiment of the disclosure;.

Descriptions that are already provided above with respect to <FIG> will be omitted when describing the method of <FIG>.

Referring to <FIG>, the UE <NUM> may determine to offload data to the first server <NUM> at operation S630. In this case, when the data is related to a delay-sensitive service, the UE <NUM> may determine to offload the data to the first server <NUM> and transmit the data in advance to the second server <NUM>, which is a candidate server, as well as the first server <NUM>. On the other hand, when the data is related to a delay-insensitive service, the UE <NUM> may transmit data only to the first server <NUM> and may not transmit the data to the second server <NUM> as a candidate server in advance.

The UE <NUM> may perform an offloading procedure for offloading to the first server <NUM> at operation S631.

The UE <NUM> may determine to offload the data to the second server <NUM> while performing the offloading procedure at operation S632. In this case, the second server <NUM> may be added such that the UE offloads the data to the second server <NUM> as well as the first server <NUM>. Moreover, the UE <NUM> may change a server to which the data is to be offloaded from the first server <NUM> to the second server <NUM>. In other words, the UE <NUM> may add or change the second server <NUM> based on a result of the offloading procedure performed with the first server <NUM>.

The UE <NUM> may perform an offloading procedure for offloading to the second server <NUM> at operation S633. In this case, when the data is previously transmitted to the second server <NUM> because the data is related to a delay-sensitive service, the second server <NUM> may perform an offloading procedure based on the previously transmitted data, which facilitates processing of the delay-sensitive. On the other hand, when the data is not previously transmitted to the second server <NUM> because the data is related to a delay-insensitive service, the second server <NUM> may receive offloading data from the UE <NUM> and perform processing only on the received offloading data, which allows efficient use of capacity of the second server <NUM>.

<FIG> is a diagram illustrating a system in which a mediator matches a server for performing offloading of data according to an embodiment of the disclosure.

According to an embodiment of the disclosure, a separate mediator <NUM> may determine a server to which data for the UE <NUM> is to be offloaded. The mediator <NUM> is a device for determining a server to which data for the UE <NUM> is to be offloaded, and may be configured as a server or a network entity.

Referring to <FIG>, the mediator <NUM> may receive UE information from the UE <NUM>. Furthermore, the mediator <NUM> may respectively receive first server information and second server information from the first and second servers <NUM> and <NUM>. The mediator <NUM> may determine which of the first and second servers is to match the UE <NUM> based on the first server information and the second server information.

The mediator <NUM> may transmit a matching result to the UE <NUM>, the first server <NUM>, and the second server <NUM>. For example, when the mediator <NUM> determines to match the UE <NUM> with the first server <NUM>, the UE <NUM> may perform an offloading procedure for offloading to the first server <NUM> according to the matching result.

Moreover, according to an embodiment of the disclosure, the mediator <NUM> may determine not only which server is to match the UE <NUM> but also which part of offloading data <NUM> is to be processed at each of the first and second servers <NUM> and <NUM>. Referring to <FIG>, the mediator <NUM> may analyze splitting points at which the offloading data <NUM> is splittable as points A through C. The mediator <NUM> may determine offloading data <NUM> to be processed at the first server <NUM> as being data corresponding to point A to point B of the offloading data <NUM>. Furthermore, the mediator <NUM> may determine offloading data <NUM> to be processed at the second server <NUM> as being data corresponding to point B to point C of the offloading data <NUM>. In other words, the UE <NUM> allows the first server <NUM> to process the offloading data <NUM> for the first server <NUM> as some of the offloading data <NUM> while allowing the second server <NUM> to process the offloading data <NUM> for the second server <NUM> as the rest thereof.

<FIG> is a diagram illustrating an operation of allocating server resources to a UE group according to an embodiment of the disclosure.

Referring to <NUM> of <FIG>, at least some of available resources of the server <NUM> may be allocated to a particular UE group. More particularly, when a particular UE group subscribes to a certain service, the server <NUM> may allocate some of the available resources of the server <NUM> to the particular UE group in order to support the service for the UE group. In this case, when the particular UE group pays a fee for subscription to the service, the server <NUM> may allocate different resources to the particular UE group according to the paid fee or characteristics of the service.

Furthermore, referring to <NUM> of <FIG>, when resources previously reserved on the particular UE group are insufficient, additional resources of the server <NUM> may be allocated to the UE group. More particularly, when the server <NUM> has available resources other than the previously reserved resources on the particular UE group, the server <NUM> may allocate additional resources to the particular UE group, and the UE group may use the additional resources.

In addition, referring to <NUM> of <FIG>, when the resources previously reserved on the particular UE group are sufficient, the server <NUM> may use fewer resources than the previously reserved resources for the particular UE group.

<FIG> is a flowchart of a method of determining offloading data or requirements corresponding thereto according to an embodiment of the disclosure.

More particularly, <FIG> is a flowchart illustrating a server's response when information about an offloading point and information about requirements received from the UE <NUM> are recommended requirements.

Referring to <FIG>, the server <NUM> may receive information about the offloading point and information about requirements at operation S910.

The server <NUM> may then determine whether the offloading point and the requirements are acceptable based on the received information at operation S920. When the server <NUM> determines that the offloading point and the requirements are acceptable in operation S920, the server <NUM> may transmit a response including an ACK at operation S930.

When the offloading point and the requirements are mandatory requirements, the server <NUM> is required to transmit a response including a NACK when even at least some of the offloading point and requirements are not acceptable. In other words, when the offloading point and the requirements are mandatory requirements, the server <NUM> is unable to change any of the offloading point and requirements, so it does not need to determine whether all of the offloading point and requirements are unacceptable.

On the other hand, when the server <NUM> determines that the offloading point and the requirements are not acceptable in operation S920, the server <NUM> may determine whether all of the offloading points and requirements are unacceptable at operation S940. In other words, in this case, the offloading point and requirements may be recommended requirements.

When all of the offloading point and requirements are unacceptable, the server <NUM> may transmit a response including a NACK at operation S950. On the other hand, according to an embodiment of the disclosure, even when all of the offloading points and requirements are unacceptable, the server <NUM> may transmit a response including information indicating a proposal of a new offloading point or new requirements.

When even some of the offloading point and the requirements are acceptable, the server <NUM> may transmit a response including a NACK and change request information at operation S960. More particularly, the server <NUM> may request a change to an unacceptable part of the offloading point and requirements.

<FIG> shows a table illustrating requirements according to an embodiment of the disclosure.

Referring to <FIG>, a type <NUM> of requirements may include a case where requirements for offloading data are mandatory requirements (<NUM>) and a case where the requirements for offloading data are recommended requirements (<NUM>).

In the case where the requirements for offloading data are mandatory requirements that must be satisfied (<NUM>), when the server <NUM> is not capable of accepting the mandatory requirements, the server <NUM> may return a NACK, or when there is no response within a preset time period, the response is considered a NACK (<NUM>). In other words, although the server <NUM> should return a NACK when it is not capable of accepting at least some of the mandatory requirements, the response may also be considered a NACK even when there is no response. Furthermore, when the server <NUM> is not capable of accepting the mandatory requirements, the server <NUM> may delete or drop the received data and may not perform an offloading procedure.

Moreover, when the server <NUM> is not capable of accepting the mandatory requirements, it may further return a NACK and details of a change request (<NUM>). More particularly, when the server <NUM> is not able to satisfy the mandatory requirements, it may propose details of a change request for changing the mandatory requirements while returning a NACK. For example, the server <NUM> may return, along with a NACK, minimum and/or maximum requirement information that the server <NUM> itself is able to provide. Furthermore, the server <NUM> may include, in the details of the change request, QoS requirements corresponding to a request for reduction of a volume of offloading data or a downgraded service.

On the other hand, when the server <NUM> is capable of accepting the mandatory requirements, the server <NUM> may return an ACK, or when no response is received within a preset time period, the response is considered an ACK (<NUM>). Moreover, when no response is received within the preset time period, information about whether the response is considered an ACK or NACK may be included in details of the mandatory requirements or may be preset between the UE <NUM> and the server <NUM>. For example, in a case where the details of the mandatory requirements include information indicating that 'when no response is received from the server <NUM> within <NUM>, the response is considered an ACK', the UE <NUM> may consider the response as an ACK when a response is not actually received from the server <NUM> within <NUM>, and may continue to perform the offloading procedure.

In the case where the requirements for offloading data are recommended requirements (<NUM>), the server <NUM> may not return a NACK even when it is not capable of accepting the recommended requirements (<NUM>). In other words, even when the server <NUM> is not capable of accepting the recommended requirements, the server <NUM> may process offloaded data based on the changed requirements. Accordingly, when the recommended requirement are not acceptable, the server <NUM> may transmit information about a difference between the recommended requirements and the changed requirements together with a NACK or ACK.

On the other hand, when the server <NUM> is capable of accepting the recommended requirements, it may return an ACK, or when there is no response, the response is considered an ACK (<NUM>). As described above, when no response is received from the server <NUM>, whether the response is considered an ACK or NACK may be included in details of the recommended requirements or may be preset between the UE <NUM> and the server <NUM>.

According to an embodiment of the disclosure, details <NUM> of the requirements may include QoS information, capacity information, and processing time information. More particularly, the QoS information may mean information about minimum QoS requirements that must be satisfied when processing offloading data. For example, the QoS information may include image quality information, data transfer rate information, latency information, or the like, but is not limited thereto and may include any information related to QoS.

Furthermore, the capacity information may be information about a memory capacity required for processing offloading data. For example, the server <NUM> may determine whether a memory capacity available for processing offloading data is to satisfy the requirements of the UE <NUM>.

The processing time information included in the details <NUM> of the requirements is now described more fully with reference to <FIG>.

<FIG> shows a table illustrating processing time information according to an embodiment of the disclosure.

Referring to <FIG>, the details <NUM> of the requirements received from the UE <NUM> may include processing time information <NUM>. The processing time information <NUM> is information related to a UE estimated time and a server estimated time. The server <NUM> may determine a response to the requirements for offloading data based on the processing time information <NUM>.

More particularly, the UE <NUM> may estimate the time it takes for the server <NUM> to process offloading data. A value obtained when the UE <NUM> estimates the time it takes for the server <NUM> to process offloading data is hereinafter referred to as a UE estimated time. Furthermore, the server <NUM> may estimate the time it takes for the server <NUM> itself to process offloading data, and the estimated time is hereinafter referred to as a server estimated time. In this case, the server estimated time may be more accurate than the UE estimated time. More particularly, because the server <NUM> is able to predict the amount of computation in real-time based on information received from the UE <NUM>, the server estimated time may be more accurate than the UE estimated time. In other words, the server estimated time is more accurate than the UE estimated time because the UE estimated time does not take into account the real-time channel or server conditions while the server estimated time may reflect real-time information.

When a sum of the UE estimated time and network latency is shorter than the time required when the UE <NUM> directly processes offloading data, the UE <NUM> may determine that processing the offloading data at the server <NUM> is more efficient than directly processing the offloading data. In this case, the network latency may refer to a sum of the time required to transmit offloading data to the server <NUM> and the time required to receive a result of the processing of the offloading data from the server <NUM>. In other words, the UE <NUM> may request the server <NUM> to process offloading data when the sum of the UE estimated time and the network latency is less than a preset threshold. More particularly, the UE <NUM> may request the server <NUM> to process the offloading data when the sum of the UE estimated time, the time required to transmit the offloading data, and the time required to receive a result of the processing is less than the preset threshold.

Moreover, because the server estimated time is more accurate than the UE estimated time, when the server estimated time is longer than the UE estimated time, it may be understood that the actual time it takes for the server <NUM> to process the offloading data is longer than the time expected on the UE <NUM>. In other words, when the server estimated time is longer than the UE estimated time, the server <NUM> may determine that the time it takes to process the offloading data is longer than the time expected on the UE <NUM> and transmit a response including a NACK. Moreover, the server <NUM> may transmit change request information related to a change to requirements, together with the NACK.

On the other hand, when the UE estimated time is longer than the server estimated time, the server <NUM> may determine that the time it takes to process the offloading data is shorter than the time expected on the UE <NUM> and transmit a response including an ACK. Moreover, even in this case, the server <NUM> may transmit change request information for proposing a change to requirements, together with the ACK.

When the server <NUM> informs the UE <NUM> of capability information of the server <NUM>, a UE estimated time may be obtained by using Equation <NUM> below:
<MAT>.

Referring to Equation <NUM>, the UE estimated time ts may be a product obtained by multiplying a result of dividing a computation amount w of the UE <NUM> by a unit computation amount wunit of the server <NUM> and a unit time tunit required to calculate the unit computation amount of the server <NUM>.

Furthermore, the UE <NUM> may directly estimate a UE estimated time by using the following Equation <NUM>:
<MAT>.

In Equation <NUM>, parameter values are as follows:
ts is the UE estimated time, fl is a UE computation capability, w is a computation amount of the UE <NUM>, tl a is a time required for the UE <NUM> actually measure the computation amount w, µ is a ratio of allocatable resources of the server <NUM>, and fs is a computation capability of the server <NUM>. Information about these parameter values may be received via server information when the server <NUM> is determined, or may be periodically received from the server <NUM>.

Furthermore, a serve estimated time may be obtained by using Equation <NUM> below:
<MAT>.

The server estimated time may be obtained by taking into account a unit computation amount of the server <NUM> in real-time.

<FIG> is a flowchart illustrating operations of a server according to an embodiment of the disclosure.

Referring to <FIG>, the server <NUM> may receive information about an offloading point and information about requirements at operation S1210. Furthermore, the server <NUM> may determine whether the offloading point and the requirements are acceptable based on the received information at operation S1220.

When the server <NUM> determines that the offloading point and the requirements are acceptable, the server <NUM> may perform offloading and transmit a processing result to the UE <NUM> at operation S1230. More particularly, when the server <NUM> determines that the offloading point and the requirements are acceptable, the server <NUM> may receive information necessary for processing offloading data from the UE <NUM> and process the offloading data based on the received information. Furthermore, the server <NUM> may transmit a result of the processing to the UE <NUM>.

On the other hand, when the server <NUM> determines that the offloading point and the requirements are not acceptable, the server <NUM> may transmit a response including a NACK at operation S1240. In this case, the offloading procedure may be terminated. For example, the server <NUM> may receive, from the UE <NUM>, a request for termination of the processing of the offloading data. On the other hand, even when the server <NUM> transmits a response including a NACK to the UE <NUM>, the UE <NUM> may not terminate the offloading procedure but request again the server <NUM> to perform offloading by downgrading the requirements or request the server <NUM> to resume the offloading procedure after a lapse of a preset time period.

Furthermore, when the server <NUM> determines that the offloading point and the requirements are not acceptable, the server <NUM> may include its minimum guarantees together with the NACK in the response for transmission. The minimum guarantees may mean minimum guarantees supported by the server <NUM>. For example, the minimum guarantees may include information indicating a 'maximum latency of less than <NUM>' and 'processing offloading data with a minimum <NUM> image quality'. According to an embodiment of the disclosure, the server <NUM> may broadcast the minimum guarantees for every preset period or aperiodically. In this case, the UE <NUM> may determine whether to change the offloading point and the requirements based on the broadcast minimum guarantees of the server <NUM>.

Referring to <FIG>, the server <NUM> may determine whether to process offloading data according to whether a data retention request is received. Descriptions that are already provided above with respect to <FIG>, <FIG> and <FIG>, and <FIG> will be omitted herein when describing operations S1310 and S1320.

The server <NUM> may receive information about an offloading point and information about requirements at operation S1310. Furthermore, the server <NUM> may determine whether the offloading point and the requirements are acceptable based on the received information at operation S1320.

When the server <NUM> determines that the offloading point and the requirements are acceptable, the server <NUM> may or may not transmit a response including an ACK at operation S1330. When the response is not received within a preset time period, the UE <NUM> may determine that an ACK has been received. In this case, the server <NUM> may perform an offloading procedure based on offloading data.

The server <NUM> may determine whether there is a received data retention request indicator at operation S1340. The data retention request indicator refers to an indicator requesting the server <NUM> to retain previously received data instead of deleting or dropping it. The data retention request indicator may be included in information about the requirements for transmission.

When the server <NUM> determines that there is the received data retention request indicator, the server <NUM> may transmit a response and information related to suspension at operation S1341. Because the server <NUM> is not able to accept the offloading point or requirements, it may transmit a response including a NACK. Moreover, because there is the received data retention request indicator, the server <NUM> may stop or suspend the offloading procedure for a preset time period without terminating the offloading procedure. Furthermore, the server <NUM> may transmit information related to suspension of the offloading procedure. In addition, the server <NUM> may transmit difference information regarding the requirements, together with the response. After transmission of the response and the information related to the suspension, the server <NUM> may not perform an offloading procedure but retain data for resuming the offloading procedure later.

When the server <NUM> determines that there is no received data retention request indicator, the server <NUM> transmits a response and change request information at operation S1342. More particularly, the server <NUM> transmits a response including an ACK or NACK depending on whether the requirements are mandatory or recommended requirements. Moreover, the server <NUM> additionally transmits change request information regarding the requirements, together with the ACK or NACK.

<FIG> is a flowchart illustrating operations of the UE <NUM> according to an entity determining an offloading point according to an embodiment of the disclosure.

According to the above-described offloading procedure, the UE <NUM> may determine an offloading point, receive a response to the determined offloading point from the server <NUM>, and determine a final offloading point based on the received response. In other words, an example in which the UE <NUM> is an entity determining an offloading point has been described.

When the server <NUM> is not an entity determining the offloading point in operation S1430, i.e., when the UE <NUM> is an entity determining the offloading point, the UE <NUM> may determine the offloading point at operation S1440.

Referring to <FIG>, the server <NUM> may determine the offloading point. More particularly, when the server <NUM> is the entity determining the offloading point in operation S1430, the server <NUM> may determine the offloading point. According to an embodiment of the disclosure, when the server <NUM> is the entity determining the offloading point, the offloading point included in the response received from the server <NUM> in operation S1420 may be determined as a final offloading point.

The UE <NUM> may determine whether the offloading data is to be processed at operation S1450. More particularly, the UE <NUM> may determine whether the offloading data is to be processed based on the offloading point determined by the server <NUM>. When the UE <NUM> determines the offloading point, the UE <NUM> may determine whether the offloading data is to be processed based on the determined offloading point.

The UE <NUM> may determine to terminate processing of the offloading data corresponding to the offloading point determined by the server <NUM> at operation S1460. In this case, the UE <NUM> may transmit, to the server <NUM>, a request for termination of the processing of offloading data.

On the other hand, when the UE <NUM> determines that the offloading data is to be processed, the UE <NUM> may transmit information necessary for processing the offloading data to the server <NUM> at operation S1470. Furthermore, the UE <NUM> may receive a result of the processing of the offloading data from the server <NUM> at operation S1480.

<FIG> is a diagram illustrating a method, performed by the server <NUM>, of determining offloading data according to an embodiment of the disclosure.

Referring to <FIG>, the UE <NUM> may determine that at least a part of data <NUM> is to be processed by the server <NUM>. In other words, the UE <NUM> may determine the at least some of the data <NUM> as offloading data <NUM>.

Referring to <FIG>, the server <NUM> may analyze the data <NUM> and determine splitting points at which the data <NUM> are splittable as points A, B, C, and D. The UE <NUM> may determine offloading points as points A and C based on a list including points A, B, C, and D received from the server <NUM>. Accordingly, the offloading data <NUM> may be determined as data corresponding to point A to point C of the data <NUM>.

According to an embodiment of the disclosure, the server <NUM> may receive, from the UE <NUM>, information about the offloading points A and C and information about requirements for the offloading data <NUM>. The server <NUM> may determine whether it is capable of processing the offloading data <NUM> based on the received information.

When the server <NUM> is not capable of processing the offloading data <NUM> determined by the UE <NUM> due to insufficient capacity of the server <NUM>, the server <NUM> includes a change request for change to the offloading data <NUM> in the response. While <FIG> shows that the server <NUM> is not able to process the offloading data <NUM> due to a lack of its capacity, the server <NUM> also includes a change request for change to the offloading data <NUM> in the response when the server <NUM> is not able to satisfy the offloading point or requirements for any other reason. The server <NUM> includes, in the response, a request for change to the offloading point to points A and B and transmit the response to the UE <NUM>. When the server <NUM> is responsible for determining offloading data, the UE <NUM> changes the offloading data <NUM> to data <NUM> corresponding to point A to point B according to the change request from the server <NUM>. Thus, the UE <NUM> processes data <NUM> corresponding to point B to point C, except for the offloading data <NUM> among the data <NUM>.

On the other hand, the server <NUM> may include, in the response, a request for expansion of a volume of the offloading data <NUM> due to its surplus capacity for transmission to the UE <NUM>. When the server <NUM> is an entity determining offloading data, offloading data <NUM> to be processed by the server <NUM> may be determined according to a change request for change to the offloading data <NUM>, which is included in the response. In other words, according to the request for expansion of the volume of the offloading data <NUM> from the server <NUM>, the offloading data <NUM> may be determined as data corresponding to point A to point D.

In this way, when the server <NUM> is responsible for determining offloading data, the UE <NUM> needs to accept the change request from the server <NUM>. On the other hand, when the UE <NUM> is an entity determining offloading data, the UE <NUM> may change requirements or offloading data based on a change request from the server <NUM>.

<FIG> is a flowchart of a method, performed by the UE <NUM>, of changing offloading data or requirements while performing an offloading procedure according to an embodiment of the disclosure.

Descriptions that are already provided above with respect to <FIG>, <FIG> and <FIG>, and <FIG> will be omitted when describing the method of <FIG>. For example, offloading data may be determined according to the operations described above with reference to <FIG>, <FIG> and <FIG>, <FIG>.

Referring to <FIG>, the UE <NUM> may determine that offloading data is to be processed at operation S1610. In other words, the UE <NUM> may transmit information necessary for processing the offloading data to the server <NUM> based on a response from the server <NUM>.

The UE <NUM> may periodically receive server information at operation S1620. Furthermore, the UE <NUM> may aperiodically receive server information. In other words, the UE <NUM> may obtain information about real-time changing status of the server <NUM> or channel conditions based on the received server information.

The UE <NUM> may determine whether to change an offloading point or requirements based on the received server information at operation S1630. When the UE <NUM> determines not to change the offloading point or requirements, it may maintain an existing offloading procedure at operation S1640.

On the other hand, when the UE <NUM> determines to change the offloading point or requirements, it may transmit additional information to the server <NUM> at operation S1650. The additional information may include information related to a change to the offloading point or requirements. More particularly, the UE <NUM> may transmit, to the server <NUM>, a request for reduction or expansion of a volume of the offloading data, or information for downgrading or upgrading the requirements.

The UE <NUM> may receive a result of processing of the offloading data, which is performed based on the additional information at operation S1660. More particularly, the server <NUM> may transmit, to the UE <NUM>, a response as to whether to accept the changed requirements based on the additional information. In a case where the server <NUM> transmits an indicator indicating acceptance of the changed requirements to the UE <NUM>, when there is no change in the offloading point, the server <NUM> may perform processing of the offloading data based on the previously received information necessary for processing the offloading data. On the other hand, when a volume of the offloading data is expanded, the server <NUM> may additionally receive only information necessary for processing the expanded volume of offloading data. In other words, even when the volume of the offloading data is reduced or the requirements are downgraded, the server <NUM> may process the offloading data based on the previously received information.

<FIG> is a diagram illustrating a distributed computing control protocol (DCCP) <NUM> according to an embodiment of the disclosure.

Referring to <FIG>, the DCCP <NUM> refers to a protocol for supporting a procedure of dynamic offloading between the UE <NUM> and the server <NUM> by exchanging control information using a stream control transmission protocol (SCTP) port.

The DCCP <NUM> may be a distributed computing protocol similar to S1 application protocol (S1-AP). Referring to <FIG>, the DCCP <NUM> may reside in a distributed computing control layer. Furthermore, to support an offloading procedure, the DCCP <NUM> may control setup, modification, or release of a connection between the UE <NUM> and the server <NUM>. In addition, the DCCP <NUM> may control operations for determining offloading data between the UE <NUM> and the server <NUM>, performing offloading, and indicating capability information for offloading. In other words, the DCCP <NUM> may control information necessary for offloading data to be included in a message.

<FIG> illustrates an internal structure of the UE <NUM> according to an embodiment of the disclosure.

Referring to <FIG>, according to an embodiment of the disclosure, the UE <NUM> may include a processor <NUM>, a transceiver <NUM>, and a memory <NUM>. The processor <NUM>, the transceiver <NUM>, and the memory <NUM> of the UE <NUM> may operate according to the above-described method of performing communication by the UE <NUM>. The components of the UE <NUM> are not limited to the above-described example. For example, the UE <NUM> may include more or fewer components than those described above. Furthermore, the processor <NUM>, the transceiver <NUM>, and the memory <NUM> may be implemented as a single chip.

The transceiver <NUM> collectively denotes a receiver and a transmitter of the UE <NUM> and may transmit or receive a signal to or from the server <NUM> via a network. The signal transmitted or received via the network may include control information and data. For this purpose, the transceiver <NUM> may include a radio frequency (RF) transmitter for up-converting and amplifying a frequency of a signal to be transmitted and an RF receiver for low-noise amplifying a received signal and down-converting its frequency. However, this is merely an example of the transceiver <NUM>, and the components of the transceiver <NUM> are not limited to the RF receiver and the RF transmitter.

Furthermore, the transceiver <NUM> may receive a signal via a radio channel and output the signal to the processor <NUM> and transmit a signal output from the processor <NUM> via a radio channel.

The memory <NUM> may store data and programs necessary for operations of the UE <NUM>. Furthermore, the memory <NUM> may store control information or data in a signal transmitted or received by the UE <NUM>. The memory <NUM> may be including storage media, such as read-only memory (ROM), random access memory (RAM), hard discs, compact disc (CD)-ROM, and digital video discs (DVDs), or a combination thereof.

The processor <NUM> may include at least one processor. For example, the processor <NUM> may include a communication processor (CP) for performing control for communication and an application processor (AP) for controlling an upper layer, such as an application program. The processor <NUM> may control a series of processes such that the UE <NUM> may operate according to the above embodiments of the disclosure.

More particularly, the processor <NUM> may determine the server <NUM> for processing at least a part of data. The processor <NUM> may receive a list regarding splitting points at which the data is splittable from the server <NUM> via the transceiver <NUM>. The processor <NUM> may determine at least one of the splitting points as an offloading point, based on the received list. Furthermore, the processor <NUM> may transmit information about the offloading point and information about requirements for offloading data corresponding to the offloading point to the server <NUM> via the transceiver <NUM>. In addition, the processor <NUM> may receive a response as to whether the offloading data is capable of being processed from the server <NUM> via the transceiver <NUM> and determine whether the offloading data is to be processed based on the received response.

<FIG> illustrates an internal structure of the server <NUM> according to an embodiment of the disclosure.

Referring to <FIG>, according to an embodiment of the disclosure, the server <NUM> may include a processor <NUM>, a transceiver <NUM>, and a memory <NUM>. The processor <NUM>, the transceiver <NUM>, and the memory <NUM> of the server <NUM> may operate according to the above-described method of performing communication by the server <NUM>. The components of the server <NUM> are not limited to the above-described example. For example, the server <NUM> may include more or fewer components than those described above. Furthermore, the processor <NUM>, the transceiver <NUM>, and the memory <NUM> may be implemented as a single chip.

The transceiver <NUM> collectively denotes a receiver and a transmitter of the server <NUM> and may transmit or receive a signal to or from the UE <NUM> via a network. The signal transmitted or received via the network may include control information and data. For this purpose, the transceiver <NUM> may include an RF transmitter for up-converting and amplifying a frequency of a signal to be transmitted and an RF receiver for low-noise amplifying a received signal and down-converting its frequency. However, this is merely an example of the transceiver <NUM>, and the components of the transceiver <NUM> are not limited to the RF receiver and the RF transmitter.

The memory <NUM> may store data and programs necessary for operations of the server <NUM>. Furthermore, the memory <NUM> may store control information or data in a signal obtained by the server <NUM>. The memory <NUM> may be including storage media, such as ROM, RAM, hard discs, CD-ROM, and DVDs, or a combination thereof.

The memory <NUM> may store data and information received from the UE <NUM>. Furthermore, when receiving a data retention request indicator from the UE <NUM>, the server <NUM> may store the previously transmitted data in order to resume an offloading procedure according to control by the processor <NUM>.

The processor <NUM> may include at least one processor. For example, the processor <NUM> may include a CP for performing control for communication and an AP for controlling an upper layer, such as an application program. The processor <NUM> may control a series of processes such that the server <NUM> may operate according to the above embodiments of the disclosure.

More particularly, the processor <NUM> may determine splitting points at which data received from the UE <NUM> is splittable and transmit a list regarding the determined splitting points to the UE <NUM> via the transceiver <NUM>. The processor <NUM> may control the transceiver <NUM> to receive information about a determined offloading point and information about requirements for offloading data corresponding to the offloading point, transmit a response as to whether the server <NUM> is capable of processing the offloading data, and receive a result of determining whether the offloading data is to be processed based on the response.

Some embodiments of the disclosure may be implemented through computer-readable recording media having recorded thereon computer-executable instructions, such as program modules that are executed by a computer. The computer-readable recording media may be any available media that can be accessed by a computer and include both volatile and nonvolatile media and both detachable and non-detachable media. Furthermore, the computer-readable recording media may include computer storage media. The computer storage media include both volatile and nonvolatile and both detachable and non-detachable media implemented by any method or technique for storing information, such as computer-readable instructions, data structures, program modules, or other data.

While particular embodiments of the disclosure have been described with reference to the figures, it will be understood by those of ordinary skill in the art that various changes and modifications in form and details may be made therein without departing from the scope of the disclosure as defined by the following claims.

Methods of offloading data in a wireless communication system according to some embodiments of the disclosure may be implemented in the form of program instructions that may be performed by various types of computers and may be recorded on computer-readable recording media. The computer-readable recording media may include program instructions, data files, data structures, or the like, either alone or in combination. The program instructions recorded on the computer-readable recording media may be designed and configured specially for the disclosure or may be known to and be usable by those skilled in the art of computer software. The computer-readable recording media may be included in a computer program product.

Examples of the computer-readable recording media include magnetic media, such as hard disks, floppy disks, and magnetic tape, optical media, such as CD-ROM and DVDs, magnetooptical media, such as floptical disks, and hardware devices that are specially configured to store and perform program instructions, such as ROM, RAM, flash memory, or the like. Examples of program instructions include not only machine code, such as that created by a compiler but also higher level language code executable by a computer using an interpreter or the like.

The computer-readable storage medium may be provided in the form of a non-transitory storage medium. In this regard, the term 'non-transitory' only means that the storage medium does not refer to a transitory electrical signal and is tangible, and the term does not distinguish between data that is semi-permanently stored and data that is temporarily stored in the storage medium. For example, the 'non-transitory storage medium' may include a buffer in which data is temporarily stored.

According to an embodiment of the disclosure, methods according to various embodiments of the disclosure may be included in a computer program product when provided. The computer program product may be traded, as a product, between a seller and a buyer. For example, the computer program product may be distributed in the form of a device-readable storage medium (e.g., CD-ROM) or distributed (e.g., downloaded or uploaded) on-line via an application store (e.g., Google, Play Store) or directly between two user devices (e.g., smartphones). For online distribution, at least a part of the computer program product (e.g., a downloadable app) may be at least transiently stored or temporally created on a device-readable storage medium, such as a server of a manufacturer, a server of an application store, or a memory of a relay server.

Furthermore, in the specification, the term "unit" may be a hardware component, such as a processor or circuit and/or a software component that is executed by a hardware component, such as a processor.

A method and an apparatus for offloading data in a wireless communication system according to embodiments of the disclosure may provide services that comply with requirements.

Claim 1:
A method, performed by a user equipment, UE, of offloading data, the method comprising:
determining (S320) a server for processing at least some of the data including code;
transmitting (S330), to the server, the data;
receiving (S350) a list including at least one splitting point at which the data is splittable from the server;
determining (S360), based on the list, an offloading point for the data among the at least one splitting point;
transmitting (S370), to the server, information about the offloading point and information about requirements for offloading data corresponding to the offloading point;
receiving (S380), from the server, a response as to whether the offloading data is capable of being processed; and
determining (S390) whether the offloading data is to be processed, based on the response,
wherein the at least one splitting point includes a point for splitting the code into code parts that are to be executed even when the code parts are offloaded, each code part having no dependency on the other parts of the code,
wherein, when the offloading data is not capable of being processed to satisfy the requirements, the response as to whether the offloading data is capable of being processed comprises
a negative-ACK, NACK, when the requirements are mandatory requirements, and
change request information when the requirements are not the mandatory requirements, and
wherein the change request information includes a request for changing a location of the offloading point from one point to another point.