Added text on properties of erlang, much can be added here
This commit is contained in:
parent
4ffc1ac677
commit
36b7f15fe8
2 changed files with 202 additions and 4 deletions
|
@ -178,7 +178,7 @@
|
||||||
|
|
||||||
@MISC{thenumbers:website,
|
@MISC{thenumbers:website,
|
||||||
AUTHOR = "Nash Information Services, LLC",
|
AUTHOR = "Nash Information Services, LLC",
|
||||||
TITLE = "US Movie Market Summary 1995 to 2011",
|
TITLE = "U.S Movie Market Summary 1995 to 2011",
|
||||||
MONTH = "April",
|
MONTH = "April",
|
||||||
YEAR = {2011},
|
YEAR = {2011},
|
||||||
URL = "http://www.the-numbers.com/market/"
|
URL = "http://www.the-numbers.com/market/"
|
||||||
|
@ -191,3 +191,38 @@
|
||||||
YEAR = {2011},
|
YEAR = {2011},
|
||||||
URL = "http://www.theesa.com/facts/index.asp"
|
URL = "http://www.theesa.com/facts/index.asp"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@article{Armstrong:2010:ERL:1810891.1810910,
|
||||||
|
author = {Armstrong, Joe},
|
||||||
|
title = {Erlang},
|
||||||
|
journal = {Commun. ACM},
|
||||||
|
issue_date = {September 2010},
|
||||||
|
volume = {53},
|
||||||
|
issue = {9},
|
||||||
|
month = {September},
|
||||||
|
year = {2010},
|
||||||
|
issn = {0001-0782},
|
||||||
|
pages = {68--75},
|
||||||
|
numpages = {8},
|
||||||
|
url = {http://doi.acm.org.proxy.lib.chalmers.se/10.1145/1810891.1810910},
|
||||||
|
doi = {http://doi.acm.org.proxy.lib.chalmers.se/10.1145/1810891.1810910},
|
||||||
|
acmid = {1810910},
|
||||||
|
publisher = {ACM},
|
||||||
|
address = {New York, NY, USA},
|
||||||
|
}
|
||||||
|
@inproceedings{Armstrong:2007:HE:1238844.1238850,
|
||||||
|
author = {Armstrong, Joe},
|
||||||
|
title = {A history of Erlang},
|
||||||
|
booktitle = {Proceedings of the third ACM SIGPLAN conference on History of programming languages},
|
||||||
|
series = {HOPL III},
|
||||||
|
year = {2007},
|
||||||
|
isbn = {978-1-59593-766-7},
|
||||||
|
location = {San Diego, California},
|
||||||
|
pages = {6-1--6-26},
|
||||||
|
url = {http://doi.acm.org/10.1145/1238844.1238850},
|
||||||
|
doi = {http://doi.acm.org/10.1145/1238844.1238850},
|
||||||
|
acmid = {1238850},
|
||||||
|
publisher = {ACM},
|
||||||
|
address = {New York, NY, USA},
|
||||||
|
}
|
||||||
|
|
169
report.lyx
169
report.lyx
|
@ -321,7 +321,7 @@ Zork,
|
||||||
\emph default
|
\emph default
|
||||||
or
|
or
|
||||||
\emph on
|
\emph on
|
||||||
Pac Man.
|
Pacman.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -527,8 +527,18 @@ Moving back to the gaming industry.
|
||||||
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 is much higher than the downtime
|
||||||
of telecom system.
|
of telecom system
|
||||||
|
\begin_inset Note Note
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
Citation needed...
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
.
|
||||||
The structure of the system is similar in many ways and it should be possible
|
The structure of the system is similar in many ways and it should be possible
|
||||||
to reuse solutions from the telecom system to improve game servers.
|
to reuse solutions from the telecom system to improve game servers.
|
||||||
|
|
||||||
|
@ -716,6 +726,14 @@ key "Armstrong03"
|
||||||
|
|
||||||
.
|
.
|
||||||
The same language is used to develop the prototype of the GGS.
|
The same language is used to develop the prototype of the GGS.
|
||||||
|
Usage of Erlang in the GGS is discussed in further detail in section
|
||||||
|
\begin_inset CommandInset ref
|
||||||
|
LatexCommand ref
|
||||||
|
reference "sec:The-usage-of-erlang"
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
.
|
||||||
Chapter
|
Chapter
|
||||||
\begin_inset CommandInset ref
|
\begin_inset CommandInset ref
|
||||||
LatexCommand vref
|
LatexCommand vref
|
||||||
|
@ -2243,6 +2261,13 @@ Because P2P game architectures are a constant goal for cheaters and because
|
||||||
|
|
||||||
\begin_layout Subsection
|
\begin_layout Subsection
|
||||||
UUID
|
UUID
|
||||||
|
\begin_inset CommandInset label
|
||||||
|
LatexCommand label
|
||||||
|
name "sub:UUID"
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -2643,6 +2668,13 @@ Encryption
|
||||||
|
|
||||||
\begin_layout Section
|
\begin_layout Section
|
||||||
Game Development Language in a Virtual Machine
|
Game Development Language in a Virtual Machine
|
||||||
|
\begin_inset CommandInset label
|
||||||
|
LatexCommand label
|
||||||
|
name "sec:Game-Development-Language"
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -3062,6 +3094,137 @@ reference "sec:The-modular-structure"
|
||||||
|
|
||||||
\begin_layout Section
|
\begin_layout Section
|
||||||
The usage of Erlang in the GGS
|
The usage of Erlang in the GGS
|
||||||
|
\begin_inset CommandInset label
|
||||||
|
LatexCommand label
|
||||||
|
name "sec:The-usage-of-erlang"
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
Erlang was designed by Ericsson, beginning in 1986, for the purpose of creating
|
||||||
|
concurrent applications and improving telecom software.
|
||||||
|
Features essential for the telecom instustry to achieve high availability
|
||||||
|
in telecom switches were added to the language.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
Erlang uses message passing in favour of shared memory, mutextes and locks,
|
||||||
|
something which at the time was controversial among fellow developers
|
||||||
|
\begin_inset CommandInset citation
|
||||||
|
LatexCommand citet
|
||||||
|
key "Armstrong:2010:ERL:1810891.1810910"
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
.
|
||||||
|
The reason for using message passing, according to Armstrong, was that
|
||||||
|
applications should operate correctly before optimizations are done, where
|
||||||
|
efficient internal communication within the Erlang machine was considered
|
||||||
|
a later optimization.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
In using message passing in favour of the methods commonly used at the time,
|
||||||
|
the issues commonly associated with shared memory and locking were avoided.
|
||||||
|
In Erlang, everything is a process, and everything operates in its own
|
||||||
|
memory space.
|
||||||
|
Memory can not be shared among processes, which prohibits a process from
|
||||||
|
corrupting the memory of a different process.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
Messages are sent between the processes in an asynchronous manner, and each
|
||||||
|
process has a mailbox in which these messages can be retrieved.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
Processes in Erlang are also called
|
||||||
|
\emph on
|
||||||
|
Light Weight Processes.
|
||||||
|
|
||||||
|
\emph default
|
||||||
|
The Erlang processes are very cheaply created.
|
||||||
|
Processes exist within an Erlang machine, or Erlang node.
|
||||||
|
The Erlang machine has its own scheduler and does not rely on the operating
|
||||||
|
system's scheduler, this is a main reason of Erlang's capability of running
|
||||||
|
many concurrent processes
|
||||||
|
\begin_inset CommandInset citation
|
||||||
|
LatexCommand citet
|
||||||
|
key "Armstrong03"
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
The strong isolation of Erlang processes make them ideal for multicore and
|
||||||
|
distributed systems.
|
||||||
|
Distribution of software is included as a fundamental part in the Erlang
|
||||||
|
language.
|
||||||
|
The 'physical' location of a process, e.g.
|
||||||
|
which computer the process runs on, is not important when communicating
|
||||||
|
with the process.
|
||||||
|
Processes can communicate regardless of whether they run on the same system
|
||||||
|
of not, transparently.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
The distributed nature of Erlang is something the GGS makes use of when
|
||||||
|
scaling across several computers in order to achieve higher performance.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
A very important feature of Erlang, used in the GGS, is the ability to interface
|
||||||
|
with external hardware and software.
|
||||||
|
Erlang allows communication with external resources through
|
||||||
|
\emph on
|
||||||
|
ports.
|
||||||
|
|
||||||
|
\emph default
|
||||||
|
Through ports communication can take place much in the same way communication
|
||||||
|
is performed over sockets.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
The GGS uses Erlang ports for generating UUID:s
|
||||||
|
\begin_inset Foot
|
||||||
|
status collapsed
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
UUID:s are discussed in section
|
||||||
|
\begin_inset CommandInset ref
|
||||||
|
LatexCommand ref
|
||||||
|
reference "sub:UUID"
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
and for interfacing with the virtual machines of games
|
||||||
|
\begin_inset Foot
|
||||||
|
status collapsed
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
Virtual machines of games are discussed in section
|
||||||
|
\begin_inset CommandInset ref
|
||||||
|
LatexCommand ref
|
||||||
|
reference "sec:Game-Development-Language"
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue