Task offload control system, method, and program

The integration of offload control units within applications enables dynamic, bidirectional task offloading, enhancing resource utilization and network flexibility, ensuring continuous application operation despite device disruptions.

JP2025144034APending Publication Date: 2025-10-02KDDI CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024043599
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-19
Publication Date
2025-10-02

AI Technical Summary

Technical Problem

Existing task offloading technologies primarily allow one-directional offloading from user devices to cloud or edge servers, failing to maximize resource utilization efficiency and network flexibility.

Method used

Implementing an offload control unit within applications that dynamically determines and adjusts the primary and secondary offloading devices, enabling bidirectional task offloading through an intermediary server and interface control units.

Benefits of technology

Facilitates flexible and resilient task offloading, ensuring applications continue uninterrupted even with device interruptions, and optimizes task allocation based on device capabilities and interfaces.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025144034000001_ABST
    Figure 2025144034000001_ABST
Patent Text Reader

Abstract

To achieve bidirectional dynamic and flexible task offload by providing an offload control section for controlling task offload in an application and distributing it to a device integrally with the application.SOLUTION: A system that controls task offload in which a plurality of devices 1 mutually offload tasks of applications includes an application distribution server 2 that has connectivity with each of the devices 1 and distributes an application including an offload control section 52 for each application, each of the devices 1 acquires the same application from the application distribution server 2, each of the devices is set to either a primary device 1A or a secondary device 1B by arbitration between the offload control sections of the applications acquired by each of the devices 1, and an offload control section 52A of the primary device 1A offloads the tasks of the applications to an offload control section 52B of the secondary device 1B.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a task offload control system, method, and program, and more particularly to a task offload control system, method, and program for mutually offloading application tasks between devices such as user terminals and cloud servers. [Background technology]

[0002] In recent years, with the increasing demand for high-load tasks such as 3D processing and AI processing on user devices such as smartphones and the spread of low-power, low-performance IoT devices, user device processing offloading, in which part or all of the processing on user devices is executed on servers such as the cloud, has become common.

[0003] Non-Patent Document 1 discloses a method of mobile cloud computing (MCC) and mobile edge computing (MEC) that executes mobile terminal processing on the cloud or edge.

[0004] If processing performed within a mobile device can be offloaded to the cloud or edge using MCC and MEC, it will be possible to achieve high-speed processing of high-load tasks and reduce energy consumption on the device.However, task offloading can cause degradation of application quality on the user device due to communication delays and degradation of communication quality between mobile devices and cloud / edge servers.

[0005] Patent Document 1 discloses an invention in which a user terminal determines whether or not to offload an application task to an edge server depending on the communication channel state and parameters, the state of the user terminal, and the state of the application.

[0006] According to this invention, a user terminal can suppress degradation of application quality due to task offloading by determining whether to offload a task and selecting an edge server to offload to based on each state and edge server information obtained from the cellular network. [Prior art documents] [Patent documents]

[0007] [Patent Document 1] Special Publication No. 2023-518318 [Non-patent literature]

[0008] [Non-Patent Document 1] Y. Mao, C. You, J. Zhang, K. Huang and KB Letaief, "A Survey on Mobile Edge Computing: The Communication Perspective," in IEEE Communications Surveys & Tutorials, vol. 19, no. 4, pp. 2322-2358, Fourthquarter 2017, doi: 10.1109 / COMST.2017.2745201. Summary of the Invention [Problem to be solved by the invention]

[0009] In the above prior art, the location of task execution is dynamically determined within the user terminal to determine whether an application task can be offloaded and the edge server to which it is to be offloaded, and the task is then offloaded by sending the task to the determined server, so task offloading was only possible in one direction, from the user terminal to the edge server.

[0010] On the other hand, as user devices become more sophisticated and diverse, bidirectional offloading technologies are required to maximize the utilization efficiency of device processing resources and networks, such as offloading application tasks from cloud or edge servers to user devices, or offloading tasks between user devices. To achieve bidirectional offloading, control technologies and task deployment technologies are required to select offload destinations more dynamically and flexibly and transfer tasks.

[0011] The object of the present invention is to solve the above technical problems and to realize dynamic, bidirectional, and flexible task offloading by providing an offload control unit within the application that controls offloading and distributing the task to the device together with the application. [Means for solving the problem]

[0012] In order to achieve the above object, the present invention is characterized in that it has the following configuration to realize bidirectional task offloading between devices.

[0013] (1) An offload control unit for controlling the offloading of tasks that constitute an application is provided within the application, and the offload control unit is distributed together with the application from the application distribution server when the application is started.

