|IT Consulting For E-business
Offshore Development Center
IT Service For Startup Company
Tournament Reporter (TR) is a start-up company providing web-service
to poker players based on their proprietary Poker Tournament Analysis
Model. TR's tournament data analysis helps each player find out his/her
own skill score and ranking among all the players, to help the player
decide his/her tournament tactics and develop skills. To build up their
image as the leader in the business, TR must launch their novel service
website as soon as possible to attract customers, and demonstrate the
vitality of their business model to investors.
To complete the Poker Tournament Analysis Model, software developers
are faced with the following challenges:
- The skill score of a player is given on the basis of his/her tournament
record, including maximum gains and losses, dates of each gain and
loss, total gains and losses in recent tournaments, etc.
- The importance of a tournament record in skill score evaluation
decreases with time in a non-linear fashion, i.e. the earlier the
gain/loss happened, the less important the record is.
- The result of a new tournament will not only affects the skill score
of all the game participants, but may also affect the ranking of other
In order to provide service to poker players using this analytical
model, TR's E-business website must have the following functionalities:
- Mass number of daily updates: There are about 2,000 online poker
tournaments every day, each with 50-3000 players participating, which
makes the total number of poker players as high as 100,000. A huge
amount of tournament data must be downloaded from the 10 biggest poker
sites. The amount of records to update is up to 6,000,000, the number
of calculated attributes for each participating player is about 500,
which makes up to 350 million attributes to be updated daily.
- Problem identification: Sometimes, the data may be duplicates and
should be eliminated automatically by the system. The system should
be able to identify other problems with raw data and inform a human
operator to fix each of them.
- Querying service: A registered player is allowed to query his/her
own skill score and skill rank at any time. A query could be like
"how do I compare with the Top 5% ranking players", or "what
is the average skill score of the upper 50% players".
- Large number of daily calculations: Although only a few dozens of
thousands of players participate in poker tournaments in a single
day, all the rankings will be affected. Everyday, the system has to
process tournament results and update scores for every player on file,
before generating new rankings for each player, and all the necessary
calculation must be completed before next day morning. Large volume
of entries, coupled with the non-linear model, posts great challenge
to the algorithm design.
- Peak time congestions: During peak time, the system may receive
thousands of inquires, each requesting a response with more than 2,000
attributes. Timely response to these inquiries is critical to the
- Maintenance issues: In addition to keeping the records of all the
poker players, the system must maintain a log file to record daily
calculations, system resource usage, computing time, performance benchmark,
etc. for future references.
Online services: TR hopes to introduce the skill appraisal and ranking
service on its own website to attract poker players and generate enough
web-traffic. Therefore, the application has to appeal to the target
- Value Proposition: TR needs to demonstrate the value of the ranking
service to poker players. For instance, a player might be able to
improve his/her games by knowing the comparative ranking and performance
- User-friendliness: The web-based application must be easy to use
with a steep learning curve. In addition to a simple interface, the
website also needs step-to-step instructions to guide users through
- 24x7 Availability: The website must be updated every day, and provide
24 x 7 services. This requires automatic backup of the database and
quick recovery of common malfunctions. Quick and effective technical
support is also essential.
Among the outsourcing vendors, ExperExchange proposed the best solution
and won the project to develop the system. The proposal includes the
Active Indexing & Group Indexing Algorithm to handle the large volume
Active Indexing & Group Indexing:
Based on the following two important observations, ExperExchange
proposed the Active Index & Group Indexing Scheme for the system
to complete core calculation:
- Active Index: At any time, only a small fraction of the players
would participate in tournaments and/or make online inquiries,
compared to the 1.7 million player population. We assign an Active
Index figure to each player based on his/her tournament and inquiry
pattern, and assign calculation priority based on the figure.
The higher the Active Index for a player, the more often he/she
plays therefore requiring more frequent recalculation and update.
Queries from players with a low Active Index can be calculated
as-needed without degrading the system response. By prioritizing
calculation resources and minimizing unnecessary updates, we achieved
fast response without committing too much computing resources.
- Skill Score Group Index: Any single tournament will not affect
most players' score or ranking, and the attributes will change
over time in a non-liner fashion. We group the players based on
their current rankings, with the same Group Index figure assigned
to all the players in the same group. Only an extremely small
portion of the players at the extremes of a group would need to
be moved to the neighboring group as a result of new tournaments
in a single day. Hence, the amount of as-needed calculations and
updates is further reduced.
Our simulation showed that, our algorithm reduced calculations
to 1-2‰, and only 0.1-0.2% of the players would move to a different
group in any single day. It suffices to re-group only once a week
to guarantee ranking accuracy. By reducing the number of calculations,
the Active Index & Group Index Algorithm also successfully removed
system bottleneck at peak time.
Although the Active Indexing & Group Indexing Algorithm helped
alleviate system workload, the daily calculation was still too heavy
for an ordinary server to handle. We used a server cluster with three
servers, with a program dispatching tasks among these servers. The
program also monitors the computing process and re-dispatches tasks
if one server fails. The system structure also allows more servers
to be added when necessary.
- Website Usability:
The following principles were observed in the web design (see Fig.
1 & Fig. 2, www.tournamentreporter.com):
- Content of the site must be concise and to the point, and include
all key information to address most customer requests within one
- Service items are shown in flash files, to demonstrate the
service and guide users through the system.
- Display skill scores and rankings in histograms, curves and
intuitive graphs to minimize the amount of text.
- Any tracking, report request or player switches can be completed
within 3 mouse clicks.
- Daily maintenance of the website:
To help Tournament Reporter operate and maintain the E-business
website, ExperExchange designed an automated business flow to reduce
human hours. In addition, we set up an Offshore Operation Center
in China for Tournament Reporter, with operators standing by to
support the system. They would monitor daily data collections, inspect
the automatic calculation of skill scores and rankings, manage data
updates, check the reports on system status, handle unexpected system
breakdowns and malfunctions. By using an offshore center, we further
reduced TR's maintenance cost by 50%.
Figure 3. Tournament Reporter Business Flow Chart
We design a great site, using all the tools available. Photoshop, tablets,
HTML, Illustrator, caffeine, dreamwaver, AjAx, - we use all the latest
and most established technology to create a web site that is visually
appealing and yet fully functional.
1) Operating system: Windows Server 2003 Enterprise Editor
2) Browser: By testing on the compatibility of IE 6.0, FireFox 1.0 and Netscape 7.0
3) DB: MySQL 4.1
4) Languages: ASP, C++, Visual Basic, HTML, Flash, Java Script
5) Third party software: Jmail, Mannichart, Newsletter Manager Pro