Merge branch 'master' of github.com:jeena/GGS-report

Conflicts:
	report.lyx
This commit is contained in:
Jonatan Pålsson 2011-05-12 21:16:25 +02:00
commit 8d63aac4a0
2 changed files with 207 additions and 175 deletions

View file

@ -2618,7 +2618,8 @@ Each instance of the GGS contains several so called tables.
represented as a player standing up from her current table and sitting
down at a new table, all within the same game session.
Therefore the main focus of the GGS is not to move players among tables,
but to keep a player by one table, and to start new tables if needed instead.
but to keep a player seated by a table and to start new tables if needed
instead.
When a server reaches a certain number of players the performance will
start to decrease, or worse, the server may even crash.
To avoid this the GGS will start new tables on another server, using this
@ -2973,8 +2974,8 @@ reference "alg:A-simple-generator"
\begin_layout Standard
The obvious solution to this problem is to ensure mutual exclusion by using
some sort of a lock, which may work well in many concurrent systems.
In a distributed system, like the GGS, this lock, along with the state,
would have to be distributed.
In a distributed system such as the GGS however, this lock, along with the
state, would have to be distributed.
If the lock is not distributed, no guaranties can be made that two nodes
in the distributed system do not generate the same identifier.
\end_layout
@ -3028,8 +3029,8 @@ Ds generated until 3400 A.D.
\begin_layout Standard
The generation of a UUID is accomplished by gathering several different
sources of information, such as: time, MAC addresses of network cards,
and operating system data, such as percentage of memory in use, mouse cursor
sources of information, such as: time, MAC addresses of network cards;
and operating system data such as; percentage of memory in use, mouse cursor
position and process IDs.
The gathered data is then
\emph on
@ -3043,16 +3044,8 @@ using an algorithm such as SHA-1.
\end_layout
\begin_layout Standard
When using system wide unique identifiers, such as the ones generated by
algorithm
\begin_inset CommandInset ref
LatexCommand ref
reference "alg:A-simple-generator"
\end_inset
with mutual exclusion, it is extremly unlikely to have identifier collisions
when recovering from network splits between the GGS clusters.
When using system wide unique identifiers it is extremly unlikely to have
identifier collisions when recovering from network splits between GGS clusters.
Consider figure
\begin_inset CommandInset ref
LatexCommand ref
@ -3147,20 +3140,6 @@ end{centering}
\end_inset
\end_layout
\begin_layout Plain Layout
\begin_inset Note Note
status open
\begin_layout Plain Layout
Add clients on each side, and replace the cloud with pole-landlines being
cut by a pair of scissors
\end_layout
\end_inset
\end_layout
\begin_layout Plain Layout
@ -4374,7 +4353,7 @@ target "http://www.objectmentor.com/resources/articles/srp.pdf"
are widely respected as good practices in the world of software engineering
and development.
By dividing the GGS up into modules each part of the GGS can be modified
By dividing the GGS into modules each part of the GGS can be modified
without damaging, or requiring changes in the rest of the system.
Due to the hot code updates featured in Erlang, it is theoretically possible
to update parts of the GGS while the system is running, this has however
@ -4441,6 +4420,31 @@ textbf{Object Oriented Programming}}{A programming paradigm focusing on
The dispatcher module
\end_layout
\begin_layout Standard
\begin_inset Note Note
status collapsed
\begin_layout Plain Layout
The discussion of the modules is divided into the following parts:
\end_layout
\begin_layout Itemize
What does the module do?
\end_layout
\begin_layout Itemize
What happens when the module fails?
\end_layout
\begin_layout Itemize
How does the module correspond to the real-world scenario of the chess club?
\end_layout
\end_inset
\end_layout
\begin_layout Standard
The dispatcher module is the first module to have contact with a player.
When a player connects to the GGS, the player is first greeted by the dispatche
@ -4449,7 +4453,7 @@ r module, which sets up an accepting socket for each player.
system when working with sockets.
Operating system limits concerning the number of open files, or number
of open sockets are handled here.
The operating system limits can impose problems on the GGS, this is discussed
The operating system limits can impose problems in the GGS, this is discussed
more in detail in chapter
\begin_inset CommandInset ref
LatexCommand vref
@ -4487,8 +4491,8 @@ Well..
\end_layout
\begin_layout Standard
Returning to scenario of the chess club, the dispatcher module is the doorman
of the club.
Returning to the scenario of the chess club, the dispatcher module is the
doorman of the club.
When a player enters the chess club, the player is greeted by the doorman,
letting the player in to the club.
The actual letting in to the club is in the GGS represented by the creation
@ -4500,8 +4504,8 @@ reference "sub:The-player-module"
\end_inset
.
The newly created player process is handed, and granted rights to, the
socket of the newly connected player.
The newly created player process is handed and granted rights to, the socket
of the newly connected player.
\end_layout
\begin_layout Subsection
@ -4530,7 +4534,7 @@ reference "sub:The-protocol-parser"
.
Raw communication, without passing the data through a protocol parser is
in theory possible, but is not useful.
in theory possible, however it is not useful.
\end_layout
\begin_layout Standard