Proxy [ Übersicht ] [ Beispiel ] [ Quellen ] [ Home Entwurfsmuster ]


Übersicht

Ein Proxy dient dem Zweck, den Zugriff auf ein Objekt mit Hilfe eines vorgelagerten Stellvertreterobjekts zu kontrollieren. Auch als Surrogate bezeichnet, stellt ein Proxy einen Platzhalter für ein anderes Objekt dar. Es gibt verschiedene Motivationen:


  • Remote Proxy:
    stellt einen lokalen Stellvertreter für ein Objekt in einem anderen Adreßraum dar

  • virtuelles Proxy:
    erzeugt teure (speicher- oder zeitintensive) Objekte erst bei wirklicher Benutzung

  • Schutzproxy:
    wird verwendet, um verschiedenen Objekten unterschiedliche Zugriffsrechte auf ein Objekt zu gewähren

  • Smart-Reference:
    ist ein Ersatz für einen einfachen Zeiger, der zusätzliche Aktionen wie Referenzzählung, Persistenzsicherung und Locking ausführt

  • Cache Proxy:
    häufig angeforderte Objekte, die sich selten ändern, werden zwischengespeichert, um die Ergebnisse der Anforderungen sofort und kostengünstig liefern zu können

Gerade der letztgenannte Cache Proxy wird fast immer verwendet, wenn im Internet gesurft wird. Dies kann entweder direkt im Browser eingestellt werden, oder passiert ohne Wissen oder Bemerken des Nutzers schon beim ISP. Vorrangiges Ziel ist es, statische Seiten, die häufig von Nutzern angefordert werden, direkt nach der Anforderung liefern zu können, ohne sie nochmal von der Zieladresse anfordern zu müssen. Beim ersten Aufruf einer solchen Seite kommt es zu leichten Verzögerungen, bedingt durch das Leiten einer Anfrage über den Cache Proxy. Wird die Seite danach wieder aufgerufen, so wird sie nicht mehr an der Zieladresse angefordert, sondern gleich aus dem Cache an den Client (Browser) geliefert. Etwas schwierig ist hier natürlich, wie der Cache Proxy entscheiden soll, über welchen Zeitraum eine Seite gültig bleiben soll, d.h. unverändert bleibt. Auch soll hier nicht verschwiegen werden, dass gerade ein Cache Proxy ein einfaches Mittel ist, um Nutzer und ihre Surfgewohnheiten zu überwachen und aufzuzeichnen.

Die allgemeine Struktur eines Proxymusters besteht aus 4 Bestandteilen. Der Klient stellt den anfragenden Teil dar, der die Schnittstelle des Subjektes anwendet. Subjekt selbst stellt die Schnittstelle bereit, die sowohl der Proxy, als auch das echte Subjekt verwenden. Der Proxy ist nun die Zwischenstation, über den die Anfragen an das echte Subjekt gesendet werden. Er ruft stellvertretend die Operation des echten Subjektes auf.

 Abb. 1: Das Proxy Design Pattern



[ Übersicht ] [ Beispiel ] [ Quellen ] [ Home Entwurfsmuster ]
Stand: 31.03.2005