Data transmission method and device, electronic equipment and computer readable medium

By creating a scheduling virtual machine for cloud mobile phones and choosing the scheduling solution with the shortest execution time, the low data transmission efficiency and resource waste caused by the fixed computing resources of cloud mobile phones are solved, and efficient resource scheduling and data transmission efficiency are achieved.

CN119182777AActive Publication Date: 2024-12-24CHINA MOBILE INTERNET CO LTD +1
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
CN202411138642.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-19
Publication Date
2024-12-24
Estimated Expiration
2044-08-19

AI Technical Summary

Technical Problem

Due to the fixed allocation of computing resources in cloud mobile phones, data transmission may take too long or waste resources, and lack effective resource scheduling methods.

Method used

By creating multiple scheduling virtual machines for cloud mobile computing resource scheduling, a candidate scheduling scheme is determined based on the data transmission task to be executed, and a target scheduling scheme with the shortest time required for execution is selected for data transmission.

Benefits of technology

It realizes efficient scheduling of cloud mobile phone resources, avoids waste of computing resources, improves data transmission efficiency and server service capacity for cloud mobile phones, and improves the ability of large-scale data transmission tasks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119182777A_ABST
    Figure CN119182777A_ABST
Patent Text Reader

Abstract

The embodiment of the invention relates to the technical field of data transmission, and provides a data transmission method and device, electronic equipment and a computer readable medium. The data transmission method comprises the following steps: creating a plurality of scheduling virtual machines for cloud mobile phone computing resource scheduling, each cloud mobile phone being allocated with predetermined computing resources; determining a plurality of candidate scheduling schemes of the scheduling virtual machine based on a to-be-executed data transmission task; determining a target scheduling scheme in the plurality of candidate scheduling schemes based on the time required for executing the data transmission task by each candidate scheduling scheme; and performing data transmission based on the target scheduling scheme.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of data transmission, and in particular to a method, device, electronic device and computer-readable medium for data transmission. Background Art

[0002] A cloud phone is a virtual phone deployed on a server. Users can remotely connect to the cloud phone through a client to realize various functions and services of the mobile terminal.

[0003] In order to perform data transmission, each cloud phone is usually allocated with fixed computing resources. However, since the computing resources allocated to the cloud phone are fixed, when the computing resources allocated to the cloud phone are less than the computing resources required for data transmission, the data transmission may take too long; conversely, when the computing resources allocated to the cloud phone are greater than the computing resources required for data transmission, the computing resources may be wasted. Therefore, a method for resource scheduling for cloud phones is needed. Summary of the invention

[0004] The purpose of the embodiments of the present application is to provide a method for data transmission that can perform resource scheduling for cloud phones.

[0005] To solve the above technical problems, the embodiments of the present application are implemented through the following aspects.

[0006] In a first aspect, an embodiment of the present application provides a method for data transmission, including: creating multiple scheduling virtual machines for cloud phone computing resource scheduling, wherein each cloud phone is allocated with predetermined computing resources; based on a data transmission task to be executed, determining multiple candidate scheduling schemes for the scheduling virtual machines; based on the time required for each candidate scheduling scheme to execute the data transmission task, determining a target scheduling scheme from the multiple candidate scheduling schemes; and performing data transmission based on the target scheduling scheme.

[0007] In a second aspect, an embodiment of the present application provides a device for data transmission, comprising: a creation module for creating multiple scheduling virtual machines for cloud phone computing resource scheduling, wherein each cloud phone is allocated with predetermined computing resources; a first determination module for determining multiple candidate scheduling schemes for the scheduling virtual machines based on a data transmission task to be executed; a second determination module for determining a target scheduling scheme from the multiple candidate scheduling schemes based on the time required for each candidate scheduling scheme to execute the data transmission task; and a data transmission module for performing data transmission based on the target scheduling scheme.

[0008] In a third aspect, an embodiment of the present application provides an electronic device comprising: a memory, a processor, and computer executable instructions stored in the memory and executable on the processor, wherein the computer executable instructions, when executed by the processor, implement the method for data transmission described in the first aspect above.

[0009] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, which is used to store computer-executable instructions. When the computer-executable instructions are executed by a processor, the method for data transmission described in the first aspect above is implemented.

[0010] In a fifth aspect, an embodiment of the present application provides a computer program product, which includes a computer program stored on a non-transitory computer-readable storage medium, and the computer program includes program instructions. When the program instructions are executed by a computer, the computer executes the method for data transmission described in the first aspect above.

[0011] In an embodiment of the present application, multiple scheduling virtual machines for cloud phone computing resource scheduling are created, wherein each cloud phone is allocated with predetermined computing resources; based on the data transmission task to be executed, multiple candidate scheduling schemes for the scheduling virtual machines are determined; based on the time required for each candidate scheduling scheme to execute the data transmission task, a target scheduling scheme is determined from the multiple candidate scheduling schemes; based on the target scheduling scheme, data transmission is performed, so that resource scheduling can be performed for the cloud phone to avoid waste of computing resources. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative labor.

[0013] Figure 1 A schematic diagram showing a flow chart of a data transmission method provided by an embodiment of the present application;

