Method and apparatus for transmitting data and method and apparatus for performing data tasks

A method and apparatus for transmitting data and a method and apparatus for performing a task for process migration are provided. The method of transmitting data includes: determining a data transmission priority using at least one of information relating to data needed to continuously perform a task, that is currently performing, in an external device and information relating to data transmission means; determining transmission methods for each data based on the data transmission priority; and transmitting data to the external device according to the determined transmission methods.

CROSS-REFERENCE TO RELATED PATENT APPLICATION

This application claims the benefit of Korean Patent Application No. 10-2008-0009006, filed on Jan. 29, 2008, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein in its entirety by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a method and apparatus for transmitting data and a method and apparatus for performing a task, and more particularly, to a method and apparatus for transmitting data for process migration and a method and apparatus for performing a migrated process.

2. Description of the Related Art

Data processing speed in computers (or processors) has gradually increased; however, further improvements in this regard are limited. Accordingly, a distribution system has been introduced as an alternative to further increase data processing speed. A plurality of computers interconnected through a network form a distribution system. Since data processing is executed by the plurality of computers in the distribution system, data processing speed is increased considerably.

Process migration is one technique used in the distribution system in order to transmit a process performed in a source device to a target device. When the process migration technique is used, a part of a task to be performed by an overloaded computer is performed by a less-loaded computer so that dynamic load balancing can be efficiently accomplished in the computers of the distribution system.

However, in the conventional art, when two or more processes are to migrate to a target device, the process migration order has not yet been determined so that a process to be performed firstly is sometimes performed later. Moreover, when only one process is to migrate, which data from among data needed to migrate the process should be firstly transmitted has not been yet determined so that a target device can perform the process only after all data is transmitted.

Meanwhile, according to the latest developments in information and communication technologies, the number of users who use more than two spatially separated computers has increased. An example will be given when one computer is used at work and another computer is used at home and a user moves to a different place while he/she performs a process using a computer at work. When performing another task using the processes performed or results obtained by performing the process is not urgent, problems may not occur. In this case, the user may move to a different place while the computer is turned on so as to perform the process automatically or the user may move to a different place after the performing of the task is temporarily stopped. However, when performing another task using the processes performed or the results obtained by performing the process is urgent, the above described case may not be applied. In this case, when the process currently performing is moved to the computer at home using a process migration technique, the process can be continuously performed using the computer at home.

As such, a process migration technique can be applied not only to a distribution system but also to spatially separated computers.

However, when the conventional process migration technique is applied to the distribution system, a network connection between the source device and the target device should be stable, otherwise the process migration cannot be performed.

Thus, as an alternative, a method of storing data needed for process migration from the source device in a mobile storage medium and transmitting the stored data to the target device has been proposed. However, when the storage capacity of the mobile storage medium is not sufficient, data to be written has not yet been determined so that data cannot be transmitted or data must be sequentially written, regardless of the importance. Moreover, even in an urgent case, for example, when a user cannot wait for the data to be transmitted, all data should be written and thus a data transmission time increases.

SUMMARY OF THE INVENTION

The present invention provides a method and apparatus for efficiently transmitting data for process migration and a method and apparatus for efficiently performing a task using the transmitted data.

According to an aspect of the present invention, there is provided a method of transmitting data, including: determining a data transmission priority using at least one of information relating to data needed to continuously perform a task, that is currently performing, in an external device and information relating to data transmission means; determining transmission methods for each data based on the data transmission priority; and transmitting data to the external device according to the determined transmission methods.

The transmitting data may include transmitting data having the data transmission priority that is above a threshold order through a first transmission means and data having the data transmission priority that is below the threshold order through a second transmission means.

The determining transmission methods may include compressing data having the data transmission priority that is below a threshold order and wherein the transmitting data comprises transmitting uncompressed data having the data transmission priority that is above the threshold order data and the compressed data.

The transmitting data may include: transmitting data having the data transmission priority that is above a threshold order; and transmitting data having the data transmission priority that is below the threshold order when a transmission request signal is received from the outside.

The method may further include setting a standard for determining the data transmission priority based on an input from the outside, and wherein the determining of the data transmission priority further uses the set standard for determining the data transmission priority.

