Patent Publication Number: US-10764359-B2

Title: Method and server for dynamic work transfer

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application claims the priority benefit of Taiwan application serial no. 107100259, filed on Jan. 4, 2018. The entirety of the above-mentioned patent application is hereby incorporated by reference herein and made a part of this specification. 
     TECHNICAL FIELD 
     The disclosure relates to a method and an apparatus for work transfer, and particularly relates to a method and a server for dynamic work transfer. 
     BACKGROUND 
     In the past decade, various diversified information application services are provided owing to the development of network technologies and the emergence of cloud service industries. However, as the technologies of the Internet of Things (IoT) emerge, more and more apparatuses are connected to the network. When a large number of IoT apparatuses are connected to the network at the same time, a great amount of network resources (e.g., bandwidth, storage space, and CPU computation capability) is consumed, which brings challenges to cloud computing. 
     Edge computing is proposed to reduce the loading of cloud computing. Specifically, edge computing is based on the concept of doing computation nearby. In other words, computation is carried out in a local network closer to the data source to avoid returning the data to a cloud server as much as possible and thereby reduce the waiting time of receiving and transmitting data from and to the cloud server as well as the cost for network bandwidth. Besides, properly arranging a plurality of edge nodes may facilitate the scalability and reliability. 
     Nevertheless, not all the data are suitable to be configured locally for computation. For example, some data may require further analysis and judgment, and need to be transmitted to the cloud server for further processing or for long-term accessibility. Thus, network nodes need to be appropriately configured in correspondence with current job requirements to process all the jobs. 
     SUMMARY 
     One or some exemplary embodiments of the disclosure provide a method and a server for dynamically work transfer, where network nodes for processing respective jobs are re-configured based on properties and requirements of all the jobs, and network resources of the network to facilitate overall computation and network transmission performance. 
     A method for dynamic work transfer according to an embodiment of the disclosure is adapted for a cloud node under a cloud and edge computing framework and includes steps as follows: regularly collecting and recording network resources of a plurality of nodes in a network, wherein the nodes include a cloud node and a plurality of edge nodes; receiving a request of a first job at a first time point, calculating costs for configuring the first job to the respective nodes based on the network resources of the respective nodes at the first time point to configure the first job to a first target node of the nodes; receiving a request of a second job at a second time point, calculating costs for configuring the second job to the respective nodes based on the network resources of the respective nodes at the first time point, and determining a second target node suitable for configuring the second job and whether to transfer the first job, wherein the second time point is after the first time point; and configure the second job and maintaining or transferring the first job based on a determination result. 
     A server according to an embodiment of the disclosure is adapted as a cloud node under a cloud and edge computing framework. The server includes a communication apparatus, a storage apparatus, and a processor. The communication apparatus is connected to a network and communicates with a plurality of edge nodes in the network. The processor is coupled to the communication apparatus and the storage apparatus and executes a program recorded in the storage apparatus to: regularly collect network resources of a plurality of nodes in the network through the communication apparatus and record the network resources in the storage apparatus, wherein the nodes comprise the cloud node and the edge nodes; receive a request of a first job through the communication apparatus at a first time point, and calculate costs for configuring the first job to the respective nodes based on the network resources of the respective nodes at the first time point to configure the first job to a first target node of the nodes; receive a request of a second job at a second time point, calculate costs for configuring the second job to the respective nodes based on the network resources of the respective nodes at the first time point, and determine a second target node suitable for configuring the second job and whether to transfer the first job, wherein the second time point is after the first time point; and configure the second job and maintaining or transferring the first job based on a determination result. 
     Based on the above, the method and the server for dynamic work transfer according to the embodiments of the disclosure mainly configure the first job based on the network resources of the respective nodes at the moment when receiving the first job request through regularly collecting the network information of the nodes in the network. When the request of the second job is received, based on the network resources of the respective nodes before configuring the first job, the costs required for configuring the second job to the respective nodes are re-calculated to determine the node suitable for configuring the second job and determine whether to transfer the first job to another node. Through the method, the server according to the embodiments of the invention may re-configure the nodes for processing the respective jobs based on the properties and the requirements of all the jobs and the network resources of the network, so as to facilitate the overall computation and network transmission performance. 
     Several exemplary embodiments accompanied with figures are described in detail below to further describe the disclosure in details. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The accompanying drawings are included to provide further understanding, and are incorporated in and constitute a part of this specification. The drawings illustrate exemplary embodiments and, together with the description, serve to explain the principles of the disclosure. 
         FIG. 1  is a block diagram illustrating a server according to an embodiment of the disclosure. 
         FIG. 2  is a schematic view illustrating a network framework according to an embodiment of the disclosure. 
         FIG. 3  is a flowchart illustrating a method for dynamic work transfer according to an embodiment of the disclosure. 
         FIG. 4  is a schematic view illustrating a network framework where a plurality of nodes exchange network resources according to an embodiment of the disclosure. 
         FIG. 5  is a schematic view illustrating calculating costs of arranging jobs to respective nodes in a network framework according to an embodiment of the disclosure. 
         FIG. 6  is a flowchart illustrating a method for determining whether to transfer a job according to an embodiment of the disclosure. 
         FIG. 7  is a schematic view illustrating a network framework for determining whether to transfer a job according to an embodiment of the disclosure. 
     
    
    
     DETAILED DESCRIPTION OF DISCLOSED EMBODIMENTS 
     Embodiments of the disclosure provide a method for dynamic work transfer. When a communication apparatus detects that a new job request needs to be executed during a process where a server carries out transmission through a network, the method according to the embodiments of the disclosure allows the server to re-configure network nodes processing jobs with a specific limitation based on properties and requirements of the jobs and network resources of the network, so as to optimize dynamic resource usage and thereby facilitate overall computation and transmission performance of the network. 
       FIG. 1  is a block diagram illustrating a server  100  according to an embodiment of the disclosure. In the embodiment, the server  100  is suitable to serve as a cloud node under a cloud and edge computing framework, and includes a communication apparatus  110 , a storage apparatus  120 , and a processor  130 . The communication apparatus  110  may be connected to a network to communicate with a plurality of edge nodes in the network through network connection. The processor  130  is respectively coupled to the communication apparatus  110  and a storage apparatus  120  and executes a program recorded in the storage apparatus  120 . 
     In the embodiment, the communication apparatus  110  is a network card compatible with a wired network connection standard such as the Ethernet or a wireless network card compatible with a wireless communication standard such as Institute of Electrical and Electronics Engineers (IEEE) 802.11 n/b/g. The communication apparatus  110  may be connected to the network in a wired or wireless manner and may exchange data with an apparatus on the network. The storage apparatus  120  may be any type of fixed or mobile random access memory (RAM), read-only memory (ROM), flash memory, resistive random access memory (RRAM), ferroelectric RAM (FeRAM), magnetoresistive RAM (MRAM), phase change RAM (PRAM), conductive bridge RAM (CBRAM), or dynamic random access memory (DRAM), for example. However, the disclosure is not limited thereto. The processor  130  may be a central processing unit (CPU) or other programmable general purpose or specific purpose microprocessors, digital signal processors (DSP), programmable controllers, application specific integrated circuits (ASIC), other similar devices, or a combination thereof, for example. However, the disclosure is not limited thereto. 
       FIG. 2  is a schematic view illustrating a network framework  200  according to an embodiment of the disclosure. In  FIG. 2 , the network framework  200  includes a cloud node  210 , a plurality of edge nodes  220  to  240 , and a plurality of user apparatuses U 1  to U 8 . As an example, the server  100  of  FIG. 1  is implemented as the cloud node  210 . Referring to  FIGS. 1 and 2 , in the embodiment, the cloud node  210  may regularly collect network resources of the edge nodes  220  to  240  in the network and its own network resource, and record the collected network resources (e.g., recording in the storage apparatus  120 ). The edge nodes  220  and  240  are respectively nodes adjacent to the user apparatuses U 1  to U 8  and may process jobs provided by the user apparatuses U 1  to U 8  nearby. Specifically, the cloud node  210  may receive the job requests transmitted by the user apparatuses U 1  to U 8  through the network, compute and evaluate network resources and data properties in the respective nodes (including the cloud node  210  and the edge nodes  220  to  240 ) based on the collected network resources, and configure the jobs to most suitable nodes for processing. 
       FIG. 3  is a flowchart illustrating a method for dynamic work transfer according to an embodiment of the disclosure. Referring to  FIGS. 1 and 3 , the method of the embodiment is suitable for the server  100  of  FIG. 1 . In the following, detailed steps of the method for dynamic work transfer according to the embodiments of the disclosure are described with reference to the respective components in the server  100 . 
     At Step S 310 , the processor  130  may regularly collect and record network resources of a plurality of nodes in the network through the communication apparatus  110 . The network resources may be a cloud network and a plurality of edge nodes in the network. Regarding the embodiment of Step S 310 ,  FIG. 4  is a schematic view illustrating a network framework  400  where a plurality of nodes exchange network resources according to an embodiment of the disclosure. Referring to  FIG. 4 , in the embodiment, the network framework  400  includes a cloud node  410 , a plurality of edge nodes  420  to  440 , a first user apparatus J 1 , and a second user apparatus J 2 . 
     Specifically, regarding the network sources, the respective edge nodes  420  to  440  may exchange messages with other nodes through regularly broadcasting heartbeat signals, so as to obtain respective transmission latencies with respect to the other nodes. After obtaining the transmission latency information, the respective edge nodes  420  to  440  may report their own network resources to the cloud node  410 . Accordingly, the cloud node  410  may calculate and evaluate the network resources and data properties of the respective edge nodes  420  to  440 . Besides, each of a first job J t  and a second job J t+1  received by the cloud node  410  from the first user apparatus J 1  and the second user apparatus J 2  includes a profile. The profile records a latency time, a bandwidth, a power, and a storage space of the first job J t  or the second job J t+1 . In addition, numerals (e.g., 1, 3) in the profile represent the importance or weights of the respective conditions (i.e., latency time, bandwidth, power, or storage space). With the profile, the processor  130  may receive job conditions required by the jobs. 
     Referring to  FIGS. 1 and 3 , at Step S 320 , the processor  130  may receive a request of receiving the first job at a first time point through the communication device  110 , and calculate costs for configuring the first job to the respective nodes based on the network resources of the respective nodes at the first time point, so as to configure the first job to a first target node of the nodes. 
     Specifically,  FIG. 5  is a schematic view illustrating calculating costs of arranging jobs to respective nodes in a network framework  500  according to an embodiment of the disclosure. In the embodiment, the network framework  500  includes a cloud node  510 , a plurality of edge nodes  520  to  540 , the first user apparatus J 1 , and the second user apparatus J 2 . In  FIG. 5 , the processor  130  may respectively calculate transmission costs, calculation costs, and storage costs required for configuring the first job J t  to the nodes based on the network resources of the respective nodes (the edge nodes  520  to  540  and the cloud node  510 ) at the first time point (t). The processor  130  may further calculate weighted sums of the transmission costs, the calculation costs, and the storage costs as the costs for configuring the first job J t  to the nodes. For example, regarding a node, a total cost C sum  for configuring the first job J t  to the node may be obtained by multiplying a transmission cost C T , a calculation cost C C , and a storage cost C S  required for configuring the first job J t  to the node by weights w 1 , w 2 , and w 3 , respectively. A formula is provided in the following:
 
 C   sum   =w   1   ×C   T   +w   2   ×C   C   +w   3   ×C   S  
 
     To prevent an excessively high value of the network resource of a single node (e.g., the storage space of the cloud node being far greater than those of the edge nodes) from affecting balanced computing of the cost, the processor  130  may normalize the network resources of the respective nodes so as to convert the network resources into the transmission cost C T , the calculation cost C C , and the storage cost C S . 
     For example, the storage cost is negatively proportional to the storage space of each of the nodes. In other words, the storage cost is lower when the storage space is greater. Assuming that a ratio among storage spaces of the respective edge nodes  520  and  540  and the cloud node  510  is 3:3:5:10, a corresponding storage cost ratio after normalization is ⅓:⅓:⅕: 1/10, i.e., 10:10:6:3. Besides, the transmission cost is positively proportional to the latency time of transmission, and is negatively proportional to the transmission bandwidth. In other words, the transmission cost is higher when the latency time is longer, and the transmission cost is lower when the transmission bandwidth is greater. Thus, considering relations among the latency time, the transmission bandwidth, and the transmission cost, a transmission cost ratio among the respective edge nodes  520  to  540  and the cloud node  510  is 2:3:7:10. Besides, the calculation costs are negatively proportional to computing capabilities of the respective nodes. In other words, the calculation cost is lower when the computing capability is stronger. Accordingly, a computing cost ratio among the respective edge nodes  520  to  540  and the cloud node  510  is 5:4:5:4. 
     Referring to  FIG. 3 , at Step S 330 , the processor  130  may receive a request of the second job at a second time point through the communication apparatus  110 , calculate costs for configuring the second job to the respective nodes to determine a second target node suitable for configuring the second job, and determine whether to transfer the first job. Accordingly, at Step S 340 , the second job is configured and the first job is maintained or transferred based on a determination result. The second time point is after the first time point. 
     Specifically, when the request of the second job is received, an optimal node suitable to process the second job in the network may be a node to which a job is not yet configured, but may also be the node configured to process the first job. To prevent the optimal node from being occupied by the first job, which forces the second job to be configured to a second optimal node and makes it unable to achieve optimal resource allocation, when the processor  130  of the embodiment receives the new request of the second job from the user apparatus through the communication device  110  at the second time point, the processor  130  may trace back to the first time point (when the first job is received), calculate the costs for configuring the second job to the respective nodes based on the network resources at the first time point, and configure the second job to the most suitable node. Meanwhile, the processor  130  also determines whether to transfer the previous first job based on a calculation result. In other words, if the optimal node suitable to process the second job is the node previously configured to process the first job, a cost for transferring the first job to another node may be further taken into consideration to determine whether to transfer the first job. 
     Specifically,  FIG. 6  is a flowchart illustrating a method for determining whether to transfer a job according to an embodiment of the disclosure. Referring to  FIGS. 1 and 6 , at Step S 610 , the processor  130  may determine whether the second target node suitable for configuring the second job is the same as the first target node previously configured to process the first job. 
     If the second target node is different from the first target node, the processor  130  does not need to transfer the first job at Step S 620 . Therefore, the second job is configured to the second target node without transferring the first job. Comparatively, if the second target node is the same as the first target node, at Step S 630 , the processor  130  may further determine whether a cost for configuring the second job to the first target node is greater than a cost for configuring the first job to the first target node at the first time point. If the cost for configuring the second job to the first target node is greater than the cost for configuring the first job to the first target node at the first time point, Step S 640  is executed. If the cost for configuring the second job to the first target node is not greater than the cost for configuring the first job to the first target node at the first time point, Step S 650  is executed. 
     If a determination result at Step S 630  indicates that the cost for configuring the second job to the first target node is greater than the cost for configuring the first job to the first target node at the first time point, costs for configuring the second job to the respective nodes are calculated again based on the network resources of the respective nodes at the second time point to configure the second job to a third target node without transferring the first job. Specifically, based on the costs for configuring the second job to the respective nodes calculated based on the second time point, the processor  130  may configure the second job to a node requiring a minimum cost. 
     If the determination result at Step S 630  indicates that the cost for configuring the second job to the first target node is not greater than the cost for configuring the first job to the first target node at the first time point, whether to transfer the first job to a fourth target node as an adjacent node or not transfer the first job is determined based on a cost for configuring the first job to the adjacent node of the first target node at the first time point and a cost for maintaining the first job at the first target node at the second time point. 
     For example,  FIG. 7  is a schematic view illustrating a network framework  700  for determining whether to transfer a job according to an embodiment of the disclosure. In the embodiment, the network framework  700  includes a cloud node  710 , a plurality of edge nodes  720  to  740 , a first user apparatus J 1 , and a second user apparatus J 2 . It is assumed that the cloud node  710  configures the first job J t  of the first user apparatus J 1  to the edge node  730  at a first time point t. When the cloud node  710  receives the request of the second job J t+1  of the second user apparatus J 2  at a second time point t+1, since the processor  130  determines that a cost for configuring the second job J t+1  to the edge node  730  is lower than a cost required for configuring the first job J t  to the edge node  730 , the processor  130  may configure the second job J t+1  to the edge node  730  at the second time point t+1. Under such circumstance, the processor  130  may determine a cost required for configuring the first job J t  to another node (the cloud node  710  or the edge nodes  720  to  740 ) to configure the first job J t  to the node requiring the minimum cost. 
     In other words, under the circumstance, the cloud node  710  may further calculate a cost required for configuring the first job J t  to the cloud node  710  or the edge node  720  or  740  (adjacent to the edge node  730 ) at the first time point t and a cost required for configuring the first job J t  to the edge node  730  at the second time point t+1. If the processor  130  determines that the cost for configuring the first job J t  to the adjacent node of the edge node  730  is lower based on the calculation results, the processor  130  may transfer the first job J t  to another node (e.g., one of the cloud node  710  and the edge nodes  720  and  740 ). Comparatively, if the processor  130  determines that a cost for maintaining the first job J t  at the edge node  730  is lower, the processor  130  may maintain the first job J t  to be processed at the edge node  730 . 
     It should be noted that, in an embodiment, when the processor  130  transfers a job in correspondence with a request of the second job J t+1 , the processor  130  may, for example, only transfer a job within k hops from the second job J t+1 . In other words, the processor  130  only transfers a job configured to a node keeping k hops or fewer from a transmitting end of the second job J t+1 , wherein k is a positive integer. 
     Moreover, in the embodiment, the first job may refer to a job previous to the second job. Alternatively, in another embodiment, the first job may also refer to a job n th  previous to the second job, wherein n is a positive integer. In other words, when receiving a new job, the processor  130  may, for example, trace back to a time point before an n th  previous job is configured, and re-evaluate nodes between a node suitable for processing the n th  previous job and a node currently receiving the new job based on network resources at the time point, and re-configure the nodes for processing the jobs, so as to further facilitate the overall computation and network transmission performance. 
     In view of the foregoing, in addition to providing a load balancing mechanism based on a cost function, when a new job is received, the method and the server for dynamic work transfer according to the embodiments of the disclosure trace back to the network resources when another job is previously configured to re-configure the nodes for processing the jobs. Besides, considering a higher complexity involved in re-configuring all the jobs, the space (i.e., the number of nodes to a transmitting end of the new job) and the time (i.e., the number of jobs to be traced back and reconfigured) of the job to be re-configured are limited to optimize dynamic resource usage. 
     It will be apparent to those skilled in the art that various modifications and variations can be made to the structure of the disclosed embodiments without departing from the scope or spirit of the disclosure. In view of the foregoing, it is intended that the disclosure cover modifications and variations of this disclosure provided they fall within the scope of the following claims and their equivalents.