A distributed video conferencing system, application method, device and medium

Through the preprocessing module, server scheduling module and storage calling module of the distributed video conferencing system, the problems of poor scalability and high cost of the traditional center control structure are solved, and a flexible video conferencing system is realized, which is suitable for cell and home environments, reducing system coupling and user operation costs.

CN115883772BActive Publication Date: 2025-08-22UNIV OF ELECTRONICS SCI & TECH OF CHINA +1
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202211513755.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-11-29
Publication Date
2025-08-22
Estimated Expiration
2042-11-29

AI Technical Summary

Technical Problem

The central control structure of traditional video conferencing systems has poor scalability when users are popularized and terminals are diversified, resulting in the access bandwidth and processing capabilities of the central control unit becoming bottlenecks, making the system difficult to support a large number of users to use simultaneously, and the cost is high.

Method used

The distributed video conferencing system is adopted, and through preprocessing modules, server scheduling modules and storage calling modules, API gateways and microservice governance centers are used to perform request preprocessing, server scheduling and data storage, and the video conferencing application is decomposed into discrete microservices to realize load balancing and data storage.

Benefits of technology

It provides a more flexible video conferencing system, which reduces costs and improves user experience, is suitable for community and home environments, and supports video conferencing needs for multiple domains interconnected.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115883772B_ABST
    Figure CN115883772B_ABST
Patent Text Reader

Abstract

The present application discloses a distributed video conferencing system, application method, device, and medium, relating to the field of video conferencing technology, including: a pre-processing module for obtaining a microservice call request sent by a target terminal for initiating a video conference, and using an API gateway to perform pre-processing operations on the microservice scheduling request; a server scheduling module for determining a target server based on a mapping relationship between microservices and servers and according to preset server scheduling rules, and using an API gateway to schedule the target server to process the microservice scheduling request; wherein a microservice is any one of a set of services obtained by decomposing a video conferencing application; and a storage and calling module for obtaining the video conferencing data generated after request processing is completed, and using a data center to store and call the video conferencing data. By adopting a distributed microservice architecture and decomposing the video conferencing application into discrete microservices, the system coupling is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of video conferencing technology, and in particular to a distributed video conferencing system, application method, device and medium. Background Art

[0002] With the accelerating pace of global informatization, people's demand for information exchange is also growing. Communication methods such as letters, text messages, and voice can no longer meet their demands for real-time, efficiency, accuracy, and richness. Driven by the development of multimedia communication technologies, video communication has become an essential part of daily social interaction, driven by the rapid exchange of information and interactive communication. Video conferencing refers to face-to-face conversations between people in two or more locations using communication devices and a network. Video conferencing systems can bridge the gap between people in different locations, allowing them to communicate face-to-face, as if they were all in the same conference room. Currently, video conferencing systems are widely used in various industries, including government, enterprises, healthcare, and education. Remote training, online classrooms, and emergency response operations all rely on the infrastructure of video conferencing systems. This efficient communication method frees people from the hustle and bustle of travel, reduces unnecessary time, improves communication efficiency across industries, facilitates centralized management, and significantly reduces administrative costs for businesses.

[0003] Video conferencing systems can generally be categorized into two main categories: hardware-based and software-based. Hardware-based systems are an audio and video communication method based on an embedded architecture. They offer excellent audio and video data processing, high integration, and strong security. However, they are less flexible and require a dedicated network, resulting in higher costs. They are primarily used in dedicated conference rooms and are considered mid- to high-end products. Software-based systems are based on PC architectures and primarily rely on the CPU to handle audio and video encoding and decoding. Software-based video conferencing offers strong scalability, easy system deployment, low cost, and greater flexibility in data sharing and application. They are generally adopted by individuals and businesses with less stringent security requirements.

[0004] Traditional video conferencing network architecture utilizes a centralized control structure, where users send audio and video data to the system's central control unit, which processes the data and then distributes the corresponding conference data to each user based on their needs. This structure facilitates operational management by video conferencing service providers. The central control unit can tailor conference data to each user's terminal access method and processing capabilities, effectively ensuring service quality and making it suitable for large enterprises, small groups of users, and high-quality user groups. However, with the increasing popularity and diversification of video conferencing terminals, this structure has become a bottleneck. Since all user data must be aggregated and distributed to all users by the central processing unit, the access bandwidth and processing power of the central control unit become bottlenecks, resulting in poor scalability. As video conferencing becomes more common and the number of users increases, video conferencing systems with this centralized control structure will struggle to support the increasing number of users simultaneously. Even if they can, the bandwidth and server costs required will be enormous.

[0005] In summary, how to overcome the defects of the central control structure to provide a video conferencing system with more flexible configuration and reduce the cost of video conferencing is a problem that needs to be solved at present. Summary of the Invention

[0006] In view of this, the present invention aims to provide a distributed video conferencing system, application method, device, and medium that can overcome the shortcomings of a central control structure, provide a more flexible video conferencing system, and reduce the cost of video conferencing. The specific solution is as follows:

[0007] In a first aspect, the present application discloses a distributed video conferencing system, comprising:

[0008] A preprocessing module is used to obtain a microservice call request for initiating a video conference sent by a target terminal, and perform preprocessing operations on the microservice scheduling request using an API gateway according to preset preprocessing rules;

[0009] A server scheduling module is configured to determine a target server based on the mapping relationship between microservices and servers in the microservice governance center and in accordance with preset server scheduling rules, and then use the API gateway to schedule the target server to process the pre-processed microservice scheduling request; wherein the microservice is any one of a set of services obtained by decomposing the video conferencing application;