The method may further include receiving input selecting one transmission mode from among transmission modes in which data transmission methods according to the data transmission priority are prescribed, and wherein the determining transmission methods is performed based on the selected transmission mode.

The information relating to data transmission means may include at least one of a size of a usable storage space and a data transmission speed and the information relating to data needed to continuously perform a task comprises information relating to at least one of a task execution state, a communication state, an address allocation, and a task control.

According to another aspect of the present invention, there is provided method of performing a task, including: receiving first data having data transmission priority that is above a threshold order according to a predetermined standard from among data needed to continuously perform a task, that is currently performing, in an external device through a first transmission method and receiving second data having data transmission priority that is below the threshold order through a second transmission method; and continuously performing the task in the external device using the first and second data.

The receiving may include receiving the first data through a mobile storage medium which can be removed from and attached to the external device and receiving the second data through a network.

The data may include information relating to at least one of a task execution state, a communication state, an address allocation, and a task control.

According to another aspect of the present invention, there is provided an apparatus for transmitting data, including: a priority determining unit which determines a data transmission priority using at least one of information relating to data needed to continuously perform a task, that is currently performing, in an external device and information relating to data transmission means; a transmission method determining unit which determines transmission methods for each data based on the data transmission priority; and a transmission unit which transmits data to the external device according to the determined transmission methods.

According to another aspect of the present invention, there is provided an apparatus for performing a task, including: a receiver which receives first data having data transmission priority that is above a threshold order according to a predetermined standard from among data needed to continuously perform a task, that is currently performing, in an external device through a first transmission method and receiving second data having data transmission priority that is below a threshold order through a second transmission method; and a task performing unit which continuously performs the task in the external device using the first and second data.

DETAILED DESCRIPTION OF THE INVENTION

Hereinafter, the present invention will be described more fully with reference to the accompanying drawings, in which exemplary embodiments of the invention are shown.

FIG. 1is a block diagram of an apparatus for transmitting data100according to an embodiment of the present invention.

The apparatus for transmitting data100includes a priority determining unit110, a transmission method determining unit120, and a transmission unit130.

The priority determining unit110receives information relating to data needed to continuously perform a task, that is currently performing in the apparatus for transmitting data100, in an external device101. In order for the task currently processed in one device to be continuously performed in another device, various kinds of information capable of indicating data processing modules and a current status of the task should be transmitted. The priority determining unit110may further receive information relating to data transmission means, the information relating to the data transmission means including a transmission environment parameter such as a size of a usable storage space or a transmission speed. The priority determining unit110determines the priority of data based on information relating to data to be transmitted and information relating to the transmission means.

The priority determining unit110may further include a standard setting unit (not shown) to set a standard for determining the priority for determining the transmission priority for data. The standard setting unit (not shown) may set the most reasonable standard for determining the priority using information relating to data to be transmitted and information relating to the transmission means, instead of receiving an input from a user. As an example, types, importance, preference, and size of data to be transmitted may be used as the standard for determining the priority.

However, the standard setting unit (not shown) may set the standard for determining the priority based on an input from the outside. When a user desires to firstly receive data needed for video processing, whether the data is needed for video processing may be the standard for determining the priority. Similarly, when a user desires to rapidly receive data, the capacity of data may be the standard for determining the priority. Each of the standards for determining the priority may have the same importance. However, greater importance may be given to a specific standard for determining the priority.

The transmission method determining unit120determines the transmission methods for each data based on the priority. Data is classified into two or more groups according to a transmission environment and the transmission methods that are different from each other are applied to each group. As an example, data having a high priority is transmitted through a mobile storage medium and data having a low priority may have different transmission means such as when data is transmitted through a network. In addition, according to when data having a high priority is not compressed and only data having a low priority is compressed, a format of data may be different. Also, according to when data having a high priority is firstly transmitted and data having a low priority is transmitted after a request by a user is received, a transmission time may be different.

The transmission method determining unit120may determine the transmission methods for each data based on not only the priority but also a transmission mode selected by a user. The apparatus for transmitting data100previously sets the transmission mode which prescribes data transmission method and allows the selection by a user. This will be described in more detail with reference toFIG. 4.

