Data processing method, server and electronic whiteboard
By establishing a data distribution tree on the server side and using child nodes to forward data, the problem of data loss when multiple electronic whiteboards display writing trajectories in real time is solved, achieving content consistency and reducing server load.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-11-30
- Publication Date
- 2026-03-24
AI Technical Summary
In scenarios where multiple electronic whiteboards are used for writing simultaneously and the writing trajectory is displayed in real time, traditional messaging system software is prone to causing handwriting data loss, resulting in inconsistent content displayed on each electronic whiteboard.
The server establishes a data distribution tree based on the registration request of the electronic whiteboard. After preprocessing the data, it sends the target data to each child node through the data distribution tree, reducing the direct data transmission from the server to each electronic whiteboard and using the child nodes in the data distribution tree to forward the data.
This effectively prevented data loss, ensured consistency of content displayed on all electronic whiteboards, and reduced server load.
Smart Images

Figure CN116204299B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] Embodiments of the present application relate to the technical field of computer, and particularly relate to a data processing method, a server and an electronic whiteboard. BACKGROUND
[0002] As a digital teaching demonstration device replacing traditional blackboard and chalk, the electronic whiteboard can completely be separated from mouse and keyboard, and can use hand or specific pen to edit, annotate and save computer files on the electronic whiteboard, thereby bringing great convenience to users, and has been widely used in various conferences, seminars and school teaching.
[0003] In some scenarios, writing needs to be performed on multiple electronic whiteboards at the same time, and writing tracks need to be displayed on other electronic whiteboards in real time. For example, in a distance teaching class, two or more students may need to use different electronic whiteboards to answer questions in different classrooms, and the writing tracks need to be displayed on the electronic whiteboards in multiple classrooms in real time. At this time, since multiple electronic whiteboards generate writing tracks at the same time, and the writing tracks change constantly during writing, the server needs to send a large amount of writing track data to all electronic whiteboards participating in the distance teaching class in real time.
[0004] In the above scenario, if a traditional message system software is used to transmit the writing track data, the writing track data is likely to be lost, thereby causing the content displayed on the electronic whiteboards to be inconsistent. SUMMARY
[0005] Embodiments of the present application provide a data processing method, a server and an electronic whiteboard, which can effectively prevent the loss of writing track data transmitted between electronic whiteboards, and ensure that the content displayed on the electronic whiteboards is consistent.
[0006] In some embodiments, the present application provides a data processing method, which comprises:
[0007] The server receives registration requests sent by multiple electronic whiteboards in sequence, and establishes a data distribution tree according to the registration requests sent by each electronic whiteboard; wherein the root node of the data distribution tree is the server, and each electronic whiteboard is a node of the data distribution tree; the degree of each node in the data distribution tree is less than or equal to a preset threshold; each child node in the data distribution tree is in communication connection with its parent node, and the transmission delay of each child node to the root node is less than the transmission delay when it uses other nodes as parent nodes;
[0008] The server receives data sent by at least one of the plurality of electronic whiteboards, preprocesses the data, and then sends the preprocessed target data to each child node of the server according to the data distribution tree; wherein, each node in the data distribution tree that has child nodes forwards the received target data to its corresponding child node after receiving the target data.
[0009] In one feasible implementation, establishing a data distribution tree based on the registration requests sent by each of the electronic whiteboards includes:
[0010] When the server receives a registration request from the first electronic whiteboard among the plurality of electronic whiteboards, it sends the node information of each target node in the data distribution tree that can serve as a parent node to the first electronic whiteboard.
[0011] The server receives topology information sent by the first electronic whiteboard. The topology information includes connection information on whether the first electronic whiteboard can establish communication connections with each of the target nodes, and the transmission delay between the first electronic whiteboard and the root node when each of the target nodes is used as the parent node.
[0012] The server selects a first target node as the parent node of the first electronic whiteboard from among the target nodes based on the topology information sent by the first electronic whiteboard. The first target node is capable of establishing a communication connection with the first electronic whiteboard, and when the first target node is the parent node of the first electronic whiteboard, the transmission delay between the first electronic whiteboard and the root node is less than the transmission delay between the first electronic whiteboard and the root node when the first electronic whiteboard uses other target nodes as parent nodes.
[0013] In one feasible implementation, sending node information of each target node in the data distribution tree that can serve as a parent node to the first electronic whiteboard includes:
[0014] When the number of nodes that can serve as parent nodes in the data distribution tree is greater than M, M nodes are randomly selected from the nodes that can serve as parent nodes in the data distribution tree; where M is a positive integer.
[0015] The node information of the selected M nodes is sent to the first electronic whiteboard.
[0016] In one feasible implementation, after the server selects the first target node as the parent node of the first electronic whiteboard from among the target nodes based on the topology information sent by the first electronic whiteboard, it further includes:
[0017] The address information of the first electronic whiteboard and the relationship between the first electronic whiteboard and the first target node are sent to the first target node, so that the first target node forwards the target data to the first electronic whiteboard according to the address information.
[0018] In one feasible implementation, after establishing the data distribution tree based on the registration requests sent by each of the electronic whiteboards, the method further includes:
[0019] The server re-determines the transmission delay between each child node in the data distribution tree and its ancestor node at preset intervals.
[0020] Based on the transmission delay between each child node and its ancestor node in the data distribution tree, determine whether there is an offline parent node in the data distribution tree;
[0021] When it is determined that there is an offline parent node in the data distribution tree, a leaf node is selected in the data distribution tree to replace the offline parent node, and the data distribution tree is updated.
[0022] In one feasible implementation, selecting a leaf node in the data distribution tree to replace the offline parent node includes:
[0023] The server determines the transmission delay between each leaf node of the data distribution tree and the root node;
[0024] The offline parent node is replaced by the leaf node with the smallest transmission latency between the leaf node and the root node in the data distribution tree.
[0025] In one feasible implementation, it further includes:
[0026] The server determines the maximum amount of data that each node in the data distribution tree can support to distribute within a preset distribution period, and determines the minimum value among the maximum amounts of data that each node can support to distribute within the preset distribution period as the distribution capability value of the data distribution tree.
[0027] When the amount of data received by the server within the preset distribution period is greater than the distribution capacity value, the distribution speed of the target data is adjusted according to the amount of data received by the server within the preset distribution period and the distribution capacity value.
[0028] A distribution speed adjustment message is sent to each node in the data distribution tree that has child nodes. The distribution speed adjustment message is used to control each node in the data distribution tree that has child nodes to send the target data to the corresponding child node according to the adjusted distribution speed.
[0029] In some embodiments, this application provides a data processing method, the method comprising:
[0030] The interactive whiteboard sends a registration request to the server.
[0031] The electronic whiteboard receives a feedback message corresponding to the registration request sent by the server. The feedback message includes node information of the electronic whiteboard's parent node in the data distribution tree. The root node of the data distribution tree is the server, and the electronic whiteboard is one of the nodes in the data distribution tree. The degree of each node in the data distribution tree is less than or equal to a preset threshold. Each child node in the data distribution tree is communicatively connected to its parent node, and the transmission delay from each child node to the root node is less than the transmission delay when it uses another node as its parent node.
[0032] The electronic whiteboard receives target data sent by its parent node and sends the received target data to its corresponding child nodes; wherein the target data is generated by the server.
[0033] In one feasible implementation, after the electronic whiteboard sends a registration request to the server, it further includes:
[0034] The electronic whiteboard receives node information of each target node that can serve as a parent node in the data distribution tree sent by the server.
[0035] The electronic whiteboard sends topology probe messages to each target node based on the node information of each target node, and generates topology information based on the response messages fed back by each target node. The topology information includes connection information on whether the electronic whiteboard can establish a communication connection with each target node, and the transmission delay between the electronic whiteboard and the root node when each target node is used as the parent node.
[0036] The electronic whiteboard sends the topology information to the server, which enables the server to select a first target node as the parent node of the electronic whiteboard among the target nodes. The first target node is capable of establishing a communication connection with the electronic whiteboard, and when the first target node is the parent node of the electronic whiteboard, the transmission delay between the electronic whiteboard and the root node is less than the transmission delay between the electronic whiteboard and the root node when the electronic whiteboard uses other target nodes as parent nodes.
[0037] In one feasible implementation, it further includes:
[0038] When the electronic whiteboard receives the distribution speed adjustment message sent by the server, it sends the target data to the corresponding child node according to the adjusted distribution speed.
[0039] In some embodiments, this application provides a server, including:
[0040] A data distribution tree construction module is used to sequentially receive registration requests sent by multiple electronic whiteboards and establish a data distribution tree based on the registration requests sent by each electronic whiteboard; wherein the root node of the data distribution tree is the server, and each electronic whiteboard is a node of the data distribution tree; the degree of each node in the data distribution tree is less than or equal to a preset threshold; each child node in the data distribution tree is communicatively connected to its parent node, and the transmission delay from each child node to the root node is less than the transmission delay when it uses another node as its parent node;
[0041] The distribution module is used to receive data sent by at least one of the plurality of electronic whiteboards, preprocess the data, and then send the preprocessed target data to each child node of the server according to the data distribution tree; wherein, after receiving the target data, each node in the data distribution tree forwards the received target data to its corresponding child node.
[0042] In some embodiments, this application provides an electronic whiteboard, including:
[0043] The sending module is used to send registration requests to the server;
[0044] A receiving module is configured to receive a feedback message corresponding to the registration request sent by the server. The feedback message includes node information of the parent node of the electronic whiteboard in the data distribution tree. The root node of the data distribution tree is the server, and the electronic whiteboard is one of the nodes in the data distribution tree. The degree of each node in the data distribution tree is less than or equal to a preset threshold. Each child node in the data distribution tree is communicatively connected to its parent node, and the transmission delay from each child node to the root node is less than the transmission delay when it uses another node as its parent node.
[0045] The data forwarding module is used to receive target data sent by its parent node and send the received target data to its corresponding child nodes; wherein the target data is generated by the server.
[0046] The data processing method, server, and electronic whiteboard provided in this application embodiment establish a data distribution tree based on registration requests sent by multiple electronic whiteboards. When the server receives data sent by at least one of the electronic whiteboards, it preprocesses the data and sends the preprocessed target data to each of the server's child nodes according to the aforementioned data distribution tree. Each node in the data distribution tree then forwards the data to its corresponding child node. This eliminates the need for the server to send the target data to each electronic whiteboard individually, thereby reducing the server's load, effectively preventing data loss, and ensuring consistency of content displayed on each electronic whiteboard. Attached Figure Description
[0047] Figure 1 A flowchart illustrating a data processing method provided in this application embodiment. Figure 1 ;
[0048] Figure 2 This is a schematic diagram of the structure of a data distribution tree provided in the embodiments of this application. Figure 1 ;
[0049] Figure 3 This is a schematic diagram of the structure of a data distribution tree provided in the embodiments of this application. Figure 2 ;
[0050] Figure 4 This is a schematic diagram of the structure of a data distribution tree provided in the embodiments of this application. Figure 3 ;
[0051] Figure 5 A flowchart illustrating a data processing method provided in this application embodiment. Figure 2 . Detailed Implementation
[0052] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application. Furthermore, although the disclosure in this application is described with reference to one or several exemplary examples, it should be understood that each aspect of these disclosures can also constitute a complete implementation method on its own.
[0053] It should be noted that the brief descriptions of terms in this application are only for the convenience of understanding the embodiments described below, and are not intended to limit the embodiments of this application. Unless otherwise stated, these terms should be understood in their ordinary and common meaning.
[0054] The terms "first," "second," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish similar or related objects or entities, and do not necessarily imply a specific order or sequence, unless otherwise specified. It should be understood that such terms can be used interchangeably where appropriate, for example, to implement the embodiments in a sequence other than those given in the illustrations or descriptions of this application.
[0055] Furthermore, the terms “comprising” and “having”, and any variations thereof, are intended to cover but not exclusively include, for example, a product or device that includes a series of components is not necessarily limited to those that are explicitly listed, but may include other components that are not explicitly listed or that are inherent to such product or device.
[0056] As used in this application, the term "module" means any known or subsequently developed hardware, software, firmware, artificial intelligence, fuzzy logic, or combination of hardware and / or software code capable of performing the functions associated with that element.
[0057] As a digital teaching and demonstration device that replaces traditional blackboards and chalk, electronic whiteboards can completely eliminate the need for a mouse and keyboard. Users can use their hands or a specific pen to edit, annotate, and save computer files on the electronic whiteboard, which brings great convenience to users and has been widely used in various conferences, seminars, and school teaching.
[0058] In some use cases, the electronic whiteboard only generates one handwriting data message when the writing ends, and the amount of data generated is small. Even if handwriting data is distributed to multiple electronic whiteboards at the same time, the amount of messages distributed is also small. Therefore, the requirements for system concurrency are not high, and the solution of using traditional message system software to distribute handwriting data can meet the needs.
[0059] However, in other scenarios, it's necessary to write simultaneously on multiple interactive whiteboards, with the writing trajectory displayed in real-time on other whiteboards. For example, in a dedicated classroom setting, two or more students might need to answer questions using different interactive whiteboards in different classrooms, with their handwriting displayed in real-time on multiple whiteboards. In this case, because multiple whiteboards generate handwriting simultaneously, and the handwriting constantly changes during the writing process, a server needs to transmit a large amount of handwriting data in real-time. Using traditional messaging software to transmit handwriting data in this scenario can easily lead to data loss, resulting in inconsistencies in the content displayed on each whiteboard.
[0060] To address the aforementioned technical problems, this application provides a data processing method. When multiple electronic whiteboards need to display the same writing trajectory in real time, the server pre-establishes a data distribution tree based on the registration requests sent by the multiple electronic whiteboards. When the server receives data sent by at least one of the electronic whiteboards, it preprocesses the data and sends the preprocessed target data to each of the server's child nodes according to the aforementioned data distribution tree. Each node in the data distribution tree then forwards the data to its corresponding child node. This eliminates the need for the server to send the target data to each electronic whiteboard separately, thereby reducing the server's load, effectively preventing data loss from the server-sent electronic whiteboards, and ensuring consistency of the content displayed on each electronic whiteboard. Detailed embodiments are described below.
[0061] Reference Figure 1 , Figure 1 This is a flowchart illustrating a data processing method provided in an embodiment of this application, where the execution entity is a server. In one feasible implementation, the above data processing method includes:
[0062] S101. The server sequentially receives registration requests from multiple electronic whiteboards and establishes a data distribution tree based on the registration requests from each electronic whiteboard; wherein the root node of the data distribution tree is the server, and each electronic whiteboard is a node of the data distribution tree.
[0063] In some embodiments, the degree of each node in the data distribution tree is less than or equal to a preset threshold, thereby preventing excessive load on each node in the data distribution tree and causing data loss. For example, the degree of each node in the data distribution tree can be preset to be less than or equal to 3.
[0064] In some embodiments, each child node in the data distribution tree is communicatively connected to its parent node, and the transmission delay from each child node to the root node is less than the transmission delay when it uses another node as its parent node.
[0065] To better understand the embodiments of this application, please refer to... Figure 2 , Figure 2 This is a schematic diagram of the structure of a data distribution tree provided in the embodiments of this application. Figure 1 .
[0066] In this embodiment of the application, taking the delivery classroom as an example, the delivery classroom is pre-set to have a server S and 7 electronic whiteboards A, B, ..., G participating in the delivery classroom.
[0067] Optionally, interactive whiteboards A through G and server S are all connected to the network and can communicate with each other. After starting the whiteboard, interactive whiteboard A can distribute the topic name of the special classroom to other participating interactive whiteboards B through G via the network.
[0068] For ease of description, in this embodiment, it is assumed that the server (hereinafter referred to as node S) receives registration requests sequentially from electronic whiteboards A to G. Since electronic whiteboard A sent the registration request earliest, electronic whiteboard A is a child node of server S (hereinafter referred to as node A).
[0069] In some embodiments, when electronic whiteboard B registers, since node A already exists, the server sends node information of node A to electronic whiteboard B (hereinafter referred to as node B). However, due to the existence of NAT (Network Address Translation), node A and node B cannot directly establish a communication connection, so two branches need to be formed, with node S still serving as the parent node of node B.
[0070] In some embodiments, when registering the electronic whiteboard C (hereinafter referred to as node C), assuming the server determines that node C can establish a connection with node B but cannot establish a connection with node A, then node B can be selected as the parent node of node C.
[0071] In some embodiments, when registering the electronic whiteboard D (hereinafter referred to as node D), assuming the server determines that node D cannot establish a connection with node A, but can establish a connection with both node B and node C, and that node B has the lowest latency between node D and node S when node D is the parent node of node D, then node B is selected as the parent node of node D.
[0072] In some embodiments, when registering the electronic whiteboard E (hereinafter referred to as node E), it is assumed that the server determines that node E cannot establish a connection with node A, but can establish a connection with nodes B, C, and D. However, when node B is the parent node of node E, the latency between node E and node S is the smallest. Therefore, node B is also selected as the parent node of node E.
[0073] In some embodiments, when registering the electronic whiteboard F (hereinafter referred to as node F), assuming the server determines that node F cannot establish a connection with node A, but can establish connections with nodes B, C, D, and E; since the degree of each node in the above data distribution tree is less than or equal to 3, node B cannot be the parent node of node F. In this case, a node needs to be selected from nodes C, D, and E as the parent node of node F. Assuming the server determines that node E is the parent node of node F, the latency between node F and node S is minimized, then node E is selected as the parent node of node F.
[0074] In some embodiments, when the electronic whiteboard G (hereinafter referred to as node G) registers, it is assumed that the server determines that node G cannot establish a connection with node A, but can establish connections with nodes B, C, D, E, and F. For the same reason, since the degree of each node in the above data distribution tree is less than or equal to 3, node B cannot be the parent node of node G, and a node needs to be selected from nodes C, D, E, and F as the parent node of node G. Assuming that the server determines that node E is the parent node of node G, the latency between node G and node S is the minimum, then node E is selected as the parent node of node G.
[0075] In some embodiments, after determining the parent nodes of nodes A to G, the server can establish the aforementioned data distribution tree based on the relationship between nodes A to G.
[0076] In some embodiments, after the data distribution tree is established, each node can periodically update the topology information of the nodes it obtained when joining the data distribution tree. When the topology information changes, the server can reselect a parent node for all or some of the nodes.
[0077] Optionally, the above update cycle can be 10 minutes.
[0078] S102. The server receives data sent by at least one of the multiple electronic whiteboards, preprocesses the data, and then sends the preprocessed target data to each child node of the server according to the data distribution tree; wherein, each node in the data distribution tree that has child nodes forwards the received target data to its corresponding child node after receiving the target data.
[0079] To better understand the embodiments of this application, please refer to... Figure 3 , Figure 3 This is a schematic diagram of the structure of a data distribution tree provided in the embodiments of this application. Figure 2 .
[0080] In one feasible implementation, assume that the electronic whiteboards corresponding to nodes A and C have writing permissions. After generating handwriting data, nodes A and C send it to the server via paths 1 and 2. The server preprocesses the received handwriting data from nodes A and C, and then sends the preprocessed target data to its child nodes A and B according to paths 3 and 4 in the data distribution tree. After receiving the target data from the server, node B distributes the target data to nodes C, D, and E according to paths 5, 6, and 7 in the data distribution tree. After receiving the target data from node B, node E sends the target data to its child nodes F and G according to paths 8 and 9 in the data distribution tree.
[0081] The data processing method provided in this application embodiment, when multiple electronic whiteboards need to display the same writing trajectory in real time, allows the server to pre-establish a data distribution tree involving all electronic whiteboards. When the server receives data sent by at least one of the electronic whiteboards, it preprocesses the data and distributes it to the corresponding child nodes of the server according to the aforementioned data distribution tree. Then, each node in the data distribution tree distributes the data to the other electronic whiteboards. This eliminates the need for the server to send data to each electronic whiteboard separately, thereby reducing the server load, effectively preventing data loss from the server sending data to the electronic whiteboards, and ensuring the consistency of the content displayed on each electronic whiteboard.
[0082] Based on the content described in the above embodiments, in one feasible implementation of this application, when the server receives a registration request from any electronic whiteboard (hereinafter referred to as the first electronic whiteboard), it sends node information of each target node in the data distribution tree that can serve as a parent node to the first electronic whiteboard. After receiving the node information, the first electronic whiteboard sends topology probe messages to each of the aforementioned target nodes, and generates topology information based on the response messages fed back by each target node, and then sends the generated topology information to the server. The topology information includes connection information on whether the first electronic whiteboard can establish communication connections with each of the aforementioned target nodes, and the transmission delay between the first electronic whiteboard and the root node when each of the aforementioned target nodes serves as a parent node.
[0083] In some embodiments, the first electronic whiteboard can periodically update its topology information with each target node and send it to the server.
[0084] In some embodiments, after receiving the topology information sent by the first electronic whiteboard, the server selects one of the target nodes as the parent node of the first electronic whiteboard based on the topology information.
[0085] The selection rule is that the selected target node can establish a communication connection with the first electronic whiteboard, and when the selected target node is the parent node of the first electronic whiteboard, the transmission delay between the first electronic whiteboard and the root node is less than the transmission delay between the first electronic whiteboard and the root node when it uses other target nodes as parent nodes.
[0086] In some embodiments, after the server selects one of the target nodes as the parent node of the first electronic whiteboard, it sends the address information of the first electronic whiteboard and the node relationship between the first electronic whiteboard and the selected target node to the selected target node, so that the selected target node can forward target data to the electronic whiteboard according to the address information.
[0087] To better understand the embodiments of this application, please refer to... Figure 2 When the server receives a registration request from the electronic whiteboard F (hereinafter referred to as node F), it sends node information of nodes C, D, and E in the data distribution tree to node F. After receiving the node information of nodes C, D, and E, node F sends topology probe messages to nodes C, D, and E respectively, and generates topology information based on the response messages from nodes C, D, and E. This topology information is then sent to the server. The topology information includes connection information on whether node F can establish communication connections with nodes C, D, and E, as well as the transmission delay between node F and the root node S when nodes C, D, and E are used as parent nodes respectively.
[0088] After receiving the topology information sent by node F, the server assumes that based on the topology information, it can determine that node F can establish connections with nodes C, D, and E, and that the latency between node F and node S is minimized when node E is the parent node of node F. Therefore, the server chooses to make node E the parent node of node F.
[0089] In this process, after the server selects node E as a child node of node F, it sends the address information of node F to node E, thereby enabling node E to forward the received target data to node F.
[0090] In some embodiments, when the server receives a registration request from the first electronic whiteboard, it first determines the number of nodes in the data distribution tree that can serve as parent nodes. If the number of nodes that can serve as parent nodes is greater than M (e.g., 3), then M nodes are randomly selected from the nodes that can serve as parent nodes in the data distribution tree, and the node information of the selected M nodes is sent to the first electronic whiteboard. If the number of nodes that can serve as parent nodes in the data distribution tree is not greater than M, then the node information of each node that can serve as parent node in the data distribution tree can be sent to the first electronic whiteboard, thereby reducing the message volume of each electronic whiteboard during the registration process and improving registration efficiency.
[0091] In some embodiments, the server may re-determine the transmission delay between each child node in the data distribution tree and its ancestor node at preset intervals; determine whether there is an offline parent node in the data distribution tree based on the transmission delay between each child node in the data distribution tree and its ancestor node; when it is determined that there is an offline parent node in the data distribution tree, select a leaf node in the data distribution tree to replace the offline parent node, and update the data distribution tree.
[0092] In one feasible implementation, the server can determine the transmission latency between each leaf node and the root node in the data distribution tree; select the leaf node with the smallest transmission latency to the root node in the data distribution tree to replace the offline parent node, thereby ensuring that the server can still distribute the target data to the remaining nodes through the data distribution tree when a node fails.
[0093] In some embodiments, after selecting a leaf node in the data distribution tree to replace the offline parent node, and then when there is a branch in the data distribution tree that cannot be connected to the newly selected parent node, all nodes in that branch can rejoin the data distribution tree through the registration process.
[0094] To better understand the embodiments of this application, please refer to... Figure 4 , Figure 4 This is a schematic diagram of the structure of a data distribution tree provided in the embodiments of this application. Figure 3 .
[0095] like Figure 4 As shown, assuming node B in the data distribution tree suddenly goes offline, since nodes C, D, F, and G have no child nodes and are leaf nodes, a node can be selected from C, D, F, and G to replace node B.
[0096] In one feasible implementation, node B can be replaced by the node with the smallest transmission delay between node S and node C, node D, node F, or node G.
[0097] For example, if it is determined that the transmission delay between node F and node S is the minimum, then node F is selected instead of node B.
[0098] In some embodiments, after an electronic whiteboard generates handwriting data, the whiteboard first sends it to the server. Upon receiving the handwriting data, the server distributes the received handwriting data to its child nodes according to the established data distribution tree. Then, each node in the data distribution tree completes the distribution of the handwriting data. The child nodes can periodically send acknowledgment messages to their parent nodes to assess their parent node's message distribution capabilities and confirm with the parent node.
[0099] In some embodiments, each node may also periodically acknowledge the received handwriting data, i.e., the number of handwriting data received within the distribution period. Optionally, the aforementioned period may be 1 second.
[0100] To better understand the embodiments of this application, please refer to... Figure 3 In one feasible implementation, nodes F and G confirm the maximum number of messages supported by node E by acknowledging the number of messages received. Node E then confirms the number of messages it has received and its maximum distributable message count with node B. Node B takes the minimum of its own distributable message count and the distributable message count of its child nodes as its distribution capacity. Node B reports to its parent node according to the same rules. The server calculates the minimum distribution capacity of its child nodes as the distribution capacity value of the data distribution tree.
[0101] In some embodiments, the server determines the number of handwritings that each node can generate per second based on the number of currently distributed handwriting nodes. For example... Figure 3 Two nodes have the authority to generate handwriting data. Assuming these two nodes generate 100 handwriting data entries per second, when the maximum amount of data that each node in the data distribution tree can support distributing within a preset distribution period is less than 200 entries but greater than or equal to 100 entries, the node is notified to send the data at half the distribution speed. When the maximum amount of data is less than 100 entries but greater than or equal to 50 entries, the node is notified to distribute the data at 1 / 4 the distribution speed, and so on.
[0102] In some embodiments, when the number of nodes authorized to produce handwriting data changes and the data distribution rate needs to be changed, the server can notify all nodes to update the data distribution speed.
[0103] This application embodiment adjusts the distribution speed of each node in the data distribution tree in real time according to the distribution capability value of the data distribution tree, thereby avoiding the problem of handwriting data loss caused by each node failing to forward the received handwriting data in time.
[0104] In some embodiments, refer toFigure 5 , Figure 5 This is a flowchart illustrating a data processing method provided in an embodiment of this application, where the executing entity is an electronic whiteboard. In one feasible implementation, the above data processing method includes:
[0105] S501, the electronic whiteboard sends a registration request to the server.
[0106] S502, The electronic whiteboard receives a feedback message corresponding to the registration request sent by the server. This feedback message includes the node information of the parent node of the electronic whiteboard in the data distribution tree.
[0107] In this data distribution tree, the root node is the server, and the electronic whiteboard is one of the nodes in the data distribution tree. The degree of each node in the data distribution tree is less than or equal to a preset threshold. Each child node in the data distribution tree is connected to its parent node, and the transmission delay from each child node to the root node is less than the transmission delay when it uses other nodes as its parent node.
[0108] S503, the electronic whiteboard receives the target data sent by its parent node and sends the received target data to its corresponding child nodes. The target data is generated by the server.
[0109] The data processing method provided in this application embodiment allows some electronic whiteboards to help the server forward handwriting data from the server to other electronic whiteboards when multiple electronic whiteboards need to display the same writing trajectory in real time. This eliminates the need for the server to send data to each electronic whiteboard separately, thereby reducing the server load, effectively preventing data loss from the server to the electronic whiteboards, and ensuring that the content displayed on each electronic whiteboard is consistent.
[0110] In one feasible implementation, after the electronic whiteboard sends a registration request to the server, the process further includes:
[0111] The electronic whiteboard receives data from the server, which includes node information of each target node in the data distribution tree that can serve as a parent node.
[0112] The electronic whiteboard sends topology probe messages to each target node based on the node information of each target node, and generates topology information based on the response messages from each target node. This topology information includes connection information on whether the electronic whiteboard can establish a communication connection with each target node, as well as the transmission delay between the electronic whiteboard and the root node when each target node is used as the parent node.
[0113] The interactive whiteboard sends the aforementioned topology information to the server, which enables the server to select a first target node as the parent node of the interactive whiteboard among the target nodes. The first target node is capable of establishing a communication connection with the interactive whiteboard, and when the first target node is the parent node of the interactive whiteboard, the transmission delay between the interactive whiteboard and the root node is less than the transmission delay between the interactive whiteboard and the root node when the interactive whiteboard uses other target nodes as parent nodes.
[0114] In some embodiments, when the electronic whiteboard receives a distribution speed adjustment message from the server, it sends the target data to the corresponding child node according to the adjusted distribution speed.
[0115] Based on the content described in the above embodiments, this application also provides a server, which includes:
[0116] A data distribution tree construction module is used to sequentially receive registration requests sent by multiple electronic whiteboards and establish a data distribution tree based on the registration requests sent by each electronic whiteboard; wherein the root node of the data distribution tree is the server, and each electronic whiteboard is a node of the data distribution tree; the degree of each node in the data distribution tree is less than or equal to a preset threshold; each child node in the data distribution tree is communicatively connected to its parent node, and the transmission delay from each child node to the root node is less than the transmission delay when it uses another node as its parent node.
[0117] The distribution module is used to receive data sent by at least one of the plurality of electronic whiteboards, preprocess the data, and then send the preprocessed target data to each child node of the server according to the data distribution tree; wherein, after receiving the target data, each node in the data distribution tree forwards the received target data to its corresponding child node.
[0118] It should be noted that the specific execution content of the data distribution tree construction module and the distribution module in this embodiment can be found in the following references. Figures 1 to 5 The relevant content in the illustrated embodiments will not be repeated here.
[0119] Based on the content described in the above embodiments, this application also provides an electronic whiteboard, including:
[0120] The sending module is used to send registration requests to the server.
[0121] The receiving module is used to receive a feedback message corresponding to the registration request sent by the server. The feedback message includes node information of the parent node of the electronic whiteboard in the data distribution tree. The root node of the data distribution tree is the server, and the electronic whiteboard is one of the nodes in the data distribution tree. The degree of each node in the data distribution tree is less than or equal to a preset threshold. Each child node in the data distribution tree is communicatively connected to its parent node, and the transmission delay from each child node to the root node is less than the transmission delay when it uses another node as its parent node.
[0122] The data forwarding module is used to receive target data sent by its parent node and send the received target data to its corresponding child nodes; wherein the target data is generated by the server.
[0123] It should be noted that the specific execution of the sending module, receiving module, and data forwarding module in this application embodiment can be found in the [reference needed]. Figures 1 to 5 The relevant content in the illustrated embodiments will not be repeated here.
[0124] In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative; for instance, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple modules may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be indirect coupling or communication connection through some interfaces, devices, or modules, and may be electrical, mechanical, or other forms.
[0125] The modules described as separate components may or may not be physically separate. The components shown as modules may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs.
[0126] Furthermore, the functional modules in the various embodiments of this application can be integrated into one processing unit, or each module can exist physically separately, or two or more modules can be integrated into one unit. The unit integrating the above modules can be implemented in hardware or in the form of hardware plus software functional units.
[0127] The integrated modules implemented as software functional modules described above can be stored in a computer-readable storage medium. These software functional modules, stored in a storage medium, include several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute some steps of the methods described in the various embodiments of this application.
[0128] It should be understood that the aforementioned processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), etc. A general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in the application can be directly manifested as execution by a hardware processor, or execution by a combination of hardware and software modules within the processor.
[0129] The memory may include high-speed RAM, and may also include non-volatile storage (NVM), such as at least one disk storage device, and may also be a USB flash drive, external hard drive, read-only memory, disk or optical disc, etc.
[0130] The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, the buses shown in the accompanying drawings are not limited to a single bus or a single type of bus.
[0131] The aforementioned storage medium can be implemented from any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk, or optical disk. The storage medium can be any available medium accessible to general-purpose or special-purpose computers.
[0132] An exemplary storage medium is coupled to a processor, enabling the processor to read information from and write information to the storage medium. Alternatively, the storage medium can be an integral part of the processor. Both the processor and the storage medium can reside in an Application Specific Integrated Circuit (ASIC). Alternatively, the processor and storage medium can exist as discrete components in an electronic device or host device.
[0133] Those skilled in the art will understand that all or part of the steps of the above-described method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When executed, the program performs the steps of the above-described method embodiments; and the aforementioned storage medium includes various media capable of storing program code, such as ROM, RAM, magnetic disks, or optical disks.
[0134] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.
Claims
1. A data processing method, characterized in that, The method includes: The server sequentially receives registration requests from multiple electronic whiteboards and establishes a data distribution tree based on each registration request. The root node of the data distribution tree is the server, and each electronic whiteboard is a node in the data distribution tree. The degree of each node in the data distribution tree is less than or equal to a preset threshold. Each child node in the data distribution tree is communicatively connected to its parent node, and the transmission delay from each child node to the root node is less than the transmission delay when it uses another node as its parent node. The server receives data sent by at least one of the plurality of electronic whiteboards, preprocesses the data, and then sends the preprocessed target data to each child node of the server according to the data distribution tree; wherein, each node in the data distribution tree that has child nodes forwards the received target data to its corresponding child node after receiving the target data. It also includes: the server determines the maximum amount of data that each node in the data distribution tree can support to distribute within a preset distribution period, and determines the minimum value among the maximum amounts of data that each node can support to distribute within the preset distribution period as the distribution capability value of the data distribution tree; When the amount of data received by the server within the preset distribution period is greater than the distribution capacity value, the distribution speed of the target data is adjusted according to the amount of data received by the server within the preset distribution period and the distribution capacity value. A distribution speed adjustment message is sent to each node in the data distribution tree that has child nodes. The distribution speed adjustment message is used to control each node in the data distribution tree that has child nodes to send the target data to the corresponding child node according to the adjusted distribution speed.
2. The method according to claim 1, characterized in that, The step of establishing a data distribution tree based on the registration requests sent by each of the electronic whiteboards includes: When the server receives a registration request from the first electronic whiteboard among the plurality of electronic whiteboards, it sends the node information of each target node in the data distribution tree that can serve as a parent node to the first electronic whiteboard. The server receives topology information sent by the first electronic whiteboard. The topology information includes connection information on whether the first electronic whiteboard can establish communication connections with each of the target nodes, and the transmission delay between the first electronic whiteboard and the root node when each of the target nodes is used as the parent node. The server selects a first target node as the parent node of the first electronic whiteboard from among the target nodes based on the topology information sent by the first electronic whiteboard. The first target node is capable of establishing a communication connection with the first electronic whiteboard, and when the first target node is the parent node of the first electronic whiteboard, the transmission delay between the first electronic whiteboard and the root node is less than the transmission delay between the first electronic whiteboard and the root node when the first electronic whiteboard uses other target nodes as parent nodes.
3. The method according to claim 2, characterized in that, Sending node information of each target node in the data distribution tree that can serve as a parent node to the first electronic whiteboard includes: When the number of nodes that can serve as parent nodes in the data distribution tree is greater than M, M nodes are randomly selected from the nodes that can serve as parent nodes in the data distribution tree; where M is a positive integer. The node information of the selected M nodes is sent to the first electronic whiteboard.
4. The method according to claim 2, characterized in that, After selecting the first target node as the parent node of the first electronic whiteboard from among the target nodes based on the topology information sent by the first electronic whiteboard, the server further includes: The address information of the first electronic whiteboard and the relationship between the first electronic whiteboard and the first target node are sent to the first target node, so that the first target node forwards the target data to the first electronic whiteboard according to the address information.
5. The method according to claim 1, characterized in that, After establishing the data distribution tree based on the registration requests sent by each of the electronic whiteboards, the method further includes: The server re-determines the transmission delay between each child node in the data distribution tree and its ancestor node at preset intervals. Based on the transmission delay between each child node and its ancestor node in the data distribution tree, determine whether there is an offline parent node in the data distribution tree; When it is determined that there is an offline parent node in the data distribution tree, a leaf node is selected in the data distribution tree to replace the offline parent node, and the data distribution tree is updated.
6. The method according to claim 5, characterized in that, The step of selecting a leaf node in the data distribution tree to replace the offline parent node includes: The server determines the transmission delay between each leaf node of the data distribution tree and the root node; The offline parent node is replaced by the leaf node with the minimum transmission latency between the leaf node and the root node in the data distribution tree.
7. A data processing method, characterized in that, The method includes: The interactive whiteboard sends a registration request to the server. The electronic whiteboard receives a feedback message corresponding to the registration request sent by the server. The feedback message includes node information of the electronic whiteboard's parent node in the data distribution tree. The root node of the data distribution tree is the server, and the electronic whiteboard is one of the nodes in the data distribution tree. The degree of each node in the data distribution tree is less than or equal to a preset threshold. Each child node in the data distribution tree is communicatively connected to its parent node, and the transmission delay from each child node to the root node is less than the transmission delay when it uses another node as its parent node. The electronic whiteboard receives target data sent by its parent node and sends the received target data to its corresponding child nodes; wherein, the target data is generated by the server; It also includes: when the electronic whiteboard receives a distribution speed adjustment message sent by the server, it sends the target data to the corresponding child node according to the adjusted distribution speed, wherein the distribution speed of the target data is determined by the server as the maximum amount of data that each node in the data distribution tree can support for distribution within a preset distribution period, and the minimum value among the maximum amounts of data that each node can support for distribution within the preset distribution period is determined as the distribution capacity value of the data distribution tree; when the amount of data received by the server within the preset distribution period is greater than the distribution capacity value, it is adjusted according to the amount of data received by the server within the preset distribution period and the distribution capacity value.
8. The method according to claim 7, characterized in that, After the electronic whiteboard sends a registration request to the server, it also includes: The electronic whiteboard receives node information of each target node that can serve as a parent node in the data distribution tree sent by the server. The electronic whiteboard sends topology probe messages to each target node based on the node information of each target node, and generates topology information based on the response messages fed back by each target node. The topology information includes connection information on whether the electronic whiteboard can establish a communication connection with each target node, and the transmission delay between the electronic whiteboard and the root node when each target node is used as the parent node. The electronic whiteboard sends the topology information to the server, which enables the server to select a first target node as the parent node of the electronic whiteboard among the target nodes. The first target node is capable of establishing a communication connection with the electronic whiteboard, and when the first target node is the parent node of the electronic whiteboard, the transmission delay between the electronic whiteboard and the root node is less than the transmission delay between the electronic whiteboard and the root node when the electronic whiteboard uses other target nodes as parent nodes.
9. A server, said server being configured to implement the data processing method according to any one of claims 1-6, characterized in that, include: A data distribution tree construction module is used to sequentially receive registration requests sent by multiple electronic whiteboards and establish a data distribution tree based on the registration requests sent by each electronic whiteboard; wherein the root node of the data distribution tree is the server, and each electronic whiteboard is a node of the data distribution tree; the degree of each node in the data distribution tree is less than or equal to a preset threshold; each child node in the data distribution tree is communicatively connected to its parent node, and the transmission delay from each child node to the root node is less than the transmission delay when it uses another node as its parent node; The distribution module is used to receive data sent by at least one of the plurality of electronic whiteboards, preprocess the data, and then send the preprocessed target data to each child node of the server according to the data distribution tree; wherein, after receiving the target data, each node in the data distribution tree forwards the received target data to its corresponding child node.
10. An electronic whiteboard, said electronic whiteboard being used to implement the data processing method according to claim 7 or 8, characterized in that, include: The sending module is used to send registration requests to the server; A receiving module is configured to receive a feedback message corresponding to the registration request sent by the server. The feedback message includes node information of the parent node of the electronic whiteboard in the data distribution tree. The root node of the data distribution tree is the server, and the electronic whiteboard is one of the nodes in the data distribution tree. The degree of each node in the data distribution tree is less than or equal to a preset threshold. Each child node in the data distribution tree is communicatively connected to its parent node, and the transmission delay from each child node to the root node is less than the transmission delay when it uses another node as its parent node. The data forwarding module is used to receive target data sent by its parent node and send the received target data to its corresponding child nodes; wherein the target data is generated by the server.
Citation Information
Patent Citations
Multicast tree building method, and server and node in multicast system
CN102694833A
Remote whiteboard data processing method and device and electronic equipment
CN111352599A