Multi-operator short message channel dynamic selection and load balancing method and system
By collecting and quantifying the network topology characteristics of SMS channels, constructing a weighted directed graph and iteratively calculating traffic allocation, the problem of load balancing failure in existing technologies is solved, and the SMS delivery delay is reduced and the accuracy of traffic allocation is improved in high-concurrency scenarios.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- BEIJING MIRACLE DUODUO TECHNOLOGY CO LTD
- Filing Date
- 2026-05-18
- Publication Date
- 2026-07-24
AI Technical Summary
Existing multi-carrier SMS channel scheduling lacks awareness of the dynamic characteristics of the underlying network and the actual dwell status of end users, resulting in load balancing failures and abnormally high SMS delivery delays in high-concurrency scenarios.
The system collects the forwarding time of each SMS channel in the corresponding branch path of the global network topology, the number of hops of the physical link between adjacent transmission nodes, and the connection status and switching times of the target user in the corresponding physical area network. It calculates the delay gradient and resistance coefficient, constructs a weighted directed graph, iteratively calculates augmenting paths and allocates traffic, and sets a token bucket to dynamically verify concurrent SMS sending requests.
It achieves dynamic intelligent routing from a global perspective, avoiding traffic misallocation and overload of some channels caused by sudden large traffic surges, alleviating SMS delivery delays, and ensuring the accuracy and robustness of load balancing in complex network environments.
Smart Images

