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
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
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:
Figure 1 - Load differences between connections
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:
Figure 2 - Loads balanced between connections
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:
Figure 3 - Outbound routing not serving load balancing
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
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:
Figure 4 - Outbound routing serving load balancing
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.
People who read this also read...
Asterisk PBX SMS