WO2014206089A1 - 同步终端镜像的方法、装置、终端及服务器 - Google Patents

同步终端镜像的方法、装置、终端及服务器 Download PDF

Info

Publication number
WO2014206089A1
WO2014206089A1 PCT/CN2014/071634 CN2014071634W WO2014206089A1 WO 2014206089 A1 WO2014206089 A1 WO 2014206089A1 CN 2014071634 W CN2014071634 W CN 2014071634W WO 2014206089 A1 WO2014206089 A1 WO 2014206089A1
Authority
WO
WIPO (PCT)
Prior art keywords
event
terminal
attribute information
aggregation
server
Prior art date
Application number
PCT/CN2014/071634
Other languages
English (en)
French (fr)
Inventor
谭丞
吴晓昕
夏虞斌
陈海波
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to KR1020147021238A priority Critical patent/KR101624821B1/ko
Publication of WO2014206089A1 publication Critical patent/WO2014206089A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party

Definitions

  • the present invention relates to the field of network communication technologies, and in particular, to a method, an apparatus, a terminal, and a server for synchronizing a terminal image. Background technique
  • APP Application ication
  • smart terminals More and more applications (Appl ication, APP) software can be run on smart terminals, so that end users can send e-mail, connect to social networks, perform terminal payment, and run through smart terminals.
  • the intelligent terminal generates a large amount of user data during the running of the application software, including status data generated in real time when the application software is running and file data saved to the disk after the application software runs, and the data may involve the privacy of the end user.
  • the smart terminal is lost, the user data in the smart terminal is also lost correspondingly, or when the smart terminal is infected by the malware, the user data in the smart terminal is threatened.
  • the smart terminal can perform image synchronization with the cloud server, so that the cloud server obtains user data on the smart terminal, so that the user data of the smart terminal can be backed up, and Use the rich computing resources on the cloud server to perform security checks on user data.
  • the smart terminal can transmit the file data generated by the application software to the cloud server through the network, but because the synchronization mode is difficult to synchronize the state data of the real-time running of the application software, the user data of the cloud server backup is caused. Incomplete, the corresponding security check based on the user data is also inaccurate.
  • a method, a device, a terminal, and a server for synchronizing terminal mirroring are provided to solve the problem that the existing synchronous terminal mirroring manner easily leads to incomplete backup data.
  • a method for synchronous terminal mirroring includes:
  • the terminal acquires multiple input events in the running of the application software
  • the terminal aggregates the multiple input events to obtain an aggregation event; [09] the terminal transmits the aggregation event to a server, so that the server parses the aggregation event to obtain the After the plurality of input events, the plurality of input events are processed by the virtual machine of the terminal disposed on the server to obtain user data generated during the running of the application software.
  • the method before the terminal aggregates the multiple input events, the method further includes: the input event that the terminal will acquire Insert an event queue in the order in which the events are generated;
  • the terminal aggregates the multiple input events to obtain an aggregation event, including:
  • the terminal aggregates the input events in the event queue according to the set time period to obtain an aggregation event.
  • the terminal by using the terminal, to aggregate the multiple input events to obtain an aggregation Events, including:
  • the terminal acquires a current input event according to the sequence in which the multiple input events are generated;
  • the terminal generates bitmap information for each attribute information of the current input event, where the bitmap information of each attribute information is used to indicate the attribute information and a previous input event of the current input event. Corresponding attribute information is the same;
  • the terminal determines the bitmap information of the current input event and the attribute information different from the previous input event as the data to be transmitted of the current input event;
  • the terminal determines data to be transmitted for each of the plurality of input events
  • the data to be transmitted of the plurality of input events is formed into an aggregate event of the plurality of input events.
  • the method further includes:
  • the terminal compresses the aggregation event to obtain a compression aggregation event; [20] correspondingly, the terminal transmits the aggregation event to the server, including:
  • the terminal transmits the compressed aggregation event to a server.
  • a method for synchronous terminal mirroring includes:
  • the server receives an aggregation event transmitted by the terminal, where the aggregation event is an aggregation event obtained by the terminal after the terminal acquires multiple input events in the running of the application software, and aggregates the multiple input events; Determining, by the server, the aggregation event to obtain the multiple input events;
  • the server processes the plurality of input events by using a virtual machine of the terminal disposed on the server, and obtains user data generated in the running of the application software.
  • the receiving, by the server, an aggregation event that is transmitted by the terminal includes: the server receiving a compression aggregation event transmitted by the terminal, the compression aggregation event An event obtained by compressing the aggregation event by the terminal;
  • the method further includes:
  • the server decompresses the compression aggregation event to obtain the aggregation event.
  • the server parses the aggregation event, and obtains the multiple input Events, including:
  • the server sequentially acquires transmission data of a current input event from the aggregation event, where the transmission data includes bitmap information of each attribute information of the current input event, and the current input event
  • the previous input event has different attribute information, wherein the bitmap information of each attribute information is used to indicate whether the attribute information is the same as the corresponding attribute information of the previous input event;
  • the server acquires the same attribute information that the current input event is the same as the previous input event from the attribute information of the previous input event according to the indication of the bitmap information;
  • the server combines the acquired same attribute information with different attribute information included in the transmission data to form the current input event.
  • the server processes the plurality of input events by using a virtual machine of the terminal disposed on the server, including:
  • the server inserts an input event corresponding to the attribute information matching the system state into the system of the virtual machine, so that the system call processing function processes the input event.
  • the third aspect provides an apparatus for synchronizing a terminal image, where the apparatus includes:
  • an obtaining unit configured to acquire a plurality of input events in the running of the application software
  • an aggregating unit configured to aggregate the plurality of input events acquired by the acquiring unit to obtain a gathering event
  • a transmission unit configured to transmit an aggregation event obtained by the aggregation unit to a server, so that after the server parses the aggregation event to obtain the multiple input events, by setting on the server
  • the virtual machine of the terminal processes the plurality of input events to obtain user data generated in the running of the application software.
  • the device further includes:
  • an insertion unit configured to insert an input event acquired by the acquiring unit into an event queue according to an event generation sequence
  • the aggregation unit is specifically configured to aggregate input events in the event queue according to a set time period to obtain an aggregation event.
  • the aggregating unit includes:
  • an event obtaining subunit configured to acquire a current input event according to a sequence in which the plurality of input events are generated
  • an information generating subunit configured to acquire a current input event acquired by the subunit for the event
  • Each of the attribute information generates bitmap information, where the bitmap information of each attribute information is used to indicate whether the attribute information is the same as the corresponding attribute information of the previous input event of the current input event;
  • a data determining subunit configured to determine bitmap information of a current input event generated by the information generating subunit and attribute information different from the previous input event as data to be transmitted of the current input event;
  • an event aggregation subunit configured to, after the data determining subunit determines data to be transmitted for each input event of the plurality of input events, to form data to be transmitted of the plurality of input events Aggregate events for multiple input events.
  • the device in combination with the third aspect, or the first possible implementation manner of the third aspect, or the second possible implementation manner of the third aspect, in a third possible implementation manner of the third aspect, also includes:
  • a compression unit configured to compress an aggregation event obtained by the aggregation unit to obtain a compression aggregation event
  • the transmission unit is specifically configured to transmit a compression aggregation event obtained by the compression unit to a cloud server.
  • an apparatus for mirroring a terminal is provided, where the apparatus includes:
  • a receiving unit configured to receive an aggregation event that is transmitted by the terminal, where the aggregation event is an aggregation event obtained by the terminal after the terminal acquires multiple input events in the running of the application software, and aggregates the multiple input events;
  • a parsing unit configured to parse an aggregate event received by the receiving unit, to obtain the multiple input events
  • a processing unit configured to process, by using a virtual machine of the terminal disposed on the server, a plurality of input events obtained by the parsing unit, to obtain user data generated in the running of the application software.
  • the receiving unit is specifically configured to receive a compression aggregation event that is transmitted by the terminal, where the compression aggregation event is An event obtained after the aggregation event is compressed;
  • the device further includes: a decompression unit, configured to decompress the compressed aggregation event received by the receiving unit to obtain the aggregation event.
  • a decompression unit configured to decompress the compressed aggregation event received by the receiving unit to obtain the aggregation event.
  • the receiving unit is specifically configured to receive a compression aggregation event transmitted by the terminal.
  • the compression aggregation event is an event obtained by the terminal compressing the aggregation event;
  • the device further includes: a decompression unit, configured to decompress the compressed aggregation event received by the receiving unit, to obtain the aggregation event.
  • a decompression unit configured to decompress the compressed aggregation event received by the receiving unit, to obtain the aggregation event.
  • the processing unit includes: [60] a status matching subunit, configured to determine, when the notification of the system status of the virtual machine of the terminal set on the server changes, whether the attribute information of the multiple input events is System state matching;
  • an event processing subunit configured to insert, according to the matching result of the state matching subunit, an input event corresponding to the attribute information that matches the system state into the system of the virtual machine, so that the system calls the processing
  • the function processes the input event.
  • a terminal in a fifth aspect, includes: a processor and a network interface, where
  • the processor is configured to acquire a plurality of input events in an application running, and aggregate the multiple input events to obtain an aggregation event;
  • the network interface is configured to transmit the aggregation event to a server, so that after the server parses the aggregation event to obtain the multiple input events, by using the The virtual machine of the terminal processes the plurality of input events to obtain user data generated in the running of the application software.
  • the processor is further configured to insert the acquired input events into an event queue according to an event generation sequence;
  • the processor is specifically configured to aggregate input events in the event queue according to a set time period to obtain an aggregate event.
  • the processor is specifically configured to perform the multiple input events a generating sequence, acquiring a current input event; generating bitmap information for each attribute information of the current input event, wherein the bitmap information of each attribute information is used to indicate the attribute information and the current input event Whether the corresponding attribute information of the previous input event is the same; determining the bitmap information of the current input event and the attribute information different from the previous input event as the data to be transmitted of the current input event; After the data to be transmitted of each of the plurality of input events, the data to be transmitted of the plurality of input events is formed into an aggregate event of the plurality of input events.
  • the processor is further configured to compress the aggregation event to obtain a compression aggregation event.
  • the network interface is specifically configured to transmit the compressed aggregation event to a cloud server.
  • a server in a sixth aspect, includes: a terminal interface and a processor, where
  • the terminal interface is configured to receive an aggregation event that is transmitted by the terminal, where the aggregation event is an aggregation obtained by the terminal, after the terminal acquires multiple input events in the running of the application software, and aggregates the multiple input events.
  • the processor is configured to parse the aggregation event, obtain the multiple input events, and process the multiple input events by using a virtual machine of the terminal set on the server to obtain the application.
  • the terminal interface is specifically configured to receive a compression aggregation event that is transmitted by the terminal, where the compression aggregation event is that the terminal An event obtained after the aggregation event is compressed; [74] The processor is further configured to decompress the compression aggregation event to obtain the aggregation event.
  • the processor is specifically used to sequence from the aggregation event Obtaining transmission data of a current input event, where the transmission data includes bitmap information of each attribute information of the current input event, and attribute information different from a previous input event of the current input event, where The bitmap information of each attribute information is used to indicate whether the attribute information is the same as the corresponding attribute information of the previous input event; according to the indication of the bitmap information, from the attribute information of the previous input event Acquiring the same attribute information of the current input event and the previous input event; and composing the acquired same attribute information and different attribute information included in the transmission data to form the current input event.
  • the processor is specifically configured to: when receiving a notification that a system state of the virtual machine of the terminal set on the server changes, whether the attribute information of the multiple input events matches the system status; An input event corresponding to the attribute information that matches the system state is inserted into the system of the virtual machine to cause the system call processing function to process the input event.
  • the terminal acquires multiple input events in the running of the application software, aggregates multiple input events, obtains an aggregation event, and transmits the aggregation event to the server, and the server parses the aggregation event to obtain multiple inputs.
  • the virtual machine of the terminal set on the server processes multiple input events to obtain user data generated during the running of the application software.
  • the terminal does not need to transmit user data to the server, but uses an event-driven manner to transmit an input event to the server, so that the server end triggers the execution of the input event through the virtual machine of the terminal, so as to obtain a user consistent with the application software running on the terminal side.
  • FIG. 1 is a flowchart of an embodiment of a method for synchronizing a terminal image according to the present invention
  • FIG. 1B is a flowchart of another embodiment of a method for synchronizing a terminal image according to the present invention
  • FIG. 3A is a schematic diagram of a network architecture to which an embodiment of the present invention is applied
  • FIG. 3B is a schematic diagram of event aggregation according to an embodiment of the present invention
  • [84] 4 is a block diagram of an embodiment of an apparatus for mirroring a synchronous terminal of the present invention
  • FIG. 5 is a block diagram of another embodiment of an apparatus for mirroring a terminal of the present invention
  • FIG. 6 is a block diagram of an embodiment of a terminal of the present invention
  • FIG. 7 is a block diagram of another embodiment of an apparatus for mirroring a terminal of the present invention.
  • FIG. 8 is a block diagram of another embodiment of an apparatus for mirroring a terminal of the present invention.
  • FIG. 1A is a flowchart of an embodiment of a method for synchronizing a terminal image according to the present invention.
  • the embodiment describes a synchronization process from a terminal side:
  • Step 101 The terminal acquires multiple inputs in the running of the application software. event.
  • the terminal may refer to various smart phones, tablet computers, and the like. Different types of input events may be triggered when different applications on the terminal are running. These input events may include operating the display. Touch input events, positioning input events generated by Global Positioning System (GPS) devices, and sensor input events generated by sensors. For example, when an end user tries to run an application, the terminal clicks the icon of the application on the display screen, and the action of the click icon can be abstracted into an input event. When the terminal user operates the open application, Different input events are also triggered depending on different input gestures during operation.
  • GPS Global Positioning System
  • Step 102 Aggregate multiple input events to get an aggregate event.
  • the terminal may acquire a current input event according to a sequence of generating multiple input events; generate bitmap information for each attribute information of the current input event, where the bitmap information of each attribute information is used. Whether the attribute information is the same as the corresponding attribute information of the previous input event of the current input event; determining the bitmap information of the current input event and the attribute information different from the previous input event as the current input event to be transmitted Data; after determining the data to be transmitted for each input event of the plurality of input events, the data to be transmitted of the plurality of input events is combined into an aggregate event of the plurality of input events.
  • Step 103 The aggregation event is transmitted to the server, so that the server parses the aggregation event to obtain multiple input events, and the virtual machine of the terminal set on the server processes multiple input events, and the application software is generated during operation. User data.
  • the terminal does not need to transmit user data to the server, but uses an event-driven manner to transmit an input event to the server, so that the server end triggers the execution of the input event through the virtual machine of the terminal to obtain and
  • the terminal side runs the user data of the application software consistently, so that the server can back up the complete user data, improve the accuracy of the user data security check; and, because the capacity of the aggregated input event transmitted by the terminal is small, the user data is directly transmitted. In comparison, the occupied network transmission resources are less, and the performance overhead of the terminal itself is not affected, and the normal operation of other services on the terminal is ensured.
  • FIG. 1B is a flowchart of another embodiment of a method for synchronizing terminal mirroring according to the present invention.
  • the embodiment describes a synchronization process from a server side:
  • Step 1 1 1 The server receives the aggregated event transmitted by the terminal.
  • the aggregated event is an aggregated event obtained by the terminal to aggregate multiple input events after the terminal obtains multiple input events in the running of the application software.
  • a server may refer to a cloud server having rich computing resources, and a virtual machine of each terminal that communicates with the cloud server may be set on the cloud server.
  • Virtual machine refers to a tool that is simulated by software. A complete system running in a completely isolated environment with full hardware system functions. Usually, multiple virtual machines of different terminals can be simulated on one cloud server. The terminal can access the virtual machines on the cloud server through the network.
  • Step 1 12 Parse the aggregate event to obtain multiple input events.
  • the server may sequentially acquire transmission data of a current input event from the aggregation event, where the transmission data includes bitmap information of each attribute information of the current input event, and the previous one with the current input event. Inputting different attribute information of the event, wherein the bitmap information of each attribute information is used to indicate whether the attribute information is the same as the corresponding attribute information of the previous input event; according to the indication of the bitmap information, from the attribute information of the previous input event Obtaining the same attribute information of the current input event and the previous input event; composing the same attribute information and different attribute information included in the transmission data to form a current input event.
  • Step 1 13 The user data generated during the running of the application software is obtained by processing a plurality of input events by the virtual machine of the terminal set on the server.
  • the server when the server receives the notification that the system state of the virtual machine of the terminal set on the server changes, it determines whether the attribute information of the multiple input events matches the system status; The input event corresponding to the attribute information is inserted into the system of the virtual machine, so that the system call processing function of the virtual machine processes the input event, thereby obtaining user data generated in the running of the application software.
  • the terminal does not need to transmit user data to the server in the embodiment, but uses an event-driven manner to transmit an input event to the server, so that the server end triggers the execution of the input event through the virtual machine of the terminal to obtain and
  • the terminal side runs the user data of the application software consistently, so that the server can back up the complete user data, improve the accuracy of the user data security check; and, because the capacity of the aggregated input event transmitted by the terminal is small, the user data is directly transmitted. In comparison, the occupied network transmission resources are less, and the performance overhead of the terminal itself is not affected, and the normal operation of other services on the terminal is ensured.
  • FIG. 2 it is a flowchart of another embodiment of a method for synchronizing a terminal image according to the present invention. This embodiment describes a synchronization process by interaction between a terminal and a server:
  • Step 201 The terminal acquires multiple input events in the running of the application software.
  • Different application software on the terminal may trigger different types of input events, which may include touch input events that operate on the display, positioning input events generated by the GPS device, and sensors generated by the sensor. Enter events, etc.
  • the attribute information included in the input event is different according to the type of the input event. For example, for the touch input event, the attribute information included may include touch contact coordinates, touch event type, occurrence time, etc., for the positioning input.
  • the event, which contains attribute information may include location information, time of occurrence, and the like.
  • Step 202 Insert the acquired input events into the event queue in the order in which the events were generated.
  • the input event may be inserted into the event queue every time an input event is generated, and the event queue may be stored in the memory of the terminal, and the input event in the event queue is in accordance with the advanced first.
  • the output mode is arranged; correspondingly, the terminal can sequentially acquire the input event from the event queue, and call the processing function corresponding to the input event to process the input event, so as to execute the application software on the terminal.
  • Step 203 Aggregate the input events in the event queue according to the set time period to obtain an aggregate event.
  • the terminal can write the input event stored in the event queue of the memory to the disk in an asynchronous processing manner, and in this embodiment, the terminal can input multiple input events in the event queue according to the set time period. Aggregation is performed to obtain an aggregation event.
  • the event threshold may be set. When the number of the input events in the event queue reaches the event threshold, the input event is aggregated, which is not performed in this embodiment of the present invention. limit.
  • the terminal may obtain a current input event according to the generation order of the multiple input events, and generate bitmap information for each attribute information of the current input event, where The bitmap information of each attribute information is used to indicate whether the attribute information is the same as the corresponding attribute information of the previous input event of the current input event, and the bitmap information of the current input event and the attribute different from the previous input event.
  • the information is determined as the data to be transmitted of the current input event; after determining the data to be transmitted of each of the plurality of input events, the data to be transmitted of the plurality of input events is combined into an aggregate event of the plurality of input events.
  • Step 204 Compress the aggregate event to obtain a compressed aggregate event.
  • the aggregation event may be compressed to further reduce the size of the data stream of the aggregation event to be transmitted.
  • the compression mode may be z ip compression, or rar compression, etc., Make restrictions.
  • Step 206 The server decompresses the compressed aggregate event to obtain an aggregate event.
  • Step 207 Parse the aggregate event to obtain multiple input events.
  • the terminal aggregates the input events to obtain an aggregation event.
  • the server may sequentially acquire transmission data of a current input event from the aggregation event, where the transmission data includes each of the current input events.
  • Step 208 The user data generated in the running of the application software is obtained by processing a plurality of input events by the virtual machine of the terminal set on the server.
  • the server receives the notification that the system state of the virtual machine of the terminal set on the server changes, it determines whether the attribute information of the multiple input events matches the system status; and the attribute that matches the system status
  • the input event corresponding to the information is inserted into the system of the virtual machine, so that the system call processing function of the virtual machine processes the input event, and the processing process is consistent with the process of processing the input event by calling the processing function in the terminal, that is, on the server.
  • the virtual machine of the terminal is consistent with the process of executing the application software in the terminal.
  • the user data generated on the virtual machine of the terminal is also consistent with the user data generated by the terminal, thereby achieving the purpose of synchronizing the terminal image on the server.
  • the attribute information of the input event generally includes a plurality of
  • the attribute information that matches the system state of the terminal virtual machine may be at least one of the plurality of attribute information, for example, for the touch input event, the attribute information may be determined. Whether the occurrence time in the current time is consistent with the current time of the terminal virtual machine system, if it is consistent, the touch input event is inserted into the system.
  • the terminal does not need to transmit user data to the server, but uses an event-driven manner to transmit an input event to the server, so that the server end triggers the execution of the input event through the virtual machine of the terminal to obtain and
  • the terminal side runs the user data of the application software consistently, so that the server can back up the complete user data, improve the accuracy of the user data security check; and, because the capacity of the aggregated input event transmitted by the terminal is small, the user data is directly transmitted. In comparison, the occupied network transmission resources are less, and the performance overhead of the terminal itself is not affected, and the normal operation of other services on the terminal is ensured.
  • FIG. 3A a schematic diagram of a network architecture in which an embodiment of the present invention is applied:
  • the network architecture shown in FIG. 3A includes an intelligent terminal and a cloud server used by the user, and the smart terminal communicates with the cloud server through the network.
  • the intelligent terminal includes an event queue module, an event processing module, and a record service module.
  • the cloud server includes an event scheduling module, an event insertion module, and an event processing module.
  • the event processing module can sequentially acquire an input event from the event queue through an event processing thread, and call a processing function corresponding to the input event to process the input event, so as to execute the response on the smart terminal. Using the software; and, the event processing module can also send the input event in the event queue to the recording service module in an asynchronous processing manner;
  • the recording service module After the recording service module obtains multiple input events, the input event may be aggregated and compressed to obtain a compressed aggregation event, and the compressed aggregation event is transmitted to the cloud server through the network.
  • the recording service module is recorded.
  • the obtained input events can be aggregated and compressed according to a preset time period. For example, the acquired input events can be aggregated and compressed every 5 seconds.
  • the recording service module aggregates the input events, the plurality of input events obtained by the recording service module are arranged in the event queue in a first-in-first-out order, and the plurality of consecutive input events are usually executed in the same
  • the event triggered by the application software so the two adjacent input events usually have some identical attribute information, so when an input event is transmitted, only the difference attribute information with the previous input event can be transmitted to reduce the entire compression.
  • the size of the aggregate event reduces the network resources occupied by the compressed aggregate event transmission.
  • FIG. 3B it is assumed that the recording service module transmits three input events, Event 1, Event 2, and Event 3, respectively. Each input event is composed of four attribute information, and there is a difference in the head of each input event.
  • the bit value of each bitmap information is used to indicate whether the attribute information corresponding to the bitmap information is the same as the attribute information of the previous input event, for example, if the same, the bitmap information The bit value is 1, if not the same, the bit value of the bitmap information is 0.
  • the four attribute information of event 1 are respectively B, C, and D, and it is assumed that event 1 is different from the four attributes of the previous event, and correspondingly, the bitmap of four attribute information of event 1 is corresponding.
  • the bit value of the information is 0; for event 2, the second attribute information and the fourth attribute information are the same as event 1, the first attribute information and the third attribute information are different from event 1, respectively, E, F Therefore, the four bit values of the bitmap information of event 2 are 0, 1, 0, 1 respectively; for event 3, the first attribute information, the second attribute information, and the fourth attribute information are the same as event 2,
  • the third attribute information is different from event 2 and is G. Therefore, the four bit values of the bitmap information of event 3 are 1, 1, 0, and 1, respectively.
  • the recording service module may compress the data stream to further reduce the size of the data stream, and the compression method may be z ip compression, or rar compression, etc.
  • the embodiment of the present invention is not limited thereto.
  • the event scheduling module After receiving the data stream of the aggregated compression input event transmitted by the recording service module of the intelligent terminal, the event scheduling module decompresses the data stream to obtain an aggregated input event, and then parses the aggregated input event to obtain multiple inputs. event. [136] wherein, the event scheduling module decompresses the data stream in the same manner as the recording service module compresses the data stream; the event scheduling module analyzes the decompressed aggregated input event, as shown in FIG. 3B, After obtaining the attribute information and bitmap information of the three input events, in addition to event 1, each subsequent input event can be restored according to the bitmap information of the input event and the attribute information of the previous input event of the input event.
  • event 2 For example, for event 2, according to the bit value "0101" of its bitmap information, its second attribute information and the fourth attribute information are the same as event 1, so that the two attribute information can be obtained from event 1.
  • event 2 according to the bit value "1101" of its bitmap information, its first attribute information, second attribute information and fourth attribute information are the same as event 2, so these three are obtained from event 2.
  • the attribute information can be.
  • the event insertion module determines whether the attribute information of each input event parsed by the event scheduling module matches the system state of the smart terminal virtual machine, and if so, inserts the input event into the system.
  • the virtual machine of the intelligent terminal may trigger the event insertion module to match the attribute information of the input event with the system state by means of notification when the state of the system changes.
  • the attribute information of the input event generally includes a plurality of
  • the attribute information that matches the system state of the virtual machine of the smart terminal may be at least one of the plurality of attribute information, for example, for a touch input event, It can be judged whether the occurrence time in the attribute information is consistent with the system time of the virtual machine of the current smart terminal, and if it is consistent, the touch input event is inserted into the system.
  • the event processing module calls the corresponding processing function in the virtual machine of the smart terminal to process the input event, and the processing process and the event processing module in the intelligent terminal call the processing function pair.
  • the process of inputting an event for processing is consistent, that is, the virtual machine of the smart terminal on the cloud server is consistent with the process of executing the application software in the smart terminal, and correspondingly, the user data generated on the virtual machine of the smart terminal is also the user data generated by the smart terminal. Consistent, thus achieving the purpose of synchronizing terminal images on the cloud server.
  • the smart terminal only needs to transmit an input event to the cloud server, and the smart terminal can be in the cloud service.
  • the user data of the smart terminal is backed up, so that when the smart terminal is lost, all user data of the smart terminal is recovered from the cloud server, including the state data and file data before the loss; or, the rich calculation on the cloud server is utilized. Resources, through the security scan of user data on the cloud server, to obtain the detection result of whether the user data on the smart terminal is safe.
  • the present invention also provides an embodiment of an apparatus, terminal and server for performing synchronous terminal mirroring of the method embodiment.
  • FIG. 4 it is a block diagram of an embodiment of an apparatus for mirroring a synchronous terminal according to the present invention.
  • the apparatus may be disposed on the terminal side:
  • the apparatus includes: an obtaining unit 410, an aggregating unit 420, and a transmitting unit 430.
  • the obtaining unit 410 is configured to acquire multiple input events in the running of the application software.
  • the aggregating unit 420 is configured to aggregate the multiple input events acquired by the acquiring unit 410 to obtain an aggregation event.
  • the transmitting unit 430 is configured to transmit, by the server, the aggregation event obtained by the aggregation unit 420 to the server, so that the server parses the aggregation event to obtain the multiple input events, by setting the server
  • the virtual machine of the terminal processes the plurality of input events to obtain user data generated during the running of the application software.
  • the aggregation unit 420 can include (not shown in FIG. 4):
  • an event obtaining subunit configured to acquire a current input event according to a sequence in which the plurality of input events are generated
  • an information generating subunit configured to acquire, for the event, a current input event acquired by the subunit
  • Each of the attribute information generates bitmap information, where the bitmap information of each attribute information is used to indicate whether the attribute information is the same as the corresponding attribute information of the previous input event of the current input event;
  • a data determining subunit configured to determine bitmap information of a current input event generated by the information generating subunit and attribute information different from the previous input event as data to be transmitted of the current input event
  • an event aggregation subunit configured to, after the data determining subunit determines data to be transmitted for each input event of the plurality of input events, to form data to be transmitted of the plurality of input events Aggregate events for multiple input events.
  • FIG. 5 it is a block diagram of another embodiment of an apparatus for mirroring a synchronous terminal according to the present invention.
  • the apparatus may be disposed on the terminal side:
  • the apparatus includes: an obtaining unit 510, an inserting unit 520, an aggregating unit 530, a compressing unit 540, and a transmitting unit 550.
  • the obtaining unit 510 is configured to acquire multiple input events in the running of the application software.
  • the insertion unit 520 is configured to insert the input events acquired by the obtaining unit 510 into the event queue according to an event generation sequence
  • the aggregating unit 530 is configured to aggregate the input events in the event queue according to the set time period to obtain an aggregation event.
  • the compression unit 540 is configured to compress the aggregation event obtained by the aggregation unit 540 to obtain a compression aggregation event.
  • the transmission unit 550 is specifically configured to transmit the compression aggregation event obtained by the compression unit 540 to a cloud server, after the server is configured to parse the aggregation event to obtain the plurality of input events, and the plurality of input events are processed by a virtual machine of the terminal disposed on the server to obtain the application.
  • the aggregation unit 530 may include (not shown in FIG. 5): [160] an event acquisition subunit, configured to acquire a current input event according to the generation order of the multiple input events;
  • an information generating subunit configured to generate bitmap information for each attribute information of the current input event acquired by the event obtaining subunit, wherein the bitmap information of each attribute information is used to indicate the attribute information and Whether the corresponding attribute information of the previous input event of the current input event is the same;
  • a data determining subunit and a bitmap information of the current input event generated by the information generating subunit And the attribute information different from the previous input event is determined as the data to be transmitted of the current input event;
  • an event aggregation subunit configured to, after the data determining subunit determines data to be transmitted for each input event of the plurality of input events, to form data to be transmitted of the plurality of input events Aggregate events for multiple input events.
  • FIG. 6 a block diagram of an embodiment of a terminal of the present invention:
  • the terminal includes: a processor 610 and a network interface 620.
  • the processor 610 is configured to acquire a plurality of input events in an application running, and aggregate the multiple input events to obtain an aggregate event.
  • the network interface 620 is configured to: Transmitting the aggregation event to the server, so that the server parses the aggregation event to obtain the plurality of input events, and processing the multiple input events by using a virtual machine of the terminal disposed on the server Obtaining user data generated in the running of the application software.
  • processor 610 is further configured to insert the acquired input events into the event queue according to an event generation sequence
  • the processor 610 may be specifically configured to aggregate input events in the event queue according to a set time period to obtain an aggregate event.
  • the processor 610 may be specifically configured to obtain a current input event according to a sequence in which the multiple input events are generated;
  • bitmap information for each attribute information of the current input event wherein the bitmap information of each attribute information is used to indicate a corresponding attribute of the attribute information and a previous input event of the current input event Whether the information is the same; determining the bitmap information of the current input event and the attribute information different from the previous input event as the data to be transmitted of the current input event; After the data to be transmitted for each input event in the device, the data to be transmitted of the plurality of input events is composed into an aggregate event of the plurality of input events.
  • the processor 610 is further configured to compress the aggregation event to obtain a compressed aggregation event.
  • the network interface 620 may be specifically configured to transmit the compressed aggregation event to the cloud server.
  • FIG. 7 is a block diagram of another embodiment of an apparatus for mirroring a terminal of the present invention
  • the apparatus may be disposed on the server side:
  • the device includes: a receiving unit 710, a parsing unit 720, and a processing unit 730.
  • the receiving unit 710 is configured to receive an aggregation event that is transmitted by the terminal, where the aggregation event is obtained by the terminal, after the terminal acquires multiple input events in the running of the application software, and aggregates the multiple input events.
  • Aggregation event is transmitted by the terminal, where the aggregation event is obtained by the terminal, after the terminal acquires multiple input events in the running of the application software, and aggregates the multiple input events.
  • the parsing unit 720 is configured to parse the aggregation event received by the receiving unit 710, and obtain the multiple input events.
  • the processing unit 730 is configured to process, by using a virtual machine of the terminal disposed on the server, a plurality of input events obtained by the parsing unit 720 to obtain user data generated in the running of the application software.
  • parsing unit 720 can include (not shown in FIG. 7):
  • a data acquisition subunit configured to sequentially acquire transmission data of a current input event from the aggregation event, where the transmission data includes bitmap information of each attribute information of the current input event, and The attribute information of the previous input event of the current input event is different, wherein the bitmap information of each attribute information is used to indicate whether the attribute information is the same as the corresponding attribute information of the previous input event;
  • an attribute obtaining subunit configured to acquire, according to the indication of the bitmap information acquired by the data obtaining subunit, the current input event from the attribute information of the previous input event is the same as the previous input event Attribute information;
  • an event generation subunit configured to acquire the same attribute information obtained by the attribute acquisition subunit The current input event is composed of different attribute information included in the transmission data acquired by the data acquisition subunit.
  • processing unit 730 can include (not shown in FIG. 7):
  • a state matching subunit configured to determine, when the notification of the system state of the virtual machine of the terminal set on the server changes, whether the attribute information of the plurality of input events matches the system state ;
  • an event processing subunit configured to insert an input event corresponding to the attribute information that matches the system state into the system of the virtual machine according to the matching result of the state matching subunit, so that the system calls the processing
  • the function processes the input event.
  • FIG. 8 which is a block diagram of another embodiment of an apparatus for mirroring a terminal of the present invention, the apparatus may be disposed on the server side:
  • the apparatus includes a receiving unit 810, a decompressing unit 820, a parsing unit 830, and a processing unit 840.
  • the receiving unit 810 is configured to receive a compressed aggregation event that is transmitted by the terminal, where the compressed aggregation event is to aggregate the multiple input events after the terminal acquires multiple input events in the running of the application software. Obtaining an aggregate event, and compressing the aggregate event to obtain an event;
  • the decompression unit 820 is configured to decompress the compression aggregation event received by the receiving unit 810 to obtain the aggregation event.
  • the parsing unit 830 is configured to parse the aggregate event obtained by the decompressing unit 820 to obtain the multiple input events; [194] the processing unit 840, configured to use the virtual machine of the terminal set on the server Processing a plurality of input events obtained by the parsing unit 830 to obtain user data generated in the running of the application software.
  • parsing unit 830 can include (not shown in FIG. 8):
  • a data acquisition subunit configured to sequentially acquire transmission data of a current input event from the aggregation event, where the transmission data includes bitmap information of each attribute information of the current input event, and Attribute information different from the previous input event of the current input event, wherein each attribute letter is The bitmap information of the information is used to indicate whether the attribute information is the same as the corresponding attribute information of the previous input event;
  • an attribute obtaining subunit configured to acquire, according to the indication of the bitmap information acquired by the data obtaining subunit, the current input event from the attribute information of the previous input event is the same as the previous input event Attribute information;
  • an event generating subunit configured to combine the same attribute information acquired by the attribute obtaining subunit with different attribute information included in the transmission data acquired by the data acquiring subunit to form the current input event .
  • processing unit 840 may include (not shown in FIG. 8): [200] a status matching subunit for changing a system state of a virtual machine that receives the terminal set on the server Notifying whether the attribute information of the plurality of input events matches the system status;
  • an event processing subunit configured to insert, according to the matching result of the state matching subunit, an input event corresponding to the attribute information that matches the system state into the system of the virtual machine, so that the system calls the processing
  • the function processes the input event.
  • the server includes: a terminal interface 910 and a processor 920.
  • the terminal interface 910 is configured to receive an aggregation event that is transmitted by the terminal, where the aggregation event is to aggregate the multiple input events after the terminal acquires multiple input events in the running of the application software. The resulting aggregate event;
  • the processor 920 is configured to parse the aggregation event, obtain the multiple input events, and process the multiple input events by using a virtual machine of the terminal set on the server to obtain the User data generated during application software running.
  • the terminal interface 910 may be specifically configured to receive a compression aggregation event transmitted by the terminal, where the compression The aggregation event is an event obtained by the terminal compressing the aggregation event;
  • the processor 920 is further configured to decompress the compressed aggregation event to obtain the aggregation event.
  • the processor 920 may be specifically configured to sequentially acquire transmission data of a current input event from the aggregation event, where the transmission data includes the Bitmap information of each attribute information of the current input event, and attribute information different from the previous input event of the current input event, wherein the bitmap information of each attribute information is used to indicate the attribute information and Whether the corresponding attribute information of the previous input event is the same; and obtaining the same attribute information of the current input event and the previous input event from the attribute information of the previous input event according to the indication of the bitmap information And forming the acquired same attribute information and different attribute information included in the transmission data to form the current input event.
  • the processor 920 may be specifically configured to: when receiving a notification that a system state of the virtual machine of the terminal set on the server changes, whether to determine whether the attribute information of the multiple input events is The system state is matched; an input event corresponding to the attribute information matching the system state is inserted into the system of the virtual machine, so that the system call processing function processes the input event.
  • the terminal acquires multiple input events in the running of the application software, aggregates multiple input events, obtains an aggregate event, transmits the aggregate event to the server, and the server parses the aggregate event to obtain multiple inputs.
  • the virtual machine of the terminal set on the server processes multiple input events to obtain user data generated during the running of the application software.
  • the terminal does not need to transmit user data to the server, but uses an event-driven manner to transmit an input event to the server, so that the server end triggers the execution of the input event through the virtual machine of the terminal, so as to obtain a user consistent with the application software running on the terminal side.
  • the server can back up the complete user data, improving the accuracy of the user data security check; and, because the capacity of the aggregated input event transmitted by the terminal is small, the occupied network transmission resource is compared with the direct transmission of the user data. It is less, and does not affect the performance overhead of the terminal itself, ensuring the normal operation of other services on the terminal.
  • the techniques in the embodiments of the present invention can be implemented by means of software plus a necessary general hardware platform. Based on such understanding, the technical solution in the embodiments of the present invention may be embodied in the form of a software product in essence or in the form of a software product, and the computer software product may be stored in a storage medium, such as a ROM/RAM.
  • a diskette comprising instructions for causing a computer device (which may be a personal computer, server, or network device, etc.) to perform the methods described in various embodiments of the present invention or in certain portions of the embodiments.
  • a computer device which may be a personal computer, server, or network device, etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Telephonic Communication Services (AREA)

