Commit d90af807 by Kai Westerkamp

Anfang Kapittel 3

parent 2e616a0b
......@@ -4,23 +4,42 @@
\section{Laden von Daten}
\subsection{CSD Task erstellen}
Um eine wiederverwendbare Oberfläche Einzubinden wird eine gemeinsame Schnittstelle angelegt (Siehe Bild \ref{figure:klassenRequest}). Die Schnittstelle dient zum einen zum Absenden des Tesk Requests und zur Auswahl einer Region.
Um eine wiederverwendbare Oberfläche Einzubinden wird eine Schnittstelle angelegt (Siehe Bild \ref{figure:klassenRequest}). Die Schnittstelle wird aufgerufen, sobald der Nutzer einen Task absendet und bei der Auswahl einer Region Das CSD Plugin des Geoviewers implementiert diese Schnittstelle. Region Anfragen werden direkt bearbeitet und der Task request wird an den CSDAdapter gesendet. Im SBA wird das Interface von der CSDRequestAction implementiert. Der Regionsaufruf wird falls möglich an das CSDPlugin über ein DirectRequest weitergeleitet. Die Antwort darauf erhält der SBA erneut über einen DirectRequest. Eine DirectMessage ist im System des Backends nicht vorhanden und wird deshalb an dieser Stelle über zu Request gelöst. Wir können nicht einen einzigen Request verwenden, da der Nutzer beliebig lange zum Einzeichnen brauchen kann. Nutzt man einen einzigen DirectRequest so müsste die Antwort der Plugins innerhalb des Timeouts von 5 Sekunden erfolgen.
\begin{figure}
\centering
\includegraphics[scale=0.7]{../UML/Klassen RequestDialogue.png}
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{../UML/Klassen RequestDialogue.png}
\caption{Das Generiern von Task hat eine gemeinsame Schnittstelle}
\label{figure:klassenRequest}
\end{figure}
\subsection{CSD Task}
\subsection{Task erstellen}
\subsubsection{Area Selection of SBA}
\subsection{Task asuführen}
\subsubsection{CSDAdapter}
\subsubsection{SBA}
\subsection{ResultHadling}
\subsection{Task ausführen}
Die Isaac.lib unterstützt 2 Arten von Anfragen an die CSD. Ein CSD Request ist eine einmalige Abfrage des Servers und übergibt alle Treffer an einen mit übergebenen ResultHandler und ist dann beendet. Eine Subskription liefert auch nach dem abfrage Zeitpunkt Ergebnisse. Wird zum Beispiel ein neuer Datensatz hinzugefügt der auf die Abfrage passt, so wird dieser auch an den ResultHandler übergeben. Beide Abfragen unterscheiden sich bei der Erstellung nur in der eigentlichen Abfrage. Deshalb wurde die Abstrakte Klasse CSDTask angelegt (siehe Abbildung \ref{figure:klassenTask}). Die Methode startRequest startet einen neuen Thread. Zuerst wird die abstrakte Methode beforeTask aufgerufen um Vorbereitungen zu treffen, zum Beispiel Ergebnisse von einem alten Task zu löschen. TODO local Request??.
Die Ausfürhung der CSD Abfrage erfolgt in 3 Schritten. Erst wird der CSD Querry String generiert. Anschließend folgt eine Abfrage über die Anzahl der erwarteten Ergebnisse. Die Methode isValidTaskSize überprüft nun ob der Task ausgeführt werden soll oder ob das Ergebnis zu lange brauchen würde. Die Standard Implementierung vergleicht die erwarteten Ergebnisse mit einem Wert aus der Konfigurationsdatei. Ist der Task nicht zu groß wird die Methode querryCSD aufgerufen.
Die Methode wir den beiden Klassen CSDRequst und CSDSubscription, die vom CSDTask erben, implementiert. In dieser Methode wird die Verbindung zur CSD aufgebaut und durchsucht. Die Ergebnisse der Abfrage werden alle an den übergeben Result Handler weitergeleitet.
\begin{figure}
\centering
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{../UML/Klassen CSDTask.png}
\caption{Vererbungs Hirachie des CSDTasks}
\label{figure:klassenTask}
\end{figure}
\subsection{ResultHandling}
\begin{figure}
\centering
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{../UML/Klassen ResultHandler.png}
\caption{Vererbungs Hirachie des CSDTasks}
\label{figure:klassenResult}
\end{figure}
\subsection{CSDAdapter}
\subsection{SBA}
\section{Daten auswerten}
Weglassen?
\section{Asugewertete Daten speichern}
\subsection{Export in RecceMan}
\subsection{Export in CSD}
......
No preview for this file type
No preview for this file type
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment