COMPUTERWORLD
Specializovaný týdeník o výpočetní technice
o Internetu
(CW 43/96)

Proxy cache

Jiří T. Pelech

Problémy v pavučině

Celosvětová pavučina (World--Wide Web) se stala nejoblíbenější a nejsnadněji ovladatelnou službou Internetu. Každým dnem přibývají po celém světě tisíce nových stránek zapojených do WWW. V poslední době se tento zdařilý systém začíná prosazovat i ve vnitropodnikovém informačním systému -- Intranetu. Člověk brouzdající Pavučinou může narazit na dva základní problémy, které jsou s ní v současnosti spjaty. Tím prvním a významnějším je rozloha a topologie Internetu. Pokud si chceme prohlédnout nějakou stránku nebo zkopírovat nějaký soubor, může se nám za nepříznivých okolností stát, že budeme muset čekat několik minut (někdy i více než čtvrt hodiny). S druhým problémem se setkají pouze cestovatelé Internetem, kteří jsou připojeni do sítě ve své organizaci, oddělené od vnějšího světa jakýmsi zátarasem (tzv. požární zdí). Oba tyto problémy je možno poměrně jednoduše zmírnit.

Proxy

Proxy znamená v angličtině zmocněnec nebo zástupce. Prozatím jsem neslyšel, že by existoval oficiální český název, ale třeba časem někdo vymyslí něco vtipného, co se ujme.

Výraz se v sítích používá pro rozhraní, které vykonává určité akce v síti ve jménu někoho jiného. Využívá se zejména v Intranetu ve spojení s požární zdí (firewall), kdy umožňuje účastníkům vnitřní podnikové sítě využívat určitých služeb sítě vnější. Obecně vzato -- vy ze svého počítače máte přístup do Internetu, ale účastníci zapojení mimo váš podnik nemají přístup k vašemu počítači. Server typu proxy může být samozřejmě nastaven tak, že vám umožní přístup jen k některým službám vnější sítě nebo dokonce jen k určité části jedné služby. Tento server žádná přenášená data neuchovává, pouze si o nich může vést záznamy. Bez prostředníka v podobě serveru proxy se z uzavřené sítě nikam nedostanete.

Proxy cache

Cache znamená v angličtině skladiště nebo úkryt, takže proxy cache bychom mohli přeložit jako zmocněné skladiště nebo snad jednodušeji mezisklad. Ani zde však prozatím neexistuje český výraz.

Jak již název napovídá, pracuje proxy cache jako váš zástupce ve věci přenosu dat v Internetu. Jeho záběr však není tak široký jako u proxy, protože se zaměřuje pouze na "datově orientované" služby -- World Wide Web, Gopher a FTP-služby, které zvládají všechny známé prohlížeče WWW.

Jeho princip je poměrně jednoduchý - požádáte-li jej o obstarání nějakého souboru, pokusí se o to jak nejrychleji dovede. Nejdříve se podívá do seznamů objektů, které má právě v operační paměti. Když tam vámi požadovaný objekt nenalezne, poohlédne se po svém diskovém prostoru. Pokud ani tam neuspěje, buď o tento soubor požádá okolní servery poskytující stejnou službu (v případě hierarchické struktury, o které si povíme za chvíli), nebo se obrátí přímo na původní zdroj dat. V tom případě pak tento soubor jednak posílá vám a zároveň načítá do své zásobárny pro další zájemce.

Rychlost dodávky tedy závisí na tom, jestli už si tentýž soubor vyžádal někdo před vámi nebo ne. Obecně platí, že máte šanci v průměru jedna ku třem, že vámi požadovaný soubor má proxy cache ve svém zásobníku.

Takže čím blíž v topologii sítě je vámi požadovaný soubor, tím rychleji byste ho měli dostat. Pak nemusíte čekat desítky minut, ale třeba jen desítky vteřin.

Jak je vidět, je za pomoci proxy cache možno řešit oba problémy zmíněné na začátku tohoto článku. Proxy cache může plnit úlohu mezičlánku při propojení vnitřní sítě s okolním světem, kdy nejen umožňuje zájemcům uvnitř přistupovat k souborům venku, ale zároveň i šetřit čas a přenosové pásmo, protože při dalším přístupu k témuž souboru nemusí být přenášen z původního místa, ale může se použít jeho kopie z místní zásobárny. Podobnou cestu mohou (v tomto případě dobrovolně) zvolit i běžní účastníci Internetu. Pokud si ve svém prohlížeči nastaví topologicky nejbližší server proxy cache, mohou získávat požadované soubory mnohem rychleji než přímo od zdroje.

Co se týče doby uchovávání, ta závisí na několika faktorech. Jedním z nejvýznamnějších je velikost diskového prostoru proxy cache vymezeného pro ukládání souborů. Pokud se disk přiblíží naplnění, je spuštěn proces, který vymaže nejstarší, nejméně používané a největší soubory. Druhým kritériem je nastavení pro jednotlivé typy souborů. Správce proxy cache může určit, jak dlouho se má uchovávat soubor určitého typu. V novějších verzích serverů a prohlížečů WWW je také možno nastavit, jak často se má kontrolovat aktuálnost přenášeného souboru nebo za jak dlouho vyprší jeho platnost. Po této době je soubor považován za neaktuální a při nejbližší příležitosti je nahrazen novou verzí (je-li to třeba) nebo vymazán.

Pravěk

Myšlenka proxy cache se zrodila ve stejných místech (a pravděpodobně i ve stejných hlavách) jako myšlenka World Wide Web -- v proslulém švýcarském výzkumném ústavu CERN (Evropská laboratoř pro fyziku částic). Prvním významněji rozšířeným serverem nabízejícím proxy cache byl CERN httpd (hypertext transfer protocol daemon), jehož primárním úkolem bylo pracovat jako server WWW, ale který kromě toho zvládne i úlohu serveru proxy cache. Za to, že se v současnosti už téměř nepoužívá, mohou dvě okolnosti. Tou první je jeho přílišná univerzálnost -- pokud má nějaký program plnit dvě různé (i když v lecčem podobné) úlohy, bývá to zpravidla na škodu obou. V tomto případě je CERN httpd ve srovnání se svou konkurencí pomalejší, a to v obou oblastech. A své sehrála i skutečnost, že vývoj tohoto programu se zastavil již před zhruba dvaceti měsíci. To sice není v lidském životě příliš dlouhá doba, v Internetu to však znamená několik generací.

Myslím, že CERN httpd svou úlohu splnil a významně pohnul vývojem Internetu v dnes nejpopulárnější oblasti -- Celosvětové pavučině. I když je stále používán, jeho podíl na celkovém počtu serverů každým dnem klesá.

Harvest, Squid...

Začátkem 90. let vznikl na Kolorádské univerzitě (za podpory ARPA -- Agentura pro pokročilé vývojové projekty) projekt Harvest, který si kladl za cíl zmapovat a zindexovat co nejvíce dat v Internetu. V rámci tohoto projektu vznikl jakýsi vedlejší produkt, který dostal prosté jméno cached (cache daemon) a který fungoval jako proxy cache. S postupem doby se ukázalo, že výsledek projektu nestačil vývoji Internetu, byl příliš důkladný a příliš univerzální, a tím i těžkopádný. V současné době se používá jen okrajově, na menších rozlohách. Nedokázal čelit konkurenci v podobě indexovacích robotů, jakými jsou například Lycos, Alta Vista či Infoseek.

A tak se cached paradoxně stal s tisíci instalací po celém světě nejúspěšnějším modulem Harvestu. Kromě úzké specializace a povedeného jádra dostal do vínku i jednu ze základních myšlenek projektu -- možnost vytvářet hierarchickou strukturu s různými vzájemnými vztahy jednotlivých členů. A navíc -- jeho nespornou konkurenční výhodou byla cena -- může jej totiž používat kdokoli k jakýmkoli účelům zcela zdarma (na základě licence GNU -- Libovolný uživatel sítě).

