diff options
| -rw-r--r-- | appendix/glossary.tex | 1 | ||||
| -rw-r--r-- | content/implementation.tex | 14 | ||||
| -rw-r--r-- | sources/listing_schema.tex | 2 |
3 files changed, 15 insertions, 2 deletions
diff --git a/appendix/glossary.tex b/appendix/glossary.tex index d7d5889..b47bcb7 100644 --- a/appendix/glossary.tex +++ b/appendix/glossary.tex @@ -17,3 +17,4 @@ \newacronym{nasem}{NASEM}{National Academy of Sciences, Engineering, and Medicine} \newacronym{cfd}{CFD}{Computational Fluid Dynamics} \newacronym{ui}{UI}{User Interface} +\newacronym{http}{HTTP}{Hyper-text Transfer Protocol} diff --git a/content/implementation.tex b/content/implementation.tex index 2395963..0decbc3 100644 --- a/content/implementation.tex +++ b/content/implementation.tex @@ -125,7 +125,7 @@ In order to turn it into a \gls{dt}, we have made several design decisions and e The \code{KafkaMonitor} class implements the generic \code{ComputeMonitor} interface, therefore the new extension follows the other metric exporting options in \code{OpenDC} (\ie follows the implementation for exporting metrics into \code{.parquet files}). \item \textbf{\code{HTTPClient}}\\ The \code{HTTPClient} offers the necessary functionality to communicate between the \gls{dt} and the datacenter. - We decided to use the HTTP protocol for short, one-off communications between the \gls{dt} and the datacenter, as is common industry practice. + We decided to use the \gls{http} protocol for short, one-off communications between the \gls{dt} and the datacenter, as is common industry practice. \end{enumerate} \section{Python Modules}\label{ss:programming} @@ -137,7 +137,19 @@ For future work, we envision a system that implements the reference architecture \begin{enumerate}[label=\textbf{\arabic*.}] \item \textbf{\code{AnalyticsEngine}}\\ + The \code{AnalyticsEngine} module is necessary in order to encapsulate the logic of data preprocessing and analysis from monitoring. + This component can contain capabilities for different statistical metrics, subject to \gls{dt}s focus. + In \gls{my_system} \code{AnalyticsEngine} continuously checks whether the incoming datacenter sensor readings exceed different thresholds. + For example, the \code{AnalyticsEngine} is capable of calculating a similarity score $S$ between potential failure distributions and the true failure distribution. \item \textbf{\code{HTTPServer}}\\ + The \code{HTTPServer} is crucial for interrupting the operation of the datacenter in order to adjust its operation or offer insights. + It maintains a python \code{Queue} structure. + The \code{Queue} \emph{producer} is the \code{AnalyticsEngine} (\grayCircled{4}). + The \emph{consumer} is the \code{HTTPClient} within \code{OpenDC} (\ie the real datacenter, (\myCircled{2}), (\myCircled{1})). + Both the consumer and producer interact with the \code{Queue} via the network and different HTTP endpoints of \code{HTTPServer}. \item \textbf{\code{MonitoringService}}\\ + The \code{MonitoringService} is responsible for interacting with the \code{Redis} key value store. + It contains a \code{while True} Python loop which contains the function call to fetch the latest changes to the \code{Redis} stream. + Upon update, the \code{MonitoringService} informs the \code{AnalyticsEngine} that new data is awaiting \code{AnalyticsEngine} (\grayCircled{6}). \end{enumerate} diff --git a/sources/listing_schema.tex b/sources/listing_schema.tex index ef380e8..f702784 100644 --- a/sources/listing_schema.tex +++ b/sources/listing_schema.tex @@ -1,4 +1,4 @@ -\begin{lstlisting}[caption=The Redis and PostgreSQL schema (\texttt{schema.proto} file). All the large volume data packets that travel within the system follow this format (\ie \myCircled{1} through \myCircled{6}). The communication of small datapackets takes place using the HTTP protocol., label={lst:protobuf-schema}] +\begin{lstlisting}[caption=The Redis and PostgreSQL schema (\texttt{schema.proto} file). All the large volume data packets that travel within the system follow this format (\ie \myCircled{1} through \myCircled{6}). The communication of small datapackets takes place using the \gls{http} protocol., label={lst:protobuf-schema}] syntax = "proto3"; package proto; |