[0010] The storage and calling module is used to obtain the video conference data generated after the microservice scheduling request is processed, and use the data center to store and call the video conference data.

[0011] Optionally, the server scheduling module includes:

[0012] a first server determining unit, configured to obtain location information of the target terminal and determine a first server that is closest to the target terminal based on the location information;

[0013] a first resource domain traversal unit, configured to obtain a first resource domain corresponding to the first server, and traverse the first resource domain to determine whether there is an idle server in the first resource domain;

[0014] The second server determining unit is configured to determine an idle server as a target server if there is an idle server in the first resource domain.

[0015] Optionally, after the first resource domain traversal unit, the method further includes:

[0016] a leaf node determination unit, configured to determine whether the first resource domain is a leaf node based on a preset tree-like resource domain structure if no idle server exists in the first resource domain;

[0017] a second resource domain traversal unit configured to, if the first resource domain is a leaf node, determine a corresponding parent node based on the tree-like resource domain structure, obtain a second resource domain corresponding to the parent node, and then traverse the second resource domain to determine whether there is an idle server in the second resource domain;

[0018] a first child node determining unit configured to, if an idle server exists in the second resource domain, determine the idle server as a target server; and, if no idle server exists in the second resource domain, use the second resource domain as a root node and determine all child nodes of the root node based on the tree-like resource domain structure to obtain a third resource domain corresponding to all the child nodes;

[0019] The second server determination unit is used to calculate the average load function value of each of the third resource domains to determine an idle target resource domain, and calculate the load function value of each server in the target resource domain to determine a target server that meets the preset conditions; wherein the average load function value is the average value of the load function values ​​of each server in the resource domain.

[0020] Optionally, after the leaf node judgment unit, the following is further included:

[0021] The second child node determination unit is used to take the first resource domain as the root node if the first resource domain is not a leaf node, and jump again to the step of determining all child nodes of the root node based on the tree-like resource domain structure to obtain a third resource domain corresponding to all the child nodes.

[0022] Optionally, after the second server determination unit, the method further includes:

[0023] a root node determination unit, configured to determine whether the target resource domain is a root node resource domain based on the tree-like resource domain structure if no target server meeting a preset condition exists in the target resource domain;

[0024] A response unit is used to return response information indicating a server scheduling failure to the target terminal if it is a root node resource domain; if it is not a root node resource domain, determine the corresponding parent node based on the tree-like resource domain structure, and obtain the corresponding fourth resource domain to determine the target server that meets the preset conditions.

[0025] Optionally, the distributed video conferencing system further includes:

[0026] A weight calculation expression construction module is used to obtain the user attendance rate and the CPU usage rate and bandwidth usage rate of each server, and assign corresponding weight coefficients to the user attendance rate, the CPU usage rate and the bandwidth usage rate to construct a weight calculation expression;

[0027] a load capacity expression construction module, configured to determine prescribed index values ​​corresponding to the user attendance rate, the CPU usage rate, and the bandwidth usage rate, respectively, and to construct a server load capacity expression based on the prescribed index values ​​and the weight coefficients;

[0028] The load function expression construction module is used to construct a load function expression based on the weight calculation expression, the load capacity expression and the number of terminals connected to the server, so as to calculate the load function value based on the load function expression.

[0029] Optionally, the preprocessing module includes:

[0030] The preprocessing setting unit is used to set the preset preprocessing rules to use the API gateway to perform any one or more of the current limiting operation, authentication operation, fuse degradation operation and filtering operation on the microservice scheduling request.

[0031] In a second aspect, the present application discloses an application method of a distributed video conferencing system, comprising:

[0032] Obtain a microservice call request for initiating a video conference sent by the target terminal, and use the API gateway to preprocess the microservice scheduling request according to preset preprocessing rules;

[0033] Based on the mapping relationship between microservices and servers in the microservice governance center, a target server is determined according to a preset server scheduling rule, and then the API gateway is used to schedule the target server to process the pre-processed microservice scheduling request; wherein the microservice is any one of a set of services obtained by decomposing the video conferencing application;

[0034] The video conference data generated after the microservice scheduling request is processed is obtained, and the video conference data is stored and called using a data center.

[0035] In a third aspect, the present application discloses an electronic device, comprising:

[0036] Memory, used to store computer programs;

[0037] The processor is used to execute the computer program to implement the steps of the application method of the distributed video conferencing system disclosed above.

[0038] In a fourth aspect, the present application discloses a computer-readable storage medium for storing a computer program; wherein, when the computer program is executed by a processor, the steps of the application method of the aforementioned distributed video conferencing system are implemented.

[0039] It can be seen that the present application discloses a distributed video conferencing system, including a preprocessing module, a server scheduling module and a storage calling module; wherein, the preprocessing module is used to obtain a microservice calling request for initiating a video conference sent by the target terminal, and use the API gateway to preprocess the microservice scheduling request according to the preset preprocessing rules; the server scheduling module is used to determine the target server according to the preset server scheduling rules based on the mapping relationship between microservices and servers in the microservice governance center, and then use the API gateway to schedule the target server to process the preprocessed microservice scheduling request; wherein, the microservice is any one of a set of services obtained after decomposing the video conferencing application; the storage calling module is used to obtain the video conferencing data generated after the processing of the microservice scheduling request is completed, and use the data center to store and call the video conferencing data. It can be seen that this application reduces the coupling of the system by adopting a distributed microservice architecture and decomposing the video conferencing application into a discrete set of microservices; in addition, the user can send the microservice call request for initiating a video conference to the distributed video conferencing system through the target terminal to participate in the video conference and improve the user experience; after the distributed video conferencing system receives the microservice call request, it first uses the API gateway to pre-process the request, and then determines the target server for processing the microservice call request according to the preset server scheduling rules to achieve server load balancing; finally, the generated video conferencing data is stored and called through the system's data center. In this way, this application provides a video conferencing system with more flexible configuration, and users can complete video conferencing operations directly through the target terminal, reducing the cost of video conferencing. BRIEF DESCRIPTION OF THE DRAWINGS