Abstract

同步终端镜像的方法、装置、终端及服务器,所述方法包括:终端获取应用软件运行中的多个输入事件;将所述多个输入事件进行聚合,得到聚合事件;将所述聚合事件传输至服务器,以使所述服务器对所述聚合事件进行解析得到所述多个输入事件后,通过设置在所述服务器上的所述终端的虚拟机处理所述多个输入事件,获得所述应用软件运行中产生的用户数据。本发明实施例中终端无需向服务器传输用户数据,而是采用事件驱动方式向服务器传输输入事件,使服务器端通过终端的虚拟机触发输入事件的执行,以获取与终端侧运行应用软件一致的用户数据,从而保证服务器能够备份完整的用户数据,提高用户数据安全性检查的准确性。

Description

同步终端镜像的方法、 装置、 终端及服务器 本发明要求于 2013年 6月 28日提交中国专利局、申请号为 201310268703. 8、 发明名称为 "同步终端镜像的方法、 装置、 终端及服务器" 的中国专利申请的优 先权, 其全部内容通过引用结合在本发明中。 技术领域
[01] 本发明涉及网络通信技术领域, 特别涉及同步终端镜像的方法、 装置、 终端 及服务器。 背景技术
[02] 随着智能终端的发展, 智能终端上能够运行的应用 (Appl ication, APP) 软 件越来越多, 从而使终端用户通过智能终端可以发送电子邮件、 连接社交网络、 进行终端支付、 运行各种应用游戏等。 智能终端在运行应用软件的过程中会产生 大量用户数据, 包括应用软件运行时实时产生的状态数据和应用软件运行后保存 到磁盘的文件数据, 这些数据可能涉及终端用户的隐私。 当智能终端丢失时, 智 能终端内的用户数据也会相应丢失, 或者当智能终端被恶意软件感染时, 智能终 端内的用户数据会受到威胁。 因此, 为了保护智能终端上数据的完整性和用户隐 私, 智能终端可以通过与云服务器间进行镜像同步, 使得云服务器获得智能终端 上的用户数据, 从而可以对智能终端的用户数据进行备份, 以及利用云服务器上 丰富的计算资源对用户数据进行安全性检查。
[03] 现有技术中,智能终端可以通过网络向云服务器传输应用软件运行后产生的 文件数据, 但是由于这种同步方式难以同步应用软件实时运行的状态数据, 因此 导致云服务器备份的用户数据不完整, 相应的基于该用户数据的安全性检查也不 准确。 发明内容
[04] 本发明实施例中提供了同步终端镜像的方法、 装置、 终端及服务器, 以解决 现有同步终端镜像的方式容易导致备份数据不完整的问题。 [05] 为了解决上述技术问题, 本发明实施例公开了如下技术方案:
[06] 第一方面, 提供一种同步终端镜像的方法, 所述方法包括:
[07] 终端获取应用软件运行中的多个输入事件;
[08] 所述终端将所述多个输入事件进行聚合, 得到聚合事件; [09] 所述终端将所述聚合事件传输至服务器,以使所述服务器对所述聚合事件进 行解析得到所述多个输入事件后, 通过设置在所述服务器上的所述终端的虚拟机 处理所述多个输入事件, 获得所述应用软件运行中产生的用户数据。
[10] 结合第一方面, 在第一方面的第一种可能的实现方式中, 所述终端将所述多 个输入事件进行聚合前, 所述方法还包括: 所述终端将获取的输入事件按照事件 生成顺序插入事件队列;
[11] 相应地, 所述终端将所述多个输入事件进行聚合, 得到聚合事件, 包括:
[12] 所述终端按照设置的时间周期将所述事件队列中的输入事件进行聚合,得到 聚合事件。
[13] 结合第一方面, 或第一方面的第一种可能的实现方式, 在第一方面的第二种 可能的实现方式中, 所述终端将所述多个输入事件进行聚合, 得到聚合事件, 包 括:
[14] 所述终端按照所述多个输入事件的生成顺序, 获取一个当前输入事件;
[15] 所述终端为所述当前输入事件的每个属性信息生成位图信息; 其中, 每个属 性信息的位图信息用于指示所述属性信息与所述当前输入事件的前一个输入事 件的对应属性信息是否相同;
[16] 所述终端将所述当前输入事件的位图信息和与所述前一个输入事件不同的 属性信息确定为所述当前输入事件的待传输数据;
[17] 当所述终端确定完所述多个输入事件中每个输入事件的待传输数据后,将所 述多个输入事件的待传输数据组成所述多个输入事件的聚合事件。 [18] 结合第一方面, 或第一方面的第一种可能的实现方式, 或第一方面的第二种 可能的实现方式, 在第一方面的第三种可能的实现方式中, 所述终端将所述多个 输入事件进行聚合, 得到聚合事件后, 所述方法还包括:
[19] 所述终端对所述聚合事件进行压缩, 得到压缩聚合事件; [20] 相应地, 所述终端将所述聚合事件传输至服务器, 包括:
[21] 所述终端将所述压缩聚合事件传输至服务器。
[22] 第二方面, 提供一种同步终端镜像的方法, 所述方法包括:
[23] 服务器接收终端传输的聚合事件,所述聚合事件为所述终端获取到应用软件 运行中的多个输入事件后, 将所述多个输入事件进行聚合得到的聚合事件; [24] 所述服务器解析所述聚合事件, 获得所述多个输入事件;
[25] 所述服务器通过设置在所述服务器上的所述终端的虚拟机处理所述多个输 入事件, 获得所述应用软件运行中产生的用户数据。
[26] 结合第二方面, 在第二方面的第一种可能的实现方式中, 所述服务器接收终 端传输的聚合事件, 包括: 所述服务器接收终端传输的压缩聚合事件, 所述压缩 聚合事件为所述终端对所述聚合事件进行压缩后得到的事件;
[27] 所述服务器解析所述聚合事件前, 所述方法还包括:
[28] 所述服务器对所述压缩聚合事件进行解压缩, 获得所述聚合事件。
[29] 结合第二方面, 或第二方面的第一种可能的实现方式, 在第二方面的第二种 可能的实现方式中, 所述服务器解析所述聚合事件, 获得所述多个输入事件, 包 括:
[30] 所述服务器从所述聚合事件中顺序获取一个当前输入事件的传输数据,所述 传输数据中包含所述当前输入事件的每个属性信息的位图信息, 以及与所述当前 输入事件的前一个输入事件不同的属性信息, 其中, 所述每个属性信息的位图信 息用于指示所述属性信息与所述前一个输入事件的对应属性信息是否相同; [31] 所述服务器根据所述位图信息的指示,从所述前一个输入事件的属性信息中 获取所述当前输入事件与所述前一个输入事件相同的属性信息;
[32] 所述服务器将获取到的所述相同的属性信息与所述传输数据中包含的不同 的属性信息组成所述当前输入事件。 [33] 结合第二方面, 或第二方面的第一种可能的实现方式, 或第二方面的第二种 可能的实现方式, 在第二方面的第三种可能的实现方式中, 所述服务器通过设置 在所述服务器上的所述终端的虚拟机处理所述多个输入事件, 包括:
[34] 当所述服务器接收到设置在所述服务器上的所述终端的虚拟机的系统状态 发生变化的通知时, 判断所述多个输入事件的属性信息是否与所述系统状态匹 配;
[35] 所述服务器将与所述系统状态匹配的属性信息对应的输入事件插入所述虚 拟机的系统, 以使所述系统调用处理函数对所述输入事件进行处理。
[36] 第三方面, 提供一种同步终端镜像的装置, 所述装置包括:
[37] 获取单元, 用于获取应用软件运行中的多个输入事件; [38] 聚合单元, 用于将所述获取单元获取的所述多个输入事件进行聚合, 得到聚 合事件;
[39] 传输单元, 用于将所述聚合单元得到的聚合事件传输至服务器, 以使所述服 务器对所述聚合事件进行解析得到所述多个输入事件后, 通过设置在所述服务器 上的所述终端的虚拟机处理所述多个输入事件, 获得所述应用软件运行中产生的 用户数据。
[40] 结合第三方面, 在第三方面的第一种可能的实现方式中, 所述装置还包括:
[41] 插入单元,用于将所述获取单元获取的输入事件按照事件生成顺序插入事件 队列;
[42] 所述聚合单元,具体用于按照设置的时间周期将所述事件队列中的输入事件 进行聚合, 获得聚合事件。 [43] 结合第三方面, 或第三方面的第一种可能的实现方式, 在第三方面的第二种 可能的实现方式中, 所述聚合单元包括:
[44] 事件获取子单元, 用于按照所述多个输入事件的生成顺序, 获取一个当前输 入事件; [45] 信息生成子单元,用于为所述事件获取子单元获取的当前输入事件的每个属 性信息生成位图信息, 其中, 每个属性信息的位图信息用于指示所述属性信息与 所述当前输入事件的前一个输入事件的对应属性信息是否相同;
[46] 数据确定子单元,用于将所述信息生成子单元生成的当前输入事件的位图信 息和与所述前一个输入事件不同的属性信息确定为所述当前输入事件的待传输 数据;
[47] 事件聚合子单元,用于当所述数据确定子单元确定完所述多个输入事件中每 个输入事件的待传输数据后, 将所述多个输入事件的待传输数据组成所述多个输 入事件的聚合事件。
[48] 结合第三方面, 或第三方面的第一种可能的实现方式, 或第三方面的第二种 可能的实现方式, 在第三方面的第三种可能的实现方式中, 所述装置还包括:
[49] 压缩单元, 用于对所述聚合单元得到的聚合事件进行压缩, 得到压缩聚合事 件;
[50] 所述传输单元,具体用于将所述压缩单元得到的压缩聚合事件传输至云服务 器。 [51] 第四方面, 提供一种同步终端镜像的装置, 所述装置包括:
[52] 接收单元, 用于接收终端传输的聚合事件, 所述聚合事件为所述终端获取到 应用软件运行中的多个输入事件后, 将所述多个输入事件进行聚合得到的聚合事 件;
[53] 解析单元, 用于解析所述接收单元接收到的聚合事件, 获得所述多个输入事 件; [54] 处理单元,用于通过设置在服务器上的所述终端的虚拟机处理所述解析单元 获得的多个输入事件, 获得所述应用软件运行中产生的用户数据。
[55] 结合第四方面, 在第四方面的第一种可能的实现方式中, 所述接收单元, 具 体用于接收终端传输的压缩聚合事件, 所述压缩聚合事件为所述终端对所述聚合 事件进行压缩后得到的事件;
[56] 所述装置还包括: 解压缩单元, 用于对所述接收单元接收到的压缩聚合事件 进行解压缩, 获得所述聚合事件。
[57] 结合第四方面, 或第四方面的第一种可能的实现方式, 在第四方面的第二种 可能的实现方式中, 所述接收单元, 具体用于接收终端传输的压缩聚合事件, 所 述压缩聚合事件为所述终端对所述聚合事件进行压缩后得到的事件;
[58] 所述装置还包括: 解压缩单元, 用于对所述接收单元接收到的压缩聚合事件 进行解压缩, 获得所述聚合事件。
[59] 结合第四方面, 或第四方面的第一种可能的实现方式, 或第四方面的第二种 可能的实现方式, 在第四方面的第三种可能的实现方式中, 所述处理单元包括: [60] 状态匹配子单元,用于当接收到所述设置在服务器上的终端的虚拟机的系统 状态发生变化的通知时, 判断所述多个输入事件的属性信息是否与所述系统状态 匹配;
[61] 事件处理子单元, 用于根据所述状态匹配子单元的匹配结果, 将与所述系统 状态匹配的属性信息对应的输入事件插入所述虚拟机的系统, 以使所述系统调用 处理函数对所述输入事件进行处理。
[62] 第五方面, 提供一种终端, 所述终端包括: 处理器和网络接口, 其中,
[63] 所述处理器, 用于获取应用软件运行中的多个输入事件, 将所述多个输入事 件进行聚合, 得到聚合事件;
[64] 所述网络接口, 用于将所述聚合事件传输至服务器, 以使所述服务器对所述 聚合事件进行解析得到所述多个输入事件后, 通过设置在所述服务器上的所述终 端的虚拟机处理所述多个输入事件, 获得所述应用软件运行中产生的用户数据。 [65] 结合第五方面, 在第五方面的第一种可能的实现方式中, 所述处理器, 还用 于将获取的输入事件按照事件生成顺序插入事件队列;
[66] 所述处理器,具体用于按照设置的时间周期将所述事件队列中的输入事件进 行聚合, 得到聚合事件。 [67] 结合第五方面, 或第五方面的第一种可能的实现方式, 在第五方面的第二种 可能的实现方式中, 所述处理器, 具体用于按照所述多个输入事件的生成顺序, 获取一个当前输入事件; 为所述当前输入事件的每个属性信息生成位图信息, 其 中, 每个属性信息的位图信息用于指示所述属性信息与所述当前输入事件的前一 个输入事件的对应属性信息是否相同; 将所述当前输入事件的位图信息和与所述 前一个输入事件不同的属性信息确定为所述当前输入事件的待传输数据; 当确定 完所述多个输入事件中每个输入事件的待传输数据后, 将所述多个输入事件的待 传输数据组成所述多个输入事件的聚合事件。
[68] 结合第五方面, 或第五方面的第一种可能的实现方式, 或第五方面的第二种 可能的实现方式, 在第五方面的第三种可能的实现方式中, 所述处理器, 还用于 对所述聚合事件进行压缩, 得到压缩聚合事件;
[69] 所述网络接口, 具体用于将所述压缩聚合事件传输至云服务器。
[70] 第六方面, 提供一种服务器, 所述服务器包括: 终端接口和处理器, 其中,
[71] 所述终端接口, 用于接收终端传输的聚合事件, 所述聚合事件为所述终端获 取到应用软件运行中的多个输入事件后, 将所述多个输入事件进行聚合得到的聚 合事件;
[72] 所述处理器, 用于解析所述聚合事件, 获得所述多个输入事件, 通过设置在 所述服务器上的所述终端的虚拟机处理所述多个输入事件, 获得所述应用软件运 行中产生的用户数据。
[73] 结合第六方面, 在第六方面的第一种可能的实现方式中, 所述终端接口, 具 体用于接收终端传输的压缩聚合事件, 所述压缩聚合事件为所述终端对所述聚合 事件进行压缩后得到的事件; [74] 所述处理器, 还用于对所述压缩聚合事件进行解压缩, 获得所述聚合事件。
[75] 结合第六方面, 或第六方面的第一种可能的实现方式, 在第六方面的第二种 可能的实现方式中, 所述处理器, 具体用于从所述聚合事件中顺序获取一个当前 输入事件的传输数据, 所述传输数据中包含所述当前输入事件的每个属性信息的 位图信息, 以及与所述当前输入事件的前一个输入事件不同的属性信息, 其中, 所述每个属性信息的位图信息用于指示所述属性信息与所述前一个输入事件的 对应属性信息是否相同; 根据所述位图信息的指示, 从所述前一个输入事件的属 性信息中获取所述当前输入事件与所述前一个输入事件相同的属性信息; 将获取 到的所述相同的属性信息与所述传输数据中包含的不同的属性信息组成所述当 前输入事件。
[76] 结合第六方面, 或第六方面的第一种可能的实现方式, 或第六方面的第二种 可能的实现方式, 在第六方面的第三种可能的实现方式中, 所述处理器, 具体用 于当接收到设置在所述服务器上的所述终端的虚拟机的系统状态发生变化的通 知时, 判断所述多个输入事件的属性信息是否与所述系统状态匹配; 将与所述系 统状态匹配的属性信息对应的输入事件插入所述虚拟机的系统, 以使所述系统调 用处理函数对所述输入事件进行处理。
[77] 本发明实施例中, 终端获取应用软件运行中的多个输入事件, 将多个输入事 件进行聚合, 得到聚合事件, 将聚合事件传输至服务器, 服务器对聚合事件进行 解析得到多个输入事件后, 通过设置在服务器上的终端的虚拟机处理多个输入事 件, 获得应用软件运行中产生的用户数据。 本发明实施例中终端无需向服务器传 输用户数据, 而是采用事件驱动方式向服务器传输输入事件, 使服务器端通过终 端的虚拟机触发输入事件的执行, 以获取与终端侧运行应用软件一致的用户数 据, 从而保证服务器能够备份完整的用户数据, 提高用户数据安全性检查的准确 性; 并且, 由于终端传输的聚合输入事件的容量较小, 因此与直接传输用户数据 相比, 占用的网络传输资源较少, 且不会影响终端自身的性能开销, 保证了终端 上其它业务的正常运行。 附图说明
[78] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例 或现有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 对于本领域普 通技术人员而言, 在不付出创造性劳动性的前提下, 还可以根据这些附图获得其 他的附图。
[79] 图 1A为本发明同步终端镜像的方法的一个实施例流程图; [80] 图 1B为本发明同步终端镜像的方法的另一个实施例流程图; [81] 图 2为本发明同步终端镜像的方法的另一个实施例流程图; [82] 图 3A为应用本发明实施例的一个网络架构示意图; [83] 图 3B为应用本发明实施例的一个事件聚合示意图; [84] 图 4为本发明同步终端镜像的装置的一个实施例框图; [85] 图 5为本发明同步终端镜像的装置的另一个实施例框图; [86] 图 6为本发明终端的实施例框图;
[87] 图 7为本发明同步终端镜像的装置的另一个实施例框图; [88] 图 8为本发明同步终端镜像的装置的另一个实施例框图; [89] 图 9为本发明服务器的实施例框图。 具体实施方式
[90] 为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发 明实施例的上述目的、 特征和优点能够更加明显易懂, 下面结合附图对本发明实 施例中技术方案作进一步详细的说明。
[91] 参见图 1A, 为本发明同步终端镜像的方法的一个实施例流程图, 该实施例 从终端侧对同步过程进行描述: [92] 步骤 101 : 终端获取应用软件运行中的多个输入事件。
[93] 本实施例中, 终端可以指各种智能手机、 平板电脑等。 终端上的不同应用软 件运行时可能触发不同类型的输入事件, 这些输入事件可以包括对显示屏进行操 作的触摸输入事件, 由全球定位系统 (Global Pos i t ion ing System, GPS ) 设备 产生的定位输入事件, 以及由传感器产生的传感输入事件等。 例如, 终端用户试 图运行某个应用软件时, 则点击终端触摸显示屏上该应用软件的图标, 该点击图 标的动作可以抽象为一个输入事件, 当终端用户对打开的应用软件进行操作时, 在操作过程中根据不同的输入手势也会触发不同的输入事件。
[94] 步骤 102 : 将多个输入事件进行聚合, 得到聚合事件。
[95] 本实施例中, 终端可以按照多个输入事件的生成顺序, 获取一个当前输入事 件; 为当前输入事件的每个属性信息生成位图信息, 其中, 每个属性信息的位图 信息用于指示所述属性信息与所述当前输入事件的前一个输入事件的对应属性 信息是否相同; 将当前输入事件的位图信息和与前一个输入事件不同的属性信息 确定为当前输入事件的待传输数据; 当确定完多个输入事件中每个输入事件的待 传输数据后, 将多个输入事件的待传输数据组成多个输入事件的聚合事件。
[96] 步骤 103 : 将聚合事件传输至服务器, 以使服务器对聚合事件进行解析得到 多个输入事件后, 通过设置在服务器上的终端的虚拟机处理多个输入事件, 获得 应用软件运行中产生的用户数据。
[97] 由上述实施例可见, 该实施例中终端无需向服务器传输用户数据, 而是采用 事件驱动方式向服务器传输输入事件, 使服务器端通过终端的虚拟机触发输入事 件的执行, 以获取与终端侧运行应用软件一致的用户数据, 从而保证服务器能够 备份完整的用户数据, 提高用户数据安全性检查的准确性; 并且, 由于终端传输 的聚合输入事件的容量较小, 因此与直接传输用户数据相比, 占用的网络传输资 源较少, 且不会影响终端自身的性能开销, 保证了终端上其它业务的正常运行。
[98] 参见图 1B, 为本发明同步终端镜像的方法的另一个实施例流程图, 该实施 例从服务器侧对同步过程进行描述:
[99] 步骤 1 1 1 : 服务器接收终端传输的聚合事件, 该聚合事件为终端获取到应用 软件运行中的多个输入事件后, 将多个输入事件进行聚合得到的聚合事件。
[100]本实施例中, 服务器可以指具有丰富计算资源的云服务器, 在云服务器上可 以设置与该云服务器进行通信的每个终端的虚拟机。 虚拟机指通过软件模拟的具 有完整硬件系统功能的、 运行在一个完全隔离环境中的完整系统, 通常可以在一 台云服务器上模拟出多台不同终端的虚拟机, 终端通过网络可以访问其在云服务 器上的虚拟机。
[101]步骤 1 12 : 解析该聚合事件, 获得多个输入事件。 [102]本实施例中,服务器可以从聚合事件中顺序获取一个当前输入事件的传输数 据, 该传输数据中包含当前输入事件的每个属性信息的位图信息, 以及与当前输 入事件的前一个输入事件不同的属性信息, 其中, 每个属性信息的位图信息用于 指示该属性信息与前一个输入事件的对应属性信息是否相同; 根据位图信息的指 示, 从前一个输入事件的属性信息中获取当前输入事件与前一个输入事件相同的 属性信息; 将获取到的相同的属性信息与传输数据中包含的不同的属性信息组成 当前输入事件。
[103]步骤 1 13 : 通过设置在服务器上的终端的虚拟机处理多个输入事件, 获得应 用软件运行中产生的用户数据。
[104]本实施例中,当服务器接收到设置在服务器上的终端的虚拟机的系统状态发 生变化的通知时, 判断多个输入事件的属性信息是否与系统状态匹配; 将与系统 状态匹配的属性信息对应的输入事件插入所述虚拟机的系统, 以使该虚拟机的系 统调用处理函数对输入事件进行处理, 从而获得应用软件运行中产生的用户数 据。
[105]由上述实施例可见, 该实施例中终端无需向服务器传输用户数据, 而是采用 事件驱动方式向服务器传输输入事件, 使服务器端通过终端的虚拟机触发输入事 件的执行, 以获取与终端侧运行应用软件一致的用户数据, 从而保证服务器能够 备份完整的用户数据, 提高用户数据安全性检查的准确性; 并且, 由于终端传输 的聚合输入事件的容量较小, 因此与直接传输用户数据相比, 占用的网络传输资 源较少, 且不会影响终端自身的性能开销, 保证了终端上其它业务的正常运行。 [106]参见图 2, 为本发明同步终端镜像的方法的另一个实施例流程图, 该实施例 通过终端与服务器之间的交互对同步过程进行描述:
[107]步骤 201 : 终端获取应用软件运行中的多个输入事件。 [108]终端上的不同应用软件运行时可能触发不同类型的输入事件,这些输入事件 可以包括对显示屏进行操作的触摸输入事件, 由 GPS设备产生的定位输入事件, 以及由传感器产生的传感输入事件等。 其中, 根据输入事件类型的不同, 输入事 件包含的属性信息也不相同, 例如, 对于触摸输入事件, 其包含的属性信息可以 包括触摸的触点坐标、 触摸事件类型、 发生时间等, 对于定位输入事件, 其包含 的属性信息可以包括位置信息、 发生时间等。
[109]步骤 202 : 将获取的输入事件按照事件生成顺序插入事件队列。
[110]本实施例中, 在运行应用软件过程中, 每产生一个输入事件就可以将该输入 事件插入事件队列中, 事件队列可以保存在终端的内存中, 事件队列中的输入事 件按照先进先出的方式进行排列; 相应的, 终端可以从事件队列中顺序获取输入 事件, 并调用与输入事件相应的处理函数对输入事件进行处理, 以便在终端上执 行该应用软件。
[111]步骤 203 : 按照设置的时间周期将事件队列中的输入事件进行聚合, 得到聚 合事件。 [112]其中,终端可以按照异步处理方式将保存在内存的事件队列中的输入事件写 入到磁盘中, 并且本实施例中, 终端可以按照设置的时间周期将事件队列中的多 个输入事件进行聚合, 获得聚合事件。 需要说明的是, 除了按照时间周期对输入 事件聚合外, 也可以设置事件阈值, 当事件队列中的输入事件数量达到该事件阈 值时, 就对输入事件进行聚合, 对此本发明实施例不进行限制。 [113]本实施例中, 由于事件队列中的多个输入事件按照先入先出的顺序排列, 且 多个连续的输入事件通常为执行同一应用软件触发的事件, 因此相邻的两个输入 事件通常具有某些相同的属性信息, 因此在传输后一个输入事件时, 可以仅传输 其与前一个输入事件的差别属性信息。 基于此, 终端在对事件队列中的多个输入 事件进行聚合时, 可以按照多个输入事件的生成顺序, 获取一个当前输入事件, 为当前输入事件的每个属性信息生成位图信息, 其中, 每个属性信息的位图信息 用于指示所述属性信息与所述当前输入事件的前一个输入事件的对应属性信息 是否相同, 将当前输入事件的位图信息和与前一个输入事件不同的属性信息确定 为当前输入事件的待传输数据; 当确定完多个输入事件中每个输入事件的待传输 数据后, 将多个输入事件的待传输数据组成多个输入事件的聚合事件。 [114]步骤 204 : 对聚合事件进行压缩, 得到压缩聚合事件。
[115]本实施例中, 可以对聚合事件进行压缩, 以便进一步减小所要传输的聚合事 件的数据流的大小, 压缩方式可以采用 z ip压缩, 或者 rar压缩等, 对此本发明 实施例不进行限制。 [116]步骤 205 : 将压缩聚合事件传输至服务器。
[117]步骤 206 : 服务器对压缩聚合事件进行解压缩, 获得聚合事件。
[118]本步骤中, 服务器接收到终端传输的压缩聚合事件后, 对压缩聚合事件进行 解压缩的方式与步骤 204中终端对聚合事件进行压缩的方式一致, 对压缩聚合事 件进行解压缩后, 可以获得聚合事件。 [119]步骤 207 : 解析聚合事件, 获得多个输入事件。
[120]结合步骤 203中终端对输入事件进行聚合获得聚合事件的过程, 本步骤中, 服务器可以从聚合事件中顺序获取一个当前输入事件的传输数据, 该传输数据中 包含当前输入事件的每个属性信息的位图信息, 以及与当前输入事件的前一个输 入事件不同的属性信息, 其中, 每个属性信息的位图信息用于指示该属性信息与 前一个输入事件的对应属性信息是否相同; 根据位图信息的指示, 从前一个输入 事件的属性信息中获取当前输入事件与前一个输入事件相同的属性信息; 将获取 到的相同的属性信息与传输数据中包含的不同的属性信息组成当前输入事件。
[121]步骤 208 : 通过设置在服务器上的终端的虚拟机处理多个输入事件, 获得应 用软件运行中产生的用户数据。 [122]本步骤中,当服务器接收到设置在服务器上的终端的虚拟机的系统状态发生 变化的通知时, 判断多个输入事件的属性信息是否与系统状态匹配; 将与系统状 态匹配的属性信息对应的输入事件插入所述虚拟机的系统, 以使该虚拟机的系统 调用处理函数对输入事件进行处理, 该处理过程与终端内调用处理函数对输入事 件进行处理的过程一致, 即服务器上终端的虚拟机与终端内执行应用软件的过程 一致,相应的,在终端的虚拟机上生成的用户数据也与终端生成的用户数据一致, 从而实现了在服务器上同步终端镜像的目的。 [123]其中, 输入事件的属性信息通常包括多个, 与终端虚拟机的系统状态进行匹 配的属性信息可以是多个属性信息中的至少一个, 例如, 对于触摸输入事件, 可 以判断其属性信息中的发生时间是否与当前终端虚拟机系统的时间一致, 如果一 致则将该触摸输入事件插入系统。 [124]由上述实施例可见, 该实施例中终端无需向服务器传输用户数据, 而是采用 事件驱动方式向服务器传输输入事件, 使服务器端通过终端的虚拟机触发输入事 件的执行, 以获取与终端侧运行应用软件一致的用户数据, 从而保证服务器能够 备份完整的用户数据, 提高用户数据安全性检查的准确性; 并且, 由于终端传输 的聚合输入事件的容量较小, 因此与直接传输用户数据相比, 占用的网络传输资 源较少, 且不会影响终端自身的性能开销, 保证了终端上其它业务的正常运行。
[125]参见图 3A, 为应用本发明实施例的一个网络架构示意图:
[126]图 3A示出的网络架构中, 包括用户使用的智能终端及云服务器, 智能终端 与云服务器之间通过网络进行通信。 其中, 智能终端内包括事件队列模块、 事件 处理模块和记录服务模块; 云服务器内包括事件调度模块、 事件插入模块和事件 处理模块。
[127]假设图 3A中示出的智能终端具有触摸显示屏, 下面结合用户对触摸显示屏 上的某个应用软件图标进行点击为例, 描述从智能终端向云服务器同步终端镜像 的过程:
[128]在智能终端侧: [129]当用户试图运行某个应用软件时, 则点击触摸显示屏上该应用软件的图标, 此时事件队列模块可以通过内核驱动将用户点击图标的动作抽象为一个输入事 件, 并将该输入事件插入智能终端内的事件队列, 后续当用户对打开的应用软件 进行操作时, 在操作过程中会相应触发不同的输入事件, 并将这些输入事件插入 智能终端内的事件队列, 其中, 事件队列中的输入事件按照先进先出的方式进行 排列;
[130]事件处理模块可以通过事件处理线程从事件队列中顺序获取输入事件,并调 用与输入事件相应的处理函数对输入事件进行处理, 以便在智能终端上执行该应 用软件; 并且, 事件处理模块还可以将事件队列中的输入事件按照异步处理方式 发送至记录服务模块;
[131]记录服务模块在获取到多个输入事件后,可以将这些输入事件进行聚合和压 缩, 得到压缩聚合事件, 并将压缩聚合事件通过网络传输到云服务器; 本实施例 中, 记录服务模块可以按照预设的时间周期对获取到的输入事件进行聚合和压 缩, 例如, 可以设置每隔 5s对获取到的输入事件进行聚合和压缩。
[132]其中, 记录服务模块在对输入事件进行聚合时, 由于记录服务模块获取到的 多个输入事件在事件队列中按照先入先出的顺序排列, 且多个连续的输入事件通 常为执行同一应用软件触发的事件, 因此相邻的两个输入事件通常具有某些相同 的属性信息, 因此在传输后一个输入事件时, 可以仅传输其与前一个输入事件的 差别属性信息, 以减少整个压缩聚合事件的大小, 降低压缩聚合事件传输占用的 网络资源。 如图 3B所示, 假设记录服务模块本次传输三个输入事件, 分别为事 件 1、 事件 2、 事件 3, 每个输入事件由四个属性信息组成, 在每个输入事件的头 部有分别对应每个属性信息的位图信息, 每个位图信息的比特值用于表示该位图 信息对应的属性信息是否与前一个输入事件的属性信息相同, 例如, 如果相同, 则位图信息的比特值为 1, 如果不相同, 则位图信息的比特值为 0。 结合图 3B可 知, 事件 1的四个属性信息分别为 、 B、 C、 D, 假设事件 1与其前一个事件的四 个属性均不相同, 则相应的, 事件 1的四个属性信息的位图信息的比特值均为 0 ; 对于事件 2, 其第二个属性信息和第四个属性信息与事件 1相同, 第一个属性信 息与第三个属性信息与事件 1不同, 分别为 E、 F, 因此事件 2的位图信息的四个 比特值分别为 0、 1、 0、 1; 对于事件 3, 其第一个属性信息、 第二个属性信息和 第四个属性信息与事件 2相同, 第三个属性信息与事件 2不同, 为 G, 因此事件 3的位图信息的四个比特值分别为 1、 1、 0、 1。 由此可知, 在传输图 3B示出的 三个输入事件时, 虽然三个输入事件共有 12 个属性信息, 但是通过为每个事件 设置位图信息, 则实际仅需要传输 7个属性信息, 由于位图信息占用的比特量较 少, 因此降低了传输三个输入事件的整体数据流大小。
[133]进一步, 对于待传输的聚合后的输入事件数据流, 记录服务模块可以对该数 据流进行压缩, 以便进一步减小数据流的大小, 压缩方式可以采用 z ip压缩, 或 者 rar压缩等, 对此本发明实施例不进行限制。 [134]在云服务器侧:
[135]事件调度模块接收到智能终端的记录服务模块传输的聚合压缩输入事件的 数据流后, 对该数据流进行解压缩, 得到聚合输入事件, 然后对聚合输入事件进 行解析, 获得多个输入事件。 [136]其中,事件调度模块在对数据流解压缩的方式与记录服务模块对数据流的压 缩方式一致; 事件调度模块在对解压缩后的聚合输入事件进行解析时, 结合图 3B 可知, 当获取到的三个输入事件的属性信息和位图信息后, 除了事件 1外, 后续 每个输入事件都可以根据该输入事件的位图信息和该输入事件的前一个输入事 件的属性信息进行恢复, 例如, 对于事件 2, 根据其位图信息的比特值 " 0101 " 可知, 其第二个属性信息和第四个属性信息与事件 1相同, 因此从事件 1中获取 这两个属性信息即可; 对于事件 2, 根据其位图信息的比特值 " 1101 "可知, 其 第一个属性信息、 第二个属性信息和第四个属性信息与事件 2相同, 因此从事件 2中获取这三个属性信息即可。
[137]事件插入模块判断事件调度模块解析出的每个输入事件的属性信息是否与 智能终端虚拟机的系统状态匹配, 如果匹配, 则将该输入事件插入系统。 其中, 智能终端的虚拟机可以在自身系统状态发生变化时, 以通知的方式触发事件插入 模块对输入事件的属性信息与系统状态进行匹配。
[138]本实施例中, 输入事件的属性信息通常包括多个, 与智能终端的虚拟机的系 统状态进行匹配的属性信息可以是多个属性信息中的至少一个, 例如, 对于触摸 输入事件, 可以判断其属性信息中的发生时间是否与当前智能终端的虚拟机的系 统时间一致, 如果一致则将该触摸输入事件插入系统。
[139]事件处理模块在事件插入模块将输入事件插入系统后,在智能终端的虚拟机 内调用相应的处理函数对输入事件进行处理, 该处理过程与智能终端内的事件处 理模块调用处理函数对输入事件进行处理的过程一致, 即云服务器上智能终端的 虚拟机与智能终端内执行应用软件的过程一致, 相应的, 在智能终端的虚拟机上 生成的用户数据也与智能终端生成的用户数据一致, 从而实现了在云服务器上同 步终端镜像的目的。
[140]应用上述实施例, 智能终端仅需向云服务器传输输入事件, 就可以在云服务 器上对智能终端的用户数据进行备份, 从而可以使得智能终端丢失时, 从云服务 器上恢复智能终端的所有用户数据, 包括丢失前的状态数据和文件数据; 或者, 利用云服务器上丰富的计算资源, 通过对云服务器上的用户数据进行安全扫描, 从而获得智能终端上的用户数据是否安全的检测结果。 [141]与本发明同步终端镜像的方法的实施例相对应,本发明还提供了执行所述方 法实施例的同步终端镜像的装置、 终端及服务器的实施例。
[142]参见图 4, 为本发明同步终端镜像的装置的一个实施例框图, 该装置可以设 置在终端侧:
[143]该装置包括: 获取单元 410、 聚合单元 420和传输单元 430。
[144]其中, 获取单元 410, 用于获取应用软件运行中的多个输入事件;
[145]聚合单元 420,用于将所述获取单元 410获取的所述多个输入事件进行聚合, 得到聚合事件;
[146]传输单元 430, 用于将所述聚合单元 420得到的聚合事件传输至服务器, 以 使所述服务器对所述聚合事件进行解析得到所述多个输入事件后, 通过设置在所 述服务器上的所述终端的虚拟机处理所述多个输入事件, 获得所述应用软件运行 中产生的用户数据。
[147]其中, 所述聚合单元 420可以包括 (图 4中未示出):
[148]事件获取子单元, 用于按照所述多个输入事件的生成顺序, 获取一个当前输 入事件; [149]信息生成子单元,用于为所述事件获取子单元获取的当前输入事件的每个属 性信息生成位图信息, 其中, 每个属性信息的位图信息用于指示所述属性信息与 所述当前输入事件的前一个输入事件的对应属性信息是否相同;
[150]数据确定子单元,用于将所述信息生成子单元生成的当前输入事件的位图信 息和与所述前一个输入事件不同的属性信息确定为所述当前输入事件的待传输 数据; [151]事件聚合子单元,用于当所述数据确定子单元确定完所述多个输入事件中每 个输入事件的待传输数据后, 将所述多个输入事件的待传输数据组成所述多个输 入事件的聚合事件。
[152]参见图 5, 为本发明同步终端镜像的装置的另一个实施例框图, 该装置可以 设置在终端侧:
[153]该装置包括: 获取单元 510、 插入单元 520、 聚合单元 530、 压缩单元 540 和传输单元 550。
[154]其中, 获取单元 510, 用于获取应用软件运行中的多个输入事件;
[155]插入单元 520, 用于将所述获取单元 510获取的输入事件按照事件生成顺序 插入事件队列;
[156]聚合单元 530, 用于按照设置的时间周期将所述事件队列中的输入事件进行 聚合, 获得聚合事件;
[157]压缩单元 540, 用于对所述聚合单元 540得到的聚合事件进行压缩, 得到压 缩聚合事件; [158]传输单元 550, 具体用于将所述压缩单元 540得到的压缩聚合事件传输至云 服务器, 以使所述服务器对所述聚合事件进行解析得到所述多个输入事件后, 通 过设置在所述服务器上的所述终端的虚拟机处理所述多个输入事件, 获得所述应 用软件运行中产生的用户数据。
[159]其中, 所述聚合单元 530可以包括 (图 5中未示出): [160]事件获取子单元, 用于按照所述多个输入事件的生成顺序, 获取一个当前输 入事件;
[161]信息生成子单元,用于为所述事件获取子单元获取的当前输入事件的每个属 性信息生成位图信息, 其中, 每个属性信息的位图信息用于指示所述属性信息与 所述当前输入事件的前一个输入事件的对应属性信息是否相同; [162]数据确定子单元,用于将所述信息生成子单元生成的当前输入事件的位图信 息和与所述前一个输入事件不同的属性信息确定为所述当前输入事件的待传输 数据;
[163]事件聚合子单元,用于当所述数据确定子单元确定完所述多个输入事件中每 个输入事件的待传输数据后, 将所述多个输入事件的待传输数据组成所述多个输 入事件的聚合事件。
[164]参见图 6, 为本发明终端的实施例框图:
[165]该终端包括: 处理器 610和网络接口 620。
[166]其中, 所述处理器 610, 用于获取应用软件运行中的多个输入事件, 将所述 多个输入事件进行聚合, 得到聚合事件; [167]所述网络接口 620, 用于将所述聚合事件传输至服务器, 以使所述服务器对 所述聚合事件进行解析得到所述多个输入事件后, 通过设置在所述服务器上的所 述终端的虚拟机处理所述多个输入事件, 获得所述应用软件运行中产生的用户数 据。
[168]在一个可选的实现方式中: [169]所述处理器 610, 还可以用于将获取的输入事件按照事件生成顺序插入事件 队列;
[170]所述处理器 610, 可以具体用于按照设置的时间周期将所述事件队列中的输 入事件进行聚合, 得到聚合事件。
[171]在另一个可选的实现方式中: [172]所述处理器 610, 可以具体用于按照所述多个输入事件的生成顺序, 获取一 个当前输入事件;
[173]为所述当前输入事件的每个属性信息生成位图信息, 其中, 每个属性信息的 位图信息用于指示所述属性信息与所述当前输入事件的前一个输入事件的对应 属性信息是否相同; 将所述当前输入事件的位图信息和与所述前一个输入事件不 同的属性信息确定为所述当前输入事件的待传输数据; 当确定完所述多个输入事 件中每个输入事件的待传输数据后, 将所述多个输入事件的待传输数据组成所述 多个输入事件的聚合事件。
[174]在另一个可选的实现方式中:
[175]所述处理器 610,还可以用于对所述聚合事件进行压缩,得到压缩聚合事件; [176]所述网络接口 620, 可以具体用于将所述压缩聚合事件传输至云服务器。
[177]参见图 7, 为本发明同步终端镜像的装置的另一个实施例框图, 该装置可以 设置在服务器侧:
[178]该装置包括: 接收单元 710、 解析单元 720和处理单元 730。
[179]其中, 接收单元 710, 用于接收终端传输的聚合事件, 所述聚合事件为所述 终端获取到应用软件运行中的多个输入事件后, 将所述多个输入事件进行聚合得 到的聚合事件;
[180]解析单元 720, 用于解析所述接收单元 710接收到的聚合事件, 获得所述多 个输入事件;
[181]处理单元 730, 用于通过设置在服务器上的所述终端的虚拟机处理所述解析 单元 720获得的多个输入事件, 获得所述应用软件运行中产生的用户数据。
[182]其中, 所述解析单元 720可以包括 (图 7中未示出):
[183]数据获取子单元,用于从所述聚合事件中顺序获取一个当前输入事件的传输 数据, 所述传输数据中包含所述当前输入事件的每个属性信息的位图信息, 以及 与所述当前输入事件的前一个输入事件不同的属性信息, 其中, 所述每个属性信 息的位图信息用于指示所述属性信息与所述前一个输入事件的对应属性信息是 否相同;
[184]属性获取子单元, 用于根据所述数据获取子单元获取的位图信息的指示, 从 所述前一个输入事件的属性信息中获取所述当前输入事件与所述前一个输入事 件相同的属性信息; [185]事件生成子单元,用于将所述属性获取子单元获取到的所述相同的属性信息 与所述数据获取子单元获取的传输数据中包含的不同的属性信息组成所述当前 输入事件。
[186]其中, 所述处理单元 730可以包括 (图 7中未示出):
[187]状态匹配子单元,用于当接收到所述设置在服务器上的终端的虚拟机的系统 状态发生变化的通知时, 判断所述多个输入事件的属性信息是否与所述系统状态 匹配;
[188]事件处理子单元, 用于根据所述状态匹配子单元的匹配结果, 将与所述系统 状态匹配的属性信息对应的输入事件插入所述虚拟机的系统, 以使所述系统调用 处理函数对所述输入事件进行处理。 [189]参见图 8, 为本发明同步终端镜像的装置的另一个实施例框图, 该装置可以 设置在服务器侧:
[190]该装置包括:接收单元 810、解压缩单元 820、解析单元 830和处理单元 840。
[191]其中, 接收单元 810, 用于接收终端传输的压缩聚合事件, 所述压缩聚合事 件为所述终端获取到应用软件运行中的多个输入事件后, 将所述多个输入事件进 行聚合得到聚合事件, 并对所述聚合事件进行压缩后得到的事件;
[192]解压缩单元 820, 用于对所述接收单元 810接收到的压缩聚合事件进行解压 缩, 获得所述聚合事件;
[193]解析单元 830, 用于解析所述解压缩单元 820获得的聚合事件, 获得所述多 个输入事件; [194]处理单元 840, 用于通过设置在服务器上的所述终端的虚拟机处理所述解析 单元 830获得的多个输入事件, 获得所述应用软件运行中产生的用户数据。
[195]其中, 所述解析单元 830可以包括 (图 8中未示出):
[196]数据获取子单元,用于从所述聚合事件中顺序获取一个当前输入事件的传输 数据, 所述传输数据中包含所述当前输入事件的每个属性信息的位图信息, 以及 与所述当前输入事件的前一个输入事件不同的属性信息, 其中, 所述每个属性信 息的位图信息用于指示所述属性信息与所述前一个输入事件的对应属性信息是 否相同;
[197]属性获取子单元, 用于根据所述数据获取子单元获取的位图信息的指示, 从 所述前一个输入事件的属性信息中获取所述当前输入事件与所述前一个输入事 件相同的属性信息;
[198]事件生成子单元,用于将所述属性获取子单元获取到的所述相同的属性信息 与所述数据获取子单元获取的传输数据中包含的不同的属性信息组成所述当前 输入事件。
[199]其中, 所述处理单元 840可以包括 (图 8中未示出): [200]状态匹配子单元,用于当接收到所述设置在服务器上的终端的虚拟机的系统 状态发生变化的通知时, 判断所述多个输入事件的属性信息是否与所述系统状态 匹配;
[201]事件处理子单元, 用于根据所述状态匹配子单元的匹配结果, 将与所述系统 状态匹配的属性信息对应的输入事件插入所述虚拟机的系统, 以使所述系统调用 处理函数对所述输入事件进行处理。
[202]参见图 9, 为本发明服务器的实施例框图:
[203]该服务器包括: 终端接口 910和处理器 920。
[204]其中, 所述终端接口 910, 用于接收终端传输的聚合事件, 所述聚合事件为 所述终端获取到应用软件运行中的多个输入事件后, 将所述多个输入事件进行聚 合得到的聚合事件;
[205]所述处理器 920, 用于解析所述聚合事件, 获得所述多个输入事件, 通过设 置在所述服务器上的所述终端的虚拟机处理所述多个输入事件, 获得所述应用软 件运行中产生的用户数据。
[206]在一个可选的实现方式中: [207]所述终端接口 910, 可以具体用于接收终端传输的压缩聚合事件, 所述压缩 聚合事件为所述终端对所述聚合事件进行压缩后得到的事件;
[208]所述处理器 920, 还可以用于对所述压缩聚合事件进行解压缩, 获得所述聚 合事件。
[209]在另一个可选的实现方式中: [210]所述处理器 920, 可以具体用于从所述聚合事件中顺序获取一个当前输入事 件的传输数据, 所述传输数据中包含所述当前输入事件的每个属性信息的位图信 息, 以及与所述当前输入事件的前一个输入事件不同的属性信息, 其中, 所述每 个属性信息的位图信息用于指示所述属性信息与所述前一个输入事件的对应属 性信息是否相同; 根据所述位图信息的指示, 从所述前一个输入事件的属性信息 中获取所述当前输入事件与所述前一个输入事件相同的属性信息; 将获取到的所 述相同的属性信息与所述传输数据中包含的不同的属性信息组成所述当前输入 事件。
[211]在另一个可选的实现方式中:
[212]所述处理器 920, 可以具体用于当接收到所述设置在所述服务器上的终端的 虚拟机的系统状态发生变化的通知时, 判断所述多个输入事件的属性信息是否与 所述系统状态匹配; 将与所述系统状态匹配的属性信息对应的输入事件插入所述 虚拟机的系统, 以使所述系统调用处理函数对所述输入事件进行处理。
[213]由上述实施例可见, 终端获取应用软件运行中的多个输入事件, 将多个输入 事件进行聚合, 得到聚合事件, 将聚合事件传输至服务器, 服务器对聚合事件进 行解析得到多个输入事件后, 通过设置在服务器上的终端的虚拟机处理多个输入 事件, 获得应用软件运行中产生的用户数据。 本发明实施例中终端无需向服务器 传输用户数据, 而是采用事件驱动方式向服务器传输输入事件, 使服务器端通过 终端的虚拟机触发输入事件的执行, 以获取与终端侧运行应用软件一致的用户数 据, 从而保证服务器能够备份完整的用户数据, 提高用户数据安全性检查的准确 性; 并且, 由于终端传输的聚合输入事件的容量较小, 因此与直接传输用户数据 相比, 占用的网络传输资源较少, 且不会影响终端自身的性能开销, 保证了终端 上其它业务的正常运行。 [214]本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加 必需的通用硬件平台的方式来实现。 基于这样的理解, 本发明实施例中的技术方 案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来, 该 计算机软件产品可以存储在存储介质中, 如 R0M/RAM、 磁碟、 光盘等, 包括若干 指令用以使得一台计算机设备 (可以是个人计算机, 服务器, 或者网络设备等) 执行本发明各个实施例或者实施例的某些部分所述的方法。
[215]本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似 的部分互相参见即可, 每个实施例重点说明的都是与其他实施例的不同之处。 尤 其, 对于系统实施例而言, 由于其基本相似于方法实施例, 所以描述的比较简单, 相关之处参见方法实施例的部分说明即可。
[216]以上所述的本发明实施方式, 并不构成对本发明保护范围的限定。任何在本 发明的精神和原则之内所作的修改、 等同替换和改进等, 均应包含在本发明的保 护范围之内。

