Data transmission method and device for inter-node collaborative service

By determining the data synchronization content and transmission path in the collaborative work office system, combining data compression and blocked packet technology, the problem of collaborative data synchronization under the changes in transmission bandwidth is solved, reliable and real-time data transmission between nodes is achieved, and the user experience of collaborative work is improved.

CN116016695BActive Publication Date: 2025-06-06BEIJING FEIXUN DIGITAL TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211717449.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-12-29
Publication Date
2025-06-06
Estimated Expiration
2042-12-29

AI Technical Summary

Technical Problem

The existing collaborative work office system is difficult to achieve reliable and real-time synchronization of collaborative data between nodes under changing transmission bandwidths, especially in functions such as collaborative browsing, collaborative editing, file sharing and electronic whiteboards. The network instability leads to the inability to transmit audio, video, pictures, text and other data in real time.

Method used

By determining the data and data transmission paths to be synchronized by the current node, data compression and blocked packet technology are adopted to select lossy or lossless compression methods according to the data type, and data is transmitted through the shortest delay or the optimal transmission path to achieve accurate, fast and reliable data transmission.

Benefits of technology

Under the changing transmission bandwidth, data transmission of collaborative services between nodes is realized, ensuring real-time and reliable synchronization of collaborative data, and improving network availability and user experience of collaborative operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116016695B_ABST
    Figure CN116016695B_ABST
Patent Text Reader

Abstract

The present application discloses a data transmission method and device for collaborative services between nodes. The data transmission method includes: determining the data to be synchronized from the current node to the destination node; determining the data transmission path from the current node to the destination node; compressing the data to be synchronized, and when compressing, using different methods to compress according to different types of the data; transmitting the compressed data to the destination node through the data transmission path. In this way, accurate, fast and reliable data transmission is achieved between nodes, which can meet the collaborative service requirements required for collaborative operations between nodes.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of network data transmission, and in particular to a data transmission method and device for collaborative services between nodes. Background Art

[0002] Currently, most of the collaborative office systems set up in various branches and headquarters have functions such as video connection, point-to-point communication, and video monitoring, but have not yet reliably and efficiently realized collaborative work functions such as collaborative browsing, collaborative editing, file sharing, and electronic whiteboards.

[0003] This is because collaborative operations such as collaborative browsing, collaborative editing, file sharing, and electronic whiteboards will generate large-scale concurrent access from users, and will require the pressure of real-time and reliable transmission of multimedia data such as files, audio, and video, which also places higher demands on bandwidth resources. In some application scenarios, the network is unstable, and it is impossible to achieve real-time transmission of audio, video, pictures, text, etc. and retransmission after disconnection.

[0004] To this end, it is necessary to provide a technical solution that can reliably realize smooth synchronization of collaborative data generated during collaborative services between nodes under varying transmission bandwidth. Summary of the invention

[0005] In view of the above problems, the present invention provides a data transmission method and device for collaborative services between nodes, which realizes accurate, fast and reliable data transmission between nodes and can meet the collaborative service requirements required for collaborative operations between nodes.

[0006] In a first aspect, the present invention provides a data transmission method for inter-node collaborative service, comprising:

[0007] Determine the data that the current node needs to synchronize to the destination node;

[0008] Determine the data transmission path from the current node to the destination node;

[0009] Compressing the data to be synchronized, wherein different methods are used for compression according to different types of the data;

[0010] The compressed data is transmitted to the destination node through the data transmission path.

[0011] Further, determining the data to be synchronized from the current node to the destination node includes:

[0012] Determine the part where the index of the data on the current node is larger than the index of the data on the destination node;

[0013] The data of the portion with a larger index is used as the data to be synchronized to the destination node.

[0014] Further, determining a data transmission path from the current node to the destination node includes:

[0015] Determine the number of intermediate nodes respectively included in a plurality of data transmission paths from the current node to the destination node;

[0016] Determine the transmission bandwidths respectively corresponding to the multiple data transmission paths;

[0017] According to at least one type of the data, at least one data transmission path with a smaller number of intermediate nodes or a larger transmission bandwidth is used as a data transmission path from the current node to the destination node.

[0018] Further, determining a data transmission path from the current node to the destination node includes:

[0019] Using different test messages encapsulating different types of data, sending them to a destination node through multiple data transmission paths, and receiving each response message from the destination node;

[0020] Determine different shortest-delay data transmission paths corresponding to different types of data according to the timestamps recorded in the response messages;

[0021] The data transmission path with the shortest delay corresponding to the type of the data to be synchronized is used as the data transmission path from the current node to the destination node.

[0022] Furthermore, when the data to be synchronized includes different types of data at the same time,

[0023] Determining the data transmission path from the current node to the destination node includes: respectively determining the data transmission paths with the shortest delays corresponding to the different types of data;

[0024] Correspondingly, transmitting the compressed data to the destination node through the data transmission path includes: compressing different types of data respectively and transmitting them to the destination node through their respective data transmission paths with the shortest delay.

