Moved purpose to background, and rewrote purpose
This commit is contained in:
parent
62f3f6eda1
commit
b4edb8ebda
1 changed files with 171 additions and 47 deletions
218
report.lyx
218
report.lyx
|
@ -379,12 +379,30 @@ The game industry is a quickly growing industry where the need for new technique
|
||||||
s is large.
|
s is large.
|
||||||
One specific section where the development has stalled is the game server
|
One specific section where the development has stalled is the game server
|
||||||
section.
|
section.
|
||||||
|
\begin_inset Note Note
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
Citation needed
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
The existing game servers are functional but they lack good fault tolerance
|
The existing game servers are functional but they lack good fault tolerance
|
||||||
and the ability to scale well.
|
and the ability to scale well
|
||||||
|
\begin_inset Note Note
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
Citation needed
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
.
|
||||||
Users will notice this in low uptime and many crashes.
|
Users will notice this in low uptime and many crashes.
|
||||||
This is a problem that has existed and been resolved in other industries.
|
This is a problem that has existed and been resolved in other industries.
|
||||||
One good example is the telecom industry which have managed to develop
|
In the telecom industry solutins to similar problems have been found.
|
||||||
solutions to similar problems.
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -405,24 +423,30 @@ the nine nines
|
||||||
industry would not have been accepted in the telecoms industry.
|
industry would not have been accepted in the telecoms industry.
|
||||||
This level of instability should not be accepted in the game server industry
|
This level of instability should not be accepted in the game server industry
|
||||||
either.
|
either.
|
||||||
|
An unavailabvle phone system could potentially have life threatening consequenc
|
||||||
|
es, leaving the public unable to contant emergency services.
|
||||||
|
The same can not be said about an unavailable game server.
|
||||||
|
The statement that game servers are less important than phone systems is
|
||||||
|
not a reason not to draw wisdom from what the telecoms have already learnt.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
The main reason to develop reliable servers are monetary, it is important
|
Moving back to the gaming industry.
|
||||||
|
The main reason to develop reliable servers are monetary, it is important
|
||||||
for game companies to expand its customer base.
|
for game companies to expand its customer base.
|
||||||
Reliable game servers are one improvement that will create a good image
|
Reliable game servers are one improvement that will create a good image
|
||||||
of a company.
|
of a company.
|
||||||
In general the downtime of game servers are much higher than the downtime
|
In general the downtime of game servers are much higher than the downtime
|
||||||
of telecom system.
|
of telecom system.
|
||||||
The structure of the system is similar and it should be possible to reuse
|
The structure of the system is similar in many ways and it should be possible
|
||||||
solutions from the telecom system to improve game servers.
|
to reuse solutions from the telecom system to improve game servers.
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
In the current state game servers is coded for each game that needs it,
|
In the current state game servers are developed on a per-game basis, in
|
||||||
in many cases this seems like a bad solution.
|
many cases this seems like a bad solution.
|
||||||
Developers that want to make a network game need to understand network
|
Developers of network game need to understand network programming.
|
||||||
programming.
|
|
||||||
A way to change this is a generic game server which give the game developers
|
A way to change this is a generic game server which give the game developers
|
||||||
a server which they implement their game towards.
|
a server which they implement their game towards.
|
||||||
This approach would not only make it easier to develop network games, it
|
This approach would not only make it easier to develop network games, it
|
||||||
|
@ -430,47 +454,31 @@ In the current state game servers is coded for each game that needs it,
|
||||||
using the same server.
|
using the same server.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Section
|
|
||||||
Purpose
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
\begin_inset Note Note
|
Some factors key to the development of GGS have been isolated.
|
||||||
status open
|
Many of these come from the telecom sector.
|
||||||
|
The factors are
|
||||||
\begin_layout Plain Layout
|
|
||||||
The purpose of the GGS project.
|
|
||||||
What is the purpose of creating a fault tolerant server, why is it generic,
|
|
||||||
and what good does it do to have a scalable system? In the background,
|
|
||||||
we should give the motivations behind creating this software, but here
|
|
||||||
we should outline why the software is needed.
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\begin_layout Standard
|
|
||||||
The purpose of the GGS project is to create a
|
|
||||||
\emph on
|
\emph on
|
||||||
scalable
|
scalability, fault tolerance
|
||||||
\emph default
|
\emph default
|
||||||
and
|
and being
|
||||||
\emph on
|
|
||||||
fault tolerant
|
|
||||||
\emph default
|
|
||||||
server, while still allowing the server to be as
|
|
||||||
\emph on
|
\emph on
|
||||||
generic
|
generic
|
||||||
\emph default
|
\emph default
|
||||||
as possible.
|
.
|
||||||
These three italicised terms need some explanation.
|
These terms are defined below.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Scalability in computer science is a large topic and is commonly divided
|
Scalability (see
|
||||||
into sub-fields, two of which are
|
\begin_inset CommandInset ref
|
||||||
|
LatexCommand ref
|
||||||
|
reference "sec:Scalability"
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
) in computer science is a large topic and is commonly divided into sub-fields,
|
||||||
|
two of which are
|
||||||
\emph on
|
\emph on
|
||||||
structural scalability
|
structural scalability
|
||||||
\emph default
|
\emph default
|
||||||
|
@ -494,7 +502,14 @@ key "Bondi:2000:CSI:350391.350432"
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Fault tolerance is used to raise the level of
|
Fault tolerance (see
|
||||||
|
\begin_inset CommandInset ref
|
||||||
|
LatexCommand ref
|
||||||
|
reference "sec:Fault-Tolerance"
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
) is used to raise the level of
|
||||||
\emph on
|
\emph on
|
||||||
dependability
|
dependability
|
||||||
\emph default
|
\emph default
|
||||||
|
@ -519,8 +534,15 @@ key "Gartner:1999:FFD:311531.311532"
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
A generic game server has to be able to run different client-server network
|
A generic (see
|
||||||
games regardless of the platform the clients are running on.
|
\begin_inset CommandInset ref
|
||||||
|
LatexCommand ref
|
||||||
|
reference "sec:Generic"
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
) game server has to be able to run different client-server network games
|
||||||
|
regardless of the platform the clients are running on.
|
||||||
It runs network games of different type.
|
It runs network games of different type.
|
||||||
A very rough separation of games is real time games and turn based games.
|
A very rough separation of games is real time games and turn based games.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -576,6 +598,62 @@ One of the purposes of this thesis is to investigate how we can make a game
|
||||||
layer, data store and game specific features.
|
layer, data store and game specific features.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Section
|
||||||
|
Purpose
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset Note Note
|
||||||
|
status collapsed
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
The purpose of the GGS project.
|
||||||
|
What is the purpose of creating a fault tolerant server, why is it generic,
|
||||||
|
and what good does it do to have a scalable system? In the background,
|
||||||
|
we should give the motivations behind creating this software, but here
|
||||||
|
we should outline why the software is needed.
|
||||||
|
This section should be shortened, and the bulk of the text should be moved
|
||||||
|
to theory or background.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
The purpose of creating a generic and fault tolerant game server is to provide
|
||||||
|
a good framework for the development of many different types of games.
|
||||||
|
Allowing the system to scale up and down is a powerful way to maximize
|
||||||
|
the usage of physical resources.
|
||||||
|
By scaling up to new machines when load increases, and scaling down from
|
||||||
|
machines when load decreases costs and energy consumption can be optimized.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
Fault tolerance is important for the GGS in order to create a reliable service.
|
||||||
|
The purpose of a reliable game server is to provide a consistant service
|
||||||
|
to people using the server.
|
||||||
|
Going back to the telecom example, the purpose of creating a reliable telecom
|
||||||
|
system is to allow calls, possibly emergency calls, at any time.
|
||||||
|
Should the telecom network be unavailable at any time, emergency services
|
||||||
|
may become unavailable, furthermore the consumer image of the telecom system
|
||||||
|
degrades.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
Returning to the game industry, emergency services will not be contacted
|
||||||
|
using a game server, however an unavailable server will degrade the consumer
|
||||||
|
image of the system.
|
||||||
|
Consider an online casino company.
|
||||||
|
The online casino company's servers must be available at all times to allow
|
||||||
|
customers to play.
|
||||||
|
If the servers are unavailable, customers can not play, and the company
|
||||||
|
loses money.
|
||||||
|
In this scenario, an unavailable server can be compared to a closed real-world
|
||||||
|
casino.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Section
|
\begin_layout Section
|
||||||
Challenges
|
Challenges
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -980,10 +1058,42 @@ Same here it is simply not true for a generic server to chose one or the
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Section
|
||||||
|
Generic
|
||||||
|
\begin_inset CommandInset label
|
||||||
|
LatexCommand label
|
||||||
|
name "sec:Generic"
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
\begin_inset Note Note
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
Bad name of the chapter, but here we should give the theory of how the server
|
||||||
|
is generic
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Section
|
\begin_layout Section
|
||||||
Fault Tolerance
|
Fault Tolerance
|
||||||
|
\begin_inset CommandInset label
|
||||||
|
LatexCommand label
|
||||||
|
name "sec:Fault-Tolerance"
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -1039,7 +1149,14 @@ Performance penalties
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Section
|
\begin_layout Section
|
||||||
Availability
|
Availability
|
||||||
|
\begin_inset CommandInset label
|
||||||
|
LatexCommand label
|
||||||
|
name "sec:Availability"
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -1087,7 +1204,14 @@ messages
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Section
|
\begin_layout Section
|
||||||
Scalability
|
Scalability
|
||||||
|
\begin_inset CommandInset label
|
||||||
|
LatexCommand label
|
||||||
|
name "sec:Scalability"
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue