Refactoring and Re-Architecting a SaaS Gaming Platform into SOA in Just 4 Months
The Customer is a European company that provides software systems for online gaming. The company offers proprietary software systems for poker, casino, betting and bingo as well as affiliate services like payment solutions, website design, gaming licenses, promotional tools and customer support.
The Customer had a SaaS product – a gaming platform integrated with a number of third-party SaaS services. The system contained sophisticated billing and reporting tools to calculate and track payments.
Since the company’s client base, along with the plans to add new functionality, was growing rapidly, the Customer decided to implement a new service-oriented architecture (SOA) in order to make the system more effective and scalable. Thus, separating internal modules into self-contained services would make it easier to maintain and extend the system as well as enable parallel development.
ScienceSoft, a provider of custom software development services, deployed a team of 4 developers to work on the Customer’s side. Initially, the team was engaged in performing low-level design tasks. Then ScienceSoft came up with ideas related to the complicated core services architecture and explained the pros and cons of different approaches. For instance, the engineers proposed a flexible and reliable solution for the Authentication & Authorization infrastructure. Particularly, it included several WCF services and ensured a secure connection between the company’s infrastructure, users, and third parties.
As the system was complex and had many interconnected business logic modules, replacing the elements required profound development skills. For this purpose, ScienceSoft began with writing automated tests for the legacy system. And when the replacement solution was developed, the engineers used the tests to check whether the new elements would comply with the existing environment. This sophisticated approach enabled ScienceSoft to implement the solution without any downtime.
Additionally, ScienceSoft developers refactored a considerable number of features and developed the following system modules from scratch:
- Security (fraud detection, IP filtering, etc)
- Notification system
- Logging infrastructure
- Poker system
Though ScienceSoft had to deal with an unfamiliar codebase and rely on communicating with numerous remote development groups, they were able to implement Agile practices efficiently.
The project was finished successfully in the course of 4 months. The Customer continued cooperating with ScienceSoft on the development of new products.
Technologies and Tools
Languages: C#, Transact-SQL, XML, XSLT, XAML, HTML, CSS
Database management systems: MS SQL Server, MySQL
Revision control system: SVN
IDE: MS Visual Studio
Other tools: SMTP, MSMQ, WIX, LINQ, XSD, RSA, Team City, Enterprise Architect, FxCop, StyleCop, NCover, Flex, Flash