The transmission unit130transmits data to an external device according to the determined transmission method. The transmission unit130may transmit all data via one transmission means or via two or more transmission means.

In the present invention, a task may be performed by one process or by combining a plurality of processes. When the task is performed by one process, the priority of data needed to migrate the corresponding process is determined and then data is transmitted through different transmission methods according to the priority.

Meanwhile, when the task is performed by combining a plurality of processes, the priority of the processes may be firstly determined and then the priority of data needed to migrate each process may be determined. Also, only the priority of data needed to migrate each process may be determined without determining the priority of the processes. In the former case, the priority of data by each process is determined. In the latter case, the priority of data is determined regardless of the priority of the processes.

FIG. 2is a detailed diagram of the priority determining unit110ofFIG. 1.

Currently, N tasks are performed in a first device (not shown) and a first task210is to be continuously performed in a second device (not shown).

The priority determining unit110receives information211,212,213, and214relating to data needed for the first task210to be continuously performed in the second device. The first task210is only one process and the information211,212,213, and214relating to data to be transmitted is data needed to migrate the process. For the process migration, information indicating a progress status of the first task210should be transmitted with data process modules forming the process. As an example, information relating to the execution state of the first task, information relating to a communication state, information relating to address allocation, and information relating to task control should be transmitted.

The priority determining unit110receives information221relating to data transmission means. The data transmission means may include a mobile storage medium which can be attached to or removed from the first device (not shown), a wire network, and a wireless network. The information221relating to the transmission means includes information relating to a transmission environment such as a data transmission speed from a usable storage space of the mobile storage medium or in a network.

The priority determining unit110determines the priority of data211,212,213, and214based on the information relating to data211,212,213, and214to be transmitted and information221relating to data transmission means. The priority determining unit110determines whether data conforms to a predetermined standard and assigns weights to each data according to the determination result, thereby determining the data priority. Determining the data priority according to the weight assigned by the priority determining unit110is described later with reference toFIG. 3.

When the priority of data is determined according to the assigned weight, the priority determining unit110outputs weight values assigned to each data or outputs a function indicating the weight. W(p) denotes the function indicating the weight assigned to each data. W(p) is transmitted to the transmission method determining unit120along with data to be transmitted to the second device (not shown).

FIG. 3is an example of determining the data priority according to an embodiment of the present invention.

InFIG. 3, determining the data priority is described in the case of a Petri net.

The current task is performed in the first device (not shown) and the priority of data to be determined is video data.

In the Petri net, nodes indicated by circles are referred to as places and each place represents a current status. In addition, nodes indicated by rectangles are referred to as transitions and each transition includes a conditional expression. The transition determines the location of a next place according to whether the data satisfies the conditional expression. The place includes small circles called tokens. The more the number of tokens, the higher the data priority. When different places have the same number of tokens, filled-in tokens have priority over non filled-in tokens.

The first place310has two tokens311. A first transition320determines whether a network connected to the first device (not shown) is activated. When the first device (not shown) is connected through a network and the network is activated, a pointer, which represents a current location, moves to a third place332. On the other hand, when a network is not connected or activated, the pointer moves to a second place331. When a network is activated, high-capacity data can be rapidly transmitted so that the data priority rises.

When the pointer moves to the second place331, the pointer passes through a second transition341. The second transition341compares usable capacity of the mobile storage medium connected to the first device (not shown) with the size of video data. When the size of video data is less than 10% of the usable capacity of the mobile storage medium, the pointer moves to a sixth place353. When the size of video data is above 10% and less than 30% of the usable capacity of the mobile storage medium, the pointer moves to a fifth place352. When the size of video data is above 30% of the usable capacity of the mobile storage medium, the pointer moves to a fourth place351.

When the pointer moves to the third place332, the pointer passes through a third transition342. When the time taken for transmitting video data is more than 10 seconds, the pointer moves to the sixth place353and when the time taken for transmitting video data is below 10 seconds, the pointer moves to a seventh place354.