[0025] Furthermore, it also includes:

[0026] Determine each transmission bandwidth of different data transmission paths corresponding to the different types of data;

[0027] The data is transmitted in such a manner that the smaller the transmission bandwidth, the smaller the size of the blocks when the corresponding data block packets are transmitted.

[0028] Furthermore, the compression is performed in different ways according to different types of the data, including:

[0029] For video type data or audio type data, compress in a lossy manner;

[0030] Image data or text data is compressed in a lossless manner.

[0031] In a second aspect, the present invention provides a data transmission device for inter-node collaborative service, comprising:

[0032] A data determination unit, used to determine the data to be synchronized from the current node to the destination node;

[0033] A transmission path determination unit, used to determine a data transmission path from a current node to a destination node;

[0034] A data compression unit, used to compress the data to be synchronized, and when compressing, different methods are used for compression according to different types of the data;

[0035] A data transmission unit is used to transmit the compressed data to the destination node through the data transmission path.

[0036] In a third aspect, the present invention provides a computing device, comprising: a processor, and a memory, wherein the memory stores program instructions, and when the program instructions are executed by the processor, the processor executes the data transmission method for inter-node collaborative services as described in the first aspect.

[0037] In a fourth aspect, the present invention provides a storage medium storing program instructions, which, when executed by a processor, causes the processor to execute the data transmission method for inter-node collaborative services as described in the first aspect.

[0038] These and other aspects of the invention will become apparent from the following description of the embodiment(s). BRIEF DESCRIPTION OF THE DRAWINGS

[0039] Figure 1 A flowchart of a data transmission method for inter-node collaborative service according to an embodiment of the present application;

[0040] Figure 2 This is an application diagram of a data transmission method for inter-node collaborative service according to an embodiment of the present application;

[0041] Figure 3 A schematic diagram of the composition of a data transmission device for inter-node collaborative service according to an embodiment of the present application;

[0042] Figure 4 A schematic diagram of the composition of a collaborative service engine deployed with a data transmission device for inter-node collaborative service according to an embodiment of the present application;

[0043] Figure 5 A schematic diagram of the deployment of the data transmission method for inter-node collaborative service according to an embodiment of the present application when implemented on multiple nodes;

[0044] Fig. 6A A schematic diagram of a process for determining synchronization data in a data transmission method for inter-node collaborative service according to an embodiment of the present application;

[0045] Figure 6B Another flowchart of determining synchronization data in the data transmission method for inter-node collaborative service according to an embodiment of the present application;

[0046] Figure 7 A schematic diagram of the composition of a computing device according to an embodiment of the present application. DETAILED DESCRIPTION

[0047] In order to make the purpose, technical scheme and advantages of the embodiments of the present application clearer, the technical scheme in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, rather than all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in the field without making creative work are within the scope of protection of the present application. In addition, the technical features in the various embodiments or single embodiments provided in the present application can be arbitrarily combined with each other to form a feasible technical solution. This combination is not subject to the constraints of the sequence of steps and / or the structural composition mode, but must be based on the ability of ordinary technicians in the field to achieve. When the combination of technical solutions is contradictory or cannot be achieved, it should be considered that the combination of such technical solutions does not exist and is not within the scope of protection required by the present application.

[0048] In order to accurately describe the technical content of the present application and to accurately understand the present application, the following explanations or definitions are given for the terms used in the present specification before describing the specific implementation methods.

[0049] Engine refers to the core component of a developed program or software system. Using the engine, developers can quickly build and lay out the functions required by the program, or use it to assist the operation of the application. Generally speaking, the engine is the supporting part of a program or a system, such as a storage engine, search engine, game engine, etc.

[0050] Collaborative Browsing refers to the act of accessing and controlling a web page with one or more other participants at the same time. Unlike simply supporting multiple users to do different things at the same time without affecting each other, collaborative browsing allows a group of people to perform synchronized activities, such as one person's actions or behaviors on a web page displayed on his or her screen will be synchronously seen on the web page with the same access address displayed on the screens of other participants.

[0051] Electronic whiteboard usually refers to interactive electronic whiteboard software, such as the electronic whiteboard installed on the intelligent interactive all-in-one machine. Usually, the intelligent interactive all-in-one machine has a large screen. In addition to being used as a display tool, it can also perform further operations on the displayed operable objects, such as editing word processing files (such as ppt, word, pdf, txt, etc.), editing pictures, playing audio and video, etc.

[0052] The technical solution of the present application is described in detail below in conjunction with the accompanying drawings.

[0053] Embodiment 1

[0054] like Figure 1 As shown, the data transmission method for inter-node collaborative service in an embodiment of the present application includes the following steps:

[0055] S10: Determine the data that the current node needs to synchronize to the destination node;

[0056] S20: Determine a data transmission path from the current node to the destination node;

[0057] S30: compressing the data to be synchronized, and compressing the data in different ways according to different types of the data;

