WebML – struktura webové aplikace

20. dubna 2004

Předchozí článek o WebML byl věnován základním principům a vlastnostem navigačního modelu. Protože navigační model představuje nejdůležitější část návrhu webové aplikace, budeme v jeho výkladu pokračovat i v tomto článku. Pokusíme se osvětlit problematiku oblastí, pohledů na webovou prezentaci a dalších způsobů zpřehlednění struktury rozsáhlých hypertextových aplikací. Dostaneme se také ke způsobu definice navigačního menu webové prezentace.

Struktura webové prezentace

Rozsáhlejší webové prezentace je většinou nutné strukturovat do větších celků než jsou jednotlivé stránky. Většina těchto prezentací používá hierarchický víceúrovňový systém navigace. Jednoduše řečeno, příslušný web se skládá z několika hlavních sekcí, které se dále člení na podsekce v několika úrovních. Jednotlivé stránky jsou potom součástí těchto sekcí. Pro účel definování struktury webové prezentace zavádí WebML konstrukty pro definici oblasti a pohledu na webovou prezentaci.

Oblasti (Areas)

V článku věnovaném kompozičnímu modelu jsme se seznámili se základními elementy (Data Unit, Index Unit a další), ze kterých se mohou skládat jednotlivé stránky (obrazovky) webové prezentace. Stejně jako tyto elementy mohou vytvářet stránku, může být více stránek organizováno do takzvaných oblastí (Areas).

Oblast představuje skupinu logicky souvisejících stránek nebo oblastí včetně vazeb, které jsou mezi stránkami (respektive mezi jednotlivými units) definovány. Jako jednotlivé oblasti si můžeme představit například hlavní sekce webové prezentace (na Interval.cz jsou to například E-komerce, Webdesign nebo Vývoj aplikací). V každé hlavní sekci se pojednává o příslušné problematice na několika souvisejících stránkách. Samozřejmě i příslušná oblast (sekce) může být dále rekurzivně složena z dalších oblastí (na Interval.cz jsou pro sekci „Vývoj aplikací“ definovány podsekce .NET, PHP, J2ME a další). Závisí to na tom, z kolika úrovní se skládá systém navigace, který autoři příslušného webu zvolili. Obvyklá hloubka zanoření bývá dvě až tři úrovně. Více úrovní již může způsobovat nepřehlednost. Konkrétní příklad takové struktury můžeme vidět na prvním obrázku.

Oblasti, Areas
Obrázek č. 1: Příklad hierarchické struktury webové prezentace

Webová prezentace na tomto obrázku má dvě hlavní sekce (Sekce 1 a Sekce 2). V každé z těchto sekcí se nalézají další subsekce, které se dále skládají z několika jednotlivých webových stránek. V jednotlivých stránkách nejsou kvůli přehlednosti příkladu definovány žádné elementy (units) ani odkazy mezi nimi, které by normálně samozřejmě nesměly chybět. Tento příklad tedy představuje trojúrovňový systém navigace.

Domovské, implicitní a stále přístupné stránky

Na obrázku číslo 1 jste si mohli všimnout značek L, H a D, přiřazených k jednotlivým stránkám nebo oblastem. Tyto značky nebyly použity náhodou, ale každá z nich má přesně definovaný význam. Díky těmto značkám můžeme ovlivnit jednak chování prezentace a jednak s jejich pomocí můžeme ovlivnit způsob generování navigačního menu webové prezentace. Značky L a D můžeme použít pro označení stránky i oblasti. Značka H se používá pouze pro označení stránky. Značky mají následující význam:

  • HDomovská stránka (Home page): Zde je význam zcela jasný. Jedná se o stránku, která se automaticky načte při zadání adresy příslušné prezentace. Takto označená může být samozřejmě pouze jedna stránka.
  • DImplicitní stránka, oblast (Default page, area): Implicitní stránka je obdobou domovské stránky pro příslušnou oblast. Je to tedy stránka, která se automaticky zobrazí, pokud vstoupíme do příslušné oblasti (sekce) webu. Implicitní oblast je vnořená oblast, která je vybrána při vstupu do oblasti, která je této oblasti přímo nadřízená.
  • LStále přístupná stránka, oblast (Landmark): Stále přístupné stránky představují ty stránky, na které se můžeme dostat z jakékoliv jiné stránky, která je obsažena ve stejné přímo nadřazené oblasti nebo pohledu na webovou prezentaci.

Pomocí stále přístupných stránek (landmarks) lze výrazně zjednodušit celý navigační model. Pokud si představíme, že bychom chtěli stejného efektu dosáhnout propojením jednotlivých stránek pomocí značek pro odkazy, dostali bychom už u středně složitého webu nepřehlednou změť čar, protože bychom museli v podstatě propojit každou stále přístupnou stránku, se všemi ostatními stránkami.

Počet odkazů by vycházel ze vzorce: pocet_odkazu = pocet_stranek2 – pocet_stranek. Pro web, který by se skládal z deseti takových stránek, bychom museli nakreslit devadesát odkazů! Na druhém a třetím obrázku můžete vidět dva ekvivalentní způsoby zápisu tří stránek, ze kterých se lze dostat na všechny ostatní stránky.

Příklad modelu bez použití značky L
Obrázek č. 2: Příklad modelu bez použití značky L

Příklad modelu s použitím značky L
Obrázek č. 3: Příklad modelu s použitím značky L

Jak již bylo řečeno, značky přímo ovlivňují chování prezentace. Další důležitý význam ovšem hrají především značky L. Takto označené stránky a oblasti se totiž mohou použít pro generování navigačního menu. Pokud označíme stránku nebo oblast jako Landmark a stránka je tudíž dosažitelná odkudkoli z webové prezentace, musí být tato dosažitelnost nějakým způsobem implementována. Asi každého z nás napadne, že u stále přístupných stránek nejde od začátku o nic jiného než o určitý abstraktní způsob, jakým lze modelovat navigační menu. To, jak bude menu vypadat, se definuje při výstupním „stylování“ a transformaci modelu do výsledné podoby.

Způsobů, jakým by mohlo být vygenerováno menu z příkladu z prvního obrázku je mnoho, záleží pouze na našich schopnostech a požadavcích. Jedním ze způsobů může být klasické stromové menu, jako na čtvrtém obrázku, nebo kombinace horního menu, kde se zobrazují hlavní sekce webu, a postranního menu, kde se zobrazuje navigace pro příslušnou sekci (viz pátý obrázek).

Příklad navigačního menu 1
Obrázek č. 4: Příklad navigačního menu 1

Příklad navigačního menu 2
Obrázek č. 5: Příklad navigačního menu 2

Výše popsaný způsob tvorby navigačního menu vyžaduje, abychom od začátku vývoje webu věděli přesně, z jakých sekcí a stránek se bude web skládat. Pokud bychom ovšem chtěli, aby byla prezentace na základě nějakého Content Management systému kompletně generována z databáze, včetně všech sekcí a podsekcí, můžeme samozřejmě použít klasických postupů popsaných v předchozích článcích o WebML. Sekce a jejich obsah bychom potom mohli ukládat v rekurzivní podobě v databázi, navigační menu by se dalo generovat pomocí Index nebo Hiearchical Index Unit.

Pohledy na webovou prezentaci a personalizace webové prezentace

Pohled na webovou prezentaci (Site View) představuje nejvyšší úroveň kompozice webové prezentace. Větší celek než pohled již v definici WebML nenalezneme (výše je pouze samotná webová prezentace). Pohled je definován názvem a skládá se z kolekce stránek případně oblastí, které spolu logicky souvisejí.

Tak ale zněla i definice oblasti. Proč tedy existuje něco jako pohled? Hlavním důvodem pro vytváření pohledů je umožnit vývojářům personalizaci webové prezentace. Pohled je totiž kolekcí stránek, která se prezentuje určité skupině uživatelů přesně definovaným způsobem. Jiná skupina uživatelů může mít přístupné zcela odlišné části webové prezentace, tedy její pohled na prezentaci je jiný.

K účelům řízení přístupových práv do jednotlivých částí prezentace se využívá atributu protected, který musí mít definován každý pohled. Atribut protected může nabývat hodnoty yes nebo no. Pokud má daný pohled hodnotu protected nastavenou na „yes“, znamená to, že tuto kolekci stránek má přístupný pouze autorizovaný uživatel. Pokud je hodnota nastavena na „no“, má přístup k danému pohledu každý.

Konkrétní přístupová práva jsou ukládána v databázi. Datový model WebML totiž standardně implicitně a povinně definuje tři entity, které modelují základní přístupová práva do jednotlivých pohledů (viz šestý obrázek). Pokud používáte nástroj WebRatio, jsou při zakládání projektu tyto entity automaticky vytvořeny, nelze je odstranit, pouze editovat a rozšiřovat. Při výmazu těchto entit by byl celkový model nekonzistentní.

Entitami jsou:

  • User – jednotlivé uživatelské účty
  • Group – skupiny uživatelů
  • SiteView – pohledy na webovou prezentaci

Každý uživatel musí patřit do jedné nebo více skupin uživatelů a naopak (vztah 1:N-1:N). Jedna ze skupin, do kterých uživatel patří, musí být označena jako implicitní (vztah 1:1-0:N). Každá skupina má svůj cílový pohled na webovou prezentaci. V souvislosti s řízením přístupových práv definuje WebML speciální operace pro přihlášení, odhlášení a změnu skupiny přihlášeného uživatele.

Implicitní entity pro modelování přístupových práv
Obrázek č. 6: Implicitní entity pro modelování přístupových práv

Určitě mnoho z vás teď uvažuje o tom, že je tento systém pro mnoho případů zbytečný. Opravdu je tomu tak. Pokud chceme, aby naše prezentace byla přístupná pro všechny stejným způsobem, můžeme vytvořit pouze jeden pohled a označit ho jako protected=no.

Závěr

Tímto článkem jsme dokončili výklad základů navigačního modelu WebML. Další články budou zaměřeny na modelování webových aplikací, jejichž hlavním účelem je prezentovat data, nikoli s nimi manipulovat. K účelům vkládání, modifikace a mazání dat jsou ve WebML definovány takzvané operace, kterými se budeme zabývat v příštím článku. S jejich pomocí lze modelovat například systémy typu Content Management nebo obyčejné diskusní fórum.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *