vzor Proxy

Napsal Mgr.Radovan Kaluža (») 23. 4. 2006 v kategorii IT, internet, přečteno: 1607×
Tento vzor zprostředkuje to, že klient nekomunikuje přímo danou komponentou, ale s jejím zástupcem (reprezentantem). Vytvořením takového zástupce může sloužit mnoha účelům včetně rozšíření efektivnosti, snadnějšímu přístupu a ochraně před neautorizovaným přístupem.

Klasickým příkladem je použití tohoto vzoru v remote technologiích na síti. Úkolem je vytvořit technologii přístupu ke vzdálenému objektu na jiném stroji. komponenta klient se nachází na jednom stroji a vzdálená komponenta (server) na jiném stroji. Vyžaduje se, aby klient pracoval s touto komponentou stejně, jako by byla u něj na stejném stroji (volá stejným způsobem její operace).

Jako řešení se použije komponenta proxy, která poskytuje na vně stejné rozhraní, jako původní komponenta. Komponenta proxy zabezpečuje technologii propojení mezi stroji.

Kontext
Klient potřebuje přístup ke službám jiné komponenty. Přímý přístup je technicky možný, ale
nemusí být nejlepším řešením.

Problém

  • Přístup ke komponentě by měl být efektivní (za běhu programu), finančně méně náročný a bezpečný jak pro klienta, tak pro komponentu.
  • Přístup by měl být pro klienta transparentní a jednoduchý.

Řešení
Klient bude komunikovat se zástupcem (nazývaným proxy) místo s danou komponentou. Proxy kromě poskytnutí stejného rozhraní, poskytuje ještě další operace tzv. pre a post processing jako např. kontrolu přístupu, vytváření pouze read-only kopií původní komponenty atd.

Struktura
Klient, který potřebuje některé funkce originální komponenty svoji žádost směřuje na proxy (nepřímou cestou). Klient nemění své chování ani syntaxi požadavků. Proxy poskytuje stejné rozhraní jako originální komponenta. Z důvodů realizovatelnosti, proxy udržuje referenci na původní (originální) komponentu, kterou zastupuje. Obyčejně mezi proxy a originální komponentou existuje asociace jedna k jedné.

/obrazky/radovan.bloger.cz/proxy2.gif
Na obrázku je struktura vzoru proxy uvedena pomocí diagramu tříd.

/obrazky/radovan.bloger.cz/proxy1.gif
Na obrázku je uvedena vzor proxy s využitím sekvenčního diagramu UML.

Druhy proxy

Remote proxy Klienti vzdálených komponent by měly být ochráněni od síťových adres a mezi procesových komunikačních protokolů.

Protection proxy. Komponenty musí být chráněny od neautorizovaného přístupu.

Cache proxy. Vícenásobní lokální klienti mohou sdílet výsledky ze vzdálených komponent.

Synchronization proxy. Vícenásobné současné přístupy ke komponentě musí být synchronizovány.

Counting proxy. Používá se pro vedení statistik přístupu, nebo pro odstranění nepoužívaných komponent.

Virtual proxy. Je známé též pod označením lazy construction. Používá se zejména tehdy, je-li komponenta uložena na pevném disku. Zpracování, nebo nahrávání celé komponenty (z pevného disku) může být nákladné, zatímco částečné informace o komponentě mohou být dostatečné.

Firewall proxy. Lokální klienti jsou chráněni od vnějšího světa.

Z důvodů efektivnosti rozlišujeme tři případy vzdáleného proxy:

  • Klient a originál žijí ve stejném procesu.
  • Klient a originál žijí v odlišných procesech stejného počítače.
  • Klient a originál žijí v různých procesech, které běží na různých počítačích.

V prvním případě nepotřebujeme proxy. Ve druhém a třetím případě většinou dáváme položky pro vzdálené adresy do proxy. Obyčejně se skládají z ID počítače, portu nebo čísla procesu a ID objektu.

Facebook Twitter Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
www.iphonetapety.info iphone wallpapers www.iphone z IP 193.179.30.*** | 9.2.2009 16:46
www.iphonetapety.info iphone wallpapers www.iphonetapety.info iphone tapety www.iphonetapety.info iphone pozadi
www.iphonetapety.info free iphone 3g wallpapers
www.iphonetapety.infowww.iphonetapety.info iphone wallpapers www.iphonetapety.info iphone tapety www.iphonetapety.info iphone pozadi
www.iphonetapety.info free iphone 3g wallpapers
www.iphonetapety.infowww.iphonetapety.info iphone wallpapers www.iphonetapety.info iphone tapety www.iphonetapety.info iphone pozadi
www.iphonetapety.info free iphone 3g wallpapers
www.iphonetapety.infowww.iphonetapety.info iphone wallpapers www.iphonetapety.info iphone tapety www.iphonetapety.info iphone pozadi
www.iphonetapety.info free iphone 3g wallpapers
www.iphonetapety.infowww.iphonetapety.info iphone wallpapers www.iphonetapety.info iphone tapety www.iphonetapety.info iphone pozadi
www.iphonetapety.info free iphone 3g wallpapers
www.iphonetapety.info


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
[*1*] [*2*] [*3*] [*4*] [*5*] [*6*] [*7*] [*8*] [*9*] [*10*] [*11*] [*12*] [*13*] [*14*] [*15*] [*16*] [*17*] [*18*] [*19*] [*20*] [*21*] [*22*] [*23*] [*24*] [*25*] [*26*] [*27*] [*28*] [*29*] [*30*] [*31*] [*32*] [*33*] [*34*] [*35*] [*36*] [*37*] [*38*] [*39*] [*40*] [*41*] [*42*] [*43*] [*44*] [*45*] [*46*] [*47*] [*48*] [*49*] [*50*]   [b] [obr]
Odpovězte prosím číslicemi: Součet čísel tři a třináct