Table of content
- Client Overview
- Engagement Situation
- Key Engagement Challenges
- Xoriant Solution
- Tools & Technologies
- Key Business Benefits
Our Client, an Enterprise ISV in Middleware Telecom products for Mobile Network Operators (MNOs) and provider of next-generation IP-based network and data services, enables operators to provide Internet services to their subscribers, with excellent rich media user experience and enhanced value added services. Our Client’s other solutions include mobile data and video optimization technologies, Web acceleration, overall traffic management, and advanced revenue generating services. All of our Client’s solutions are focused on delivering innovative mobile data services with optimal user experience, reducing network costs and complexity while leveraging existing infrastructure to generate new revenue.
Our client wanted to explore the mobile advertising area through a platform to enable targeted real-time distribution of carrier promotions including content over web pages on Smartphones and Tablets. The platform enabled mobile operators to target and present contents and services according to the user specific context of browsed pages and other real time indications. However, the platform developed was not able to meet the new aggressive demands of the mobile space in terms of transaction processing speed, etc. There were some other performance related bottlenecks which required to be optimized to make the product ready for next gen usage.
The scope of engagement was to enhance the performance of the platform in terms of TPS scaling, and our client required a partner like Xoriant for the enhancement of the platform in order to optimize and eliminate the performance challenges.
KEY ENGAGEMENT CHALLENGES
Performance Bottlenecks identified were :
- Optimize the time consumed in creating heavy objects e.g.100 site URLS and corresponding pattern and matcher objects
- Optimizing the request and the received response content which has irrelevant information and results in wasted processing time
- Disk I/O operation were taking considerable time
- Identifying and eliminating unnecessary database transactions- Reducing the response time of database hit and the number of transactions thereby improving TPS.
- Optimizing other validations which resulted into a few more bottlenecks like Queue Implementation and scale connection between different platforms
Xoriant, having an extensive experience in developing and enhancing client platforms in the past, set up a dedicated offshore team of developers and QA to work on the required platform using a host of technologies. The team had hands on technical experience of developing solutions with the required skill set. Xoriant provided recommendations and blueprints to resolve the bottleneck issues and discussed with client and decided the final solutions to cater each of the client challenges.
The team focused on the analysis, enhancements and feasibility of all the requirement challenges and quality assurance - ensuring performance quality of the platform. The entire enhancement project required knowledge of multiple technologies and also required domain knowledge of the system. Adoption of agile methodology ensured regular updates to the client allowing a quick and timely feedback for deliveries.
Performance Bottlenecks identified were :
- Eliminated the database transactions per request by modifying the flow to validate the master data for Services, Preferences, Language, Subscriber Type, etc. with the cache version.
- Enhanced the subscriber caching mechanism by eliminating execution of procedure to remove subscriber objects from cache using Guava APIs
- Object Optimization :
- Created a single Pattern from the set of site URLs in case of multiple URLs
- Modified ObjectMapper and DatatypeFactory objects to create a single instance of these objects so that it can be reused for all requests
- Asynchronous Behavior and Bulk Processing :
- Modified Injection API flow to update the counter information asynchronously which helped in saving, few milliseconds per request
- Modified Subscriber API flow to insert/updatesubscriber information in database asynchronously
- Request and Response content :
- Modified API response to reduce the content length of the response by eliminating the statistics and campaign information
- Disk I/O operation :
- Eliminated writing of duplicate logs by modifying Application startup script
- Eliminating unnecessary Database Transactions :
- Modified the flow to use parameter from cache for every Injection API which helped in eliminating extra database transactions
- Cached the user information and for each Subscriber API request, implementation validated the user information in the request with the cache to eliminate database call for user validation per subscriber request
TOOLS & TECHNOLOGIES
- Frame Work: Struts, Hibernate, Spring (Core, Boot, Data, Web Services)
- J2EE Technology: JSP, Servlet, Batch
- Languages: Java (1.6 and 1.7), Shell Scripting
- Database: Oracle
- Development Tools: IntelliJ Idea, NetBeans, Eclipse (STS), Cygwin, SSH, JMeter, Sonar, Chrome Dev Tools, HiediSQL Client
- SCM Tools: Subversion, Tortoise SVN, Git, Github
- Testing Tools: Junit, JMeter, Soap UI, Burp Suite
KEY BUSINESS BENEFITS
- Successfully scaled the system from 500 TPS to 5000 TPS for individual node
- System was able to support 25000 TPS with 5 nodes. Increased the scalability of application beyond 500 TPS
- Avoided application crashing with ~ 100 concurrent connections
- Resolved the issue where the application SDRs stopped writing abruptly.
- Efficiency of targeted real-time distribution of carrier promotions, content and advertising on Smartphones and Tablets by the MNOs improved by more than 30%