[0014] (2) The same application is distributed to all devices, and the offload control units on each device communicate with each other to dynamically determine the primary and secondary offload control.

[0015] (3) The device that primarily controls offloading (the primary device) assigns an execution device for each task from among the devices participating in offloading according to the settings and rules given in advance for each application. [Effects of the Invention]

[0016] According to the present invention, the following effects can be achieved.

[0017] (1) An offload control unit that offloads each task of an application to other devices is built into each application, and the application is placed on all devices together with the offload control unit. This makes it possible to flexibly and dynamically set and change the master-slave relationship between devices through arbitration between the offload control units.

[0018] (2) A communication channel is established between the offload control units via an intermediary server on a session-by-session basis, linked to an identifier for each application and user. Therefore, even if a user launches an application on another device, the application can automatically participate in the session as an offload target device without having to set up an offload target device for each device in advance.

[0019] (3) An interface control unit is provided for each application, and the functions and inputs / outputs specific to each device can be identified as interfaces. This makes it possible to allocate tasks according to interface requests by providing an interface to each task and responding to the offload control unit with available interfaces.

[0020] (4) Applications on all devices have the same offload control unit and execute the offload destination control of the information and tasks required for offloading according to their own role, so that applications can continue to run even if some devices are interrupted due to poor communication or power outage.

[0021] (5) The interface control unit determines which interfaces are available within a device and describes the available interfaces as a list in the node information, making it possible to control so that a task that uses a specific interface is not placed on a device that cannot use that interface. [Brief explanation of the drawings]

[0022] [Figure 1] 1 is a functional block diagram showing the configuration of a main part of a task offload control system according to an embodiment of the present invention. [Figure 2] This is a block diagram (part 1) that functionally illustrates the procedure for task offloading. [Figure 3] This is a block diagram (part 2) that functionally illustrates the procedure for task offloading. [Figure 4] This is a block diagram (part 3) that functionally illustrates the procedure for task offloading. [Figure 5] This is a block diagram (part 4) that functionally illustrates the procedure for task offloading. [Figure 6] This is a block diagram (part 5) that functionally shows the procedure for task offloading. [Figure 7] This is a block diagram (part 6) that functionally illustrates the procedure for task offloading. [Figure 8] This is a block diagram (part 7) that functionally shows the procedure for task offloading. [Figure 9] This is a block diagram (part 8) that functionally shows the procedure for task offloading. [Figure 10] This is a block diagram (part 9) that functionally shows the procedure for task offloading. [Figure 11] FIG. 1 is a block diagram (part 1) functionally illustrating the procedure for selecting a main device. [Figure 12] FIG. 2 is a block diagram (part 2) functionally illustrating the procedure for selecting a main device. [Figure 13] FIG. 10 is a sequence diagram showing a procedure for task offloading. DETAILED DESCRIPTION OF THE INVENTION

[0023]

[0023] The present invention will be described in detail below with reference to the accompanying drawings. Fig. 1 is a functional block diagram showing the configuration of the main parts of a task offload control system according to one embodiment of the present invention, and the main components of the system include a plurality of devices 1 (1A, 1B) that execute application tasks and serve as the offload source / destination of each task, an application distribution server 2, and a session mediation server 3.

[0024] In this embodiment, an example will be described in which one device 1A acts as a primary device that is the source of task offloading, and another device 1B acts as a secondary device that is the destination of task offloading. The distinction between the primary device 1A and the secondary device 1B is determined dynamically and flexibly based on the order in which applications are started after each device participates in the offloading.

[0025] The main device 1A and the sub device 1B do not necessarily need to have direct network connectivity, but are assumed to have connectivity to the application distribution server 2 and the session mediation server 3 via an intranet or the Internet.

[0026] The application distribution server 2 stores the interface control unit 51 that constitutes the applications A01, A02, etc., the offload control unit 52, the program modules of each task to be offloaded, and files necessary for application operation such as various settings and resource files (all of which are not shown), and can distribute these to each device 1 (1A, 1B) via the network.

[0027] The session mediation server 3 has a function to transmit identifiers, resource information, etc. transmitted from each device 1 to other devices. It also has a function to temporarily store the transmitted information as a cache and respond on behalf of the device in response to a request.

[0028] Such application distribution server 2 and session mediation server 3 can be configured by implementing applications (programs) that realize the functions detailed below on a general-purpose computer or server equipped with a CPU, ROM, RAM, bus, interface, etc. Alternatively, they can be configured as dedicated or single-function machines in which part of the application is implemented as hardware or software.