[0040] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are merely embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without any creative work.

[0041] Figure 1 A structural diagram of a distributed video conferencing system disclosed in an embodiment of the present application;

[0042] Figure 2 A schematic diagram of a specific distributed cell video conferencing system architecture disclosed in an embodiment of the present application;

[0043] Figure 3 This is a first specific server scheduling module framework diagram disclosed in the embodiment of this application;

[0044] Figure 4 This is a second specific server scheduling module framework diagram disclosed in the embodiments of this application;

[0045] Figure 5 This is a framework diagram of a third specific server scheduling module disclosed in an embodiment of the present application;

[0046] Figure 6 A specific tree-like resource domain model topology diagram disclosed in an embodiment of the present application;

[0047] Figure 7 A flow chart of a specific server scheduling algorithm disclosed in an embodiment of this application;

[0048] Figure 8 This is a specific load function value calculation module framework diagram disclosed in this application;

[0049] Figure 9 A flow chart of an application method of a distributed video conferencing system disclosed in this application;

[0050] Figure 10 This is a structural diagram of an electronic device disclosed in this application. DETAILED DESCRIPTION

[0051] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the embodiments described are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of the present invention.

[0052] Currently, traditional video conferencing network architectures utilize a centralized control structure, where users send audio and video data to the system's central control unit, which processes the data and then distributes the corresponding conference data to each user based on their needs. This structure facilitates operational management by video conferencing service providers. The central control unit can customize conference data based on the access methods and processing capabilities of each user's terminal, effectively ensuring service quality and making it suitable for large enterprises, small groups of users, and high-quality user groups. However, with the increasing popularity of video conferencing users and the diversification of video conferencing terminals, this structure has become a bottleneck. Since all user data must be aggregated to the central processing unit, which then distributes the data to all users, the access bandwidth and processing power of the central control unit become bottlenecks in the system, resulting in poor scalability. As video conferencing users become more popular and their number of users increases, video conferencing systems with this centralized control structure will find it difficult to support the increasing number of users simultaneously. Even if they can, they will require significant bandwidth and server costs. To this end, embodiments of the present application disclose a distributed video conferencing system, application method, device, and medium that overcome the shortcomings of the centralized control structure, provide a more flexible video conferencing system, and reduce the costs associated with video conferencing.

[0053] See also Figure 1 As shown, the embodiment of the present application discloses a distributed video conferencing system, which includes: a pre-processing module 11, a server scheduling module 12 and a storage calling module 13;

[0054] Among them, the preprocessing module 11 is used to obtain the microservice call request for initiating a video conference sent by the target terminal, and use the API gateway to preprocess the microservice scheduling request according to the preset preprocessing rules;

[0055] The server scheduling module 12 is configured to determine a target server based on the mapping relationship between microservices and servers in the microservice governance center and in accordance with preset server scheduling rules, and then use the API gateway to schedule the target server to process the pre-processed microservice scheduling request; wherein the microservice is any one of a set of services obtained by decomposing the video conferencing application;

[0056] The storage and calling module 13 is used to obtain the video conference data generated after the microservice scheduling request is processed, and use the data center to store and call the video conference data.

[0057] Furthermore, the pre-processing module may further include:

[0058] The preprocessing setting unit 111 is used to set the preset preprocessing rules to use the API gateway to perform any one or more of the current limiting operation, authentication operation, fuse degradation operation and filtering operation on the microservice scheduling request.

[0059] It should be pointed out that the distributed video conferencing system disclosed in this application is particularly suitable for places such as communities and homes. That is, it is a distributed video conferencing system based on community servers. The video conferencing system is composed of multiple domains interconnected, and each domain has a conference server and at least one user. First, the user sends a microservice call request for initiating a video conference to the distributed video conferencing system through the target terminal, where the target terminal can specifically be the user's personal computer, smart phone, smart tablet or other smart terminal, which is installed with an open operating system, can use wireless mobile communication technology to achieve Internet access, and provide services to users by downloading and installing third-party application software and digital content; then the API gateway pre-processes the microservice scheduling request according to the preset pre-processing rules, where the pre-processing operations may include but are not limited to performing flow control operations, authentication operations, circuit breaking and degradation operations, and filtering operations on the microservice scheduling request; then, based on the microservice registration information in the microservice governance center and according to the preset server scheduling rules, the target server for processing the microservice scheduling request is determined, that is, the microservice call request is routed to a specific microservice in the business microservice group for processing, where the microservice registration information specifically records the mapping relationship between the microservice and the server, and the microservice is any one of a set of services obtained after decomposing the video conferencing application; finally, the video conferencing data generated by the system is stored and called using the data center. It should be pointed out that the aforementioned circuit breaking and degradation operations refer to fault-tolerant mechanisms designed to prevent an avalanche effect caused by the unavailability of a service in a distributed system, specifically including service breaking and service degradation. Service breaking is achieved by setting a timeout threshold for the service. When the called service frequently fails and reaches a certain threshold, the circuit breaker protection mechanism is activated, and subsequent requests no longer call this service, and the default data is directly returned locally. Service degradation occurs during the operation and maintenance period, when the system is at its peak and system resources are tight, so that non-core businesses are downgraded to run without processing or with simplified processing. From the above content, it can be seen that the core part of a distributed video conferencing system can be specifically composed of four parts: a business microservice group, an API gateway, a microservice governance center, and a data center. In addition, it can also include smart terminals and a service circuit breaking and degradation system for processing circuit breaking and degradation operations.

