Method and device for sharing data, equipment and storage medium

By acquiring data sharing policies on the client device and transmitting modified data to the server, and generating a synchronous data copy, the problem of data inconsistency among users is solved, data synchronization and consistency is achieved, and operation costs are reduced.

CN119892383APending Publication Date: 2025-04-25BEIJING ZITIAO NETWORK TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311397674.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-10-25
Publication Date
2025-04-25

AI Technical Summary

Technical Problem

When users log in to different electronic devices, the data of applications installed on different devices is inconsistent, resulting in increased user operation costs.

Method used

After obtaining the data sharing policy associated with the target account at the client device, and receiving the data modification, in response to the data type matching policy, the modified data is transmitted to the server and a synchronized copy of the data is generated for use by other devices logged into the same account.

Benefits of technology

Data synchronization between multiple devices is realized, which solves the problem of data inconsistency between users and reduces user operation costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119892383A_ABST
    Figure CN119892383A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a data sharing method and device, equipment and a storage medium. The method comprises the steps that a data sharing strategy associated with a target account is acquired at a client device logged in through the target account, and the data sharing strategy describes the type of data to be shared for the target account; receiving a modification performed at the client device for the first data at the client device; and in response to determining that the type of the first data matches the data sharing policy, transmitting the modified first data to a server device associated with the client device to generate second data to be provided to another client device logged in with the target account. In this way, the problem that when a user logs in different electronic devices, data of applications installed on the different electronic devices are inconsistent can be solved, and the operation cost of the user can be reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure relate to the field of computers, and more particularly, to a method, an apparatus, a device, and a computer-readable storage medium for sharing data. Background Art

[0002] With the rapid development of the Internet, more and more applications are designed to provide users with various services. Users can log in to electronic devices through corresponding accounts (such as accounts pre-registered by users). Users can use one account to log in to multiple electronic devices. People expect to solve the problem of inconsistent data on different electronic devices when users log in to different electronic devices. Summary of the invention

[0003] In a first aspect of the present disclosure, a method for sharing data is provided. The method includes: obtaining, at a client device logged in with a target account, a data sharing policy associated with the target account, the data sharing policy describing the type of data to be shared for the target account; receiving a modification of first data at the client device performed at the client device; and in response to determining that the type of the first data matches the data sharing policy, transmitting the modified first data to a server device associated with the client device to generate second data to be provided to another client device logged in with the target account.

[0004] In a second aspect of the present disclosure, a method for sharing user data is provided. The method includes: receiving, at a server device, first data matching a data sharing policy from a client device logged in with a target account, the data sharing policy describing the type of data to be shared for the target account; and generating, based on the received first data, second data to be provided to another client device logged in with the target account.

[0005] In a third aspect of the present disclosure, a device for sharing data is provided. The device includes: a policy acquisition module configured to acquire a data sharing policy associated with a target account at a client device logged in with a target account, the data sharing policy describing the type of data to be shared for the target account; a modification receiving module configured to receive a modification of first data at the client device performed at the client device; and a data transmission module configured to transmit the modified first data to a server device associated with the client device in response to determining that the type of the first data matches the data sharing policy, so as to generate second data to be provided to another client device logged in with the target account.

[0006] In a fourth aspect of the present disclosure, a device for sharing user data is provided. The device includes: a data receiving module configured to receive, at a server device, first data matching a data sharing policy from a client device logged in using a target account, the data sharing policy describing the type of data to be shared for the target account; and a data generating module configured to generate, based on the received first data, second data to be provided to another client device logged in using the target account.

[0007] In a fifth aspect of the present disclosure, an electronic device is provided. The device includes at least one processing unit; and at least one memory, the at least one memory is coupled to the at least one processing unit and stores instructions for execution by the at least one processing unit. When the instructions are executed by the at least one processing unit, the device executes the method of the first aspect or the second aspect.

[0008] In a sixth aspect of the present disclosure, a computer-readable storage medium is provided, wherein a computer program is stored on the computer-readable storage medium, and the computer program can be executed by a processor to implement the method of the first aspect or the second aspect.

[0009] It should be understood that the contents described in this content section are not intended to limit the key features or important features of the embodiments of the present disclosure, nor are they intended to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] The features, advantages and other aspects of the embodiments of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings, in which several embodiments of the present disclosure are illustrated in an exemplary and non-limiting manner. In the accompanying drawings:

[0011] Figure 1 A schematic diagram showing an example environment in which some embodiments of the present disclosure can be implemented;

[0012] Figure 2 A schematic diagram illustrating an example system architecture for sharing user data according to some embodiments of the present disclosure;

[0013] Figure 3 A track diagram showing information flow for sharing user data according to some embodiments of the present disclosure;

[0014] Figure 4 A track diagram showing information flows for sharing user data according to other embodiments of the present disclosure is shown;

[0015] Figure 5 A schematic diagram showing a process of submitting data according to some embodiments of the present disclosure;

[0016] Fig. 6A and Figure 6B A schematic diagram showing a process of pulling data according to some embodiments of the present disclosure;

[0017] Figure 7 A flowchart showing a process for sharing data according to some embodiments of the present disclosure is shown;

[0018] Figure 8 A flowchart showing a process for sharing user data according to some embodiments of the present disclosure;

[0019] Fig. 9 A block diagram showing an apparatus for sharing data according to some embodiments of the present disclosure is shown;

[0020] Fig.10 A block diagram showing an apparatus for sharing user data according to some embodiments of the present disclosure; and

[0021] Fig.11 A block diagram of an electronic device is shown in which one or more embodiments of the present disclosure may be implemented. DETAILED DESCRIPTION

[0022] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although some embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as being limited to the embodiments described herein. On the contrary, these embodiments are provided to provide a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are only for exemplary purposes and are not intended to limit the scope of protection of the present disclosure.

[0023] In the description of the embodiments of the present disclosure, the term "including" and similar terms should be understood as open inclusion, that is, "including but not limited to". The term "based on" should be understood as "based at least in part on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The term "some embodiments" should be understood as "at least some embodiments". Other explicit and implicit definitions may also be included below.

[0024] In this document, unless explicitly stated, executing a step “in response to A” does not mean executing the step immediately after “A” but may include one or more intermediate steps.

[0025] It is understandable that the data involved in this technical solution (including but not limited to the data itself, the acquisition or use of the data) shall comply with the requirements of relevant laws, regulations and relevant provisions.

[0026] It is understandable that before using the technical solutions disclosed in the embodiments of the present disclosure, the types, scope of use, usage scenarios, etc. of the personal information involved in the present disclosure should be informed to the user and the user's authorization should be obtained in an appropriate manner in accordance with relevant laws and regulations.

[0027] For example, in response to receiving an active request from a user, a prompt message is sent to the user to clearly prompt the user that the operation requested to be performed will require obtaining and using the user's personal information, so that the user can independently choose whether to provide personal information to software or hardware such as electronic devices, applications, servers or storage media that execute operations of the technical solution of the present disclosure based on the prompt message.

[0028] As an optional but non-limiting embodiment, in response to receiving an active request from the user, the prompt information is sent to the user in a manner such as a pop-up window, in which the prompt information can be presented in text form. In addition, the pop-up window can also carry a selection control for the user to choose "agree" or "disagree" to provide personal information to the electronic device.

