Development of online game-playing system
This is an emerging software design & development company based in UK .
Based on the confidence in Shinetech established in the consulting phase, the client decided to choose Shinetech as the partner to develop the game-playing system.
The system Includes the following three main parts:
- A tournament application: according to some special algorithms to achieve the functions like weekly, monthly and annually tournament, watching game, past game review, ranking, chat, online notice and batch email etc.
- A Website: initially the website should be in English and Simplified Chinese. Provision is required for the addition of other languages. It should be AAA or AA compliant to make sure it is accessible to people with disabilities. The website should provide the functions such as online registration, login, search, advert management, news and events release etc.
- A Content Management System (CMS): to provide a powerful back-end management to maintain the website and tournament application in different level like admin, editor, and translator.
- Enable the users behind the firewall can play the game
- Load-balance should be considered in order to extend the system easily.
- Communication between client and server
Based upon our understanding from the consulting phase, we have learned what the client exactly wanted. In order to develop a salable system with a low cost, Shinetech allocated two dedicated architects into this group to take charge of the website and tournament application respectively. In order to keep down the cost of development, the opensource resources were adopted widely in the system.
As the firewalls are usually placed at the connection to the internet to shield local networks from outside attacks by screening incoming traffic and rejecting connection attempts to host inside the firewalls by outside machines, we are required to enable the users behind the firewall can also play the game to extend our potential amount of users. Considering that most of firewalls are configured to allow HTTP protocol traffic on port 80, to allow users inside the firewall to browse web pages, the HTTP-Tunnel technology was adopted by our team to cross the firewall.
According to the client, the number of target players would reach hundreds of thousands, which made heavy stress on the server. To balance server load, an independent balance module was worked out by Shinetech to distribute requests to different nodes within the server cluster, with the goal of optimizing system performance. This resulted in higher availability and scalability of the system.
To solve the communication issue, initially we considered to add the thread-pooling to the server to handle the client's request, however the thread pooling did not scale well due to the time required for context switching increases significantly with the number of active threads. With a few hundred active threads, most CPU time may be wasted in context switching, with very little time remaining for doing real work. Finally, we decided to use I/O multiplexing. In this approach, a single thread is used to handle an arbitrary number of sockets. This allows servers to keep their thread count low, even when operating on thousands of sockets, thereby improving scalability and performance significantly.
OS: UNIX, Linux or Windows based operating system
Development Tools: Eclipse, Ultra edit
Application Server: Tomcat 5.x
- A tangible and substantial development solution.
- The development cost was largely cut down.
- High availability and scalability of the system.
- A reliable and easy-maintenance system.