According to the above-described method, when the pointer reaches the fourth place351through seventh place354, no transition node exists anymore so that determining the data priority is completed. The more tokens exist in the place finally reached by pointer, the higher the data priority. When the filled-in tokens have scores of 1 and the non filled-in tokens have scores of 0.5, weights of 0.5, 1.5, 2, and 3.5 are respectively given to the fourth place351through the seventh place354.

InFIG. 3, the number of the final places is four so that transmitted data is assigned the weight of one place from among the four places. According to an exemplary embodiment, more conditions are given so that data may have various weight values.

According toFIG. 3, the data priority is determined using information relating to video data and the transmission means only, without an input from a user. However, the standard for determining the data priority may be input from the user. As an example, when the user desires to firstly receive audio data without video file, the transition nodes may be further included to determine whether the current data is video data or audio data. In addition, in the case of video data, pointer moves to the place where the tokens do not exist or a small number of the tokens exists so that the transmission priority may be lowered.

FIG. 4illustrates operation of the transmission method determining unit120according to an embodiment of the present invention.

A transmission mode selecting unit410receives a user input selecting one transmission mode from among the transmission modes which prescribe the data transmission methods according to the data priority. Hereinafter, it is assumed that four transmission modes are previously determined. A full transmission mode411is to transmit all data needed to continuously perform a task, without compressing data. The full transmission mode411is characterized by a sufficient storage space and is adequate for the case when an interface with fast data transmission speed is used. When the user selects the full transmission mode411, the transmission method determining unit120allows all data to be transmitted without compressing data.

However, in this case, the transmission method determining unit120allows data to be transmitted through other transmission means according to the data priority. As an example, in the case of data which needs security, the data priority is higher so that the data is transmitted through the mobile storage medium, and in the case of data which does not need security, the data priority is lower so that the data is transmitted through a network.

In a partial compression transmission mode412, data that is essential to continuously perform a task is transmitted, without compressing the data, and additional data is transmitted after compressing the additional data. When the user selects the partial compression transmission mode412, the transmission method determining unit120compresses data having the data priority below a threshold order. The transmission method determining unit120includes a data compression unit (not shown) which compresses data having the data priority that is below a threshold order. The transmission unit130transmits compressed data having data priority that is below a threshold order and uncompressed data having data priority that is above a threshold order. Here, compressed data and uncompressed data may be transmitted together through one transmission means or through another transmission means.

Data illustrated in the transmission method determining unit120ofFIG. 4is transmitted when the user selects the partial compression transmission mode412. When the user selects the partial compression transmission mode412, data421that is essential to continuously perform a task is transmitted without compression and additional data422is transmitted in a compressed form.

In a full compression transmission mode413, all data is compressed and transmitted. When the user selects the full compression transmission mode413, the data compression unit (not shown) compresses all data. The data compression unit (not shown) separately compresses data having data priority above a threshold order and data having data priority below a threshold order and may transmit data through each different transmission means.

In an urgent transmission mode414, data that is essential to continuously perform a task is firstly transmitted through the mobile storage medium and remaining data is stored in an external server that can be accessed by a target device, or remaining data is transmitted when a transmission request signal is received from the user.

When the user selects the urgent transmission mode414, the transmission method determining unit120allows data having data priority above a threshold order to be transmitted through the mobile storage medium. Meanwhile, data having data priority below a threshold order is transmitted to an external server through a network or the same data is transmitted when a transmission request is received from the user.

As described above, for the user's convenience, the transmission method determining unit120changes the transmission means through which data is transmitted, the transmission time, and the format of data to be transmitted based on a transmission mode selection signal and the data priority. In particular, when the user has no time, only essential data is transmitted to the mobile storage medium, and the time taken for transmitting data can be controlled. The above described transmission modes are only an example and various transmission modes can be set according to operating conditions.

FIG. 5illustrates operation of the transmission unit130according to an embodiment of the present invention.

The transmission unit130transmits data through at least one of a mobile storage medium511, a wireless network521, and a wire network531based on the determination of the transmission method determining unit120. The transmission unit130may access the mobile storage medium511, the wireless network521, and the wire network531respectively through a storage medium connection module510, a wireless network module520, and a wire network module530.