[0058] S40: Transmit the compressed data to the destination node through the data transmission path.

[0059] like Figure 2 As shown, when providing the collaborative service required for collaborative operations between nodes, the collaborative service engine A corresponding to the current node will synchronize the received collaborative data such as group business data and group management data to other nodes in the same collaborative operation group, specifically, to the collaborative service engine B and / or collaborative service engine C corresponding to other nodes. At this time, the other node may be the destination node in the aforementioned step S10.

[0060] As mentioned above, when the current node synchronizes data to the destination node, first the current node determines the data that the current node wants to synchronize to the destination node; then, it determines the data transmission path from the current node to the destination node; at the same time, the data to be synchronized is compressed, and when compressing, different methods are used for compression according to different types of data; finally, the compressed data is transmitted to the destination node through the data transmission path. In this way, the collaborative service engine corresponding to the current node and the collaborative service engines corresponding to other nodes in the same collaborative operation group realize accurate, fast and reliable data transmission, which can meet the collaborative service requirements required for collaborative operations between nodes, that is, the collaborative data exchange requirements required for collaborative operations between nodes.

[0061] Embodiment 2

[0062] In this embodiment, the method for determining the data to be synchronized from the current node to the destination node is as follows:

[0063] Determine the part where the index of the data on the current node is larger than the index of the data on the destination node;

[0064] The data of the portion with a larger index is used as the data to be synchronized to the destination node.

[0065] In the above, the index of the data can be a version number used to mark the order of data generation time. For example, the collaborative service engine corresponding to each node updates the version number every time it saves collaborative data. For example, the current system time is accurate to the second level as the version number, such as 202211041420 as the index of a collaborative data. In this way, using the version number used to mark the order of data generation time as the index of the data is conducive to accurate and reliable data management, and is also conducive to convenient comparison of the order of data generation time. If one index is greater than another index, it usually means that the system time corresponding to the index is later; and if one index is less than another index, it usually means that the system time corresponding to the index is earlier.

[0066] Referring to the above description, when the collaborative service engine corresponding to any node in the same collaborative work group receives any newly generated collaborative data, it will synchronize the collaborative data to the collaborative service engines corresponding to other nodes in the same collaborative work group. Given that the collaborative service engines corresponding to the nodes in the same collaborative work group may not be online at the same time and may not be reachable in real time, the index of any data on the current node (such as cached in its corresponding collaborative service engine) may be larger, the same, or smaller than the index of the corresponding data on the destination node (such as cached in its corresponding collaborative service engine).

[0067] In the above, when determining the data to be synchronized from the current node to the destination node, first determine the part of the data on the current node whose index is larger than the index of the data on the destination node; then use the data of the part with the larger index as the data to be synchronized to the destination node. In this way, when the current node synchronizes collaborative data to the destination node, only the part of the data with the larger index on the current node or the part of the data that has not been stored on the destination node is sent to the destination node. In this way, the "reduction" strategy is implemented in an incremental update manner, which reduces the amount of data when synchronizing between nodes, and is conducive to achieving shorter delays when synchronizing data between nodes.

[0068] In this way, by comparing the size of the data index, the current node can synchronize the collaborative data to the destination node in an incremental update manner, which is conducive to achieving data consistency between nodes in the same collaborative work group, reducing the delay during data synchronization, and providing more friendly collaborative services when working collaboratively between nodes, which is conducive to improving the user experience of multiple users during collaborative work.

[0069] Embodiment 3

[0070] When working collaboratively between nodes, each user generates collaborative data by operating the client of each collaborative application set on their own user terminal. Because there are many types of collaborative applications, and each collaborative application may generate multiple types of data, such as video, audio, pictures, text, etc., the data to be synchronized by each node in the same collaborative work group also has multiple data types.

[0071] Typically, the servers where the collaborative service engines corresponding to the nodes in the same collaborative work group are located are distributedly deployed in multiple fixed work locations and are set in at least one local area network. Based on factors such as network topology or network bandwidth, there are usually multiple data transmission paths between the collaborative service engines corresponding to the nodes.

[0072] For example, the nodes at the two endpoints of path A and path B are nodes a and b respectively, but the number of other intermediate nodes passed by path A and path B, the positions of other intermediate nodes in the network, and the transmission bandwidth between adjacent nodes may be different. When the data to be synchronized between nodes a and b is text, the path A connecting the corresponding collaborative service engines of nodes a and b has the fastest transmission. This is because although the transmission bandwidth of path A is small, the number of nodes on path A is small, the cumulative transmission distance between nodes is short, and text-type data with low bandwidth requirements can be transmitted faster. When the data to be synchronized between nodes a and b is video, the path B connecting the corresponding collaborative service engines of nodes a and b has the fastest transmission. This is because although the transmission distance of path B is long, the transmission bandwidth on path B (such as taking the minimum, maximum, median or mean value of the network bandwidth between adjacent nodes on the path as the transmission bandwidth of the path) is large, and video-type data with high bandwidth requirements can be transmitted faster on path B, which is conducive to avoiding bottleneck effects and making the overall pass rate of collaborative data higher. Therefore, before performing data synchronization between nodes, it is necessary to determine a suitable data transmission path from the current node to the destination node.