Claims

权 利 要 求
1、 一种同步终端镜像的方法, 其特征在于, 所述方法包括:
终端获取应用软件运行中的多个输入事件;
所述终端将所述多个输入事件进行聚合, 得到聚合事件;
所述终端将所述聚合事件传输至服务器,以使所述服务器对所述聚合事件进 行解析得到所述多个输入事件后,通过设置在所述服务器上的所述终端的虚拟 机处理所述多个输入事件, 获得所述应用软件运行中产生的用户数据。
2、 根据权利要求 1所述的方法, 其特征在于, 所述终端将所述多个输入事 件进行聚合前, 所述方法还包括: 所述终端将获取的输入事件按照事件生成顺序 插入事件队列;
相应地, 所述终端将所述多个输入事件进行聚合, 得到聚合事件, 包括: 所述终端按照设置的时间周期将所述事件队列中的输入事件进行聚合,得到 聚合事件。
3、 根据权利要求 1或 2所述的方法, 其特征在于, 所述终端将所述多个输 入事件进行聚合, 得到聚合事件, 包括:
所述终端按照所述多个输入事件的生成顺序, 获取一个当前输入事件; 所述终端为所述当前输入事件的每个属性信息生成位图信息; 其中, 每个属 性信息的位图信息用于指示所述属性信息与所述当前输入事件的前一个输入事 件的对应属性信息是否相同;
所述终端将所述当前输入事件的位图信息和与所述前一个输入事件不同的 属性信息确定为所述当前输入事件的待传输数据;
当所述终端确定完所述多个输入事件中每个输入事件的待传输数据后,将所 述多个输入事件的待传输数据组成所述多个输入事件的聚合事件。
4、 根据权利要求 1至 3任意一项所述的方法, 其特征在于, 所述终端将所 述多个输入事件进行聚合, 得到聚合事件后, 所述方法还包括:
所述终端对所述聚合事件进行压缩, 得到压缩聚合事件;
相应地, 所述终端将所述聚合事件传输至服务器, 包括:
所述终端将所述压缩聚合事件传输至服务器。
5、 一种同步终端镜像的方法, 其特征在于, 所述方法包括:
服务器接收终端传输的聚合事件,所述聚合事件为所述终端获取到应用软件 运行中的多个输入事件后, 将所述多个输入事件进行聚合得到的聚合事件; 所述服务器解析所述聚合事件, 获得所述多个输入事件;
所述服务器通过设置在所述服务器上的所述终端的虚拟机处理所述多个输 入事件, 获得所述应用软件运行中产生的用户数据。
6、 根据权利要求 5所述的方法, 其特征在于, 所述服务器接收终端传输的 聚合事件, 包括: 所述服务器接收终端传输的压缩聚合事件, 所述压缩聚合事件 为所述终端对所述聚合事件进行压缩后得到的事件;
所述服务器解析所述聚合事件前, 所述方法还包括:
所述服务器对所述压缩聚合事件进行解压缩, 获得所述聚合事件。
7、 根据权利要求 5或 6所述的方法, 其特征在于, 所述服务器解析所述聚 合事件, 获得所述多个输入事件, 包括:
所述服务器从所述聚合事件中顺序获取一个当前输入事件的传输数据,所述 传输数据中包含所述当前输入事件的每个属性信息的位图信息,以及与所述当前 输入事件的前一个输入事件不同的属性信息, 其中, 所述每个属性信息的位图信 息用于指示所述属性信息与所述前一个输入事件的对应属性信息是否相同; 所述服务器根据所述位图信息的指示,从所述前一个输入事件的属性信息中 获取所述当前输入事件与所述前一个输入事件相同的属性信息;
所述服务器将获取到的所述相同的属性信息与所述传输数据中包含的不同 的属性信息组成所述当前输入事件。
8、 根据权利要求 5至 7任意一项所述的方法, 其特征在于, 所述服务器通 过设置在所述服务器上的所述终端的虚拟机处理所述多个输入事件, 包括: 当所述服务器接收到设置在所述服务器上的所述终端的虚拟机的系统状态 发生变化的通知时, 判断所述多个输入事件的属性信息是否与所述系统状态匹 配;
所述服务器将与所述系统状态匹配的属性信息对应的输入事件插入所述虚 拟机的系统, 以使所述系统调用处理函数对所述输入事件进行处理。
9、 一种同步终端镜像的装置, 其特征在于, 所述装置包括:
获取单元, 用于获取应用软件运行中的多个输入事件;
聚合单元, 用于将所述获取单元获取的所述多个输入事件进行聚合, 得到聚 合事件;
传输单元, 用于将所述聚合单元得到的聚合事件传输至服务器, 以使所述服 务器对所述聚合事件进行解析得到所述多个输入事件后,通过设置在所述服务器 上的所述终端的虚拟机处理所述多个输入事件,获得所述应用软件运行中产生的 用户数据。
10、 根据权利要求 9所述的装置, 其特征在于, 所述装置还包括: 插入单元,用于将所述获取单元获取的输入事件按照事件生成顺序插入事件 队列;
所述聚合单元,具体用于按照设置的时间周期将所述事件队列中的输入事件 进行聚合, 获得聚合事件。
11、 根据权利要求 9或 10所述的装置, 其特征在于, 所述聚合单元包括: 事件获取子单元, 用于按照所述多个输入事件的生成顺序, 获取一个当前输 入事件;
信息生成子单元,用于为所述事件获取子单元获取的当前输入事件的每个属 性信息生成位图信息, 其中, 每个属性信息的位图信息用于指示所述属性信息与 所述当前输入事件的前一个输入事件的对应属性信息是否相同;
数据确定子单元,用于将所述信息生成子单元生成的当前输入事件的位图信 息和与所述前一个输入事件不同的属性信息确定为所述当前输入事件的待传输 数据;
事件聚合子单元,用于当所述数据确定子单元确定完所述多个输入事件中每 个输入事件的待传输数据后,将所述多个输入事件的待传输数据组成所述多个输 入事件的聚合事件。
12、 根据权利要求 9至 11任意一项所述的装置, 其特征在于, 所述装置还 包括:
压缩单元, 用于对所述聚合单元得到的聚合事件进行压缩, 得到压缩聚合事 件; 所述传输单元,具体用于将所述压缩单元得到的压缩聚合事件传输至云服务 器。
13、 一种同步终端镜像的装置, 其特征在于, 所述装置包括:
接收单元, 用于接收终端传输的聚合事件, 所述聚合事件为所述终端获取到 应用软件运行中的多个输入事件后,将所述多个输入事件进行聚合得到的聚合事 件;
解析单元, 用于解析所述接收单元接收到的聚合事件, 获得所述多个输入事 件;
处理单元,用于通过设置在服务器上的所述终端的虚拟机处理所述解析单元 获得的多个输入事件, 获得所述应用软件运行中产生的用户数据。
14、 根据权利要求 13所述的装置, 其特征在于,
所述接收单元, 具体用于接收终端传输的压缩聚合事件, 所述压缩聚合事件 为所述终端对所述聚合事件进行压缩后得到的事件;
所述装置还包括: 解压缩单元, 用于对所述接收单元接收到的压缩聚合事件 进行解压缩, 获得所述聚合事件。
15、 根据权利要求 13或 14所述的装置, 其特征在于, 所述解析单元包括: 数据获取子单元,用于从所述聚合事件中顺序获取一个当前输入事件的传输 数据, 所述传输数据中包含所述当前输入事件的每个属性信息的位图信息, 以及 与所述当前输入事件的前一个输入事件不同的属性信息, 其中, 所述每个属性信 息的位图信息用于指示所述属性信息与所述前一个输入事件的对应属性信息是 否相同;
属性获取子单元, 用于根据所述数据获取子单元获取的位图信息的指示, 从 所述前一个输入事件的属性信息中获取所述当前输入事件与所述前一个输入事 件相同的属性信息;
事件生成子单元,用于将所述属性获取子单元获取到的所述相同的属性信息 与所述数据获取子单元获取的传输数据中包含的不同的属性信息组成所述当前 输入事件。
16、 根据权利要求 13至 15任意一项所述的装置, 其特征在于, 所述处理单 元包括:
状态匹配子单元,用于当接收到所述设置在服务器上的终端的虚拟机的系统 状态发生变化的通知时,判断所述多个输入事件的属性信息是否与所述系统状态 匹配;
事件处理子单元, 用于根据所述状态匹配子单元的匹配结果, 将与所述系统 状态匹配的属性信息对应的输入事件插入所述虚拟机的系统,以使所述系统调用 处理函数对所述输入事件进行处理。
17、 一种终端, 其特征在于, 所述终端包括: 处理器和网络接口, 其中, 所述处理器, 用于获取应用软件运行中的多个输入事件, 将所述多个输入事 件进行聚合, 得到聚合事件;
所述网络接口, 用于将所述聚合事件传输至服务器, 以使所述服务器对所述 聚合事件进行解析得到所述多个输入事件后,通过设置在所述服务器上的所述终 端的虚拟机处理所述多个输入事件, 获得所述应用软件运行中产生的用户数据。
18、 根据权利要求 17所述的终端, 其特征在于,
所述处理器, 还用于将获取的输入事件按照事件生成顺序插入事件队列; 所述处理器,具体用于按照设置的时间周期将所述事件队列中的输入事件进 行聚合, 得到聚合事件。
19、 根据权利要求 17或 18所述的终端, 其特征在于,
所述处理器, 具体用于按照所述多个输入事件的生成顺序, 获取一个当前输 入事件; 为所述当前输入事件的每个属性信息生成位图信息, 其中, 每个属性信 息的位图信息用于指示所述属性信息与所述当前输入事件的前一个输入事件的 对应属性信息是否相同;将所述当前输入事件的位图信息和与所述前一个输入事 件不同的属性信息确定为所述当前输入事件的待传输数据;当确定完所述多个输 入事件中每个输入事件的待传输数据后,将所述多个输入事件的待传输数据组成 所述多个输入事件的聚合事件。
20、 根据权利要求 17至 19任意一项所述的终端, 其特征在于,
所述处理器, 还用于对所述聚合事件进行压缩, 得到压缩聚合事件;
所述网络接口, 具体用于将所述压缩聚合事件传输至云服务器。
21、一种服务器, 其特征在于, 所述服务器包括: 终端接口和处理器, 其中, 所述终端接口, 用于接收终端传输的聚合事件, 所述聚合事件为所述终端获 取到应用软件运行中的多个输入事件后,将所述多个输入事件进行聚合得到的聚 合事件;
所述处理器, 用于解析所述聚合事件, 获得所述多个输入事件, 通过设置在 所述服务器上的所述终端的虚拟机处理所述多个输入事件,获得所述应用软件运 行中产生的用户数据。
22、 根据权利要求 21所述的服务器, 其特征在于,
所述终端接口, 具体用于接收终端传输的压缩聚合事件, 所述压缩聚合事件 为所述终端对所述聚合事件进行压缩后得到的事件;
所述处理器, 还用于对所述压缩聚合事件进行解压缩, 获得所述聚合事件。
23、 根据权利要求 21或 22所述的服务器, 其特征在于,
所述处理器,具体用于从所述聚合事件中顺序获取一个当前输入事件的传输 数据, 所述传输数据中包含所述当前输入事件的每个属性信息的位图信息, 以及 与所述当前输入事件的前一个输入事件不同的属性信息, 其中, 所述每个属性信 息的位图信息用于指示所述属性信息与所述前一个输入事件的对应属性信息是 否相同; 根据所述位图信息的指示, 从所述前一个输入事件的属性信息中获取所 述当前输入事件与所述前一个输入事件相同的属性信息;将获取到的所述相同的 属性信息与所述传输数据中包含的不同的属性信息组成所述当前输入事件。
24、 根据权利要求 21至 23任意一项所述的服务器, 其特征在于, 所述处理器,具体用于当接收到设置在所述服务器上的所述终端的虚拟机的 系统状态发生变化的通知时,判断所述多个输入事件的属性信息是否与所述系统 状态匹配;将与所述系统状态匹配的属性信息对应的输入事件插入所述虚拟机的 系统, 以使所述系统调用处理函数对所述输入事件进行处理。
PCT/CN2014/071634 2013-06-28 2014-01-28 同步终端镜像的方法、装置、终端及服务器 WO2014206089A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020147021238A KR101624821B1 (ko) 2013-06-28 2014-01-28 단말기 미러를 동기화하기 위한 방법, 장치, 단말기 및 서버

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310268703.8 2013-06-28
CN201310268703.8A CN104253842B (zh) 2013-06-28 2013-06-28 同步终端镜像的方法、装置、终端及服务器