[0060] Among them, a business microservice group refers to splitting a single application into a set of small services, each of which runs in its own process and uses a lightweight mechanism to communicate. The functions of a business microservice group may include but are not limited to: (1) dividing according to business functions, each microservice is deployed and run independently, and when a problem occurs in one of the servers, it does not affect the entire system; (2) using different programming languages ​​and different data storage technologies to write, and maintaining minimal centralized management.

[0061] An API gateway is a gateway that is set up when a client sends a request to a server. All requests first reach the gateway, which then performs unified authentication and processing on the requests. The functions of an API gateway may include but are not limited to: (1) The gateway can dynamically route requests to designated services based on the current request; (2) When there are many requests from the client, one or more cell servers can be called for load balancing; (3) When a cell server has a problem, the service can be fused or downgraded at the gateway level.

[0062] The microservice governance center refers to a software system that manages the registration and discovery functions of microservices. The functions of the microservice governance center may include but are not limited to: (1) recording the mapping relationship between microservices and servers; (2) dispatching the corresponding server to process when the client sends a service request; (3) managing the change of configuration information so that each microservice can obtain its own configuration in the configuration center.

[0063] A data center refers to a system that stores and accesses system cache and video conferencing data that may be generated. The functions of a data center may include but are not limited to: (1) distributed transparent management. In a distributed system, data is stored on multiple servers, and the data center is transparent to users, meaning that users do not need to know the specific location of the data; (2) transaction reliability, meaning that when a server fails, it does not affect the entire data center, and the data is still backed up on other servers.

[0064] Specifically, such as Figure 2As shown in the schematic diagram of a specific distributed cell video conferencing system architecture disclosed in the [1], the API gateway is used to process microservice call requests sent by the target terminal and perform operations such as current limiting, authentication, circuit breaking and degradation, filtering, and routing. The business microservice group is distributed in the servers of each cell and is divided into reservation services, audio services, video services, screen projection services, recording services, sharing services, user services, and security services according to their functions. Among them, the reservation service provides information reservation functions before the video conference, and the audio service, video service, screen projection service, and recording service provide voice calls, video interactions, screen projection, and conference recording functions during the video conference. The sharing service, user service, and security service provide conference data sharing, system user management, and video conference security functions after the conference, and work together to provide video conferencing services for cell users. The service governance center performs registration management, configuration changes, and other operations on the microservices in the business microservice group. The data center stores and calls the system cache and video conference data that may be generated. This system can achieve comparative advantages over other similar systems in terms of system equipment utilization, ease of operation, and user experience through the collaborative interaction between the above four parts.

[0065] In this embodiment, through the distributed video conferencing system, users are no longer constrained by the number of participants, terminal form, and bandwidth size, and can configure multiple microservers in the cell as needed to achieve better performance. Furthermore, users can complete conference operations on personal computers, smart phones, and smart tablets without the need for expensive hardware conferencing equipment, saving costs for users using video conferencing and greatly improving the user experience. In addition, the video conferencing function is decomposed into discrete microservices, thereby reducing the coupling of the system, making the system highly robust and adaptable, and providing more flexible service support, easy to develop and maintain, and scalable on demand. Compared to traditional single-server video conferencing systems, the distributed video conferencing system in this application is more flexible in configuration.

[0066] It can be seen that the present application discloses a distributed video conferencing system, including a preprocessing module, a server scheduling module and a storage calling module; wherein, the preprocessing module is used to obtain a microservice calling request for initiating a video conference sent by the target terminal, and use the API gateway to preprocess the microservice scheduling request according to the preset preprocessing rules; the server scheduling module is used to determine the target server according to the preset server scheduling rules based on the mapping relationship between microservices and servers in the microservice governance center, and then use the API gateway to schedule the target server to process the preprocessed microservice scheduling request; wherein, the microservice is any one of a set of services obtained after decomposing the video conferencing application; the storage calling module is used to obtain the video conferencing data generated after the processing of the microservice scheduling request is completed, and use the data center to store and call the video conferencing data. It can be seen that this application reduces the coupling of the system by adopting a distributed microservice architecture and decomposing the video conferencing application into a discrete set of microservices; in addition, the user can send the microservice call request for initiating a video conference to the distributed video conferencing system through the target terminal to participate in the video conference and improve the user experience; after the distributed video conferencing system receives the microservice call request, it first uses the API gateway to pre-process the request, and then determines the target server for processing the microservice call request according to the preset server scheduling rules to achieve server load balancing; finally, the generated video conferencing data is stored and called through the system's data center. In this way, this application provides a video conferencing system with more flexible configuration, and users can complete video conferencing operations directly through the target terminal, reducing the cost of video conferencing.

[0067] See also Figures 3 to 5 As shown, the embodiment of the present application discloses three specific server scheduling module framework diagrams. First of all, it should be pointed out that in order to achieve the purpose of nearby communication between home users and cell servers, the embodiment of the present application proposes a server-based tree resource domain model to deploy each cell server. The tree resource domain refers to the division of each resource domain according to the geographical location based on the administrative area where each cell server is located. With reference to the data storage structure of the tree in the computer data structure, the entire system is divided and deployed in a tree-like manner. For example, Figure 6As shown in Figure 1, based on the distribution of all server resources, a server resource domain is deployed in City A, a province, with this domain serving as the root node. Five server resource domains are deployed in Districts B, C, D, E, and F within City A, with corresponding resource domains deployed in other districts and counties. Based on the regional characteristics and video conferencing traffic volumes of each resource domain, corresponding server devices are placed in the root node domain and other domains. Resource domains are deployed in a tree-like structure. Server devices between parent nodes and child nodes, and between child nodes and their sibling nodes, have short physical distances, resulting in low communication latency between closely spaced server devices. For example, Cell 1 is located within District B, physically close to District B and adjacent to other cells within District B. By storing these regions in a tree, nearby server devices can be retrieved with minimal search effort. This demonstrates that by constructing a tree-like server resource domain, it is possible to retrieve nearby server devices with minimal computational cost, facilitating communication between terminals and nearby servers.

[0068] In a first embodiment, Figure 3 As shown in , the server scheduling module 12 may specifically include:

[0069] The first server determining unit 1201 is configured to obtain location information of the target terminal and determine a first server that is closest to the target terminal based on the location information;

[0070] A first resource domain traversal unit 1202 is configured to obtain a first resource domain corresponding to the first server, and traverse the first resource domain to determine whether there is an idle server in the first resource domain;

[0071] The second server determining unit 1203 is configured to determine an idle server as a target server if there is an idle server in the first resource domain.

[0072] It can be seen that in an embodiment of the present application, when a user initiates a video conference through a target terminal, the location information of the target terminal is first obtained, and the first server closest to the target terminal is determined based on the location information; then the first resource domain corresponding to the first server is obtained, and the first resource domain is traversed to determine whether there is an idle server in the first resource domain. If there is an idle server in the first resource domain, the idle server is determined as the target server so that the target server can be subsequently scheduled to process the pre-processed microservice scheduling request.

[0073] In the second specific embodiment, Figure 4 As shown in , the server scheduling module 12 may specifically include:

[0074] The first server determining unit 1211 is configured to obtain the location information of the target terminal and determine the first server closest to the target terminal based on the location information;

[0075] A first resource domain traversal unit 1212 is configured to obtain a first resource domain corresponding to the first server, and traverse the first resource domain to determine whether there is an idle server in the first resource domain;

[0076] The leaf node determination unit 1213 is configured to determine whether the first resource domain is a leaf node based on a preset tree resource domain structure if there is no idle server in the first resource domain;

[0077] a second resource domain traversal unit 1214 configured to, if the first resource domain is a leaf node, determine a corresponding parent node based on the tree-like resource domain structure, obtain a second resource domain corresponding to the parent node, and then traverse the second resource domain to determine whether there is an idle server in the second resource domain;

[0078] The first child node determining unit 1215 is configured to, if an idle server exists in the second resource domain, determine the idle server as a target server; if no idle server exists in the second resource domain, use the second resource domain as a root node and determine all child nodes of the root node based on the tree-like resource domain structure to obtain a third resource domain corresponding to all the child nodes;

[0079] The second server determination unit 1216 is used to calculate the average load function value of each of the third resource domains to determine an idle target resource domain, and calculate the load function value of each server in the target resource domain to determine a target server that meets the preset conditions; wherein the average load function value is the average value of the load function values ​​of each server in the resource domain.

[0080] A root node determining unit 1217 is configured to determine whether the target resource domain is a root node resource domain based on the tree-like resource domain structure if there is no target server meeting a preset condition in the target resource domain;

[0081] Response unit 1218 is used to return response information indicating server scheduling failure to the target terminal if it is a root node resource domain; if it is not a root node resource domain, determine the corresponding parent node based on the tree-like resource domain structure, and obtain the corresponding fourth resource domain to determine the target server that meets the preset conditions.

[0082] Compared with the previous embodiment, in this embodiment, if there is no idle server in the first resource domain, it is determined whether the first resource domain is a leaf node based on the preset tree resource domain structure. For example, if the first resource domain corresponds to Figure 6 If the first resource domain is a leaf node in the tree-like resource domain structure, then the second resource domain corresponding to its parent node (i.e., City B) is obtained, and then the second resource domain is traversed to determine whether there is an idle server in the second resource domain. If so, the idle server is determined as the target server. If not, the second resource domain is used as the root node, and all child nodes of the root node are determined based on the tree-like resource domain structure to obtain the third resource domain corresponding to all child nodes. For example, Figure 6 If the parent node B in the city includes cell 1, cell 2 and other cells, then the third resource domains corresponding to these cells are obtained respectively, and the average load function value of each third resource domain is calculated to determine the most idle target resource domain, and then the load function value of each server in the target resource domain is calculated to determine the target server that meets the preset conditions; wherein the preset conditions specifically refer to the server device with the smallest load function value in the target resource domain and has not initiated other video conferences. If there is a server that meets the preset conditions in the target resource domain, it can be used as the target server to process the pre-processed microservice scheduling request; if there is no target server that meets the preset conditions in the target resource domain, then based on the tree-like resource domain structure, it is determined whether the target resource domain is a root node resource domain. If so, it means that no qualified server can be found, and a response message indicating the failure of server scheduling is returned to the target terminal. If it is not a root node resource domain, then continue to look for its parent node and obtain the corresponding fourth resource domain to determine the target server that meets the preset conditions.

[0083] In the third embodiment, Figure 5 As shown in , the server scheduling module 12 may specifically include:

[0084] The first server determining unit 1221 is configured to obtain the location information of the target terminal and determine the first server closest to the target terminal based on the location information;

[0085] A first resource domain traversal unit 1222 is configured to obtain a first resource domain corresponding to the first server, and traverse the first resource domain to determine whether there is an idle server in the first resource domain;