The transmission unit130may further include an error detection unit (not shown). The error detection unit generates a transmission error signal when an error is generated during data transmission so that the mobile storage medium511is disconnected, or the wire or wireless network521or531is disconnected. When the transmission error signal is generated, the transmission unit130may inform the user of the error or re-transmit data.

FIG. 6is a block diagram of an apparatus for performing a task600according to an embodiment of the present invention.

The apparatus for performing a task600includes a receiver610and a task performing unit620. The apparatus for performing a task600continuously performs a task that is currently performed in an external device (not shown) and the task may be one process.

The receiver610receives first data having data priority above a threshold order according to a predetermined standard from among data needed to continuously perform a task that is currently performed in the external device (not shown) through a first transmission method. Also, the receiver610receives second data having data priority below a threshold order through a second transmission method. The data priority is determined in the external device (not shown) according to a predetermined standard, in order to determine the transmission method.

Hereinafter, receiving data by the receiver610using two or more transmission methods is described.

The first and second transmission methods may be classified according to a transmission means. For example, the first data may be received through the mobile storage medium which can be removed from and attached to the external device and the second data may be received through a network.

In addition, the first and second transmission methods may be classified according to the format of data. For example, the first data may be received in a compressed form and the second data may be received in an uncompressed form. In this case, the task performing unit620which will be described later uncompresses the second data using an uncompressing unit (not shown).

Moreover, the first and second transmission methods may be classified according to the transmission time. In this case, the receiver610firstly receives the first data. Then, when a request signal is received from the user, the second data is received.

The task performing unit620continuously performs a task in the external device using the first and second data.

FIG. 7is a flowchart of a method of transmitting data according to an embodiment of the present invention.

In operation710, the data transmission priority is determined using at least one of information relating to data needed to continuously perform a task, that is currently performing, in an external device and information relating to data transmission means. The information relating to data needed to continuously perform a task that is currently performed in the external device may be data needed for process migration. For example, information relating to a task execution state, a communication state, an address allocation, and a task control may be data needed for process migration. Also, the information relating to the transmission means may be information relating to a transmission environment such as a size of a usable storage space and a data transmission speed.

Meanwhile, the standard for determining the data priority may be set regardless of an external input or may be set based on an external input.

In operation720, the transmission methods are determined based on the data priority. When a user selects one transmission mode from among the transmission modes in which data transmission methods are set according to the data priority, the data transmission method is determined based on the selected transmission mode.

In operation730, data is transmitted to the external device according to the determined transmission method.

Data having the data priority that is above a threshold order may be transmitted through a first transmission means, data having the data priority that is below a threshold order may be transmitted through a second transmission means, and only data having the data priority that is below a threshold order may be compressed and transmitted. Also, when a transmission request signal is received from the outside after the data having the data priority that is above a threshold order is transmitted, data having the data priority that is below a threshold order may be transmitted.

FIG. 8is a flowchart of a method of performing a task according to an embodiment of the present invention.

In operation810, first data having the priority that is above a threshold order according to a predetermined standard from among data needed to continuously perform a task that is currently performed in the external device is received through a first transmission method. Also, second data having the data priority that is below a threshold order is received through a second transmission method. For example, the first data may be received through the mobile storage medium which can be removed from and attached to the external device and the second data may be received through a network. The received data may include at least one of information relating to a task execution state, a communication state, an address allocation, and a task control.

In operation820, a task is continuously performed in the external device using the first and second data.

According to the present invention, the priority of data needed for process migration is determined and the transmission method differs according to the data priority, thereby efficiently transmitting data.

In addition, the transmission means differ according to the data priority so that process migration can be accomplished even if the capacity of the storage space is not sufficient.

Moreover, only essential data is firstly transmitted through the mobile storage medium and thus the data transmission time can be reduced.

Embodiments of the present invention can be written as computer programs and can be implemented in general-use digital computers that execute the programs using a computer readable recording medium. Examples of the computer readable recording medium include magnetic storage media (e.g., ROM, floppy disks, hard disks, etc.) and optical recording media (e.g., CD-ROMs or DVDs). Embodiments of the present invention can also be written as computer programs and can be implemented in general-use digital computers that execute the programs using a computer readable transmission medium. Examples of the computer readable transmission medium include media such as carrier waves (e.g., transmission through the Internet).