[0014] Figure 2 Another schematic diagram showing a flow chart of a data transmission method provided by an embodiment of the present application;

[0015] Figure 3 Another schematic diagram showing a flow chart of a data transmission method provided by an embodiment of the present application;

[0016] Figure 4 A schematic diagram showing the structure of a data transmission device provided in an embodiment of the present application is shown;

[0017] Figure 5 A schematic diagram of the hardware structure of an electronic device for executing a data transmission method provided in an embodiment of the present application. DETAILED DESCRIPTION

[0018] In order to enable those skilled in the art to better understand the technical solutions in this application, the technical solutions in the embodiments of this application will be clearly and completely described below in conjunction with the drawings in the embodiments of this application. Obviously, the described embodiments are only part of the embodiments of this application, not all of them. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without creative work should fall within the scope of protection of this application.

[0019] Figure 1 A flow chart of a method for data transmission provided by an embodiment of the present application is shown, and the method can be performed by an electronic device, such as a server device. In other words, the method can be performed by software or hardware installed on the server device. The server includes but is not limited to: a single server, a server cluster, a cloud server or a cloud server cluster, etc. As shown in the figure, the method may include the following steps S110 to S140.

[0020] Step S110: Create multiple scheduling virtual machines for cloud phone computing resource scheduling.

[0021] Cloud phones are virtual phones deployed on servers, and there are usually multiple of them. Each cloud phone is allocated with a predetermined computing resource, and the size of the predetermined computing resource is fixed. Scheduling virtual machines is used to schedule cloud phone computing resources, including scheduling computing resources between different cloud phones, and / or scheduling other computing resources of the server for use by cloud phones. Among them, other computing resources refer to computing resources that the server has not allocated to cloud phones, which can be public computing resources of the server.

[0022] Optionally, a data transmission task with a data transmission volume less than a specified threshold is defined as a basic task, and a data transmission task with a data transmission volume greater than or equal to the specified threshold is defined as a large task. The cloud phone executes the basic task, and the virtual machine is scheduled to execute the large task in combination with the cloud phone.

[0023] This step prepares for the scheduling of computing resources for cloud phones by creating a scheduling virtual machine.

[0024] Step S120: Based on the data transmission task to be executed, a plurality of candidate scheduling schemes for scheduling the virtual machine are determined.

[0025] The cloud phone constructs a data transmission task to be executed, and at the same time, it can obtain the data transmission volume of the data transmission task and the data operations that need to be performed before the data is sent. Based on the size of the data transmission volume and the type of data operations that need to be performed before the data is sent, if a scheduling virtual machine is required, multiple candidate scheduling schemes for scheduling virtual machines are determined. For example, if the size of the data transmission volume exceeds the preset value or the data processing operation is a preset large data operation type, the data transmission task is assigned to the corresponding large data scheduling virtual machine for transmission, and multiple candidate schemes for performing the data transmission task through the large data scheduling virtual machine, i.e., candidate scheduling schemes, are determined.

[0026] Optionally, the data processing volume corresponding to the data transmission task may also be obtained, and based on the size of the data processing volume, multiple candidate scheduling schemes for scheduling virtual machines are determined when a scheduling virtual machine is required. For example, if the size of the data processing volume exceeds a preset value, the data transmission task is assigned to a corresponding large data scheduling virtual machine for processing, and multiple candidate schemes for processing the data corresponding to the data transmission task by the large data scheduling virtual machine are determined.

[0027] Through this step, the data transmission task of the cloud phone can be assigned to the scheduling virtual machine, and a variety of candidate solutions for the data transmission task can be provided.

[0028] Step S130: determining a target scheduling scheme from a plurality of candidate scheduling schemes based on the time required for each candidate scheduling scheme to execute the data transmission task.

[0029] The time required for each candidate scheduling scheme to execute the data transmission task includes the expected execution time of the data transmission task on its corresponding scheduling virtual machine. Expected execution time = data transmission volume corresponding to the data transmission task / computing capacity of the scheduling virtual machine per unit time. Optionally, the time required for each candidate scheduling scheme to execute the data transmission task also includes scheduling time, that is, the time required to schedule the data transmission task from the cloud phone to the scheduling virtual machine. However, since the cloud phone and the scheduling virtual machine are deployed on the same server or the same server cluster, the scheduling time can be ignored.

[0030] In one possible implementation, there are multiple data transmission tasks to be executed; the time required to execute a data transmission task is the total time required to execute all the data transmission tasks. In other words, the time required to execute a data transmission task is the sum of the time required to execute each data transmission task. Step S130 includes determining the target scheduling scheme from multiple candidate scheduling schemes based on the total time required to execute all the data transmission tasks in each candidate scheduling scheme. Optionally, in order to ensure data transmission efficiency, multiple tasks can be executed together without affecting the computing power of the scheduling virtual machine, thereby shortening the execution time. For example, when three tasks are executed simultaneously, the task processing time of a single large data scheduling virtual machine will be shortened to 1 / 3.