[0073] According to the parameters of the network communication device on the physical layer in the network topology, each transmission path can be qualitatively evaluated, and a data transmission path suitable for the type of current data can be determined. In this embodiment, in step S20, determining the data transmission path from the current node to the destination node includes:

[0074] Determine the number of intermediate nodes respectively included in a plurality of data transmission paths from the current node to the destination node;

[0075] Determine the transmission bandwidths respectively corresponding to the multiple data transmission paths;

[0076] According to at least one type of the data, at least one data transmission path with a smaller number of intermediate nodes or a larger transmission bandwidth is used as a data transmission path from the current node to the destination node.

[0077] In the above, the number of intermediate nodes respectively included in the multiple data transmission paths from the current node to the destination node is determined; the transmission bandwidths respectively corresponding to the multiple data transmission paths are determined; and according to at least one type of the data, at least one data transmission path with fewer intermediate nodes or larger transmission bandwidth is used as the data transmission path from the current node to the destination node. In this way, by qualitatively evaluating each transmission path, a suitable data transmission path from the current node to the destination node can be determined.

[0078] Referring to the above description, when the data to be synchronized between nodes a and b is text, it is transmitted using path A. In this way, text-type data with low bandwidth requirements can be transmitted faster using path A, which is conducive to reducing transmission delay. When the data to be synchronized between nodes a and b is video, it is transmitted using path B. In this way, video-type data with high bandwidth requirements can be transmitted faster using path B, which is conducive to reducing transmission delay and improving network availability.

[0079] Referring to the above description, each user generates each collaborative data by operating the client of each collaborative application set on their respective user terminals. On the one hand, there are many kinds of collaborative applications, and on the other hand, each collaborative application may generate multiple types of data. And the server where the collaborative service engine corresponding to each node in the same collaborative operation group is located is distributedly deployed, and the current node may belong to multiple collaborative operation groups. At the same time, it may synchronize different collaborative data with multiple destination nodes through different data transmission paths. Therefore, the transmission bandwidth in any data transmission path may change and fluctuate dynamically. The above method of qualitatively evaluating the transmission capacity of each transmission path for different types of data can be further adjusted to determine the appropriate data transmission path based on the shortest delay determined after quantitative testing. In this way, when synchronizing data between nodes, a data transmission path with a shorter delay from the current node to the destination node can be used, which is conducive to reducing transmission delays and improving network availability.

[0080] In this embodiment, in step S20, determining the data transmission path from the current node to the destination node includes:

[0081] Using different test messages encapsulating different types of data, sending them to a destination node through multiple data transmission paths, and receiving each response message from the destination node;

[0082] Determine different shortest-delay data transmission paths corresponding to different types of data according to the timestamps recorded in the response messages;

[0083] The data transmission path with the shortest delay corresponding to the type of the data to be synchronized is used as the data transmission path from the current node to the destination node.

[0084] The above timestamps, depending on the time granularity, can be the current system time accurate to the second level as a timestamp, such as 202211031515, or the current system time accurate to the millisecond level as a timestamp, such as 202211031515100. Naturally, if the time granularity is too small, it will not only increase the amount of calculation when generating timestamps, but also increase the difficulty of managing timestamps and using timestamps. Therefore, the time granularity used by the timestamp can be flexibly set according to the processing capabilities of the collaborative service engine corresponding to each node. In the above, the timestamp when the current node sends data is the same by default, while the timestamp when each destination node receives data is different by default.

[0085] As described above, in the same collaborative operation group, each transmission path is tested for different types of data, and the transmission path with the shortest delay for each type of data can be obtained. Naturally, there is also a situation where the transmission paths with the shortest delay for different types of data are the same.

[0086] In the above, different test messages encapsulating different types of data are used, sent to the destination node through multiple data transmission paths, and each response message from the destination node is received; based on the timestamps recorded in the response messages, the different shortest delay data transmission paths corresponding to the different types of data are determined; the shortest delay data transmission path corresponding to the type of data to be synchronized is used as the data transmission path from the current node to the destination node.

[0087] In this way, the data transmission path with the shortest delay corresponding to the type of data to be synchronized can be used as the data transmission path from the current node to the destination node, which is conducive to using the path with the shortest delay to transmit the data to be synchronized, and is conducive to achieving shorter delays. When working collaboratively between nodes, more friendly collaborative services are provided, which is conducive to improving the user experience of multiple users during collaborative work.

[0088] In this way, the “reduction” strategy is implemented in the form of the shortest delay data transmission path, reducing the transmission delay during synchronization between nodes.

