WebToDate/Cachování/O produktu: Porovnání verzí
Založena nová stránka: Category:WebToDate 4.1 Cachování zpráv Category:Cachování zpráv == Základní vlastnosti produktu == Rozšíření '''Cachování zpráv''' má jediný cíl … |
(Žádný rozdíl)
|
Verze z 23. 7. 2009, 12:36
Základní vlastnosti produktu
Rozšíření Cachování zpráv má jediný cíl – zrychlit odbavování určitého typu www stránek na serveru a tím optimalizovat využití nasazeného hardware webového serveru.
V typickém nasazení produktu WebToDate se vytvářejí různé druhy www stránek. Ty lze v zásadě rozdělit na následující typy:
- Stránky určené k tomu, aby byly jakousi "vstupní branou" – typicky jde o úvodní stránku a stránky jednotlivých rubrik či sekcí. Primárním úkolem těchto stránek je v podstatě prezentovat odkazy na další stránky v hierarchii webové prezentace včetně vybraných odkazů na vlastní obsah – dokumenty, články, zprávy apod.
- Vlastní prezentovaný obsah – jedná se o jednotlivé stránky s celými texty dokumentů, článků apod.
- Interaktivní rozšíření – stránky, se kterými pracuje uživatel interaktivně, tj. nejedná se o prosté čtení ale o různé formuláře a případně i zápisy do databáze serveru – příkladem je fulltextové hledání, diskuze, ankety apod.
Pokud se soustředíme pouze na poskytovaný informační obsah, typický způsob implementace WebToDate znázorňuje následující diagram.
Návštěvník webové prezentace zpravidla prochází nejprve stromem rubrik či sekcí, ve kterých hledá obsah, který jej zajímá. Tyto sekce jsou reprezentovány ve WebToDate jednotlivými stránkami, které je z hlediska implementace doporučeno definovat jako statické. To znamená, že jejich obsah se spravuje prostředky WebToDate, sestavují se na základě nějaké šablony a výsledkem celého procesu je stránka vygenerovaná ve formě statického HTML souboru na disku www serveru. Z hlediska rychlosti odbavování stránek na serveru se jedná o optimální případ – www server (Apache či IIS) pouze načítá statické soubory a odesílá je do prohlížeče, na straně serveru se stránky v tu chvíli nijak nezpracovávají a příslušný www server může navíc uplatnit vlastní algoritmy optimalizace práce s těmito soubory.
Jakmile se návštěvník webu dostane k vlastní informaci, která ho zajímá, zobrazuje v terminologii WebToDate stránku se zprávou (celý text dokumentu či článku). Doporučená implementace je v tomto případě taková, že tento typ stránek se sestavuje dynamicky pomocí prezentačního PHP skriptu k tomu určeného. Dynamické sestavování znamená, že celá stránka na serveru v kompletní podobě neexistuje, ale ve chvíli požadavku na zobrazení se na serveru sestaví (potřebná data se načtou z databáze, data se vloží do šablony stránky a výsledek se odesílá do prohlížeče). Tento přístup má svoje výhody:
- Tento typ stránek obsahuje často se měnící data – nemusí jít jen o vlastní texty dokumentů, ale i o seznamy souvisejících zpráv a podobné elementy, které se z principu mohou měnit, aniž by se jakkoliv změnil vlastní obsah zprávy.
- Hromadné změny v designu či funkčnosti takového typu stránek lze provádět velmi operativně a rychle – design i funkčnost je dána předlohou (šablonou pro tento typ zobrazení), kde lze jednoduše měnit grafiku i vlastnosti vložených objektů jako jsou seznamy a další prvky). Změna se po přegenerování předlohy promítne okamžitě na všechny stránky používající předlohu a není třeba generovat velké množství stránek (existují implementace WebToDate s objemem databáze zpráv v řádu statisíců položek, které používají jednu předlohu).
- Tento typ stránek může obsahovat data, která jsou z principu dynamická a dokonce individuální pro každého návštěvníka. Typickým příkladem jsou diskuze ke článku – nejen že se seznam diskuzních příspěvků mění při každém vložení nového příspěvku, ale tento seznam může např. vyznačit uživateli příspěvky, které ještě nečetl, takže podoba stránky může být dokonce pro každého uživatele jiná.
Daní za tyto výhody je to, že při každém zobrazení zprávy dochází k spouštění prezentačního skriptu a nového sestavování stránky, což je pro hardware serveru a rychlost odbavování stránek náročnější varianta než prosté poskytování statických předpřipravených stránek. Pokud je hlavním cílem webové prezentace zejména poskytování většího množství v této podobě a jedná se o více navštěvovaný server, jde o hlavní zátěž www serveru.
Toto rozšíření WebToDate nabízí optimalizaci zpracování tohoto typu stránek na straně serveru, čímž se minimalizují nároky na hardware a zrychluje se odbavování stránek. Princip řešení je poměrně jednoduchý:
- Vychází se z toho, že pro danou zprávu se po určitou dobu návštěvníkům zobrazuje stejná podoba stránky. Tato podoba se sestaví ve chvíli, kdy zprávu zobrazí první návštěvník a dalším návštěvníkům se zobrazuje identicky po dobu stanovenou konfiguračními parametry.
- Při zmíněném prvním zobrazení takové stránky se na serveru vygeneruje kompletní HTML kód stránky a uloží se do pomocného úložiště – v případě tohoto rozšíření do souborového systému serveru jako samostatný soubor.
- Při dalším zobrazení stejné zprávy se zjistí, zda uplynula či neuplynula definovaná doba po kterou se zobrazuje tato již jednou sestavená podoba stránky. Pokud tato doba ještě neuplynula, použije se podoba stránky uložená na disku serveru a pouze se odešle do prohlížeče, pokud již tato doba uplynula, spouští se sestavení stránky znovu a do prohlížeče se odesílá nová nově sestavená podoba stránky.
Výše popsaný princip je ta nejjednodušší varianta, možností konfigurace tohoto procesu je víc a to, kdy je poskytována předpřipravená podoba stránky a kdy dojde k novému sestavení lze definovat daleko precizněji, což je popsáno v následujících kapitolách. Tuto funkčnost nazýváme cachování zpráv. Podle interních měření může tato funkce zrychlit odbavování tohoto typu stránek cca 10x až 25x (podle nastavení konfiguračních parametrů a cílové funkčnosti), což pro server, jehož hlavním účelem je poskytovat větší množství publikovaných textů může znamenat, že pomocí stejného hardware může odbavit např. desetkrát více uživatelů než bez tohoto rozšíření.
Co rozšíření umožňuje
Pokud je rozšíření nainstalováno a správným způsobem nakonfigurováno, dochází při zobrazování zpráv k zápisům do souborové cache. Sestavená stránka se po stanovenou dobu drží v této cache a při dalším požadavku na zobrazení se poskytuje z této cache místo aby se znovu sestavovala.
Nejdůležitější možností je v zásadě konfigurace cache, která dovoluje precizněji definovat chování této cache. Možnosti konfigurace režimů cache jsou následující:
- Řízení podle času - zpráva uložená do cache se používá po stanovený počet minut v nezměněné podobě, po uplynutí tohoto intervalu se při prvním zobrazení obnoví podoba zprávy uložené do cache
- Řízení podle času modifikace zprávy - při každém zobrazení se kontroluje čas poslední modifikace zprávy, je-li novější než čas vytvoření objektu v cache, zpráva uložená v cache se načítá znovu.
- Kombinace obou předchozích přístupů
- Vypnutí cache
Další možnosti cachování jsou:
- Možnost vynutit u zprávy zobrazení bez využití cache (např. pro účely ladění šablon apod.)
- Možnost vynutit vždy připojení k databázi a vždy např.do databáze ukládat informace shlédnutí zprávy
- Možnost řídit, které kódy doplněné do stránky dalšími extenzemi se cachují a které ne.
Poslední funkce umožňuje např. to, aby se seznam diskusních příspěvků či anketa ke článku nikdy nenačítala z cache ale sestavovala se dynamicky podle uživatele, zbytek stránky se přitom z cache načítá a nesestavuje se při každém zobrazení zprávy.
Součástí tohoto rozšíření je navíc úloha pro Plánovač úloh, která může obsah cache mazat a tím např. šetřit místo na disku www serveru.
Kdy nasadit cache
Nasazení Cachování zpráv je doporučeno zejména v následujícím případě:
- Návštěvnost serveru je vyšší (v řádu statisíců shlédnutí měsíčně a více)
- Hlavní poskytovanou službou je publikace dokumentů a článků (tedy nejedná se např. o případ, kdy jde v podstatě o diskuzní server a jako doplněk je publikováno menší množství textů)
- Hlavní návštěvnost se soustřeďuje na relativně omezenou množinu dokumentů (nejedná se tedy o statisticky náhodné zobrazování různých zpráv, ale typicky o hojně navštěvované nejnovější články a dokumenty)
Typickým kandidátem na efektivní využití tohoto rozšíření je tedy internetový deník, kde návštěvníci jeví největší zájem o publikované aktuality a nejnovější zprávy vůbec, případně i starší zprávy z jedné konkrétní oblasti. Cache lze samozřejmě nasadit v podstatě v každé instalaci, její efekt ale nemusí být tak účinný (i když z principu může dojít vždy pouze ke zrychlení, nikoliv ke zpomalení celého serveru).