previous next Up Title Contents Index

5.4.7 Eine mögliche Realisierung von ArcView-Datenreferenzen

Abb. 24 (S. 84) illustriert eine mögliche Realisierung. Sie beruht darauf, daß genau ein referenziertes Datenobjekt sich in einem ArcView-Projekt befindet. Der Konstruktor erhält dessen Typ und Projektname. Die begriffliche Unschärfe in der Verwendung von Datenobjekt war beabsichtigt und soll jetzt erläutert werden: Während Java-seitig Java-Repräsentationen der MSL-Daten-Objekte verwendet werden, so müssen sie, um in ArcView gespeichert werden zu können, auf Avenue-Datenobjekte abgebildet werden. Wird ein ArcView-Projekt importiert, so ginge die Information, in welchem Projekt die enthaltenen Objekte waren, verloren. ObjektTags (vgl.[ESR95b], die Avenue-Hilfe zu diesem Begriff) stellen eine einfache Möglichkeit dar, sie als zu einem Projekt dazugehörig zu markieren, denn ObjectTags können jedes Avenue-Objekt enthalten.
Kleinere Avenue-Objekte wie etwa eine Polylinie besitzen jedoch keine ObjectTags. Zur Speicherung von MSL-Daten-Objekten in ArcView sind deshalb nur Avenue-Tables und Avenue-Views möglich, da neben bislang gar nicht zur Konvertierung vorgesehenen Avenue-Objekten wie Layouts und Script-Editoren nur sie in Avenue mit sogenannten Object-Tags versehen werden können. Da es in ArcView nur die Möglichkeit des Importierens von Projekten, nicht aber die des Exportierens gibt, muß diese Fähigkeit nachgebildet werden. Die zu diesem Zweck bereits programmierte Methode
Mobile.GIS.ArcView.Session.exportProject()
setzt die Verwendung von ObjectTags voraus.
In den Methoden getCachedValue() und getValue() wird die Konvertierung des referenzierten Datenobjekts bedingt bzw. unbedingt durch den Aufruf von
ParameterList parameterList = new ParameterList();
parameterList.add("projectName", projectName);
parameterList.add("Type", Type);
executeScript("MobileReferenceGetValue");[23]
ausgelöst. Das benannte Projekt wird im GIS ArcView importiert und der Typ wird verwendet, um das speziell für den Typ programmierte Avenue-Script MobileExtricate... auszuführen, etwa
MobileExtricateRoadNetwork
für ein MSL-Daten-Objekt vom Typ RoadNetwork[24]. In diesem werden dann die Komponenten in Form von Avenue-Tables, die zur Beschreibung für Mobile.MSL.RoadNetwork ausreichen, zunächst intriziert und dann zum MOBILE-Kernsystem transferiert.
Der Vorgang zum Ablegen von MSL-Daten-Objekten verläuft analog mit setValue().
Das RoadNetwork soll als Parameter an das Kurierdienstmodell übergeben werden (vgl.[Geh98]). Da im Mobile-System Parameter zur Instantiierungszeit aus der ObjectBase entnommen werden sollen und nicht erst berechnet werden dürfen (HILTY, persönliche Mittlg.), kann eine Übergabe als Parameter nur in Form einer ArcViewDataReference erfolgen. Wenn das Kurierdienstmodell ausgeführt wird, muß der Zugriff auf das referenzierte RoadNetwork mittels getCachedValue() erfolgen. Da die Konvertierung sehr zeitaufwendig ist, wird das einmal importierte Objekt in der ArcViewDataReference zwischengespeichert und nur bei expliziter Anforderung mit getValue() erneut konvertiert. Ansonsten gibt die ArcViewDataReference ab dem zweiten Aufruf von getCachedValue() eine Kopie Objekts, das beim ersten Aufruf erhalten wurde, zurück, auch wenn mittlerweile im GIS Veränderungen aufgetreten sind. (vgl. Konzept von ArcView-Datenreferenzen S. 83). Für das das Kurierdienstmodell ist es nicht erforderlich, getValue() einzusetzen, da das RoadNetwork als während der Simulationsdauer konstant vorausgesetzt wird. Andere Simulationsmodelle, wie etwa Verkehrmodelle, die zeitweilige Straßensperren aufgrund von Unfällen, temporären Baustellen oder Straßenneubauten berücksichtigen, sollten zur Konsistenzwahrung auf setValue() und getValue() zurückgreifen, sofern die Daten zwischenzeitlich oder nach dem Ende des Simulationsmodells im GIS benötigt werden, gegebenenfalls in Verbindung mit resetCache().


[23] ArcView.executeScript und Parameterlist.add befinden sich im package Mobile.GIS.ArcView
[24] Da die Datenstruktur noch nicht realisiert ist, könnten zur Zeit nur Avenue-Table und und Avenue-Views referenziert werden.


previous next Up Title Contents Index