Distributed collaboration method, network, medium and electronic device
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- HUBEI XINGJI MEIZU TECH CO LTD
- Filing Date
- 2022-11-08
- Publication Date
- 2026-06-19
AI Technical Summary
Existing collaborative solutions that use the cloud as a document server require a large amount of cloud computing, network and storage resources. Furthermore, multi-user collaboration is affected by fluctuations in network quality, leading to untimely updates and a reduced user experience, while also posing a risk of privacy leaks.
By adopting a distributed collaboration method, devices establish direct communication connections to synchronize and update collaborative objects without the need for a cloud server. The synchronization and updating of collaborative objects are achieved through direct communication between devices.
It reduces the need for cloud resources, improves the real-time performance and stability of collaboration, lowers the operational threshold, and protects user privacy.
Smart Images

Figure CN115767770B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to a collaboration method, and more particularly to a distributed collaboration method, network, medium, and electronic device. Background Technology
[0002] In existing cloud-based document server solutions, each device connects to the cloud document server. The cloud document server determines the appropriate permissions (view only, editable, etc.) of the connected device based on the authentication information it carries. After authentication and authorization, each device establishes one or more continuous data channels with the cloud document server. On the one hand, it retrieves the latest version of the document from the cloud in real time and updates it on the device's display interface; on the other hand, it uploads user-modified content to the cloud document server. The cloud document server merges the uploaded modifications and resolves conflicts according to a specific algorithm, generating the latest version of the document in the cloud and pushing this latest version information to each device. Upon receiving the new version, each device retrieves the latest version content from the cloud document server and finally updates and displays it on its display interface in real time.
[0003] However, when collaborating using the cloud as a document server, all updates need to be sent from the user's device to the cloud document server, which then merges them and pushes them back to each device for display. This process consumes a lot of cloud computing, network, and storage resources. Summary of the Invention
[0004] This disclosure provides a distributed collaboration method, network, medium, and electronic device for addressing the need to update data using a cloud server when the cloud is used as a document server.
[0005] In a first aspect, embodiments of this disclosure provide a distributed collaboration method, comprising: a first device establishing a communication connection with a device in a collaboration network to join the collaboration network, wherein the collaboration network is a distributed network containing one or more devices; and the first device synchronizing and updating the collaboration objects of other devices in the collaboration network.
[0006] In one implementation of the first aspect, establishing a communication connection between the first device and a device in the collaborative network includes: the first device establishing a communication connection with a second device in the collaborative network based on a received invitation signal, wherein the invitation signal is sent by the second device in the form of a broadcast.
[0007] In one implementation of the first aspect, before the first device joins, the number of devices in the collaborative network is at least 2, and the establishment of a communication connection between the first device and the devices in the collaborative network further includes: the first device obtaining device information in the collaborative network from the second device, and establishing a communication connection with other devices in the collaborative network based on the device information.
[0008] In one implementation of the first aspect, establishing a communication connection between the first device and other devices in the collaborative network includes: the first device updating a first device list based on a second device list of the second device, the second device list of the second device including device information in the collaborative network stored by the second device; the first device establishing a communication connection with a third device based on the first device list, the device information of the third device being included in the first device list of the first device; and the first device synchronizing and updating the first device list and the third device list with the third device.
[0009] In one implementation of the first aspect, the first device establishing a communication connection with the second device in the collaborative network based on the received invitation signal includes: the first device authenticating with the second device based on the invitation signal; after successful authentication, the first device sends an access request to the second device to establish a data channel with the second device and causes the second device to update the information of the devices participating in the collaboration.
[0010] In one implementation of the first aspect, the authentication and authorization of the first device with the second device based on the invitation signal includes: the first device sending an authentication request to the second device to establish an authentication channel between the first device and the second device; the first device sending its user information to the second device through the authentication channel, so that the second device can perform authentication and authorization based on the user information of the first device.
[0011] In one implementation of the first aspect, the second device sends a token to the first device after authentication and authorization are completed. The first device sends an access request to the second device to establish a data channel with the second device and to update the information of the cooperating devices in the second device. This includes: the first device receiving the token sent by the second device; the first device sending a connection request carrying the token to the second device to establish a connection channel between the second device and the first device; the first device sending an access request carrying the token to the second device through the connection channel, so that the second device performs validity verification based on the token carried in the access request; if the validity verification is successful, the second device updates the information of the cooperating devices; and the first device establishing at least one data channel connected to the second device.
[0012] In one implementation of the first aspect, the first device synchronizing and updating the collaboration objects of other devices in the collaboration network includes: the first device updating its own collaboration objects according to the higher version collaboration objects in the collaboration network, and using its own collaboration objects to update the lower version collaboration objects in the collaboration network.
[0013] In one implementation of the first aspect, the first device updating its own collaborative object based on a higher version collaborative object in the collaborative network and updating a lower version collaborative object in the collaborative network using its own collaborative object includes: the first device sequentially obtaining the versions of the collaborative objects of other devices in the collaborative network; for a fourth device in the collaborative network: if the version of the fourth device's collaborative object is higher than the version of the first device's collaborative object, then the first device updates its own collaborative object based on the fourth device's collaborative object and pushes the updated collaborative object to the traversed devices with lower version collaborative objects; if the version of the fourth device's collaborative object is lower than the version of the first device's collaborative object, then the first device pushes its own collaborative object to the fourth device to synchronously update the fourth device's collaborative object.
[0014] In one implementation of the first aspect, the distributed collaboration method further includes: when the collaboration object of the first device is updated, the first device sends the updated collaboration object to other devices in the collaboration network, so that the other devices in the collaboration network update their respective collaboration objects.
[0015] In one implementation of the first aspect, the distributed collaboration method further includes: when the first device receives an updated version sent by the fifth device in the collaboration network, the first device updates its own collaboration object according to the updated version; if the version of the first device's collaboration object is higher than that of the fifth device after the update, the first device sends its own collaboration object to other devices in the collaboration network so that the other devices update their respective collaboration objects.
[0016] Secondly, this disclosure provides another distributed collaboration method, which includes: when the collaboration object of a first device in a collaboration network is updated, the first device sends the updated collaboration object to other devices in the collaboration network so that the other devices update their respective collaboration objects, wherein the collaboration network is a distributed network containing at least two devices; when the first device receives an updated version sent by a second device in the collaboration network, the first device updates its own collaboration object according to the updated version.
[0017] In one implementation of the second aspect, after the first device updates its own collaborative object according to the updated version, the distributed collaboration method further includes: if the version of the first device's collaborative object is higher than that of the second device, then the first device sends its own collaborative object to other devices in the collaboration network.
[0018] Thirdly, embodiments of this disclosure provide a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the distributed cooperation method described in any of the first or second aspects of this disclosure.
[0019] Fourthly, embodiments of this disclosure provide an electronic device, the electronic device comprising: a memory storing a computer program; and a processor communicatively connected to the memory, which, when the computer program is invoked, executes the distributed cooperation method described in any one of the first or second aspects of this disclosure.
[0020] Fifthly, embodiments of this disclosure provide a distributed collaboration network, wherein the distributed collaboration network implements the distributed collaboration method described in either the first or second aspect of this disclosure to achieve collaboration between devices.
[0021] As described above, the distributed cooperation method, network, medium, and electronic device in one or more embodiments of this disclosure have the following beneficial effects:
[0022] The distributed collaboration method can achieve multi-user collaboration without the need for a cloud server, which greatly reduces the demand for cloud resources in collaboration. Attached Figure Description
[0023] Figure 1A and Figure 1B The diagram shown is an example of an implementation environment for a distributed collaborative network in this disclosure.
[0024] Figure 1C The flowchart shown is a distributed collaboration method in an embodiment of this disclosure.
[0025] Figure 2 The diagram shown is a system architecture diagram of the device in an embodiment of this disclosure.
[0026] Figure 3A The flowchart shown is a process for establishing a data channel between the first device and the second device in an embodiment of this disclosure.
[0027] Figure 3B The following is a detailed flowchart of step S31 in an embodiment of this disclosure.
[0028] Figure 3C The following is a detailed flowchart of step S32 in an embodiment of this disclosure.
[0029] Figure 4 The flowchart shown is a process for updating the device list for different devices in an embodiment of this disclosure.
[0030] Figure 5 The diagram shown is a schematic representation of the structure of an electronic device according to an embodiment of this disclosure.
[0031] Component designation explanation
[0032] 1a, 1b Collaborative Network
[0033] 11a, 11b First Equipment
[0034] 12a, 12b Second Equipment
[0035] Equipment 13b and 14b
[0036] 500 electronic devices
[0037] 510 Memory
[0038] 520 processor
[0039] 530 monitor
[0040] Steps S11 to S12
[0041] Steps S31 to S32
[0042] Steps S311~S312
[0043] Steps S321~S324
[0044] Steps S41 to S43 Detailed Implementation
[0045] The following specific examples illustrate the implementation of this disclosure. Those skilled in the art can easily understand other advantages and effects of this disclosure from the content disclosed in this specification. This disclosure can also be implemented or applied through other different specific embodiments, and various details in this specification can also be modified or changed based on different viewpoints and applications without departing from the spirit of this disclosure. It should be noted that, unless otherwise specified, the following embodiments and features in the embodiments can be combined with each other.
[0046] It should be noted that the illustrations provided in the following embodiments are merely schematic representations of the basic concept of this disclosure. The illustrations only show components relevant to this disclosure and are not drawn according to the actual number, shape, and size of the components in implementation. In actual implementation, the form, quantity, and proportion of each component can be arbitrarily changed, and the component layout may also be more complex. Furthermore, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations.
[0047] Existing technical solutions use the cloud as a document server, with each device connecting to it. The cloud document server determines the appropriate permissions (view only, editable, etc.) for each connected device based on its authentication information. However, in this collaborative method, all updates need to be sent from the user's device to the cloud document server, merged, and then pushed back to each device for display. This process consumes significant cloud computing, network, and storage resources. Furthermore, multi-user document updates are affected by network quality fluctuations; when network quality is poor, real-time updates are difficult to achieve, leading to a degraded user experience. Moreover, cloud document servers typically require users to register their personal information and store all user documents and version history, increasing user costs and posing a risk of privacy breaches.
[0048] To address at least the aforementioned problems, this disclosure relates to a distributed collaboration method. The distributed collaboration method of this disclosure will now be described in detail through specific embodiments and accompanying drawings.
[0049] Figure 1A and Figure 1B The following are example diagrams illustrating the implementation environment of the distributed collaboration method in one embodiment of this disclosure. Figure 1AIn this distributed collaboration network 1a, before the first device 11a joins, it only includes device 12a, which can be, for example, the initiating device of the distributed collaboration method. After the first device 11a joins the collaboration, the distributed collaboration network 1a includes both device 12a and the first device 11a, which can synchronize and update the collaboration objects. Figure 1B In the distributed collaborative network 1b, before the first device 11a joins, devices 12b, 13b, and 14b are included, and the three synchronize and update their collaborative objects. After the first device 11b joins the collaboration, the distributed collaborative network 1b includes the first device 11b as well as devices 12b, 13b, and 14b, and thereafter the four synchronize and update their collaborative objects.
[0050] In this embodiment of the disclosure, the device includes a first device to be added to the collaborative network and existing devices in the collaborative network. These devices may include mobile phones, tablets, wearable devices, in-vehicle devices, augmented reality (AR) / virtual reality (VR) devices, laptops, ultra-mobile personal computers (UMPCs), netbooks, personal digital assistants (PDAs), and other devices. They may also be applied to databases, servers, and service response systems based on terminal artificial intelligence. This embodiment of the disclosure does not impose any restrictions on the specific type of device.
[0051] For example, the device may be a station (STAION, ST) in a WLAN, a cellular phone, a cordless phone, a Session Initiation Protocol (SIP) phone, a Wireless Local Loop (WLL) station, a Personal Digital Assistant (PDA) device, a handheld device with wireless communication capabilities, a computing device or other processing device connected to a wireless modem, a computer, a laptop computer, a handheld communication device, a handheld computing device, and / or other devices for communicating over a wireless system, as well as next-generation communication systems, such as mobile devices in 5G networks, mobile devices in future evolved Public Land Mobile Networks (PLMNs), or mobile devices in future evolved Non-terrestrial Networks (NTNs).
[0052] As an example and not a limitation, when the device is described as a wearable device, it can also be a general term for devices that utilize wearable technology to intelligently design and develop everyday wearables, such as gloves and watches equipped with near-field communication modules. Wearable devices are portable devices worn directly on the body or integrated into a user's clothing or accessories. By attaching to the user and using a pre-bound electronic card, they perform operations such as payment and authentication. Wearable devices are not merely hardware devices; they achieve powerful functions through software support, data interaction, and cloud interaction. Broadly defined, wearable smart devices include those with comprehensive functions, large sizes, and the ability to perform complete or partial functions without relying on a smartphone, such as smartwatches or smart glasses, as well as those focused on a specific application function that require the use of other devices such as smartphones, such as various smartwatches and smart bracelets with displays.
[0053] These devices run browsers or pre-installed client software or plugins. Lead authors, such as department heads or project managers, can create and cancel collaboration sessions using the client. During session creation, several other devices can be selected or invited as collaborators, and permissions can be assigned to each collaborator for the collaborative document, such as viewing, editing, reviewing, revising, and annotating. Collaborators, such as employees and technical support personnel, can edit the collaborative document using their devices. During collaboration, the document can be divided into several document segments, such as each paragraph. A single device can select one or more document segments for editing operations at the same time, such as inserting or deleting.
[0054] Devices can connect using different wireless communication methods depending on the specific application scenario. These wireless communication technologies may include Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS), Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA), Time-Division Code Division Multiple Access (TD-SCDMA), Long Term Evolution (LTE), New Radio (NR), Bluetooth, GNSS, WLAN (such as Wi-Fi), NFC (Near Field Communication), FM (Frequency Modulation), and / or IR (Infrared) technologies, etc. The GNSS may include the Global Positioning System (GPS), the Global Navigation Satellite System (GLONASS), the BeiDou Navigation Satellite System (BDS), the Quasi-Zenith Satellite System (QZSS), and / or satellite-based augmentation systems (SBAS), etc.
[0055] It should be understood that, Figure 1A and Figure 1B The examples shown are merely illustrative of scenarios involving one and three devices in a collaborative network, but this disclosure is not limited thereto. The number of devices in a collaborative network can be configured according to the specific scenario in a particular application. Furthermore, the communication methods between devices are also not limited to the above description.
[0056] Figure 1C The flowchart shown is a distributed collaboration method according to an embodiment of this disclosure. Figure 1CAs shown, the distributed collaboration method in this embodiment includes the following steps S11 and S12.
[0057] S11, the first device establishes a communication connection with a device in the collaborative network to join the collaborative network, which is a distributed network containing one or more devices.
[0058] S12, the first device synchronizes and updates the collaboration objects of other devices in the collaboration network. These collaboration objects include, but are not limited to, image files, spreadsheets, audio files, video files, word processing files, and / or any other type of file, object, or data.
[0059] For example, at Figure 1A In the implementation environment shown, the collaboration network 1a contains only one device 12a. In step S11, the first device 11a connects to device 12a to join the collaboration network 1a. In step S12, the first device 11a synchronizes and updates the collaboration objects of device 12a.
[0060] For example, Yu Figure 1B In the illustrated implementation environment, the collaborative network 1b includes three devices 12b, 13b, and 14b that are communicatively connected to each other. In step S11, the first device 11b can connect to any device in the collaborative network 1b to join the collaborative network 1b. In step S12, the first device 11b synchronizes and updates the collaborative objects of devices 12b, 13b, and 14b.
[0061] As described above, the distributed collaboration method provided in this disclosure can achieve multi-user collaboration without a cloud server, greatly reducing the demand for cloud resources. Based on the distributed collaboration method provided in this disclosure, users do not need to store documents on a cloud server, nor do they need to register their information with the cloud, which helps avoid privacy leaks of users' personal documents and information, and also lowers the operational threshold for multi-user collaboration.
[0062] Optionally, Figure 2 This diagram shows the overall framework of the device in an embodiment of this disclosure. The device includes all devices wishing to join the collaborative network, as well as existing devices within the collaborative network. Figure 2 As shown, the device includes a session management module, an authentication and authorization module, and a discovery module.
[0063] The discovery module is used to broadcast discovery protocols and invitation signal generation methods to multiple devices, thereby enabling mutual discovery among multiple devices in different network environments and spatial locations.
[0064] The authentication and authorization module is used to implement authentication and authorization between devices. In some feasible implementations, the authentication and authorization module can meet users' permission control needs for collaboration in different scenarios through local and / or cloud-based authentication and authorization methods. For example, cloud-based account authentication and authorization can be used in collaboration scenarios with high security requirements, while local user confirmation authentication and authorization can be used in collaboration scenarios with lower security requirements but higher convenience requirements.
[0065] The session management module manages collaboration session instances. Each collaboration session instance corresponds to one or more collaboration objects and their respective collaboration clients. Each collaboration session instance manages all resources within the session, such as documents, images, audio and video files, and maintains data channel connections with all corresponding devices to receive and merge update operations sent by the devices, and to push new versions of collaboration objects to the other devices.
[0066] In one embodiment of this disclosure, establishing a communication connection between the first device and a device in the collaborative network includes: the first device establishing a communication connection with a second device in the collaborative network based on a received invitation signal, wherein the invitation signal is sent by the second device in the form of a broadcast.
[0067] Specifically, one or more devices in the collaborative network can generate invitation signals in appropriate formats, such as PING codes or QR codes, based on the user-specified collaborative scenario. After generating the collaborative signal, the device invokes the corresponding broadcast module to send the invitation signal via broadcast, depending on the collaborative scenario. For example, in a near-field environment without a network, Bluetooth Low Energy (BLE) broadcasting or UWB (Ultra Wide Band) broadcasting can be used; in a Wi-Fi LAN environment, mDNS broadcasting or UPNP (Universal Plug and Play) broadcasting can be used; and in a far-field WAN environment, broadcasting can be performed using a cloud server. Different broadcasting and discovery methods can be dynamically inserted into the discovery module as plugins.
[0068] When the first device receives an invitation signal from any device (designated as the second device) in the collaborative network, the first device establishes a communication connection with the second device based on the invitation signal. Specifically, after receiving the invitation signal from the second device, the first device calls the corresponding parsing module to parse it according to the format of the invitation signal and reports the parsing result to the session management module. The first device can determine whether to join the collaborative session identified by the invitation signal based on the device holder's decision. If it decides to join, the first device establishes a communication connection with the second device to join the collaborative network.
[0069] Optionally, Figure 3AThis is a flowchart illustrating how a first device establishes a communication connection with a second device in a collaborative network based on a received invitation signal, as shown in this embodiment of the disclosure. Figure 3A As shown, the process of establishing a communication connection between the first device and the second device in this embodiment includes the following steps S31 and S32.
[0070] S31, the first device authenticates and authorizes the second device based on the invitation signal.
[0071] S32, after authentication and authorization are successful, the first device sends an access request to the second device to establish a data channel with the second device and to enable the second device to update the information of the devices participating in the collaboration.
[0072] Optionally, Figure 3B This is a flowchart illustrating the authentication process between the first device and the second device based on an invitation signal, as shown in this embodiment of the disclosure. Figure 3B As shown, the authentication process between the first device and the second device in this embodiment includes the following steps S311 and S312.
[0073] S311, the first device sends an authentication request to the second device to establish an authentication channel between the first device and the second device.
[0074] Optionally, the authentication channel between the first device and the second device is an encrypted channel. In some feasible implementations, the process of establishing the encrypted channel includes: the first device obtaining its own user information, and then sending an authentication request to the second device as an authentication client to request the establishment of an authentication channel; after receiving the authentication request, the second device establishes an authentication channel with the first device and negotiates with the first device to complete the encryption of the authentication channel, thereby ensuring the security of subsequent interactive data.
[0075] S312, the first device sends its user information to the second device through the authentication channel, so that the second device can perform authentication and authorization based on the user information of the first device.
[0076] Specifically, after the first device and the second device complete the negotiation and encryption of the authentication channel, the first device sends its user information to the second device through the authentication channel. After receiving the user information from the first device, the second device authenticates and authorizes the user information from the first device.
[0077] Optionally, after the second device completes the authentication and authorization of the first device, it generates a corresponding token and sends it to the first device. After receiving the token, the first device can use it to request to join a session with the second device to begin collaboration.
[0078] Figure 3CThis is a flowchart illustrating how, in an embodiment of this disclosure, a first device sends an access request to a second device to establish a data channel with the second device and causes the second device to update the information of the devices participating in the collaboration. Figure 3C As shown, the process includes steps S321 to S324.
[0079] S321, the first device receives the token sent by the second device.
[0080] S322, the first device sends a connection request carrying a token to the second device to establish a connection channel between the second device and the first device. Specifically, the first device creates a session instance client to join through the session management module, and then uses this session instance client to send a connection request to the second device carrying the token to request to join the corresponding session.
[0081] Optionally, the connection channel between the first device and the second device can be an encrypted channel. In some feasible implementations, the encrypted channel is established as follows: after receiving a connection request from the first device, the second device negotiates with the first device to encrypt the connection channel to ensure the security of the token and related data.
[0082] S323, the first device sends an access request carrying a token to the second device through the connection channel. The second device then verifies the validity of the token in the access request. If the verification is successful, the second device updates the information of the participating devices. Specifically, after the second device and the first device complete the encryption of the connection channel, the first device's session client sends an access request to the first device carrying the token and related information to request joining the corresponding session instance. Upon receiving the access request, the second device verifies the token's validity, then adds the first device as a new collaborating device to the session instance. Simultaneously, it updates the information of the participating devices, i.e., the session instance's metadata. This metadata information may include, for example, the current number of session participants and participant information.
[0083] S324, the first device establishes at least one data channel connecting to the second device. This data channel can be an encrypted channel for subsequent collaborative synchronization.
[0084] Optionally, the number of devices in the collaborative network is at least two before the first device joins. Establishing a communication connection between the first device and other devices in the collaborative network further includes: the first device obtaining device information from the second device and establishing communication connections with other devices in the collaborative network based on the device information. For example, please refer to... Figure 1BAfter establishing a communication connection with the second device 12b, the first device 11b obtains the device information of the other devices in the cooperative network 1b, namely the device information of devices 13b and 14b, from the second device 12b. The first device 11b then establishes a communication connection with devices 13b and 14b based on this device information.
[0085] As described above, the collaborative network in this embodiment only includes devices and not cloud servers. This approach reduces the number of nodes in the multi-device synchronization network channel during collaboration, reducing the device-cloud-device synchronization link to device-device, effectively solving problems such as poor collaborative work experience, untimely updates, and incorrect update sequence caused by large fluctuations in the connection quality between multiple devices and the cloud network.
[0086] Optionally, Figure 4 This illustrates the process by which the first device establishes a communication connection with other devices in the collaborative network, as shown in this embodiment of the disclosure. Figure 4 As shown, in this embodiment of the present disclosure, the process of establishing a communication connection between the first device and other devices in the cooperative network includes the following steps S41 to S43.
[0087] S41, the first device updates its own device list based on the second device list of the second device. The first device list refers to the device list of the first device itself, and the second device list of the second device includes device information in the cooperative network stored by the second device.
[0088] S42, the first device establishes a communication connection with the third device according to the first device list, and the device information of the third device is included in the first device list of the first device.
[0089] S43, the first device synchronizes with the third device and updates the first device list and the third device list. The third device list refers to the device list of the third device.
[0090] The third device can be any of the other devices in the collaborative network besides the first and second devices. The first device can establish communication connections with all devices in the collaborative network in a round-robin manner. Figure 1BTaking the collaborative network 1b as an example, the first device 11b establishes a communication connection with the second device 12b and obtains the device list of the second device 12b as the first device list. Subsequently, the first device 11b obtains the device information of device 13b based on the first device list, and establishes a communication connection with device 13b based on this device information. Both the first device 11b and device 13b synchronously update their respective device lists. The first device 11b then obtains the device information of device 14b based on the updated first device list, and establishes a communication connection with device 14b based on this device information. Again, both devices synchronously update their respective device lists. In this way, the first device 11b establishes a session connection with all devices in the collaborative network 11b, thus formally joining the collaborative session.
[0091] In one embodiment of this disclosure, the first device synchronizing and updating the collaborative objects of other devices in the collaborative network includes: the first device updating its own collaborative objects based on higher-version collaborative objects in the collaborative network, and using its own collaborative objects to update lower-version collaborative objects in the collaborative network. Figure 1B For example, assuming that before the first device 11b joins the collaboration network 1b, the version of the collaboration object of device 13b is the highest, then when the first device 11b joins the collaboration network 1b, it can synchronize the version and content of the collaboration object of device 13b as the initial values of its own collaboration object version and content. Afterwards, the first device 11b can synchronously update the collaboration objects of the second devices 12b and 14b according to its own collaboration object version and content.
[0092] Optionally, in this embodiment of the present disclosure, the first device updates its own collaborative object based on a higher version collaborative object in the collaborative network and updates a lower version collaborative object in the collaborative network using its own collaborative object, including: the first device sequentially obtains the versions of the collaborative objects of other devices in the collaborative network; for a fourth device in the collaborative network, if the version of the fourth device's collaborative object is higher than the version of the first device's collaborative object, the first device updates its own collaborative object based on the fourth device's collaborative object and pushes the updated collaborative object to the devices with lower version collaborative objects that have been traversed; if the version of the fourth device's collaborative object is lower than the version of the first device's collaborative object, the first device pushes its own collaborative object to the fourth device to synchronously update the fourth device's collaborative object.
[0093] Next will be Figure 1BThe above process is described using the collaborative network 1b as an example. First device 11b configures its own collaborative object based on the collaborative object of second device 12b. Taking device 13b as the fourth object, first device 11b obtains the version of device 13b's collaborative object. If the version of device 13b's collaborative object is higher than that of first device 11b, first device 11b synchronizes to the version of device 13b's collaborative object and informs second device 12b, which holds the lower version of the collaborative object, of the latest version, so that second device 12b can update its collaborative object. If the version of device 13b's collaborative object is the same as that of first device 11b, no operation is performed. If the version of device 13b's collaborative object is lower than that of first device 11b, then device 13b's collaborative object is updated using the collaborative object of first device 11b. Subsequently, taking device 14b as the fourth object, first device 11b obtains the version of device 14b's collaborative object. If the version of the collaborating object of device 14b is higher than that of the first device 11b, then the first device 11b synchronizes with the version of the collaborating object of device 14b and informs the second device 12b and device 13b, which hold the lower version of the collaborating object, of the latest version of the collaborating object, so that the second device 12b and device 13b update their collaborating objects. If the version of the collaborating object of device 14b is the same as that of the first device 11b, no operation is performed. If the version of the collaborating object of device 14b is lower than that of the first device 11b, then the collaborating object of device 14b is updated using the collaborating object of the first device 11b. In this way, the first device can update its own collaborating objects based on the higher version collaborating objects in the collaborating network, and update the lower version collaborating objects in the collaborating network using its own collaborating objects.
[0094] As described above, the embodiments of this disclosure can achieve synchronization and updating of collaborative objects through communication between devices. Users do not need to connect to a wide area network to achieve collaboration, thus it is applicable to document collaboration in various network scenarios (e.g., near-field Wi-Fi P2P direct connection, Wi-Fi local area network, etc.).
[0095] In one embodiment of this disclosure, when the collaborative object of the first device is updated, the first device sends the updated collaborative object to other devices in the collaborative network, so that the other devices in the collaborative network update their respective collaborative objects. Specifically, when the collaborative object of the first device is updated, a new version number is generated for the collaborative object on the first device, and the collaborative object carrying the new version number is pushed to other devices in the collaborative network.
[0096] Optionally, the distributed collaboration method provided in this disclosure may further include: when a first device receives an updated version sent by a fifth device in the collaboration network, the first device updates its own collaboration object according to the updated version; if the version of the first device's collaboration object is higher than that of the fifth device after the update, the first device sends its own collaboration object to other devices in the collaboration network so that the other devices update their respective collaboration objects.
[0097] Specifically, when the first device receives an updated version from any other device in the collaboration network (designated as the fifth device), it compares the received version with its own version to determine whether an update is needed. If the first device's own version is equal to or less than the received version, it indicates that the fifth device's collaborating object is the latest version. In this case, the first device can request content difference data between its own version and the latest version from the fifth device and update the content and version on its own device based on this data. If the first device's own version is higher than the received version, or if the first device has unpushed modifications, it indicates that the first device has additional updated content compared to the fifth device. In this case, the first device can update the version of its collaborating object based on the received version to generate a higher version and send this higher version to all other devices in the collaboration network.
[0098] It is understandable that the above-described scheme for updating the collaboration object version by the first device can be applied to all devices in the collaboration network. When all devices in the collaboration network use the above scheme for updates, each device can quickly achieve consistency in the collaboration object version and content.
[0099] This disclosure also provides another distributed collaboration method, comprising: when a collaboration object of a first device in a collaboration network is updated, the first device sends the updated collaboration object to other devices in the collaboration network, so that the other devices update their respective collaboration objects. The collaboration network is a distributed network containing at least two devices, and the first device is any device in the collaboration network. Specifically, when a collaboration object of the first device is updated, a new version number is generated for the collaboration object on the first device, and the collaboration object carrying the new version number is pushed to other devices in the collaboration network. When the first device receives an updated version sent by a second device in the collaboration network, the first device updates its own collaboration object according to the updated version. The second device is any device other than the first device in the collaboration network.
[0100] Optionally, after the first device updates its own collaborative object according to the updated version, the distributed collaboration method further includes: if the version of the first device's collaborative object is higher than that of the second device, then the first device sends its own collaborative object to other devices in the collaboration network.
[0101] Optionally, the distributed collaboration method provided in this disclosure may further include: a third device establishing a communication connection with the first device to join the collaboration network; and the third device synchronizing and updating the collaboration objects of other devices in the collaboration network. The third device can be any device outside the collaboration network.
[0102] Optionally, in this embodiment of the disclosure, establishing a communication connection between the third device and the first device includes: the third device establishing a communication connection with the first device based on a received invitation signal, wherein the invitation signal is sent by the first device in the form of a broadcast.
[0103] Optionally, in this embodiment of the disclosure, establishing a communication connection between the third device and the first device may further include: the third device obtaining device information in the collaborative network from the first device, and establishing a communication connection with other devices in the collaborative network based on the device information.
[0104] Optionally, in this embodiment of the disclosure, establishing a communication connection between the third device and other devices in the collaborative network includes: the third device updating its device list according to the device list of the first device, the device list of the first device including device information in the collaborative network stored by the first device; the third device establishing a communication connection with a fourth device in the collaborative network according to its device list, wherein the device information of the fourth device is included in the device list of the third device; and the third device synchronizing and updating its device list and the device list of the fourth device.
[0105] Optionally, in this embodiment of the present disclosure, the third device establishing a communication connection with the first device based on the received invitation signal includes: the third device performing authentication and authorization with the first device based on the invitation signal; after successful authentication and authorization, the third device sending an access request to the first device to establish a data channel with the first device and causing the first device to update the information of the devices participating in the collaboration.
[0106] Optionally, in this embodiment of the disclosure, the authentication and authorization of the third device with the first device based on the invitation signal includes: the third device sending an authentication request to the first device to establish an authentication channel between the third device and the first device; the third device sending its user information to the first device through the authentication channel, so that the first device can perform authentication and authorization based on the user information of the third device.
[0107] Optionally, in this embodiment of the disclosure, after authentication and authorization, the first device sends a token to the third device, and the third device sends an access request to the first device to establish a data channel with the first device and cause the first device to update the information of the devices participating in the collaboration, including: the third device receiving the token sent by the first device; the third device sending a connection request carrying the token to the first device to establish a connection channel between the first device and the third device; the third device sending an access request carrying the token to the first device through the connection channel, so that the first device performs validity verification based on the token carried in the access request, and if the validity verification is successful, the first device updates the information of the devices participating in the collaboration; and the third device establishing at least one data channel connected to the first device.
[0108] Optionally, in this embodiment of the disclosure, the third device synchronizing and updating the collaborative objects of other devices in the collaborative network includes: the third device updating its own collaborative objects according to the higher version collaborative objects in the collaborative network, and using its own collaborative objects to update the lower version collaborative objects in the collaborative network.
[0109] Optionally, in this embodiment of the disclosure, the third device updating its own collaborative object based on a higher version collaborative object in the collaborative network and updating a lower version collaborative object in the collaborative network using its own collaborative object includes: the third device sequentially obtaining the versions of the collaborative objects of other devices in the collaborative network in a traversal manner; for a fifth device in the collaborative network: if the version of the fifth device's collaborative object is higher than the version of the third device's collaborative object, then the third device updates its own collaborative object based on the fifth device's collaborative object and pushes the updated collaborative object to the traversed devices with lower version collaborative objects; if the version of the fifth device's collaborative object is lower than the version of the third device's collaborative object, then the third device pushes its own collaborative object to the fifth device to synchronously update the fifth device's collaborative object.
[0110] This disclosure also provides a distributed collaboration network, which uses the distributed collaboration method provided in any embodiment of this disclosure to achieve collaboration between devices.
[0111] This disclosure also provides a computer-readable storage medium having a computer program stored thereon. When executed by a processor, the computer program implements the distributed cooperation method provided in any embodiment of this disclosure.
[0112] In this disclosure, any combination of one or more storage media may be used. The storage medium may be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium may be, for example—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples (a non-exhaustive list) of computer-readable storage media include: an electrical connection having one or more wires, a portable computer disk, a hard disk, RAM, ROM, an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof. In this document, a computer-readable storage medium may be any tangible medium that contains or stores a program that may be used by or in connection with an instruction execution system, apparatus, or device.
[0113] This disclosure also provides an electronic device. Figure 5 The diagram shown is a structural schematic of an electronic device 500 according to an embodiment of this disclosure. Figure 5 As shown, in this embodiment of the present disclosure, the electronic device 500 includes a memory 510 and a processor 520.
[0114] The memory 510 is used to store computer programs; optionally, the memory 510 includes various media that can store program code, such as ROM, RAM, magnetic disk, USB flash drive, memory card or optical disk.
[0115] Specifically, memory 510 may include computer system readable media in the form of volatile memory, such as random access memory (RAM) and / or cache memory. Electronic device 500 may further include other removable / non-removable, volatile / non-volatile computer system storage media. Memory 510 may include at least one program product having a set (e.g., at least one) of program modules configured to perform the functions of the embodiments of this disclosure.
[0116] The processor 520 is connected to the memory 510 and is used to execute the computer program stored in the memory 510 so that the electronic device 500 performs the distributed cooperation method provided in any embodiment of this disclosure.
[0117] Optionally, the processor 520 may be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it may also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components.
[0118] Optionally, in this embodiment of the electronic device 500, a display 530 may also be included. The display 530 is communicatively connected to the memory 510 and the processor 520, and is used to display the relevant GUI interactive interface of the distributed cooperation method.
[0119] The scope of protection of the distributed collaboration method described in this disclosure is not limited to the execution order of the steps listed in this disclosure. Any solution implemented by adding, subtracting, or replacing steps in the prior art based on the principles of this disclosure is included within the scope of protection of this disclosure.
[0120] In summary, the distributed collaboration method provided in one or more embodiments of this disclosure enables multi-user collaboration without a cloud server, significantly reducing the demand for cloud resources. Furthermore, this distributed collaboration method shortens the number of nodes in the multi-device synchronization network channel during collaboration, reducing the device-cloud-device synchronization link to device-device, effectively solving problems such as poor collaborative work experience, untimely updates, and incorrect update sequence caused by large fluctuations in the network connection quality between multiple devices and the cloud. Further, this distributed collaboration method expands the scenarios for real-time document collaboration among multiple users, allowing collaboration without a wide area network connection, thus making it applicable to document collaboration in various network scenarios (e.g., near-field Wi-Fi P2P direct connection, Wi-Fi LAN, etc.). Moreover, based on the distributed collaboration method provided in the embodiments of this disclosure, users do not need to store documents on a cloud server, nor do they need to register their information with the cloud, which helps avoid privacy leaks of user documents and personal information, and also lowers the operational threshold for multi-user collaboration.
[0121] Therefore, this disclosure effectively overcomes the various shortcomings of the prior art and has high industrial application value.
[0122] The above embodiments are merely illustrative of the principles and effects of this disclosure and are not intended to limit this disclosure. Any person skilled in the art can modify or alter the above embodiments without departing from the spirit and scope of this disclosure. Therefore, all equivalent modifications or alterations made by those skilled in the art without departing from the spirit and technical concept disclosed in this disclosure should still be covered by the claims of this disclosure.
Claims
1. A method of distributed collaboration, characterized by, include: The first device establishes a communication connection with a device in the collaborative network to join the collaborative network, which is a distributed network containing one or more devices. The first device synchronizes and updates the collaboration objects of other devices in the collaboration network; The process of the first device synchronizing and updating the collaboration objects of other devices in the collaboration network includes: the first device updating its own collaboration objects based on the higher version collaboration objects in the collaboration network, and using its own collaboration objects to update the lower version collaboration objects in the collaboration network.
2. The method of claim 1, wherein, Establishing a communication connection between the first device and devices in the collaborative network includes: The first device establishes a communication connection with the second device in the collaborative network based on the received invitation signal, which is broadcast by the second device.
3. The method of claim 2, wherein, Before the first device joins, the number of devices in the collaborative network is at least 2. Establishing a communication connection between the first device and the devices in the collaborative network further includes: The first device obtains device information in the collaborative network from the second device, and establishes communication connections with other devices in the collaborative network based on the device information.
4. The method of claim 3, wherein, Establishing a communication connection between the first device and other devices in the cooperative network includes: The first device updates the first device list based on the second device list of the second device, wherein the second device list of the second device includes device information in the cooperative network stored by the second device; The first device establishes a communication connection with the third device based on the first device list, wherein the device information of the third device is included in the first device list of the first device. The first device synchronizes with the third device and updates the first device list and the third device list.
5. The method of claim 2, wherein, The first device establishes a communication connection with the second device in the collaborative network based on the received invitation signal, including: The first device authenticates and authorizes the second device based on the invitation signal; After successful authentication, the first device sends an access request to the second device to establish a data channel with the second device and to enable the second device to update the information of the devices participating in the collaboration.
6. The method of claim 5, wherein, The authentication and authorization process between the first device and the second device based on the invitation signal includes: The first device sends an authentication request to the second device to establish an authentication channel between the first device and the second device; The first device sends its user information to the second device through the authentication channel, so that the second device can perform authentication and authorization based on the user information of the first device.
7. The method of claim 5, wherein, After authentication and authorization are completed, the second device sends a token to the first device. The first device then sends an access request to the second device to establish a data channel and to update the information of the cooperating devices, including: The first device receives the token sent by the second device; The first device sends a connection request carrying the token to the second device to establish a connection channel between the second device and the first device; The first device sends an access request carrying the token to the second device through the connection channel, so that the second device can perform validity verification based on the token carried in the access request. If the validity verification is successful, the second device updates the information of the devices participating in the cooperation. The first device establishes at least one data channel connected to the second device.
8. The method of claim 1, wherein, The first device updates its own collaborative objects based on higher-version collaborative objects in the collaborative network and updates lower-version collaborative objects in the collaborative network using its own collaborative objects, including: The first device sequentially obtains the versions of the collaborative objects of the other devices in the collaborative network; For a fourth device in the cooperative network: If the version of the collaboration object of the fourth device is higher than the version of the collaboration object of the first device, then the first device updates its own collaboration object according to the collaboration object of the fourth device, and pushes the updated collaboration object to the devices that have been traversed and have lower version collaboration objects. If the version of the collaboration object of the fourth device is lower than the version of the collaboration object of the first device, the first device pushes its own collaboration object to the fourth device to update the collaboration object of the fourth device synchronously.
9. The method of claim 1, wherein, Also includes: When the first device updates its collaboration object, the first device sends the updated collaboration object to other devices in the collaboration network so that the other devices in the collaboration network update their respective collaboration objects.
10. The method of claim 1, wherein, Also includes: When the first device receives an updated version sent by the fifth device in the collaborative network, the first device updates its own collaborative objects according to the updated version; If the version of the first device's collaborative object is higher than that of the fifth device after the update, the first device sends its own collaborative object to other devices in the collaborative network so that the other devices can update their respective collaborative objects.
11. A method of distributed collaboration, characterized by, include: When the collaboration object of the first device in the collaboration network is updated, the first device sends the updated collaboration object to other devices in the collaboration network so that the other devices update their respective collaboration objects. The collaboration network is a distributed network containing at least two devices. When the first device receives an updated version sent by the second device in the collaborative network, the first device updates its own collaborative objects according to the updated version; The process of the first device synchronizing and updating the collaboration objects of other devices in the collaboration network includes: the first device updating its own collaboration objects based on the higher version collaboration objects in the collaboration network, and using its own collaboration objects to update the lower version collaboration objects in the collaboration network.
12. The method of claim 11, wherein, After the first device updates its own collaboration object according to the updated version, the distributed collaboration method further includes: if the version of the collaboration object of the first device is higher than that of the second device, then the first device sends its own collaboration object to other devices in the collaboration network.
13. A computer readable storage medium having stored thereon a computer program, characterized in that: When the computer program is executed by a processor, it implements the distributed cooperation method as described in any one of claims 1 to 12.
14. An electronic device, comprising: The electronic device includes: A memory that stores a computer program; The processor, which is communicatively connected to the memory, executes the distributed cooperative method according to any one of claims 1 to 12 when it invokes the computer program.