[0031] Generally speaking, the shorter the time required for each candidate scheduling scheme to execute the data transmission task, the better the resource scheduling effect. Therefore, the candidate scheduling scheme with the shortest required time or the shortest required time and value can be selected as the target scheduling scheme.

[0032] Through this step, a target scheduling scheme for data transmission can be selected from a variety of candidate scheduling schemes.

[0033] Step S140: Perform data transmission based on the target scheduling scheme.

[0034] By performing data transmission based on the target scheduling scheme obtained in the above steps, a scheduling scheme suitable for the current data transmission task can be used.

[0035] In the embodiment of the present application, multiple scheduling virtual machines for cloud phone computing resource scheduling are created, wherein each cloud phone is allocated with predetermined computing resources; based on the data transmission task to be executed, multiple candidate scheduling schemes of the scheduling virtual machine are determined; based on the time required for each candidate scheduling scheme to execute the data transmission task, a target scheduling scheme is determined from the multiple candidate scheduling schemes; based on the target scheduling scheme, data transmission is performed. Since the scheduling virtual machine has public computing resources with stronger computing power than the cloud phone, when it comes to complex data processing or large-scale data transmission, the cloud phone can combine the public computing resources of the scheduling virtual machine to perform task processing, thereby realizing resource scheduling of the cloud phone and avoiding waste of computing resources. Furthermore, it can save the computing resources occupied by each cloud phone, increase the service capacity of the server for the cloud phone, and improve the ability to complete large-scale data transmission tasks.

[0036] Figure 2 Another flow chart of the method for data transmission provided by the embodiment of the present application is shown. As shown in the figure, the method may include the following steps S210 to S240.

[0037] Step S210: Create multiple scheduling virtual machines for cloud phone computing resource scheduling, where each cloud phone is allocated with a predetermined computing resource

[0038] Step S220: Based on the data transmission task to be executed, determine a plurality of candidate scheduling schemes for scheduling the virtual machine.

[0039] Step S210 and step S220 may adopt the description of the corresponding steps in the previous embodiment, and the repeatable parts will not be repeated here.

[0040] Step S231: Based on the time required for each candidate scheduling scheme to execute the data transmission task, determine a predetermined number of preferred scheduling schemes from a plurality of the candidate scheduling schemes.

[0041] Based on the fitness values ​​corresponding to the data transmission tasks of each candidate scheduling scheme, a predetermined number of preferred scheduling schemes are selected from the candidate scheduling schemes to update and optimize the schemes other than the preferred scheduling schemes in the candidate scheduling schemes. The fitness value is the reciprocal of the time required for the candidate scheduling scheme to perform the data transmission task. Generally speaking, the larger the fitness value, the better the scheduling effect of the corresponding scheduling scheme.

[0042] Before determining the optimal scheduling scheme from multiple candidate scheduling schemes, the data transmission task can be encoded to facilitate the subsequent optimization process. km represents the mth large data transmission task in the current kth cloud phone, then x 11 , x 12 , …, x 1m , …, x 21 , x 22 , …, x 2m , …, x 31 , x 32 , …, x 3m , …, x km Assign the code to x in sequence 1 , x 2 , …, x E , E = km. Let the number of scheduled virtual machines be J, and the sequence numbers are 1, 2, ..., J. Randomly initialize (x 1 , x 2 , …, x E ) is an integer in [1,J], and an initial individual is obtained. Each individual corresponds to a candidate scheduling scheme; multiple initial individuals are repeatedly obtained to obtain a population to be optimized, and the population to be optimized corresponds to multiple candidate scheduling schemes.

[0043] Optionally, an automatic optimization algorithm is used to determine a predetermined number of preferred scheduling solutions from a plurality of candidate scheduling solutions. Execution of the automatic optimization algorithm may include two optimization processes.

[0044] In one possible implementation, step S231 includes: determining a first predetermined number of first preferred scheduling schemes from multiple candidate scheduling schemes based on the time required for each candidate scheduling scheme to execute the data transmission task; and determining a second predetermined number of second preferred scheduling schemes based on the first preferred scheduling schemes.

[0045] Based on the first preferred scheduling scheme, determine a second predetermined number of second preferred scheduling schemes, including: based on the first preferred scheduling scheme, updating candidate scheduling schemes other than the first preferred scheduling scheme; and determining a second predetermined number of second preferred scheduling schemes from the first preferred scheduling scheme and the updated candidate scheduling schemes.

[0046] Optionally, the first predetermined number is 3, and the second predetermined number is 1. Based on the time required for each candidate scheduling scheme to execute the data transmission task, determining a first predetermined number of first preferred scheduling schemes from multiple candidate scheduling schemes includes obtaining the top three individuals in fitness from the population to be optimized, namely, the first target individual, the second target individual, and the third target individual. Based on the first target individual, the second target individual, and the third target individual, other individuals are updated. The first target individual, the second target individual, and the third target individual are retained, and randomly initialized with the updated other individuals in the threshold interval [1, J] to obtain an updated population. The individual with the largest fitness value in the updated population is determined as the global optimal individual, and the global optimal individual corresponds to the second preferred scheduling scheme.

[0047] Step S232: Based on the preferred scheduling scheme, other candidate scheduling schemes other than the preferred scheduling scheme are updated.

