Java Reference
In-Depth Information
Daher gibt es das Proxy-Muster in mehreren Ausführungen, wobei jede Ausführung
zwar eine ähnliche Vorgehensweise hat, aber stets andersartige Probleme behandelt.
Man kann in einem Proxy Funktionen implementieren, die über die Funktionen des
echten Objekts hinausgehen. Wesentlich sind die folgenden Varianten:
x Virtueller Proxy
Der virtuelle Proxy bietet eine Möglichkeit, Ladezeiten von Programmen auf einen
größeren Zeitraum zu verteilen. Anwendungen sind beim Start häufig recheninten-
siv, da alle Objekte der Anwendung instanziiert und initialisiert werden. Beim Virtuel-
len Proxy werden an Stelle der rechenintensiven echten Objekte Stellvertreter-Ob-
jekte instanziiert, die stellvertretend für die eigentlichen Objekte verwendet werden.
Der virtuelle Proxy schiebt meist die Erzeugung des echten Objekts so lange hin-
aus, bis dieses gebraucht wird. Beim Aufruf einer Methode, für die das echte Objekt
benötigt wird, wird das eigentliche Objekt zur Laufzeit instanziiert. Bei einem inter-
aktiven System könnte der Proxy zum Beispiel eine "Bitte Warten"-Meldung ausge-
ben, um die rechenintensive Erzeugung des echten Objekts zu überbrücken. Wenn
das echte Objekt dann erzeugt ist, kann der Proxy den Aufruf an dieses weiterleiten
und den Wartezustand beenden.
x Schutz-Proxy
Mit dem Schutz-Proxy können Zugriffe auf die Objekte einer Anwendung überwacht
werden. Der Schutz-Proxy überprüft beim Methodenaufruf, ob das aufrufende
Client-Programm tatsächlich über die notwendige Zugriffsberechtigung verfügt. Auf
diese Weise kann eine Rechteverwaltung nachträglich in ein bestehendes System
eingeführt werden.
x Synchronisierungs-Proxy
Bei Anwendungsfällen, in denen mehrere Client-Programme auf ein gemeinsames
Objekt zugreifen, können Methodenaufrufe über ein zwischengeschaltetes Stell-
vertreter-Objekt synchronisiert werden. Der Proxy nimmt alle Methodenaufrufe an
das gemeinsame Objekt entgegen. Die Methodenaufrufe, die synchronisiert werden
müssen, ordnet er in einer Queue an und arbeitet sie nacheinander ab. Andere Me-
thodenaufrufe können direkt weitergeleitet werden.
x Remote-Proxy
Ein Remote-Proxy befindet sich lokal auf dem gleichen Rechner wie das Client-Pro-
gramm und steht diesem als Stellvertreter der eigentlichen Komponente zur Verfü-
gung, die auf einem entfernten (remote) Rechner läuft. Das Client-Programm kennt
nur das Stellvertreter-Objekt und nicht die eigentliche Komponente (Transparenz).
Das Client-Programm weiß nicht, wie Methodenaufrufe an das Stellvertreter-Objekt
in der Folge weiterverarbeitet werden. Mit diesem Proxy können Anwendungen ge-
kapselt, ausgetauscht und auf weitere Rechner ausgelagert werden, ohne, dass das
Client-Programm verändert werden muss.
x Firewall-Proxy
Der Firewall-Proxy stellt eine zentrale Anlaufstelle auf einem Rechner für die Kom-
munikation zu mehreren Sub-Netzwerken dar. Ein klassisches Beispiel sind Unter-
nehmensnetzwerke, bei denen die Internetanbindung häufig über Firewall-Proxys
realisiert wird, um den Datenverkehr zu prüfen und ungewünschten Verkehr zu fil-
tern.
Search WWH ::




Custom Search