[0086] The leaf node determination unit 1223 is configured to determine whether the first resource domain is a leaf node based on a preset tree resource domain structure if there is no idle server in the first resource domain;

[0087] The second child node determination unit 1224 is used to, if the first resource domain is not a leaf node, take the first resource domain as the root node and jump again to the step of determining all child nodes of the root node based on the tree-like resource domain structure to obtain a third resource domain corresponding to all the child nodes.

[0088] In this embodiment, if there is no idle server in the first resource domain and the first resource domain is not a leaf node, the first resource domain is taken as the root node, and the step of jumping again to determine all child nodes of the root node based on the tree-like resource domain structure to obtain the third resource domain corresponding to all the child nodes.

[0089] It can be seen that the distributed system faces the problems of uneven distribution of system resources and excessive load on some servers due to its distributed nature, that is, the servers are dispersed and deployed in different geographical locations. In order to achieve the purpose of reasonable resource allocation and overall load balancing of the system, this application proposes a scheduling algorithm based on the server resource load function, combined with an improved binary tree in-order traversal algorithm, to find suitable servers for scheduling, so as to achieve a load balancing effect suitable for the cell environment. Specifically, the server load function is calculated to measure and reflect the load of each server, and combined with the geographical location of the server, the server resources are scheduled nearby. The specific scheduling algorithm process can be found in Figure 7 As shown in . In this way, under the premise of ensuring that the terminal can join the meeting normally, the terminal can give priority to communicating with the server that is closer, and balance the load of all servers by combining the server resource load function.

[0090] join Figure 8 As shown, the present application discloses a specific load function value calculation module framework diagram, which specifically includes:

[0091] A weight calculation expression construction module 14 is used to obtain the user attendance rate and the CPU usage rate and bandwidth usage rate of each server, and assign corresponding weight coefficients to the user attendance rate, the CPU usage rate and the bandwidth usage rate to construct a weight calculation expression;

[0092] A load capacity expression constructing module 15 is configured to determine prescribed index values ​​corresponding to the user attendance rate, the CPU usage rate, and the bandwidth usage rate, respectively, and construct a server load capacity expression based on the prescribed index values ​​and the weight coefficients;

[0093] The load function expression constructing module 16 is used to construct a load function expression based on the weight calculation expression, the load capacity expression and the number of terminals connected to the server, so as to calculate the load function value based on the load function expression.

[0094] In this embodiment, it can be understood that during the operation of the video conferencing system, the system performance is determined by three main factors: the number of CPU cores, bandwidth, and number of participants of the server device. Therefore, this embodiment selects CPU utilization rate P, bandwidth utilization rate B, and user participation rate U as server load status indicators. Based on the above three main factors, a server negative state expression is constructed, and the server load weight is updated according to the calculation results. Among them, CPU utilization rate P = number of used CPU cores / total number of CPU cores, bandwidth utilization rate B = used bandwidth / total bandwidth, user participation rate U = number of participants / total number of people that can be accommodated in the conference. Since each load status indicator of the server has different effects on the effect of the video conference, it is necessary to introduce a weight coefficient W to give each load indicator different weights to reflect the degree of influence of each load indicator on the server device. Therefore, the load status expression of the server device is defined in this embodiment of the application as:

[0095] S i =W1P+W2B+W3U;

[0096] Among them, W1+W2+W3=1.

[0097] In addition, use F i represents the i-th distributed server, P(F i )、B(F i )、U(F i )、W4、W(F i ) represents the device's CPU usage, bandwidth usage, user conference attendance rate, device initial weight, and weight coefficient. The device's CPU idle rate, bandwidth idle rate, and conference attendance idle rate are 1-P(F i )、1-B(F i )、1-U(F i ), then the weight calculation expression is:

[0098] W(F i )=W1(1-P(F i ))+W2(1-B(F i ))+W3(1-U(F i ))+W4;

[0099] Among them, W1+W2+W3+W4=1.

[0100] Furthermore, using C(S i ) represents the number of terminals connected to the server, then the load function expression constructed based on the weight calculation expression, load status expression and the number of terminals connected to the server is:

[0101]

[0102] Therefore, the server resource load function L is i It can accurately reflect the actual load of each server device. The larger the value, the stronger the processing capacity of the server device. Whenever a scheduling request is transmitted to the system, the load function value of the corresponding server device can be calculated in combination with the tree resource domain for scheduling. That is, each time the load function value L in the resource domain is selected i The largest server device provides services to achieve overall load balancing of the video conferencing system.

[0103] See also Figure 9 As shown, the embodiment of the present application discloses an application method of a distributed video conferencing system, which specifically includes:

[0104] Step S11: obtaining a microservice call request for initiating a video conference sent by the target terminal, and performing a preprocessing operation on the microservice scheduling request using the API gateway according to a preset preprocessing rule;

[0105] Step S12: Based on the mapping relationship between microservices and servers in the microservice governance center, a target server is determined according to a preset server scheduling rule, and then the API gateway is used to schedule the target server to process the pre-processed microservice scheduling request; wherein the microservice is any one of a set of services obtained by decomposing the video conferencing application;

[0106] Step S13: Obtain the video conference data generated after the microservice scheduling request is processed, and use the data center to store and call the video conference data.

