added some text about the GGS protocol in theory

This commit is contained in:
Jeena Paradies 2011-05-10 15:12:00 +02:00
parent a384fa93ce
commit 88d8369fa8

View file

@ -2290,29 +2290,6 @@ textbf{HTTP}}{Hyper Text Transport Protocol, a network protocol commonly
\end_inset \end_inset
\end_layout
\begin_layout Subsection
HTTP
\end_layout
\begin_layout Standard
Since HTTP is so widely used on the Internet today in web servers, it is
available on most Internet connected devices.
This means that if HTTP is used in the GGS, firewalls will not pose problems,
which is a great benefit.
However, due to the intended usage of HTTP in web servers, the protocol
was designed to be stateless and client-initiated.
In order to maintain a state during a game session using HTTP, some sort
of token would have to be passed between client and server at all times,
much like how a web server works.
These facts combined makes HTTP unsuitable for our purposes, since the
GGS requires a state to be maintained throughout a session, and also needs
to push data from the server to clients without the clients requesting
data.
It should also be mentioned that HTTP uses the TCP protocol for transport,
and what is said about TCP also applies to HTTP.
\end_layout \end_layout
\begin_layout Subsection \begin_layout Subsection
@ -2375,31 +2352,54 @@ Same here it is simply not true for a generic server to chose one or the
\end_layout \end_layout
\begin_layout Subsection \begin_layout Subsection
The GGS protocol HTTP
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
\begin_inset Note Note Since HTTP is so widely used on the Internet today in web servers, it is
status open available on most Internet connected devices.
This means that if HTTP is used in the GGS, firewalls will not pose problems,
which is a great benefit.
However, due to the intended usage of HTTP in web servers, the protocol
was designed to be stateless and client-initiated.
In order to maintain a state during a game session using HTTP, some sort
of token would have to be passed between client and server at all times,
much like how a web server works.
These facts combined makes HTTP unsuitable for our purposes, since the
GGS requires a state to be maintained throughout a session, and also needs
to push data from the server to clients without the clients requesting
data.
It should also be mentioned that HTTP uses the TCP protocol for transport,
and what is said about TCP also applies to HTTP.
\end_layout
\begin_layout Plain Layout \begin_layout Subsection
Refer to The GGS Protocol
\end_layout
\begin_layout Standard
HTTP was designed to be a stateless protocoll which by adding some overhead
is able to remove the need of a permanent connection and a state for each
client.
The GGS however already has a permanent connection to each client because
it needs to push information to the clients.
Therefore is able to use the state to minimize the overhead in the communicatio
n between server and client.
Because of that it has been decided to invent a new protocol which human
readable like HTTP but customized for this special use.
The GGS protocol is described in more detail in section
\begin_inset CommandInset ref \begin_inset CommandInset ref
LatexCommand ref LatexCommand ref
reference "sub:The-structure-of" reference "sub:The-structure-of"
\end_inset \end_inset
.
\end_layout
\end_inset
\end_layout \end_layout
\begin_layout Section \begin_layout Section
Generic Generic Structure of the GGS
\begin_inset CommandInset label \begin_inset CommandInset label
LatexCommand label LatexCommand label
name "sec:Generic" name "sec:Generic"
@ -2414,8 +2414,8 @@ The GGS is a game server.
It was made with a desire to be suitable for any kind of game. It was made with a desire to be suitable for any kind of game.
Any game with a client-server behavior should be perfectly suited for GGS. Any game with a client-server behavior should be perfectly suited for GGS.
A game should not only be able to vary in terms of genre, graphics, gameplay A game should not only be able to vary in terms of genre, graphics, gameplay
etc, but also in the way the game is implemented. etc, but also in the way the game is implemented such as different programming
Such as different programming languages. languages.
The GGS should be OS independent and run on Windows, OSX and Linux. The GGS should be OS independent and run on Windows, OSX and Linux.
The GGS can be run as a listen server on the players computer and host The GGS can be run as a listen server on the players computer and host
games locally. games locally.
@ -2425,17 +2425,11 @@ The GGS is a game server.
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
\begin_inset Note Note Another aspect was the desire to let a client to load up the source code
status open to the game it would like to play on the GGS.
This way every client could connect to the server and install the game
\begin_layout Plain Layout through a API without the need of installation through the server provider
Bad name of the chapter, but here we should give the theory of how the server or maintainer.
is generic
\end_layout
\end_inset
\end_layout \end_layout
\begin_layout Section \begin_layout Section