Testing a high-performance SQL to SMS configuration on your LAN
This guide gives you information on how you can setup a test environment to evaluate the performance of Ozeki NG SMS Gateway. This environment is useful to test the configuration explained in the "High performance SQL to SMS gateway configuration (500 MPS+)" guide.
Introduction
The configuration presented here demonstrates how you can transfer SMS messages from a database server to a Short Messages Service Centre (SMSC) at a rate of 500 messages per second or more. The configuration is made up of two systems: Computer "A" and Computer "B" (Figure 1).
Computer "A" represents the short messages service centre (SMSC). The role of this computer is to accept SMPP client connections and to simulate SMSC functionality. In our test environment the SMSC functionality will be simulated with the built in SMPP server of Ozeki NG SMS Gateway. (In a real life system, you will not install computer "A". It will be operated by an SMS service provider, and you will connect to it through the Internet.)
Computer "B" represents a high-performance SQL to SMS Gateway computer. This computer reads SMS messages from an MS SQL database server and send these messages through an SMPP link to the SMSC. This functionality is established with Ozeki NG SMS Gateway. (This is the system you purchase from Ozeki.)
The hardware configuration of both computer "A" and computer "B" should be: Intel Core 2 Quad Q9550 2.83 GHZ CPU, Samsung 160Gb 7200 RPM SATA2 HDD, 4 GB RAM, Windows XP OS. Of course you can use other hardware configuration. If you have a more powerful hardware, you will achieve greater performance.
The network connection between computer "A" and computer "B" should be a 100 Mbps ethernet LAN.
Setting up "Computer A"
To setup "Computer A" as an SMSC you need to perform the following steps:
- Download Ozeki NG SMS Gateway
- Install Ozeki NG SMS Gateway with the default settings
- Install a HTTP Server service provider connection
- Install an SMPP user
- Optimize Ozeki NG SMS Gateway for high performance
Setting up "Computer B"
To setup "Computer B" as an SQL to SMS gateway you need to perform the following steps:
- Download Ozeki NG SMS Gateway
- Install Ozeki NG SMS Gateway with the default settings
- Install an "SMPP service provider connection" to connect the system to Computer "A"
- Install a "Database user with batch processing"
- Optimize Ozeki NG SMS Gateway for high performance
Settings for the SMPP link
When you setup the SMPP connection, you should follow these guidelines:
On computer "A", when you create the SMPP user, please provide the following information:
- username: "smp1"
- password: "qwe123"
On computer "B", when you configure the SMPP service provider connection, please configure the following information:
- host: The IP address of computer "A"
- port: 9500
- username: smp1
- password: qwe123
How will the system work?
The system will work in a transparent way, that allows you to track every step from message reading from the database to SMPP forwarding. To track the events all you have to do is to examine the logs the software generates. A separate log file is written for each component.
To start the testing procedure of your system, you will insert messages into the ozekimessageout database table. For example, you can insert 20 000 messages at your first test. After you have inserted the messages, you don't have to do anything else. The process from this point is fully automatic.
The first step of the process is executed by the "Database user". The "Database user" checks periodically the ozekimessageout table. It will find your messages and will read 5000 messages in the first batch and will queue these messages for delivery in the "Ozeki NG SMS Gateway engine". (After all your messages are delivered, it will read the next 5000 messages. If you have less the 5000 initially, it will work with less.)
After the "Database user" has read the messages from the database and have queued them for delivery, the "Ozeki NG SMS Gateway engine" will pass these messages to the "SMPP service provider connection" for delivery. The "SMPP service provider" connection is the SMPP client module of the Ozeki NG SMS Gateway software. It runs on computer "A" and it connects to the built in SMPP server of computer "B" through the LAN. The connection is a TCP/IP based network link. The actual message delivery speed on this link is determined by two factors: the network bandwidth and the speed the SMSC is able to accept messages. Since currently the SMSC is also an Ozeki NG SMS Gateway software, and you connect your systems through an Ethernet LAN, you don't have to worry about network and SMSC performance.
The next step in the process takes place on computer "B". On computer "B" the built-in SMPP server of Ozeki NG SMS Gateway accepts the messages and adds them to the delivery queue of an SMPP user. (Remember that you had to setup an SMPP user account on computer "B", and you had to configure the username and password of this SMPP user account on computer "A" to establish the link.)
Finally on computer "B", Ozeki NG SMS Gateway forwards the messages to the "HTTP Server" service provider connection. The HTTP server service provider connection in this case acts as a "dummy link" to the mobile network. Instead of sending the messages to mobile phones it saves them to a text file. The path of the text file is "C:\Program Files\Ozeki\OzekiNG - SMS Gateway\Drivers\HTTPServer0\outbox.txt". This is OK for testing, since during performance tests we don't want to reach actual mobile phones. When you setup your system with a real SMSC, your messages will be forwarded to the mobile network.
How to insert a large number of test messages?
To insert a large number of test messages to your MS SQL server, you need to use an SQL console. For example, Microsoft SQL Server Management Studio allows you to enter SQL commands on your database server. The following SQL script can be used to generate 20000 test messages.
Begin transaction DECLARE @recno int; SET @recno=20000 While @recno>0 Begin SET @recno=@recno-1 INSERT INTO ozekimessageout (receiver,msg,stat) VALUES ('+2222222',CAST(@recno AS varchar)+' sms message text',1); End; Commit
How to find out what the actual transfer speed was?
To find the transfer speed, all you have to do is to open the event log of the "Database user with batch processing" module. You can do this by clicking on the "Users and applications" menu item, then selecting the user, then clicking on "events" (Figure 2). In the event view you will have a row showing the throughput.
More information