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.

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.