[0089] In this embodiment, when the data to be synchronized includes different types of data at the same time, in the aforementioned step S20, determining the data transmission path from the current node to the destination node includes: respectively determining the respective shortest delay data transmission paths corresponding to the different types of data; accordingly, transmitting the compressed data to the destination node through the data transmission path, including: compressing the different types of data separately and transmitting them to the destination node through their respective shortest delay data transmission paths.

[0090] As mentioned above, the respective shortest delay data transmission paths corresponding to the different types of data are determined, which can be implemented separately with reference to the above description and will not be repeated. Also, by transmitting multiple types of data in parallel through multiple transmission paths, different types of data are transmitted in parallel through their respective shortest delay paths, so that multiple types of data can arrive at the destination node at the same time, which is conducive to reducing the delay in data synchronization between nodes, providing more friendly collaborative services when working together between nodes, and improving the user experience of multiple users during collaborative work.

[0091] In this embodiment, referring to the above description, when the data to be synchronized between nodes a and b include both text type and video type, the text data is transmitted through path A, and the video data is transmitted through path B. Then, the video and text to be synchronized can be transmitted to the destination node with approximately the same delay. For example, when the data to be synchronized between nodes a and b is a video conference, it can be achieved that the video conference picture played at the destination node and the speech of the video conference (such as simultaneous interpretation) are basically synchronized, and the speech has basically no lag or advance phenomenon.

[0092] In this embodiment, it also includes: determining each transmission bandwidth of different data transmission paths corresponding to the different types of data; transmitting the data in a manner that the smaller the transmission bandwidth, the smaller the size of the block when the corresponding data is transmitted in the block packet transmission.

[0093] In the above, the transmission bandwidths of the different data transmission paths corresponding to the different types of data are determined in real time; the data is transmitted in such a way that the smaller the transmission bandwidth, the smaller the size of the corresponding data block packets when transmitted. In this way, it is possible to use smaller block packets when the transmission bandwidth is low and larger block packets when the transmission bandwidth is high, which is beneficial to reduce the peak value of the code stream on the data transmission path and improve the throughput rate under the current transmission bandwidth.

[0094] As mentioned above, after determining the transmission path with the shortest delay, when transmitting data, the data is divided into blocks and then transmitted, which can better adapt to the transmission bandwidth on the physical link. In this way, the "sparse" strategy is implemented by dynamically adjusting the size of the blocks when packaging, which improves the throughput rate under low bandwidth and helps reduce the transmission delay when synchronizing between nodes.

[0095] In this embodiment, in step S30, the compression is performed in different ways according to different types of the data, including:

[0096] Video data or audio data is compressed in a lossy manner; image data or text data is compressed in a lossless manner.

[0097] In this way, for video data or audio data, a high compression rate can be achieved by compressing in a lossy manner, so as to further reduce the amount of data that needs to be transmitted on the transmission path. In this way, for image data or text data, a lossless method is used to compress, which is adapted to the characteristics of small data volume, so that the amount of data that needs to be transmitted on each data transmission path is better matched with its current transmission bandwidth.

[0098] Lossy compression, also known as lossy compression, takes advantage of the fact that humans are insensitive to certain frequency components in images or sound waves, allowing a certain amount of information to be lost during the compression process. Although the original data cannot be fully restored, the lost part has less impact on the understanding of the original image or sound wave, and a much larger compression ratio is achieved. For example, audio can achieve a compression ratio of 10:1 with little noticeable quality degradation, and video can achieve a compression ratio of 300:1 with a slight decrease in observation quality. The video file format after lossy compression is usually any of the following: MPEG, AVI, ASF, MOV. The audio file format after lossy compression is usually any of the following: AIFF, MPEG, MP3, MPEG-4, MIDI, MIDI, WMA.

[0099] Lossless compression is achieved by optimizing the way the file is stored, such as using an algorithm to represent repeated data information, such as saving the same color information only once. Lossless compressed files can be completely restored without affecting the file content. The image file format after lossless compression is usually any of the following: BMP, PCX, TIFF, GIF, TGA, PNG, RAW. The text file format after lossless compression usually remains unchanged.

[0100] In this way, by adapting the synchronized collaborative data to the transmission bandwidth and transmission path, it is possible to achieve real-time and reliable transmission of video, audio, pictures and text when there is a wired network transmission path between nodes; and real-time and reliable transmission of pictures and text when there are wireless networks, satellite communications, messages and other transmission paths with low bandwidth and high jitter between nodes. This improves the data throughput rate overall, facilitates shorter delays, and provides more friendly collaborative services when working collaboratively between nodes.

[0101] Embodiment 4

[0102] like Figure 3 As shown, the data transmission device 200 for inter-node collaborative service in an embodiment of the present application includes:

[0103] A data determination unit 210, used to determine the data to be synchronized from the current node to the destination node;

[0104] The transmission path determination unit 220 is used to determine the data transmission path from the current node to the destination node;

[0105] A data compression unit 230, configured to compress the data to be synchronized, wherein different methods are used for compression according to different types of the data;

