Současnou architekturu (verze 4.0) webu CK Rowas ukazuje následující diagram, který je podrobněji popsán dole (je popisováno jen to, co se tady používá - možnosti popisovaných technologií jsou samozřejmě mnohem větší).  | | Schéma architektury rowas v. 4 |
Hlavní softwarové komponenty představují: - Aplikační server Tomcat - (běžící na Linuxu)
- Databáze MySQL
- Aplikační framework Cocoon - (jedná se o webovou aplikaci Tomcatu)
- Nativní XML databáze eXist - (součást webové aplikace)
Na základě konfiguračního souboru sitemap.xmap frameworku Cocoon se analyzuje URL adresa požadavku a podle toho se určí postup zpracování. Některé zdroje lze uživateli naservírovat rovnou tak, jak jsou na filesystému (obrázky, css, javascripty,..) - použije se "Readers" komponenta (poslední 2 šipky v pravo). Jiné zdroje se musí před odesláním na klienta nejprve zpracovat (XML). Tak přicházejí na řadu "Generators". Připravují počáteční XML, které vstupuje do roury, tzv. pipeline (definováno v sitemap.xmap), kterou se transformuje a serializuje do konečné podoby. V prvním kroku se XML vytváří z následujíchí zdrojů: - eXist - XML se generuje pomocí jazyka XQuery, které provádí dotazy nad všemi dostupnými dokumenty z databáze (cestopisy, seznamy kódů, apod...)
- MySQL - technologií XSP (XML Server Pages - cocoonová obdoba JSP) se provede dotaz do relační databáze a výsledky se pošlou dál v XML formátu
- filesystém - některé soubory není třeba mít v XML databázi, je možné je použít přímo z filesystému
Výše uvedené zdroje lze v sitemap.xmap libovolně skládat dohromady a zastřešit je společným elementem. Takže je možné zobrazit na jedné stránce data pocházející jak z XML, tak i z relační databáze (jak ukazuje názorně vstupní stránka rowasu). Na webu jsou různé typy stránek, které se ale zas tolik neliší. Proto bylo definováno obecné XML Schema, které všechny typy stránek respektují. Výhodou tohoto přístupu je např. to, že v dalším kroku zpracování je potřeba menší počet obecnějších XSLT šablon. Vygenerované XML z prvního kroku zpracování se dále transformuje XSLT 2.0 šablonami pro následující výstupy (po tomto kroku je to stále ještě XML!): - XHTML - všechny stránky na rowasu
- PDF - vytvoří se soubor formátovací objektů XSL-FO, který se pak speciálním konvertorem převede do PDF (cestopis, určený k tisku)
- DOC - obdoba XHTML, akorát se výsledek interpretuje jako soubor pro MS Word (cestopis pro doplnění komentářů účastníků)
- PNG - vygeneruje se SVG soubor (přehledová mapa na úvodní stránce)
Výsledkem předchozího kroku je znova XML, které v sobě obsahuje speciální elementy obsahující kódy, podle kterých se následující i18n (internationalization) transformací dotáhne správná jazyková mutace. Konečným krokem zpracování je serializace, takže např. XML v podobě XSL-FO se zkonvertuje do PDF souboru, jiné XML jde do XHTML jako obyčejná stránka. Je nutno podotknout, že u PDF a PNG výstupů proces neprobíhá online, ale vzhledem k vyššímu výkonu a stabilitě offline. CK Rowas kromě výše uvedeného vlastního zpracování využívá externí služby Google maps s publikovaným API. Vzdálené funkce lze volat pomocí technologie AJAX. Tato technologie se zde používá i interně pro zaznamenávání statistik činnosti uživatelů do relační databáze MySQL. Data jsou pak flashovými grafy vizualizována. Spravování tohoto systému, který obsahuje tisíce souborů je náročné, proto musel být zvolen nástroj, který tyto akce automatizuje. Ideálním řešním se ukázal ANT, který např. nový cestopis se vším všudy umožňuje publikovat dvojím kliknutím. Stručná historie Internetová podoba CK Rowas má prapočátky někdy v roce 2001, kdy jsem si vybral jako téma seminární práce na VŠE značkovací jazyk XML. Tento jazyk se výborně hodí k uchovávání strukturovaných dokumentů, jako jsou například cestopisy. V té době už existoval cestopis Korsika 2001, Samochcípem po Americe 1999 a poté přibylo dalších pět cestopisů od kolegů Honzy Wasserbauera a Romana Rohlíka. Materiálu bylo tedy dostatek na to, aby byla chuť se pustit do větších technologických dobrodružství. Na následujícím seznamu je vidět vývoj architektury webu od zaregistrování rowas.cz do současné podoby: - Verze 1.0 (květen 2003) - Vygenerované HTML, PDF výstupy z XML na filesystému flash animace, prohledávání na základě metadat uložených v MySQL. Použitý software a technologie: Tomcat, MySQL - JSP, XSLT 1.0, javascript, css, html, Flash.
- Verze 2.0 (2004) - Generování výstupů na serveru, publikační framework Cocoon, XSP stránky místo JSP.
- Verze 3.0 (2005) - Nativní XML databáze eXist. Místo prohledávání metadat v relační databázi využítí XQuery dotazů pro fulltextové vyhledávání.
- Verze 3.1 (2005) - Prohledávání fotek na základě klíčových slov. Vícejazyčnost. Statistiky. Ant skripty pro administraci.
- Verze 4.0 (2006) - Refaktoring kódu, XSLT 2.0, integrace s google maps (s animacemi), zjednodušení správy, skloubení cestopisů a článků, mnoho dalších vylepšení.
|