thesis/ThesTeX/content/3-solution.tex

68 lines
2.4 KiB
TeX

\section{Requirements}
Wait, what did I want to do again?
\begin{itemize}
\item Per-game importer (Web client, File loader, …)
\item Analyzer modules (number crunching)
\item Output \& Visualization (CSV, [Geo]JSON, KML, Graphs, …)
\item Interface (Configuration)
\begin{itemize}
\item Expert users/researchers
\item Staging/designing staff
\end{itemize}
\item Cross-game comparisons
\item Integration of external data (questionnaire results)
\end{itemize}
\section{Evaluating Kibana}
To evaluate whether Kibana is a viable approach for the given requirements, I have created a test environment.
This setup is documented in \autoref{app:kibana}.
Two sample datasets were loaded into the Elasticsearch container through HTTP POST requests: \texttt{curl -H 'Content-Type: application/x-ndjson' -XPOST 'elastic:9200/\_bulk?pretty' --data-binary @gamelog.json}.
Once Kibana was told which fields hold the spatial information, it is possible to have a first visualization.
However, this view is optimized for the context of web log processing, so it has a rather low spatial resolution as shown in \autoref{img:kibana} and \autoref{img:kibana2}.
… taugt nich
\begin{itemize}
\item powerful timeseries database
\item complex setup
\item fast paced environment
\item low spatial resolution => privacy optimized
\end{itemize}
\image{\textwidth}{../../PresTeX/images/kibana}{Game trace in Kibana}{img:kibana}
\image{\textwidth}{../../PresTeX/images/kibana2}{Game trace in Kibana}{img:kibana2}
\section{Architecture}
Game independance:
\begin{itemize}
\item log importer/transformer necessary
\end{itemize}
\begin{itemize}
\item Based on map-reduce
\item Map: Analysis
\begin{itemize}
\item Iterate Log entries
\item Feed log entry through analyzer queue
\begin{itemize}
\item Augment entries
\item Filter entries
\item Sequential order
\end{itemize}
\end{itemize}
\item Reduce: Collect summaries from analyzers
\begin{itemize}
\item Rendering
\item Post-processing, Comparison, …
\end{itemize}
\item standalone (indep. of any game)
\item own client for game server (due to CORS/XSS prevention prohibiting shared use of game server assets in other host)
\item API for integration
\item allow load distribution
\end{itemize}
\image{\textwidth}{map-reduce.pdf}{Data flows}{img:flow}
\image{\textwidth}{architecture.pdf}{archoitecure overview}{img:arch}