[0107] It can be seen that the present application obtains a microservice call request for initiating a video conference sent by the target terminal, and uses an API gateway to perform preprocessing operations on the microservice scheduling request according to preset preprocessing rules; based on the mapping relationship between microservices and servers in the microservice governance center, the target server is determined according to the preset server scheduling rules, and then the API gateway is used to schedule the target server to process the preprocessed microservice scheduling request; wherein, the microservice is any one of a set of services obtained after decomposing the video conferencing application; the video conferencing data generated after the processing of the microservice scheduling request is completed is obtained, and the video conferencing data is stored and called using a data center. It can be seen that this application reduces the coupling of the system by adopting a distributed microservice architecture and decomposing the video conferencing application into a discrete set of microservices; in addition, the user can send the microservice call request for initiating a video conference to the distributed video conferencing system through the target terminal to participate in the video conference and improve the user experience; after the distributed video conferencing system receives the microservice call request, it first uses the API gateway to pre-process the request, and then determines the target server for processing the microservice call request according to the preset server scheduling rules to achieve server load balancing; finally, the generated video conferencing data is stored and called through the system's data center. In this way, this application provides a video conferencing system with more flexible configuration, and users can complete video conferencing operations directly through the target terminal, reducing the cost of video conferencing.

[0108] Figure 10 This is a schematic diagram of the structure of an electronic device provided in an embodiment of the present application. Specifically, the device may include: at least one processor 21, at least one memory 22, a power supply 23, a communication interface 24, an input / output interface 25, and a communication bus 26. The memory 22 is used to store a computer program, which is loaded and executed by the processor 21 to implement the relevant steps of the application method of a distributed video conferencing system performed by an electronic device as disclosed in any of the aforementioned embodiments.

[0109] In this embodiment, the power supply 23 is used to provide operating voltage for each hardware device on the electronic device 20; the communication interface 24 can create a data transmission channel between the electronic device 20 and the external device. The communication protocol it follows is any communication protocol that can be applied to the technical solution of this application and is not specifically limited here; the input and output interface 25 is used to obtain external input data or output data to the outside world. Its specific interface type can be selected according to specific application needs and is not specifically limited here.

[0110] Among them, the processor 21 may include one or more processing cores, such as a 4-core processor, an 8-core processor, etc. The processor 21 can be implemented in at least one hardware form of DSP (Digital Signal Processing), FPGA (Field-Programmable Gate Array), and PLA (Programmable Logic Array). The processor 21 may also include a main processor and a coprocessor. The main processor is a processor for processing data in the awake state, also known as a CPU (Central Processing Unit); the coprocessor is a low-power processor for processing data in the standby state. In some embodiments, the processor 21 may be integrated with a GPU (Graphics Processing Unit), which is responsible for rendering and drawing the content to be displayed on the display screen. In some embodiments, the processor 21 may also include an AI (Artificial Intelligence) processor, which is used to process computing operations related to machine learning.

[0111] In addition, the memory 22, as a carrier for resource storage, can be a read-only memory, random access memory, disk or CD, etc. The resources stored thereon include an operating system 221, a computer program 222 and data 223, etc. The storage method can be temporary storage or permanent storage.

[0112] The operating system 221 is used to manage and control the hardware devices and computer programs 222 on the electronic device 20, enabling the processor 21 to calculate and process the massive amount of data 223 in the memory 22. It can be Windows, Unix, Linux, etc. In addition to including computer programs capable of implementing the application methods of the distributed video conferencing system executed by the electronic device 20 as disclosed in any of the aforementioned embodiments, the computer programs 222 may further include computer programs capable of performing other specific tasks. Data 223 may include data received by the electronic device from external devices, as well as data collected by its own input and output interface 25.

[0113] Furthermore, an embodiment of the present application also discloses a computer-readable storage medium, in which a computer program is stored. When the computer program is loaded and executed by a processor, the method steps performed in the application process of the distributed video conferencing system disclosed in any of the aforementioned embodiments are implemented.

[0114] The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on its differences from the other embodiments. References to the same or similar parts between the various embodiments are sufficient. The methods disclosed in the embodiments are described briefly because they correspond to the systems disclosed in the embodiments. For relevant details, refer to the description of the systems.

[0115] Professionals may further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the above description has generally described the components and steps of each example according to their functions. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0116] The steps of the methods or algorithms described in conjunction with the embodiments disclosed herein may be implemented directly using hardware, a software module executed by a processor, or a combination of the two. The software module may be placed in a random access memory (RAM), internal memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.

[0117] Finally, it should be noted that, in this document, relational terms such as first and second, etc., are used only to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any actual relationship or order between these entities or operations. Moreover, the terms "comprises," "comprising," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or device. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of additional identical elements in the process, method, article, or device comprising the element.

[0118] The above is a detailed introduction to the application system, application method, device and storage medium of a distributed video conferencing system provided by the present invention. Specific examples are used herein to illustrate the principles and implementation methods of the present invention. The description of the above embodiments is only used to help understand the method of the present invention and its core idea. At the same time, for those skilled in the art, according to the ideas of the present invention, there may be changes in the specific implementation methods and application scope. In summary, the content of this specification should not be understood as a limitation on the present invention.

Claims

1. A distributed video conferencing system, characterized in that: include: A preprocessing module is used to obtain a microservice call request for initiating a video conference sent by a target terminal, and perform preprocessing operations on the microservice scheduling request using an API gateway according to preset preprocessing rules; A server scheduling module is configured to determine a target server based on the mapping relationship between microservices and servers in the microservice governance center and in accordance with preset server scheduling rules, and then use the API gateway to schedule the target server to process the pre-processed microservice scheduling request; wherein the microservice is any one of a set of services obtained by decomposing the video conferencing application; A storage and calling module is used to obtain the video conference data generated after the microservice scheduling request is processed, and use the data center to store and call the video conference data; Wherein, the server scheduling module includes: a first server determining unit, configured to obtain location information of the target terminal and determine a first server that is closest to the target terminal based on the location information; a first resource domain traversal unit, configured to obtain a first resource domain corresponding to the first server, and traverse the first resource domain to determine whether there is an idle server in the first resource domain; a leaf node determination unit, configured to determine whether the first resource domain is a leaf node based on a preset tree-like resource domain structure if no idle server exists in the first resource domain; a second resource domain traversal unit configured to, if the first resource domain is a leaf node, determine a corresponding parent node based on the tree-like resource domain structure, obtain a second resource domain corresponding to the parent node, and then traverse the second resource domain to determine whether there is an idle server in the second resource domain; a first child node determining unit configured to, if an idle server exists in the second resource domain, determine the idle server as a target server; and, if no idle server exists in the second resource domain, use the second resource domain as a root node and determine all child nodes of the root node based on the tree-like resource domain structure to obtain a third resource domain corresponding to all the child nodes; The second server determination unit is used to calculate the average load function value of each of the third resource domains to determine an idle target resource domain, and calculate the load function value of each server in the target resource domain to determine a target server that meets the preset conditions; wherein the average load function value is the average value of the load function values ​​of each server in the resource domain.

2. The distributed video conferencing system according to claim 1, wherein: The server scheduling module further includes: The second server determining unit is configured to determine an idle server as a target server if there is an idle server in the first resource domain.

3. The distributed video conferencing system according to claim 1, wherein: After the leaf node judgment unit, it also includes: The second child node determination unit is used to take the first resource domain as the root node if the first resource domain is not a leaf node, and jump again to the step of determining all child nodes of the root node based on the tree-like resource domain structure to obtain a third resource domain corresponding to all the child nodes.

4. The distributed video conferencing system according to claim 1, wherein: After the second server determination unit, the method further includes: a root node determination unit, configured to determine whether the target resource domain is a root node resource domain based on the tree-like resource domain structure if no target server meeting a preset condition exists in the target resource domain; A response unit is used to return response information indicating a server scheduling failure to the target terminal if it is a root node resource domain; if it is not a root node resource domain, determine the corresponding parent node based on the tree-like resource domain structure, and obtain the corresponding fourth resource domain to determine the target server that meets the preset conditions.

5. The distributed video conferencing system according to claim 1, wherein: Also includes: A weight calculation expression construction module is used to obtain the user attendance rate and the CPU usage rate and bandwidth usage rate of each server, and assign corresponding weight coefficients to the user attendance rate, the CPU usage rate and the bandwidth usage rate to construct a weight calculation expression; a load capacity expression construction module, configured to determine prescribed index values ​​corresponding to the user attendance rate, the CPU usage rate, and the bandwidth usage rate, respectively, and to construct a server load capacity expression based on the prescribed index values ​​and the weight coefficients; The load function expression construction module is used to construct a load function expression based on the weight calculation expression, the load capacity expression and the number of terminals connected to the server, so as to calculate the load function value based on the load function expression.

6. The distributed video conferencing system according to any one of claims 1 to 5, characterized in that: The preprocessing module includes: The preprocessing setting unit is used to set the preset preprocessing rules to use the API gateway to perform any one or more of the current limiting operation, authentication operation, fuse degradation operation and filtering operation on the microservice scheduling request.

7. An application method of a distributed video conferencing system, characterized in that: include: Obtain a microservice call request for initiating a video conference sent by the target terminal, and use the API gateway to preprocess the microservice scheduling request according to preset preprocessing rules; Based on the mapping relationship between microservices and servers in the microservice governance center, a target server is determined according to a preset server scheduling rule, and then the API gateway is used to schedule the target server to process the pre-processed microservice scheduling request; wherein the microservice is any one of a set of services obtained by decomposing the video conferencing application; Obtaining the video conference data generated after the microservice scheduling request is processed, and using the data center to store and call the video conference data; The step of determining the target server according to the preset server scheduling rules includes: Acquire location information of the target terminal, and determine a first server that is closest to the target terminal based on the location information; Acquire a first resource domain corresponding to the first server, and traverse the first resource domain to determine whether there is an idle server in the first resource domain; If there is no idle server in the first resource domain, determining whether the first resource domain is a leaf node based on a preset tree resource domain structure; If the first resource domain is a leaf node, determining the corresponding parent node based on the tree-like resource domain structure, obtaining the second resource domain corresponding to the parent node, and then traversing the second resource domain to determine whether there is an idle server in the second resource domain; If there is an idle server in the second resource domain, the idle server is determined as the target server; if there is no idle server in the second resource domain, the second resource domain is used as a root node, and all child nodes of the root node are determined based on the tree-like resource domain structure to obtain a third resource domain corresponding to all the child nodes; Calculate the average load function value of each of the third resource domains to determine an idle target resource domain, and calculate the load function value of each server in the target resource domain to determine a target server that meets the preset conditions; wherein the average load function value is the average value of the load function values ​​of each server in the resource domain.

8. An electronic device, characterized in that: include: Memory, used to store computer programs; A processor is configured to execute the computer program to implement the steps of the application method of the distributed video conferencing system as claimed in claim 7.

9. A computer-readable storage medium, characterized in that Used to store computer programs; wherein, when the computer program is executed by a processor, the steps of the application method of the distributed video conferencing system as claimed in claim 7 are implemented.

Citation Information

Patent Citations

  • Distributed load balancing method and device based on streaming media

    CN109600624A

  • Service processing method and device

    CN109618119A

  • Service request processing method and device, electronic equipment and storage medium

    CN112559189A

  • WebRTC-based media server scheduling system, method and device

    CN115022411A