[0048] Step S232 includes: a) based on the first preferred scheduling solution, updating other candidate scheduling solutions except the first preferred scheduling solution.

[0049] For example, based on the first target individual, the second target individual, and the third target individual determined in the above steps, other individuals in the optimized population are updated according to the following formula:

[0050]

[0051] D ζ1 =|E 1 X ζ1 -X(t)|

[0052] D ζ2 =|E2 X ζ2 -X(t)|

[0053] D ζ3 =|E 3 X ζ3 -X(t)|

[0054] Among them, X(t) represents other individuals, X(t+1) represents other individuals after update, t represents the number of updates, and X ζ1 represents the first target individual, X ζ2 represents the second target individual, X ζ3 represents the third target individual, D ζ1 represents the first intermediate parameter, D ζ2 Denotes the second intermediate parameter, D ζ3 Represents the third intermediate parameter, A 1 represents the first coefficient corresponding to the first target individual, A 2 represents the second coefficient corresponding to the second target individual, A 3 The third coefficient corresponding to the third target individual is represented by the method of obtaining the first coefficient, the second coefficient and the third coefficient as follows: A = 2*a*r 1 -a, A represents the first coefficient, the second coefficient or the third coefficient; a represents the convergence factor, whose initial value is 2, and gradually decreases linearly from 2 to 0 as the number of iterations increases during the update process, r 1 Represents the first random number between (0,1). 1 represents the fourth coefficient corresponding to the first target individual, E 2 represents the fifth coefficient corresponding to the second target individual, E 3 The sixth coefficient corresponding to the third target individual, the fourth coefficient, the fifth coefficient and the sixth coefficient are obtained as follows: E = 2r 2 , E represents the fourth coefficient, the fifth coefficient or the sixth coefficient, r 2 Represents the second random number between (0,1). t=1,2,…,tmax; tmax represents the number of repetitions of step a). The above update can effectively maintain the global search, thereby effectively increasing the solution accuracy and convergence speed. After updating A, E and convergence factor a, and repeating step a) multiple times, proceed to the subsequent update step b). Optionally, in order to ensure the accuracy of the final allocation result, the nearest integer corresponding to each element is used as the serial number of the corresponding large data scheduling virtual machine, but the parameters within the individual are not changed. At the same time, out-of-bounds data needs to be processed. That is, (x 1 , x 2 , …, x M ) is rounded to the integer of each element, and we get (x 1 ', x 2 ', ..., xM '), then (x 1 ', x 2 ', ..., x M ')Get(x 1 , x 2 , …, x M ) corresponds to the fitness value.

[0055] In a possible implementation, step S232 includes b) updating other candidate scheduling schemes other than the second preferred scheduling scheme based on the second preferred scheduling scheme.

[0056] For example, based on the global optimal individual confirmed in the previous step, other individuals in the updated population are updated according to the following formula:

