SMS Marketing Solution

Project was done for a private company developing self-service text message marketing solutions that enable businesses of all sizes to enhance their marketing and business objectives. The solution is formed as an entertaining and advertizing WEB portal allowing users subscribe to news in specific categories and advertizing companies deliver localized mobile content to people via SMS text messages.

The solution had strict performance and robustness requirements, since SMS advertisement is a paid service for advertizing companies and thus needs to provide guaranteed delivery, while the number of SMS consumers for a one-day SMS campaign could reach more than hundred thousand.

The new solution replaced customer’s previously existing implementation which became inacceptable performance-wise and reliability-wise with growth of customer’s client base.


The proposed solution consists of several separate WEB applications integrated with each other via REST services and RMI, using the same database and utilizing common framework “core” components. The primary goal for separating the entire solution into several independent modules is the ability to host them on separate hardware, which as result provides highly scalable solution and guarantees that heavy load on certain application subsystem (like running massive SMS campaigns with over hundred thousand recipients) does not affect performance of other application subsystems and user experience.

  • OptIt core is a set of common components used by all WEB applications, including user authentication, common business logic, servlets, error handling, SMS delivery functions, inbound message processing functionality, message queues, etc.
  • Imaging is a non-visual application primarily used by other OptIt modules to store images and provide high-speed and efficient access to them.
  • Provider is a WEB application with user interface allowing advertizing companies and their employees register to OptIt, manage advertizing SMS campaigns, create interests and keywords, which end users can subscribe to in order to receive news related to their interests.
  • Communities is a WEB application with rich user interface for end users where people can register, personalize, choose their interests, subscribe to news, create and manage their networks (communities), upload pictures, etc.
  • Sifter is a WEB application for portal administrators. It has minimalistic lightweight user interface and at the same time convenient and powerful functions to filter obscene language, inappropriate images as well as to approve valid content. The main goal with it was to keep it as simple and fast as possible and provide administrators fast and efficient tools to manage portal content, including searching, filtering, batch processing and import/export capabilities.
  • Mobile offers is a WEB application allowing end users register in OptIt and subscribe to news by interests from their mobile devices either via simple widget-like WEB user interface or by sending SMS messages to specific numbers.
  • Site API is an application without user interface which allows 3rd party applications to integrate with OptIt and use functionality provided by OptIt services automatically without the need to log in to WEB user interface. It also serves internal OptIt needs handling SMS delivery notifications as well as other incoming requests from external applications used by OptIt.

SMS message sending is organized via robust fail-safe message queues with smart error handling and guaranteed delivery. On each attempt to send SMS message verification of the result is performed in a separate queue and messages get re-queued if sending fails for some reason (be that network failure, Internet connection issue or temporary GSM provider unavailability). SMS can only fail to be delivered if recipient number is blocked or deactivated by GSM provider.


Each application has multi-tiered architecture consisting of the following layers:

  • Interface layer is either a user interface presentation or API created for integration with 3rd party external applications.
  • Business logic is layer which manages application logic, user authentication, access restriction, queuing and processing messages, exception handling, performs SMS campaigns.
  • Integration layer is handling internal integration between the applications via REST services and RMI.
  • Data access layer abstracts database from the business logic.
  • Database is used to store application data.

Tools and Technologies

  • J2SE, J2EE, HTML, CSS, XML, XSLT, JavaScript, Mootools, AJAX, JSP, Servlets, REST services, RMI, ActiveMQ, MMQ, Simpleware, JNDI, JDBC, Hibernate
  • SUN Java 1.6 – 1.7, Eclipse, Ant, Apache Tomcat 6 (6.0.18 – 6.0.20), MySQL 5
  • Linux 2.6 (Debian Lenny / Fedora Core 5)


Cost-effective outsource team of IT professionals with significant experience in WEB and server-side Java-based technologies managed to analyze architecture design issues and performance bottlenecks of the previously existing implementation and created brand new well-structured, robust and scalable solution with use of more powerful libraries and technologies, reducing time to marked of client’s next generation software.

The developed solution provides best user experience and ensures guaranteed SMS message delivery. It is capable of sending more than 10 million SMS messages per month and with client base growth can be further scaled to support even more intense SMS messaging with minimal to none effort.