summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--appendix/glossary.tex1
-rw-r--r--content/implementation.tex21
-rw-r--r--main.bib117
-rw-r--r--style/style.tex4
4 files changed, 142 insertions, 1 deletions
diff --git a/appendix/glossary.tex b/appendix/glossary.tex
index 3baf8af..d7d5889 100644
--- a/appendix/glossary.tex
+++ b/appendix/glossary.tex
@@ -16,3 +16,4 @@
\newacronym{fair}{FAIR}{Findability, Accessibility, Interoperability and Reusability}
\newacronym{nasem}{NASEM}{National Academy of Sciences, Engineering, and Medicine}
\newacronym{cfd}{CFD}{Computational Fluid Dynamics}
+\newacronym{ui}{UI}{User Interface}
diff --git a/content/implementation.tex b/content/implementation.tex
index f55aef1..424103c 100644
--- a/content/implementation.tex
+++ b/content/implementation.tex
@@ -11,7 +11,26 @@ presents the rationale for using the specific software packages, \Cref{ss:data_f
\section{Overview}\label{ss:implementation_overview}
At the onset of the project, we decided \gls{my_system} will use only state-of-the-art software, deployed in the industry or evaluated in peer-reviewed scientific publications.
-In order to facilitate visualizations and interactive dashboards, we decided to use \texttt{Grafana}~\cite{Wikipedia:article/Grafana}.
+In order to facilitate visualizations and interactive dashboards, we decided to use \code{Grafana}~\cite{Wikipedia:article/Grafana}.
+To enable the flow of data into the digital twin, we use \code{Kafka}~\cite{Wikipedia:article/Confluent}.
+To store the in-band data we use a \code{Redis}~\cite{Wikipedia:article/Redis} cache, and for out-of-band data we use a \code{PostgreSQL}~\cite{Wikipedia:article/Postgresql}.
+To enable predictive analytics, we chose a discrete-event simulator, \code{OpenDC}~\cite{GitHub:software/OpenDC}.
+The \code{Analytics Engine}, \code{Monitoring Service}, and \code{HTTP Server} are described in detail in \Cref{ss:programming}.
+
+\code{Grafana} is a state-of-the-art industry tool to visualize dashboards.
+We posit it is crucial to include a user-friendly \gls{ui}.
+A number of previous publications on digital twinning find dashboards important~\cite{DBLP:conf/sc/TaheriBPRHDEWPM24, DBLP:conf/wosp/SumanCNTMI24, DBLP:conf/wosp/NicolaeTKLI26}.
+We chose \code{Grafana} instead of other software packages because of its seamless integration with \code{PostgreSQL}.
+\code{Grafana} provides good separation of concerns and compartmentalization as it does not store the displayed metrics itself.
+Instead, it queries the \code{PostgreSQL} database in real-time~\cite{Wikipedia:article/Grafana}, unlike \eg \code{InfluxDB}.
+Good alternatives to \code{Grafana} are \code{Kibana}~\cite{Wikipedia:article/Kibana}, \code{Prometheus}~\cite{Wikipedia:article/Prometheus}, and \code{Graphite}~\cite{Wikipedia:article/Graphite}.
+
+\code{Kafka}, particularly \code{Kafka} developed by Confluent~\cite{Wikipedia:article/Confluent} is a battle-tested message broker that provides versatile capabilities to transfer huge volumes of data with little latency, in real-time.
+We decided to use \code{Confluent Kafka} instead of \code{Kafka} developed by the Apache Foundation, because of it's masterful connector system allowing to easily add sources and sinks (\eg \code{PostgreSQL} sink, \code{Redis} sink, \code{OpenDC} source).
+Additionally, as opposed to \code{Apache Kafka}, \code{Confluent Kafka} comes equipped with a \code{Schema Registry}.
+The \code{Schema Registry} is a important component that allows the storage of database and cache schemas for easy retrieval.
+With \code{Schema Registry}, we ensure that the data stored in \code{PostgreSQL} tables and in \code{Redis} streams contains the exact same schema.
+Moreover, \code{Schema Registry} is compatible with versatile data interchange formats, such as \code{ProtoBuf}~\cite{Wikipedia:article/ProtoBuf}.
\section{Data Flow}\label{ss:data_flow}
diff --git a/main.bib b/main.bib
index cee9d78..e41802c 100644
--- a/main.bib
+++ b/main.bib
@@ -709,3 +709,120 @@
}",
}
+@misc{Wikipedia:article/Confluent,
+ author = "{Wikipedia contributors}",
+ title = "Confluent --- {Wikipedia}{,} The Free Encyclopedia",
+ year = "2026",
+ howpublished = "\url{
+ https://en.wikipedia.org/w/index.php?title=Confluent&oldid=1361669280
+ }",
+ note = "This BibTeX citation comes from: \url{
+ https://en.wikipedia.org/w/index.php?title=Special:CiteThisPage&page=Confluent&id=1361669280&wpFormIdentifier=titleform#BibTeX_entry
+ }",
+}
+
+@misc{Wikipedia:article/Redis,
+ author = "{Wikipedia contributors}",
+ title = "Redis --- {Wikipedia}{,} The Free Encyclopedia",
+ year = "2026",
+ howpublished = "\url{
+ https://en.wikipedia.org/w/index.php?title=Redis&oldid=1351092330
+ }",
+ note = "This BibTeX citation comes from \url{
+ https://en.wikipedia.org/w/index.php?title=Special:CiteThisPage&page=Redis&id=1351092330&wpFormIdentifier=titleform#BibTeX_entry
+ }",
+}
+@misc{Wikipedia:article/Postgresql,
+ author = "{Wikipedia contributors}",
+ title = "PostgreSQL --- {Wikipedia}{,} The Free Encyclopedia",
+ year = "2026",
+ howpublished = "\url{
+ https://en.wikipedia.org/w/index.php?title=PostgreSQL&oldid=1357817665
+ }",
+ note = "This BibTeX citation comes from \url{
+ https://en.wikipedia.org/w/index.php?title=Special:CiteThisPage&page=PostgreSQL&id=1357817665&wpFormIdentifier=titleform#BibTeX_entry
+ }",
+}
+
+@misc{GitHub:software/OpenDC,
+ author = {Mastenbroek, Fabian and Andreadis, Georgios and Jounaid,
+ Soufiane and Lai, Wenchen and Burley, Jacob and Bosch, Jaro and
+ van Eyk, Erwin and Versluis, Laurens and van Beek, Vincent and
+ Iosup, Alexandru},
+ title = {OpenDC},
+ note = "This BibTeX citation comes from \url{
+ https://github.com/atlarge-research/opendc}. It has been
+ converted from a \texttt{CITATION.cff} file using \texttt{
+ cffconvert} (see \url{ https://citation-file-format.github.io/})",
+}
+
+
+@inproceedings{DBLP:conf/wosp/NicolaeTKLI26,
+ author = {Radu Nicolae and Jules van der Toorn and Stavriana Kraniti and
+ Houcen Liu and Alexandru Iosup},
+ editor = {Roberto Verdecchia and Catia Trubiani and Radu Calinescu and
+ Ana Lucia Verbanescu},
+ title = {OpenDT: Exploring Datacenter Performance and Sustainability
+ with a Self-Calibrating Digital Twin},
+ booktitle = {Companion of the 17th {ACM/SPEC} International Conference
+ on Performance Engineering, {ICPE} Companion 2026, Florence,
+ Italy, May 4-8, 2026},
+ pages = {142--147},
+ publisher = {{ACM}},
+ year = {2026},
+ url = {https://doi.org/10.1145/3777911.3800634},
+ doi = {10.1145/3777911.3800634},
+ timestamp = {Wed, 03 Jun 2026 10:10:46 +0200},
+ biburl = {https://dblp.org/rec/conf/wosp/NicolaeTKLI26.bib},
+ bibsource = {dblp computer science bibliography, https://dblp.org},
+ note = {This BibTeX citation comes from \url{
+ https://dblp.org/rec/conf/wosp/NicolaeTKLI26.html?view=bibtex}},
+}
+
+@misc{Wikipedia:article/Graphite,
+ author = "{Wikipedia contributors}",
+ title = "Graphite (software) --- {Wikipedia}{,} The Free Encyclopedia",
+ year = "2026",
+ howpublished = "\url{
+ https://en.wikipedia.org/w/index.php?title=Graphite_(software)&oldid=1357227590
+ }",
+ note = "This BibTeX citation comes from \url{
+ https://en.wikipedia.org/w/index.php?title=Special:CiteThisPage&page=Graphite_%28software%29&id=1357227590&wpFormIdentifier=titleform
+ }",
+}
+
+@misc{Wikipedia:article/Kibana,
+ author = "{Wikipedia contributors}",
+ title = "Kibana --- {Wikipedia}{,} The Free Encyclopedia",
+ year = "2026",
+ howpublished = "\url{
+ https://en.wikipedia.org/w/index.php?title=Kibana&oldid=1342816695
+ }",
+ note = "This BibTeX citation comes from \url{
+ https://en.wikipedia.org/w/index.php?title=Special:CiteThisPage&page=Kibana&id=1342816695&wpFormIdentifier=titleform
+ }",
+}
+
+@misc{Wikipedia:article/Prometheus,
+ author = "{Wikipedia contributors}",
+ title = "Prometheus (software) --- {Wikipedia}{,} The Free Encyclopedia",
+ year = "2026",
+ howpublished = "\url{
+ https://en.wikipedia.org/w/index.php?title=Prometheus_(software)&oldid=1349456026
+ }",
+ note = "This BibTeX citation comes from \url{
+ https://en.wikipedia.org/w/index.php?title=Special:CiteThisPage&page=Prometheus_%28software%29&id=1349456026&wpFormIdentifier=titleform
+ }",
+}
+
+@misc{Wikipedia:article/ProtoBuf,
+ author = "{Wikipedia contributors}",
+ title = "Protocol Buffers --- {Wikipedia}{,} The Free Encyclopedia",
+ year = "2026",
+ howpublished = "\url{
+ https://en.wikipedia.org/w/index.php?title=Protocol_Buffers&oldid=1357670495
+ }",
+ note = "This BibTeX citation comes from \url{
+ https://en.wikipedia.org/w/index.php?title=Special:CiteThisPage&page=Protocol_Buffers&id=1357670495&wpFormIdentifier=titleform#BibTeX_entry
+ }",
+}
diff --git a/style/style.tex b/style/style.tex
index 8e92900..bfed674 100644
--- a/style/style.tex
+++ b/style/style.tex
@@ -27,4 +27,8 @@
\newcommand\myCircled[1]{\scalebox{0.75}{\Circled[fill color=black,inner color=white]{{\sffamily#1}}}}
+\newcommand{\code}[1]{\texttt{#1}}
+
\newcommand{\BibTeX}{\textsc{B\kern-0.1emi\kern-0.017emb}\kern-0.15em\TeX\xspace}
+
+