[0029] The main device 1A and the sub device 1B retrieve the application A01 from the application distribution server 2 together with the interface control unit 51 (51A, 51B) and the offload control unit 52 (52A, 52B), and execute the tasks (T01, T02, T03, ...) in the task execution engine 61 (61A, 61B).

[0030] Each task is specific to each application, and in the case of a video processing application, it includes tasks such as 3D rendering and AI character control. Task T03 executed by task execution engine 61B of slave device 1B is a task offloaded from master device 1A to slave device 1B based on arbitration between offload control units 52A and 52B of devices 1A and 1B.

[0031] The operation of task offloading according to one embodiment of the present invention will be described in detail below with reference to the functional block diagrams of FIGS. 2 to 10 in order, and also with reference to the sequence diagram of FIG.

[0032] FIG. 2 is a diagram showing the procedure by which a device 1A that intends to execute an application A01 acquires from an application distribution server 2 a programming module required to execute the application A01 and places it therein.

[0033] Referring also to FIG. 13, when the user instructs the device 1A to start the application A01 (step S101), the device 1A accesses the application distribution server 2 and requests acquisition of the file of the application A01 (step S102).

[0034] The device 1A can access the application distribution server 2 by, for example, opening the URL of the application distribution server 2 using HTTP from the web browser of the device 1A. In response to the request, the application distribution server 2 transmits the files necessary for executing the application A01 (step S103).

[0035] When the device 1A accesses the application distribution server 2, the device 1A can include an account ID, key information, etc., which can uniquely identify the user, in the file request parameters. The application distribution server 2 can respond with a user identifier on the condition that the user authentication is successful.

[0036] The files acquired by the device 1A are the minimum program modules of the interface control unit 51A and the offload control unit 52A and the associated setting files, and the program modules of each task in the offload task group 53A can be omitted.

[0037] When main device 1A completes file acquisition for application A01, it loads and starts the program modules of interface control unit 51A and offload control unit 52A (step S104). Interface control unit 51A establishes a communication channel for offload task group 53A (described later) to access input / output functions such as the console, file system, and sensors of the device and to transmit information when a call occurs between tasks.

[0038] Referring to Figure 3, when the offload control unit 52A operates on the device 1A, it obtains the address of the session mediation server 3 described in the file of the application A01, and sends a message describing a pair of an identifier (application identifier) ​​that can identify the application A01 and a user identifier to the session mediation server 3 using the address (step S105).

[0039] This message is sent to all channels with the same user identifier in the session mediation server 3. If a session linked to the user identifier and application identifier already exists, the session identifier is returned to device 1A from a device participating in the same session or from the session mediation server 3 that holds that information (step S106).

[0040] On the other hand, if the session identifier is not returned within the specified time, the offload control unit 52A in the device 1A recognizes itself as the main device (step S107), generates a session identifier, and sends it together with the user identifier and application identifier to the session mediation server 3 (step S108). As a result, the device 1A is set as the main device 1A.

[0041] 4, when the session mediation server 3 receives the session identifier together with the user identifier and application identifier from the device 1A, it creates a channel associated with the session identifier (step S109) and adds the main device 1A as its destination. Therefore, all subsequent messages addressed to the same session identifier are forwarded to the main device 1A.

[0042] 5, the offload control unit 52A periodically collects node information about the device 1A (step S110). The collected node information is sent to other devices having the same session identifier via the session mediation server 3 via the channel (step S111).

[0043] This node information includes information and usage status of various hardware resources such as processor information and memory information that device 1A has, connection status of the network to which it is connected such as communication delay and address information with session mediation server 3, application operation status such as average processing time and number of calls for each task, and a list of interfaces that can be used by offload task group 53A from the interface control unit.

[0044] 6, offload control unit 52A of main device 1A determines the execution node for the task according to the program and given settings. However, if only main device 1A has the session identifier, i.e., if main device 1A is the only device participating in the offloading, it executes all tasks in offload task group 53A using its own task execution engine 61A (step S112).

[0045] However, if the application contains tasks that cannot be allocated because the main device 1A does not meet the performance or interface requirements of the tasks, these tasks will be left unallocated, and the application will wait until a new node that meets the performance requirements is connected.

[0046] Furthermore, if the main device 1A has not yet acquired the program module and related resource files for each task, it can acquire them again from the application distribution server 2. The task execution engine 61A is located in each device and can execute the same program module.

[0047] The task execution engine 61A can use each function of the device by having the task access the interface exposed to the task execution engine 61A from the interface control unit 51A. Typical implementation examples of the task execution engine 61A include a JavaScript engine and a WebAssembly runtime.

[0048] Referring to FIG. 7, when application A01 is started on slave device 1B (step S113), offload control unit 52B operates in slave device 1B in the same way as in master device 1A, and transmits a pair of its own user identifier and application identifier to session mediation server 3 (step S114).

[0049] At this time, since the main device 1A has a session linked to the pair of the user identifier and application identifier, the session mediation server 3 returns the session identifier to the sub-device 1B (step S115), which allows the device 1B to recognize itself as a sub-device (step S116).

[0050] 8, the offload control unit 52B of the slave device 1B thereafter periodically transmits its own node information to the session mediation server 3, similar to the offload control unit 52A (S117). By receiving the node information of the slave device 1B, the master device 1A can recognize that a new device has been connected to its own session.

[0051] Referring to FIG. 9, the offload control unit 52A arranged on the main device 1A periodically determines whether a task being executed by the task execution engine 61A or an unexecuted task included in the offload task group 53A should be offloaded to the task execution engine 61B on the sub device 1B, in accordance with the node information received from the sub device 1B and the settings and determination program of its own device (step S118).

[0052] The setting and determination program for the offload control unit 52A can be set in a setting file within the application before the application is distributed. Alternatively, the user can set it after the application A01 is started. The following describes the operation when the determination by the offload control unit 52A is completed and task T03 is offloaded to the slave device 1B as another device.

[0053] The offload control unit 52A of the primary device 1A sends a task execution request including a session identifier, the task to be executed, and the identifier of the device requesting execution (here, the secondary device 1B) to the session mediation server 3 (step S119). Upon receiving the request from the session mediation server 3, the offload control unit 52B of the secondary device 1B verifies that the request satisfies the task placement constraints and then places task T03 on the task execution engine 61B (step S120).

[0054] Referring to FIG. 10 (P17), if the slave device 1B does not have the program module and resource file of task T03, the slave device 1B can obtain the file from the application distribution server 2 or the main device 1A depending on the communication status (step S121).

[0055] After task T03 is loaded into task execution engine 61B, the application operation status of task T03 is described in the node information periodically sent by offload control unit 52B. When main device 1A recognizes that task T03 has started normally, it terminates task T03 in task execution engine 61A.

[0056] In this embodiment, the above procedure makes it possible to realize dynamic and flexible task offloading from the primary device 1A to the secondary device 1B.

[0057] Next, we will explain the procedure for reselecting a primary device. In this embodiment, task execution is stopped on all devices or a primary device is selected depending on the application settings, allowing the application to continue running without interruption.

[0058] First, referring to FIG. 11 (P18), when other slave devices are unable to receive the periodic node information transmissions from the main device 1A due to a poor network connection or a device power outage, the offload control unit 52 in each slave device 1B recognizes that the main device 1A has been disconnected.

[0059] When selecting a primary device, for example, device 1B with the smallest node identifier among devices with corresponding session identifiers is set as the temporary primary device through arbitration by offload control unit 52, and device 1B can select the destination for the task that was being executed by the primary device. After the destination is determined, the primary device is determined according to the program and settings in offload control unit 52.

[0060] Referring to FIG. 12, the main device to be selected can be determined based on the requirements of each application. For example, by selecting device 1C, which has the largest number of tasks allocated to it, as the main device, the number of tasks to be moved can be minimized when interrupting offloading and moving the task execution device from the sub device to the main device, and offload control implementation can be switched efficiently.

[0061] If the main device is changed again by this control, the offload control unit 52C of the new device is notified of the main device allocation via the session mediation server 3.

[0062] In the above embodiment, the interface control unit 51 (51A, 51B) and the offload control unit 52 (52A, 52B) are registered as part of the application A01, and only accept offload of tasks included in the application A01.

[0063] However, the present invention is not limited to this, and if the interface control unit 51 and the offload control unit 52 are placed on the device without being restricted to a specific session identifier, it becomes possible to accept task execution requests from a specific user or all users.

[0064] In this case, the offload control unit 52 omits sending the application identifier at startup, and if it accepts a task execution request from a specific user, it sends only the user identifier, and if it accepts task execution requests from all users, it sends a message to that effect to the session mediation server 3. At this time, it does not determine whether a session already exists, and the offload control unit 52 always operates as a slave device, and does not determine whether to offload a task.

[0065] Furthermore, if the node information periodically transmitted by the offload control unit 52 overlaps with the previous information, some of the information can be omitted. However, immediately after a new device joins the session, complete information is transmitted to the session mediation server 3. Furthermore, metrics information such as resource status and application operation status is periodically transmitted even if it overlaps with the previous information.

[0066] Furthermore, in the above embodiment, each device establishes a communication channel via the session mediation server 3, but the session mediation server 3 does not necessarily have to exist if there is a communication channel in which all devices can participate.