Figure CN122458085A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of mobile communication technology, and in particular to a method and system for dynamic selection and load balancing of SMS channels from multiple operators. Background Technology
[0002] With the rapid development of mobile internet and enterprise communication services, SMS, as a medium for identity verification, business notifications, and delivering important marketing information, is facing increasingly prominent demands for high concurrency and real-time performance. To ensure the rapid and stable delivery of massive amounts of SMS messages, enterprise-level communication platforms typically connect to multiple carrier SMS channels simultaneously for coordinated sending. This necessitates that the underlying communication scheduling system possess extremely efficient and intelligent dynamic channel selection and load balancing capabilities to cope with complex cross-domain network environments.
[0003] Existing multi-carrier SMS channel selection and load balancing methods typically employ round-robin mechanisms, static weight allocation, or traffic scheduling based on simple end-to-end connectivity tests. These conventional scheduling systems mostly remain at the application layer, primarily focusing on the response speed of gateway interfaces and the static bandwidth quotas for each channel. In actual operation, the system generally distributes concurrent SMS requests to various carrier channels mechanically according to a set fixed concurrency ratio or a single-dimensional interface congestion metric.
[0004] However, real-world communication networks involve multi-level routing and cross-regional data exchange. Existing methods, by ignoring the deep forwarding time of the underlying physical links and the frequent switching behavior of end users when roaming across regions, can lead to misjudgments where the gateway appears normal while the underlying links are implicitly congested. This coarse-grained scheduling, detached from the dynamic characteristics of the physical network and the micro-behavior of users, is prone to traffic misallocation when faced with sudden surges in traffic, causing severe overload on some channels. Therefore, existing technologies suffer from a lack of awareness of the dynamic characteristics of the underlying network and the actual residency status of end users in multi-carrier SMS channel scheduling, resulting in technical problems such as load balancing failure and abnormally high SMS delivery delays in high-concurrency scenarios. Summary of the Invention
[0005] The purpose of this application is to provide a method and system for dynamic selection and load balancing of SMS channels from multiple operators, in order to solve the technical problems in the prior art where the scheduling of SMS channels from multiple operators lacks awareness of the dynamic characteristics of the underlying network and the actual residence status of the terminal users, which leads to easy failure of load balancing and abnormally high SMS delivery delay in high-concurrency scenarios.
[0006] Firstly, this application provides a method for dynamic selection and load balancing of SMS channels across multiple operators, including: The forwarding time of each SMS channel in the corresponding branch path of the global network topology, the number of hops of the physical link between adjacent transmission nodes, and the connection status and switching times of the target user in the corresponding physical area network are collected. The global network topology includes transmission nodes corresponding to multiple physical areas. Based on forwarding time and link hop count, the delay gradient of each physical link is calculated. Based on connection status and number of handovers, the handover delay of the target user in roaming status is normalized to obtain the resistance coefficient of each transmission node. A weighted directed graph is constructed using transmission nodes as graph nodes, physical links as directed edges, delay gradients and resistance coefficients as edge weights, and the physical bandwidth limit of the SMS channel as a capacity constraint. In a weighted directed graph, with the SMS sending source as the source node and the gateway corresponding to the SMS channel as the target node, under the condition of satisfying the capacity constraint, the augmenting path with the minimum cumulative sum of edge weights is iteratively calculated and the corresponding traffic is allocated until the total traffic reaches the preset threshold. A capacity allocation matrix is then constructed based on the traffic. A token bucket is set up for each SMS channel. The generation rate of the token bucket is adjusted based on the capacity allocation matrix to determine the available capacity. Concurrent SMS sending requests are dynamically verified and distributed according to the available capacity.
[0007] Optionally, based on forwarding time and link hop count, the delay gradient of each physical link is calculated; based on connection state and handover count, the handover delay of the target user in roaming state is normalized to obtain the resistance coefficient of each transmission node, including: Calculate the time difference between forwarding times between adjacent transmission nodes, and use the ratio of the time difference to the number of hops in the link as the delay gradient for each physical link; If the connection status is a stationary state, the resistance coefficient corresponding to each transmission node is set to a preset threshold. The connection status includes stationary state and roaming state. If the connection status is roaming, the handover delay of the corresponding physical area is calculated based on the number of handovers, and the handover delay of all physical areas is normalized to obtain the resistance coefficient corresponding to each transmission node.
[0008] Optionally, if the connection status is roaming, the handover delay of the corresponding physical area is calculated based on the number of handovers, and the handover delay of all physical areas is normalized to obtain the resistance coefficient corresponding to each transmission node, including: If the target user's local status is roaming, the switching time for the roaming status is determined according to the preset roaming table, and the product of the switching time and the number of switching times for the corresponding physical area is used as the switching delay for the corresponding physical area. Determine the maximum and minimum handover delays in all physical regions, calculate the ratio between the first difference between each handover delay and the minimum delay and the second difference between the maximum and the minimum delay, and obtain the resistance coefficient for each transmission node in each physical region.
[0009] Optionally, a weighted directed graph is constructed using transmission nodes as graph nodes, physical links as directed edges, delay gradients and resistance coefficients to determine edge weights, and the upper limit of the physical bandwidth of the SMS channel as a capacity constraint. This graph includes: Map transmission nodes to graph nodes and physical links to directed edges; The product of the preset first weight coefficient and the resistance coefficient of each transmission node is used as the resistance component of the corresponding graph node, and the product of the preset second weight coefficient and the delay gradient of each physical link is used as the delay component of the corresponding directed edge. The sum of the delay component of each directed edge and the resistance component of the graph node pointed to by the corresponding directed edge is used as the edge weight of the corresponding directed edge. The physical bandwidth limit of the SMS channel to which each directed edge belongs is set as the capacity constraint of the corresponding directed edge. Based on the graph nodes, directed edges, edge weights and capacity constraints, a weighted directed graph is constructed.
[0010] Optionally, in the weighted directed graph, with the SMS sending source as the source node and the gateway corresponding to the SMS channel as the target node, under the condition of satisfying capacity constraints, the augmenting path with the minimum cumulative sum of edge weights is iteratively calculated and the corresponding traffic is allocated until the total traffic reaches a preset threshold. A capacity allocation matrix is then constructed based on the traffic, including: Map the SMS sending sources in the global network topology to source nodes in a weighted directed graph, and map the gateways corresponding to each SMS channel to target nodes in the weighted directed graph. Using a capacity constraint greater than zero as a connectivity condition, determine multiple initial paths from the source node to each target node, calculate the cumulative sum of the edge weights on each initial path, and take the initial path corresponding to the minimum cumulative sum as the current augmenting path; Iteratively allocate traffic and update capacity constraints based on the capacity constraints of the current augmenting path until the total allocated traffic reaches a preset threshold. Accumulate the traffic to each target node to construct a capacity allocation matrix.
[0011] Optionally, based on the capacity constraints of the current augmenting path, traffic is iteratively allocated and the capacity constraints are updated until the total allocated traffic reaches a preset threshold. The traffic to each target node is then accumulated to construct a capacity allocation matrix, including: Traverse the capacity constraints of each directed edge on the current augmenting path, take the minimum capacity constraint as the remaining capacity on the current augmenting path, take the remaining capacity as the single allocation flow, and take the difference between the capacity constraints of each directed edge on the current augmenting path and the single allocation flow as the updated capacity constraint. Using the updated capacity constraints, multiple initial paths between the source node and each target node are redefined until the total traffic obtained by accumulating the traffic from multiple single allocations reaches a preset threshold. The traffic from multiple augmentation paths leading to the same target node is accumulated to obtain the channel load of each target node. All channel loads are then arranged according to the system identifier order of the SMS channels to construct a capacity allocation matrix.
[0012] Optionally, a token bucket is set for each SMS channel, and the generation rate of the token bucket is adjusted based on the capacity allocation matrix to determine the available capacity. Concurrent SMS sending requests are dynamically verified and distributed according to the available capacity, including: The channel load corresponding to each SMS channel is determined from the capacity allocation matrix, and the channel load is converted into the generation rate of the token bucket corresponding to each SMS channel using a preset conversion ratio. A communication token is generated in each token bucket according to the generation rate, and the cumulative number of communication tokens is used to determine the available capacity of each SMS channel. When the cumulative amount of available capacity is greater than or equal to the capacity required for concurrent SMS sending requests, the communication token corresponding to the required capacity is subtracted from the available capacity, and the concurrent SMS sending requests are allowed to the corresponding SMS channel.
[0013] Secondly, this application provides a multi-carrier SMS channel dynamic selection and load balancing system, including: The data acquisition module is used to collect the forwarding time of each SMS channel in the corresponding branch path of the global network topology, the number of hops of the physical link between adjacent transmission nodes, and the connection status and switching times of the target user in the corresponding physical area network. The global network topology includes transmission nodes corresponding to multiple physical areas. The calculation module is used to calculate the delay gradient of each physical link based on forwarding time and link hop count, and to normalize the handover delay of the target user in roaming state based on connection status and handover count to obtain the resistance coefficient of each transmission node. The construction module is used to construct a weighted directed graph with transmission nodes as graph nodes, physical links as directed edges, delay gradient and resistance coefficient as edge weights, and the physical bandwidth limit of the SMS channel as capacity constraint. The construction module is also used in a weighted directed graph to iteratively calculate the augmenting path with the minimum sum of edge weights and allocate the corresponding traffic, with the SMS sending source as the source node and the gateway corresponding to the SMS channel as the target node, under the condition of satisfying capacity constraints, until the total traffic reaches a preset threshold, and to construct a capacity allocation matrix based on the traffic. The determination module is used to set up a token bucket for each SMS channel, adjust the generation rate of the token bucket based on the capacity allocation matrix to determine the available capacity, and dynamically verify and distribute concurrent SMS sending requests according to the available capacity.
[0014] Thirdly, this application provides an electronic device, comprising: Memory, used to store computer programs; A processor is used to execute computer programs to implement the steps of the multi-carrier SMS channel dynamic selection and load balancing method described in the first aspect above.
[0015] Fourthly, this application provides a computer-readable storage medium storing a computer program that, when executed by a processor, can implement the steps of the multi-carrier SMS channel dynamic selection and load balancing method described in the first aspect above.
[0016] The multi-carrier SMS channel dynamic selection and load balancing method provided in this application, by collecting the forwarding time of transmission nodes in the corresponding branch path of each SMS channel in the global network topology, the link hop count of physical links between adjacent transmission nodes, and the connection status and switching frequency of the target user in the corresponding physical area network, breaks through the limitation of existing technologies that only focus on the gateway interface response speed at the application layer. It quantifies the deep forwarding congestion trend of the underlying links; by deriving the resistance coefficient through normalization, it successfully transforms the complex cross-regional frequent switching behavior into node resistance that can be identified by graph theory algorithms, solving the problem that existing coarse scheduling is detached from the dynamic characteristics of the physical network. It overcomes the mechanical traffic scheduling defects caused by polling mechanisms or static weight allocation in existing technologies. It achieves dynamic intelligent routing from a global perspective. It avoids traffic allocation mismatch and severe overload of some channels caused by sudden large traffic surges. It achieves a smooth implementation of complex scheduling algorithms to physical rate limiting. It alleviates sudden congestion and significantly reduces SMS delivery delays.
[0017] Furthermore, when the target user's connection status is roaming, this application obtains the handover time by consulting a preset roaming table and multiplies it by the number of handovers within the physical area to accurately calculate the handover latency of the corresponding physical area. Subsequently, the maximum and minimum latency are extracted from the handover latencies of all physical areas. By calculating the first difference between the current handover latency and the minimum latency, and the second difference between the maximum and minimum latency, and then comparing the two, a normalization operation is finally completed to accurately obtain the resistance coefficient corresponding to each transmission node in each physical area. This ensures that subsequent load balancing can maintain high accuracy and robustness even when facing extremely complex cross-domain network environments. Attached Figure Description
[0018] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0019] Figure 1 A flowchart illustrating the multi-carrier SMS channel dynamic selection and load balancing method provided in this application embodiment; Figure 2 A flowchart illustrating the method for obtaining the resistance coefficient corresponding to each transmission node as provided in the embodiments of this application; Figure 3 A flowchart illustrating the method for constructing a weighted directed graph provided in an embodiment of this application; Figure 4 A schematic diagram of the structure of a multi-carrier SMS channel dynamic selection and load balancing system provided in an embodiment of this application; Figure 5 This is a schematic diagram of the hardware structure of the electronic device provided in the embodiments of this application. Detailed Implementation
[0020] In enterprise-level scenarios involving high-concurrency delivery of massive amounts of SMS messages, existing scheduling methods only operate at the application layer. Because they cannot detect the deep forwarding time of the underlying physical links and the cross-regional roaming switching behavior of end users, they are prone to technical bottlenecks such as hidden congestion, traffic allocation mismatch, and abnormally high delivery delays.
[0021] This application delves deep into the physical network and user micro-behavior layers, collecting real-time data on forwarding time of transmission nodes, link hop count, and connection status and switching frequency of target users. Secondly, it mathematically quantifies these multi-dimensional dynamic characteristics, accurately calculating the delay gradient reflecting link congestion and the resistance coefficient reflecting user roaming obstacles. These are then used as edge weights, combined with the upper limit of channel physical bandwidth as a capacity constraint, to reconstruct the complex cross-domain communication network into a rigorous weighted directed graph model. Furthermore, by iteratively solving for the augmenting path with the minimum sum of edge weights within this graph model, the optimal traffic capacity allocation matrix is calculated globally. Finally, this mathematical allocation result is applied to the actual business control layer, dynamically adjusting the generation rate of token buckets for each SMS channel to determine available capacity. This enables precise dynamic verification and distribution of concurrent SMS sending requests, ultimately fundamentally solving the load balancing failure problem caused by the lack of underlying dynamic awareness in existing technologies.
[0022] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0023] The core of this application is to provide a method for dynamic selection and load balancing of SMS channels across multiple operators. A flowchart illustrating one specific implementation is shown below. Figure 1 As shown, the method includes: Step 101: Collect the forwarding time of each SMS channel in the corresponding branch path of the global network topology, the number of hops of the physical link between adjacent transmission nodes, and the connection status and switching times of the target user in the corresponding physical area network. The global network topology includes transmission nodes corresponding to multiple physical areas.
[0024] In this step, the SMS channel refers to the SMS sending path of different basic telecommunications operators accessed by the communication platform, which can be operator A's channel or operator B's channel. The global network topology refers to the overall network architecture composed of the underlying physical communication equipment and their connections across all SMS channels, and can include transmission nodes corresponding to multiple physical areas. A physical area refers to the actual network coverage area defined by geographical location, which can be location A or location B. Transmission nodes refer to core routers or regional gateways distributed across various physical areas, responsible for forwarding data packets. A branch path refers to the specific route from the SMS sending source to the gateway corresponding to a specific SMS channel in the global network topology.
[0025] A physical link refers to the underlying optical fiber cable or actual communication medium connecting two adjacent transmission nodes. Forwarding time refers to the data processing time a data packet takes from reception to transmission when it passes through a transmission node. Link hop count refers to the number of underlying relay forwarding devices traversed by the physical link between adjacent transmission nodes. Target user refers to the specific individual device receiving the short message to be sent. Connection status refers to the location attribute of the target user currently accessing the mobile network, which can include stationary and roaming status. Handover frequency refers to the frequency with which the target user performs signal handover across different communication base stations within the corresponding physical area network.
[0026] In this embodiment, the underlying network monitoring protocol is first used to periodically detect the data processing latency of each transmission node on the corresponding branch path of the global network topology for each SMS channel, extracting the forwarding time of each transmission node. Simultaneously, the topology information of the physical links between adjacent transmission nodes is analyzed to obtain the corresponding link hop count, thus representing the dynamic congestion status of the physical network infrastructure. Next, the signaling interaction interface is used to query the attribute information of the target user's current physical area network in real time to obtain the connection status, and the number of handovers is obtained by counting the target user's movement records across different communication base stations within a preset time window, thus representing the target user's micro-level roaming reception obstruction characteristics.
[0027] Specifically, for a batch of SMS messages destined for target user U, adjacent transmission nodes N and M are identified on the branch path leading to operator A's channel. The forwarding time to transmission node N is obtained as follows: And the forwarding time of transmission node M is And detect the link hop count of the physical link between transmission node N and transmission node M. Simultaneously, signaling queries revealed that the target user U's current connection status in the physical area of location C is roaming, and the number of handovers by the target user U within the network of the physical area of location C was also retrieved. Finally, the data obtained are integrated, including forwarding time, link hop count, connection status, and number of handovers.
[0028] Step 102: Based on forwarding time and link hop count, calculate the delay gradient of each physical link. Based on connection status and number of handovers, normalize the handover delay of the target user in roaming state to obtain the resistance coefficient of each transmission node.
[0029] In this step, the delay gradient refers to the rate of change of time delay during data packet transmission on the physical link. Roaming status refers to the communication attribute state of a target user when leaving their home network and accessing another regional network. Handover latency refers to the additional communication time incurred by the target user during signal handover between different communication base stations. The drag coefficient is a dimensionless value, mathematically quantified, representing the degree of difficulty for the target user to receive SMS messages.
[0030] Step 201: Calculate the time difference between forwarding times between adjacent transmission nodes, and use the ratio of the time difference to the number of hops as the delay gradient of each physical link.
[0031] In this step, the time difference refers to the absolute value of the difference between the forwarding time generated by two adjacent transmission nodes in processing data packets.
[0032] In this embodiment, the forwarding time of adjacent transmission nodes in the global network topology is first extracted. The time difference is obtained by calculating the absolute value of the difference between the forwarding time of the downstream transmission node and the forwarding time of the upstream transmission node. Next, the link hop count of the corresponding physical link is obtained. The calculated time difference is divided by the link hop count by mathematical division to eliminate the benchmark deviation caused by the different number of routing relay devices in different physical links. Finally, the calculated ratio is established as the delay gradient of each physical link, thereby accurately representing the changing trend of congestion in the underlying physical links.
[0033] Specifically, for a batch of SMS messages destined for target user U, the forwarding time of adjacent transmission node N is obtained during the underlying route probing of operator A's channel. and the forwarding time of transmission node M ,calculate and The difference between them is definitely worth calculating the time difference. Simultaneously, the link hop count of the physical link between transmission node N and transmission node M was detected. ,calculate and The ratio gives the delay gradient of the physical link. The delay gradient can be calculated using the formula: ,in, This represents the delay gradient of the physical link. This represents the time difference between adjacent transmission nodes. This indicates the number of hops in the physical link.
[0034] Step 202: If the connection status is a stationary state, then set the resistance coefficient corresponding to each transmission node to a preset threshold. The connection status includes stationary state and roaming state.
[0035] In this step, "residency status" refers to the communication connection attribute where the target user remains stably within the home physical area network without engaging in cross-domain movement. The preset threshold is a fixed value pre-set based on experience, representing a normal level of network communication resistance; it can be zero or a very small constant.
[0036] In this embodiment, the connection status of the target user is first received and parsed to determine whether the connection status is a persistent state. When the connection status is determined to be a persistent state, it means that the target user has not undergone a network location transfer across physical regions, and there is no additional communication latency penalty caused by cross-domain authentication and signaling interaction. At this time, a preset threshold is directly extracted and assigned to each transmission node in the current physical region, which is directly set as the resistance coefficient of the corresponding transmission node, thereby accurately representing the resistance level under normal communication conditions in mathematical graph theory modeling.
[0037] For example, querying the network access attributes of target user U to obtain the connection status, if the connection status is "resident," it means that target user U is always in the physical area network of its home location B. In this case, a preset threshold is directly extracted. As the resistance coefficient of all transmission nodes within the physical area of location B.
[0038] Step 203: If the connection status is roaming, calculate the switching delay of the corresponding physical area based on the number of switching, and normalize the switching delay of all physical areas to obtain the resistance coefficient corresponding to each transmission node.
[0039] like Figure 2 As shown, Figure 2 This is a flowchart illustrating the method for obtaining the resistance coefficient corresponding to each transmission node, as provided in an embodiment of this application.
[0040] Step 2031: If the target user's local state is roaming, determine the roaming state switching time according to the preset roaming table, and use the product of the switching time and the number of switching times in the corresponding physical area as the switching delay of the corresponding physical area.
[0041] In this step, local status refers to the specific location attribute identifier of the target user's current access to the underlying communication network. The preset roaming table is a pre-configured and stored set of data recording the basic latency parameters required for communication network handover between different physical areas. Handover time refers to the absolute time parameter consumed by the underlying network to complete signaling processing when the target user undergoes a single cross-base station or cross-regional communication signal handover.
[0042] In this embodiment, the local status of the target user is first determined based on the previously acquired connection status. When the target user's local status is determined to be roaming, the quantification calculation of roaming resistance is triggered. Specifically, for a batch of service SMS messages sent to target user U, it is confirmed that the target user U's current local status is roaming and is located in the physical area of location C. At this time, the roaming attributes of target user U are extracted and a preset roaming table is queried to match and determine the handover time corresponding to a single roaming handover of target user U in the physical area of location C. .
[0043] Next, retrieve the number of handovers of the target user U in the corresponding physical area, which has been collected previously. For example, retrieve the number of handovers within the physical area network of location C. Finally, the obtained handover time is multiplied by the number of handovers using mathematical multiplication, thus converting the time of a single micro-level handover into the overall macro-level penalty time for the entire region, thereby obtaining the handover latency of the corresponding physical region. Specifically, the handover time... Number of switching Multiplying them together gives the switching delay of the physical region at location C. It can be calculated using the formula: ,in, This indicates the switching latency of the corresponding physical area. This indicates the handover time determined according to the preset roaming table. This indicates the number of times the corresponding physical area has been switched.
[0044] Step 2032: Determine the maximum and minimum handover delays in all physical regions, calculate the ratio between the first difference between each handover delay and the minimum delay and the second difference between the maximum and the minimum delay, and obtain the resistance coefficient corresponding to each transmission node in each physical region.
[0045] In this step, the maximum latency refers to the latency record with the highest value in the handover latency data set of all physical areas under the global network topology. The minimum latency refers to the latency record with the lowest value in the handover latency data set of all physical areas under the global network topology. The first difference is the difference obtained by subtracting the minimum latency from the specific handover latency of a particular physical area. The second difference is the difference obtained by subtracting the minimum latency from the maximum latency, representing the overall latency range.
[0046] In this embodiment, due to the differences in infrastructure across different physical regions, the absolute value of handover latency cannot be directly used as a unified standard for graph theory topology calculations. Therefore, a normalization process using a difference ratio algorithm is required. First, handover latency data from all physical regions under the global network topology is integrated, for example, handover latency data from multiple physical regions such as C, D, and E. Then, the maximum and minimum latency are traversed and filtered out. Specifically, the maximum latency across all physical regions is determined. and minimum latency Next, for each physical region that needs to be processed, the first difference is obtained by subtracting the switching delay from the minimum delay of that physical region, and the second difference is obtained by subtracting the maximum delay from the minimum delay.
[0047] For example, calculating the handover delay of the physical region C. With minimum delay The difference yields the first difference value. And calculate the maximum delay. With minimum delay The difference yields the second difference. Finally, the ratio of each first difference to the second difference is calculated using mathematical division to eliminate the absolute dimensional differences in the delay data, transforming it into a relative penalty weight within a standard interval, ultimately obtaining the impedance coefficient corresponding to each transmission node in each physical region. Specifically, the first difference is calculated... The second difference The ratio gives the resistance coefficient of each transmission node within the physical region of location C. It can be calculated using the formula: ,in, This represents the resistance coefficient of the corresponding transmission node. Indicates the handover latency for a specific physical area. Indicates the maximum delay. This represents the minimum time delay. The numerator of the formula corresponds to the first difference calculated, and the denominator corresponds to the second difference calculated.
[0048] Step 103: Construct a weighted directed graph with transmission nodes as graph nodes, physical links as directed edges, edge weights determined by delay gradient and resistance coefficient, and the upper limit of physical bandwidth of SMS channel as capacity constraint.
[0049] In this step, a graph node refers to an abstract vertex representing a physical communication device in a mathematical topology model. A directed edge refers to an abstract connection in a mathematical topology model that has a specific data flow direction and connects two graph nodes. An edge weight refers to the total communication cost incurred by data traffic when passing through a directed edge. The physical bandwidth limit refers to the maximum data transmission volume that the underlying physical link of the SMS channel can carry per unit time. The capacity constraint refers to the numerical boundary that limits the maximum flow capacity of a directed edge when performing mathematical pathfinding calculations. A weighted directed graph is a mathematical network topology structure composed of directed edges, edges with numerical weights, and nodes.
[0050] like Figure 3 As shown, Figure 3 This is a flowchart illustrating the method for constructing a weighted directed graph provided in an embodiment of this application.
[0051] Step 301: Map the transmission nodes as graph nodes and the physical links as directed edges.
[0052] In this embodiment, the data of each transmission node obtained from the global network topology is first extracted. Then, through data structure transformation operations, each transmission node is mapped to an independent graph node within a weighted directed graph. Specifically, for a batch of service SMS messages destined for target user U, the transmission nodes N and M in the previously extracted underlying network topology of operator A's channel are abstracted and mapped to graph nodes. and graph nodes Next, the physical link data connecting adjacent transmission nodes is extracted, and the physical links are mapped to directed edges connecting the corresponding graph nodes according to the data flow direction of the SMS message.
[0053] For example, mapping the physical link from transmission node N to transmission node M to a graph node Pointing to graph nodes Directed edge This completes the basic structural transformation and construction from the underlying physical network architecture to the mathematical topology model.
[0054] Step 302: The product of the preset first weight coefficient and the resistance coefficient of each transmission node is used as the resistance component of the corresponding graph node, and the product of the preset second weight coefficient and the delay gradient of each physical link is used as the delay component of the corresponding directed edge.
[0055] In this step, the first weighting coefficient is a pre-set fixed numerical parameter used to adjust the proportion of the impact of roaming reception obstruction on the overall communication cost. The second weighting coefficient is a pre-set fixed numerical parameter used to adjust the proportion of the impact of physical link forwarding congestion on the overall communication cost. The resistance component is a numerical attribute, after weight adjustment, specifically representing the cost of difficulty in receiving SMS messages at the target graph node. The delay component is a numerical attribute, after weight adjustment, specifically representing the time cost of transmitting SMS messages via directed edges.
[0056] In this embodiment, the resistance coefficient corresponding to each transmission node calculated for the target user is first extracted, and a pre-configured first weighting coefficient is retrieved. The resistance coefficient is then multiplied by the first weighting coefficient using mathematical multiplication to calculate the resistance component of the corresponding graph node. Specifically, the pre-configured first weighting coefficient is retrieved. Extract the resistance coefficient calculated in the early stage for the target user U's roaming in the physical area of location C and assign it to the transmission node M. Through formula Calculate the drag component, where This represents the resistance component corresponding to the node in the diagram. This represents the first weighting coefficient. This represents the drag coefficient.
[0057] Simultaneously, the calculated delay gradient of each physical link is extracted, and a pre-configured second weight coefficient is retrieved. The delay gradient is then multiplied by the second weight coefficient using mathematical multiplication to calculate the delay component of the corresponding directed edge. For example, the pre-configured second weight coefficient is retrieved... Extract the delay gradient of the physical link between transmission node N and transmission node M calculated in the previous stage. It can be done through formula Calculate the delay component, where This represents the delay component corresponding to the directed edge. This represents the second weighting coefficient. This represents the delayed gradient.
[0058] Step 303: The product of the preset first weight coefficient and the resistance coefficient of each transmission node is used as the resistance component of the corresponding graph node, and the product of the preset second weight coefficient and the delay gradient of each physical link is used as the delay component of the corresponding directed edge.
[0059] In this embodiment, since SMS distribution has a clear data flow direction, it is necessary to perform targeted fusion of node weights and edge weights. First, the delay component carried by each directed edge is extracted. Simultaneously, following the data flow direction of the directed edge, the graph node it points to is located, and the resistance component attached to that graph node is extracted. Then, the delay component and the resistance component are added together using mathematical addition, and the sum is established as the edge weight of the corresponding directed edge. This can be achieved through a formula. Calculate the edge weights, where This represents the edge weight of the corresponding directed edge. This represents the delay component of a directed edge. This represents the resistance component of the graph node pointed to by the corresponding directed edge. Finally, the physical bandwidth limit value of the underlying SMS channel to which each directed edge belongs is extracted and directly set as the capacity constraint of the corresponding directed edge.
[0060] For example, extract the directed edge. The maximum physical bandwidth value of the channel belonging to Carrier A Set it directly as a directed edge The capacity constraint is then addressed. The mapping and weight fusion calculation process described above is repeated to process all nodes and connections in the global network topology. Finally, the previously constructed graph nodes and directed edge structure are merged, and the calculated edge weights and capacity constraints are combined to complete the overall construction of the weighted directed graph. This transforms the complex cross-domain physical communication network into a comprehensive graph theory model that simultaneously addresses latency costs, roaming resistance, and bandwidth limitations.
[0061] Step 104: In the weighted directed graph, with the SMS sending source as the source node and the gateway corresponding to the SMS channel as the target node, under the condition of satisfying the capacity constraint, iteratively calculate the augmenting path with the minimum cumulative sum of edge weights and allocate the corresponding traffic until the total traffic reaches the preset threshold, and construct the capacity allocation matrix based on the traffic.
[0062] In this step, the SMS sending source refers to the source server in the enterprise-level communication platform responsible for initiating SMS delivery tasks. The gateway refers to the core aggregation device in the SMS channel responsible for receiving and forwarding SMS messages to the operator's network. The target node refers to the abstract vertex in the weighted directed graph representing the data flow to its destination. The augmenting path refers to a complete connected path in the weighted directed graph from the source node to the target node that still has available capacity constraints. Traffic refers to the number of SMS messages allocated to a specific augmenting path in a single algorithm iteration. The preset threshold refers to the total number of SMS messages that need to be distributed in a single global scheduling task. The capacity allocation matrix refers to the array structure that records the channel load data finally allocated to each SMS channel after algorithmic scheduling.
[0063] Step 401: Map the SMS sending source in the global network topology to the source node in the weighted directed graph, and map the gateway corresponding to each SMS channel to the target node in the weighted directed graph.
[0064] In this step, the source node refers to the unique abstract geometric vertex in the mathematical graph theory model that represents the starting point of the data outflow.
[0065] In this embodiment, the SMS sending source responsible for initiating SMS delivery tasks in the global network topology is first extracted, and then abstracted and mapped as a unique source node within a weighted directed graph through data structure transformation. Specifically, for a batch of business SMS messages sent to target user U, the enterprise's SMS sending source device is mapped as a source node. Next, the various SMS channels extracted earlier are traversed to determine the gateway device responsible for receiving and forwarding data for each SMS channel.
[0066] For example, determine the gateway corresponding to operator A's channel and the gateway corresponding to operator B's channel. Then, based on the data flow endpoint attribute of the final SMS delivery, map each gateway to an independent target node in a weighted directed graph. Specifically, map the gateway corresponding to operator A's channel to a target node. And map the gateway corresponding to operator B's channel to the target node. This establishes a complete pathfinding start and end boundary in the weighted directed graph.
[0067] Step 402: Using the capacity constraint being greater than zero as the connectivity condition, determine multiple initial paths from the source node to each target node, calculate the sum of the weights of all edges on each initial path, and take the initial path corresponding to the minimum sum as the current augmenting path.
[0068] In this step, connectivity condition refers to the rule used in a weighted directed graph to determine whether data traffic is allowed between adjacent nodes. Initial path selection refers to all feasible connected routes from the source node to each target node, provided the connectivity condition is met. Cumulative sum refers to the total cost obtained by adding the edge weights of all directed edges along a given initial path. Current augmenting path refers to the optimal initial path selected in a single iteration of the overall planning operation, which has the lowest overall communication cost and is used for traffic allocation.
[0069] In this embodiment, network pathfinding is first explored based on a weighted directed graph. During the exploration process, the capacity constraint of each directed edge must be greater than zero as a connectivity condition, and directed edges that are already full or physically disconnected are eliminated. Under this connectivity constraint, the shortest path algorithm traverses all reachable topological trends between the source node and each target node to determine multiple initial paths. Specifically, taking the source node... Explore the path to the target node from the starting point. The trend, ensuring that the path has a directed edge, for example, a directed edge. Capacity constraints Given a value greater than zero, the initial path is determined. and the initial selection path .
[0070] Next, for each initially selected path, the edge weights of all directed edges along its path are extracted sequentially, and the cumulative sum of each initially selected path is calculated using mathematical addition. For example, extracting the initial selected path... The sum of the edge weights of all directed edges is obtained by combining the edge weights of delay cost and roaming resistance. Simultaneously extract the initially selected path The cumulative sum is obtained by summing the edge weights of all directed edges. Finally, the sums of all initially selected paths are compared numerically, and the path with the smallest sum is selected and established as the current augmenting path. For example, the comparison reveals the sum... Less than the sum of all units The initial path will be selected. It is directly established as the current augmentation path.
[0071] Step 403: Iteratively allocate traffic and update capacity constraints based on the capacity constraints of the current augmenting path until the total allocated traffic reaches a preset threshold. Accumulate the traffic to each target node to construct a capacity allocation matrix.
[0072] In this step, total traffic refers to the total number of short messages that have been allocated in each iteration of the allocation operation.
[0073] Step 4031: Traverse the capacity constraints of each directed edge on the current augmenting path, take the minimum capacity constraint as the remaining capacity on the current augmenting path, take the remaining capacity as the single allocation flow, and take the difference between the capacity constraints of each directed edge on the current augmenting path and the single allocation flow as the updated capacity constraint.
[0074] In this step, remaining capacity refers to the bottleneck limit value of the maximum amount of SMS data allowed to pass through the current augmentation path. Single allocation traffic refers to the number of SMS transmissions actually allocated to the current augmentation path in a single routing loop.
[0075] In this embodiment, the process first traverses all directed edges along the established current augmenting path, extracting the current capacity constraints of each edge. Specifically, for a batch of SMS messages destined for user U, the process proceeds along the established current augmenting path. Traverse and extract the directed edges of its path. Capacity constraints and directed edges Capacity constraints Next, all extracted capacity constraint values are compared, and the smallest capacity constraint is selected and established as the remaining capacity on the current augmenting path. For example, if a capacity constraint is found during the comparison... Less than capacity constraint Then the capacity constraint will be applied. Established as the current augmentation path The remaining capacity is then used as the single-time allocation traffic for this loop.
[0076] Specifically, the remaining capacity is directly set as the single-time allocation flow. Finally, a deduction operation is performed, subtracting the single-distribution flow from the original capacity constraint of each directed edge on the current augmenting path. The difference is used as the updated capacity constraint for the corresponding directed edge. For example, the directed edge... Capacity constraints Subtract single allocation flow We obtain the updated capacity constraints, and now the directed edges... The capacity constraint becomes zero, and the directed edge... The capacity constraint is updated to minus The difference can be expressed by the formula Calculation, where This represents the updated capacity constraint. This represents the original capacity constraint of the directed edge. This indicates a single allocation of traffic.
[0077] Step 4032: Using the updated capacity constraints, redetermine multiple initial paths between the source node and each target node until the total traffic obtained by accumulating the traffic from multiple single allocations reaches the preset threshold.
[0078] In this embodiment, the next round of pathfinding calculation is initiated based on the network topology state obtained after deducting the difference. First, using the updated capacity constraints of all directed edges, with a capacity constraint greater than zero as a connectivity condition, the connectivity trends from the source node to each target node are explored again, thereby re-determining multiple initially selected paths. Specifically, in the directed edges... After the capacity constraint is updated to zero, the physical link is considered disconnected and reconnected via the source node. Explore the path to the target node from the starting point. Other trends reveal new initial selection paths Next, the process of extracting the minimum capacity constraint and allocating single-distribution traffic is repeated, and the single-distribution traffic generated each time is summed to obtain the total traffic. Finally, it is determined in real time whether the total traffic obtained by the summation reaches the preset threshold for the business to issue tasks. If it does not reach the threshold, the updated capacity constraint is used to redetermine the initial path until the total traffic obtained by the summation of the single-distribution traffic from multiple allocations reaches the preset threshold, at which point the loop stops.
[0079] For example, the single-time allocation traffic from the previous round Compared with the single allocation of traffic in this round The total traffic is accumulated; if the accumulated total traffic does not reach the preset threshold for the total number of SMS messages to be sent, the data will be accumulated. If feasible paths still exist in the network, the iteration continues until the total traffic equals the preset threshold. At this point, the path exploration and traffic allocation operations will end.
[0080] Step 4033: Accumulate the traffic of multiple augmentation paths leading to the same target node to obtain the channel load of each target node. Arrange all channel loads according to the system identifier order of the SMS channel to construct a capacity allocation matrix.
[0081] In this step, channel load refers to the sum of traffic allocated on all augmented paths leading to a specific target node. System identification sequence refers to a fixed coding sequence pre-assigned within the enterprise communication platform to distinguish different carrier channels.
[0082] In this embodiment, after the total traffic reaches a preset threshold and allocation stops, the discrete traffic data needs to be integrated by channel. First, the traffic is categorized according to the target nodes in the weighted directed graph. Then, the single-distribution traffic on all augmenting paths leading to the same target node is mathematically added together to calculate the final channel load acquired by each target node. Specifically, the traffic leading to the target node... Current augmentation path Single-distribution traffic With the newly established augmentation path Single-distribution traffic Accumulate the results to obtain the target node. Corresponding channel load At the same time, it integrates the information to obtain the path to the target node. Corresponding channel load Next, the system identifier order of each SMS channel is retrieved, and the calculated channel loads are normalized and arranged according to this order to finally construct a capacity allocation matrix.
[0083] For example, retrieve the system identifier sequence of operator A's channel and operator B's channel, and then load the channel... With channel load By combining them in this order into a one-dimensional array, the final capacity allocation matrix is constructed. This transforms the topology allocation results output by the graph theory algorithm into an allocation parameter matrix that can be directly read and executed by the underlying rate limiting mechanism.
[0084] Step 105: Set up a token bucket for each SMS channel, adjust the generation rate of the token bucket based on the capacity allocation matrix to determine the available capacity, and dynamically verify and distribute concurrent SMS sending requests according to the available capacity.
[0085] In this step, the token bucket refers to an algorithmic mechanism used to control the data transmission rate and handle sudden surges in data. The generation rate refers to the speed at which communication tokens are added to the token bucket per unit of time. The available capacity refers to the total number of communication tokens accumulated in the token bucket at the current moment. Concurrent SMS sending requests refer to the instructions to send a massive influx of SMS messages to the communication platform simultaneously.
[0086] Step 501: Determine the channel load corresponding to each SMS channel from the capacity allocation matrix, and convert the channel load into the generation rate of the token bucket corresponding to each SMS channel using a preset conversion ratio.
[0087] In this step, the preset conversion ratio refers to the rate parameter that is pre-set to map the macroscopic allocation traffic data output by the graph theory algorithm to the specific time dimension in the underlying rate limiting execution mechanism.
[0088] In this embodiment, the previously constructed capacity allocation matrix is first extracted, and the channel load corresponding to each SMS channel is parsed and determined. Specifically, for the global scheduling task containing a batch of service SMS messages destined for target user U, the capacity allocation matrix is used to determine the channel load. Extract the channel load corresponding to operator A's channel and the channel load corresponding to operator B's channel. Next, the pre-configured conversion ratio is retrieved, and the extracted channel load is multiplied by the pre-configured conversion ratio through mathematical multiplication. This completes the smooth transition from static allocation results to dynamic rate limiting, thereby calculating the token bucket generation rate for each SMS channel.
[0089] For example, extract the preset conversion ratio. , channel load Conversion ratio with preset Multiplying them together gives the token bucket generation rate for operator A's channel. At the same time, the channel load Conversion ratio with preset The generation rate corresponding to operator B's channel is obtained by multiplication. It can be done through formula Calculation, where This indicates the token bucket generation rate. Indicates channel load. This indicates the preset conversion ratio.
[0090] Step 502: Generate communication tokens in each token bucket according to the generation rate, and determine the cumulative number of communication tokens as the available capacity of each SMS channel.
[0091] In this step, the communication token refers to the virtual data credential in the token bucket algorithm that represents the permission to send one or more short messages through the underlying physical interface.
[0092] In this embodiment, the underlying rate limiting mechanism operates based on calculated rate parameters. First, it controls the token buckets corresponding to each SMS channel to continuously add communication tokens to the buckets at fixed time intervals, strictly adhering to a specific generation rate. Specifically, it controls the token bucket of operator A's channel to continuously add communication tokens to the buckets at a fixed generation rate. Communication tokens are generated at a constant and continuous rate, while the token bucket of operator B's channel is controlled to maintain the generation rate. Generate communication tokens. Then, count and monitor the total number of communication tokens currently stored in each token bucket in real time, and directly establish this total as the available capacity of the corresponding SMS channel at the current moment.
[0093] For example, the cumulative number of communication tokens generated in the token bucket of operator A's channel is obtained by counting the number of tokens generated in real time. and the cumulative quantity Establish the current available capacity of Operator A's channel. This concretizes the abstract generation rate into a capacity value that can be directly used to verify concurrent requests.
[0094] Step 503: When the cumulative number of available capacity is greater than or equal to the capacity required for concurrent SMS sending requests, subtract the communication token corresponding to the required capacity from the available capacity, and allow the concurrent SMS sending requests to the corresponding SMS channel.
[0095] In this step, the required capacity refers to the number of communication tokens that must be consumed for the current influx of concurrent SMS sending requests to complete transmission in the underlying physical link.
[0096] In this embodiment, the available capacity is used to dynamically limit and distribute actual services. First, the incoming concurrent SMS sending requests are received and parsed in real time, the scale of the SMS messages corresponding to these requests is assessed, and the required capacity is calculated. Specifically, when a massive influx of service requests occurs, the required capacity for a batch of concurrent SMS sending requests about to be sent to Operator A's channel is determined. Next, the available capacity of the corresponding SMS channel is compared with the required capacity. If the available capacity is greater than or equal to the required capacity, it means that the health and bandwidth of the underlying channel are sufficient to handle this sending task. Then, communication tokens equal to the required capacity are directly deducted from the available capacity of the token bucket. Finally, after the deduction operation is completed, the batch of concurrent SMS sending requests are accurately allowed to be sent to the corresponding SMS channel for final delivery.
[0097] For example, the comparison reveals the current available capacity of operator A's channel. Greater than or equal to the required capacity Then from the available capacity The value to be subtracted from the middle is The communication token is used to send the batch of concurrent SMS messages to the A operator's channel, thereby fundamentally avoiding the problems of hidden congestion in the underlying link and severe overload of some channels, and ensuring the rapid and stable delivery of massive amounts of SMS messages.
[0098] This application's embodiments, by collecting the forwarding time of transmission nodes in the corresponding branch path of each SMS channel in the global network topology, the link hop count of physical links between adjacent transmission nodes, and the connection status and switching frequency of the target user in the corresponding physical area network, break through the limitation of existing technologies that only focus on the gateway interface response speed at the application layer. It quantifies the deep forwarding congestion trend of the underlying links; by deriving the resistance coefficient through normalization, it successfully transforms complex cross-regional frequent switching behavior into node resistance that can be identified by graph theory algorithms, solving the problem of existing coarse scheduling being detached from the dynamic characteristics of the physical network. It overcomes the mechanical traffic scheduling defects caused by polling mechanisms or static weight allocation in existing technologies. It achieves dynamic intelligent routing from a global perspective. It avoids traffic allocation mismatch and severe overload of some channels caused by sudden large traffic surges. It achieves a smooth implementation of complex scheduling algorithms into physical rate limiting. It alleviates sudden congestion and significantly reduces SMS delivery delays.
[0099] Figure 4 This is a schematic diagram of a specific implementation of the multi-carrier SMS channel dynamic selection and load balancing system provided in this application embodiment, with reference to... Figure 4 The system may include: The acquisition module 21 is used to acquire the forwarding time of each SMS channel in the corresponding branch path of the global network topology, the link hops of the physical link between adjacent transmission nodes, and the connection status and switching times of the target user in the corresponding physical area network. The global network topology includes transmission nodes corresponding to multiple physical areas. The calculation module 22 is used to calculate the delay gradient of each physical link based on forwarding time and link hop count, and to normalize the handover delay of the target user in roaming state based on connection status and handover count to obtain the resistance coefficient of each transmission node. Module 23 is used to construct a weighted directed graph with transmission nodes as graph nodes, physical links as directed edges, delay gradients and resistance coefficients to determine edge weights, and the physical bandwidth limit of the SMS channel as a capacity constraint. Module 23 is also used in a weighted directed graph to iteratively calculate the augmenting path with the minimum sum of edge weights and allocate the corresponding traffic, with the SMS sending source as the source node and the gateway corresponding to the SMS channel as the target node, under the condition of satisfying capacity constraints, until the total traffic reaches a preset threshold, and to construct a capacity allocation matrix based on the traffic. The determination module 24 is used to set up a token bucket for each SMS channel, adjust the generation rate of the token bucket based on the capacity allocation matrix to determine the available capacity, and dynamically verify and distribute concurrent SMS sending requests according to the available capacity.
[0100] The multi-carrier SMS channel dynamic selection and load balancing system of this application embodiment is used to implement the aforementioned multi-carrier SMS channel dynamic selection and load balancing method. Therefore, the specific implementation of the multi-carrier SMS channel dynamic selection and load balancing system can be found in the embodiment section of the multi-carrier SMS channel dynamic selection and load balancing method above. The specific implementation can be referred to the description of the corresponding embodiment, and will not be repeated here.
[0101] Figure 5 A schematic diagram of the hardware structure of the electronic device provided in an embodiment of this application is shown.
[0102] This application also provides an electronic device, including: a memory for storing a computer program; and a processor for executing the computer program to implement the steps of the multi-carrier SMS channel dynamic selection and load balancing method described above.
[0103] The electronic device may include a processor 510 and a memory 520 storing computer program instructions.
[0104] Specifically, the processor 510 may include a central processing unit (CPU), an application-specific integrated circuit (ASIC), or one or more integrated circuits that can be configured to implement the embodiments of this application.
[0105] Memory 520 may include mass storage for data or instructions. For example, and not limitingly, memory 520 may include a hard disk drive (HDD), floppy disk drive, flash memory, optical disk, magneto-optical disk, magnetic tape, or Universal Serial Bus (USB) drive, or a combination of two or more of these. Where appropriate, memory 520 may include removable or non-removable (or fixed) media. Where appropriate, memory 520 may be internal or external to the integrated gateway disaster recovery device. In a particular embodiment, memory 520 is non-volatile solid-state memory.
[0106] Memory may include read-only memory (ROM), random access memory (RAM), disk storage media devices, optical storage media devices, flash memory devices, and electrical, optical, or other physical / tangible memory storage devices. Therefore, typically, memory includes one or more tangible (non-transitory) computer-readable storage media (e.g., memory devices) encoded with software including computer-executable instructions, and when the software is executed (e.g., by one or more processors), it is operable to perform the operations described with reference to the method according to the first aspect of this disclosure.
[0107] The processor 510 reads and executes computer program instructions stored in the memory 520 to implement the dynamic selection and load balancing method for multiple operator SMS channels in the above embodiments.
[0108] In one example, the electronic device may also include a communication interface 530 and a bus 540. Wherein, such as Figure 5 As shown, the processor 510, memory 520, and communication interface 530 are connected through bus 540 and complete communication with each other.
[0109] The communication interface 530 is mainly used to realize communication between various modules, devices, units and / or equipment in the embodiments of this application.
[0110] Bus 540 includes hardware, software, or both, that couples components of an online data traffic metering device together. For example, and not limitingly, the bus may include an Accelerated Graphics Port (AGP) or other graphics bus, an Enhanced Industry Standard Architecture (EISA) bus, a Front Side Bus (FSB), HyperTransport (HT) interconnect, an Industry Standard Architecture (ISA) bus, an Infinite Bandwidth Interconnect, a Low Pin Count (LPC) bus, a memory bus, a Microchannel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCI-X) bus, a Serial Advanced Technology Attachment (SATA) bus, a Video Electronics Standards Association Local (VLB) bus, or other suitable buses, or combinations of two or more of these. Where appropriate, bus 540 may include one or more buses. Although specific buses are described and illustrated in embodiments of this application, any suitable bus or interconnect is contemplated herein.
[0111] This application also provides a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps of any of the above-described methods for dynamic selection and load balancing of multi-carrier SMS channels.
[0112] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as USB flash drives, read-only memory, random access memory, portable hard drives, magnetic disks, or optical disks.
[0113] Embodiments of the present invention also provide a computer program product, which includes a computer program that, when executed by a processor, implements the steps in the embodiments of the above-described method for dynamic selection and load balancing of SMS channels from multiple operators.
[0114] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementations should not be considered beyond the scope of this invention.
[0115] The multi-carrier SMS channel dynamic selection and load balancing method and system provided in this application have been described in detail above. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the embodiments above are only for the purpose of helping to understand the method and its core ideas. It should be noted that those skilled in the art can make several improvements and modifications to this application without departing from the principles of this application, and these improvements and modifications also fall within the protection scope of this application.
Claims
1. A method for dynamic selection and load balancing of SMS channels across multiple operators, characterized in that, include: The forwarding time of each SMS channel in the corresponding branch path of the global network topology, the number of link hops of the physical link between adjacent transmission nodes, and the connection status and switching times of the target user in the corresponding physical area network are collected. The global network topology includes transmission nodes corresponding to multiple physical areas. Based on the forwarding time and the number of link hops, the delay gradient of each physical link is calculated. Based on the connection status and the number of handovers, the handover delay of the target user in roaming status is normalized to obtain the resistance coefficient of each transmission node. Using the transmission node as the graph node, the physical link as the directed edge, the delay gradient and the resistance coefficient to determine the edge weight, and the upper limit of the physical bandwidth of the SMS channel as the capacity constraint, a weighted directed graph is constructed. In the weighted directed graph, with the SMS sending source as the source node and the gateway corresponding to the SMS channel as the target node, under the capacity constraint, the augmenting path with the minimum cumulative edge weight is iteratively calculated and the corresponding traffic is allocated until the total traffic reaches a preset threshold, and a capacity allocation matrix is constructed based on the traffic. A token bucket is set for each SMS channel. The generation rate of the token bucket is adjusted based on the capacity allocation matrix to determine the available capacity. Concurrent SMS sending requests are dynamically verified and distributed according to the available capacity.
2. The method according to claim 1, characterized in that, Based on the forwarding time and the link hop count, the delay gradient of each physical link is calculated. Based on the connection state and the number of handovers, the handover delay of the target user in roaming state is normalized to obtain the resistance coefficient of each transmission node, including: Calculate the time difference between the forwarding time of adjacent transmission nodes, and use the ratio of the time difference to the number of hops in the link as the delay gradient of each physical link; If the connection state is a stationary state, then the resistance coefficient corresponding to each transmission node is set to a preset threshold. The connection state includes stationary state and roaming state. If the connection state is roaming, the switching delay of the corresponding physical area is calculated based on the number of switching times, and the switching delay of all physical areas is normalized to obtain the resistance coefficient corresponding to each transmission node.
3. The method according to claim 2, characterized in that, If the connection state is roaming, the handover delay of the corresponding physical area is calculated based on the number of handovers, and the handover delay of all physical areas is normalized to obtain the resistance coefficient corresponding to each transmission node, including: If the target user's local state is roaming, the switching time of the roaming state is determined according to the preset roaming table, and the product of the switching time and the number of switching in the corresponding physical area is used as the switching delay of the corresponding physical area. Determine the maximum and minimum handover delays in all physical regions, calculate the ratio between the first difference between each handover delay and the minimum delay and the second difference between the maximum and the minimum delay, and obtain the resistance coefficient corresponding to each transmission node in each physical region.
4. The method according to claim 1, characterized in that, Using the transmission node as the graph node, the physical link as the directed edge, the delay gradient and the resistance coefficient to determine the edge weight, and the upper limit of the physical bandwidth of the SMS channel as the capacity constraint, a weighted directed graph is constructed, including: The transmission nodes are mapped as graph nodes, and the physical links are mapped as directed edges; The product of the preset first weight coefficient and the resistance coefficient of each transmission node is used as the resistance component of the corresponding graph node, and the product of the preset second weight coefficient and the delay gradient of each physical link is used as the delay component of the corresponding directed edge.
5. The method according to claim 1, characterized in that, In the weighted directed graph, with the SMS sending source as the source node and the gateway corresponding to the SMS channel as the target node, under the capacity constraint, the augmenting path with the minimum cumulative edge weight is iteratively calculated and the corresponding traffic is allocated until the total traffic reaches a preset threshold. A capacity allocation matrix is then constructed based on the traffic, including: The SMS sending sources in the global network topology are mapped to source nodes in the weighted directed graph, and the gateways corresponding to each SMS channel are mapped to target nodes in the weighted directed graph. Using the capacity constraint being greater than zero as a connectivity condition, multiple initial paths are determined between the source node and each target node. The cumulative sum of the edge weights on each initial path is calculated, and the initial path corresponding to the minimum cumulative sum is taken as the current augmenting path. Iteratively allocate traffic based on the capacity constraints of the current augmenting path and update the capacity constraints until the total allocated traffic reaches a preset threshold. Then, accumulate the traffic to each target node to construct a capacity allocation matrix.
6. The method according to claim 5, characterized in that, Iteratively allocate traffic based on the capacity constraints of the current augmenting path and update the capacity constraints until the total allocated traffic reaches a preset threshold. Then, accumulate the traffic to each target node to construct a capacity allocation matrix, including: Traverse the capacity constraints of each directed edge on the current augmenting path, take the minimum capacity constraint as the remaining capacity on the current augmenting path, take the remaining capacity as the single allocation flow, and take the difference between the capacity constraints of each directed edge on the current augmenting path and the single allocation flow as the updated capacity constraint. Using the updated capacity constraints, multiple initial paths between the source node and each target node are re-determined until the total traffic obtained by accumulating the traffic from each single allocation reaches a preset threshold. The traffic from multiple augmentation paths leading to the same target node is accumulated to obtain the channel load of each target node. All channel loads are then arranged according to the system identifier order of the SMS channels to construct a capacity allocation matrix.
7. The method according to claim 1, characterized in that, A token bucket is set up for each SMS channel. The generation rate of the token bucket is adjusted based on the capacity allocation matrix to determine the available capacity. Concurrent SMS sending requests are dynamically verified and distributed according to the available capacity, including: The channel load corresponding to each SMS channel is determined from the capacity allocation matrix, and the channel load is converted into the token bucket generation rate corresponding to each SMS channel using a preset conversion ratio; A communication token is generated in each of the token buckets according to the generation rate, and the cumulative number of the communication tokens is determined as the available capacity of each SMS channel; When the cumulative amount of available capacity is greater than or equal to the capacity required for concurrent SMS sending requests, the communication token corresponding to the required capacity is subtracted from the available capacity, and the concurrent SMS sending requests are allowed to the corresponding SMS channel.
8. A multi-carrier SMS channel dynamic selection and load balancing system, characterized in that, include: The data acquisition module is used to collect the forwarding time of each SMS channel in the corresponding branch path of the global network topology, the link hops of the physical link between adjacent transmission nodes, and the connection status and switching times of the target user in the corresponding physical area network. The global network topology includes transmission nodes corresponding to multiple physical areas. The calculation module is used to calculate the delay gradient of each physical link based on the forwarding time and the link hop count, and to normalize the handover delay of the target user in roaming state based on the connection state and the number of handovers, so as to obtain the resistance coefficient of each transmission node. The construction module is used to construct a weighted directed graph with the transmission node as the graph node, the physical link as the directed edge, the delay gradient and the resistance coefficient as the edge weight, and the physical bandwidth limit of the SMS channel as the capacity constraint. The construction module is also used in the weighted directed graph to iteratively calculate the augmenting path with the minimum cumulative sum of edge weights and allocate the corresponding traffic, with the SMS sending source as the source node and the gateway corresponding to the SMS channel as the target node, under the capacity constraint, until the total traffic reaches a preset threshold, and to construct a capacity allocation matrix based on the traffic. The determination module is used to set a token bucket for each SMS channel, adjust the generation rate of the token bucket based on the capacity allocation matrix to determine the available capacity, and dynamically verify and distribute concurrent SMS sending requests according to the available capacity.
9. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor, configured to execute the computer program to implement the steps of the multi-carrier SMS channel dynamic selection and load balancing method as described in any one of claims 1 to 7.
10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, enables the implementation of the multi-carrier SMS channel dynamic selection and load balancing method as described in any one of claims 1 to 7.