
\chapter{Konzept}
\label{ch:concept}

\section{Aufbau der Umfrage}
\label{sec:concept:poll}

% erste Frage sollte unterscheiden ob Bearbeiter oder Benutzer ist
% an welchen Aktion kommt es zu längeren Wartezeiten
% wie häufig sind die langen Wartezeiten
% treten sie sporadisch oder immer mit gleichen Muster (z.B. immer Nachmittags, immer bei der gleichen Abfolge an Aktionen) auf

Die Umfrage wird über Email an die XX Personen verschickt. Als Basis für die Umfrage wird der aktuelle Prototyp
unter \href{https://briefedition.wedekind.h-da.de} verwendet. Hierbei wird die gleiche Umfrage für Bearbeiter
und Benutzer versendet.

Die erste Frage ist zur Unterscheidung ob die Antworten von einen Bearbeiter oder von einem Benutzer kommt. Dies ist
nur notwendig, um bei der Nachstellung zu unterscheiden welche Zugriffsrechte aktiv sind.

Die weiteren Fragen sind aufeinander aufgebaut. Hierbei wird zuerst überprüft, bei welchen Aktionen eine längere
Wartezeit auftritt. Zusätzlich soll noch dazu angegeben werden, wie häufig dies auftritt, also ob dies regelmässig
auftritt oder immer nur zu bestimmten Zeitpunkten. Des Weiteren wird die Information nachgefragt, ob die Probleme
immer bei der gleichen Abfolge von Aktionen auftritt.

Die Anfrage wird im Anhang \ref{ch:Umfrage} dargestellt.

\section{Allgemeine Betrachtung des Systems}
\label{sec:concept:viewsystem}

% Untersuchung des Servers
Für die Untersuchung des Systems wird der direkte Zugang zum Server benötigt. Hierbei werden zuerst die im Kapitel
\ref{sec:basics:services} beschriebenen Einstellungen überprüft.

Zuerst wird am PostgreSQL-Server die Konfiguration der Speicher mit der Vorgabe für Produktivsystem abgeglichen.
Hierunter fallen die Einstellungen für die \textit{shared\_buffers}, der bei einem Arbeitsspeicher von mehr als 1 GB
ca. 25\% des Arbeitsspeicher definiert sein soll \cite{PostgresC20.4:2024}.

\mytodos{die anderen Speicher abarbeiten?}

Dann wird mit dem Systemtools, wie den Konsolenanwendungen \textit{htop} und \textit{free}, die Auslastung des Servers 
überprüft. Hierbei ist die CPU-Leistung, der aktuell genutzte Arbeitsspeicher, sowie die Zugriffe auf die Festplatte
die wichtigen Faktoren zur Bewertung.

Die CPU-Leistung sollte im Schnitt nicht die 70\% überschreiten, für kurze Spitzen wäre dies zulässig. Da sonst der
Server an seiner Leistungsgrenze arbeitet und dadurch es nicht mehr schafft die gestellten Anfragen schnell genug
abzuarbeiten.

Da unter Linux der Arbeitsspeicher nicht mehr direkt freigegeben wird, ist hier die Page-Datei der wichtigere Indikator.
Wenn dieses in Verwendung ist, dann benötigt die aktuell laufenden Programme mehr Arbeitsspeicher als vorhanden, wodurch
der aktuell nicht verwendete in die Page-Datei ausgelagert wird. Hierdurch erhöhen sich die Zugriffszeiten auf diese
Elemente drastisch.

Die Zugriffsgeschwindigkeit, die Zugriffszeit sowie die Warteschlange an der Festplatte zeigt deren Belastungsgrenze auf.
Hierbei kann es mehrere Faktoren geben. Zum einem führt das Paging des Arbeitsspeicher zu erhöhten Zugriffen. Ein zu 
klein gewählter Cache oder gar zu wenig Arbeitsspeicher erhöhen die Zugriffe auf die Festplatte, da weniger
zwischengespeichert werden kann und daher diese Daten immer wieder direkt von der Festplatte geladen werden müssen.

\mytodos{Bespreibung der untersuchung von Glassfisch? ode lieber später}

\section{Das Vorgehen der Optimierung}
\label{sec:concept:optimizing}

\mytodos{Bespreibung der untersuchung von Glassfisch? ode lieber später}

% Anhand der Umfragen werden die verschiedenen Seiten ermittelt und mit den Tools überprüft
% Während dessen kann über ein Script die Seite automatisiert abgefragt und das Trace aktiv sind
% je nach erkentnis mss dann der Lösungsweg beschritten werden
% Beachten des Speicherverbrauchs!

\section{Aktueller Aufbau der Software}
\label{sec:concept:softwarestructure}

% Hier vielleicht nochmal ein Verweis auf die Grundlagen, oder direkt auf die MVC-Technik

\section{Vergleich mit anderen Technologien}
\label{sec:concept:technologiecompare}

% Vergleich mit AspNetCore und vielleicht VueJS oder Konsorten, wobei hier der Serverteil fehlt