[0029] It is understandable that the above notification and the process of obtaining user authorization are merely illustrative and do not constitute a limitation on the embodiments of the present disclosure. Other methods that meet relevant laws and regulations may also be applied to the embodiments of the present disclosure.

[0030] As briefly mentioned above, a user can log in to an electronic device by logging in to a corresponding account (eg, an account pre-registered by the user). A user can log in to multiple electronic devices using one account.

[0031] Currently, technical solutions have been provided to support users to log in to different devices using the same account. However, the existing technical solutions do not solve the problem of data asynchrony caused by users logging in across devices. It is expected that the data in different devices logged in with the same account are synchronized, that is, it is expected to achieve the following effects. When a user logs in to different devices using the same account, it is expected that the data generated by the user during the use of device A can be synchronized to device B. For example, a user adds a bookmark in the browser of device A, and it is expected that the user can see and open the bookmark when logging in to device B with the same account, and continue to browse the previous content. Data synchronization helps to reduce the operating costs caused by repeated operations when users switch between different devices.

[0032] To this end, an embodiment of the present disclosure proposes a scheme for sharing data. According to various embodiments of the present disclosure, on the client side, a data sharing policy associated with a target account is obtained, and a modification of first data at a client device performed at a client device is received. Here, the sharing policy may indicate which data can be shared. In response to determining that the type of the first data matches the data sharing policy, the modified first data (i.e., local data) is transmitted to a server device associated with the client device so as to generate second data (i.e., remote data) at the server. Correspondingly, on the server side, first data matching the data sharing policy is received, and second data is generated based on the received first data, where the second data can be provided to another client device logged in using the target account.

[0033] In this way, the problem of inconsistent data of applications installed on different electronic devices when users log in to different electronic devices can be solved, which helps to reduce the user's operating costs. Example embodiments of the present disclosure are described below with reference to the accompanying drawings.

[0034] Example Environment

[0035] Figure 1 A schematic diagram of an example environment 100 in which embodiments of the present disclosure can be implemented is shown. In the environment 100, one or more users 110-1, 110-2, 110-3, ..., 110-N can log in to client devices 120-1, 120-2, 120-3, ..., 120-N through their respective accounts. For ease of discussion, users 110-1, 110-2, 110-3, ..., 110-N may be collectively or individually referred to as users 110, and client devices 120-1, 120-2, 120-3, ..., 120-N may be collectively or individually referred to as client devices 120.

[0036] One or more applications 125 may be installed in the client device 120 (i.e., application 125-1 is installed in client device 120-1, application 125-2 is installed in client device 120-2, application 125-3 is installed in client device 120-3, ..., application 125-N is installed in client device 120-N). It should be noted that the applications 125 installed in different client devices 120 may be completely the same applications or different applications (e.g., different versions).

[0037] In some embodiments, user 110 may log in to application 125 by logging in to a target account (e.g., an account registered by user 110 himself). It should be noted that one or more users 110 may log in with a target account at multiple client devices 120, that is, there may be multiple client devices 120 corresponding to the same target account. For example, user 110 may log in with the same target account on client device 120-1 and client device 120-2, or user 110-1 and user 110-2 may log in with the same target account at client device 120-1 and client device 120-2, respectively.

[0038] In some embodiments, different client devices 120 may also communicate with server 130 via network 132 to provide message interaction services. Server 130 may provide management, configuration, and maintenance functions for application 125.

[0039] The client device 120 can be any type of mobile terminal, fixed terminal or portable terminal, including mobile phones, desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, media computers, multimedia tablets, personal communication systems (PCS) devices, personal navigation devices, personal digital assistants (PDAs), audio / video players, digital cameras / camcorders, television receivers, radio broadcast receivers, e-book devices, gaming devices, or any combination of the foregoing, including accessories and peripherals of these devices or any combination thereof. In some embodiments, the client device 120 can also support any type of interface for the user (such as "wearable" circuits, etc.). The server 130 can be various types of computing systems / servers that can provide computing power, including but not limited to mainframes, edge computing nodes, computing devices in cloud environments, and the like.

[0040] It should be understood that the structure and function of each element in the environment 100 are described for exemplary purposes only, and do not imply any limitation on the scope of the present disclosure. Various example implementations of the present disclosure will be described in detail below.

[0041] Example Framework

[0042] Figure 2 Schematic diagram of an example 200 of a system architecture for sharing user data according to some embodiments of the present disclosure. Example 200 may be implemented at a client device 120. Figure 2As shown, the client 210 may be installed with multiple applications such as a browser 211, an input method 212, and a third-party APP 214. The client 210 may also include system settings 213, DXConfig 215, and MDM 216. The browser 211, the input method 212, the third-party APP 214, the system settings 213, DXConfig 215, and MDM 216 may generate data when running. The client 210 may collect this data and build a long link 204 through Http 202, and send this data to the server via the cloud synchronization layer 220 and the support layer 206.

[0043] The cloud synchronization layer 220 can manage the received data, such as managing the data to be synchronized. The cloud synchronization layer 220 can, for example, perform operations such as data synchronization 221, general data synchronization 222 (for example, data synchronization of input method vocabulary), data update push 223, synchronization policy management 224, and submission and pull frequency policy control 225. The server 220 can, for example, perform synchronization policy management 224 based on the synchronization policy pre-set by the user. The synchronization policy can, for example, include whether to enable data synchronization, whether to exclude synchronization of a synchronization item of a certain application, etc., which are pre-set by the user. The architecture 200 can also include a support layer 206. The support layer 206 can, for example, include MySQL, TOS, TCC, Metrics, Redis, etc. The support layer 206 can, for example, be used to provide functional support for the client 210 and the server 220.

[0044] Example Interaction

[0045] Figure 3 FIG. 3 is a diagram showing an information flow 300 for sharing user data according to some embodiments of the present disclosure. The information flow 300 involves a client device 310 (including a client device 310-1 and a client device 310-2) and a server device 320. The client device 310 may correspond to, for example, Figure 1 The client device 120 having the application 125 installed therein, the server device 320 may correspond to Figure 1 A server 130 provides background services for the application 125.

[0046] Both client device 310-1 and client device 310-2 are client devices that log in using the target account. It should be noted that although only two client devices are shown in the figure, in fact, more client devices that can log in using the target account may be included. The present disclosure does not limit the number of client devices, and only two client devices are used as an example for exemplary description. For ease of discussion, reference will be made to Figure 1 The information flow 300 is described with reference to the environment 100 of FIG.

[0047] In information flow 300, client device 310 and server device 320 may both obtain a data sharing policy associated with a target account. The data sharing policy describes the data types to be shared with the target account. That is, the data sharing policy may indicate which data types may be synchronized.

[0048] In some embodiments, the type of data to be shared may include, for example, system data of the client device (that is, data of the system setting type, which may include, for example, data of volume settings, data of shortcut key settings, data of whether to allow personalized settings such as message notifications, etc.), user data of the target account (for example, it may include data of applications that the user has historically installed on the client device), and application data of applications installed on the client device (for example, browser data (such as bookmarks and their locations, website passwords, user preferences, etc.), output method (such as a vocabulary, personalized settings, etc.), and other application data).

[0049] In some embodiments, both the client device 310 and the server device 320 may provide a user interface for setting a data sharing policy, and in response to receiving an interaction with the user interface, set the data sharing policy. Specifically, both the client device 310 and the server device 320 may provide an interface, and based on a user input to the user interface, determine the data sharing policy setting indicated by the user input. For example, the user input may indicate whether to enable the data sharing policy, the type of data that can be shared as indicated by the data sharing policy, etc.

[0050] Exemplarily, if the user input indicates that data of a first data type (e.g., volume) is not to be shared but data of a second type (e.g., bookmarks) can be shared, the client device 310 and the server device 320 can determine a corresponding data sharing policy based on the user input, thereby indicating that data of the first data type is not to be shared but data of the second type can be shared. For example, the priority of the user's setting of the data sharing policy is higher than the priority of the setting of the default data sharing policy. Thus, the client device 310 and the server device 320 perform data synchronization based on the data sharing policy, which can avoid leaking the privacy data of the device / user and help ensure the security of data synchronization.

[0051] The client device 310-1 receives (301) a modification of first data locally performed. The first data locally performed here refers to data in the client device 310-1, and the modification of the first data locally performed is the modification of the data in the client device 310-1 performed on the client device 310-1. Exemplarily, the modification of the first data locally performed can be, for example, a modification of the volume of the client device 310-1 performed on the client device 310-1.

[0052] The client device 310-1 may, for example, determine that a modification operation on data is received in response to receiving a trigger operation on a corresponding control, and determine the modified data based on the modification operation. For example, the client device 310-1 may determine that a volume increase operation is received in response to detecting a trigger operation on a volume increase control, and turn up the volume based on the increase operation.

[0053] In response to determining that the type of the first data matches the data sharing policy (that is, the data sharing policy includes volume), the client device 310-1 transmits (302) the modified first data to the server device 320 associated with the client device. The server device 320 receives the first data that matches the data sharing policy from the client device 310-1. That is, the data transmitted between the client device 310-1 and the server device 320 is the data that matches the data sharing policy. Exemplarily, if the first data is volume data, the first data before modification can indicate that the volume is 10, for example, the client device 310-1 determines that the modified first data indicates that the volume is 20 based on the user modification, and the client device 310-1 transmits the modified first data indicating the volume is 20 to the server device 320.

[0054] In some embodiments, the client device 310-1 needs to determine the activation status of the data sharing policy before transmitting the modified first data. The client device 310-1 transmits the modified first data to the server device 320 only when it is determined that the data sharing policy is enabled. That is, if it is determined that the data sharing policy is enabled, the client device 310-1 transmits the modified first data to the server device 320. If it is determined that the data sharing policy is not enabled, the client device 310-1 does not transmit the modified first data to the server device 320.

[0055] Accordingly, in some embodiments, before receiving the modified first data transmitted by the client device 310-1, the server device 320 also needs to determine the enabled state of the data sharing policy. The server device 320 receives the modified first data only when it is determined that the data sharing policy is enabled. That is, if it is determined that the data sharing policy is enabled, the server device 320 receives the modified first data. If it is determined that the data sharing policy is not enabled, the server device 320 does not receive the modified first data. Only when both the client device 310-1 and the server device 320 determine that the data sharing policy is enabled, the modified first data can be successfully transmitted by the client device 310-1 to the server device 320 to achieve data sharing. Thus, the modified first data can be synchronized only between devices that enable the data sharing policy. If the user does not want a certain device to participate in data synchronization, the data sharing policy of the device can be turned off, which can improve the flexibility of data synchronization.

[0056] In some embodiments, if the server device 320 determines that the received first data does not match the data sharing policy, an alarm message may also be provided to the client device 310-1 that provided the first data. The alarm message may, for example, indicate that the first data does not match the data sharing policy. The client device 310-1 may, for example, present the alarm message received from the server device 320 to prompt the user.

[0057] In some embodiments, if the modified first data includes multiple data items, the client device 310-1 may further divide the multiple data items into multiple batches according to a predetermined batch size, and transmit the multiple data items to the server device 320 in the multiple batches. The predetermined batch size may be associated with the computing power or data processing power of the server device 320, for example. Exemplarily, if the modified first data includes 100 data items, and the server device 320 can only process 10 data items at a time, the client device 310-1 may divide the 100 data items into 10 batches, each batch including 10 data items. That is, the client device 310-1 divides the 100 data items into ten groups, and transmits one group of data items to the server device 320 each time, and each group of data items includes 10 data items.

[0058] Accordingly, in some embodiments, if a predetermined batch size is received from the client device 310-1, the server device 320 may receive multiple data items included in the first data according to the predetermined batch size. Exemplarily, the server device 320 may, for example, pre-acquire the predetermined batch size corresponding to the client device 310-1. The server device 320 may then receive multiple data items based on the predetermined batch size. For example, if the predetermined batch size indicates that each batch includes a maximum of 10 data items, the server device 320 may receive multiple data items with a maximum number of 10 each time. Thus, both the client device 310 and the server device 320 may transmit and process data based on the predetermined batch size, and may avoid abnormal situations caused by transmitting a large amount of data at one time.

[0059] The server device 320 generates (303) second data to be provided to the client device 310-2 based on the received first data. Still taking the volume data as an example, the modified first data indicates that the volume is 20, and the server device 320 can generate the second data based on the received, modified first data. The second data is data of the same data type as the first data. For example, the second data can be volume data, which indicates that the volume is 20.

[0060] After the server device 320 processes the received first data to generate the second data, it may also transmit (304) the processing result of the received first data to the client device 310-1. In some embodiments, the processing result may indicate the following situations: a failure occurs during the processing of the received first data at the server device 320 (e.g., a storage failure, etc.), the received first data has been successfully processed at the server device 320, and there is a conflict between the received first data and the second data at the server device 320 (e.g., the second data has been previously created based on the received, modified first data), etc.

[0061] It should be noted that, in the case of a conflict, the server device 320 can be connected to multiple client devices 310 at the same time, that is, it can receive data to be synchronized sent by multiple client devices 310. Exemplarily, the previous volume of the client device 310-1 and the client device 310-2 is 10 (that is, the same version of volume data), and the client device 310-1 sends the first data indicating that the volume is 20. At the same time or before the server device 320 sends the second data corresponding to the first data to other client devices, the server device 320 receives the first data indicating that the volume is 15 sent from the client device 310-2. In this case, the server device 320 determines that the two first data are modified first data for the version of volume 10. The server device 320 can determine that there is a conflict between the first data sent by the client device 310-1 and the client device 310-2. For example, the server device 320 can send a processing result indicating the conflict to the client device 310-2 that will send the first data later.

[0062] The client device 310-1 may receive (304) a processing result for the modified first data from the server device 320. If it is determined that the processing result indicates that a failure occurred during the processing of the modified first data at the server device 320, the client device 310-1 may also retransmit the modified first data to the server device 320. If it is determined that the processing result indicates that the modified first data has been successfully processed at the server device 320, the client device 310-1 may update the status data of the modified first data. The status data may include, for example, but is not limited to, a version number of the first data, an update time, which client device it is from, and the like.

[0063] If it is determined that the processing result indicates that there is a conflict between the modified first data and the second data at the server device 320, the client device 310-1 can update (305) the status data of the modified first data based on a predetermined conflict strategy. The predetermined conflict strategy can also be a default strategy or a strategy preset by the user. The predetermined conflict strategy can, for example, indicate which data has a higher priority when there is a conflict. For example, if the predetermined conflict strategy indicates that the second data has a higher priority when there is a conflict, the client device 310-1 can adjust the status data corresponding to the local modified first data to be the same as the status data corresponding to the second data based on the predetermined conflict strategy. As a result, the client device 310 that transmits the modified first data can determine whether it is necessary to process the first data (e.g., update the status, re-upload, etc.) and what processing operation to perform based on the received processing result, which helps to improve the quality of data synchronization performed by the client device 310.

[0064] In some embodiments, if it is detected that the target account is used to log in to the client device 310-2, the server device 320 may also transmit (306) a push message to the client device 310-2 to indicate that the second data at the server device 320 is updated. In some embodiments, the server device 320 may transmit the push message to the client device 310-2 only when the data sharing policy of the client device 310-2 is also enabled. In some embodiments, the server device 320 may transmit the push message to the client device 310-2 regardless of whether the data sharing policy of the client device 310-2 is enabled, but the server device 320 may transmit the second data to the client device 310-2 only when the data sharing policy of the client device 310-2 is enabled. In some embodiments, for example, in remote management mode, the server device 320 may always send a push message to the client device and transmit the second data regardless of the settings at the client device.

[0065] In some embodiments, after receiving the push message, the client device 310-2 may send (307) a data pull request to the server device 320. The data pull request may include, for example, a first version number of the local first data, a predetermined batch size for receiving the second data, and the like.

[0066] After the server device 320 obtains the data pull request, the second data can be transmitted (308) to the client device 310-2 based on the first version number of the first data in the data pull request, the predetermined batch size for receiving the second data, etc. The second data is the second data generated based on the modified first data transmitted by the client device 310-1. Specifically, if it is determined that the first version number is lower than the second version number of the second data at the server device 320, the server device 320 can determine that the second data is to be transmitted to the client device 310-2. The version number can be associated with the modification time, that is, the closer the modification time is to the current time, the larger the corresponding version number should be, which can also be understood as the newer the data with the larger version number. Alternatively and / or additionally, the version number can be determined in an incremental manner. If the first version number is less than the second version number, it can be determined that the first data is older data and the second data is newer data, and the server device 320 can determine that the older data needs to be updated to the newer data. If a predetermined batch size corresponding to the client device 310 - 2 for receiving the second data is received, the server device 320 may transmit the second data to the client device 310 - 2 according to the predetermined batch size.

[0067] After receiving the second data, the client device 310-2 may update (309) the local first data based on the second data. For example, after receiving the second data indicating that the volume is 20, the client device 310-2 may update the local first data so that the updated local first data also indicates that the volume is 20.

[0068] In this way, data synchronization between multiple devices can be achieved, that is, after the user modifies the data at the client device 310 - 1, multiple client devices 310 and the server device 320 can share the modified data at multiple client devices 310 based on the interaction shown in the information flow 300 .

[0069] Figure 3 An example of client device 310-1 modifying data is shown below. Figure 4 An example in which other client devices (eg, client device 310 - 2 ) modify data is described. Figure 4 A track diagram of an information flow 400 for sharing user data according to some other embodiments of the present disclosure is shown.

[0070] In the information flow 400, the parts indicated by arrows 301 to 309 are Figure 3 Further, the client device 310-2 may receive (401) a modification of the first data in the local area that is performed locally. The first data in the local area here refers to the data in the client device 310-2, and the modification of the first data in the local area that is performed locally is the modification of the data in the client device 310-2 that is performed on the client device 310-2.

[0071] In response to determining that the type of the first data matches the data sharing policy, the client device 310-2 transmits (402) the modified first data to the associated server device 320. The server device 320 updates (403) the second data based on the received first data. The second data before the update may indicate, for example, that the volume is 20, and the second data after the update may indicate, for example, that the volume is 30.

[0072] The client device 310-1 may receive (404) a processing result for the modified first data from the server device 320. Similarly, if it is determined that the processing result indicates that a failure occurred during the processing of the modified first data at the server device 320, the client device 310-2 may also retransmit the modified first data to the server device 320. If it is determined that the processing result indicates that the modified first data has been successfully processed at the server device 320, the client device 310-3 may update the status data of the modified first data. If it is determined that the processing result indicates that there is a conflict between the modified first data and the second data at the server device 320, the client device 310-2 may update (405) the status data of the modified first data based on a predetermined conflict strategy.

[0073] In some embodiments, the server device 320 may also transmit (406) a push message to the client device 310-1 to indicate that the second data at the server device 320 is updated. In some embodiments, after receiving the push message indicating that the second data is updated, the client device 310-1 may send (407) a data pull request to the server device 320. The data pull request may include, for example, a first version number of the local data, a predetermined batch size for receiving data, etc. In some embodiments, if it is determined that the push message indicates that the second data corresponding to the first data is deleted at the server device 320, the client device 310-1 may delete the local first data.

[0074] After receiving the data pull request, the server device 320 may transmit (408) the updated second data to the client device 310-1 based on the first version number of the local data in the data pull request, the predetermined batch size for receiving the data, etc. If it is determined that the first version number is lower than the second version number of the second data at the server device 320, the server device 320 may determine to transmit the second data to the client device 310-2. If the predetermined batch size for receiving the second data corresponding to the client device 310-2 is received, the server device 320 may transmit the second data to the client device 310-2 according to the predetermined batch size.

[0075] After receiving the second data, the client device 310-1 may update (409) the local first data based on the second data. Specifically, if it is determined that the client device 310-1 has the first data corresponding to the second data, the client device 310-1 may update the first data using the updated second data, and determine the first version number of the first data using the second version number of the updated second data. Exemplarily, the client device 310-1 may update the local first data based on the second data indicating that the volume is 30 so that the local first data also indicates that the volume is 30. The first version number of the updated first data may, for example, be the same as the second version number of the updated second data. Thus, the modification of the first data may be performed based on the comparison between the local first data and the received second data, and data sharing may be achieved conveniently and quickly.

[0076] There may be a situation where the client device 310-1 does not include the first data corresponding to the second data in the server device 320 (for example, the user creates a bookmark at the client device 310-2. In this case, the second data in the server device 320 indicates the creation of a bookmark, and the client device 310-1 does not include the first data corresponding to the creation of the bookmark). In some embodiments, if it is determined that the first data corresponding to the updated second data does not exist at the client device 310-1, the client device 310-1 can create the first data corresponding to the updated second data, and use the second version number of the updated second data to determine the first version number of the first data. Exemplarily, still taking the creation of a bookmark as an example, the client device 310-1 can create a bookmark based on the second data indicating the creation of a bookmark to obtain the first data for creating the bookmark. The first version number of the first data can be the same as the second version number of the second data. Thus, in the case where the first data does not exist locally, the first data can be created based on the received second data to synchronize its own data with the data of other electronic devices.

[0077] Figure 5 FIG. 5 is a schematic diagram showing a process 500 for submitting data according to some embodiments of the present disclosure. Figure 5 As shown, in box 510, the client device 310 can determine whether there is "unsynchronized" data locally, that is, it can determine whether there is data that meets the data type indicated by the data sharing policy and has not yet performed data synchronization.

[0078] At block 520 , the client device 310 uploads the unsynchronized data to the server device 320 . That is, the client device 310 transmits the modified data to the server device 320 .

