Smart Cache 0.40
Tento dokument jiz neni a nebude nadale aktualizovan, slouzi jen pro letme seznameni. Pouzijte
anglickou verzi zahrnutou v distribucnim archivu, ktera je mnohem lepsi. Pripadne Navod pro instalaci do MSIE nebo navod pro BFU.
Varovani: Tato stranka je velmi hloupa, nemam cas ji predelavat na lepsi.
V kazdem pripade je to jen Vase vec, zda si ji prectete nebo ne.
Uvod
Smart Cache je plnohodnotny proxy cache server napsany v 100% pure Jave
(vyzadovana Java 1.1). Server je zejmena je vhodny pro dial-up uzivatele,
kterym nahradi interni diskovou cache browseru, ktera pracuje pomalu a neefektivne.
Server byl optimalizovan pro rychlost
a minimalni spotrebu operacni pameti RAM. Produkt bezi docela rychle - na 486/33
pod operacnim systemem OS/2 (JIT off) obslouzi 350 stranek/minutu (jeden browser potrebuje
priblizne 50 requestu/min),
pokud jej pouziva jen jeden uzivatel, staci mu pro vlastni cinnost okolo 600 kB RAM + pamet
pripadajici na vlastni rezii JVM.
Smart Cache vychazi ze dvou nejznamejsich proxy cache - Squid a CERN, pricemz
z kazde prebira ty nejlepsi vlastnosti. Produkt byl napsan protoze jsem nenasel
zadnou dostatecne inteligentni cache, ktera by mne vyhovovala, protoze jsem nenasel dosud zadnou
pouzitelnou proxy cache v Jave a protoze jsem potreboval specialni
proxy cache pro off-line browsing.
Dalsi informace
o tomto produktu najdete v clanku v NetMagu,
informace o Web forwardingu a vyuziti (a nastaveni) tohoto produktu jako Web forwarder najdete
zde.
Idealni pro dial-up uzivatele!
Nejvetsi prinos pro dial-up uzivatele oproti interni cache v browseru
spociva v:
- Moznost zablokovani definovanych URL - zejmena vhodne pro zablokovani
reklamy
- Moznost nahrazovat blokovane reklamy vasim obrazkem - JE TO UPLNE SUPER
ZABAVA!
- Moznost pouzivani uzivatelem definovanych redirectu a moznost tak
eliminovat vicenasobne nahravani objektu, pokud ma server vice aliasu
- Moznost vytvareni vlastnich "domen" napr. pro vasi homepage. Zkuste treba:
Redirect http://moje.home.page/* http://www.geocities.com/XXX/1213/* . Tez je
to dobre pro vytvareni aliasu pro casto vami navstevovane stranky.
- Lepsi funkcnost nez interni cache prohlizece. Netscape navigator napriklad
velmi casto ztraci reference na nacachovane soubory a tak musite casto
nahravat objekty ze site i presto, ze objekt mate jiz ulozen v cache
- Vetsi rychlost nez interni cache prohlizece zejmena pri vetsim objemu ulozenych dat
- Vzhledem k CERN-style ukladani souboru se cache snadno prohledava
- Ulozene soubory neobsahuji HTTP hlavicky - lze je tedy v pripade
potreby ihned pouzit
- Cachovani dynamicky generovanych stranek a stranek obsahujicich cookies.
Uz nikdy nebudete cekat pri go-back!
- Moznost dohrati stranky do cache, pokud date v browseru stop. Pochopitelne
i to lze konfigurovat (direktiva quick_abort).
- Cache pracuje i pokud jste offline. Misto chybovych hlasek vraci
nacachovane stranky - muzete si proto vklidu offline vsechny stranky
prohlednout a to dokonce i vcetne pocitadel a podobnych obvykle necachovanych
objektu.
- Velmi dobre konfigurovatelne odmazavani starych objektu (-gc)
Navod k pouziti
K dispozici je nyni i alternativni navod, ktery byl napsan
uzivatelem operacniho systemu Windows a je specialne
urcen prave pro tyto uzivatele. Dokument se jmenuje
,,Navod pro instalaci a uzivani Smartcache pro
normalni uzivatele (bfu)".
Rada: Pokud nevite, co to znamena
BFU tak jste BFU a navod se vam jiste bude libit.
Uzivatele systemu Windows 95 mohou ziskat balik
"Smart Cache for Windows",
coz je Smart Cache opatrena grafickym instlacnim programem. Zda funguje, o
tom nemam poneti.
Dalsi utilita pro uzivatele OS Windows je
zde. Taky nemam
ani poneti o tom, zda funguje.
- Pro spusteni produktu musite mit nainstalovanu Javu (JDK, JRE). Interni Java z www
prohlizece se neda pouzit.
JDK si muzete nahrat zde.
Misto JDK lze pouzit i JRE, ktere je mensi, protoze
na rozdil od JDK neobsahuje vyvojove nastroje pro Javu. Tyto vyvojove nastroje
nejsou nutne pro spousteni aplikaci napsanych v Jave a pokud tedy nechcete
v Jave programovat, bude vam JRE stacit. JRE je k dispozici
zde.
Produkt nelze spustit s Javou 1.0.X
- Rozpakujte distribucni zip soubor (scache.zip) do nejakeho prazdneho adresare.
Pro rozbalovani musite pouzit neco, co umi takzvana "dlouha jmena", protoze
soubory maji koncovky *.class a *.cnf.
- prekopirujte dodane vzorove konfiguracni soubory z adresare samples o adresar vys.
- Prohlednete si a pripadne upravte konfiguracni soubory scache.cnf
a gc.cnf dle potreby.
- V prohlizeci nastavte jako proxy server pro http protokol (jine nejsou
a pravdepodobne ani nikdy nebudou podporovany) vas pocitac (tedy IP adresu 127.0.0.1)
a port, na kterem bezi cache - prednastaveno je to na 8080.
- Cache se spousti prikazem java scache, ktery provedete v adresari,
kde je nainstalovana (*.class). Pokud chcete minimalizovat spotrebu pameti ram pro cache
(doporuceno) pridejte jave parametr -ms1m tedy prikaz bude vypadat java -ms1m scache.
-
Pokud pouzivate misto plnohodnotneho JDK mensi balik - Java runtime JRE, bude pouzit prikaz
pro spusteni zacinat jre -cp . misto java. Dalsi parametry zustavaji stejne.
V prostredi JRE spustite tedy Smart Cache prikazem jre -cp . -ms1m scache.
Prikaz je pochopitelmne nutne provadet v adresari, kde jsou nainstalovany programove
(*.class) a konfiguracni (*.cnf) soubory.
- Cache se zastavuje pomoci indikacniho souboru (viz shutdown_flag v konfiguraci).
Po vytvoreni tohoto souboru se cache korektne ukonci, jakmile to bude mozne (
zadne neprobihajici transakce). Soubor muze mit libovolny obsah, testuje se jen
jeho existence. Obvykle (Unix) se pro vytvoreni souboru pouziva prikaz touch,
pripadne (Win) echo > jmenosouboru. Pokud je to na vas moc slozite, mackejte
CTRL-C (vice viz FAQ) a nelamte si s tim hlavu.
- Pokud vase cache zabira jiz mnoho mista na disku je zadouci spustit
garbage collection, coz z ni smaze stare soubory a zmensi ji na pozadovanou
velikost. GC se konfiguruje
v souboru gc.cnf Pravdepodobne jedina vec, kterou budete potrebovat
zmenit je pozadovana velikost cache v MB. Pote spustite GC pomoci
java scache -gc Soucasti GC je i kontrola integrity cache, takze
-killunref jiz nemusite pouzivat.
- Vzhledem k DNS caching "feature" JVM musite (cti silne doporucnovano)
cache restartnout pokud browsite offline a nahodite modem a chcete browsit
on-line. Tato komedie neni nutna, pokud pouzivate nadrazenou proxy cache
(direktiva http_proxy), ktera je zadana IP adresou. Restart muzete
v tomto pripade provest stisknutim CTRL-C, bez rizika ztraty dat.
Konfigurace produktu
Produkt je konfigurovan pomoci konfiguracnich souboru gc.cnf a
scache.cnf. Tyto konfiguracni soubory jsou textove a pro jejich
editaci se pouziva jekykoliv ASCII editor, pod Windows je to napr. Notepad.
V obou konfiguracnich souborech jsou nastaveny rozumne (moje) hodnoty, takze
pokud do detailu moc nevidite, nemusite vetsinu menit. Nasledujici vycet
direktiv neni kompletni, oznacuje jen ty ktere budete pravdepodobne nuceni
zmenit.
- cacheroot
- Adresar, do ktereho se ukladaji cachovane soubory.
Je zadouci, aby mel tento adresar co nejkratsi jmeno. Umistete ho tedy
do root adresare nejakeho disku (napr. c:\cache ). Jmeno adresare nesmi
(cti nebyla testovana funcknost)
koncit znakem \ nebo / . Tento adresar slouzi pro ukladani
nacachovanych dat a nikoliv pro ulozeni vlastniho programu (*.class). Pokud
nastavite cacheroot na adresar, kde mate nainstalovanu smart cache, pravdepodobne
velmi rychle o ni prijdete (pri GC).
- http_proxy
- Pokud pouzivate proxy cache vaseho ISP pro urychleni pristupu k internetu,
zadejte zde jeji jmeno (IP adresu) a cislo portu oddelene
mezerou.
Velmi se doporucuje pouzit IP adresu misto DNS jmena! IP adresu zjistite
napriklad prikazem ping.
Pouziti proxy cache vaseho Internet providera je velmi doporucovano, protoze
pokud se budete chtit podivat na stranku na kterou pred nedavnem nejaky jiny
dial-up uzivatel dival, bude tato stranka nahrana z proxy serveru, coz
je nekolikanasobne rychlejsi.
Priklad (nastaveni na cache komercni casti cesnetu):
http_proxy 194.50.6.6 3128
- shutdown_flag
- Jmeno souboru indikujiciho pozadavek na zastaveni cache.
- Cache_size (gc.cnf)
- Velikost cache v MB. Jako minimalni rozumna hodnota se doporucuje
25. Pochopitelne zde plati pravidlo, ze cim vice tim lepe, protoze
zmensit se do da vzdycky.
- Urlmask (gc.cnf)
- Nastavuje, ktere objekty se maji odmazavat rychleji pri Garbage Collection
a ktere si chcete
v cache podrzet delsi dobu. Pokud si napriklad radi off-line prohlizite
NetMag, tak nastavenim:
urlmask http://netmag.cz/* /100
dosahnete
toho, ze zustane obsah NetMagu v cache 100x dele, nez by tam normalne
zustal.
Propagace produktu
Pokud tento program pouzivate a libi se vam, tak si umistete
na vasi stranku ikonku
a odkaz na
nasi stranku nebo rovnou prekopirujte cely distribucni archiv.
Mozna tim ucinite nekoho stastnejsim.
Dalsi misto, kde muzete SC propagovat jsou ruzne diskuzni skupiny,
muzete ji nahrat do anonymnich archivu, adresaru softwaru atd.
Casto pokladane otazky
- Jak minimalizuji spotrebu operacni pameti pro cache?
- pomoci parametru -ms1m predaneho Java interpretru. Cela prikazova radka
bude tedy vypadat:
java -ms1m scache
- Je mozne pouzit tuto cache pro vice pocitacu ci pro pocitace pripojene
k internetu pevnou linkou?
- Ano, nastavte BindAddress na *
- Pouzivam dial-up a jsem soucasne pripojen i na firemni LAN sit. Je mozne aby se nekdo
zvenci dostal pres tuto cache na nasi firemni sit?
- Od verze 0.22 uz ne. Ovsem pokud si nastavite BindAddress na *, tak to mozne je.
V tomto pripade ji doporucuji bloknout directivou fail nebo nastavit BindAddress na
intranetovou adresu. Pokud nerozumite o co go, tak se zeptejte nekoho kdo zna Unix.
- Proc je tedy zduraznovano pouziti cache pro dial-up?
- Pro dial-up uzivatele je tento produkt bezkonkurencne nejlepsi, jaky si mohou
poridit.
- Je tento proxy server lepsi nez konkurencni servery?
- Smart Cache je lepsi nez interni cache apache httpd, CERN httpd a Microsoft
proxy server. V soucasnosti je Squid jen mirne lepsi co do konfigurovatelnosti
nekterych veci (napr. umoznuje vice nadrazenych cache), ale v praxi jeho lepsi konfigurovatelnost
nema zadny velky vyznam.
Smart
Cache je zase lepsi v tom, ze cachovanim necachovatelnych objektu (napr. pocitadel)
snizuje zatez linky. Finalni verze Smart Cache bude schopna Squidu co do vlastnosti
konfigurace plne konkurovat. Krome toho nektere casti Smart Cache (napr. garbage
collector) jsou mnohonasobne lepsi nez u Squida.
- Jak mam odmazavat stare soubory, kdyz to zatim cache neumi?
- Od verze 0.30 to jiz umi pomoci prepinace -gc, pokud nechcete pouzivat GC, tak ctete dale.
Nejvice se zatim osvedcilo pouzivani prikazu find. Pokud mate unix-like
system odmazte stare soubory takto:
find /cachedir -atime +XX -print | xargs rm
, kde /cachedir je adresar, kam
si uklada cache sve soubory a +XX je pocet dnu, ktere chcete v cache nechat.
Po teto akci je doporucovano jeste smazat soubory, na ktere neni zadna reference. (viz navod -killunref)
- Kde sezenu potrebne unix-like utility pro Windows?
- Muzete zkusit GNU Win32
nebo UWIN32.
- Pokud pouzivam proxy cache, mam zakazat cache v browseru?
- Zalezi jakou cache mate na mysli. Napr. Netscape Navigator ma dva druhy cache:
Memory cache, kterou nezakazujte a nastavte ji minimalne na 1MB a Disk cache.
Disk cache se doporucuje pro dosazeni maximalniho
vykonu uplne zakazat (nastavit velikost na 0).
Na platforme Unix se doporucuje browseru nejakou malou diskovou cache nechat,
protoze k ni pristupuje rychleji.
- Proc je Microsoft Explorer s cache pomalejsi misto rychlejsi?
- MSIE obcas pouziva z nejakeho mne neznameho duvodu pri nastavenem proxy
serveru jen jedno sitove spojeni. Tudiz nenahrava objekty paralelne, ale
seriove, coz trva dele.
- Co znamena hlaska Missing object pri operaci -gc/killunref ?
- Znamena to, ze v ridicim souboru je reference na objekt, ktery nebyl na disku
nalezen. Nejbeznejsi pricina je, ze pri downloadu tohoto objektu doslo k chybe,
kterou cache specialne neobsluhuje a tak na nej reference zustala. Touto chybou muze
byt napriklad shutdown cache, pokud jsou aktivni jeste nejaka spojeni.
Dalsi moznost je,
pokud provadite tuto operaci na bezici cache a objekt se prave nahrava.
Vzhledem k tomu, ze ridici soubory jsou u bezici cache cachovany v pameti, tak
smazani reference z ridiciho souboru na disku nijak nenarusi funkci cache -
az se objekt donahraje, tak se zapise na disk a do ridiciho souboru bez ohledu
na to, zda v nem jiz byl ci ne.
- Co znamena hlaska orphan object pri operaci -gc/killunref ?
- Znamena to, ze byl nalezen soubor, na ktery neni zadna reference v ridicim
souboru. Obvykle to jsou temporary soubory, ktere se vytvari pri downloadu
objektu ci prazdne .cacheinfo soubory.
- Nemohu se nalogovat na Java Developer Connection. Proc?
- Pokud si chcete prohlizet JDC. Nalogujte se na jeho homepage.
Potom bude server fungovat bez problemu.
Problem je nasledujici. Chcete si prohlizet dokument a server, zjisti, ze jste
se jeste neprihlasili. Posle proto redirect na login stranku. Tento redirekt
cache nacachuje, coz zpusobi prave ten problem, protoze kdyz se nalogujete,
tak vas na login formular neposle znovu server, ale cache. Toto je zatim
jediny znamy negativni dopad cachovani redirektu.
- Bude umet cache dial-on demand, aby stahla objekt, kdyz neni v cache?
- Naprogramovat to neni problem, ale takoveto pouziti neni vylozene dobry napad.
Takze zatim ne.
- Chci pouzivat cache pro eliminaci reklam, ale nechci ji pouzivat misto
interni cache browseru, protoze zatim neumi garbage collection. Jde to?
- Jednak GC jiz umi, ale pokud to chcete, tak napiste do konfiguracniho souboru radku NoCaching * -
zadne objekty nebudou trvale na disku uchovavany.
- Proc neni implementovana GNU regexp knihovna nad operacemi s URL?
- Protoze je tato knihovna jednak vetsi nez cely dosavadni produkt a jednak
je pomala.
- Kolik uzivatelu pouziva tento produkt?
- No vzhledem k tomu, ze chodi porad vice a vice dotazu, rekl bych, ze je jich
vic nez dost.
- Jsou spokojeni s produktem?
- Je zajimave, ze jsou s nim pomerne dost spokojeni. Tedy alespon ti, kteri
mi napsali. Obdrzel jsem zatim jen jednu negativni (anonymni) stiznost,
ktera se tykala celkove debility tedle stranky, coz je v poradku - stranka
je debilni. Takze muzu rici, ze pokud BFU prezije ve zdravi nekolikamegabajtovy
download JRE/JDK
a projevi alespon tolik inteligence, aby to spustil, pravdepodobne se mu to
bude libit. Krom toho tu mame navod specialne pro BFU.
- Nechce se mne tahat JRE. Je k dispozici nekde nezavisla recenze?
- O zadne v cestine nevim. Krome toho nejake pocitacove casopisy se ptaji
ctenaru co chteji na CD, tak jim tam napiste, ze chcete JRE + scache.zip.
Zkuste kontaktovat nejaky casak, at vam
o tom napise. Vzhledem k rychlosti vydavani cisel papirovych casaku, bude
ten download JRE kratsi zalezitost. Anglicky asi ano, protoze predpokladam, ze
kdyz necemu davaji oceneni, tak o tom asi neco napisi.
- Neni to skoda, ze je produkt napsany v Jave?
- Rekl bych ze ne. Vetsina uzivatelu jej provozuje pod Win* systemy, pricemz
ja pod Win* systemy zasadne neprogramuji. Kdyby nebyl napsan v Jave, nemohli
by jej pouzivat, takze z jejich pohledu to je urcite plus.
- Nebude k dispozici C/C++ verze?
-
O prepsani
do C/C++/Objective C ani neuvazuji. Pokud to nekoho trapi, necht si to
prepise sam - zdrojaky tu jsou.
- Umi produkt delat transparent-proxy?
- Umi. Netreba nic vice konfigurovat.
Pochopitelne, ze si musite vhodne nakonfigurovat router.
- Muze se provadet GC na bezici cache?
- Ano.
- Jsem pripojen k Internetu pouze pres proxy server. Smart Cache funguje
normalne, ale nefunguji AdBusteri a test aktualni verze
- pridejte JVM (pred scache) tyto parametry:
-Dhttp.proxyHost=192.168.1.26 -Dhttp.proxyPort=80
Prvni je IP adresa vaseho proxy serveru a to druhy je port na kterem bezi.
Omezeni a chyby
- HTTP/0.9 servery nejsou podporovany, HTTP/0.9 klienti vsak ano. O
podpore HTTP/0.9 serveru se zatim ani neuvazuje.
- Na platforme OS/2 havaruje (nekdy) pri zapnutem JIT kompilatoru. Toto je chyba
IBM a ne tohoto produktu. Pokud je to zrovna vas pripad, vypnete proto pred spustenim cache JIT kompilator
pomoci prikazu:
SET JAVA_COMPILER=lopata. Krome toho JIT kompilator
nezrychli scache jiz temer vubec, protoze je rucne zoptimalizovana.
- Vice informaci je v anglicke dokumentaci.
Budoucnost produktu
Planovane upravy jsou:
- (mozna) multiple parent proxy
- Integrace moznych source patches obdrzenych od uzivatelu.
- Ma jeste nekdo nejaky napad?
Podminky pro pouziti
Pouziti a sireni tohoto programu jako takoveho neni nikterak omezeno.
Modifikace produktu ci jeho integrace do jineho produktu
je vsak mozna pouze pri dodrzeni podminek v GNU Public License verze 2
nebo pozdejsi. Vice informaci najdete v souboru COPYRIGHT.