[0057] X(t'+1)=X(t')+V(t'+1)

[0058] V(t'+1)=ωV(t')+(X(t')-X best )Q

[0059] ω=ω min +(ω max -ω min )(1-log T t')+τ*betarnd

[0060] Q=Q min +(Q max -Q min )β

[0061] Among them, X(t') represents other individuals, X(t'+1) represents other individuals after update, V(t'+1) represents the current increment, ω represents the inertia weight, V(t') represents the last increment, X best represents the global optimal individual, Q represents the search frequency, ω max represents the maximum value of the inertia weight, ω min represents the minimum value of the inertia weight, T represents the maximum number of the entire update process, t' represents the current update number, τ represents the inertia deviation factor, betarnd represents the number generated on the Beta distribution, Q min Indicates the lower limit of search frequency, Q max represents the upper limit of the search frequency, and β represents a random number between [0,1].

[0062] During the update process, if you have a larger inertia weight, it is beneficial to global search; if you have a smaller inertia weight, it is beneficial to local search. (1-log Tt') decreases with the increase of the number of updates, making the inertia weight larger in the early stage of the update and improving the global search capability; in the later stage, it is converted to a local search, making the final search results more accurate.

[0063] Step S233: Determine the target scheduling scheme among the preferred scheduling scheme and the updated candidate scheduling schemes.

[0064] The updated candidate scheduling scheme is a scheme updated based on the preferred scheduling scheme. Selecting the target scheduling scheme from the preferred scheduling scheme and the updated candidate scheduling schemes can improve data processing efficiency and data transmission efficiency.

[0065] Step S240: Perform data transmission based on the target scheduling scheme.

[0066] Step S240 may adopt the description of the corresponding step in the previous embodiment, and the repeatable parts will not be described again here.

[0067] In a possible implementation, after determining a second predetermined number of second preferred scheduling schemes based on the first preferred scheduling scheme, the method further includes: assigning an initial search probability and an initial loudness to each of the second preferred scheduling scheme and the updated candidate scheduling schemes, and updating the search probability and the loudness each time the scheduling scheme is updated. Optionally, assigning an initial search probability r to each individual in the updated population 0 , and in each updating process, the search probability of each individual is updated, and the update is: r(t'+1)=r 0 (1-exp(-γt')), where r(t'+1) represents the search probability during the t'+1th update process, and γ is a constant term greater than 0. Assign an initial loudness A to each individual in the updated population 0 , and the loudness of each individual is updated in each updating process. The update is: A(t'+1) = χA(t'), A(t') represents the loudness in the t'th updating process, χ represents a constant term between (0,1), and A(t'+1) represents the updated A(t').

[0068] Step S233 includes: based on the updated search probability and the updated loudness, determining the target scheduling solution in the second preferred scheduling solution and the updated candidate scheduling solution. This step is used to re-determine the global optimal individual, in other words, to verify whether the individual determined in the above step b) corresponds to the optimal solution. This step specifically includes, for each individual X, generating a random number R1, and determining whether the random number R1 is greater than r(t'+1). If so, generating a new solution from the vicinity of the global optimal individual, Otherwise, a new solution is generated from the vicinity of the individual. Among them, Xnew represents a new individual, σ represents an individual randomly generated within the threshold interval, Represents the scaling factor.

[0069] In a possible implementation, before step S140 or step S240, it also includes: determining whether the time corresponding to the target scheduling scheme meets the first threshold; if the time corresponding to the target scheduling scheme does not meet the first threshold, determining whether the number of updates corresponding to the target scheduling scheme meets the second threshold. Specifically, it is determined whether the fitness value corresponding to the global optimal individual determined in the above step is greater than the first preset threshold. If the fitness value corresponding to the global optimal individual is greater than the first preset threshold, the scheduling scheme corresponding to the global optimal individual is used as the target scheduling scheme, and the target scheduling scheme is output; if the fitness value corresponding to the global optimal individual is less than or equal to the first preset threshold, the corresponding number of updates is judged. If the corresponding number of updates is greater than or equal to the update number threshold, that is, the second threshold, the scheduling scheme corresponding to the global optimal individual is used as the target scheduling scheme, and the target scheduling scheme is output; if the corresponding number of updates is less than the update number threshold, return to step S232. This step is used to further determine whether the determined target scheduling scheme is the optimal scheme. Optionally, the global optimal individual is decoded to obtain the target scheduling scheme.

[0070] In the embodiment of the present application, by considering the scheduling time and execution time of all data transmission tasks in the server, the best scheduling solution for large tasks can be effectively found, thereby improving data processing efficiency and data transmission efficiency.

[0071] Figure 3 Another flow chart of a method for data transmission provided by an embodiment of the present application is shown. As shown in the figure, the method may include the following steps S310 to S340.

[0072] Step S310: Create multiple scheduling virtual machines for cloud phone computing resource scheduling, wherein each cloud phone is allocated with predetermined computing resources.

[0073] Step S320: Based on the data transmission task to be executed, determine a plurality of candidate scheduling schemes for scheduling the virtual machine.

[0074] Step S330: determining a target scheduling scheme from a plurality of candidate scheduling schemes based on the time required for each candidate scheduling scheme to execute the data transmission task.

[0075] Step S330 and the previous steps may adopt the description of the corresponding steps in the aforementioned embodiment, and the repeatable parts will not be repeated here.

[0076] Step S340: Transmit encrypted data based on the target scheduling scheme.

[0077] In a possible implementation manner, the encrypted data is obtained based on at least one of an elliptic curve encryption algorithm, a random encryption algorithm, and a symmetric encryption algorithm.

[0078] Based on the elliptic curve encryption algorithm, the encrypted data is obtained, including: obtaining basic parameters, which include the attribute space of the data receiver and the user identity; generating system parameters based on the basic parameters. Specifically, for each attribute i in the attribute space, a number u is randomly selected from the finite field. i , get the key P corresponding to each attribute i =u i ·G, G represents the base point of the q-order elliptic curve group GE over a finite field. Generate encryption parameters for the data sender, randomly select a parameter s from the finite field, and obtain the master private key MK=s and the master public key PK=s·G. Among them, the master public key PK is sent to the data sender, and the master public key and the base point G are sent to the data receiver.

[0079] Based on the random encryption algorithm, encrypted data is obtained, including: the data sender encrypts the data m to be sent according to the master public key PK to obtain the ciphertext data C. A parameter z is randomly selected from a finite field, and an encryption information key SK=z·PK is generated according to the master public key PK and the parameter z.

[0080] Based on the symmetric encryption algorithm, encrypted data is obtained, including: selecting an encryption information key SK of the data m to be sent, and using the encryption information key SK and the symmetric encryption algorithm to encrypt the data m to be sent to obtain a ciphertext C0.

[0081] Optionally, the method for obtaining encrypted data further includes obtaining access control parameters (M, ρ), where M represents an l×k matrix, and the function ρ maps a row of M to an attribute i. Randomly select k parameters y1, y2, ...yk from a finite field and form a first vector v1 = (s, y1, y2, ...yk); for any row in the matrix M, obtain λ i =M i ·v1;M i represents the i-th row of the matrix M; with all λ i Based on, the first sharing vector is obtained as λ=(λ 1 ,λ 2 ,…,λ i ,…,λ l ). Randomly select k parameters u1, u2, ...uk from the finite field and form a second vector v2 = (0, u1, u2, ...uk); for any row in the matrix M, get w i =Mi ·v2;M j represents the i-th row of the matrix M; with all w i Based on, the second sharing vector is obtained as w=(w 1 ,w 2 ,…,w i ,…,w l ). For the i-th attribute, generate the first encryption parameter C 1i =λ i ·PK-w i ·P i And the second encryption parameter C 2i =w i G. According to the first encryption parameters of all attributes, the matrix C1 is obtained; according to the second encryption parameters of all attributes, the matrix C2 is obtained. Thus, the ciphertext data C = (C0, C1, C2) is obtained.

[0082] When different users use cloud phones, there are data senders and data receivers. In order to ensure data security, the data sender and the data receiver need to authenticate each other. It is understandable that whether the data sender sends data or the data receiver receives data, the scheduling virtual machine can be called.

[0083] In one possible implementation, applied to the data sender, step S340 includes: receiving a master public key generated based on the attributes and user identity of the data receiver; encrypting the data to be sent based on the master public key to obtain ciphertext data; and sending the ciphertext data and a key generated based on the attributes and user identity of the data receiver to the data receiver.

[0084] In one possible implementation, applied to a data recipient, step S340 includes: ciphertext data and a key, wherein the ciphertext data is obtained by encrypting the data to be sent based on a master public key, the master public key is generated based on the attributes and user identity of the data recipient, and the key is generated based on the ciphertext data and the attributes and user identity of the data recipient.

[0085] Generate a master public key based on the data recipient's attributes and user identity, and use a random encryption algorithm to obtain the master public key. Obtain ciphertext data based on the random encryption algorithm and / or the symmetric encryption algorithm. Generate a key based on the ciphertext data and the data recipient's attributes and user identity, including generating a key for each attribute of the data recipient by the trusted center: D i =u i +H(UID), where u i It means selecting a number from a finite field, UID means user identity, and H means hash function.

[0086] Optionally, after step S340, the data recipient may i Decrypt and use the received data. The decryption process is as follows:

[0087] ∑C 1i +∑C 2i ·D i =∑(λ i ·PK-w i ·P i )+∑(w i ·P i +w i ·H(UID)·G)=

[0088] ∑λ i ·PK+∑w i ·H(UID)·G

[0089] Get the coefficients C in the finite field i , so that ∑C i ·M i =(1,0,0,…,0), and substitute the coefficients into ∑λ i PK+vw i In H(UID) G, we have:

[0090] v i ·λ i ·PK+∑C i ·w i H(UID)G=∑C i ·λ i PK+0=z·s·G=SK

[0091] Therefore, the ciphertext C0 can be decrypted according to SK to complete the data transmission.

[0092] In the embodiment of the present application, the key can be securely transmitted to the data recipient, and the key for each data encryption process is the same. Compared with the method of modifying permissions in the related art, the encryption scheme provided in the embodiment of the present application is more flexible, which can not only ensure data security, but also give the data recipient more operations. Compared with the method of encrypting with a public key in the prior art, the risk of data leakage caused by key leakage is effectively reduced.

[0093] Based on the above encryption scheme, combined with the optimal scheduling scheme determined by the automatic optimization algorithm, multiple scheduling virtual machines are scheduled to process and forward data according to the data transmission task. While reducing the computing overhead, it can provide access policies with higher granularity, and the scheme is resistant to collusion attacks.

[0094] In an embodiment of the present application, multiple scheduling virtual machines for cloud phone computing resource scheduling are created, wherein each cloud phone is allocated with predetermined computing resources; based on the data transmission task to be executed, multiple candidate scheduling schemes for the scheduling virtual machines are determined; based on the time required for each candidate scheduling scheme to execute the data transmission task, a target scheduling scheme is determined from the multiple candidate scheduling schemes; based on the target scheduling scheme, data transmission is performed, so that resource scheduling can be performed for the cloud phone to avoid waste of computing resources.

[0095] Figure 4 A schematic diagram of the structure of a data transmission device provided in an embodiment of the present application is shown, wherein the device 400 includes: a creation module 410, a first determination module 420, a second determination module 430 and a data transmission module 440.

[0096] A creation module 410 is used to create multiple scheduling virtual machines for cloud phone computing resource scheduling, wherein each cloud phone is allocated with predetermined computing resources; a first determination module 420 is used to determine multiple candidate scheduling schemes for the scheduling virtual machines based on the data transmission task to be executed; a second determination module 430 is used to determine a target scheduling scheme from the multiple candidate scheduling schemes based on the time required for each candidate scheduling scheme to execute the data transmission task; a data transmission module 440 is used to perform data transmission based on the target scheduling scheme.

[0097] In one possible implementation, the second determination module 430 is used to determine a predetermined number of preferred scheduling schemes from multiple candidate scheduling schemes based on the time required for each candidate scheduling scheme to execute the data transmission task; based on the preferred scheduling scheme, update other candidate scheduling schemes other than the preferred scheduling scheme; and determine the target scheduling scheme among the preferred scheduling schemes and the updated candidate scheduling schemes.

[0098] In one possible implementation, the second determination module 430 is used to determine a first predetermined number of first preferred scheduling schemes from multiple candidate scheduling schemes based on the time required for each candidate scheduling scheme to execute the data transmission task; and to determine a second predetermined number of second preferred scheduling schemes based on the first preferred scheduling schemes.

[0099] In a possible implementation, the second determining module 430 is configured to update other candidate scheduling schemes other than the second preferred scheduling scheme based on the second preferred scheduling scheme.

[0100] In a possible implementation, the second determination module 430 is configured to assign an initial search probability and an initial loudness to each of the second preferred scheduling scheme and the updated candidate scheduling schemes, and update the search probability and the loudness each time the scheduling scheme is updated; and determine the target scheduling scheme in the second preferred scheduling scheme and the updated candidate scheduling schemes based on the updated search probability and the updated loudness.

[0101] In one possible implementation, the data transmission device 400 is also used to determine whether the time corresponding to the target scheduling scheme meets a first threshold; when the time corresponding to the target scheduling scheme does not meet the first threshold, determine whether the number of updates corresponding to the target scheduling scheme meets a second threshold.

[0102] In a possible implementation, the second determination module 430 is used to determine the target scheduling scheme from a plurality of the candidate scheduling schemes based on the total time required for each of the candidate scheduling schemes to execute all the data transmission tasks.

[0103] In a possible implementation, the data transmission module 440 is configured to transmit encrypted data based on the target scheduling scheme.

[0104] In one possible implementation, the data transmission module 440 is used to receive a master public key generated based on the attributes and user identity of a data recipient; based on the master public key, encrypt the data to be sent to obtain ciphertext data; and send the ciphertext data and a key generated based on the attributes and user identity of the data recipient to the data recipient.

[0105] In a possible implementation manner, the encrypted data is obtained based on at least one of an elliptic curve encryption algorithm, a random encryption algorithm, and a symmetric encryption algorithm.

[0106] The device 400 provided in the embodiment of the present application can execute the above Figures 1 to 3 The methods described in the method embodiments implement the functions and beneficial effects of the methods described in the previous method embodiments, which will not be described in detail here.

[0107] Figure 5A schematic diagram of the hardware structure of an electronic device that executes the user matching method provided in an embodiment of the present application is shown. Referring to the figure, at the hardware level, the electronic device includes a processor 510, and optionally, an internal bus 520, a network interface 530, and a memory. Among them, the memory may include a memory 540, such as a high-speed random access memory (Random-Access Memory, RAM), and may also include a non-volatile memory (non-volatile memory) 550, such as at least one disk storage, etc. Of course, the electronic device may also include hardware required for other services.

[0108] The processor 510, the network interface 530 and the memory may be connected to each other via an internal bus 520, which may be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, only one bidirectional arrow is used in the figure, but it does not mean that there is only one bus or one type of bus.

[0109] The memory is used to store programs. Specifically, the program may include program codes, and the program codes include computer operation instructions. The memory may include a memory 540 and a non-volatile memory 550, and provide instructions and data to the processor 510.

[0110] The processor 510 reads the corresponding computer program from the non-volatile memory 550 into the memory 540 and then runs it, forming a device for locating the target user at the logical level. The processor 510 executes the program stored in the memory and is specifically used to execute Figures 1 to 3 The method described in the embodiment achieves the same or corresponding technical effects.

[0111] The above application Figures 1 to 3The method disclosed in the illustrated embodiment can be applied to a processor or implemented by a processor 510. The processor 510 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by an integrated logic circuit of hardware or software instructions in the processor 510. The above processor 510 can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed. The general-purpose processor can be a microprocessor or the processor can also be any conventional processor, etc. The steps of the method disclosed in the embodiments of the present application can be directly embodied as a hardware decoding processor for execution, or a combination of hardware and software modules in the decoding processor for execution. The software module may be located in a storage medium mature in the art, such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory, and the processor 510 reads the information in the memory and completes the steps of the above method in combination with its hardware.

[0112] The electronic device can also execute the above Figures 1 to 3 The methods described in the illustrated method embodiments implement the functions and beneficial effects of the methods described in the preceding method embodiments, which will not be described in detail here.

[0113] Of course, in addition to software implementation, the electronic device of the present application does not exclude other implementation methods, such as logic devices or a combination of software and hardware, etc. That is to say, the execution subject of the following processing flow is not limited to each logic unit, but can also be hardware or logic devices.

[0114] The embodiment of the present application also provides a computer-readable storage medium, wherein the computer-readable medium stores one or more programs, and when the one or more programs are executed by an electronic device including multiple application programs, the electronic device executes Figures 1 to 3 The method described in the embodiment achieves the same or corresponding technical effects.

[0115] The computer-readable storage medium includes a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, etc.

[0116] Furthermore, the embodiment of the present application also provides a computer program product, the computer program product comprising a computer program stored on a non-transitory computer-readable storage medium, the computer program comprising program instructions, when the program instructions are executed by a computer, Figures 1 to 3 The method described in the embodiment achieves the same or corresponding technical effects.

[0117] In short, the above description is only a preferred embodiment of the present application and is not intended to limit the protection scope of the present application. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application shall be included in the protection scope of the present application.

[0118] The systems, devices, modules or units described in the above embodiments may be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer. Specifically, the computer may be, for example, a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.

[0119] Computer-readable media include permanent and non-permanent, removable and non-removable media that can be used to store information by any method or technology. Information can be computer-readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase-change RAM (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer-readable media does not include temporary computer-readable media (transitory media), such as modulated data signals and carrier waves.

[0120] It should also be noted that the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, commodity or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, commodity or device. In the absence of more restrictions, the elements defined by the sentence "comprises a ..." do not exclude the existence of other identical elements in the process, method, commodity or device including the elements.

[0121] Each embodiment in this specification is described in a progressive manner, and the same or similar parts between the embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the system embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.

Claims

1. A method for data transmission, characterized in that: include: Creating a plurality of scheduling virtual machines for cloud phone computing resource scheduling, wherein each cloud phone is allocated with a predetermined computing resource; Determining a plurality of candidate scheduling schemes for scheduling the virtual machine based on the data transmission task to be executed; Determining a target scheduling scheme from a plurality of candidate scheduling schemes based on the time required for each candidate scheduling scheme to execute the data transmission task; Based on the target scheduling scheme, data transmission is performed.

2. The method according to claim 1, characterized in that The determining a target scheduling scheme from a plurality of candidate scheduling schemes based on the time required for each candidate scheduling scheme to execute the data transmission task comprises: Determining a predetermined number of preferred scheduling schemes from a plurality of the candidate scheduling schemes based on the time required for each candidate scheduling scheme to execute the data transmission task; Based on the preferred scheduling scheme, updating other candidate scheduling schemes other than the preferred scheduling scheme; The target scheduling scheme is determined among the preferred scheduling scheme and the updated candidate scheduling schemes.

3. The method according to claim 2, characterized in that The determining a predetermined number of preferred scheduling schemes from a plurality of the candidate scheduling schemes based on the time required for each candidate scheduling scheme to execute the data transmission task comprises: Based on the time required for each candidate scheduling scheme to execute the data transmission task, determine a first predetermined number of first preferred scheduling schemes from a plurality of the candidate scheduling schemes; Based on the first preferred scheduling solution, a second predetermined number of second preferred scheduling solutions are determined.

4. The method according to claim 3, characterized in that Based on the preferred scheduling scheme, updating other candidate scheduling schemes other than the preferred scheduling scheme includes: Based on the second preferred scheduling scheme, other candidate scheduling schemes other than the second preferred scheduling scheme are updated.

5. The method according to claim 3, characterized in that: After determining a second predetermined number of second preferred scheduling solutions based on the first preferred scheduling solution, the method further comprises: Assigning an initial search probability and an initial loudness to each of the second preferred scheduling scheme and the updated candidate scheduling scheme, and updating the search probability and the loudness each time the scheduling scheme is updated; Determining the target scheduling solution among the preferred scheduling solution and the updated candidate scheduling solution includes: Based on the updated search probability and the updated loudness, the target scheduling solution is determined among the second preferred scheduling solution and the updated candidate scheduling solutions.

6. The method according to claim 1, characterized in that: Before performing data transmission based on the target scheduling scheme, the method further includes: Determining whether the time corresponding to the target scheduling solution meets a first threshold; When the time corresponding to the target scheduling scheme does not meet the first threshold, it is determined whether the number of updates corresponding to the target scheduling scheme meets the second threshold.

7. The method according to claim 1, characterized in that The number of data transmission tasks to be executed is multiple; The determining a target scheduling scheme from a plurality of candidate scheduling schemes based on the time required for each candidate scheduling scheme to execute the data transmission task comprises: The target scheduling scheme is determined from a plurality of the candidate scheduling schemes based on the total time required for each of the candidate scheduling schemes to execute all the data transmission tasks.

8. The method according to claim 1, characterized in that Based on the target scheduling scheme, data transmission is performed, including: Based on the target scheduling scheme, the encrypted data is transmitted.

9. The method according to claim 8, characterized in that The transmitting encrypted data comprises: Receive a master public key generated based on the attributes of the data recipient and the user identity; Based on the master public key, encrypt the data to be sent to obtain ciphertext data; The ciphertext data and a key generated based on the attributes of the data recipient and the user identity are sent to the data recipient.

10. The method according to claim 8, characterized in that The encrypted data is obtained based on at least one of an elliptic curve encryption algorithm, a random encryption algorithm and a symmetric encryption algorithm.

Citation Information

Patent Citations

  • Resource scheduling method based on virtual machine

    CN107168805A

  • Resource scheduling method and device, network system and storage medium

    CN113132445A

  • Cloud mobile phone system, cloud mobile phone creating method and cloud mobile phone resource scheduling method

    CN116192854A

  • Method and system based on multi-cloud resource scheduling, equipment and medium

    CN117742936A

  • Cloud mobile phone scheduling method and device based on user request, equipment and storage medium

    CN118118556A