Protože podpora projektu Harvest ze strany ARPA začátkem letošního skončila, rozhodli se jeho autoři, že se zaměří na nejúspěšnější část -- cached -- kterou upraví a začnou ji nabízet za peníze. Aby však nepřišli zkrátka všichni uživatelé, kteří si nemohou dovolit za toto programové vybavení platit, ujal se jeden z členů původního týmu údržby a koordinace dalšího rozvoje cached, který bude i nadále poskytován všem zájemcům bezplatně. Jelikož původní název zůstal komerční vývojové větvi, bylo potřeba vymyslet nové jméno. A tak vznikl Squid (oliheň, krakatice). V letošním roce sídlí v jednom ze středisek NLANR (Národní laboratoř pro aplikovaný výzkum sítí) a je finančně podporován NSF (Národní vědecká nadace).

... a ti druzí

Poznatek, že proxy cache má budoucnost, vedl i další týmy a firmy k vývoji tohoto programu. A tak jej nyní nabízí nejen komerční firmy jako Netscape Communications (Netscape Proxy Server) nebo Microsoft (Catapult), ale stal se i součástí nejrozšířenějšího nekomerčního serveru WWW -- Apache.

Vzhledem k vzájemné nekompatibilitě a nejasnosti ve standardech však prozatím mezi sebou nedokážou konkurenční servery úzce spolupracovat. Jedinou výhodou může být použitelnost v operačním systému Windows NT, kterou prozatím nenabízí ani cached, ani Squid. Co se týče Apache, podle mého názoru může dopadnout obdobně jako CERN httpd, protože bude příliš univerzální na to, aby mohl být nejlepší v obou oblastech zároveň.

Hierarchická struktura

Velkou výhodou cached i jeho následovníka Squid je možnost vytvářet síť těchto serverů na nejrůznější úrovni. Nejpropracovanější je zřejmě síť pracovišť NLANR ve Spojených státech, kde jsou napříč kontinentem rozmístěny servery, vzájemně propojené vysokorychlostními linkami a specializované vždy jen na určitou oblast.

Jednotlivé servery zapojené do struktury mohou mezi sebou mít buď vztah rodič-potomek, nebo soused-soused, přičemž je nejvhodnější rozmístit jednotlivé servery v závislosti na topologii sítě. I zde platí, že méně je někdy více. Není vhodné zapojit do hierarchie příliš mnoho serverů rozložených po celé síti. Nejlépe je komunikovat pouze s bezprostředními sousedy ve vaší topologii.

Rozdíl mezi vztahem potomek-rodič a soused-soused si vysvětlíme na následujícím příkladu. Pokud váš server nemá vámi požadovaný soubor, poptává se po něm u všech sousedů i rodičů, které má pro danou oblast nastavené (vztah potomek-rodič je tedy pouze jednosměrný). Jakmile dostane od kteréhokoli první kladnou odpověď, vyžádá si data od něj. U ostatních si pouze poznamená rychlost reakce. Pokud však požadovaný soubor nemá k dispozici žádný ze serverů v okolí, požádá o jeho obstarání nejrychleji reagujícího rodiče. Pro různé cílové adresy můžete mít nastavené různé rodiče i sousedy. Zároveň můžete mít nastaveno více rodičů i sousedů pro jednu oblast.

Jak už jsem se zmiňoval dříve, tuto strukturu je možné vytvořit jen za pomoci serverů odvozených od cached, přičemž plného využití všech možností lze dosáhnout jen propojením jednoho typu (tedy buď pouze komerčních cached nebo pouze nekomerčních Squid).

Proxy cache u nás

Většina poskytovatelů Internetu v České republice nabízí svým zákazníkům možnost využívat proxy cache, kterou lze nastavit v prohlížeči WWW. Informovanost je však prozatím natolik nízká, že se tato výhodná pomůcka u nás doposud příliš nepoužívá.

S ohledem na skutečnost, že největší poskytovatelé Internetu u nás (až na malé výjimky) stále ještě nejsou vzájemně propojeni na našem území (v některých případech přes část Evropy, v těch extremních až přes USA), je prozatím předčasné navrhovat provázání serverů proxy cache do národní sítě.

Pokud se vám náhodou donese adresa nějakého serveru typu proxy cache, nejprve si raději zjistěte, jak daleko od vás (nikoli geograficky, ale internetově) je. Pokud by nebyl přímo ve vašem přípojném bodu, nebude pro vás asi přínosem, ale ztrátou.


| <<< | CW o Internetu | COMPUTERWORLD | IDG CZ homepage |