[0067] For example, if all devices are connected to the same network, the present invention can be realized without the session mediation server 3 by transmitting all messages by broadcast or multicast.

[0068] Furthermore, according to the above embodiment, it becomes possible to dynamically and flexibly realize task offload control that offloads each task of an application to other devices, which makes it possible to contribute to Goal 9 "Build resilient infrastructure and promote inclusive and sustainable industrialization" and Goal 11 "Make cities inclusive, safe, resilient and sustainable" of the Sustainable Development Goals (SDGs) led by the United Nations. [Explanation of symbols]

[0069] A01, A02...application, T01, T02, T03...task, 1 (1A, 1B)...device, 2...application distribution server, 3...session mediation server, 51 (51A, 51B)...interface control unit, 52 (52A, 52B)...offload control unit, 53 (53A, 53B)...offload task group, 61 (61A, 61B)...task execution engine

Claims

1. In a system for controlling task offloading in which multiple devices offload application tasks to each other, an application distribution server that has connectivity with each device and distributes applications having an offload control unit for each application; Each device retrieves the same application from the application distribution server, By arbitration between the offload control units of the applications acquired by each device, each device is set as either a primary device or a secondary device; A task offload control system, characterized in that an offload control unit of a primary device offloads a task of the application to an offload control unit of a secondary device.

2. A session mediation server having connectivity with each device and the application distribution server is further provided, Each device obtains the application that the user has requested to launch from the application distribution server, Launching the acquired application to operate an offload control unit; the offload control unit transmits a message in which the application identifier and the user identifier are described to the session mediation server; the session mediation server responds with a session identifier corresponding to the application identifier and the user identifier if the session identifier has already been registered; If the device that sent the message does not receive a response containing the session identifier, it recognizes itself as the primary device, generates a session identifier, and sends the session identifier to the session mediation server; The task offload control system according to claim 1, characterized in that the session mediation server sets the device that sent the session identifier as a main device, associates it with the session identifier, and forwards messages received for the session identifier to the main device.

3. 3. The task offload control system according to claim 2, wherein the device that sent the message recognizes itself as a slave device when it receives a response containing a session identifier from the session mediation server.

4. The master device and the slave device Periodically collect your own node information, Transmitting the collected node information of the device to each device via a channel associated with the session identifier; 3. The task offload control system according to claim 2, wherein the master device determines a destination to which the task is to be offloaded based on node information transmitted by a slave node.

5. the application further comprises an interface control unit; the interface control unit acquires a list of interfaces available for a task executed in a device in which an application is installed, and transmits the list to another device; 5. The task offload control system according to claim 4, wherein in the main device, the offload control unit determines a destination to which the task is to be offloaded based on the interface list and node information.

6. 6. The task offload control system according to claim 5, wherein the interface control unit establishes a communication channel for transmitting information when a call occurs between tasks executed on different devices as a result of offloading some tasks.

7. 5. The task offload control system according to claim 4, wherein the main device terminates its own execution of a task it has been executing when it confirms, based on node information transmitted by the sub-device, that the task is running at the offload destination.

8. The slave device When it detects that the current master node is not transmitting node information, it selects a tentative master node through arbitration among the offload control units. The offload control unit of the temporary master node determines a new master node; 5. The task offload control system according to claim 4, wherein an offload control unit of the new main node causes the new main node to take over the task being executed by the current main node.

9. 9. The task offload control system according to claim 8, wherein the offload control unit of the temporary master node determines, as the new master node, a slave node that takes over the minimum number of tasks from the master node.

10. A method for causing a computer to control task offloading in which a plurality of devices offload application tasks to each other, comprising: an application distribution server that has connectivity with each device and distributes applications with an offload control unit for each application; Each device retrieves the same application from the application distribution server, By arbitration between the offload control units of the applications acquired by each device, each device is set as either a primary device or a secondary device; A task offload control method, characterized in that an offload control unit of a primary device offloads a task of the application to an offload control unit of a secondary device.

11. A program that causes a computer to control task offloading in which multiple devices offload application tasks to each other, providing an application distribution server that has connectivity with each device and distributes applications each having an offload control unit; A procedure in which each device obtains the same application from an application distribution server; a procedure for arbitrating between offload control units of the applications acquired by each device to set each device as either a primary device or a secondary device; a procedure in which an offload control unit of a primary device offloads a task of the application to an offload control unit of a secondary device.

Citation Information

Patent Citations

  • Dynamic service discovery and offloading framework for edge computing-based cellular network systems

    JP2023518318A