[0106] The data transmission unit 240 is used to transmit the compressed data to the destination node through the data transmission path.

[0107] The specific operation steps performed by the data determination unit 210, the transmission path determination unit 220, the data compression unit 230 and the data transmission unit 240 may refer to the aforementioned steps S10, S20, S30 or S40 respectively, and will not be described in detail.

[0108] In this embodiment, the data transmission device 200 for inter-node collaborative service can be set in the aforementioned collaborative service engine. Figure 4 As shown, the collaborative service engine is provided with a plurality of modules, wherein the static synchronization module for packet service data and the real-time synchronization module for packet service data are used to realize the synchronization of the packet service data generated when the nodes perform collaborative operations. The static synchronization module for packet management data and the real-time synchronization module for packet management data are used to realize the synchronization of the packet management data generated when the nodes perform group information management. The associated node status management module is used to realize the status management of whether the collaborative service engines corresponding to the respective destination nodes are online and reachable in real time through heartbeat detection when the respective nodes in the same collaborative operation group are respectively used as destination nodes. The bandwidth detection module is used to realize the real-time transmission bandwidth detection of each data transmission path. The service priority management module is used to realize the priority management of the packet service data generated for each collaborative application, so as to give priority to the transmission of the packet service data with higher service priority on the data transmission path when the transmission bandwidth is low.

[0109] In the above, in static synchronization, the collaborative data is updated between the collaborative service engines, which is the method defined in the aforementioned steps S10 to S40. In real-time synchronization, the collaborative data is also updated in real time on the user's client, which will not be described in detail.

[0110] In some embodiments, the collaborative service engine is also provided with a log monitoring module, a resource management module and a system configuration module, which are used to monitor the usage of each collaborative service engine and configure the relevant parameters required by the collaborative service engine. For example, the log monitoring module is used to monitor the usage of the collaborative service engine and to view the log of the collaborative service engine; the resource management module is used to monitor the group business data and the group management data; the system configuration module is used to configure the basic information of each collaborative service engine, including setting the timing period of the heartbeat detection between nodes and the timing period of the static synchronization of data. For example, the heartbeat detection is once every 1 hour and the static synchronization is once every 4 hours.

[0111] Thus, the collaborative data exchange function and collaborative service function provided by the collaborative service engine may include:

[0112] 1) Associated node status management function: manage the online status of associated nodes through heartbeat detection;

[0113] 2) Static synchronization of group management data: By statically synchronizing group service data between associated nodes, the consistency of group service data across the entire network is ensured;

[0114] 3) Real-time synchronization of grouped service data: By synchronizing the grouped service data generated by the associated nodes in real time, the service data in the service group is sent to the online associated nodes;

[0115] 4) Group information static synchronization function: static synchronization of group management data through associated nodes to ensure the consistency of group information between associated nodes;

[0116] 5) Real-time synchronization of group information: By real-time synchronization of group management data, the group information data such as addition, deletion and modification of business groups are synchronized to the associated nodes in real time;

[0117] 6) Bandwidth detection function: Real-time detection of the transmission bandwidth between associated nodes, giving priority to sending high-priority business data under low bandwidth;

[0118] 7) Business priority management function: Provides an interface for setting business priorities and synchronizes data with high business priority in low bandwidth conditions.

[0119] In this way, the collaborative service engine provides controllable cross-domain collaborative work support capabilities in a network environment, and can support the collaborative work needs of multiple users for various collaborative applications within or across domains. For example, when working collaboratively between nodes, it provides more friendly collaborative data transmission services, such as executing the aforementioned steps S10 to S40.

[0120] In this way, multiple collaborative service engines can serve as the basic supporting applications of the collaborative office system, providing the ability to distribute and share multimedia data in a single fixed workplace scenario or in multiple fixed workplace scenarios that are far apart, thereby realizing the collaborative browsing, collaborative editing, file sharing, electronic whiteboard and other functions required for collaborative work.

[0121] like Figure 5 As shown, in workplace 1000, the respective terminal devices, application servers, and collaborative servers not equipped with the aforementioned collaborative service engine of multiple users form a collaborative operation network of the local domain, in which each user is equal, and any user can belong to multiple collaborative operation groups. Similarly, in workplace 2000, the respective terminal devices, application servers, and collaborative servers not equipped with the aforementioned collaborative service engine of multiple users form a collaborative operation network of the local domain, in which each user is equal, and any user can belong to multiple collaborative operation groups.

[0122] In cross-domain collaborative work, any user in the workplace 1000 belongs to the same collaborative work group as any user in another workplace 2000. When a user accesses any collaborative application (such as web access to an application server), he needs to use the collaborative data exchange service provided by the collaborative service engine corresponding to his current node (such as web access to a collaborative server) and the collaborative data exchange service provided by the collaborative service engine corresponding to his destination node to complete the cross-domain collaborative work.