[0079] At block 530 , server device 320 performs data pre-processing operations on the received data.

[0080] Specifically, in block 532, the server device 320 verifies whether the data is data matching the data sharing policy. The server device 320 performs subsequent data processing operations only if the received data matches the data sharing policy.

[0081] In box 534, if it is determined that the multiple data items include a first data item and a second data item having a parent-child relationship (for example, a directory of bookmarks and bookmarks), the server device 320 can adjust the positional relationship between the first data item and the second data item so that the positional relationship of the data item corresponding to the father is advanced, that is, the server device 320 will advance the parent data item among the multiple data items.

[0082] In block 536, after obtaining the predetermined batch size, the server device 320 will also verify the received multiple data items based on the predetermined batch size. If it is found that the received multiple data items are greater than the maximum number of data items corresponding to each batch indicated by the predetermined batch size, the server device 320 will divide the multiple data items. The server device 320 intercepts the multiple data items that meet the predetermined batch size indication in the order in which the multiple data items are received, and waits for the processing of these data items before processing the remaining intercepted data items.

[0083] For example, if the predetermined batch size indicates that the maximum number of data items in each batch is 10, and the server device 320 receives 22 data items in this batch, the server device 320 can divide the 22 data items based on the predetermined batch size, for example, it can be divided into three groups of data items such as 10, 10, and 2. In some embodiments, the server device 320 can divide and obtain any number of groups of data items that meet the predetermined batch size, for example, it can also be divided into three groups of data items such as 7, 7, and 8. The server device 320 then processes one group of data items each time, waits until one group of data items is processed, and then processes the next group of data items obtained by the division.

[0084] In block 538, if it is determined that the plurality of data items include a first data item and a second data item having a parent-child relationship, the server device 320 may also supplement the parent node ID (SeverParentID) corresponding to each data item, and the SeverParentID may at least indicate the parent data item corresponding to each data item. For example, a parent data item may include a plurality of child data items, and the SeverParentID corresponding to each child data item may indicate which parent data item the child data item corresponds to.

[0085] At block 540 , server device 320 may process each data item to be processed in turn.

[0086] Specifically, in box 542, for each data item to be processed, the server device 320 can generate / update its corresponding second data and the corresponding second version number (ie, the latest version number ServerLatestVersion at the server), and record the relevant information of each second data.

[0087] In block 544 , the server device 320 may record the processing result of each piece of data (eg, may include success or failure, and if failure, may also include the reason for failure, etc.).

[0088] In box 550, it is determined that the multiple data items include a first data item and a second data item having a parent-child relationship. The server device 320 can reorder the multiple data items according to the original position relationship between the first data item and the second data item (for example, the request order) (that is, when the pre-operation is performed at box 534), and transmit the processing results corresponding to the multiple data items to the client device 310.

[0089] At block 560 , the client device 310 may process the received processing result to determine whether the processing by the server device 320 is successful (ie, whether data corresponding to the uploaded data is generated / created).

[0090] At block 570 , if the processing result indicates that there is a conflict between the data generated at the server device 320 and the uploaded data, the client device 310 may handle the conflict based on a predetermined conflict policy.

[0091] In block 580 , the client device 310 updates the version number and status of the local data. Further, after the client device 310 has updated the data, it can continue to send the next batch of data that has not been sent before to the server device 320 .

[0092] At block 590 , if the processing result indicates that the processing has failed, the client device 310 may re-execute the above process to re-transmit the unsynchronized data to the server device 320 .

[0093] In the following, see Fig. 6A and Figure 6B Describes more details about pulling data, Fig. 6A and Figure 6B Schematic diagrams of a process 600A and a process 600B for pulling data according to some embodiments of the present disclosure are shown.

[0094] like Fig. 6A As shown, in box 610 , the client device 310 uploads the first version number (ie, FetchedLatestVersion) of the local data and a predetermined batch size (ie, batchSize) to the server device 320 .

[0095] At block 620 , the server device 320 determines whether the received first version number is the latest first version number.

[0096] In block 630 , if the second data has been previously created, the server device 320 may filter the data according to the first version number, for example, by selecting the second data corresponding to a second version number greater than the first version number.

[0097] In block 640 , if the second data has not been created previously, the server device 320 may search for the latest version (ie, the version with the largest corresponding number) according to the identifier of the synchronization item (eg, the synchronization item ID), and use the version number of the latest version as the second version number (eg, FetchResponseVersion).

[0098] At block 650, the client device 310 makes a determination on the received data. Figure 6B Describe in more detail.

[0099] Specifically, in block 651, the client device 310 may determine whether the state of the data record of each piece of data is a deleted state. The deleted state is a special state. For example, in a browser, if the first data in the client device 310 indicates that a bookmark is deleted, the data corresponding to the bookmark is in a deleted state.

[0100] In block 652, if the state is deleted, the client device 310 deletes the corresponding data record. For example, the client device 310 deletes the corresponding bookmark in the local browser based on the deletion state.

[0101] In block 653, if the state is not deleted, the client device 310 determines whether there is a local record, that is, the client device 310 determines whether the local includes the corresponding first data.

[0102] In block 654 , if no local record exists, the client device 310 creates new first data based on the second version number in the received processing result.

[0103] In block 655 , if a local record exists, the client device 310 updates the first data based on the second version number in the received processing result.

[0104] At block 656, after updating the data, the client device 310 determines whether the local data record has been modified.

[0105] At block 657, the client device 310 handles the data conflict if there is a modification.

[0106] In block 658 , the client device 310 updates the obtained second version number locally, and updates the first version number based on the second version number.

[0107] return Fig. 6A In box 660, the client device 310 determines whether the pulling is complete, that is, the client device 310 determines whether all the second data have been obtained. If not, the above steps are continued to obtain the second data.

[0108] In summary, according to the embodiments of the present disclosure, the problem of inconsistent data of applications installed on different electronic devices when a user logs in to different electronic devices can be solved, which helps to reduce the user's operating costs.

[0109] Example Process

[0110] Figure 7 FIG. 7 is a flowchart of a process 700 for sharing data according to some embodiments of the present disclosure. The process 700 may be implemented at the client device 120. Figure 1 Process 700 is described.

[0111] At block 710 , at a client device logged in with a target account, a data sharing policy associated with the target account is obtained, the data sharing policy describing the type of data to be shared with the target account.

[0112] At block 720 , a modification performed at a client device to first data at the client device is received.

[0113] At block 730 , in response to determining that the type of the first data matches the data sharing policy, the modified first data is transmitted to a server device associated with the client device to generate second data to be provided to another client device logged in with the target account.

[0114] In some embodiments, the data type includes at least any of: system data of the client device, user data of the target account, and application data of an application installed at the client device.

[0115] In some embodiments, process 700 further includes: providing a user interface for setting a data sharing policy; and setting the data sharing policy in response to receiving an interaction with the user interface.

[0116] In some embodiments, transmitting the modified first data includes: in response to determining that the data sharing policy is enabled, transmitting the modified first data.

[0117] In some embodiments, transmitting the modified first data includes: in response to determining that the modified first data includes multiple data items, dividing the multiple data items into multiple batches according to a predetermined batch size; and transmitting the multiple data items in the multiple batches to the server device respectively.

[0118] In some embodiments, process 700 further includes: receiving a processing result for the modified first data from the server device; and in response to determining that the processing result indicates a failure during processing of the modified first data at the server device, retransmitting the modified first data to the server device.

[0119] In some embodiments, process 700 further includes at least any of the following: in response to determining that the processing result indicates that the modified first data has been successfully processed at the server device, updating the status data of the modified first data at the client device; and in response to determining that the processing result indicates that there is a conflict between the modified first data and the second data at the server device, updating the status data of the modified first data at the client device based on a predetermined conflict strategy.

[0120] In some embodiments, process 700 further includes: in response to receiving a push message from the server device indicating that the second data at the server device is updated, receiving the updated second data from the server device; and updating the first data using the updated second data.

[0121] In some embodiments, receiving the updated second data includes: transmitting a first version number of the first data at the client device to the server device; and receiving the updated second data from the server device, wherein the second version number of the updated second data is higher than the first version number.

[0122] In some embodiments, process 700 further includes: transmitting to the server device a predetermined batch size for receiving the updated second data; and receiving the updated second data further includes: receiving the updated second data from the server device according to the predetermined batch size.

[0123] In some embodiments, updating the first data includes: in response to determining that the first data corresponding to the updated second data does not exist at the client device, creating the first data corresponding to the updated second data at the client device; and determining the first version number of the first data using the second version number of the updated second data.

[0124] In some embodiments, updating the first data includes: in response to determining that first data corresponding to second data exists at the client device, updating the first data with the updated second data; and determining the first version number of the first data with the second version number of the updated second data.

[0125] In some embodiments, process 700 further includes deleting the first data from the client device in response to determining that the push message indicates that second data corresponding to the first data is deleted at the server device.

[0126] Figure 8 FIG. 8 is a flowchart of a process 800 for sharing user data according to some embodiments of the present disclosure. The process 800 may be implemented at the server 130. Figure 1 Process 800 is described.

[0127] At block 810 , at a server device, first data matching a data sharing policy is received from a client device logged in with a target account, the data sharing policy describing a type of data to be shared with respect to the target account.

[0128] At block 820 , second data is generated based on the received first data to be provided to another client device logged in with the target account.

[0129] In some embodiments, the data type includes at least any one of the following: system data of the client device, user data of the target account, application data of an application installed at the client device.

[0130] In some embodiments, process 800 further includes: providing a user interface for setting a data sharing policy; and setting the data sharing policy in response to receiving an interaction with the user interface.

[0131] In some embodiments, receiving the first data includes: receiving the first data in response to determining that the data sharing policy is enabled.

[0132] In some embodiments, process 800 further includes providing an alert message to the client device in response to determining that the received first data does not match the data sharing policy.

[0133] In some embodiments, receiving the first data includes: in response to receiving a predetermined batch size from the client device, receiving a plurality of data items included in the first data according to the predetermined batch size.

[0134] In some embodiments, process 800 further includes: transmitting a processing result for the received first data to the client device, the processing result indicating at least any one of the following: a failure occurred during processing of the received first data at the server device; the received first data has been successfully processed at the server device; and a conflict exists between the received first data and the second data at the server device.

[0135] In some embodiments, generating the second data includes: in response to determining that the plurality of data items include the first data item and the second data item having a parent-child relationship, adjusting the positional relationship between the first data item and the second data item.

[0136] In some embodiments, transmitting the processing results further includes: transmitting the processing results corresponding to the multiple data items according to the original position relationship between the first data item and the second data item.

[0137] In some embodiments, process 800 further includes: in response to detecting that the target account is logged into another client device, transmitting a push message to the other client device to indicate that the second data at the server device is updated.

[0138] In some embodiments, process 800 further includes: receiving a first version number of the first data at another client device; and in response to determining that the first version number is lower than a second version number of the second data at the server device, transmitting the second data to the other client device.

[0139] In some embodiments, transmitting the second data to the other client device includes: in response to receiving a predetermined batch size for receiving the second data from the other client device, transmitting the second data according to the predetermined batch size.

[0140] Example devices and equipment

[0141] The embodiments of the present disclosure also provide corresponding devices for implementing the above methods or processes.

[0142] Fig. 9 A schematic structural block diagram of an apparatus 900 for sharing data according to some embodiments of the present disclosure is shown. The apparatus 900 may be implemented as or included in a client device 120. Each module / component in the apparatus 900 may be implemented by hardware, software, firmware, or any combination thereof.

[0143] like Fig. 9 As shown, the apparatus 900 includes a policy acquisition module 910, which is configured to acquire a data sharing policy associated with a target account at a client device logged in with a target account, wherein the data sharing policy describes the type of data to be shared with the target account. The apparatus 900 also includes a modification receiving module 920, which is configured to receive a modification of the first data at the client device performed at the client device. The apparatus 900 also includes a data transmission module 930, which is configured to transmit the modified first data to a server device associated with the client device in response to determining that the type of the first data matches the data sharing policy, so as to generate second data to be provided to another client device logged in with the target account.

[0144] In some embodiments, the data type includes at least any of: system data of the client device, user data of the target account, and application data of an application installed at the client device.

[0145] In some embodiments, the apparatus 900 further comprises: a first interface providing module configured to provide a user interface for setting a data sharing policy; and a first policy setting module configured to set a data sharing policy in response to receiving an interaction with the user interface.

[0146] In some embodiments, the data transmission module 930 is further configured to: in response to determining that the data sharing policy is enabled, transmit the modified first data.

[0147] In some embodiments, the data transmission module 930 includes: a batch division module, configured to divide the multiple data items into multiple batches according to a predetermined batch size in response to determining that the modified first data includes multiple data items; and a data item transmission module, configured to transmit the multiple data items to the server device in the multiple batches respectively.

[0148] In some embodiments, the apparatus 900 further includes: a processing result receiving module configured to receive a processing result for the modified first data from a server device; and a retransmission module configured to retransmit the modified first data to the server device in response to determining that the processing result indicates a failure during processing of the modified first data at the server device.

[0149] In some embodiments, the device 900 further includes at least any of the following: a status data update module, configured to update the status data of the modified first data at the client device in response to determining that the processing result indicates that the modified first data has been successfully processed at the server device; and an update modification module, configured to update the status data of the modified first data at the client device based on a predetermined conflict strategy in response to determining that the processing result indicates that there is a conflict between the modified first data and the second data at the server device.

[0150] In some embodiments, the device 900 further includes: a second data receiving module, configured to receive updated second data from the server device in response to receiving a push message from the server device indicating that the second data at the server device is updated; and a first data updating module, configured to update the first data using the updated second data.

[0151] In some embodiments, the second data receiving module includes: a first version number transmission module, configured to transmit the first version number of the first data at the client device to the server device; and a receiving module, configured to receive updated second data from the server device, the second version number of the updated second data being higher than the first version number.

[0152] In some embodiments, the apparatus 900 further comprises: a batch size transmission module configured to transmit a predetermined batch size for receiving updated second data to the server device; and the second data receiving module is further configured to: receive updated second data from the server device according to the predetermined batch size.

[0153] In some embodiments, the first data update module includes: a creation module, configured to create first data corresponding to the updated second data at the client device in response to determining that the first data corresponding to the updated second data does not exist at the client device; and a first update module, configured to determine the first version number of the first data using the second version number of the updated second data.

[0154] In some embodiments, the first data update module includes: a second update module, configured to update the first data using the updated second data in response to determining that first data corresponding to the second data exists at the client device; and a first version number determination module, configured to determine the first version number of the first data using the second version number of the updated second data.

[0155] In some embodiments, the apparatus 900 further comprises: a first data deletion module configured to delete the first data from the client device in response to determining that the push message indicates that second data corresponding to the first data is deleted at the server device.

[0156] Fig.10 A schematic structural block diagram of an apparatus 1000 for sharing user data according to some embodiments of the present disclosure is shown. The apparatus 1000 may be implemented as or included in the server 130. Each module / component in the apparatus 1000 may be implemented by hardware, software, firmware, or any combination thereof.

[0157] like Fig.10 As shown, the apparatus 1000 includes a data receiving module 1010, which is configured to receive, at a server device, first data matching a data sharing policy from a client device logged in with a target account, the data sharing policy describing the type of data to be shared for the target account. The apparatus 1000 includes a data generating module 1020, which is configured to generate second data to be provided to another client device logged in with the target account based on the received first data.

[0158] In some embodiments, the data type includes at least any one of the following: system data of the client device, user data of the target account, application data of an application installed at the client device.

[0159] In some embodiments, the apparatus 1000 further comprises: a second interface providing module configured to provide a user interface for setting a data sharing policy; and a second policy setting module configured to set a data sharing policy in response to receiving an interaction with the user interface.

[0160] In some embodiments, the data receiving module 1010 is further configured to: in response to determining that the data sharing policy is enabled, receive first data.

[0161] In some embodiments, the apparatus 1000 further comprises: an alarm information providing module configured to provide an alarm message to the client device in response to determining that the received first data does not match the data sharing policy.

[0162] In some embodiments, the data receiving module 1010 includes: a data item receiving module configured to receive a plurality of data items included in the first data according to the predetermined batch size in response to receiving a predetermined batch size from a client device.

[0163] In some embodiments, the apparatus 1000 further includes: a processing result transmission module, configured to transmit a processing result for the received first data to a client device, the processing result indicating at least any one of the following: a failure occurred during processing of the received first data at the server device; the received first data has been successfully processed at the server device; and a conflict exists between the received first data and the second data at the server device.

[0164] In some embodiments, the data generation module 1020 includes: a position relationship adjustment module configured to adjust the position relationship between the first data item and the second data item in response to determining that the plurality of data items include a first data item and a second data item having a parent-child relationship.

[0165] In some embodiments, the processing result transmission module is further configured to: transmit processing results corresponding to multiple data items according to the original position relationship between the first data item and the second data item.

[0166] In some embodiments, the apparatus 1000 further includes: a push message transmission module configured to transmit a push message to another client device in response to detecting that the target account is logged into another client device to indicate that the second data at the server device is updated.

[0167] In some embodiments, the apparatus 1000 further includes: a first version number receiving module configured to receive a first version number of first data at another client device; and a second data transmission module configured to transmit second data to another client device in response to determining that the first version number is lower than a second version number of second data at the server device.

[0168] In some embodiments, the second data transmission module is further configured to: in response to receiving a predetermined batch size for receiving the second data from another client device, transmit the second data according to the predetermined batch size.

[0169] The units and / or modules included in the device 900 and / or the device 1000 can be implemented in various ways, including software, hardware, firmware or any combination thereof. In some embodiments, one or more units and / or modules can be implemented using software and / or firmware, such as machine executable instructions stored on a storage medium. In addition to or as an alternative to machine executable instructions, some or all of the units and / or modules in the device 900 and / or the device 1000 can be implemented at least in part by one or more hardware logic components. As an example and not limitation, exemplary types of hardware logic components that can be used include field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), and the like.

[0170] Fig.11 1 shows a block diagram of an electronic device 1100 in which one or more embodiments of the present disclosure may be implemented. It should be understood that Fig.11 The electronic device 1100 shown is merely exemplary and should not constitute any limitation on the functionality and scope of the embodiments described herein. Fig.11 The electronic device 1100 shown can be used to implement Figure 1 The client device 120 and / or server 130.

[0171] like Fig.11 As shown, the electronic device 1100 is in the form of a general-purpose computing device. The components of the electronic device 1100 may include, but are not limited to, one or more processors or processing units 1110, a memory 1120, a storage device 1130, one or more communication units 1140, one or more input devices 1150, and one or more output devices 1160. The processing unit 1110 may be an actual or virtual processor and is capable of performing various processes according to a program stored in the memory 1120. In a multi-processor system, multiple processing units execute computer executable instructions in parallel to improve the parallel processing capability of the electronic device 1100.

[0172] The electronic device 1100 typically includes a plurality of computer storage media. Such media may be any available media accessible to the electronic device 1100, including but not limited to volatile and non-volatile media, removable and non-removable media. The memory 1120 may be a volatile memory (e.g., a register, a cache, a random access memory (RAM)), a non-volatile memory (e.g., a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), flash memory), or some combination thereof. The storage device 1130 may be a removable or non-removable medium, and may include a machine-readable medium, such as a flash drive, a disk, or any other medium, which may be capable of being used to store information and / or data and may be accessed within the electronic device 1100.

[0173] The electronic device 1100 may further include additional removable / non-removable, volatile / non-volatile storage media. Fig.11 As shown in , a disk drive for reading or writing from a removable, non-volatile disk (e.g., a "floppy disk") and an optical drive for reading or writing from a removable, non-volatile optical disk may be provided. In these cases, each drive may be connected to the bus (not shown) by one or more data media interfaces. Memory 1120 may include a computer program product 1125 having one or more program modules that are configured to perform various methods or actions of various embodiments of the present disclosure.

[0174] The communication unit 1140 implements communication with other computing devices through a communication medium. Additionally, the functions of the components of the electronic device 1100 can be implemented in a single computing cluster or multiple computing machines that can communicate through a communication connection. Therefore, the electronic device 1100 can operate in a networked environment using a logical connection with one or more other servers, a network personal computer (PC), or another network node.

[0175] The input device 1150 may be one or more input devices, such as a mouse, a keyboard, a tracking ball, etc. The output device 1160 may be one or more output devices, such as a display, a speaker, a printer, etc. The electronic device 1100 may also communicate with one or more external devices (not shown) through the communication unit 1140 as needed, such as a storage device, a display device, etc., communicate with one or more devices that allow a user to interact with the electronic device 1100, or communicate with any device that allows the electronic device 1100 to communicate with one or more other computing devices (e.g., a network card, a modem, etc.). Such communication may be performed via an input / output (I / O) interface (not shown).

[0176] According to an embodiment of the present disclosure, a computer-readable storage medium is provided, on which computer-executable instructions are stored, wherein the computer-executable instructions are executed by a processor to implement the method described above. According to an embodiment of the present disclosure, a computer program product is also provided, which is tangibly stored on a non-transitory computer-readable medium and includes computer-executable instructions, and the computer-executable instructions are executed by a processor to implement the method described above.

[0177] Various aspects of the present disclosure are described herein with reference to the flowcharts and / or block diagrams of the methods, devices (systems) and computer program products implemented according to the present disclosure. It should be understood that each box in the flowchart and / or block diagram and the combination of each box in the flowchart and / or block diagram can be implemented by computer-readable program instructions.

