SMS sending Load Balancing
This page explains how to set up outbound routing with the Ozeki NG - SMS Gateway software to allow load balancing for the purpose of efficient use of small capacity connections with SMS Centers. You can read about the motivation, the resultant task for the program, the solution, and a practical example illustrating the convenience of load balancing.
Load balancing allows an increase in the throughput of SMS messages. You may need to make use of it if you wish to send out a large number of SMS messages with small capacity connections to GSM service providers.
If you have several small capacity connections to GSM service providers, you can achieve the largest possible throughput by balancing their loads. Load balancing means equally involving different connections in the job of sending out SMS messages.
Ozeki NG - SMS Gateway allows you to define for the program which service provider connection to use to send out an SMS message. For this, you need to set outbound routing rules. By appropriately editing these rules, you can achieve a setup which ensures that the loads of different connections will be balanced. This will avoid a situation in which one of the connections is (too) "busy" sending out messages, while another connection is (much) less busy or idle, because it has fewer or no messages to send out.
Consider the following situation, in which the loads are not balanced:
If you have two connections to Vodafone (Vodafone1 and Vodafone2), it may occur that one of them becomes more loaded than the other. This may happen if there comes a time in SMS messaging when one of them is used to send out a considerably larger number of messages than the other. Which GSM service provider connection is used to send out a message depends on outbound routing rules. Based on the outbound routing rules, the program decides automatically which service provider connection to use to send out a message. (For more information, check out the Outbound Routing page.) There may be a situation in which Vodafone1 is more needed - and therefore more loaded - than Vodafone2. Vodafone1 may be sending out 50 SMS messages per second at a given time, while Vodafone2 may only be sending out 30. Whereas if Vodafone2 could take over some of the job of sending out messages, their loads would become (more) balanced, and the messages could be sent out at a greater speed. If there are two different outbound routing rules, specifying Vodafone1 and Vodafone2 respectively, the messages that are bound to be sent out using Vodafone 1 may considerably outnumber those sent out using Vodafone 2.
The situation in which one connection is more loaded than the other is depicted in Figure 1 below:
Task for the program
This situation described and depicted above leads to inefficiency in sending out messages, as Vodafone2 is only sending out 30 SMS messages per second, whereas it could send more by taking some of the load off Vodafone1.
To solve this problem of inequality and inefficiency, and to increase the throughput of messages, you can join the two Vodafone connections. Then their loads will become balanced. This ensures that Vodafone2 (or Vodafone1, depending on the messages) is not (much) less busy or idle while it could take part in sending out messages (to the same extent as the other connection). The "joint forces" of the connections also ensure that the job of sending out messages is finished more quickly.
This setup is depicted in Figure 2 below:
Ozeki NG - SMS Gateway allows you to configure the outbound routing in a way that results in the load balancing described and depicted above. The section below will explain how to do it.
What you need to do to "join forces" is unite the connections under the same name. That is, give each of the two service provider connections the same name in the configuration, and specify this name when editing the outbound routing table of Ozeki NG - SMS Gateway. Accordingly, you have to refer to the two connections in the outbound routing setup as if they were one and the same.
To find out how to configure service provider connections, visit the Service Provider Connectivity page.
To find out how outbound routing works with Ozeki NG - SMS Gateway, and how to edit the outbound routing table, check out the Outbound Routing page.
A practical example
To understand the convenience of load balancing, consider the following example:
There is a talent search show on TV. Viewers can vote for one of two candidates by sending their favorite's name by SMS. The TV channel maintains two Vodafone connections for receiving (non-premium rate) messages and sending automatic replies. The two candidates are Kate and Liz.
The automatic reply to votes for Kate reads: "Thank you for your vote for Kate. Keep watching the show."
The automatic reply to votes for Liz reads: "Thanks for your vote for Liz. Keep watching the show."
The keyword (first word) of one of the messages is "Thank", while the keyword of the other one is "Thanks". This helps to distinguish the reply messages in the configuration of the outbound routing.
As mentioned before, there are two Vodafone (Vodafone1 and Vodafone2) connections for sending out the reply messages. At first, it might seem obvious how outgoing reply messages should be routed:
There should be one rule specifying "Thank" as the keyword, and Vodafone1 as the service provider connection to use to send out a message thanking for a vote for Kate.
Also, there should be another rule specifying "Thanks" as the keyword, and Vodafone2 as the service provider connection to use to send out a message thanking for a vote for Liz.
In addition, there may be a third rule specifying a different service provider connection for sending out messages not related to the TV show.
Then, the outbound routing table should look like the one in Figure 3 below:
However, it is unpredictable how many votes either of the candidates will receive. Therefore, it is unpredictable how many messages starting with "Thank" and how many starting with "Thanks" will need to be sent out. It may easily occur that viewers' votes for Kate considerably outnumber votes for Liz. In that case, a far larger number of reply messages starting with "Thank" will need to be sent. This means that Vodafone1, which is responsible for sending out these messages, will be much more loaded than the other connection (Vodafone2).
If these are small capacity connections, this setup will result in a large number of messages "having to wait" to be sent out. Therefore, outgoing messages will be delayed (possibly to a large extent). This is highly probable if a large number of viewers have voted, and the number of votes for either candidate is much larger than the number of votes for the other candidate. The setup in Figure 3 is likely to lead to the situation depicted in Figure 1. The user called "John" in Figure 1 corresponds to an application in this practical example: an autoreply user, which makes it possible to reply to incoming messages and to forward these messages to various phone numbers based on the sender address and the message content.
You need a different setup to make the most efficient use of your small capacity Vodafone connections by balancing their loads. This will ensure that both connections will be equally "busy" when sending out reply messages. As a result, John's messages will not be sent out with the same degree of delay as with the setup above.
For the more efficient setup, you need to (re)name both the Vodafone1 and the Vodafone2 connection as Vodafone, as if they were one and the same. When (re)editing your outbound routing table on the user interface of Ozeki NG - SMS Gateway, use this name when specifying the routing rules for both messages.
Your outbound routing table should look like the one in Figure 4 below:
The identical name will cause both connections to be equally involved in the job. Accordingly, the engine of the program will not allow a situation in which one connection is (too) busy, while the other is (much) less busy or remains idle.
To read about how the load balancing feature of the software allows you to join a transmitter and a receiver connection from the same GSM service provider, check out the Load Balancing for SMPP v3.3 page.