[0123] In some embodiments, Fig. 6A As shown, the cross-domain collaborative service engine A acts as the current node and implements the aforementioned steps S10 to S40. When synchronizing collaborative data (such as static synchronization of group management data) with the destination node, that is, the collaborative service engine B, when the collaborative service engine A is started, it determines whether the collaborative service engine B is its associated node; if it is its associated node, it periodically sends a heartbeat detection message to the collaborative service engine B until it receives a valid heartbeat message sent by the collaborative service engine B; updates the online status of the associated node; the collaborative service engine B replies to the collaborative service engine A with a message indicating a successful heartbeat detection, queries the collaborative service engine A for the group information version, and sends the group information version associated with the collaborative service engine B saved by the collaborative service engine A to the collaborative service engine B after the query; the collaborative service engine B receives the group information version and compares whether it is higher than the group information version of the current node. If it is, it requests the corresponding group management data from the collaborative service engine A; the collaborative service engine A returns the corresponding group management data; the collaborative service engine B saves the group management data and the latest group information version. At this point, the static collaboration of the group management data ends.

[0124] In this way, the collaborative service engine A corresponding to the current node and the collaborative service engine B corresponding to other nodes in the same collaborative work group realize accurate, fast and reliable data transmission, which can meet the collaborative service requirements required for collaborative work between nodes, that is, the collaborative data exchange requirements required for collaborative work between nodes.

[0125] In some embodiments, Figure 6B As shown, the cross-domain collaborative service engine A implements the aforementioned steps S10 to S40, and when synchronizing collaborative data with the collaborative service engine B (such as static synchronization of packet business data), the collaborative service engine A determines whether the service engine B is its associated node when it is started. If it is its associated node, it periodically sends a heartbeat detection message to the collaborative service engine B to determine whether the heartbeat detection is successful. If the heartbeat detection is unsuccessful, the online status of the associated node is updated (such as service engine B is unreachable, such as ISOFF), and waits for the next heartbeat detection; if the detection is successful, the online status of the associated node is updated (such as service engine B is reachable, such as ISON). Collaborative service engine A queries collaborative service engine B for the group service data version. Collaborative service engine B receives the query message from collaborative service engine A and returns all group service data versions of users on collaborative service engine A stored on collaborative service engine B. Collaborative service engine A receives the information about the group service data version returned by collaborative service engine B and compares the version information of collaborative service engine A with the version information queried from service engine B. When it is determined that the version information returned by service engine B is higher than the version information on service engine A, it sends a message to collaborative service engine B to download the specified group service data. Collaborative service engine B receives the download message from collaborative service engine A and returns the specified group service data to service engine A. Service engine A receives the downloaded group service data and updates the group service data stored in the database corresponding to the server and the cache of the group service data on the server according to the received group service data, and updates the group service data version. At this point, the static collaboration of group service data ends.

[0126] In this way, the collaborative service engine A corresponding to the current node and the collaborative service engine B corresponding to other nodes in the same collaborative work group realize accurate, fast and reliable data transmission, which can meet the collaborative service requirements required for collaborative work between nodes, that is, the collaborative data exchange requirements required for collaborative work between nodes.

[0127] like Figure 7 As shown, the computing device 900 of the embodiment of the present application includes: a processor 910, a memory 920, and may also include a communication interface 930. It should be understood that the Figure 7The communication interface 930 in the computing device 900 shown in the figure can be used to communicate with other devices. Among them, the processor 910 can be connected to the memory 920. The memory 920 can be used to store the program code and data. Therefore, the memory 920 can be a storage unit inside the processor 910, or an external storage unit independent of the processor 910, or a component including a storage unit inside the processor 910 and an external storage unit independent of the processor 910.

[0128] Optionally, the computing device 900 may further include a bus. The memory 920 and the communication interface 930 may be connected to the processor 910 via a bus. The bus may be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus. The bus may be divided into an address bus, a data bus, a control bus, and the like.

[0129] It should be understood that in the embodiment of the present application, the processor 910 may adopt a central processing unit (CPU). The processor may also be other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or the processor may also be any conventional processor, etc. Alternatively, the processor 910 may adopt one or more integrated circuits to execute relevant programs to implement the technical solutions provided in the embodiment of the present application.

[0130] The memory 920 may include a read-only memory and a random access memory, and provides instructions and data to the processor 910. A portion of the processor 910 may also include a nonvolatile random access memory. For example, the processor 910 may also store information on the device type.

[0131] When the computing device 900 is running, the processor 910 executes the computer execution instructions in the memory 920 to perform the operation steps based on the aforementioned data transmission method for inter-node collaborative service.

[0132] It should be understood that the computing device 900 according to the embodiment of the present application can correspond to the corresponding subjects in the methods according to the embodiments of the present application, and the above-mentioned and other operations and / or functions of each module in the computing device 900 are respectively for implementing the corresponding processes of each method of the present embodiment. For the sake of brevity, they will not be repeated here.

