Method, apparatus, electronic device and computer readable medium for data transmission
By creating a scheduling virtual machine for the cloud phone and selecting the optimal scheduling scheme, the data transmission problem caused by improper allocation of cloud phone computing resources was solved, achieving efficient resource utilization and improved data transmission efficiency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- CHINA MOBILE INTERNET CO LTD
- Filing Date
- 2024-08-19
- Publication Date
- 2026-04-28
AI Technical Summary
Improper allocation of computing resources in cloud phones can lead to problems such as excessively long data transmission times or wasted computing resources.
Multiple scheduling virtual machines are created for cloud phone computing resource scheduling. Based on the data transmission task to be executed, multiple candidate scheduling schemes are determined, and the optimal scheme is selected for data transmission.
It enables efficient scheduling of cloud phone resources, avoids waste of computing resources, and improves data transmission efficiency and server service capacity.
Smart Images

Figure CN119182777B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of data transmission technology, and in particular to a method, apparatus, electronic device, and computer-readable medium for data transmission. Background Technology
[0002] A cloud phone is a virtual phone deployed on a server. Users can remotely connect to the cloud phone through a client and access various functions and services of the mobile terminal.
[0003] For data transmission, each cloud phone is typically allocated a fixed amount of computing resources. However, since the computing resources allocated to a cloud phone are fixed, if the allocated resources are less than the resources required for data transmission, the data transmission may take too long; conversely, if the allocated resources are greater than the resources required for data transmission, it may result in wasted computing resources. Therefore, a method for resource scheduling for cloud phones is needed. Summary of the Invention
[0004] The purpose of this application is to provide a data transmission method that enables resource scheduling for cloud phones.
[0005] To solve the above-mentioned technical problems, the embodiments of this application are implemented through the following aspects.
[0006] In a first aspect, embodiments of this application provide a data transmission method, comprising: creating multiple scheduling virtual machines for cloud phone computing resource scheduling, wherein each cloud phone is allocated predetermined computing resources; determining multiple candidate scheduling schemes for the scheduling virtual machines based on a data transmission task to be executed; determining a target scheduling scheme among the multiple candidate scheduling schemes based on the time required to execute the data transmission task according to each candidate scheduling scheme; and performing data transmission based on the target scheduling scheme.
[0007] Secondly, embodiments of this application provide a data transmission apparatus, comprising: a creation module for creating multiple scheduling virtual machines for cloud phone computing resource scheduling, wherein each cloud phone is allocated predetermined computing resources; a first determining module for determining multiple candidate scheduling schemes of the scheduling virtual machines based on a data transmission task to be executed; a second determining module for determining a target scheduling scheme among the multiple candidate scheduling schemes based on the time required to execute the data transmission task according to each candidate scheduling scheme; and a data transmission module for performing data transmission based on the target scheduling scheme.
[0008] Thirdly, embodiments of this application provide an electronic device, including: 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 data transmission method described in the first aspect above.
[0009] Fourthly, embodiments of this application provide a computer-readable storage medium for storing computer-executable instructions, which, when executed by a processor, implement the data transmission method described in the first aspect above.
[0010] Fifthly, embodiments of this application provide a computer program product, the computer program product including a computer program stored on a non-transitory computer-readable storage medium, the computer program including program instructions, which, when executed by a computer, cause the computer to perform the data transmission method described in the first aspect above.
[0011] In this embodiment, multiple scheduling virtual machines are created for cloud phone computing resource scheduling, wherein each cloud phone is allocated predetermined computing resources; multiple candidate scheduling schemes of the scheduling virtual machines are determined based on the data transmission task to be executed; based on the time required to execute the data transmission task according to each candidate scheduling scheme, a target scheduling scheme is determined among the multiple candidate scheduling schemes; and data transmission is performed based on the target scheduling scheme, which enables resource scheduling for cloud phones and avoids waste of computing resources. Attached Figure Description
[0012] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0013] Figure 1 This illustration shows a flowchart of a data transmission method provided in an embodiment of this application;
[0014] Figure 2 This illustration shows another flowchart of a data transmission method provided in an embodiment of this application;
[0015] Figure 3 This illustration shows another flowchart of a data transmission method provided in an embodiment of this application;
[0016] Figure 4 This diagram illustrates the structure of a data transmission apparatus according to an embodiment of this application.
[0017] Figure 5 A schematic diagram of the hardware structure of an electronic device for implementing a data transmission method provided in an embodiment of this application. Detailed Implementation
[0018] 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 with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of this application.
[0019] Figure 1 This diagram illustrates a flowchart of a data transmission method provided in an embodiment of this application. This method can be executed by an electronic device, such as a server device. In other words, the method can be executed 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. As shown, 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] A cloud phone is a virtual phone deployed on a server, and there are usually multiple cloud phones. Each cloud phone is allocated a fixed amount of computing resources. Virtual machine scheduling is used for cloud phone computing resource scheduling, including scheduling computing resources between different cloud phones and / or scheduling other computing resources on the server for cloud phone use. These other computing resources refer to computing resources not allocated to cloud phones by the server; these can be shared computing resources of the server.
[0022] Optionally, data transmission tasks with data transfer volume less than a specified threshold are defined as basic tasks, while data transmission tasks with data transfer volume greater than or equal to the specified threshold are defined as large tasks. The cloud phone executes basic tasks, and schedules virtual machines to combine with the cloud phone to execute large tasks.
[0023] This step prepares for the implementation of computing resource scheduling for cloud phones by creating a scheduling virtual machine.
[0024] Step S120: Based on the data transmission task to be executed, determine multiple candidate scheduling schemes for the scheduled virtual machine.
[0025] The cloud phone constructs a data transmission task to be executed. Simultaneously, it can obtain the data transmission volume and the data operations required before data transmission. Based on the data transmission volume and the types of data operations required before transmission, multiple candidate scheduling schemes for the scheduling virtual machine are determined when a scheduling virtual machine is needed. For example, if the data transmission volume exceeds a 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 are determined; these are the candidate scheduling schemes.
[0026] Optionally, the data processing volume corresponding to the data transmission task can be obtained. Based on the size of the data processing volume, if a scheduling virtual machine is required, multiple candidate scheduling schemes for the scheduling virtual machine can be determined. For example, if the data processing volume exceeds a preset value, the data transmission task can be 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 through the large data scheduling virtual machine can be determined.
[0027] This step enables the allocation of data transmission tasks from cloud phones to scheduling virtual machines and provides multiple candidate solutions for data transmission tasks.
[0028] Step S130: Based on the time required to execute the data transmission task according to each candidate scheduling scheme, determine the target scheduling scheme from among the multiple candidate scheduling schemes.
[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 power 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 the scheduling time, i.e., 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, this 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 for a data transmission task is the sum of the times required to execute each data transmission task. Step S130 includes determining the target scheduling scheme from among the multiple candidate scheduling schemes based on the total time required to execute all the data transmission tasks according to each candidate scheduling scheme. Optionally, to ensure data transmission efficiency, multiple tasks can be executed simultaneously without affecting the computing power of the scheduling virtual machine, thereby shortening the execution time. For example, executing three tasks simultaneously will reduce the task processing time of a single large data scheduling virtual machine to 1 / 3.
[0031] Generally, 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] This step allows you to select the target scheduling scheme for data transmission 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 from the aforementioned steps, a scheduling scheme suitable for the current data transmission task can be used.
[0035] In this embodiment, multiple scheduling virtual machines are created for cloud phone computing resource scheduling, each cloud phone being allocated 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 to execute the data transmission task for each candidate scheduling scheme, a target scheduling scheme is determined from the multiple candidate scheduling schemes. Data transmission is performed based on the target scheduling scheme. Since the scheduling virtual machines have more powerful public computing resources than the cloud phones, when complex data processing or large-scale data transmission is involved, the cloud phones can combine the public computing resources of the scheduling virtual machines to process tasks, thus realizing resource scheduling for the cloud phones and avoiding waste of computing resources. Furthermore, it can save computing resources occupied by each cloud phone, increase the server's service capacity for cloud phones, and improve the ability to complete large-scale data transmission tasks.
[0036] Figure 2 This illustration shows another flowchart of a data transmission method provided in an embodiment of this application. As shown, the method may include the following steps S210 to S240.
[0037] Step S210: Create multiple scheduling virtual machines for cloud phone computing resource scheduling, wherein each cloud phone is allocated a predetermined amount of computing resources.
[0038] Step S220: Based on the data transmission task to be executed, determine multiple candidate scheduling schemes for the scheduled virtual machine.
[0039] Steps S210 and S220 can be described using the corresponding steps in the previous embodiment. Repeatable parts will not be described again here.
[0040] Step S231: Based on the time required to execute the data transmission task according to each candidate scheduling scheme, determine a predetermined number of preferred scheduling schemes among the multiple candidate scheduling schemes.
[0041] Based on the fitness values corresponding to the data transmission tasks performed by each candidate scheduling scheme, a predetermined number of optimal scheduling schemes are selected from the candidate scheduling schemes. These optimal schemes are then used to update and optimize the remaining schemes. The fitness value is the reciprocal of the time required for a candidate scheduling scheme to perform the data transmission task. Generally speaking, the higher the fitness value, the better the scheduling effect of the corresponding scheduling scheme.
[0042] Before determining the optimal scheduling scheme from multiple candidate schemes, the data transmission task can be encoded to facilitate the subsequent optimization process. For example, suppose x km Let x represent the m-th large data transmission task existing in the k-th cloud phone. 11 x 12 , ..., x 1m , ..., x 21 x 22 , ..., x 2m , ..., x 31 x 32 , ..., x 3m , ..., x km The codes are assigned sequentially as x1, x2, ..., x E E = km. Let J be the number of virtual machines to be scheduled, and let the sequence numbers be 1, 2, ..., J. Randomly initialize (x1, x2, ..., x... E Each element in ) is an integer in [1, J], to obtain an initial individual, and each individual corresponds to a candidate scheduling scheme; multiple initial individuals are obtained repeatedly 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 employed to determine a predetermined number of preferred scheduling schemes from multiple candidate scheduling schemes. Executing 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 among a plurality of candidate scheduling schemes based on the time required to execute the data transmission task for each candidate scheduling scheme; 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, determining a second predetermined number of second preferred scheduling schemes includes: updating candidate scheduling schemes other than the first preferred scheduling scheme based on 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 quantity is 3, and the second predetermined quantity is 1. Based on the time required to execute the data transmission task according to each candidate scheduling scheme, the first preferred scheduling scheme, which determines the first predetermined quantity among the multiple candidate scheduling schemes, includes obtaining the three individuals with the top three 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, the 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 the updated population. The individual with the largest fitness value in the updated population is determined as the globally optimal individual, and the globally optimal individual corresponds to the second preferred scheduling scheme.
[0047] Step S232: Based on the preferred scheduling scheme, update other candidate scheduling schemes besides the preferred scheduling scheme.
[0048] Step S232 includes a) updating other candidate scheduling schemes besides the first preferred scheduling scheme based on the first preferred scheduling scheme.
[0049] For example, based on the first target individual, the second target individual, and the third target individual determined in the preceding steps, the other individuals in the population to be optimized are updated according to the following formula:
[0050]
[0051] D ζ1 =|E1X ζ1 -X(t)|
[0052] D ζ2 =|E2X ζ2 -X(t)|
[0053] D ζ3 =|E3X ζ3 -X(t)|
[0054] Where X(t) represents other individuals, X(t+1) represents other individuals after the update, t represents the number of updates, and X ζ1 X represents the first target individual. ζ2 X represents the second target individual. ζ3 D represents the third target individual. ζ1 D represents the first intermediate parameter. ζ2 D represents the second intermediate parameter. ζ3 Let A1 represent the first coefficient corresponding to the first target individual, A2 represent the second coefficient corresponding to the second target individual, and A3 represent the third coefficient corresponding to the third target individual. The first, second, and third coefficients are obtained as follows: A = 2 * a * r1 - a, where A represents the first, second, or third coefficient; a represents the convergence factor, which is initially 2 and gradually decreases linearly from 2 to 0 as the number of iterations increases during the update process; r1 represents the first random number between (0,1). Let E1 represent the fourth coefficient corresponding to the first target individual, E2 represent the fifth coefficient corresponding to the second target individual, and E3 represent the sixth coefficient corresponding to the third target individual. The fourth, fifth, and sixth coefficients are obtained as follows: E = 2r2, where E represents the fourth, fifth, or sixth coefficient; r2 represents the second random number between (0,1). t = 1, 2, ..., tmax; tmax represents the number of repetitions of step a). The above update effectively maintains the global search, thereby effectively increasing the solution accuracy and convergence speed. Update A, E, and the convergence factor a, and repeat step a) multiple times before proceeding to the subsequent update step b). Optionally, to ensure the accuracy of the final allocation result, the nearest integer corresponding to each element is used as the sequence number of its corresponding large data scheduling virtual machine, but the parameters within the individual element are not changed. Data exceeding the bounds needs to be handled. That is, (x1, x2, ..., x... M After rounding each element in the integer part, we get (x1', x2', ..., x...). M '), then (x1', x2', ..., x M ') Get (x1, x2, ..., x M The corresponding fitness value.
[0055] In one possible implementation, step S232 includes b) updating other candidate scheduling schemes besides the second preferred scheduling scheme based on the second preferred scheduling scheme.
[0056] For example, based on the globally optimal individual identified in the aforementioned steps, the 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] Where X(t') represents other individuals, X(t'+1) represents other individuals after the update, V(t'+1) represents the current increment, ω represents the inertia weight, and V(t') represents the previous increment. best Let Q represent the globally optimal individual, and ω represent the search frequency. max ω represents the maximum value of the inertia weight. min Let represent the minimum value of the inertia weight, T represent the maximum number of updates in the entire update process, t' represent the current update count, τ represent the inertia deviation factor, betarnd represent the number generated on the beta distribution, and Q represent the number generated on the beta distribution. min Q represents the lower limit of search frequency. max β represents the upper limit of the search frequency, and β represents a random number between [0,1].
[0062] During the update process, a larger inertia weight is beneficial for global search; a smaller inertia weight is beneficial for local search. (1-log) T The inertial weight decreases as the number of updates increases, resulting in a larger inertial weight in the early stages of updates, which improves the global search capability; in the later stages, it is converted into a local search, making the final search results more accurate.
[0063] Step S233: Determine the target scheduling scheme from the preferred scheduling scheme and the updated candidate scheduling scheme.
[0064] The updated candidate scheduling scheme is based on the optimized scheduling scheme. Selecting the target scheduling scheme from the optimized scheduling scheme and the updated candidate scheduling scheme can improve data processing efficiency and data transmission efficiency.
[0065] Step S240: Perform data transmission based on the target scheduling scheme.
[0066] Step S240 can be described using the steps described in the previous embodiment. For repeatable parts, they will not be repeated here.
[0067] In one possible implementation, after determining a second predetermined number of second preferred scheduling schemes based on the first preferred scheduling scheme, the process 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 loudness each time the scheduling scheme is updated. Optionally, an initial search probability r0 is assigned to each individual in the updated population, and the search probability of each individual is updated in each update process, the update being: r(t'+1)=r0(1-exp(-γt')), where r(t'+1) represents the search probability in the t'+1th update process, and γ is a constant term greater than 0. An initial loudness A0 is assigned to each individual in the updated population, and the loudness of each individual is updated in each update process, the update being: A(t'+1)=χA(t'), where A(t') represents the loudness in the t'th update process, χ represents a constant term between (0,1), and A(t'+1) represents the updated A(t').
[0068] Step S233 includes: determining the target scheduling scheme from the second preferred scheduling scheme and the updated candidate scheduling schemes based on the updated search probability and the updated loudness. This step is used to redetermine the globally optimal individual; in other words, it is used to verify whether the individual determined in step b) corresponds to the optimal scheme. Specifically, this step includes generating a random number R1 for each individual X and determining whether the random number R1 is greater than r(t'+1). If so, a new solution is generated from the vicinity of the globally optimal individual. Otherwise, a new solution is generated from the vicinity of that individual. Among them, X new Let σ represent a new individual, and let σ represent an individual randomly generated within the threshold interval. This represents the scaling factor.
[0069] In one possible implementation, before step S140 or step S240, the method further includes: determining whether the time corresponding to the target scheduling scheme meets a first threshold; if the time corresponding to the target scheduling scheme does not meet the first threshold, determining whether the update count corresponding to the target scheduling scheme meets a second threshold. Specifically, it is determined whether the fitness value corresponding to the globally optimal individual determined in the aforementioned steps is greater than a first preset threshold. If the fitness value corresponding to the globally optimal individual is greater than the first preset threshold, the scheduling scheme corresponding to the globally optimal individual is taken as the target scheduling scheme and output; if the fitness value corresponding to the globally optimal individual is less than or equal to the first preset threshold, the update count corresponding to it is judged. If the update count corresponding to it is greater than or equal to the update count threshold, i.e., the second threshold, the scheduling scheme corresponding to the globally optimal individual is taken as the target scheduling scheme and output; if the update count corresponding to it is less than the update count threshold, the process returns to step S232. This step is used to further determine whether the determined target scheduling scheme is the optimal scheme. Optionally, the globally optimal individual is decoded to obtain the target scheduling scheme.
[0070] In this embodiment of the application, by considering the scheduling time and execution time of all data transmission tasks within the server, the optimal scheduling scheme for large tasks can be effectively found, thereby improving data processing efficiency and data transmission efficiency.
[0071] Figure 3 This illustration shows another flowchart of a data transmission method provided in an embodiment of this application. As shown, 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 a predetermined computing resource.
[0073] Step S320: Based on the data transmission task to be executed, determine multiple candidate scheduling schemes for the scheduled virtual machine.
[0074] Step S330: Based on the time required to execute the data transmission task according to each candidate scheduling scheme, determine the target scheduling scheme from among the multiple candidate scheduling schemes.
[0075] Step S330 and the preceding steps can be described using the steps described in the foregoing embodiments. Repeatable parts will not be repeated here.
[0076] Step S340: Based on the target scheduling scheme, transmit encrypted data.
[0077] In one possible implementation, the encrypted data is obtained based on at least one of elliptic curve cryptography, random encryption, and symmetric encryption algorithms.
[0078] Based on the elliptic curve cryptography algorithm, encrypted data is obtained, including: acquiring basic parameters, which include the attribute space of the data receiver and the user's identity identifier; and generating system parameters based on the basic parameters. Specifically, for each attribute i in the attribute space, a number u is randomly selected from a finite field. i Obtain the key P corresponding to each attribute. i =u i Let G denote the base point of the q-order elliptic curve group GE over a finite field. To generate encryption parameters for the data sender, a parameter s is randomly selected from the finite field, yielding the master private key MK = s and the master public key PK = s·G. The master public key PK is sent to the data sender, while the master public key and the base point G are sent to the data receiver.
[0079] Based on a random encryption algorithm, encrypted data is obtained, including: the data sender encrypts the data to be sent, m, using the master public key PK to obtain ciphertext data C. A parameter z is randomly selected from a finite field, and an encryption key SK = z·PK is generated based on the master public key PK and the parameter z.
[0080] Based on the symmetric encryption algorithm, the encrypted data is obtained, including: selecting the encryption information key SK of the data to be sent m, and encrypting the data to be sent m using the encryption information key SK and the symmetric encryption algorithm to obtain the ciphertext C0.
[0081] Optionally, the method for obtaining encrypted data also 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. K parameters y1, y2, ..., yk are randomly selected from a finite field and formed into a first vector v1 = (s, y1, y2, ..., yk); for any row in matrix M, λ is obtained. i =M i ·v1;M i Represent the i-th row of matrix M; with all λ i Based on this, the first sharing vector is obtained as λ = (λ1, λ2, ..., λ). i ,…,λ l Randomly select k parameters u1, u2, ... uk from a finite field and form a second vector v2 = (0, u1, u2, ... uk); for any row in matrix M, obtain w i =M i ·v2;M j Represent the i-th row of matrix M; with all w i Based on this, the second sharing vector is obtained as w = (w1, w2, ..., wi ,…,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. Based on the first encryption parameter of all attributes, matrix C1 is obtained; based on the second encryption parameter of all attributes, 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. To ensure data security, data senders and receivers need to authenticate each other. It's understandable that both the data sender and the data receiver can invoke the scheduling virtual machine.
[0083] In one possible implementation, applied to the data sender, step S340 includes: receiving a master public key generated based on the data receiver's attributes and user identity identifier; 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 data receiver's attributes and user identity identifier to the data receiver.
[0084] In one possible implementation, applied to the data receiver, step S340 includes: ciphertext data and a key, wherein the ciphertext data is obtained by encrypting the data to be sent based on the master public key, the master public key is generated based on the attributes and user identity of the data receiver, and the key is generated based on the ciphertext data and the attributes and user identity of the data receiver.
[0085] A master public key is generated based on the data recipient's attributes and user identification. A random encryption algorithm is then used to obtain the master public key. Ciphertext data is obtained using a random encryption algorithm and / or a symmetric encryption algorithm. A key is generated based on the ciphertext data and the data recipient's attributes and user identification. This key is generated by the trusted center for each attribute of the data recipient, and is named D. i =u i +H(UID), where u i This indicates selecting a number from a finite field, where UID represents the user's identity identifier and H represents the hash function.
[0086] Optionally, after step S340, the data receiver can, based on the ciphertext data and key D, i The received data is decrypted and then used. 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] Obtaining the coefficients C in a 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] vC 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 based on SK to complete the data transmission.
[0092] In this embodiment, the key can be securely transmitted to the data receiver, and the key is the same for each data encryption process. Compared to the permission modification method in related technologies, the encryption scheme provided in this embodiment is more flexible, ensuring data security while granting the data receiver more operational capabilities. Furthermore, compared to the public key encryption method used in existing technologies, it effectively reduces the risk of data leakage due to key leakage.
[0093] Based on the aforementioned encryption scheme and combined with an optimal scheduling scheme determined by an automatic optimization algorithm, multiple virtual machines are scheduled to process and forward data according to the data transmission task. This approach reduces computational overhead while providing a more granular access policy, and it is also resistant to collusion attacks.
[0094] In this embodiment, multiple scheduling virtual machines are created for cloud phone computing resource scheduling, wherein each cloud phone is allocated predetermined computing resources; multiple candidate scheduling schemes are determined based on the data transmission task to be executed; based on the time required to execute the data transmission task according to each candidate scheduling scheme, a target scheduling scheme is determined among the multiple candidate scheduling schemes; and data transmission is performed based on the target scheduling scheme, which enables resource scheduling for cloud phones and avoids waste of computing resources.
[0095] Figure 4 The diagram shows a structural schematic of a data transmission device provided in an embodiment of this application. 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 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 among the multiple candidate scheduling schemes based on the time required to execute the data transmission task according to each candidate scheduling scheme; and a data transmission module 440 is used to perform data transmission based on the target scheduling scheme.
[0097] In one possible implementation, the second determining module 430 is used to determine a predetermined number of preferred scheduling schemes among the multiple candidate scheduling schemes based on the time required to execute the data transmission task according to each candidate scheduling scheme; update other candidate scheduling schemes other than the preferred scheduling schemes based on the preferred scheduling schemes; and determine the target scheduling scheme among the preferred scheduling schemes and the updated candidate scheduling schemes.
[0098] In one possible implementation, the second determining module 430 is used to determine a first predetermined number of first preferred scheduling schemes among a plurality of candidate scheduling schemes based on the time required to execute the data transmission task based on each candidate scheduling scheme; and to determine a second predetermined number of second preferred scheduling schemes based on the first preferred scheduling schemes.
[0099] In one possible implementation, the second determining module 430 is used to update other candidate scheduling schemes besides the second preferred scheduling scheme based on the second preferred scheduling scheme.
[0100] In one possible implementation, the second determining 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 scheme, and update the search probability and loudness each time the scheduling scheme is updated; and determine the target scheduling scheme among the second preferred scheduling scheme and the updated candidate scheduling scheme based on the updated search probability and the updated loudness.
[0101] In one possible implementation, the data transmission device 400 is further configured to determine whether the time corresponding to the target scheduling scheme meets a first threshold; and if the time corresponding to the target scheduling scheme does not meet the first threshold, to determine whether the number of updates corresponding to the target scheduling scheme meets a second threshold.
[0102] In one possible implementation, the second determining module 430 is used to determine the target scheduling scheme among the multiple candidate scheduling schemes based on the total time required to execute all the data transmission tasks according to each of the candidate scheduling schemes.
[0103] In one possible implementation, the data transmission module 440 is used 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 the data receiver; encrypt the data to be sent based on the master public key to obtain ciphertext data; and send the ciphertext data and the key generated based on the attributes and user identity of the data receiver to the data receiver.
[0105] In one possible implementation, the encrypted data is obtained based on at least one of elliptic curve cryptography, random encryption, and symmetric encryption algorithms.
[0106] The device 400 provided in this embodiment can perform the aforementioned... Figures 1 to 3 The methods described in the method embodiments achieve the functions and beneficial effects of the methods described in the preceding method embodiments, and will not be repeated here.
[0107] Figure 5This diagram illustrates the hardware structure of an electronic device executing the user matching method provided in the embodiments of this application. Referring to the diagram, at the hardware level, the electronic device includes a processor 510, and optionally includes an internal bus 520, a network interface 530, and a memory. The memory may include main memory 540, such as high-speed random-access memory (RAM), and may also include non-volatile memory 550, such as at least one disk storage device. Of course, the electronic device may also include other hardware required for other services.
[0108] The processor 510, network interface 530, and memory can be interconnected via an internal bus 520. This internal bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus, etc. The bus can be categorized as an address bus, data bus, control bus, etc. For ease of illustration, only a single bidirectional arrow is used in this diagram, but this does not imply 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 code, which includes computer operation instructions. The memory may include main memory 540 and non-volatile memory 550, and provides instructions and data to the processor 510.
[0110] Processor 510 reads the corresponding computer program from non-volatile memory 550 into memory 540 and then runs it, forming a device for locating the target user at the logical level. Processor 510 executes the program stored in memory and specifically performs... Figures 1 to 3 The method described in the embodiments achieves the same or corresponding technical effects.
[0111] The above is as stated in this application. Figures 1 to 3The methods disclosed in the illustrated embodiments can be applied to a processor or implemented by processor 510. Processor 510 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by integrated logic circuits in the hardware of processor 510 or by instructions in software form. The 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 gate or transistor logic devices, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly embodied in the execution of a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor. The software module can reside in a mature storage medium in the field, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, or registers. This storage medium is located in the memory, and the processor 510 reads the information from the memory and, in conjunction with its hardware, completes the steps of the above method.
[0112] This electronic device can also perform the aforementioned... Figures 1 to 3 The methods described in the illustrated embodiments achieve the functions and beneficial effects of the methods described in the preceding embodiments, and will not be repeated here.
[0113] Of course, in addition to software implementation, the electronic device of this application does not exclude other implementation methods, such as logic devices or a combination of hardware and software, etc. In other words, the execution subject of the following processing flow is not limited to each logic unit, but can also be hardware or logic devices.
[0114] This application also proposes a computer-readable storage medium that stores one or more programs, which, when executed by an electronic device including multiple applications, cause the electronic device to perform... Figures 1 to 3 The method described in the embodiments achieves the same or corresponding technical effects.
[0115] The computer-readable storage medium includes read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks, etc.
[0116] Furthermore, embodiments of this application also provide a computer program product, the computer program product including a computer program stored on a non-transitory computer-readable storage medium, the computer program including program instructions, which, when executed by a computer, implement... Figures 1 to 3 The method described in the embodiments achieves the same or corresponding technical effects.
[0117] In summary, the above description is merely a preferred embodiment of this application and is not intended to limit the scope of protection of this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of protection of this application.
[0118] The systems, devices, modules, or units described in the above embodiments can be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer. Specifically, a computer can be, for example, a personal computer, laptop computer, cellular phone, camera phone, smartphone, personal digital assistant, media player, navigation device, email device, game console, tablet computer, wearable device, or any combination of these devices.
[0119] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information using any method or technology. Information can be computer-readable instructions, data structures, modules of programs, 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 technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic magnetic disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.
[0120] It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0121] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to interchangeably. Each embodiment focuses on describing the differences from other embodiments. In particular, the system embodiments are basically similar to the method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions in the method embodiments.
Claims
1. A method for data transmission, characterized in that, include: Create multiple scheduling virtual machines for cloud phone computing resource scheduling, where each cloud phone is allocated a predetermined amount of computing resources; Based on the data transmission task to be executed, multiple candidate scheduling schemes for the scheduled virtual machine are determined; Based on the time required to execute the data transmission task according to each candidate scheduling scheme, a target scheduling scheme is determined from the multiple candidate scheduling schemes; Data transmission is performed based on the target scheduling scheme; The step of determining the target scheduling scheme from among the multiple candidate scheduling schemes based on the time required to execute the data transmission task according to each candidate scheduling scheme includes: Based on the time required to execute the data transmission task according to each candidate scheduling scheme, a predetermined number of preferred scheduling schemes are determined from the multiple candidate scheduling schemes; Based on the preferred scheduling scheme, other candidate scheduling schemes besides the preferred scheduling scheme are updated; The target scheduling scheme is determined from the preferred scheduling scheme and the updated candidate scheduling scheme.
2. The method according to claim 1, characterized in that, The step of determining a predetermined number of preferred scheduling schemes from among the candidate scheduling schemes based on the time required to execute the data transmission task according to each candidate scheduling scheme includes: Based on the time required to execute the data transmission task according to each candidate scheduling scheme, a first predetermined number of first preferred scheduling schemes are determined from the multiple candidate scheduling schemes; Based on the first preferred scheduling scheme, a second predetermined number of second preferred scheduling schemes are determined.
3. The method according to claim 2, characterized in that, Based on the preferred scheduling scheme, other candidate scheduling schemes besides the preferred scheduling scheme are updated, including: Based on the second preferred scheduling scheme, other candidate scheduling schemes besides the second preferred scheduling scheme are updated.
4. The method according to claim 2, characterized in that, After determining a second predetermined number of second preferred scheduling schemes based on the first preferred scheduling scheme, the process includes: Each of the second preferred scheduling scheme and the updated candidate scheduling scheme is assigned an initial search probability and an initial loudness, and the search probability and loudness are updated each time the scheduling scheme is updated; The process of determining the target scheduling scheme from the preferred scheduling scheme and the updated candidate scheduling scheme includes... Based on the updated search probabilities and updated loudness, the target scheduling scheme is determined among the second preferred scheduling scheme and the updated candidate scheduling scheme.
5. The method according to claim 1, characterized in that, Before data transmission based on the target scheduling scheme, the method further includes: Determine 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, determine whether the number of updates corresponding to the target scheduling scheme meets the second threshold.
6. The method according to claim 1, characterized in that, There are multiple data transfer tasks to be executed; The step of determining the target scheduling scheme from among the multiple candidate scheduling schemes based on the time required to execute the data transmission task according to each candidate scheduling scheme includes: Based on the total time required to execute all the data transmission tasks according to each of the candidate scheduling schemes, the target scheduling scheme is determined from the multiple candidate scheduling schemes.
7. 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, encrypted data is transmitted.
8. The method according to claim 7, characterized in that, The transmitted encrypted data includes: Receive the master public key generated based on the data recipient's attributes and user identity identifier; Based on the master public key, the data to be sent is encrypted to obtain ciphertext data; The encrypted data and a key generated based on the data recipient's attributes and user identity are sent to the data recipient.
9. The method according to claim 7, characterized in that, The encrypted data is obtained based on at least one of elliptic curve cryptography, random encryption, and symmetric encryption algorithms.
10. A data transmission apparatus, characterized in that, include: The creation module is used to create multiple scheduling virtual machines for cloud phone computing resource scheduling, where each cloud phone is allocated a predetermined amount of computing resources; The first determining module is used to determine multiple candidate scheduling schemes for the scheduled virtual machine based on the data transmission task to be executed. The second determining module is used to determine the target scheduling scheme from among the multiple candidate scheduling schemes based on the time required to execute the data transmission task according to each candidate scheduling scheme; The data transmission module is used to transmit data based on the target scheduling scheme; In the second determining module, based on the time required to execute the data transmission task according to each candidate scheduling scheme, a target scheduling scheme is determined from the multiple candidate scheduling schemes, including: Based on the time required to execute the data transmission task according to each candidate scheduling scheme, a predetermined number of preferred scheduling schemes are determined from the multiple candidate scheduling schemes; Based on the preferred scheduling scheme, other candidate scheduling schemes besides the preferred scheduling scheme are updated; The target scheduling scheme is determined from the preferred scheduling scheme and the updated candidate scheduling scheme.
11. Electronic devices, including: processor; as well as A memory configured to store computer-executable instructions, which, when executed, use the processor to perform the data transfer method according to any one of claims 1-9.
12. A computer-readable medium storing one or more programs, which, when executed by an electronic device including a plurality of applications, cause the electronic device to perform the data transmission method of any one of claims 1-9.
13. A computer program product comprising a computer program stored on a non-transitory computer-readable storage medium. The computer program includes program instructions that, when executed by a computer, cause the computer to perform the data transmission method according to any one of claims 1-9.
Citation Information
Patent Citations
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