Quality Request for |
Case studies
Development of a Web ApplicationThe client This is an emerging software design & development company based in UK . What the client wanted Based on the confidence in Abstract Technology established in the consulting phase ( read the story ), the client decided to choose Abstract Technology as the partner to develop the game-playing system. The system includes the following three main parts:
Challenge
The solution 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, Abstract Technology 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 open source 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 Abstract Technology to distribute requests to different nodes within the server cluster, with the goal of optimising 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. Environment OS: UNIX, Linux or Windows based operating system The benefits
Download the complete case study Contact sales |