[0133] The functions of the above devices can be realized by executing a program (software) by a processor. In addition, they can also be realized by hardware such as LSI (Large Scale Integration) and ASIC (Application Specific Integrated Circuit), or by a combination of software and hardware.

[0134] The words "first, second, third, etc." or module A, module B, module C and the like used throughout this application are only used to distinguish similar objects and do not represent a specific ordering of the objects. It is understood that the specific order or sequence can be interchanged where permitted.

[0135] Throughout the present application, the reference numerals representing the steps, such as S10, S20, etc., do not necessarily mean that the steps will be executed in this manner. If permitted, the order of the steps may be interchanged, or the steps may be executed simultaneously.

[0136] The term "comprising" used throughout this application should not be interpreted as being limited to the contents listed thereafter; it does not exclude other structural elements or steps. Therefore, it should be interpreted as specifying the existence of the technical features, integral bodies, steps or components mentioned, but does not exclude the existence or addition of one or more other technical features, integral bodies, steps or components and groups thereof.

[0137] It can be understood that those skilled in the art can combine the features mentioned in one or more embodiments mentioned in the entire application with the features in other embodiments in any appropriate manner to implement the application.

[0138] Note that the above are only preferred embodiments of the present application and the technical principles used. Those skilled in the art will understand that the present application is not limited to the specific embodiments described herein, and that various obvious changes, readjustments and substitutions can be made by those skilled in the art without departing from the scope of protection of the present application. Therefore, although the present application is described in more detail through the above embodiments, the present application is not limited to the above embodiments, and may also include more other equivalent embodiments without departing from the technical concept of the present application, all of which belong to the scope of protection of the present application.

Claims

1. A data transmission method for collaborative services between nodes, It is characterized in that include: Determine data to be synchronized from the current node to the destination node, wherein the data to be synchronized includes different types of data; Determining a data transmission path from the current node to the destination node includes: respectively determining the data transmission paths with the shortest delays corresponding to the different types of data; Compressing the data to be synchronized, wherein different methods are used for compression according to different types of the data; Transmitting the compressed data to the destination node through the data transmission path includes: compressing different types of data respectively and transmitting them to the destination node through their respective data transmission paths with the shortest delay.

2. The method according to claim 1, It is characterized in that The step of determining data to be synchronized from the current node to the destination node includes: Determine the part where the index of the data on the current node is larger than the index of the data on the destination node; The data of the portion with a larger index is used as the data to be synchronized to the destination node.

3. The method according to claim 1, It is characterized in that Determining a data transmission path from a current node to a destination node includes: Determine the number of intermediate nodes respectively included in a plurality of data transmission paths from the current node to the destination node; Determine the transmission bandwidths respectively corresponding to the multiple data transmission paths; According to at least one type of the data, at least one data transmission path with a smaller number of intermediate nodes or a larger transmission bandwidth is used as a data transmission path from the current node to the destination node.

4. The method according to claim 1, It is characterized in that Determining a data transmission path from a current node to a destination node includes: Using different test messages encapsulating different types of data, sending them to a destination node through multiple data transmission paths, and receiving each response message from the destination node; Determine different shortest-delay data transmission paths corresponding to different types of data according to the timestamps recorded in the response messages; The data transmission path with the shortest delay corresponding to the type of the data to be synchronized is used as the data transmission path from the current node to the destination node.

5. The method according to claim 1, It is characterized in that Also includes: Determine each transmission bandwidth of different data transmission paths corresponding to the different types of data; The data is transmitted in such a manner that the smaller the transmission bandwidth, the smaller the size of the blocks when the corresponding data block packets are transmitted.

6. The method according to claim 1, It is characterized in that The compression is performed in different ways according to different types of the data, including: For video type data or audio type data, compress in a lossy manner; Image data or text data is compressed in a lossless manner.

7. A data transmission device for inter-node collaborative service, It is characterized in that include: A data determination unit, used to determine data to be synchronized from the current node to the destination node, wherein the data to be synchronized includes different types of data at the same time; The transmission path determination unit is used to determine the data transmission path from the current node to the destination node, including: respectively determining the data transmission paths with the shortest delays corresponding to the different types of data; A data compression unit, used to compress the data to be synchronized, and when compressing, different methods are used for compression according to different types of the data; The data transmission unit is used to transmit the compressed data to the destination node through the data transmission path, including: compressing different types of data respectively and transmitting them to the destination node through their respective data transmission paths with the shortest delay.

8. A computing device, It is characterized in that include: A processor, and a memory, wherein program instructions are stored in the memory, and when the program instructions are executed by the processor, the processor executes the data transmission method for inter-node collaborative service as described in any one of claims 1 to 6.

9. A storage medium, It is characterized in that The storage medium stores program instructions, and when the program instructions are executed by the processor, the processor executes the data transmission method for inter-node collaborative service according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Data storage processing method for reducing write amplification and a system thereof

    CN109800182A

  • Ad hoc network cooperative transmission path construction method based on cooperative relay transmission

    CN113766601A