@@ -19,15 +19,15 @@ Durch die Auswahl eines Data Objektes im Geoviewer können Metadaten zu diesem O
Diese Daten werden über die Metadaten Anzeige im Webbrowser dargestellt.
Der Stereo Bildauswerter ist ebenfalls an das Backend angeschlossen.
Bisher wird dies Verbindung beim laden eines Bildes genutzt.
Der SBA sendet falls das Bild goereferenziert ist die Koordinaten an den Geoviewer der dann zur Umgebung des Bildes zoomt.
Der SBA sendet falls das Bild georeferenziert ist die Koordinaten an den Geoviewer der dann zur Umgebung des Bildes zoomt.
Der CSDAdapter implementiert eine Verbindung zur CSD.
Mit Hilfe der isaac.lib (Siehe \cite[Clients für Datenzugriff]{CSD}) wird auf den Server zugegriffen und Datenobjekte für das Backend erstellt.
Der Geoviewer beschränkt sich beim Laden aus der CSD auf einige wichtige Datentypen, insbesondere Bilder Videos und Berichte die sofern sie georeferenziert sind an der richtigen Stelle auf die Karte angezeigt werden.
Der Geoviewer beschränkt sich beim Laden aus der CSD auf einige wichtige Datentypen, insbesondere Bilder Videos und Berichte, die sofern sie georeferenziert sind, an der richtigen Stelle auf die Karte angezeigt werden.
Die Bilder aus der CSD werden heruntergeladen und wenn möglich als zusätzliches Kartenmaterial in den Geoserver integriert.
Damit eignen sich diese Datenobjekte nicht zum Laden und verarbeiten im Stereo Bildauswerter.
\caption{Die Struktur der Komponenten des Bildauswerteplatzes. Die Kommunikation zwischen den Komponenten erfolgt hauptsächlich über den Java Message Service (JMS) }
...
...
@@ -69,7 +69,7 @@ Das ist z.B. für die URLs der CSD-Server sinnvoll.
In den Abbildungen \ref{figure:strukturViewer} und \ref{figure:strukturSBA} ist diese Oberfläche als RequestUI in grün eingezeichnet.
Das laden des Presets erfolgt auf dem SBA direkt und beim Geoviewer wird dieses vom CSDADapter geladen.
\caption{Die Nutzeroberfläche zum Eingeben der Metadaten. Links die Informationen zum Erzeugen eines NSIF Bildes und rechts die Informationen für die CSD}
Die Request UI des CSDPlugin soll wiederverwendbar werden.
Hierfür wurde eine Schnittstelle gemeinsame Schnittstelle angelegt (siehe Abbildung \ref{figure:klassenRequest}).
Die Request UI des CSDPlugin soll wiederverwendbar werden.% Müsste es nicht das UI statt die UI heißen?
Hierfür wurde eine Schnittstelle gemeinsame Schnittstelle angelegt (siehe Abbildung \ref{figure:klassenRequest}). % ...eine Schnittstelle gemeinsame Schnittstelle... --> Was soll das?
Diese 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 CSD-Adapter gesendet.
...
...
@@ -14,14 +14,14 @@ Im SBA wird das Interface der CSDRequestAction implementiert.
Der Aufruf der Region wird falls möglich an das CSD-Plugin weitergeleitet.
Die Middleware verfügt neben Nachrichten und Anfragen an das Backend über DirectRequests zwischen den an die Middleware angeschlossenen Komponenten.
Jede verbundene Komponente verfügt über eine eindeutige ID.
Durch diese ID erfolgt die Zuordnung des DirectRequests die am Empfänger verarbeitet und mit einer DirectResponse beantwortet wird.
Der SBA nutzt diese DirectRequests um eine Region auf dem Geoviewer auswählen zu lassen.
Das Problem hierbei ist, dass der Nutzer beliebig lange zum einzeichnen brauchen kann und die Antwort eines DirectRequest innerhalb des Timeouts erfolgen muss.
Durch diese ID erfolgt die Zuordnung des DirectRequests zum jeweiligen Empfänger und den dieser mit einer DirectResponse beantwortet. % Stimmt der Satz noch nach Korrektur?
Der SBA nutzt diese DirectRequests, um eine Region auf dem Geoviewer auswählen zu lassen.
Das Problem hierbei ist, dass der Nutzer beliebig lange zum Einzeichnen brauchen kann und die Antwort eines DirectRequest innerhalb des Timeouts erfolgen muss.
Deshalb antwortet der Geoviewer sofort auf den Request und lässt den Nutzer Einzeichnungen vornehmen.
Ist die Regionsauswahl abgeschlossen sendet der Geoviewer einen DirectRequest an den SBA um das Ergebnis der Auswahl zu übermitteln.
Ist die Regionsauswahl abgeschlossen, sendet der Geoviewer einen DirectRequest an den SBA, um das Ergebnis der Auswahl zu übermitteln.
Im Sequenzdiagramm \ref{figure:klassenRequest} sind beide Abläufe dargestellt.
\caption{Das Erstellen eines CSD Tasks als Sequenz Diagramm.
Links der Ablauf im CSDPlugin des Geoviewer, Rechts im SBA.
Der Alt Block steht nur zur Verfügung wenn der SBA mit dem Geoviewer verbunden ist. }
% Was ist ein Alt Block?
\label{figure:sequenzRequest}
\end{figure}
...
...
@@ -63,7 +64,7 @@ Die Ergebnisse der Abfrage werden alle an den übergebenden Result Handler weite
Um in Demonstrationen beim Kunden Fehler zu vermeiden, wurde die Möglichkeit eines lokalen Request aus dem CSD-Adapter übernommen.
Dieser lokale Request lässt sich im Konfigurationsdatei aktivieren und führt dazu, dass die Ergebnisse aus einer Datei geladen und direkt an den ResultHandler übergeben werden.
\caption{Vererbungs-Hierachie des CSDTasks. Die Ausführung des Task wird in der Superklasse gestartet.
...
...
@@ -89,7 +90,7 @@ Der Nutzer kann diese XML Dokument manuell einsehen und sich nötige Daten selbe
Ist ein Ergebnis verarbeitet, wird im zugehörigen Task die Methode resultFinished aufgerufen.
So kann der Task, nachdem alle Ergebnis ausgewertet sind, die Methode afterTask aufrufen, um einen eventuelle Nachbearbeitung durchzuführen (Abbildung \ref{figure:klassenTask}).
In diesem Kapitel befassen wir uns mit der Qualität und der Absturzsicherheit der implementierten Features.
\section{Find Bugs}
Um in der Benutzung keine Programmabstürze durch Programmierfehler zu erhalten wurde der Code mit Findbugs überprüft. Alle Fehlerquellen die Findbugs untersucht sind in dem Code beseitigt worden. Lediglich die Fehler in der JHotDraw GUI Bibliothek, auf dem der SBA aufbaut, wurden nicht behoben.
Das Parsen der XML Dokumente im ResultHandler ist hier insbesondere überprüft worden. Viele Felder sind optional und werden im CSDAdapter und im SBA ausgelesen. Es muss also immer darauf geachtet werden ob die Informationen vorhanden sind und auch verwendet werden können.
Bei der Nutzereingabe zum Schreiben in die CSD wird direkt bei der Eingabe die Richtigkeit und Notwendigkeit der einzelnen Felder überprüft. Übergibt man ein unvollständiges XML Dokument an die Isaac.lib so wirft diese Fehler. Um das zu vermeiden kann der Nutzer die Anfrage nicht absenden bevor alle Eingaben korrekt erfolgt sind.
Um in der Benutzung keine Programmabstürze durch Programmierfehler zu erhalten wurde der Code mit Findbugs überprüft. % Kurze Erklärung, was Findbugs ist, welche Fehler es finden kann und am besten eine Quellenangabe für das Literaturverzeichnis
Alle Fehlerquellen die Findbugs untersucht, sind in dem Code beseitigt worden.
Lediglich die Fehler in der JHotDraw GUI Bibliothek, auf dem der SBA aufbaut, wurden nicht behoben. % Du solltest erklären warum dieses nicht gemacht wurde.
Das Parsen der XML Dokumente im ResultHandler ist hier insbesondere überprüft worden. %``Hier'' im JHotDraw GUI oder wo?
Viele Felder sind optional und werden im CSDAdapter und im SBA ausgelesen.
Es muss also immer darauf geachtet werden, ob die Informationen vorhanden sind und auch verwendet werden können.
Bei der Nutzereingabe zum Schreiben in die CSD wird die Richtigkeit und Notwendigkeit der einzelnen Felder direkt bei der Eingabe überprüft.
Übergibt man ein unvollständiges XML Dokument an die Isaac.lib, so wirft diese Fehler.
Um das zu vermeiden, kann der Nutzer die Anfrage nicht absenden, bevor alle Eingaben korrekt erfolgt sind.
\section{Testing}
Die Testcases das CSDAdapters sind erhalten geblieben. Für den SBA wurden keine Testcases erstellt. Das Parsen des XML Dokuments unterscheidet sich unwesentlich von dem CSDAdapter und ist hauptsächlich im allgemeine ResultHandler der CSDCommons Bibliothek enthalten. Dieser Test ist also durch den CSDAdapter abgedeckt.
Die Testcases das CSDAdapters sind erhalten geblieben. % Es waren also schon vorher welche vorhanden. Mussten dies angepasst werden, damit man sie weiternutzen kann? Wieviele Testcases sind im Testset?
Das Parsen des XML Dokuments im SBA und im CSDAdapter unterscheidet sich nur unwesentlich % stimmt es noch nach meiner Änderung?
und ist hauptsächlich im allgemeinen ResultHandler der CSDCommons Bibliothek enthalten.
Dieser Test ist also durch den Test des CSDAdapters abgedeckt. Deshalb wurden für den SBA keine eigenen Testcases erstellt.