MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY
Vytvoření webové aplikace pro uživatele aplikace Hypothesis
Bakalářská práce
Mgr. Martin Poklop
Brno 2015
Poděkování Za poskytnuté cenné rady, ochotu a četné odborné konzultace bych rád poděkoval vedoucímu této práce Mgr. Luďku Bártkovi, Ph.D. Dále děkuji Mgr. Zbyňku Štěrbovi, Ph.D. a Ing. Kamilu Morongovi za čas, který mi věnovali při odborných konzultacích.
Shrnutí Předmětem bakalářské práce je vytvoření webové aplikace umožňující export šablon ve formátu XML z databáze aplikace Hypothesis a import takových, zpravidla uživatelem lehce modifikovaných, šablon do vlastní databáze. Součástí aplikace je také modul pro vyhledávání a filtrování šablon podle různých kritérií a jednoduchý validátor, který má za úkol ověření správnosti struktury importovaných šablon. Aplikace byla pojmenována Hypothesis template handler (Správce šablon pro aplikaci Hypothesis).
Klíčová slova Hypothesis, Vaadin, Hibernate, dokument XML, webová aplikace
Obsah 1. ÚVOD ................................................................................................................. 2 2.
APLIKACE HYPOTHESIS ............................................................................. 4 2.1.
Šablony pro aplikaci Hypothesis ................................................................. 4
2.2.
Uložení šablon v databázi aplikace Hypothesis .......................................... 6
3. ANALÝZA APLIKACE HYPOTHESIS TEMPLATE HANDLER ............. 8 3.1.
Diagram případů užití ................................................................................. 9
3.2.
Diagram tříd .............................................................................................. 14
3.3.
Entitně-relační diagram (ERD) aplikace HTH ............................................ 17
3.4.
Použité technologie a diagram nasazení .................................................. 18
4. IMPLEMENTACE
APLIKACE
HYPOTHESIS
TEMPLATE
HANDLER ....................................................................................................... 21 4.1.
Zprovoznění aplikace Hypothesis template handler ................................ 22
4.2.
Ukázka a princip fungování aplikace HTH ................................................. 23
4.3.
Testování aplikace..................................................................................... 29
5. ZÁVĚR.............................................................................................................. 30 Seznam použité literatury ................................................................................... 32 Seznam použitých zkratek .................................................................................. 33 Seznam příloh ........................................................................................................ 34
1
1. ÚVOD Mapa je velmi užitečný nástroj obsahující velké množství informací. Pokud se například podrobněji podíváme na běžnou topografickou mapu, najdeme v ní informace o přítomnosti objektu v dané lokalitě, o jeho přesné poloze, o polohových vztazích tohoto objektu vůči jiným objektům, atd. Jinými slovy, v jednom mapovém listu nalezneme tolik informací, k jejichž popsání bychom potřebovali mnoho stran textu. Použití mapy tedy vede ke značné úspoře materiálu a svým způsobem také k rychlejšímu a snadnějšímu interpretování informací, které jsou v mapě zachyceny. Mnoho informací obsažených v mapě může zároveň přinášet sníženou kvalitu rozhodovacích procesů uživatele. Podle Mgr. Zbyňka Šterby, Ph.D. „kvalita rozhodovacích procesů,
čímž rozumíme zejména rychlost a správnost
rozhodování při řešení různých krizových situací (živelných pohrom, průmyslových havárií, apod.), závisí mimo jiné na kvalitě použité vizualizace prostorových dat“ [1]. Interpretování mapy uživatelem je tedy zcela jistě ovlivněno kvalitou zpracování mapových podkladů kartografem (ať už se jedná o topografickou podkladovou informaci nebo o tematickou nadstavbu). Dosažení velké rychlosti interpretování mapy uživateli (nejen odborníky, ale i širokou veřejností) je v mnoha případech žádoucí, v některých (zejména těch krizových) dokonce nezbytné. Interpretací map širokou veřejností se snaží zkoumat vědci na Geografickém ústavu Masarykovy univerzity v Brně. V rámci tohoto výzkumu vznikla aplikace Hypothesis, která má za úkol testovat míru a rychlost pochopení různých mapových scén. Jinými slovy srovnává, která kombinace mapových symbolů a který způsob zachycení situace v mapě jsou pro běžného uživatele nejlépe pochopitelné. K tomuto účelu postupně vznikají sady testových otázek, které jsou v rámci aplikace Hypothesis předkládány testovaným uživatelům. Testová otázka je v běhovém prostředí aplikace Hypothesis generována ze dvou šablon – stylové (template) a obsahové (content). Stylová šablona definuje veškeré informace spojené se vzhledem testovacího okna, především potom volbu objektů (panely pro textová pole, obrázek, mapové pole, panel pro výběr odpovědi z možností, apod.) a jejich rozvržení v testovacím okně. Obsahová šablona dá testovacímu oknu náplň - od znění textových popisků, přes odkazy na soubory s mapovými výřezy až po definování správných odpovědí.
2
Šablony jsou uloženy v databázi aplikace Hypothesis. Oba typy šablon jsou ve formátu XML. XML (eXtensible Markup Language) je značkovací jazyk, který definuje pravidla pro tvorbu dokumentů ve formátu, který je dobře čitelný pro člověka i pro počítače. Jazyk byl vyvinut a standardizován World Wide Web Consortiem (W3C) [2] a je základem pro celou řadu moderních značkovacích jazyků [3]. XML dokument
je
charakteristický
svou
typickou
strukturou
–
obsahuje
XML deklaraci a jeden kořenový element, který se dále může větvit na libovolné množství dalších elementů, ve kterých jsou zapsány požadované informace. Tvorba šablon pro aplikaci Hypothesis, tedy tvorba souborů ve formátu XML, není jednoduchá. Šablony musí nejenom splňovat předepsanou syntaxi dokumentů ve formátu XML, ale také mít takovou strukturu, aby byly použitelné v aplikaci Hypothesis. Jednotlivé dvojice šablon se přitom mezi sebou příliš neliší. Stylových šablon existuje pouze několik základních typů, z nichž každý se používá pro mnoho testovacích otázek. Obsahová šablona by vždy měla mít nějakou odlišnost od jiných obsahových šablon, avšak v relacích velikosti celého dokumentu nejsou odlišnosti velké. Zdaleka nejjednodušší způsob vytváření nových šablon pro aplikaci Hypothesis se proto jeví úprava již existujících, vhodně zvolených šablon, které se co možná nejvíce podobají šablonám požadovaným. V takovém případě se do tvorby nových šablon může pustit i člověk, který disponuje pouze základními znalostmi struktury dokumentů ve formátu XML a základními znalostmi fungování aplikace Hypothesis. Z tohoto důvodu vznikla myšlenka vytvoření správce šablon pro aplikaci Hypothesis, který by měl umožňovat nalezení vhodných šablon v databázi aplikace a jejich export do souborů ve formátu XML. Fundované vyhledávání těchto šablon by mělo být zajištěno filtry, které umožní uživateli zadat základní vyhledávací kritéria. Manažer by měl zároveň umožňovat import šablon, které byly uživatelem upraveny, kontrolu správnosti jejich struktury a jejich uložení do databáze vlastní. Funkčnost a relevantnost testovací otázky posoudí správce databáze - funkční šablony budou přesunuty do databáze aplikace Hypothesis, autoři těch nefunkčních budou vyzváni k nápravě. Správce šablon pro aplikaci Hypothesis byl pojmenován Hypothesis Template Handler (HTH) a jeho vytvoření je hlavní náplní této bakalářské práce.
3
2. APLIKACE HYPOTHESIS Jak již bylo předznamenáno v úvodní kapitole, aplikace Hypothesis slouží k testování míry a rychlosti pochopení různých mapových scén uživateli. Během testování jsou testovaným osobám předkládány otázky z příslušné testovací sady, přičemž je zaznamenávána rychlost reakce a správnost odpovědi. Různé testové sady mohou být určeny pro testování jak osob z široké veřejnosti (např. orientace v běžné topografické mapě), tak specialistů v určitém oboru (např. rychlost interpretace map záchrannými složkami). Dle dokumentace aplikace Hypothesis je „aplikace vyvinuta za použití moderních technik dynamického webu. Výkonné jádro a uživatelské rozhraní je postaveno nad frameworkem (rozhraním) Vaadin 71, práci s databází obstarává ORM Hibernate2 a za výchozí databázový stroj je použit PostgreSQL ve verzi 9.13 (případně vyšší)“ [4].
2.1. Šablony pro aplikaci Hypothesis Testovací otázky jsou v běhovém prostředí aplikace Hypothesis sestavovány ze dvou souborů ve formátu XML – stylové a obsahové šablony. K jedné obsahové šabloně náleží právě jedna stylová šablona. K jedné stylové šabloně však může existovat jedna nebo víc obsahových šablon.
Obr. 1 Část stylové šablony pro sestavení testové otázky aplikace Hypothesis. Book of Vaadin: https://vaadin.com/book/-/page/preface.html Dokumentace k Hibernate 4.3: http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html/ 3 Dokumentace k PostgreSQL 9.1: http://www.postgresql.org/docs/9.1/static/ 1 2
4
Na Obr. 1 se nachází ukázka části stylové šablony pro sestavení testové otázky aplikace Hypothesis. Každá stylová šablona obsahuje kořenový element s názvem SlideTemplate a je jednoznačně určena svým unikátním identifikátorem (UID). Tyto prvky jsou povinné, bez nich by aplikace Hypothesis nedokázala sestavit testovací okno. K definování vzhledu testovacího okna potom slouží především elementy Layers, HorizontalLayout, VerticalLayout, Components, Panel apod. U těchto elementů zpravidla nechybí jejich rozměry (width value, height value). V neposlední řadě mohou být součástí stylové šablony také elementy definující obsluhu testovacího okna (způsob označení správné odpovědi, pojmenování území se správnou odpovědí pomocí id, různé události atd.). Jedná se např. o elementy Features, Handlers, Controls, apod.
Obr. 2 Část obsahové šablony pro sestavení testové otázky aplikace Hypothesis.
Obsahová šablona pro sestavení testové otázky aplikace Hypothesis (Obr. 2) obsahuje kořenový element s názvem SlideContent, s atributem TemplateUID. Tyto prvky jsou, podobně jako u stylové šablony, povinné. Další elementy přidávají elementům, které byly definovány ve stylové šabloně, obsah,
5
tj. přidávají znění popisků, URL4 obrázků, souřadnice vymezující území se správnou odpovědí, atd. Stylová šablona a obsahová šablona, které k sobě patří, musí mít stejné UID, resp. TemplateUID. Jako příklad součinnosti stylové a obsahové šablony lze uvést vymezení území, do kterého musí uživatel kliknout, aby byla jeho odpověď považována za správnou. Ve stylové šabloně je toto území definováno v elementu Feature s atributem Id=“area1“. Uvnitř elementu Feature se nachází vnořené elementy Hidden, který určuje, že je diskutované území skryté, a Call určující správnost odpovědi. V obsahové šabloně jsou potom v elementu Feature s příslušnou hodnotou atributu Id definovány souřadnice tohoto území. Z uvedeného příkladu je patrné, že tuto stylovou šablonu lze použít pro více testovacích otázek, aniž by v této šabloně musela být provedena nějaká změna, přičemž by se měnily souřadnice vymezující území se správnou odpovědí (a zřejmě i URL na soubor s mapovým výřezem, případně některé popisky) v obsahové šabloně. Naopak použití této obsahové šablony spolu s více stylovými šablonami by nemělo smysl.
2.2. Uložení šablon v databázi aplikace Hypothesis Databáze aplikace Hypothesis je podrobně popsána pomocí ERD5 v Příloze č.1. V databázi se nachází tabulky, v nichž jsou uloženy jednotlivé šablony, průběhy testování, definovány testové sady, uživatelská oprávnění a celá řada dalších tabulek důležitých pro chod aplikace Hypothesis. Pro potřeby aplikace Hypothesis Template Handler (dále jen HTH) je klíčová část jejího ERD znázorněná na Obr. 3. V této části se nachází tabulky, v nichž jsou uchovávány obsahové a stylové šablony. Jak je patrné z Obr. 3, stylové šablony jsou v databázi aplikace Hypothesis uloženy v tabulce slide_template, obsahové v tabulce slide. Primárním klíčem v tabulce slide_template je uid, které je zároveň uvedeno také jako hodnota atributu v kořenovém elementu stylové šablony. Tabulka dále obsahuje sloupec pro uložení šablony a sloupec, do kterého lze volitelně zapsat poznámky, zpravidla popisující danou šablonu.
4 5
URL - Uniform Resource Locator ERD – Entity-Relationship Diagram
6
Tabulka slide obsahuje kromě primárního klíče id také cizí klíč uid z tabulky slide_template, což je zároveň také hodnota atributu v kořenovém elementu obsahové šablony. Zbývající dva sloupce tabulky jsou stejné jako u tabulky slide_template – sloupec na poznámky a sloupec pro uložení šablony.
Obr. 3 Výřez ERD aplikace Hypothesis obsahující tabulky, v nichž jsou uchovávány obsahové a stylové šablony.
Další tabulky v ERD aplikace Hypothesis (Příloha 1) již z pohledu aplikace HTH nemají takový význam, avšak pro kompletnost je vhodné je zmínit. Aplikace Hypothesis má jednotlivé testové otázky uloženy v testových bateriích. Tabulky testové baterie tvoří hierarchickou strukturu. Nejvýše v této struktuře je tabulka pack, pod ní se nachází tabulka branch, následuje tabulka task a nejníže figuruje již zmíněná tabulka slide. Průběh testu je ukládán do hierarchické struktury v tabulkách test a event s propojovací tabulkou test_event. Další tabulkou obsahující výsledky průchodu testu je slide_output. Zde se ukládají například údaje vyplněné do dotazníkových polí. Tabulky user, user_permission, user_role, group a group_permission slouží pro správu uživatelů a jejich práv. Tabulky branch_trek a branch_branch_trek se používají při větvené testů. Tabulka branch_output se zatím nepoužívá [4].
7
3. ANALÝZA HANDLER Aplikace
APLIKACE
Hypothesis
Template
HYPOTHESIS Handler
(HTH)
TEMPLATE vzniká
primárně
na objednávku vědeckých pracovníků Geografikého ústavu Masarykovy univerzity v Brně, kteří také stanovili většinu požadavků, které se od této aplikace očekávají. Tyto požadavky jsou zároveň obsaženy v zadání této bakalářské práce. Požadavky můžeme rozdělit na funkční a nefunkční. Funkční požadavky: -
import šablon ve formátu XML, jejich základní validace a uložení do databáze
-
filtrování šablon z databáze aplikace Hypothesis podle různých kritérií
-
export zvolených šablon do souboru ve formátu XML
Nefunkční požadavky: -
použití platformy Java pro aplikační logiku
-
použítí nástrojů pro vývoj aplikace ze sady JDK ve verzi 1.76
-
použití frameworku Vaadin ve verzi 77 pro tvorbu uživatelského rozhraní
-
použití frameworku Hibernate ve verzi 4.38 pro komunikaci s databázemi
Jak již napovídá samotný název, funkční požadavky se týkají funkcionality, kterou by měla aplikace mít. Patří sem služby, které by měl daný systém poskytovat, jak by měl systém reagovat na různé vstupy a jak by se měl chovat v různých situacích [5]. Nefunkční požadavky jsou parametry služeb nebo funkcí, které jsou v daném systému použity [5]. V tomto případě se týkají především technologií, které by měly být použity pro tvorbu této aplikace. Technologické požadavky jsou přitom stanoveny tak, aby aplikace mohla využívat zdroje aplikace Hypothesis a aby bylo možné v budoucnu zajistit propojení obou aplikací.
Dokumentace ke stažení na: http://www.oracle.com/technetwork/java/javase/documentation/java-se-7-doc-download435117.html 7 Book of Vaadin: https://vaadin.com/book/-/page/preface.html 8 Dokumentace k Hibernate 4.3: http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html/ 6
8
Mezi požadavky v současné době není vytvoření finálního designu. Na designu aplikace Hypothesis se v současné době pracuje a design u aplikace HTH bude s tímto designem po jeho dokončení sjednocen.
V rámci analýzy a návrhu aplikace HTH byly vytvořeny následující diagramy: -
diagram případů užití
-
diagram aktivit
-
diagram tříd
-
entitně-relační diagram
-
diagram nasazení
K vytvoření těchto diagramů byl použit standard UML9. Diagramy byly vytvořeny v softwaru Visual Paradigm 11.110. K podrobnějšímu popisu jednotlivých případů užití byly vytvořeny také textové specifikace případů užití.
3.1. Diagram případů užití Jak je patrné z Diagramu případů užití (Obr. 4), s aplikací HTH komunikuje pouze její uživatel. Ten má k dispozici tři možné případy užití – Import šablon, Export šablon z databáze HTH a Export šablon z databáze Hypothesis. Uživatelé aplikace nejsou dále rozlišování, všichni mají stejná přístupová práva. Součástí aplikace není modul pro autentizaci uživatelů. Aplikaci tedy prozatím může využívat každý a reálně neexistuje nikdo, kdo by přístupu do této aplikace mohl zneužít a někoho poškodit. V budoucnu je však plánované propojení aplikace s modulem pro správu uživatelů, ve kterém budem autentizace uživatelů implementována.
UML (Unified Modeling Language) je standard pro tvorbu specifikací různých komponentů softwarového systému [11]. 10 Oficiální webové stránky Visual Paradigm: http://www.visual-paradigm.com/ 9
9
Případ užití Import šablon slouží pro import šablon ve formátu XML a jejich uložení do databáze. K tomuto případu užití jsou zahrnuty validátory (Validace šablon), které provedou prvotní kontrolu struktury importovaných šablon.
Obr. 4 Diagram případů užití aplikace HTH.
Pokud importované šablony projdou validací, jsou, po doplnění dalších údajů, uloženy do databáze aplikace HTH. Tabulka importovaných šablon v této databázi je ve stanoveném časovém intervalu kontrolována správcem databáze. Pokud jsou obě šablony správcem databáze schváleny (prohlášeny za plně funkční), jsou přesunuty do databáze aplikace Hypothesis. V opačném případě jsou šablony smazány z databáze. Pokud jejich autor při importu zadal kontaktní údaje, je o úspěšnosti či neúspěšnosti nahrávání šablon informován, případně vyzván k nápravě. Případy užití Export šablon z databáze HTH a Export šablon z databáze Hypothesis jsou velmi podobné. Liší se pouze v databázi, ze které se šablony exportují. Oba zmíněné případy užití zahrnují filtrování šablon podle zvolených kritérií (Filtrování šablon).
10
Tab. 1 Textová specifikace případu užití Import šablon. Import šablon ID případu užití
1
Případ užití Import šablon umožňuje uživateli nahrávání Popis případu užití šablon ve formátu XML určených pro aplikaci Hypothesis do databáze aplikace HTH. Primární účastník
Uživatel
Sekundární účastník
-
Vstupní podmínky
1. Případ užití je spuštěn stiskem tlačítka "Importování šablon". 2. Uživatel nahraje obsahovou šablonu do paměti aplikace. 2.1. INCLUDE (Validace šablon). 3. POKUD je obsahová šablona validní, uživatel nahraje stylovou šablonu do paměti aplikace. 3.1. INCLUDE (Validace šablon). Hlavní tok událostí 4. POKUD je stylová šablona validní, uživatel vyplní dotazník se základními informacemi o sobě a importovaných šablonách. 5. Importované šablony a vyplněné údaje jsou uloženy do databáze aplikace HTH. 6. Systém pošle e-mailovou notifikaci administrátorovi o novém záznamu v databázi. Vedlejší tok událostí Výstupní podmínky
Uživatel může import šablon kdykoliv opustit.
Administrátor zkontroluje importované šablony.
Podrobnější popis jednotlivých případů užití je uveden v textových specifikacích případů užití (Tab. 1 – Import šablon, Tab. 2 - Export šablon z databáze aplikace HTH a Tab. 3 - Export šablon z databáze aplikace Hypothesis).
11
Tab. 2 Textová specifikace případu užití Export šablon z databáze aplikace HTH. Export šablon z databáze aplikace HTH ID případu užití
2
Případ užití Export šablon z aplikace HTH umožňuje výběr Popis případu užití šablon v databázi HTH podle vybraných kritérií a jejich export ve formátu XML. Primární účastník
Uživatel
Sekundární účastník
-
Vstupní podmínky
1. Případ užití je spuštěn stiskem tlačítka "Exportování šablon z databáze HTH".
2. Šablony jsou načteny z databáze HTH do paměti aplikace. Hlavní tok událostí 3. INCLUDE (Filtrování šablon). 4. Výběr vyhovující dvojice šablon. 5. Stažení obsahové a stylové šablony. Vedlejší tok událostí
Uživatel může export šablon kdykoliv opustit.
Výstupní podmínky
Vybrané šablony jsou uloženy do souboru ve formátu XML.
12
Tab. 3 Textová specifikace případu užití Export šablon z databáze aplikace Hypothesis. Export šablon z databáze aplikace Hypothesis ID případu užití
3
Případ užití Export šablon z aplikace Hypothesis umožňuje Popis případu užití výběr šablon v databázi Hypothesis podle vybraných kritérií a jejich export ve formátu XML. Primární účastník
Uživatel
Sekundární účastník
-
Vstupní podmínky
1. Případ užití je spuštěn stiskem tlačítka "Exportování šablon z databáze Hypothesis". 2. Šablony jsou načteny z databáze Hypothesis do paměti
Hlavní tok událostí aplikace. 3. INCLUDE (Filtrování šablon). 4. Výběr vyhovující dvojice šablon. 5. Stažení obsahové a stylové šablony. Vedlejší tok událostí
Uživatel může export šablon kdykoliv opustit.
Výstupní podmínky
Vybrané šablony jsou uloženy do souboru ve formátu XML.
Grafická specifikace případů užití (diagram aktivit) je znázorněna na Obr. 5. Na levé straně se nachází diagram aktivit pro import šablon. V něm je klíčové především znázornění posloupnosti nahrávání a validace jednotlivých šablon. V první fázi je nahrána obsahová šablona. Ke druhé fázi, tj. nahrání stylové šablony, se přitom přistupuje až poté, co je nahrávaná obsahová šablona prohlášena za validní. Aby bylo možné vyplnit formulář se základními údaji o importovaných šablonách, musí být i nahrávaná stylová šablona validní. Diagramy aktivit pro export šablon z databáze Hypothesis a export šablon z databáze HTH jsou shodné (ukázka na Obr. 5, vpravo). V ukázce je přehledně znázorněno, že export šablon je přímá posloupnost kroků vstup do exportu šablon, vyhledání šablon podle zadaných kritérií, výběr šablon a stažení šablon do počítače. Uživatel může v jakémkoliv kroku export šablon ukončit. Pokud by chtěl ovšem
13
parametry vyhledávání šablon upravit, musí celý proces exportu šablon absolvovat znovu. Jedinou výjimkou je výběr šablon, který lze po stažení šablon do počítače libovolněkrát opakovat.
Obr. 5 Grafická reprezentace případů užití (Activity diagram) pro import šablon (vlevo) a export šablon (vpravo).
3.2. Diagram tříd Na Obr. 6 je znázorněn analytický diagram tříd aplikace HTH. Tento diagram reprezentuje zjednodušený model systému, obsahuje všechny třídy vyjma uživatelského rozhraní. Vstupní třídou v aplikci je třída HypothesistemplatehandlerUI, která je volána ihned po jejím spuštění. Základní kostra aplikace je tvořena formou pohledů (MainView, ETView, ITView) a přepínání mezi nimi je implementováno v třídě Menu11. V pohledu MainView se budou nacházet základní informace o aplikaci Hypothesis a HTH, pohled ITView slouží jako vstupní třída pro import šablon 11
Tento způsob je typický pro použitý rozhraní Vaadin (viz podkapitola Diagram nasazení).
14
a pohled ETView slouží jako vstupní třída pro export šablon z databází Hypothesis a HTH.
Obr. 6 Analytický diagram tříd aplikace HTH. Import šablon je realizován ve třídě ImportTemplatesPopup. Zde se nachází funkce pro tvorbu a obsluhu uživatelského rozhraní (od panelů pro výběr importovaného souboru v souborovém systému až po formulář pro základní údaje o šablonách). Třída ImportTemplatesPopup má dále asociaci s třídami XMLValidator, která zajišťuje validaci šablon, a SendEmail, která v případě úspěšného uložení šablon do databáze vygeneruje a pošle e-mailovou notifikaci
15
administrátorovi. Důležitou funkci má persistentní třída12 ImportedTemplates, která s využitím mapovacího souboru importedTemplates.hbm.xml slouží pro komunikaci mezi aplikací a databází13. Komunikace s databází je realizována ve třídě DbConnector. Máme dva typy exportu šablon – export šablon z databáze Hypothesis a export šablon z databáze HTH, přičemž každý z nich je implementován ve vlastní třídě. Pro export šablon z databáze HTH slouží třída FilterTemplates, ve kterém se nachází všechny funkce pro filtrování šablon podle různých kritérií. Pro mapování s databází HTH slouží opět třída ImportedTemplates a soubor importedTemplates.hbm.xml
a komunikace
je
opět
realizována ve
třídě
realizován
třídě
DbConnector. Export
šablon
z
databáze
Hypothesis
je
ve
FilterHypothesisTemplates, kde se nachází především funkce pro tvorbu a obsluhu uživatelského rozhraní. Samotné filtrování se potom provádí ve třídě SelectOKTemplates. Mapování s databází Hypothesis je v tomto případě realizováno pomocí tříd Slide a SlideTemplate a pomocí souborů slide.hbm.xml a slideTemplate.hbm.xml – zvlášť pro obsahové a stylové šablony. Pro lepší manipulaci byl vytvořen nový datový typ – ExportedTemplates (ve stejnojmenné třídě). Funkce pro komunikaci s databází jsou opět umístěny ve třídě DbConnector. Třída DbConnector (jak již bylo předznamenáno v předchozích odstavcích) slouží pro veškerou komunikaci aplikace s databázemi. Nachází se v ní funkce pro vkládání šablon do databáze (addTemplate()), vrácení seznamu šablon z databáze (listTemplates()), výběr šablony (selectTemplate()), vrácení obsahové či stylové šablony (getXMLContentFromDB(), getXMLTemplateFromDB()), apod. Dále jsou v této třídě funkce pro inicializaci „relace“ (session) ve třídách HibernateUtilHypothesis
(pro
databázi
Hypothesis)
a
HibernateUtilHTH
(pro databázi HTH).
Persistentní třída je taková třída, ve které jsou všechny objekty defaultně persistentní (persistent). V objektově orientovaných programovacích jazycích jsou objekty přechodné (transient), tj. zmizí po ukončení programu. Pro uložení v databázi tak přechodné objekty musí být přeměny na persistentní [11]. 13 Komunikace s databází pracuje s využítím rozhraní Hibernate (viz podkapitola Diagram nasazení). 12
16
3.3. Entitně-relační diagram (ERD) aplikace HTH Aplikace HTH pracuje se dvěma databázemi – databází pro import nových šablon a databází aplikace Hypothesis. Entitně-relační diagram (ERD) databáze aplikace Hypothesis byl již popsán (v podkapitole Uložení šablon v databázi aplikace Hypothesis). V této podkapitole se tedy budeme věnovat ERD databáze pro importování šablon ve formátu XML. Databáze pro importování šablon aplikace HTH (Obr. 7) je tvořena pouze jednou tabulkou. Jako primární klíč je v této tabulce celočíselné Id, které je přidělené automaticky během vytvoření nového záznamu v tabulce. Klíčovými sloupci v tabulce jsou sloupce xmlFileContent a xmlFileTemplate, kde jsou uloženy obsahová a stylová šablona ve formě dlouhého řetězce (100000 znaků). Uživatel může při importu doplnit kontaktní údaje: jméno (firstName), příjmení (lastName) a e-mailovou adresu (email), a také libovolné
poznámky související
s importovanými šablonami (notes). Jak je patrné z Obr. 7, tyto údaje v současné době nemusí být vyplněny (mohou mít hodnotu null).
Obr. 7 ERD databáze aplikace Hypothesis Template Handler pro importování šablon. Další informace o importovaných šablonách jsou uloženy ve sloupci tags. Jednotlivé tagy jsou v aplikaci HTH reprezentovány kolekcí HashMap<String, Boolean> (tj.
) a v databázi uloženy ve formě binárních dat. Tagy budou v budoucnu sloužit k efektivnějšímu vyhledávání šablon.
17
Během uložení záznamu do databáze jsou automaticky vyplněny sloupce date (aktuálním datem a časem) a isValidated, který je implicitně nastaven na hodnotu validace probíhá.
3.4. Použité technologie a diagram nasazení V případě aplikace HTH byla volba použitých technologií hodně ovlivněna požadavky vědeckých pracovníků z Geografického ústavu Masarykovy univerzity v Brně. Především byla vyžadována kompatibilita s již existující aplikací Hypothesis. Hlavním důvodem je skutečnost, že aplikace HTH komunikuje také s databází aplikace Hypothesis, k čemuž využívá některé její, částečně
upravené,
zdroje
(konfigurančí
soubor
hibernate.cfg.xml,
třídy
HibernateUtil, SlideTemplate a Slide). Kromě toho se v budoucnu počítá s užším propojením obou aplikací a použití stejných technologií k tomu připraví nejlepší podmínky.
Obr. 8 Diagram nasazení aplikace HTH. Použité technologie jsou přehledně shrnuty v diagramu nasazení (Obr. 8). Aplikace běží na serveru Tomcat v7.0 a komunikuje s databázemi přes rozhraní
18
Hibernate 4.3. Za výchozí databázový stroj je použit PostgreSQL ve verzi 9.4 14. Uživatelské rozhraní je vybudováno s pomocí frameworku (rozhraní) Vaadin 7. Uživatel pracuje s aplikací HTH ve webovém prohlížeči (testováno v Google chrome 42.0). Aplikační logika je vyvinuta na platformě Java.
3.4.1. Framework Hibernate15 Hibernate je rozhraní, které nám umožňuje spojení objektově orientovaného softwaru v Javě a relační databáze. Využívá techniky mapování dat mezi objektově orientovanou reprezentací a relačním datovým modelem. Hibernate tedy zajišťuje mapování tříd v Javě na databázové tabulky a datových typů v Javě na SQL16 příkazy [6]. Aktuálně existuje Hibernate ve verzi 5.0. Aplikace HTH, stejně jako aplikace Hypothesis, využívá Hibernate ve verzi 4.3.
3.4.2. Framework Vaadin17 Vaadin je rozhraní s licencí open source pro tvorbu webových aplikací v programovacím jazyku Java [7]. Obsahuje celou řadu užitečných komponent pro tvorbu uživatelských rozhraní. Aplikace vytvořené ve Vaadinu jsou přitom kompatibilní s nejnovějšími verzemi všech široce používaných webových prohlížečů [8]. V současné době existuje
Vaadin ve verzi 7.4. Aplikace HTH využívá
framework Vaadin ve verzi 7, stejně jako aplikace Hypothesis.
Dokumentace k PostgreSQL 9.4: http://www.postgresql.org/docs/9.4/interactive/index.html Dokumentace k Hibernate 4.3: http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html/ 16 SQL - Structured Query Language – strukturovaný jazyk používaný pro práci s daty v relačních databázových systémech [10]. 17 Book of Vaadin: https://vaadin.com/book/-/page/preface.html 14 15
19
Obr. 9 Architektura aplikace využívající Vaadin (9).
Na Obr. 9 se nachází ukázka typické architektury aplikace vytvořené s pomocí frameworku Vaadin. Serverově orientovaná architektura aplikace se skládá ze serverového rozhraní a klientského enginu. Tento engine běží ve webovém prohlížeči jako JavaScriptový kód. Logika uživatelského rozhraní běží jako Java servlet na aplikačním serveru [9].
20
4. IMPLEMENTACE APLIKACE TEMPLATE HANDLER
HYPOTHESIS
Aplikace HTH byla vyvíjena ve vývojovém prostředí Eclipse Java EE IDE for Web Developers18. Toto flexibilní vývojové prostředí je známé svou možností snadného rozšíření o celou řadů pluginů (zásuvných modulů). Pro účely této aplikace byl do vývojového prostředí Eclipse nainstalován plugin pro rozhraní Vaadin. Po nainstalování pluginu byl vytvořen nový projekt – Vaadin 7, čímž byla automaticky vygenerována jeho typická struktura (Obr. 10). Zdrojové kódy aplikace se nachází ve složce src. Důležitým souborem je v tomto typu aplikace soubor ivy.xml, ve kterém jsou definovány závislosti (dependency). Knihovny důležité pro fungování základní aplikace Vaadin 7 se nachází ve složce Libraries, další použité knihovny se zpravidla ukládají do složky lib (která se nachází ve složce WEB-INF). Soubory s šablonami definující použité styly najdeme ve složce VAADIN (v případě aplikace HTH byl použit styl Valo).
Obr. 10 Ukázka typické struktury webové aplikace Vaadin 7.
Pro komunikaci s databázemi byl do vývojového prostředí nainstalován také plugin pro rozhraní Hibernate. Na platformu Eclipse byl dále nainstalován
18
Eclipse Jave EE IDE: http://eclipse.org/
21
Vaadin Designer19 plugin. S pomocí tohoto zásuvného modulu měl být umožněn snadnější vývoj uživatelského rozhraní a designu aplikace. Tento nástroj však v dané verzi a v daném nastavení vývojového prostředí nebyl plně funkční, a tak jsem od jeho použití po důkladném zvážení upustil. Zdrojový kód funkční aplikace HTH je k nahlédnutí v archivu na přiloženém CD nosiči (Příloha č. 2).
4.1. Zprovoznění aplikace Hypothesis Template Handler V rámci této bakalářské práce jsem pracoval na zprovoznění aplikace HTH na webu (požadavek Geografického ústavu Masarykovy univerzity v Brně), a také v JSP/Servlet kontejneru Jetty.
4.1.1. Aplikace Hypothesis Template Handler na webu Aplikace HTH má sloužit jako doplňující modul k aplikaci Hypothesis. Z tohoto důvodu bylo již předem rozhodnuto, že bude umístěna na server spolu s aplikací Hypothesis. Na tento server byl umístěn soubor s aplikací HTH ve formátu WAR20, na databázový server byla nahrána databáze aplikace HTH (databáze Hypothesis již na databázovém serveru byla). K aplikaci HTH lze přistupovat pod odkazem: http://hypothesis.cz:8080/HypothesisTemplateHandler/ Nutno ovšem podotknout, že v současné době probíhá intenzivní práce na aplikaci Hypothesis. Součástí vylepšování této aplikace je také intenzivní testování
(které
probíhá
nejenom
v
rámci
České
republiky,
ale i v mezikontinentálním měřítku). Z těchto důvodů může být databázový server nedostupný pro aplikaci HTH21. Ve výjimečných případech může být nedostupná také samotná aplikace HTH.
Vaadin Designer: https://vaadin.com/designer WAR – Web application ARchive – zabalený soubor webové aplikace (analogie souboru ve formátu JAR). 21 Nedostupnost databázového serveru se projevuje tak, že není možné exportovat šablony z databází Hypothesis a HTH. Zároveň nelze uložit nové šablony do databáze HTH. 19 20
22
4.1.2. Aplikace Hypothesis Template Handler v kontejneru Jetty Součástí zadání této bakalářské práce bylo také zprovoznění aplikace HTH v JSP22/Servlet kontejneru Jetty23 na přiloženém médiu. V tomto směru bylo prozkoumáno velké množství potenciálních možností, ale zprovoznit aplikaci v JSP/Servlet kontejneru Jetty se zatím nepodařilo. Možným důvodem jsou specifika aplikace vytvořené s pomocí frameworku Vaadin, která funguje poněkud odlišně od běžných Java aplikací. Pro zprovoznění aplikace v kontejneru Jetty byly (neúspěšně) testovány především následující možnosti: -
Export aplikace HTH do souboru WAR a spuštění pomocí souboru Jetty Runner24.
-
Vytvoření nového projektu, který obsahuje modul Vaadin 7. Pro řízení závislostí v tomto projektu byl použit nástroj Maven25 (namísto souboru ivy.xml). Aplikace HTH tak musela být transformována na modul využívající Maven.
-
Vytvoření servletu k aplikaci HTH a spuštění tohoto servletu pomocí souboru JSP.
Na základě těchto skutečností se domnívám, že za daných nastavení není zprovoznění aplikace v JSP/Servlet kontejneru Jetty možné.
4.2. Ukázka a princip fungování aplikace HTH Aplikaci Hypothesis Template Handler lze rozdělit na dvě hlavní sekce - import šablon a export šablon. Export šablon lze dále rozdělit na export šablon z databáze Hypothesis a export šalon z databáze HTH.
JSP - JavaServer Pages – technologie umožňující vytvoření dynamicky generovaných webových stránek. 23 Jetty: http://eclipse.org/jetty/ 24 Ukázka spuštění webové aplikace s pomocí Jetty Runner: https://wiki.eclipse.org/Jetty/Howto/Using_Jetty_Runner 25 Maven: https://maven.apache.org/ 22
23
4.2.1. Import šablon Po stisknutí tlačítka Začít import šablon se objeví vyskakovací okno pro import šablon. V první fázi importu je uživatel vyzván k výběru obsahové šablony v souborovém systému počítače (Obr. 11). Výběr šablony je potvrzen tlačítkem Nahrát šablonu.
Obr. 11 Ukázka formuláře pro výběr obsahové šablony v souborovém systému počítače.
Pro nahrání do databáze HTH jsou přípustné pouze soubory ve formátu XML. Importovaná šablona je podrobena kontrole formátu, přičemž soubory v jiném formátu jsou zamítnuty a uživatel je následně vyzván k novému výběru souboru. Struktura importovaných šablon je po kontrole formátu podrobena základní validaci. K validaci byly vytvořeny dvě XML schémata - schéma pro validaci obsahové šablony a schéma pro validaci stylové šablony. Nutno ovšem podotknout, že validace zde slouží pouze jako prvotní kontrola importovaného souboru, která má za úkol odfiltrovat šablony se základními chybami ve struktuře. Pravidla pro tvorbu šablon pro aplikaci Hypothesis jsou poměrně volná, a proto i schémata pro jejich validaci jsou velmi volná. Zda jsou importované šablony v aplikaci Hypothesis opravdu funkční, tak nelze XML schématy
ověřit.
Jejich
funkčnost
definitivně
při manuálním spuštění testové otázky.
24
ověří
až
administrátor
Obr. 12 Ukázka formuláře pro základní informace o importovaných šablonách.
Jestliže jsou obě importované šablony validní, objeví se formulář pro základní informace o importovaných šablonách (Obr. 12). Uživatel zde má možnost vyplnit kontaktní údaje (jméno, příjmení, emailovou adresu) a blíže specifikovat importované šablony26. Ke specifikaci obsahu šablony slouží: - textové pole pro jakékoliv poznámky - check boxy sloužící pro tvorbu vyhledávacích tagů.
Do budoucna je plánováno vylepšení vyhledávání šablon pomocí tagů. Každá šablona bude povinně obsahovat tagy, které budou specifikovat její obsah. Tagy lze k importovaným šablonám přidávat již dnes – zaškrtnutí check boxu značí přítomnost příslušného tagu u dané šablony. Během nahrávání jsou šablony otestovány vyhledávacími funkcemi, které dokáží přítomnost tagu predikovat (v případě přítomnosti tagu je daný check box již dopředu zaškrtnutý). Definitivní volba je ovšem na uživateli. Uživatel má možnost k dané šabloně tagy přidat, případně může z dané šablony tagy odebrat. 26
V současné době je vyplnění těchto položek volitelné.
25
Vyplnění údajů o importovaných šablonách uživatel potvrdí tlačítkem Uložit údaje, čímž odstartuje vytvoření nového záznamu v databázi HTH27. V tomto okamžiku je také vygenerován e-mail, kterým je administrátor informován o novém záznamu v databázi.
4.2.2. Export šablon z databáze Hypothesis Po stisknutí tlačítka Začít export šablon z databáze Hypothesis se objeví vyskakovací okno pro export šablon. Samotný export šablon lze rozdělit do dvou částí – filtrování šablon podle různých kritérií a výběr konkrétní dvojice šablon. V databázi aplikace Hypothesis se nachází velké množství šablon různých funkcí. Aby se uživatel mohl efektivně dostat k šablonám s požadovanou funkcionalitou, může šablony specifikovat ve formuláři pro filtrování šablon (Obr. 13). K dispozici má následující filtrační mechanismy: -
fulltextové vyhledávání obsahuje šablona dotazník? typ odpovědi obsahuje šablona video? obsahuje šablona obrázek?
Princip vyhledávání šablon je velmi jednoduchý. Je založený na zkoumání šablony a hledání výskytu určitých textových řetězců. Textové řetězce, které jsou k tomuto hledání použity, byly stanoveny po rozsáhlé analýze mnoha obsahových a stylových šablon.
Uložení obsahové a stylové šablony, a také všech údajů o těchto šablonách do databáze tedy probíhá v rámci jedné transakce. 27
26
Obr. 13 Ukázka formuláře pro filtrování šablon z databáze Hypothesis.
Při použití fulltextového vyhledávání jsou vráceny šablony obsahující daný textový řetězec. Tento nástroj je velmi užitečný v případě, že uživatel ví, co hledá. Další možností upřesnění šablon jsou specifikace typu odpovědi na testovou otázku (výběr z možností, odpověď formou vyznačení území v mapě) a přítomnost nějakého prvku v šabloně (dotazník, videonahrávka, obrázek). Uživatel má možnost filtrovací nástroje libovolně kombinovat 28, případně nepoužít žádný (v tomto případě jsou vybrány všechny šablony). Filtrování šablon je dokončeno stiskem tlačítka Zobrazit šablony podle vybraných kritérií. V tomto okamžiku jsou z databáze Hypothesis vybrány šablony splňující požadovaná kritéria. Od této chvíle již není možné upřesňovat filtrovací kritéria. Pokud chce uživatel změnit filtrovací parametry, filtrování je nutné spustit od začátku.
Filtrovací nástroje lze libovolně kombinovat s jednou výjimkou – pokud šablona obsahuje dotazník, jsou automaticky vyloučeny zbylé možnosti specifikování formou výběru možností (pouze fulltextové vyhledávání je funkční). 28
27
Druhým krokem exportu šablon je výběr konkrétní dvojice šablon z těch šablon, které nebyly v předchozím kroku odfiltrovány, a jejich stažení do počítače. Ukázku okna pro tuto fázi exportu lze vidět na Obr. 14.
Obr. 14 Ukázka části okna pro výběr konkrétní dvojice šablon.
Dvojici šablon pro exportování lze zvolit v select boxu (v horní části tohoto okna). V případě exportu z databáze Hypothesis jsou jednotlivé dvojice šablon pojmenovány svým UID, za kterým je vypsána poznámka29. Po výběru konkrétní dvojice si uživatel může prohlédnout základní informace o šablonách a náhledy obsahové i stylové šablony (přepínáním mezi tlačítky Základní informace, Obsahová šablona a Stylová šablona). Ke stažení šablon ve formátu XML slouží tlačítka Export obsahové šablony a Export stylové šablony.
4.2.3. Export šablon z databáze HTH Export šablon z databáze HTH je velmi podobný s již popsaným exportem šablon z databáze Hypothesis. Filtrování šablon z databáze HTH obsahuje navíc výběr šablon podle jména jejich autora. Tento filtrovací mechanismus může být užitečný v případě, že máme nějakého oblíbeného autora, o kterém víme, že dělá kvalitní šablony. Jakmile jsou filtrací vybrány vyhovující šablony, dvojici šablon lze zvolit v select boxu, kde jsou šablony pojmenovány hodnotou id a jménem a příjmením autora. Při náhledu si uživatel také může zobrazit více informací k jednotlivým šablonám (jméno autora šablon, datum vložení, vyhledávací tagy).
Toto možná není ideální řešení pro uživatele, avšak šablony uložené v databázi Hypothesis v současné době jiné použitelné informace neobsahují. 29
28
4.3. Testování aplikace Funkční aplikace HTH byla prezentována mezi vědeckými pracovníky Geografického ústavu Masarykovy univerzity v Brně. Demonstrovaná funkcionalita aplikace byla ohodnocena jako naprosto vyhovující, aplikace tedy splňuje všechny stanovené požadavky. Zároveň se otevírá potenciální prostor pro další vylepšení, zejména implementace modulu pro autentizaci uživatelů, vytvoření verze aplikace v angličtině (a přepínání mezi těmito verzemi) a zefektivnění filtrování šablon. V blízké budoucnosti se také předpokládá užší propojení s aplikací Hypothesis.
29
5. ZÁVĚR Hlavní náplní této bakalářské práce bylo vytvoření manažera pro správu šablon pro aplikaci Hypothesis. Manažer byl pojmenován Hypothesis Template Handler (HTH). Mezi daší úkoly práce lze zařadit seznámení se s aplikací Hypothesis, analýza struktury její databáze a její popis pomocí diagramu ERD. Cílem práce bylo také provedení analýzy a návrhu aplikace HTH s použitím standardu UML. Stěžejní úkoly práce jsou postupně popsány v jednotlivých kapitolách. Ve druhé kapitole je představena aplikace Hypothesis. V této kapitole je nastíněn princip fungování aplikace Hypothesis a je tu vysvětleno, jakou roli v ní hrají obsahové a stylové šablony ve formátu XML. Zároveň je zde popsána struktura obou typů šablon. Součástí aplikace je také analýza databáze aplikace Hypothesis a její popsání pomocí ERD. Třetí kapitola se zabývá analýzou a návrhem aplikace HTH. Analýza aplikace zahrnuje celou řadu diagramů - od Diagramu případu užití, přes Diagramy aktivit, Diagram tříd, ERD až po Diagram nasazení. Jako další analytické nástroje byly použity textové specifikace případů užití. Čtvrtá kapitola se zabývá vlastní implementací alikace HTH. V této kapitole je okomentováno zprovoznění, a především popsáno fungování aplikace. V této kapitole jsou zmíněny také principy, na kterých jsou založeny některé funkce aplikace. Funkční aplikace HTH byla prezentována na Geografického ústavu Masarykovy univerzity v Brně. Podle vědeckých pracovníků tohoto ústavu stávající aplikace splňuje všechny požadavky, které na ni byly kladeny. Zároveň byly objeveny směry, ve kterých by se dala aplikace v budoucnu vylepšit. Namátkou lze zmínit plánovanou implementaci angličtiny do aplikace HTH a vytvoření přepínače mezi češtinou a angličtinou (a v budoucnu případně dalším světovým jazykem). Jedním
ze
stěžejních
úkolů
aplikace
bylo
vytvoření
mechanismu
pro vyhledávání šablon v databázích. V aplikaci HTH je implementováno několik vyhledávacích funkcí, které vyhledávání požadovaných šablon usnadňují. Vyhledávání je založeno na prinicpu hledání určitých textových řetězců v šablonách. S přibývajícími šablonami v databázi však pravděpodobně bude žádoucí vyhledávání šablon vylepšit. V tomto směru bylo, prozatím pouze 30
v databázi importovaných šablon, zavedeno specifikování šablon pomocí vyhledávacích tagů. Lze očekávat, že vyhledávání pomocí tagů by bylo přesnější a efektivnější než současný způsob vyhledávání. Vyžadovalo by to však úpravu stávající databáze a doplnění vyhledávacích tagů ke všem již existujícím šablonám. Myšlenka vytvoření manažera pro správu šablon pro aplikaci Hypothesis má své opodstatnění. Aplikace HTH, stejně jako aplikace Hypothesis, budou mít své praktické uplatnění. Pro obě aplikace přitom existuje spousta nápadů, jak by se daly dále rozvíjet. Obě aplikace jsou svou funkcionalitou úzce spjaté, a jejich případaný rozvoj je tedy nutné pečlivě koordinovat.
31
Seznam použité literatury 1. ŠTĚRBA, Zbyněk. Objektivizace a optimalizace hodnocení kartografické symboliky pro mapy v krizovém řízení. Brno : Masarykova univerzita, 2012. str. 96. 2. BRAY, Tim, a další. W3C. Extensible Markup Language (XML) 1.0 (Fifth Edition). [Online] 26. 11 2008. [Citace: 27. 4 2015.] http://www.w3.org/TR/xml/. 3. LAURENT, Simon St. Tvorba internetových aplikací v XML. Forster City : IDG Books Worldwide, 1998. ISBN: 80-7226-170-3. 4. MORONG, Kamil. Dokumentace k SW Hypothesis, verze 1.0, interní dokument. Brno : Tilioteo Ltd., 2014. 5. SOMMERVILLE, Ian. Software engineering, 8. edition. Harlow : Pearson Education limited, 2007. ISBN: 978-0-321-31379-9. 6. Red Hat. Hibernate Getting Started Guide. 2015. 7. DUARTE, Alejandro. Vaadin 7 UI Design By Example. Birmingham : Packt Publishing Ltd., 2013. ISBN: 978-1-78216-226-1. 8. HOLAŇ, Jaroslav
a KVASNOVSKÝ, Ondřej.
Vaadin
7
Cookbook.
Birmingham : Packt Publishing Ltd., 2013. ISBN: 978-1-84951-880-2. 9. GRÖNROOS, Marko. Book of Vaadin: Vaadin 7 Edition - 4th Revision. místo neznámé : Vaadin Ltd., 2015. 10. POKORNÝ, Jaroslav. Databázové systémy a jejich použití v informačních systémech. Praha : Academia Praha, 1992. ISBN: 80-200-1177-8. 11. SILBERSCHATZ, Abraham, KORTH, Henry F. a SUDARSHAN, S. Database system concepts, Fifth edition. New York : International edition, 2006. ISBN: 007-124476-X.
32
Seznam použitých zkratek 1) 2) 3) 4) 5) 6) 7) 8) 9) 10)
ERD – Entity-Relationship Diagram (entitně-relační diagram) HTH – Hypothesis Template Handler JSP - JavaServer Pages SQL - Structured Query Language UID – Unique Identifier (unikátní identifikátor) UML – Unified Modeling Language URL – Uniform Resource Locator W3C – World Wide Web Consortium WAR – Web application Archive XML – eXtensible Markup Language
33
Seznam příloh Příloha č. 1 Entitně – relační diagram (ERD) aplikace Hypothesis. Příloha č. 2 CD nosič – archiv se zdrojovým kódem aplikace HTH.
34
Příloha č. 1 Entitně – relační diagram (ERD) aplikace Hypothesis.