[0178] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processing unit of the computer or other programmable data processing device, a device that implements the functions / actions specified in one or more boxes in the flowchart and / or block diagram is generated. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable medium storing the instructions includes a manufactured product, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes in the flowchart and / or block diagram.

[0179] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operating steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.

[0180] The flow chart and block diagram in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to multiple implementations of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and a part of a module, program segment or instruction includes one or more executable instructions for realizing the logical function of the specification. In some implementations as replacements, the function marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous square boxes can actually be executed substantially in parallel, and they can sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be realized by a special hardware-based system that performs the function or action of the specification, or can be realized by a combination of special hardware and computer instructions.

[0181] The above descriptions of various implementations of the present disclosure are exemplary, non-exhaustive, and not limited to the disclosed implementations. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described implementations. The selection of terms used herein is intended to best explain the principles of the implementations, practical applications, or improvements to the technology in the marketplace, or to enable other persons of ordinary skill in the art to understand the implementations disclosed herein.

Claims

1. A method for sharing data, comprising: At a client device logged in with a target account, obtaining a data sharing policy associated with the target account, the data sharing policy describing the type of data to be shared with the target account; receiving a modification performed at the client device to first data at the client device; as well as In response to determining that the type of the first data matches the data sharing policy, the modified first data is transmitted to a server device associated with the client device to generate second data to be provided to another client device logged in with the target account. 2 . The method according to claim 1 , wherein the data type comprises at least any one of the following: system data of the client device, user data of the target account, and application data of an application installed at the client device.

3. The method according to claim 1, further comprising: Providing a user interface for setting the data sharing policy; as well as In response to receiving an interaction with the user interface, the data sharing policy is set.

4. The method of claim 1 , wherein transmitting the modified first data comprises: In response to determining that the data sharing policy is enabled, the modified first data is transmitted.

5. The method of claim 1 , wherein transmitting the modified first data comprises: In response to determining that the modified first data includes a plurality of data items, dividing the plurality of data items into a plurality of batches according to a predetermined batch size; as well as The plurality of data items are transmitted to the server device respectively in the plurality of batches.

6. The method according to claim 1, further comprising: receiving a processing result of the modified first data from the server device; as well as In response to determining that the processing result indicates a failure occurred during processing of the modified first data at the server device, retransmitting the modified first data to the server device.

7. The method according to claim 6, further comprising at least one of the following: in response to determining that the processing result indicates that the modified first data has been successfully processed at the server device, updating state data of the modified first data at the client device; and In response to determining that the processing result indicates a conflict between the modified first data and second data at the server device, updating the status data of the modified first data at the client device based on a predetermined conflict policy.

8. The method according to claim 1, further comprising: In response to receiving a push message from the server device indicating that the second data at the server device is updated, receiving the updated second data from the server device; as well as The first data is updated using the updated second data.

9. The method of claim 8, wherein receiving the updated second data comprises: Transmitting a first version number of the first data at the client device to the server device; as well as The updated second data is received from the server device, wherein a second version number of the updated second data is higher than the first version number.

10. The method according to claim 9, further comprising: transmitting to the server device a predetermined batch size of the second data for receiving updates; as well as Receiving the updated second data further includes: receiving the updated second data from the server device according to the predetermined batch size.

11. The method according to claim 8, wherein updating the first data comprises: In response to determining that first data corresponding to the updated second data does not exist at the client device, creating first data corresponding to the updated second data at the client device; as well as The first version number of the first data is determined using the updated second version number of the second data.

12. The method according to claim 8, wherein updating the first data comprises: In response to determining that the first data corresponding to the second data exists at the client device, updating the first data with the updated second data; as well as The first version number of the first data is determined using the updated second version number of the second data.

13. The method according to claim 8, further comprising: In response to determining that the push message indicates that second data corresponding to the first data is deleted at the server device, the first data is deleted from the client device.

14. A method for sharing user data, comprising: At a server device, receiving first data matching a data sharing policy from a client device logged in with a target account, the data sharing policy describing the type of data to be shared for the target account; as well as Second data to be provided to another client device logged in with the target account is generated based on the received first data. 15 . The method according to claim 14 , wherein the data type comprises at least any one of the following: system data of the client device, user data of the target account, application data of an application installed at the client device.

16. The method according to claim 14, further comprising: Providing a user interface for setting the data sharing policy; as well as In response to receiving an interaction with the user interface, the data sharing policy is set.

17. The method of claim 14, wherein receiving the first data comprises: In response to determining that the data sharing policy is enabled, the first data is received.

18. The method according to claim 14, further comprising: In response to determining that the received first data does not match the data sharing policy, an alert message is provided to the client device.

19. The method of claim 14, wherein receiving the first data comprises: In response to receiving a predetermined batch size from the client device, a plurality of data items included in the first data are received according to the predetermined batch size.

20. The method according to claim 19, further comprising: Transmitting a processing result of the received first data to the client device, wherein the processing result indicates at least one of the following: a failure occurs during processing of the received first data at the server device; The received first data has been successfully processed at the server device; as well as The received first data conflicts with second data at the server device.

21. The method of claim 20, wherein generating the second data comprises: In response to determining that the plurality of data items include a first data item and a second data item having a parent-child relationship, a positional relationship between the first data item and the second data item is adjusted.

22. The method according to claim 21, wherein transmitting the processing result further comprises: The processing results corresponding to the plurality of data items are transmitted according to the original positional relationship between the first data item and the second data item.

23. The method of claim 14, further comprising: In response to detecting that the target account is logged into the other client device, a push message is transmitted to the other client device to indicate that the second data at the server device is updated.

24. The method according to claim 23, further comprising: receiving a first version number of first data at the other client device; as well as In response to determining that the first version number is lower than a second version number of the second data at the server device, the second data is transmitted to the other client device.

25. The method of claim 24, wherein transmitting the second data to the another client device comprises: In response to receiving a predetermined batch size for receiving the second data from the other client device, the second data is transmitted according to the predetermined batch size.

26. A device for sharing data, comprising: A policy acquisition module is configured to acquire, at a client device logged in using a target account, a data sharing policy associated with the target account, the data sharing policy describing the type of data to be shared with the target account; a modification receiving module configured to receive a modification performed at the client device on the first data at the client device; as well as A data transmission module is configured to transmit the modified first data to a server device associated with the client device in response to determining that the type of the first data matches the data sharing policy to generate second data to be provided to another client device logged in using the target account.

27. A device for sharing user data, comprising: A data receiving module is configured to receive, at a server device, first data matching a data sharing policy from a client device logged in using a target account, wherein the data sharing policy describes a type of data to be shared with respect to the target account; as well as The data generation module is configured to generate second data to be provided to another client device logged in using the target account based on the received first data.

28. An electronic device comprising: Memory and processor; The memory is used to store one or more computer instructions, wherein the one or more computer instructions are executed by the processor to implement the method according to any one of claims 1 to 13.

29. An electronic device comprising: Memory and processor; The memory is used to store one or more computer instructions, wherein the one or more computer instructions are executed by the processor to implement the method according to any one of claims 14 to 25.

30. A computer-readable storage medium having one or more computer instructions stored thereon, wherein the one or more computer instructions are executed by a processor to implement the method according to any one of claims 1 to 13.

31. A computer-readable storage medium having one or more computer instructions stored thereon, wherein the one or more computer instructions are executed by a processor to implement the method according to any one of claims 14 to 25.