V minulém čísle Zpravodaje jsme v základních rysech představili novou verzi internetové prezentace MU dostupné na adrese http://www.muni.cz. V tomto pokračování přinášíme bližší pohled na její technické podhoubí, tedy popis hlavních principů technického řešení, kompletně navrženého a realizovaného na ÚVT1.
Na základě analýzy požadavků na novou verzi prezentace www.muni.cz
a dosavadních
zkušeností z provozu předchozí verze byla vytvořena zcela nová vnitřní architektura prezentace.
Běžné webové servery nabízí jako jednu ze základních vlastností poskytování html stránek, které jsou již hotové uloženy na disku webového serveru. Pokud chceme publikovat data z databáze, nemusíme z ní vše vygenerovat do html stránek na disk, ale můžeme využít možnosti skriptování na straně serveru, kdy určité stránce odpovídá konkrétní program, jehož výstup je odeslán návštěvníkovi do prohlížeče. Tímto způsobem, za využití technologie ASP (Active Server Pages) a s drobnými vylepšeními (viz [1]), byly vystavěny předchozí verze prezentace.
Pro novou verzi prezentace byl navržen a následně realizován vlastní specializovaný aplikační server. K realizaci byla využita technologie Microsoft .NET. Velká část obsahu předchozí prezentace je publikována i v nové verzi - byť v jiném grafickém řešení a v jiné navigační struktuře (seznamy zaměstnanců, přehledy projektů, publikací atd.) - a tak bylo nutné najít způsob, jak ponechat funkčním i programový kód původních ASP stránek (nebylo žádoucí přepisovat prakticky beze změny kód z jednoho programovacího jazyka do druhého). Z těchto důvodů byl navržen řídící dispečer, který přijímá požadavky na poskytnutí stránek a zajišťuje jejich zpracování odpovídající technologií na úrovni aplikačního serveru. Pro generování vlastního obsahu webové stránky je tak obecně možné použít téměř libovolný programovací jazyk a technologii.
Protože www.muni.cz
poskytuje informace pouze na čtení a neumožňuje je měnit, byly
použity různé vyrovnávací paměti (cache) s dobou expirace až několik minut. Například
vlastní programový kód stránky má k dispozici cache, kde si může uložit různě předpřipravená
data specifická pro konkrétní typ stránky. Společné číselníky jsou také poskytovány z cache,
které obhospodařuje jádro systémů. Při požadavku na webový server je tedy možné, že při jeho
zpracování vůbec nebyla použita databáze a jako obsah stránky byly vráceny části (případně celá
stránka), které byly před pár vteřinami vráceny již jinému návštěvníkovi.
Běžné použití webového serveru nevyžaduje téměř žádnou konfiguraci, webový server
najde dle požadované adresy příslušnou stránku na disku v totožné adresářové struktuře.
Aplikační server implementovaný pro www.muni.cz
přináší mnohem širší možnosti, a proto je
nutné každou stránku www.muni.cz
náležitě zaregistrovat, aby dispečer věděl, jak má http
požadavek vyřídit. Mezi povinné konfigurační údaje patří např. název stránky, definice
nadřízených stránek (pro správnou funkčnost drobečkové navigace), určení programového kódu,
který generuje vlastní obsah stránky, a adresa stránky. Přímo v konfiguračním souboru
je dokonce možné definovat obsahy jednoduchých rozcestníkových stránek. Pro zajímavost - současná
konfigurace webu MU ve formátu XML je popsána na 7000 řádcích.
Na stránkách realizovaných v novém i starém programovém kódu je řada společných prvků (navigační abeceda, způsob zobrazování externích odkazů atd.), jejichž implementaci nebylo žádoucí duplikovat v obou použitých technologiích (ASP i .NET). Místo vzájemného volání funkcí v různých technologiích jsme proto využili jakousi formu asynchronního volání. Programový kód realizující www stránku produkuje výstup v XML, který dispečer ještě následně analyzuje. Najde-li zmíněná volání funkcí, provede je a výsledek do stránky doplní. Teprve poté je výstup odeslán uživateli jako hotová stránka. Tato idea byla rozvinuta tak, že k libovolnému XML elementu lze připojit programový kód, tzv. frag (fragment). Dispečer pak zajišťuje vykonávání těchto fragů - jako parametry slouží atributy a vnitřní elementy - a dosazení jejich výstupů (tj. fragmentů XML) na místa volání.
Jako příklad si můžeme nadefinovat element pozdrav s atributem jazyk.
K němu dodáme programový kód, který nás pozdraví v příslušném jazyce. Takže např.
text <pozdrav jazyk="cs"/>
bude nahrazen textem ahoj a
<pozdrav jazyk="en"/>
textem hello. Nebo jiný příklad:
k <a href="?">cokoliv</a>
je možné definovat,
že má být nahrazen značkou <a href="?" style="?">cokoliv</a>
-
v podstatě tedy jde o doplnění hodnoty atributu style. Na www.muni.cz
je tato
možnost využita například pro doplnění ikonky typu odkazu: je-li zřejmé, že obsah atributu
href určuje jiný web, je použit styl pro tzv. externí odkaz a doplněna ikona externího okna;
jedná-li se o odkaz na zabezpečené stránky (https://?
), je opět použit odpovídající styl
a doplněna příslušná ikona.
Důležitou vlastností implementace nového webu jsou oddělené zdroje (tzv. resources). Web MU je "odjakživa" budován jako dvojjazyčný a velkým neduhem všech předchozích verzí bylo, že texty a jejich překlady byly vepisovány přímo do programového kódu. Podobně byly do programového kódu vkládány např. externí odkazy, jejichž existenci pak nebylo možné systematicky kontrolovat. Nový web již řeší tuto problematiku odděleně a veškeré texty (od krátkých řádkových frází po celostránková pojednání) eviduje v databázi. Nad těmito oddělenými zdroji pak lze (a již se tak i děje) budovat aplikace pro jejich správu (jazykové kontroly, překlady, průběžnou aktualizaci obsahu) - aniž by byla nutná asistence programátora.
Oddělením zdrojů vznikly číselníky frází, externích odkazů a tzv.
dlouhých textů. Samotný výpis textu z číselníku je opět realizován pomocí
fragu - např. <dict id="87"/>
doplní text "Publikační činnost"
případně anglický překlad, pokud je stránka požadována v angličtině. Obdobně frag
<extern_link id="280"/>
doplní odkaz na statut lékařské
fakulty a frag <text_ref id="41"/>
doplní text pro stránku
projektu Antarktida.
Zmíněné číselníky umožňují rovněž kategorizovat (seskupovat) jednotlivé položky.
Pokud je tedy použit frag <extern_link type="statut"/>
,
je dosazen externí odkaz na statut té součásti univerzity, která je aktuálně zobrazována.
Ke každé kategorii položek je nutno přiřadit parametry, pro něž má smysl. Při požadavku na
výpis se pak z kategorie vybere ta položka, která nejlépe vyhovuje parametrům (zde je
to podmínka, že požadovanou součástí univerzity je lékařská fakulta).
Změna struktury webu je také příhodným okamžikem k zamyšlení se nad strukturou
a formátem adres stránek (URL) a k případným změnám ve prospěch přehlednosti.
Adresy stránek předchozí verze webu měly většinou příponu asp
a byly úzce
spjaty s programovým kódem (v adrese stránky byl zpravidla obsažen přímo název
programu či skriptu generujícího obsah stránky). V nové prezentaci má každá stránka
specifikovánu svou adresu URL, která je takzvaně "hezká" (a dle potřeby ji lze kdykoli dále
zkrášlit) a na názvu programu generujícího vlastní obsah stránky zcela nezávislá. Např. stránka
životopisu osoby má formát adresy http://www.muni.cz/people/person/cv
, kde $person$
je identifikace (UČO) osoby (formát adresy kterékoli stránky lze získat kliknutím na symbol [i]
v toolbaru umístěném v pravém horním rohu). Požadavek na tuto a libovolnou jinou stránku
www.muni.cz
je vždy přijat dispečerem, zmíněným již v úvodu, který na základě analýzy
požadované adresy (URL) určí, jakým konkrétním programovým kódem bude obsah stránky vygenerován.
Došlo také ke změně URL hlavních stránek součástí MU. Motivací bylo sladění zkratek použitých
u serverů součástí univerzity s jejich vlastními zkratkami použitými
ve www.soucast.muni.cz. Zkratky fakult použité
v adrese http://www.muni.cz/soucast
jsou tedy law - právnická, med - lékařská,
sci - přírodovědecká, phil - filozofická, ped - pedagogická, econ - ekonomicko-správní,
fi - informatiky, fss - sociálních studií, fsps - sportovních studií.
Vlastní prezentace přebírá datové podklady pro publikování z různých informačních systémů univerzity - viz [2]. Jak již bylo zmíněno v předchozím díle, prezentace je obohacena o fotogalerie. Pro jejich plnění se používají obrázky a data z Digitální knihovny fotografií MU (DKF MU), odkud jsou potřebné údaje přenášeny automatizovaně v XML formátu. Nový web je obohacen také o videoukázky (viz http://www.muni.cz/general/events/video), pro něž je využit streamovací server Laboratoře pokročilých síťových technologií FI.
V Inetu vzniknou pro snazší správu www.muni.cz
podpůrné aplikace (např. zadávání
bannerů), určené pro Odbor vnějších vztahů a marketingu RMU.
V několika prvních týdnech po svém spuštění běžel nový web na stejném hardware
jako web předchozí, tedy na dvou jednoprocesorových webových serverech (512 MB RAM,
Intel Pentium 4 1,8GHz - podrobnosti viz [1]).
V polovině října byla webová prezentace přesunuta na dva nové webové servery HP
ProLiant DL360 (1 GB RAM, 2 x Intel Pentium 4 Xeon 3,6GHz), které mají za úkol unést
významně vyšší zátěž než servery předchozí - jednak v důsledku zvyšující se
návštěvnosti, a také vyšší výpočetní náročnosti nového webu vyplývající z vícevrstvého
aplikačního řešení použitého pro generování obsahu stránek a složité prezentační grafiky.
Náhrada databázového serveru Dell 2650 (2 GB RAM, 2x Intel Pentium 4 Xeon 2,8GHz),
pořízeného v roce 2003, je plánována na příští rok. V současné době je průměrná
odezva www.muni.cz
na uživatelský požadavek nižší než 1 sekunda.
[1] | J. Ocelka. Cluster www-serverů MU. Zpravodaj ÚVT MU.
ISSN 1212-0901, 2003, roč. 13,č. 5,s. 5-8.
... zpět do textu |
[2] | Š. Ocelková. Webová prezentace MU po 4 letech. Zpravodaj ÚVT MU.
ISSN 1212-0901, 2002, roč. XIII, č. 1, s. 4-8
... zpět do textu |
1 | Připomeňme, že grafické řešení prezentace je dílem ateliéru ExactDesign
a obsahovou náplň webové prezentace určuje rektorát MU.
... zpět do textu |