previous next Up Title Contents Index

5.3.3 ArcView-Datenreferenzen

Datenreferenzen stellen im Mobile-System die Möglichkeit dar, Daten nicht direkt von einem Baustein zum anderen zu reichen, sondern als Referenz auf diese Daten. So kann der Austausch rascher erfolgen. Der Vorteil ist für die Performanz dann bedeutsam, wenn die Daten durch einen Baustein nur durchgereicht werden oder nur in Abhängigkeit bestimmter Zustände verfügbar sein müssen. Eine zweite Möglichkeit ist die Referenzierung von Daten, die außerhalb der Datenbank des Mobile-Kernsystems liegen.
Das hier vorgestellte Konzept dient der zweiten Möglichkeit: Daten, die im GIS ArcView vorliegen, werden unter Kontrolle des Mobile-Kernsystems verwendet, was einen Schritt in die Richtung auf eine Kopplung mit gemeinsamer Datenbasis bedeutet (vgl. Kopplung, S.26).
Neben den vom Mobile-Kernsystem verwalteten Datenreferenzen gibt es die dritte Variante, die Referenzierung in die Verantwortung der BausteinprogrammiererIn zu stellen und die Konsistenzsicherung in den einzelnen Bausteinen durchzuführen. Sie ist bei konstanten Referenzierungen vorzuziehen. Konstant referenzierte ArcView-Projekte sind mit dem Zugriffsattribut "nur lesen" zu versehen. Sollen Änderungen an den Daten vorgenommen werden, so ist mit einer Kopie zu arbeiten. Im vorgestellten Beispiel wird diese Variante verwendet.
Doch nun zurück zu ArcView-Datenreferenzen. Sie sind eine Spezialisierung von GIS-Datenreferenzen, welche sich wiederum von allgemeinen Datenreferenzen ableiten.
Der Hauptvorteil von ArcView-Datenreferenzen liegt in der verbesserten Performanz beim wiederholten Zugriff auf dasselbe referenzierte Datenobjekt. Wenn Datenobjekte aus dem Bestand des GIS zum Mobile-Kernsystem transferiert werden sollen, so sind sie dafür zu konvertieren. Dieser Vorgang ist bei großen Datenobjekten entsprechend zeitaufwendig. Deswegen verfügt ein Java-Objekt vom Typ ArcViewDataReference über ein Feld, in dem ein einmal konvertiertes Datenobjekt zwischengespeichert werden kann. Nach erfolgreicher Konvertierung zeigt eine Flagge an, daß sich ein als gültig anzunehmendes Datenobjekt im Zwischenspeicher befindet. Wird erneut auf das referenzierte Objekt zugegriffen, so wird die im Zwischenspeicher gehaltene Kopie ausgegeben. Kann die dadurch eventuell auftretende Inkonsistenz nicht hingenommen werden, so besteht daneben die Möglichkeit, die neueste Version des Datenobjekts unbedingt zu erhalten. Dies geht jedoch zu Lasten der Performanz.
Umgekehrt besteht die Möglichkeit, daß ein Datenobjekt im GIS abgelegt wird. Soll es danach im GIS verändert und garantiert dieser veränderte Wert zurückgegeben werden, so kann hier sinnvoll die Referenz ungültig gemacht werden, um beim nächsten Zugriff auf die Referenz keine veraltete Kopie, sondern die neueste Version zurückzugeben.

Abb. 24: ArcView-Datenreferenzen

Als eine Anwendung von ArcView-Datenreferenzen möchte ich noch kurz die Verwendung als Baustein-Parameter schildern.
Der Einsatz einer ArcView-Datenreferenz ist notwendig, da es im MOBILE-Konzept nicht vorgesehen ist, zur Instantiierungszeit der Bausteine die Java-Repräsentation eines MSL-Daten-Objekts, die in der ObjectBase vorliegt, an die Bausteine zu übergeben. Der Konstruktor der ArcView-Datenreferenz bekommt nur den Typ und eine referenzierende Zeichenfolge des referenzierten Datenobjekts übergeben. Erst im Baustein erfolgt der erste Zugriff auf das referenzierte Objekt. Wird nun dasselbe Datenobjekt zum Beispiel mehrfach innerhalb eines Experiments verwendet, so tritt der oben erwähnte Performanzgewinn ein.
Eine mögliche Realisierung von ArcView-Datenreferenzen ist im gleichnamigen Abschnitt beschrieben.


previous next Up Title Contents Index