Publications (1)

Publication Number Publication Date
WO2014206089A1 true WO2014206089A1 (zh) 2014-12-31

Family

ID=51260574

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/071634 WO2014206089A1 (zh) 2013-06-28 2014-01-28 同步终端镜像的方法、装置、终端及服务器

Country Status (7)

Country Link
US (1) US9832259B2 (zh)
EP (1) EP2819015B1 (zh)
JP (1) JP5986602B2 (zh)
KR (1) KR101624821B1 (zh)
CN (1) CN104253842B (zh)
ES (1) ES2587603T3 (zh)
WO (1) WO2014206089A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10554491B2 (en) 2016-02-26 2020-02-04 Red Hat, Inc. Customizable event processing for third party infrastructure events
CN107046538B (zh) * 2017-04-06 2021-02-09 王博 一种智能密室系统及其控制方法
WO2018205267A1 (zh) * 2017-05-12 2018-11-15 深圳前海达闼云端智能科技有限公司 输入设备实现方法及其实现装置
CN107391302A (zh) * 2017-06-14 2017-11-24 深信服科技股份有限公司 位图数据管理方法及装置
US11582307B2 (en) * 2017-08-30 2023-02-14 King.Com Limited Method and apparatus for processing data
CN108390920A (zh) * 2018-02-02 2018-08-10 浙江臻善科技股份有限公司 基于web端的Docker镜像构建方法、装置、存储设备及终端设备
CN110837048A (zh) * 2019-10-30 2020-02-25 深圳市新威尔电子有限公司 基于虚拟机的电池检测系统及其工作方法
CN113398568B (zh) * 2021-06-30 2023-04-11 广州方硅信息技术有限公司 数据传输方法、装置、电子设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004025923A1 (en) * 2002-09-13 2004-03-25 Sun Microsystems, Inc. Synchronizing for digital content access control
US8019863B2 (en) * 2008-03-28 2011-09-13 Ianywhere Solutions, Inc. Synchronizing events between mobile devices and servers
CN102685158A (zh) * 2011-03-09 2012-09-19 郑江 一种网络数据共享的方法
CN102870373A (zh) * 2010-05-03 2013-01-09 阿尔卡特朗讯公司 基于事件的社交网络应用

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2452251C (en) * 2003-12-04 2010-02-09 Timothy R. Jewell Data backup system and method
US7840963B2 (en) * 2004-10-15 2010-11-23 Microsoft Corporation Marking and utilizing portions of memory state information during a switch between virtual machines to minimize software service interruption
US7672979B1 (en) * 2005-04-22 2010-03-02 Symantec Operating Corporation Backup and restore techniques using inconsistent state indicators
CN100440859C (zh) 2005-06-06 2008-12-03 中兴通讯股份有限公司 一种位图聚合的递推流分类方法及其系统
JP4468426B2 (ja) 2007-09-26 2010-05-26 株式会社東芝 高可用システム及び実行状態制御方法
CN101140529A (zh) * 2007-10-23 2008-03-12 中兴通讯股份有限公司 一种基于同步事件多路分离器的多事件处理方法及装置
US20110246721A1 (en) * 2010-03-31 2011-10-06 Sony Corporation Method and apparatus for providing automatic synchronization appliance
US20110271212A1 (en) 2010-04-30 2011-11-03 Jones Boland T Managing multiple conferences via a conference user interface
US8291170B1 (en) * 2010-08-19 2012-10-16 Symantec Corporation System and method for event driven backup data storage
US8694700B1 (en) * 2010-09-29 2014-04-08 Emc Corporation Using I/O track information for continuous push with splitter for storage device
US8930653B1 (en) * 2011-04-18 2015-01-06 American Megatrends, Inc. Data de-duplication for information storage systems
JP2012244463A (ja) * 2011-05-20 2012-12-10 Sony Corp 受信端末、情報処理方法、プログラム、サーバ、送信端末及び情報処理システム
CN102681845A (zh) * 2012-04-24 2012-09-19 深圳创维数字技术股份有限公司 一种输入事件管理方法及装置
CN103685388B (zh) 2012-09-13 2015-01-07 腾讯科技(深圳)有限公司 信息管理的方法和装置
CN102946411A (zh) 2012-10-15 2013-02-27 北京奇虎科技有限公司 网络同步系统
US10089192B2 (en) * 2013-06-13 2018-10-02 Hytrust, Inc. Live restore for a data intelligent storage system
US9213706B2 (en) * 2013-06-13 2015-12-15 DataGravity, Inc. Live restore for a data intelligent storage system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004025923A1 (en) * 2002-09-13 2004-03-25 Sun Microsystems, Inc. Synchronizing for digital content access control
US8019863B2 (en) * 2008-03-28 2011-09-13 Ianywhere Solutions, Inc. Synchronizing events between mobile devices and servers
CN102870373A (zh) * 2010-05-03 2013-01-09 阿尔卡特朗讯公司 基于事件的社交网络应用
CN102685158A (zh) * 2011-03-09 2012-09-19 郑江 一种网络数据共享的方法

Also Published As

Publication number Publication date
US9832259B2 (en) 2017-11-28
EP2819015A1 (en) 2014-12-31
US20150026293A1 (en) 2015-01-22
KR20150018764A (ko) 2015-02-24
EP2819015B1 (en) 2016-06-01
ES2587603T3 (es) 2016-10-25
JP5986602B2 (ja) 2016-09-06
CN104253842B (zh) 2018-03-06
CN104253842A (zh) 2014-12-31
JP2015011719A (ja) 2015-01-19
KR101624821B1 (ko) 2016-05-26

Similar Documents

Publication Publication Date Title
WO2014206089A1 (zh) 同步终端镜像的方法、装置、终端及服务器
US20170222891A1 (en) Automatic asynchronous handoff identification
US20150067146A1 (en) Custom correlation of a distributed business transaction
US10776245B2 (en) Analyzing physical machine impact on business transaction performance
EP3368997A1 (en) Network aware distributed business transaction anomaly detection
WO2017131774A1 (en) Log event summarization for distributed server system
EP3213193B1 (en) Monitoring and correlating a binary process in a distributed business transaction
US10216601B2 (en) Agent dynamic service
CN107577578B (zh) 统计nfs操作字时延的方法、装置、设备以及存储介质
US10067862B2 (en) Tracking asynchronous entry points for an application
WO2014019362A1 (zh) 一种数据备份的方法和系统
US9727394B2 (en) Establishing causality order of computer trace records
WO2014019363A1 (zh) 一种数据恢复的方法和系统
US10775751B2 (en) Automatic generation of regular expression based on log line data
CN109766347B (zh) 一种数据更新方法、装置、系统、计算机设备及存储介质
CN109167808B (zh) 一种数据处理方法、装置和系统
US10671505B2 (en) System and method for monitoring service
US9935856B2 (en) System and method for determining end user timing
US9838488B2 (en) Agent asynchronous transaction monitor
US20180007152A1 (en) Asynchronous custom exit points
CN112311717B (zh) 网络数据恢复方法、装置、存储介质和计算机设备
CN113873029B (zh) 密码服务监控方法、服务器、密码机、系统和存储介质

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 20147021238

Country of ref document: KR

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14818677

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14818677

Country of ref document: EP

Kind code of ref document: A1