Bindung des Netscape Application Servers an CORBA 

Home > Deutsch > Ressourcen > NAS und CORBA > kapitel_07
(C) Christian R. Ey
last modified:
Sun Jan 20 20:40:21 GMT+01:00 2002
-- Impressum / Contact --

Zurück Weiter


Das Übertragen von Objektreferenzen

Ein oft genutzter Ansatz, Daten unter AppLogics auszutauschen, ist es, das Session- und State-Management des NAS zu nutzen. Für unseren Fall kommt nur ein Session Objekt in Frage, da ein sog. State Objekt für alle AppLogics gleich ist, wir jedoch verschiedene gleichzeitige Benutzer haben, die jeweils einen eigenen Zustand der Applikation benötigen.

Bei der Benutzung des zur Verfügung gestellten Session Objektes treten jedoch Probleme auf. Ein Session Objekt des NAS kann nur Objekte vom Typ GXVAL speichern. Ein GXVAL wiederum kann ausschließlich Integers, Strings und BLOBs (Binary Large OBjects) aufnehmen. Dies zwingt uns, die CORBA-Proxies zu Zeichenketten (Strings) zu verwandeln und die Zeichenketten in das Session Objekt zu speichern. Des weiteren muß es einem AppLogic möglich sein, die richtige Objektreferenz zu erhalten. Hierzu identifizieren wir jede Objektreferenz mit einem eindeutigen Identifizierer (unique ID ==> UID) und speichern ein Paar aus UID und Objektreferenz in dem Session Objekt. Dies tun wir auch, um unabhängig von der Applikation zu sein, da wir eine generische Lösung anbieten möchten.

Da die Objektreferenzen von einem AppLogic zum anderen weitergegeben werden müssen, geben wir die UID jeder benötigten Objektreferenz an die HTML-Seite weiter. Das nächste AppLogic kann nun mit Hilfe der UID und der Session ID die betreffenden Objektreferenzen aus der Session erhalten. Es stellt sich die Frage, warum wir nicht einfach die Objektreferenz an die HTML-Seiten weitergegeben haben. Zum Einen haben wir dir Möglichkeit, eine Objektreferenz aus der Session zu löschen, und somit einen Zugriff auf dieses Objekt zu verhindern. Wenn Die Objektreferenz in der HTML-Seite wäre (z.B. durch Drücken des "zurück"-Knopfes im Browser), könnte ein AppLogic nicht entscheiden, ob auf dieses Objekt vom Benutzer noch zugegriffen werden darf oder nicht - es würde in jedem Fall den Zugriff gestatten. Zum anderen kann durch das Schützen der Objektreferenz ein eventueller direkter Zugriff des Benutzers auf das Objekt, ohne Kontrolle durch die AppLogics, verhindert werden.

Um zu verhindern, daß ein Objekt benutzt wird, auf das der Benutzer keine Zugriffsrechte mehr hat, wird einfach das entsprechende UID/Objektreferenz Paar aus dem Session Objekt gelöscht und ein späterer Zugriff auf dieses dann nicht mehr vorhandene Paar mit einer Fehlermeldung beantwortet.

Um die UIDs unter den AppLogics auszutauschen, senden wir diese als HIDDEN VALUEs an die HTML-Seiten. Die HIDDEN VALUEs müssen in jeder FORM der HTML-Seite vorkommen, die ein weiteres AppLogic der Anwendung als FORM ACTION angegeben hat.


Zurück Weiter, Autor: Christian Ey, http://www.inweb.de/chetan