Masarykova univerzita

Fakulta informatiky

DIPLOMOVÁ PRÁCE

WEBDAV A DOCBOOK JAKO PROTOKOL A FORMÁT PRO E­LEARNING

Bc. Ondřej Skřehota Brno 2006 PROHLÁŠENÍ:

Prohlašuji, že jsem předloženou diplomovou práci vypracoval samostatně za pomoci vedoucího diplomové práce, s použitím citované literatury, ostatních informačních zdrojů a výsledků vlastního šetření, které jsou uvedeny v této práci.

V Brně dne ……………… ….………………...

Ondřej Skrehota Poděkování :

Děkuji touto cestou panu RNDr. Tomáši Pitnerovi, PhD., za odborné vedení při

zpracování této práce a ochotu při poskytování cenných rad.

RESUMÉ

Předmětem této diplomové práce je především vytvoření úložiště dokumentů DocBook používaných pro elektronickou podporu výuky přístupného protokolem WebDAV. K tomuto účelu byl rozšířen projekt Jakarta Slide, čímž vznikl projekt DavLearn.

Práce se rovněž věnuje popsání možností protokolu WebDAV a představuje pravděpodobně první českou obsáhlejší dokumentaci projektu Jakarta Slide. Další pozornost je rovněž věnována vysvětlení značkování DocBook. KLÍČOVÁ SLOVA

Jakarta Slide, WCK, WebDAV, DocBook, DavLearn, XSLT transformace, CMS, content repository Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

OBSAH

Úvod...... 7

Část první...... 8

1 Exkurze do značkování DocBook...... 8 1.1 XML...... 8 1.1.1 XML – základní pojmy...... 9 1.2 DocBook – stručný úvod a historie...... 10 1.2.1 Typický dokument ve formátu DocBook – použití značkování...... 11

2 WebDAV...... 15 2.1 Úvod...... 15 2.2 Co je to WebDAV...... 15 2.3 Koncepce protokolu...... 16 2.4 Jak WebDAV funguje...... 16 2.5 Podpora...... 17 2.5.1 Nativní podpora operačním systémem...... 18 2.5.2 Podpora obsažená v aplikacích...... 19 2.6 WebDAV a publikační systém...... 20 2.7 WebDAV a publikační systém – strana serveru...... 22 2.8 WebDAV – praktická implementace...... 22 2.8.1 Podpora ze strany web serveru...... 22 2.8.2 Využití implementace třetích stran...... 23

3 Jakarta Slide...... 24 3.1 Úvod...... 24 3.2 Fungování...... 25 3.3 Nasazení Jakarta Slide...... 28

6 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

3.4 Jakarta Slide z pozice uživatele...... 29 3.5 Konfigurace Jakarta Slide...... 30 3.6 Úložiště v Jakarta Slide...... 30 3.6.1 Volba vhodného úložiště (store)...... 30 3.7 Implementace vlastního úložiště...... 32 3.7.1 Implementace bez použití WCK...... 33 3.7.2 Implementace s použitím WCK...... 33

Část druhá – DavLearn...... 35

1 Analýza...... 35 1.1 Úvod...... 35 1.2 Analýza požadavků...... 36 1.2.1 Základní analýza tvořeného systému...... 36 1.3 Analýza prostředí...... 40

2 Návrh řešení projektu DavLearn...... 40 2.1 Úvod...... 40 2.2 Návrh systému...... 40 2.2.1 Jádro aplikace...... 41 2.2.2 Transformační funkční celek...... 41 2.2.3 Část starající se o bezpečnost...... 42 2.3 Fungování systému...... 43

3 Popis implementace...... 45 3.1 Implementace rozhraní jádra systému...... 45 3.2 Implementace úložiště transformací...... 46 3.3 Implementace úložiště uživatelů...... 46

4 Dokumentace systému...... 46 4.1 Licence...... 46 4.2 Administrátorská dokumentace...... 47 4.2.1 Instalace...... 47 4.2.2 Konfigurace...... 47

7 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

4.2.3 Přidávání a odebírání kursů...... 48 4.2.4 Přidávání uživatelů...... 49 4.2.5 Přidávání transformací...... 50 4.2.6 Adresářová struktura úložišť programu...... 51 4.3 Uživatelská dokumentace...... 55 4.3.1 Připojení k systému...... 55 4.3.2 Používání systému tutorem...... 57 4.3.3 Používání systému studentem...... 57 Technická dokumentace...... 57

5 Závěr...... 58 5.1 Možnosti dalšího vývoje...... 58

Použité zdroje...... 60

ÚVOD

Snahou autora této práce bylo vytvoření úložiště pro dokumenty DocBook, které jsou, mimo jiné, velmi vhodné pro použití při elektronické podpoře výuky. Úložiště má automaticky provádět transformaci těchto dokumentů do formátů čitelných pro uživatele, což usnadňuje práci a šetří čas uživatele.

Dalším cílem bylo umožnění komunikace tohoto úložiště s okolím s pomocí protokolu WebDAV,

8 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning který je relativně málo známou, leč velmi zajímavou technologií.

Protože bylo po dlouhém hledání zvoleno použití Jakarta Slide jako způsobu implementace podpory tohoto protokolu, zabývá se tato práce rovněž tímto velmi zajímavým projektem Apache Foundation, ke kterému, bohužel, existuje pouze velmi málo dokumentace, v našem jazyce pak prakticky žádná.

Čtenář této práce by tedy měl po jejím přečtení pochopit fungování projektu DavLearn, což je název vytvořeného úložiště, ale měl by se rovněž dozvědět více o protokolu WebDAV, projektu Jakarta Slide a dalších souvisejících technologiích.

Formálně je práce členěná do dvou částí. První část, která je spíše teoretická, se zabývá se postupně značkováním DocBook, protokolem WebDAV a Jakarta Slide. Stěžejní kapitolou první části je ta, která se zabývá projektem Jakarta Slide – jedná se zde o pravděpodobně první česky psanou obsáhlejší dokumentaci tohoto velmi zajímavého, leč málo dokumentovaného a rozsáhlého projektu.

Druhá část se již zabývá hlavním cílem této práce, tedy úložištěm dokumentů DavLearn. Čtenář bude postupně seznámen s požadavky, které byly kladeny na systém při jeho vytváření, návrhem řešení, implementací a rovněž způsobem, jak se systémem pracovat.

Nedílnou a velmi důležitou částí této práce je CD příloha, která obsahuje program DavLearn, jeho zdrojové kódy, ale rovněž velké množství další dokumentace.

9 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

.ČÁST PRVNÍ

1 EXKURZE DO ZNAČKOVÁNÍ DOCBOOK

Chceme­li pochopit princip značkování DocBook, musíme nejprve pochopit principy jazyka XML, jehož je DocBook aplikací.

1.1 XML

Následující text rozhodně není pokusem o vysvětlení jazyka XML v jeho komplexitě. Jedná se spíše o vysvětlení základních pojmů (pokud tedy XML alespoň zběžně znáte, můžete ve čtení pokračovat u další subkapitoly), potřebných pro pochopení principů značkování DocBook. Nejsou proto zmíněny všechny vlastnosti XML, pouze pojmy, se kterými se čitatel této práce setká.

XML je zkratkou pro eXtensible Markup Language. Do Češtiny bychom to mohli přeložit jako rozšiřitelný značkovací jazyk. Pokud tedy analyzujeme jednotlivá slova, zjistíme, že XML je:

➢ značkovací jazyk – tedy jazyk pro popis jiných jazyků. S pomocí tohoto metajazyka můžeme vytvořit jakousi gramatiku pro jazyk, který chceme vytvořit. Můžeme určit pravidla.

➢ rozšiřitelný – tato vlastnost jazyka XML znamená, že slova tohoto metajazyka si můžeme volit sami. Nejsme vázáni na jakýsi slovník, který říká, kterými slovy můžeme jazyk popisovat.

Jazyk XML je jakýmsi potomkem a podmnožinou značkovacího jazyka SGML, což je velmi obsáhlý standard, který je ovšem velmi složité implementovat. Nedošlo tak k jeho většímu rozšíření. S ohledem na to byl vytvořen standard XML, jehož implementace je mnohem snazší.

10 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Za celým standardem1 stojí organizace W3C2, která dala vzniknout mnoha dalším rozšířeným standardům a jazyk XML je v současnosti velmi rozšířen. Používá se s výhodou pro výměnu dat a je podporován mnoha výrobci a aplikacemi.

Předtím, než si stručně předvedeme praktickou aplikaci, je nutné znát několik pojmů.

1.1.1 XML – ZÁKLADNÍ POJMY

Nyní si představíme nejdůležitější pojmy, které budeme v dalším textu zmiňovat a jejichž znalost je pro jeho chápání nezbytná.

• Element

Element je základním pojmem. Jedná se o fundamentální jednotku informace v XML dokumentu. Element může obsahovat další elementy. Každý XML dokument musí obsahovat jeden kořenový element, do nějž jsou ostatní elementy vnořeny. Co se vnořování elementů týče, platí jednoduché a důležité pravidlo, že každý element musí být celý vnořen v jiném elementu.

Každý element se skládá z otevíracího tagu (start tag), uzavíracího tagu (end tag) a z obsahu. V praxi potom můžeme vytvořit např. element ukázka:

obsah elementu ukázka

• Otevírací tag vypadá tak, že do znaků „<“ a „>“ uzavřeme jméno elementu.

• Uzavírací tag se od otevíracího liší pouze tím, že za znak „<“ přidáme lomítko „/“.

• Obsah elementu je vše, co se nachází mezi otevíracím a uzavíracím tagem.

Speciálním případem je prázdný element, tedy element, jehož obsah je prázdný. Takový element můžeme rovněž zapsat následovně: .

1 W3C označuje své standardy poněkud nešťastně pouze jako doporučení „recommendations“ 2 www.w3c.org

11 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

• Atribut

Každý element může obsahovat jeden nebo více atributů. Každý atribut nám podává další informace o konkrétním elementu.

V praxi to vypadá následovně:

• DTD

Jak poznáme, že XML dokument, který jste vytvořili nebo ke kterému jste se dostali, obsahuje pouze ty elementy a atributy, kterým rozumíte Vy, nebo Váš program – tedy že dokument je validní?

Jednou z možností, a určitě ne jedinou, je použití DTD, což je zkratka pro definici typu dokumentu (document type definition).

DTD je jakousi množinou pravidel. Říká, které elementy dokument může obsahovat, určuje pravidla pro jejich vnořování a vymezuje, jaké atributy mohou elementy obsahovat a jakou hodnotu mohou obsahovat.

Zjednodušeně řečeno, jedná se o jakousi šablonu. Například právě DocBook není ničím jiným, než právě DTD.

• Transformace pomocí XSLT

Jakmile vytvoříme nějaký XML dokument, asi si začneme klást otázku, jak jej prezentovat ve vhodné formě – nebudeme nejspíš chtít, aby ostatní viděli tagy, které jim asi nebudou nic říkat. Například místo tučný text, budeme chtít, aby se v námi vytvořeném dokumentu objevilo pouze tučný text. Jak toho ale dosáhnout?

Řešením může být standard XSLT, který popisuje mechanismus pro manipulaci se zdrojovými daty XML do formátu vhodného pro publikaci. Zůstane nám tak jeden dokument s obsahem, který budeme prezentovat různou formou.

12 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

1.2 DOCBOOK – STRUČNÝ ÚVOD A HISTORIE

Stejně, jako není jednoduché vytvořit kvalitní vlastní značkování pro tvorbu dokumentů, není ani vytvoření souboru stylů XSLT triviální záležitostí – vyžaduje zkušenosti a zabere nemalé množství času.

Proč ale znovu vymýšlet to, co již existuje. Značkování, které je vhodné pro mnoho typů dokumentů se jmenuje DocBook.

Historie tohoto značkování začíná před více než 12 lety. V roce 1991 vznikl společný projekt HaL Computer Systems a vydavatelství O'Reilly. Později se přidaly další významné firmy a postupně vyvíjely a zlepšovaly toto značkování. Uveďme jen některé organizace a společnosti, které DocBook používají:

● FreeBSD Documentation Project

● GNOME Documentation Project

● KDE Documentation Project

● Caldera Systems

● Mandrakesoft

● Red Hat

● SuSE

● Linux Documentation Project

DocBook bylo původně aplikací SGML – XML verze přišla až později. V současnosti se o rozvoj tohoto značkování stará sdružení OASIS, které vzniklo kolem roku 1998.

Původním záměrem bylo vytvořit značkování nebo také prostředí pro tvorbu dokumentace a formát DocBook měl umožnit její vzájemnou výměnu. Různé společnosti, které byly v projektu zapojeny zapracovaly své požadavky do projektu a značkování se postupně stalo velmi rozsáhlým. Proto také

13 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning toto značkování poskytuje možnost psát mnoho druhů dokumentů – na druhou stranu se může jevit pochopení tohoto značkování jako složitější.

DocBook není ale pouze značkování. Neodmyslitelnou částí jsou již vytvořené soubory stylů XSLT, které z DocBooku dělají tak silný nástroj. Dobře známy jsou styly, které umožňují transformovat dokumenty do formátů HTML a XHML. Lze tak vytvářet velmi pokročilé a propojené dokumenty pro publikaci v síti Internet. Rovněž lze vytvářet tzv. slides, které umožňují vytvářet prezentace a používat je např. ve spojení s dataprojektorem. Dále existují transformační styly pro formát PDF, RTF, javahelp a mnohé další.

Zde by rád autor trochu odbočil a uvedl, že taková transformace není vždy zcela pohodlná a zbytečně uživatele zatěžuje – proto bylo dalším cílem praktické částí této práce tuto transformaci maximálně usnadnit.

1.2.1 TYPICKÝ DOKUMENT VE FORMÁTU DOCBOOK – POUŽITÍ ZNAČKOVÁNÍ

ZÁKLADY

Typicky je dokumentem v DocBooku kniha, ale existují samozřejmě i další možností – . článek a kapitola.

Ve všech případech ale existují stejné postupy, kterými je dokument vytvářen. Rozdíl je pouze v tom, zda­li daný text označíme jako součást článku, kapitoly nebo knihy. Nejprve si tedy ukážeme, jakým způsobem se text v DocBooku zapisuje.

Postupně si ukážeme, jak zvýraznit text, jak vytvořit odstavec nebo seznam – ať již s odrážkami nebo číslovaný, což je asi nejčastější činnost při tvorbě nějakého dokumentu – tedy si vysvětlíme použití blokových elementů, což je název používaný pro elementy k tomuto účelu určené.

Nejprve se zaměříme na to, jak rozdělit text do odstavců, jak určité části textu zvýraznit aj. Jak již bylo uvedeno v části věnované základům XML, je dokument tvořen elementy. Elementy tvoříme tak, že obsah elementu uzavřeme do tagů se jménem elementu. Právě tím, že nějaký text uzavřeme do nějakého tagu, a vytvoříme tak element, dáme označenému textu určitý další význam – přidáme další metadata.

Zde je důležité připomenout jedno ze základních pravidel XML, tedy že existuje jeden kořenový

14 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning element, do kterého jsou ostatní vnořeny a to tak, že každý element musí být celý obsažen v jiném elementu, tedy že elementy nám nemohou „prolínat“. Pokud například chceme od poloviny jednoho odstavce až do poloviny druhého odstavce text zvýraznit, musíme tak učinit v každém odstavci zvlášť. Do budoucna bude stačit, když si zapamatujeme, že pokud do nějakého elementu umístíme otevírací tag, musíme do téhož elementu umístit i tag uzavírací.

V následující tabulce je vždy uveden název elementu a jeho stručný popis. V praxi potom text např. zvýrazníme tak, že zjistíme název potřebného elementu pro zvýraznění – v tomto případě Emphasis a do textu jej zapíšeme následovně: Zvýrazněný text.

Název Elementu Popis Elementu

Abbrev Zkratka – zpravidla následována tečkou.

Acronym Často používaná zkratka tvořená iniciálami slov, ze kterých je složena.

Emphasis Zvýraznění textu.

Footnote Poznámka pod čarou.

Para Odstavec.

Quote Text v uvozovkách

Seznamy

V DocBooku můžeme vytvářet celou řadu seznamů – ať už se jedná o odrážky, číslované seznamy nebo různé jiné druhy. Následující tabulka uvádí seznam některých z nich:

Název Elementu Popis Elementu

SimpleList Nejjednodušší typ seznamu. Jednotlivé položky jsou tvořeny elementy

Member.

15 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Název Elementu Popis Elementu

ItemizedList Seznam tvořený odrážkami. Jednotlivé položky jsou tvořeny elementy

ListItem.

OrderedList Číslovaný seznam. Jednotlivé položky jsou tvořeny elementy ListItem.

Samozřejmě existuje řada dalších možností, jak vytvořit seznamy3.

Nyní, když víme, jak strukturovat text do odstavců, jak daný text zvýraznit a jak vytvořit různé seznamy, předvedeme si, jak vypadá dokument DocBook jako celek.

Jak již bylo dříve uvedeno, v DocBooku lze vytvořit celou řadu dokumentů. První věc, kterou uděláme, když dokument tvoříme je, že si zvolíme, čemu se výsledek má nejvíce podobat – zda­li knize nebo článku. Podle toho vybereme kořenový element.

ČLÁNEK, NEBO KNIHA?

Pokud jako kořenový element použijeme element Article, znamená to, že jsme se rozhodli psát jednodušší a kratší dokument – např. právě článek nebo třeba esej.

Pakliže vytváříme rozsáhlejší dokument s potřebou složitějšího členění, použijeme jako kořenový element ten, který má název Book.

Na obrázku č. 1 jsou schémata typických dokumentů s kořenovým elementem Book, resp. Article.

3 Více na http://www.oasis­open.org/docbook/documentation/reference/html/docbook.html

16 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Obrázek 1: Struktura dokumentu DocBook Pro oba druhy dokumentů jsou společné meta informace. Co to znamená, si teď vysvětlíme. Meta informace jsou další informace o daném elementu – v našem případě o knize resp. článku. Sem uvádíme bibliografické informace jako jsou jméno autora či autorů, název knihy či článku, datum vydání a případně různé informace související s autorským právem.

V případě knihy zapouzdříme meta informace do elementu BookInfo4, v případě článku do elementu ArticleInfo5. Zobrazení těchto informaci je většinou v transformovaných dokumentech potlačeno.

4 Více na http://www.docbook.org/tdg/en/html/bookinfo.html 5 Více na http://www.docbook.org/tdg/en/html/articleinfo.html

17 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Element ToC znamená zkratku pro table of contents, tedy obsah. Pokud chceme vytvořit obsah dokumentu, stačí když pouze vložíme tento element do dokumentu na místo, kde si přejeme mít obsah a ten bude v transformovaném dokumentu automaticky vytvořen. Podobně je to se slovíčkem pojmů – používáme element glossary.

Knihu členíme do kapitol – k tomuto účelu slouží element chapter a na konec knihy můžeme přiložit přílohu nebo přílohy – použijeme elementu appendix.

Kapitolu i článek můžeme dále strukturovat pomocí tzv. sekcí. K dispozici jsou elementy Sect1, Sect2 … Sect5. Meta informace k sekcím můžeme vložit do elementu jehož název je tvořen jménem sekce a příponou info – např. pro Sect1 je to Sect1Info.

S informacemi, které zde získáte, můžete vytvořit svůj první dokument (inspirovat se můžete na CD přiloženém k této práci) – bude sice velmi jednoduchý, ale s tím, jak si postupně tento způsob tvorby dokumentů zažijete, získáte potřebnou rutinu a nebude problém seznámit se s dalšími elementy. S DocBookem je to podobné jako s cizím jazykem. U jazyka si napřed postupně osvojíme jistá pravidla a následně se učíme nová a nová slovíčka, čímž získáme větší vyjadřovací schopnost. V případě DocBooku jsou oněmi slovíčky názvy elementů. Stejně jako musíme vědět, co dané slovíčko znamená, co vyjadřuje, musíme stejné informace znát i o elementu.

2 WEBDAV

2.1 ÚVOD

Tato kapitola se věnuje popisu protokolu WebDAV, který je jedním z pilířů, na kterém stojí projekt DavLearn. Většina interakce s programem se totiž odehrává prostřednictvím právě tohoto protokolu.

2.2 CO JE TO WEBDAV

Protokol WebDAV je sadou rozšíření protokolu HTTP, která uživatelům umožňuje společně vytvářet

18 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning a spravovat soubory na vzdálených webových serverech. Rovněž tak dovoluje o souborech ukládat metadata. WebDAV je zkratkou pro Web­based Distributed Authoring and versioning[1]. Organizací, která je v pozadí tohoto protokolu je dobře známá IETF. V rámci IETF pracuje skupina (working group), která je pojmenovaná stejně jako protokol. Skupina vznikla kolem roku 1996 v reakci na fakt, že protokol HTTP nesplňoval požadavky uživatelů nástrojů pro tvorbu obsahu.

Snahou bylo (a stále je), udělat z Internetu médium na kterém je umožněno nejen čtení, ale i zápis. Protokol je definován zejména v RFC 25186 a nachází se ve fázi „proposed standard“, což znamená, že na jeho definitivní podobě se stále pracuje. S ohledem na fakt, že na definici protokolu se podílí zástupci velkých společností reprezentující výrobce operačních systému nebo alespoň společnosti mající na vývoj všech hlavních operačních systémů značný vliv, je autor této práce přesvědčen, že tento protokol je perspektivní i do budoucna.

V současnosti je protokol WebDAV nativně podporován značným množstvím operačních systémů (Linux, Unix, Windows i MacOS).

2.3 KONCEPCE PROTOKOLU

Protokol nemá umožňovat pouze ukládat určitá data v podobě souborů (resources) adresovaná svými identifikátory (URI), ale je navržen tak, aby mohl uchovávat rovněž metadata o souborech – je tedy mnohem flexibilnější, než protokoly v dnešní době nejčastěji používané.

Výhodou je koncepce protokolu jako rozšíření HTTP, která s sebou mimo jiné nese následující přednosti:

● oproti zastarávajícímu FTP umožňuje např. silnou autentizaci, šifrování podporu proxy a cachingu

● rovněž oproti FTP umožňuje WebDAV jedno TCP spojení pro několik přenosů (na rozdíl od vždy nově vytvářeného spojení a kontrolního spojení)

6 Více o RFC se dozvíte na www.ietf.org (anglicky)

19 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

● jen těžko se dá najít oblast, ve které by se WebDAV nedokázal uplatnit na místo dnes běžně používaných specializovaných protokolů (POP3, IMAP, NTTP)

Poslední zmiňovaná výhoda by se dala přeložit tak, že WebDAV by byl použitelný jako jakýsi „super protokol“, který by všechny ostatní protokoly dokázal nahradit. A skutečně, i když toto autor této práce v žádném případě nepředpokládá, kombinace možností ukládat jakákoliv data a metadata, možnost silného zabezpečení a další výhody do budoucna návrhářům síťových aplikací dovolují o WebDAVu uvažovat jako o alternativě k běžně používaným řešením.

Nemusíme se tak obávat, že by se v případě, že WebDAV použijeme, objevila potřeba funkcionality, kterou protokol poskytnout neumí.

2.4 JAK WEBDAV FUNGUJE

Podíváme­li se na fungování protokolu podrobněji, jedná se o rozšíření protokolu HTTP/1.1 – jsou přidány nové HTTP metody a hlavičky. Navíc WebDAV specifikuje, jak používat nová rozšíření, formátovat těla dotazů odpovědí atd.

Konkrétní metody jsou:

● PROPFIND — metoda pro získání vlastností (properties) nějakého zdroje (resource) uchovávaných jako XML. Metoda je přetížená, takže se dá tímto způsobem získat i struktura (de facto adresářová) vzdáleného systému.

● PROPPATCH — Umožňuje během jednoho atomického aktu změnit nebo smazat několik vlastností (properties).

● MKCOL — Metoda pro vytváření kolekci (což jsou v podstatě adresáře).

● COPY — Kopíruje zdroj z jednoho URI na druhý.

● MOVE — Přesunuje zdroj z jednoho URI na druhý.

● LOCK — WebDAV nabízí zamykání zdrojů a touto metodou je zpřístupňuje.

● UNLOCK — Odebere zámek ze zdroje.

20 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

● SEARCH — Metoda pro vyvolání vyhledávání na straně serveru.

V praxi to znamená, že pokud chceme tímto protokolem komunikovat, musíme mít na jedné straně server, který bude poskytovat funkcionalitu a klienta na straně druhé, který bude tuto funkcionalitu využívat.

Pokud si dovolíme určité zjednodušení, bude serverová strana vypadat jako souborový systém, resp. se tak bude tvářit. Bude poskytovat funkcionalitu pro manipulaci se soubory a rovněž (což je v případě použití v publikačním systému důležité) funkcionalitu pro jednoduché ukládání metadat a další manipulaci s nimi. Na druhé straně bude klient, který bude funkcionality nabízené serverem využívat. Klienta si můžeme představit jako samostatný program nebo jako součást nějakého programu nebo dokonce operačního systému (což je již v několika případech realitou).

Protože se jedná o protokol, je pouze na nás jak jej implementujeme nebo jakou implementaci si vybereme. Nejsme tak omezeni ve výběru programovacího jazyka nebo podporovaného operačního systému.

2.5 PODPORA

Můžeme mluvit o podpoře protokolu WebDAV ve třech rovinách:

1. podpora operačních systémů samotných

2. podpora protokolu různými existujícími aplikacemi

3. existující klientské knihovny nebo serverové implementace protokolu

2.5.1 NATIVNÍ PODPORA OPERAČNÍM SYSTÉMEM

Přes původní skepticismus autora se ukázala podpora implementována přímo v operačních systémech (nebo jejich podstatných součástech) jako značná – v porovnání s pozorností, které se samotnému protokolu na (odborné) veřejnosti dostává.

21 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Podpora přímo na úrovni operačního systému znamená často značné ulehčení práce nejen uživatelům, kteří již nemusejí instalovat žádný dodatečný software nebo dokonce nastavovat vše potřebné kdesi hluboko v systému, ale znamená rovněž značnou úsporu času a starostí těm, kdo se chystají protokol WebDAV použít podobně, jako to učinil autor této práce.

Navíc, pokud bychom pojem „platformní nezávislost“ vztáhli rovněž na komunikační protokoly, můžeme za platformně nezávislý označit teprve takový protokol, pro nějž existují implementace na všech resp. většině operačních systémech.

PODPORA PRO OPERAČNÍMI SYSTÉMY LINUX

Podpora WebDAVu je obsažena v prohlížeči Konqueror, který je součástí prostředí KDE. Prostředí Gnome obsahuje podporu protokolu ve správci souborů Nautilus.

Pro Linux rovněž existuje WEB­DAV Linux File system (davfs2), což je ovladač souborového systému, který umožňuje připojit (mount) WebDAV server podobně, jako např. CD­ROM vsunutý do mechaniky. Mnohé distribuce Linuxu již balíček davfs2 obsahují a tak je např. v distribuci Mandrake 10.1 připojení takového souborového systému velice snadné.

PODPORA OPERAČNÍM SYSTÉMEM WINDOWS

Protože se na tvorbě tohoto protokolu aktivně podílela společnost Microsoft, je jeho podpora vestavěna také do jeho systémů a to poměrně značnou měrou. Microsoft tuto funkcionalitu nazývá Web Folders a funguje tak, že se WebDAV server, který připojíme, se tváří jako složka v našem počítači7.

Je očividné že také společnost Microsoft myslí podporu tohoto protokolu vážně, neboť je již delší dobu podporován také jejím kancelářským balíkem Office.

PODPORA OPERAČNÍM SYSTÉMEM MACOS

Podpora v systému OS X je obsažena nativně a její využití je snadné. Další informace získáte např. zde: http://www.oreillynet.com/pub/a/network/2000/11/10/osx_webdav/osx_webdav.html.

7 podrobnější informace získáte např. zde: http://wings.buffalo.edu/computing/documentation/win/webfolders.html (anglicky)

22 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

2.5.2 PODPORA OBSAŽENÁ V APLIKACÍCH

Zde budou zmíněny jednak programy, které jsou určeny speciálně pro komunikaci prostřednictvím WebDAVu, ale také aplikace, které umožňují komunikaci tímto protokolem jako jednu z možností ukládat soubory. Dále to budou servery, k jejichž obsahu se dá přistupovat tímto způsobem.

SPECIALIZOVANÉ APLIKACE

Pravděpodobně nejrozšířenější aplikací tohoto typu je DAV Explorer zdarma dostupný z http://www.ics.uci.edu/~webdav/.

Jedná se o Java aplikaci s grafickým rozhraním. Aplikace běží na všech hlavních operačních systémech a je dostupná zdarma bez omezení.

PODPORA V OSTATNÍCH PROGRAMECH

S ohledem na účel této práce zmiňme pouze velmi neúplný seznam produktů podporujících WebDAV8 (laskavý čtenář snad promine míchání open­source a komerčních produktů):

● Apple iCal

● Eclipse IDE

● Adobe (dříve Macromedia) Contribute

● Adobe (dříve Macromedia) Dreamweaver

● Microsoft Internet Explorer

● Microsoft Office

● Microsoft Outlook Express

● Mozilla Calendar

● Novell Evolution

● Open Source Applications Foundation's Chandler (PIM)

8 úplnější seznam naleznete zde: http://en.wikipedia.org/wiki/WebDAV (anglicky)

23 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

● SAP NetWeaver (Knowledge Management)

● skEdit (textový editor)

● WebDrive – mapování WebDAV serveru na virtuální disk

A ještě zmiňme některé servery, které podporu rovněž obsahují:

● Apache HTTP server

● Jakarta Tomcat

● Jakarta Slide (tomu se budeme věnovat velmi podrobně)

● Subversion

● Microsoft IIS

● Microsoft Exchange

jak již bylo zmíněno, WebDAV je protokol a ne API, proto by se mohlo zdát, že jeho implementace bude složitá. To, že implementovat protokol a ne API je složitější je sice pravda, pro protokol WebDAV již ale několik hotových API existuje. Jsou podporovány různé programovací jazyky, takže pravděpodobnost, že někdo již vykonal spoustu práce ze nás je velmi vysoké.

V této části budeme mluvit pouze o podpoře, která je včleněna v některých komerčních či nekomerčních programech které mohou posloužit jako inspirace. Více o těchto aplikacích naleznete v dalších kapitolách, které ovšem budou omezeny na využití WebDAVu v publikačních systémech. Rovněž lze nalézt článek na toto téma [4]. Především WebDAV podporují některé nástroje pro tvorbu obsahu webu. Ať již se jedná o nekomerční Screem nebo Quanta Plus, šířené pod GPL nebo komerční Macromedia Dreamweaver a Adobe GoLive – ve všech případech lze s pomocí těchto nástrojů web vytvořit a poté jednoduše, přes protokol WebDAV, obsah nahrát na server.

Rovněž je možné WebDAV využívat v Adobe Acrobatu, Photoshopu a Illustratoru. Dá se tedy říci, že ač relativně neznámý, je tento protokol podporován nejen napříč operačními systémy ale rovněž i napříč výrobci softwaru.

24 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

2.6 WEBDAV A PUBLIKAČNÍ SYSTÉM

Důvodem, proč se tato práce rovněž zabývá vztahem WedDAV – publikační systém je ten, že jakýkoliv systém elektronické podpory výuky je v mnoha případech zvláštní formou publikačního systému.

A právě fakt, že je vhodné do publikačního systému podporu pro protokol WebDAV implemento­ vat, se snažily naznačit již předchozí řádky. Jednoduchost ovládání publikačního systému ze strany autorů obsahu (kterážto je často v přímé úměře s úspěchem celého systému) bývá často do značné míry omezena požadavky kladenými na uživatele při samotné publikaci nějakého dokumentu.

Pokud se snažíme o publikování dokumentů, jejichž nativním formátem je DocBook, je situace o to složitější, že je to právě osoba publikujícího, na kterou je často kladen požadavek transformace jejích dokumentů do podoby pro většinovou populaci čitelné, což s sebou často nese nutnost instalovat a spouštět další nástroje.

Způsobů, jak uživatelům umožnit publikování (interakci se systémem) je celá řada – pravděpodobně nejčastěji se úkony spojené s publikací provádějí interakcí prostřednictvím HTML a prohlížeče, jindy jsou to pro tento účel určené aplikace, nebo to může být přístup přímo k souborům prostřednictvím FTP nebo jeho bezpečnější varianty.

Taková řešení ale s sebou nesou následující problémy:

● U komunikace prostřednictvím prohlížeče a v něm zobrazených stránek publikačního sys­ tému je to často komplikovanost přidání více souborů. Pokud jsou navíc soubory umístěné ve více adresářích, je prakticky nezbytné soubory nejprve „zabalit“ do jednoho souboru. Konkrétně: pokud budete publikovat DocBook dokument, který obsahuje relativní odkazy vzhledem ke svému umístění na další soubory, bude Váš úkol velmi obtížný.

● Bude­li použita speciální aplikace, bude nutno zajistit její multiplatformnost. Další nevýho­ dou bude určitá „nesvoboda“ uživatele, který bude odkázán na jedinou aplikaci.

● V případě použití FTP a bezpečnějších variant nebude snadné (resp. bude neproveditelné) umožnit uživatelům snadnou podporu verzí, rovněž bude třeba dělat kompromisy u adre­ sářové struktury a pokud by snad měla být použita databáze pro uchovávání určitých dat, je přístup prostřednictvím FTP apod. vyloučen téměř zcela.

25 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Tyto a další problémy jsou řešitelné s pomoci protokolu WebDAV, neboť tento:

● je často podporován samotným systémem (viz. výše)

● umožňuje relativně snadnou podporu správy verzí

● umožňuje implementovat zamykání (locking) souborů

● umožňuje oddělit skutečné fyzické oddělení dat (např. v databázi) od jejich následné prezentace

● oproti jiným možnostem je na protokol HTTP uplatněno relativně nejméně omezení ze strany správců sítí a je tak zaručeno, že bude moci publikovat i uživatel, jehož správce sítě je velmi restriktivní

2.7 WEBDAV A PUBLIKAČNÍ SYSTÉM – STRANA SERVERU

Pokud se rozhodneme, že do publikačního systému přidáme podporu pro protokol WebDAV, musíme si rozmyslet způsob, jakým tak učiníme. Možností je v zásadě několik. Můžeme se rozhod­ nout, že podporu pro WebDAV bude obstarávat webový server (např. Apache) a vše pak nechat na něm – to je vhodné, pokud nehodláme využít složitější funkcionality, kterou nám protokol nabízí a v podstatě požadujeme pouze nabídnout alternativu k FTP.

Druhou možností je využít již existující implementace a pouze ji upravit. V tomto případě budeme pravděpodobně chtít využít pokročilejších funkcí, které se nabízí. Troufnu si tvrdit, že v naprosté většině případů vede tento přístup nejen nejrychleji k cíli (pokud neberu v úvahu funkcionalitu poskytovanou webovým serverem, která je ale jak již bylo a bude zmíněno omezená), ale rovněž i výsledky s pomocí těchto nástrojů dosažené budou nejkvalitnější.

Třetí a asi nejneschůdnější nebo nejobtížnější cestou je implementace celého nebo části protokolu vlastními silami. Touto variantou se tato práce nebude zabývat.

26 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

2.8 WEBDAV – PRAKTICKÁ IMPLEMENTACE

Pokud jste byli předchozími řádky přesvědčeni o výhodnosti použití protokolu WebDAV, zůstává pouze řešit problém, jak tak můžeme učinit. Vždy se bude jednat o řešení na straně serveru. Klientská část je řešena již zmiňovanými způsoby, nebo s použitím klientských knihoven toho kterého programovacího jazyka, které v této práci ovšem nebudou probírány9.

Jako schůdné nám (viz. předchozí kapitola) zůstaly následující varianty implementace:

● využití podpory serveru, v rámci kterého naše aplikace běží

● využití již hotové aplikace nebo knihovny kompatibilní s programovacím jazykem našeho systému

2.8.1 PODPORA ZE STRANY WEB SERVERU

Jedná se o nejrychlejší a nejjednodušší cestu k cíli, která má však svá omezení.

Nejprve ale zmiňme výhody, které se nabízejí:

✔ rychlost implementace – většinou stačí pouze podporu zapnout nebo doinstalovat potřebný modul, nakonfigurovat přístupová práva a můžeme WebDAV používat

✔ rychlostí spojená jednoduchost

✔ podpora většiny webových serverů – pro Apache server existuje modul mod_dav, který serveru funkcionalitu DAV dodá. Implementovány jsou téměř všechny funkce včetně zamykání souborů. IIS od Microsoftu WebDAV rovněž podporuje WEBDAV a nejinak je tomu u Jakarta Tomcatu.

Může se ale stát, že se některé informace uchovávají v databázi, nebo je adresářová struktura úložiště příliš složitá nebo naopak jednoduchá a neumožňuje snadno nastavit přístupová práva. Tím se dostáváme k nedostatkům:

✗ použití funkcionality serveru neumožňuje snadný přístup k datům uchovávaným v databázi

9 více informací můžete najít zde: http://www.webdav.org/projects/ (anglicky)

27 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

✗ struktura úložiště souborů může být příliš složitá a neumožní tak jednoduchou orientaci uživatelům (stejný problém by ale byl v tomto případě s FTP)

✗ struktura úložiště je naopak příliš jednoduchá a neumožní nastavit rozdílná práva pro jednotlivé uživatele, resp. to neumožní rozlišit publikačnímu systému

✗ logická struktura ukládaných dat je jiná, než struktura, kterou bychom chtěli nabídnout uživateli

Pokud narazíme na jednu z těchto překážek, nezbývá, než zvolit jinou cestu nebo upravit samotný publikační systém tak, aby kritéria použitelnosti splňoval.

2.8.2 VYUŽITÍ IMPLEMENTACE TŘETÍCH STRAN

Pokud se rozhodneme vydat touto cestou, bude kritickým bodem volba správné implementace serveru, která bude jednak napsaná v programovacím jazyce, který jsme ochotni a schopni použít a rovněž bude nabízet možnost celý server dokonale přizpůsobit našemu systému – to pravděpodobně znamená, že budeme chtít, aby zdrojový kód byl veřejný. Rovněž se můžeme dostat do problémů po zjištění, pod jakou licencí je daný kód distribuován.

Cílem této části práce není vyčerpávající seznam použitelných implementací, ale pouze jakýsi výčet, který by čtenáři se zájmem o problematiku poskytl počáteční vodítko.

Zde jsou tedy nejznámější použitelná řešení:

● Python Davserver 10, který je dostupný ve verzi 0.52 pod licencí LGPL – jak již je z názvu patrno, je napsán v jazyce Python. Autor jej napsal jako součást své teze a zdá se , že se již projektu delší (dlouhou) dobu nevěnuje.

● Jakarta Slide od Apache Software Foundation, resp. subprojekt WebDAV Construction Kit (wck), který byl zvolen při řešení zadání této práce. Celý projekt je napsán v Javě, současná stabilní verze je 2.0 a nabízí jak server, tak WebDAV klienta. Licence umožňuje i komerční využití. Postupu při implementaci podpory protokolu WebDAV s pomocí Jakarta Slide je věnována celá následující kapitola.

10 dostupný z http://comlounge.net/webdav/

28 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

● WebDAV­Servlet je reakcí na značnou složitost Jakarta Slide. Je psán v Javě a na rozdíl od Jakarta Slide stačí implementovat pouze jedno rozhraní. Autor této práce hodnotí tento projekt jako velmi slibný, leč mladý. Teprve čas ukáže, zda­li je projekt života schopný a tvoří další alternativu ve světě Javy vůči Jakarta Slide.

Jak již je z výčtu zřejmé, v případě, že se rozhodneme vydat touto cestou, bude největší překážkou nalézt z nemnoha možností vhodnou implementaci. Pokud se nám to ovšem povede, bude se pravděpodobně jednat o po všech stránkách nejlepší řešení.

3 JAKARTA SLIDE

3.1 ÚVOD

Jakarta Slide je úložiště obsahu (content repository), které může sloužit jako základ systému pro správu obsahu (content management system – CMS) komunikující prostřednictvím protokolu WebDAV (rovněž tak i prostřednictvím HTTP).

V praxi se rovněž často používá jako rozhraní k domovským adresářům uživatelů velkých systémů (univerzity, velké společnosti). Více informací podá následující tabulka převzatá z wiki stránek Jakarta Slide (http://wiki.apache.org/jakarta­slide/SlideInProduction):

29 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Tabulka 1: Nasazení Jakarta Slide

Z tabulky je patrné, že Jakarta Slide je systém zralý pro produkční nasazení.

Organizací, která za tímto projektem stojí je slovutná Apache Foundation11, která mu propůjčila i svou minimálně limitující licenci, takže ať již hodláte použít s pomoci Jakarta Slide vytvořeného programu jakkoli, je nepravděpodobné, že by Vás licence omezovala.

Současnou stabilní verzí je verze 2.1, která tuto úlohu plní již téměř dva roky. Obecně se ale dá konstatovat, že současný stav programu je ohledně stability velmi dobrý a rozhodně se nejedná o projev opuštění projektu jeho vývojáři, jako spíš o reflexi toho, že WebDAV jako protokol prochází pouze velmi pomalým vývojem a současný stav programu jeho uživatelům dostačuje.

Rovněž je třeba říci, že množství zdrojového kódu, se kterým je třeba se vypořádat v případě, že se rozhodnete fungování Jakarta Slide pochopit, je velmi značné a začátky tohoto „bádání“ mohou mnoho zájemců odradit. Na druhou stranu ale pochopení veškerého fungování programu není nutné a stačí se omezit pouze na problematiku samotného úložiště.

11 Více o o Apache Foundation se můžete dozvědět na http://apache.org

30 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

3.2 FUNGOVÁNÍ

Fungování Jakarta Slide se dá nejlépe pochopit z několika následujících schémat převzatých z http://jakarta.apache.org/slide/architecture.html:

Ilustrace 1: Schéma fungování Jakarta Slide

Na výše umístěném schématu je patrný způsob komunikace mezi Slide a klienty. Tyto možnosti jsou prakticky tři:

1. Většina aplikací komunikuje prostřednictvím protokolu WebDAV s WebDAV Servletem.

Tato komunikace je znázorněna s pomocí tenkých šipek.

Jako klienta si v tomto případě můžeme představit třeba již dříve zmiňovaný program DAV

31 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Explorer nebo např. Microsoft Webfolders, které nám následně takto zpřístupněné úložiště

zobrazí jako vzdálenou složku. V obou případech je umožněno nejen čtení, ale rovněž zápis

(ať již se jedná o vytváření složek, souborů, nebo přidávání metadat).

2. Pokud klient komunikuje prostřednictvím protokolu HTTP (což je vlastně podmnožina

WebDAV), je umožněn přístup pouze pro čtení. Takto si lze zobrazit obsah úložiště

v oblíbeném prohlížeči uživatele (samozřejmě se zobrazí pouze ten obsah, ke kterému je

uživatel autorizován v případě, že je u Slide zapnuta autentizace a autorizace).

3. Třetí možností je komunikace přímo se Slide API. A je to právě Slide API, které dává

projektu Slide takovou využitelnost.

Jiná Java aplikace totiž může s úložištěm komunikovat přímo. Pod takovou aplikací si

můžeme představit jakýkoliv systém pro správu obsahu, publikační systém nebo informační

systém (jak se totiž dozvíme níže, data mohou být ukládána např. i do databáze, aniž by

se chování systému změnilo).

Další schéma, převzaté ze stejného dokumentu jako schéma předchozí, ukazuje, jaká je vnitřní architektura celého systému:

32 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Ilustrace 2: Vnitřní fungování Jakarta Slide

Zde je třeba si především všimnout části Data Stores, která znázorňuje fakt, že způsob uložení dat je možný nejen jakýmkoliv způsobem, ale že navíc lze tyto způsoby různě kombinovat. Na vyšší vrstvě se s daty již bude pracovat stejně – a při komunikaci se Slide API již druhá strana nic nepozná.

Tak můžeme například menší soubory ukládat do databáze a snadno v nich vyhledávat, velké soubory (např. videozáznamy) můžeme odkládat do souborového systému a u některých jiných souborů můžeme zajistit jejich další zpracování při ukládání nebo změně – to vše u souborů, které se ve výsledku budou tvářit jako umístěné v jednom adresáři v přehledném souborovém systému.

Ze schématu je rovněž dále patrno, že ve vyšších vrstvách aplikace se Slide stará o autorizaci a autentizaci, funkci zamykání (lock), která je jednou z funkcí protokolu WebDAV. Dále může být

33 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning implementována podpora správy verzí (versioning) a další.

3.3 NASAZENÍ JAKARTA SLIDE

V praxi nasazení Jakarta Slide znamená toto:

● rozhodnutí, jakého datového úložiště použijeme (zda­li budeme ukládat do databáze,

souborového systému a jakým způsobem)

● zjištění, zda­li nám bude vyhovovat nějaká již existující implementace úložiště (v případě že ne,

musíme provést implementaci sami, což si taky v následujících kapitolách ukážeme)

● v případě, že máme již existující aplikaci, musíme zvážit, zda­li napíšeme implementaci pro náš

způsob ukládání dat, nebo změníme vnitřní způsob ukládání dat v naší aplikaci a využijeme tak

veškeré flexibility, kterou Jakarta Slide poskytuje

● stanovení rozsahu, v jakém bude naše aplikace podporovat všechny funkce, které protokol

WebDAV poskytuje a jejich případné zajištění

● v případě, že chceme používat autentizaci a autorizaci (což bude většina z nás chtít), zajistíme

propojení autentizace a autorizace Slide s autentizaci a autorizací naší aplikace nebo

se systémem, který naše aplikace používá – toto si rovněž v dalších částech této práce ukážeme

(přičemž už na tomto místě se autor této práce může zaručit za to, že se nejedná o nijak

komplikovanou záležitost)

Pakliže nám bude vyhovovat nějaká existující implementace úložiště, smrskne se naše práce na pouhou konfiguraci tohoto úložiště. U komplikovanějších aplikací tomu tak ovšem často není a je třeba vlastní implementace, která se může dít po dvou různých cestách – buď bez využití WebDAV Construction Kitu (WCK), nebo s ním. Tyto možnosti budou ozřejmeny později a speciálně využití WCK se tato práce věnuje podrobně.

Nejprve se podíváme na Jakarta Slide z pozice uživatele, tedy někoho, kdo nechce nic nového

34 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning implementovat, ale hodlá pouze využít existující funkčnosti a Slide si nakonfigurovat pro použití se svou aplikací.

Následně se do Jakarta Slide ponoříme hlouběji a z pozice programátora si ukážeme, jakým způsobem vytvořit vlastní úložiště a jak napsat své vlastní třídy, které zabezpečí autentizaci a autorizaci.

3.4 JAKARTA SLIDE Z POZICE UŽIVATELE

Uživatelem je v tomto případě myšlen ten, kdo nehodlá měnit zdrojový kód programu, pouze chce program využívat. V takovém případě bude postup následující:

1. opatření si binární distribuce jak Jakarta Slide, tak případně i , pod kterým

Slide běží

2. instalace a konfigurace

Získání binární distribuce a instalaci si popíšeme níže, konfiguraci se věnuje celá jedna kapitola, neboť se bohužel nejedná o triviální věc.

Binární distribuci Jakarta slide získáme na přiloženém CD nebo tak, že si z příslušných webových stránek12 opatříme jedno z následujícího:

● Binární distribuci Jakarta Slide již integrovanou s Jakarta Tomcat – v takovém případě stačí

celý takový balíček dekomprimovat a nastavit proměnnou prostředí CATALINA_HOME

na takto dekomprimovaný adresář.

● Pouze binární distribuci Jakarta Slide – v tomto případě bude nutné do Jakarta Tomcat

aplikaci (slide.war) ručně doinstalovat, což se děje standardním způsobem popsaným

v dokumentaci Apache Tomcat.

Zde je nutno upozornit, že takto nainstalovaná aplikace nepodporuje autentizaci, takže

12http://jakarta.apache.org/site/downloads/downloads_slide.cgi

35 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

úložiště, které bude tímto zpřístupněno nebude vyžadovat uživatelské jméno a heslo.

Jakarta Slide z pozice programátora

3.5 KONFIGURACE JAKARTA SLIDE

Konfigurovat můžeme hned na několika místech, přičemž nejdůležitější je konfigurace s pomocí souboru Domain.xml. Vše potřebné se čtenář dozví z praktické části této práce.

Ve všech případech platí, že po změně konfigurace je potřeba server restartovat tak, aby se změny mohly projevit.

3.6 ÚLOŽIŠTĚ V JAKARTA SLIDE

Úvodem této subkapitoly by autor čtenáře rád upozornil na fakt, že následující řádky mají smysl především pro detailní pochopení principu, jakým jsou data v Jakarta Slide ukládána. V dalších kapitolách již budou probírány konkrétní možnosti implementace a pro jejich pochopení většinou studium této kapitoly nutné není.

Podívejme se tedy na „filosofii“ ukládání dat. Druhů úložišť rozlišuje Jakarta Slide několik (rozhraní těchto úložišť jsou obsažena v balíčku org.apache.slide.store):

● content store: ukládá skutečný obsah – tedy např. soubory, které hodláme v úložišti ukládat

● index store: ukládá index (Slide podporuje indexování)

● macro store: úložiště pro podporu makro operací

● node store: do tohoto úložiště se de facto ukládá jeho struktura (v podstatě se jedná o graf s uzly a listy tvořící „adresářovou strukturu“)

● revision descriptor store: úložiště určené především pro podporu správy verzí – podpora pro ukládání informací o provedených změnách

● security store: zde se ukládají oprávnění k jednotlivým položkám v node store

36 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Pokud tedy chceme vytvořit své vlastní úložiště musíme tato rozhraní implementovat (případě využít dalších možností, které budou zmíněny níže).

Samotný způsob fungování a implementace těchto úložišť pochopíme nejlépe tak, že si prostudujeme zdrojový kód již existující implementace (např. balíček org.apache.slide.store.txfile).

S ohledem na fakt, že mnoha uživatelům se zdál tento způsob fungování nejasný (navíc velmi málo dokumentovaný), vznikl subprojekt WCK, o kterém se detailně dozvíte v dalších částech této práce.

3.6.1 VOLBA VHODNÉHO ÚLOŽIŠTĚ (STORE)

Jakarta Slide poskytuje přímo dvě možnosti, jak ukládat data (soubory – resources , strukturu, oprávnění, metadata…) bez nutnosti vlastní úložiště vytvářet. Nutno podotknout, že jedná v podstatě o referenční implementace, které mají poskytnout vodítko při tvorbě vlastního úložiště. Z praxe uživatelů těchto úložišť je ale patrno, že jsou využívány často přímo právě tyto implementace samotné.

Nyní již k implementacím samotným:

TX FILE STORE

Toto úložiště ukládá obsah do souborového systému. Do souborů jsou rovněž ukládána metadata. Hlavní výhodou je menší složitost konfigurace a především nepotřeba databáze.

Tx file store využíváte, pokud nainstalujete Jakarta Slide a nezměníte nastavení.

Tip: Nejlepší možností, jak detailně pochopit fungování tohoto úložiště je nainstalovat Slide, připojit se k úložišti a nakopírovat do něj několik souborů a vytvořit několik adresářů. Následně můžete skutečný způsob fyzického uložení dat prozkoumat procházením adresáře store, který se, pokud nezměníte nastavení, vytvoří v adresáři bin serveru Tomcat. Následně je vhodné projít zdrojový kód balíčku org.apache.slide.store.txfile.

Tx file store je v praxi velmi často rozšiřován a doplňován o další vhodnou funkcionalitu13.

13 Skvěle je taková modifikace zdrojového kódu vysvětlena v třídílném tutoriálu Michaela Olivera. První díl je dostupný na http://www­128.ibm.com/developerworks/edu/os­dw­os­cms1­i.html po bezplatné registraci

37 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

RDBMS STORE

Toto úložiště využívá pro uložení dat databázi. Třídy tohoto úložiště jsou obsaženy v balíčku org.apache.slide.store.impl.rdbms. Existují implementace pro následující databáze:

● Sybase

● Oracle

● DB2

● MySQL

● Postrges

Dále lze data ukládat v jakékoliv databázi s pomocí JDBC spojení.

Tip: Detailnější postup při připojování vlastní databáze získáte z toho článku: http://wiki.apache.org/jakarta­slide/CreateAnewDatabaseAdapter

Poté, co najdeme vhodnou třídu pro spolupráci s naší databází, nebo takovou třídu vytvoříme, musíme rovněž vytvořit příslušné tabulky v naší databázi. SQL skript najdete v podadresáři dist/slide/db­schema hlavního adresáře Slide.

3.7 IMPLEMENTACE VLASTNÍHO ÚLOŽIŠTĚ

Pokud zjistíme, že nám žádné úložiště, které Slide poskytuje, nenabízí vhodné řešení, nebo takové řešení shledáme málo přímočarým a příliš komplikovaným, je další možností vytvořit své úložiště vlastní.

Bohužel se jedná o úkol netriviální, vyžadující v jednom případě implementaci mnoha rozhraní a zahrnující rovněž nezbytnou a vcelku složitou konfiguraci, v druhém případě je množství implementovaných rozhraní méně, ovšem i tehdy se často stává, že uživatel zabloudí díky velmi

Další díly jsou (pokud se rozhodnete vytvořit vlastní úložiště modifikací Tx file store, ušetří Vám tento materiál mnoho hodin tápání).

38 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning malému množství dostupné dokumentace – tuto nevýhodu by ale měla tato práce odstranit.

V této části bude tedy nejprve věnována pozornost tomu, jakým způsobem se vlastně dá zasahovat do kódu Slide a jakým způsobem pak probíhá sestavení a instalace takto vzniklého programu, následně si uvedeme dvě možnosti, jak si vytvořit úložiště – bude se jednat o konkrétní úložiště dokumentů DocBook, které samo zajišťuje i jejich transformaci a pozornému čtenáři poskytne vodítko, jakým způsobem postupovat, pokud se rozhodne vytvořit úložiště vhodné pro své specifické účely.

O MODIFIKACI JAKARTA SLIDE OBECNĚ

Jakarta Slide je standardním programem psaným v jazyce Java, který pro své sestavení a kontrolu a automatizaci dalších činností používá většině programátorů dobře známý a výborný nástroj ANT.

Účelem této práce není popis práce s tímto nástrojem, proto je doporučeno seznámit se alespoň se základy fungování tohoto nástroje14.

Prvním krokem po získání zdrojových kódů Jakarta Slide tak bude správné nastavení proměnných v souboru build.properties.

Hlavní konfigurační soubory, které jsou při sestavení Jakarta Slide použity a kterými se následně Slide řídí jsou obsaženy v podadresáři src/conf hlavního adresáře projektu.

Dále již vše funguje standardně, soubor build.xml obsahuje všechny potřebné cíle (targets) a celá práce tak spočívá pouze v dopsání potřebných tříd a následném sestavení programu.

3.7.1 IMPLEMENTACE BEZ POUŽITÍ WCK

Autor této práce by na tomto místě čtenáři doporučil nevydávat se cestou tvorby úložiště bez použití WCK, neboť ta je mnohem trnitější a časově náročnější.

Pokud se tedy přeci jen rozhodneme jít touto mnohem obtížnější cestou, bude nás zajímat balíček org.apache.slide.store a balíčky dále v tomto balíčku obsažené, které obsahuje rozhraní pro všechna

14 Rychle a přitom nenásilnou formou se o fungování Apache ANTu můžete dozvědět z článku uveřejněného na ABC Linuxu: http://www.abclinuxu.cz/clanky/show/74082

39 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

úložiště (stores).

Naše práce pak bude spočívat v tom, že budeme implementovat níže zmíněná rozhraní, přičemž jediným našim vodítkem bude zdrojový kód již hotových implementací. Autorovi této práce totiž dosud není znám žádný komplexní návod a bohužel dokonce ani rozhraní neobsahují dokumentaci ve zdrojovém kódu.

Budiž útěchou fakt, že hlavičky metod jsou podobné, jako při použití WCK, které je v této práci vysvětleno a navíc je pro WCK poskytnuta i ukázková implementace.

Po implementaci následně ještě upravíme (postup je rovněž uveden v následující subkapitole) soubor Domain.xml tak, aby místo referenčních implementací používal implementaci naši.

3.7.2 IMPLEMENTACE S POUŽITÍM WCK

V reakci na složitost standardního postupu při implementaci tříd úložiště vznikl subprojekt projektu Slide – WebDAV Construction Kit (WCK). Zjednodušeně řečeno, WCK snížil množství rozhraní nutných implementovat (vytvořením adaptérů) a navíc zavedl určitou vyšší míru abstrakce, takže v případě, že se rozhodneme použít při tvorbě úložiště WCK, nebudeme muset fungování Slide chápat do takové míry jako bez WCK a, jak se uvádí na hlavní stránce projektu, není třeba ani znát fungování WebDAVu – samozřejmě aniž by se to projevilo na kvalitě implementace.

S ohledem na fakt, že WCK je relativně novou součástí Jakarta Slide (jak již bylo řečeno, další vývoj Jakarta Slide probíhá relativně velmi pomalu), nebyl zahrnut do oficiální distribuce a ke třídám, které projekt tvoří se lze dostat pouze s pomocí CVS. Uvádí se, že se jedná o jakousi neoficiální beta verzi – z ohlasů uživatelů a s ohledem na relativně dlouhou dobu od zveřejnění toho tvrzení se dá říci, že WCK je stejně stabilní, jako Jakarta Slide.

WCK – ZÍSKÁNÍ ZDROJOVÝCH KÓDŮ

Jak již bylo uvedeno, zdrojový kód musíme získat s pomocí CVS nebo z přiloženého CD.

40 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

WCK – POSTUP IMPLEMENTACE

Budeme se věnovat obecnému postupu tvorby nového úložiště. Konkrétní ukázkou implementace (a rovněž flexibility Jakarta Slide) je právě projekt DavLearn, který je stěžejním bodem této práce.

Díky WCK nám pro vytvoření funkčního úložiště se základními metodami protokolu WebDAV stačí implementovat jedno relativně srozumitelné rozhraní. Pro zprovoznění autentizace a autorizace uživatelů z naší vlastní databáze pak stačí implementovat další, tentokrát mnohem jednodušší rozhraní.

Prvním rozhraním je org.apache.slide.simple.store.BasicWebdavStore s následujícími hlavičkami metod:

● begin – tato metoda je volána při započetí transakce

● commit/rollback – Slide podporuje transakční zpracování dat, takže v případě, že jsou tyto metody implementovány, provádějí funkcionalitu patrnou z jejich názvů

● objectExists – kontrola, zda­li daná složka nebo zdroj (soubor) existuje

● isFolder/isResource – zjištění, zda­li se jedná o složku nebo zdroj (soubor)

● createFolder/createResource – vytvoří složku/zdroj

● removeObject – smazání složky nebo zdroje

● setResourceContent – uloží obsah zdroje

● getResourceContent – vrací obsah zdroje

● getLastModified/getCreationDate – vrací datum vytvoření/modifikace

● getResourceLength – vrací velikost zdroje

● getChildrenNames – vrací seznam s obsahem dané složky

Jak je možné si všimnout, je takové rozhraní mnohem pochopitelnější, navíc abstrahuje od jednotlivých metod WebDAVu. O volání metod WebDAVu a jejich správné zodpovězení se již postará sám Jakarta Slide.

41 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Dále je patrno, že metody, které jsou obsaženy v tomto rozhraní, jsou pouze základními metodami protokolu WebDAV – to je záměr, neboť ne vždy jsou požadovány metody další. Snadná implementace dalších vlastností protokolu WebDAV je zajištěna dalšími rozhraními, které vytvářené úložiště může implementovat a zprovoznit tak funkcionalitu zamykání, ukládání metadat a správy verzí – vždy se tak jedná pouze o přidání dalších přehledných metod.

.ČÁST DRUHÁ – DAVLEARN

1 ANALÝZA

1.1 ÚVOD

Zadání praktické části práce je následující:

Navrhněte a vytvořte flexibilní úložiště pro dokumenty ve formátu DocBook s rozhraním komu­nikujícím protokolem WebDAV. Úložiště bude použitelné jako základ nebo modul sytému elektro­nické podpory výuky. Dále bude umožňovat poloautomatickou nebo automatickou transformaci uložených dokumentů s pomocí XSLT stylů.

Z hlediska požadavků uživatelů takového systému by bylo přínosem nejen ukládat dokumenty DocBook, ale i soubory, které jsou v souvislosti s těmito dokumenty potřeba, tedy dokumenty, na které se dokument DocBook odkazuje (takže nebude nutné např. obrázky ukládat na veřejně dostupná URL).

Pro systém elektronické podpory výuky je charakteristické, že, mimo jiné, rozlišuje prakticky vždy role tutora a studenta, stejně jako existenci uričtých logických celků – kursů.

42 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Protokol WebDAV zpřístupňuje de­facto složky a soubory. S ohledem na tento fakt a charakteristiku systému pro podporu výuky zmíněnou o odstavec výše by se rovněž požadavek na jinou adresářovou strukturu pro studenta a jinou pro tutora a tedy oddělit fyzickou strukturu uložených souborů od logické struktury.

Jednoznačným požadavkem je rovněž zajištění kontroly přístupu k obsahu úložiště, tedy autorizaci a autentizaci, která ale musí být „propojitelná“ s se systémem, jehož bude aplikace součástí nebo základem.

Ve stručnosti jsou tedy požadavky, které by měl systém splňovat následující:

● spolu s dokumenty DocBook zajistit možnost uložit a zpřístupnit i dokumenty související

● umožnit různou adresářovou strukturu pro studenty a tutory (nezobrazovat to, co není zobrazovat třeba)

● oddělení fyzické a logické struktury uložení

● konfigurovatelná autentizace a autorizace

Vytvořené úložiště tedy má být základem nebo modulem nějakého e­learningového systému.

1.2 ANALÝZA POŽADAVKŮ

1.2.1 ZÁKLADNÍ ANALÝZA TVOŘENÉHO SYSTÉMU.

Elektronická podpora vždy probíhá v rámci nějakého kursu. V rámci kursu jsou v systému obsažené jednotlivé dokumenty. Dokument obsahuje vždy jeden soubor ve značkování DocBook, ale rovněž i další soubory, na které se soubor DocBook odkazuje.

S ohledem na oblast použití, tedy elektronickou podporu výuky byli identifikování následující aktoři:

● tutor – spravuje dokumenty, spravuje soubory v rámci dokumentu, které následně používá k výuce

● student – prohlíží dokumenty ve zvoleném formátu

43 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

● administrátor – spravuje uživatele (tutory a studenty), kursy a přidělení uživatelů ke kursům

● jiný systém – s ohledem na fakt, že DavLearn je základem nebo modulem jiného systému, bude tento systém rovněž aktivním aktorem v rámci systému

Celkově se systém jeví tak, jak je zobrazen na následujícím diagramu:

Ilustrace 3: Diagram případů užití.

44 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Jednotlivé případy užití jsou následující:

SPRAVOVAT DOKUMENT

Popis

Tutor vytváří, mění nebo maže dokument v rámci kursu.

Předpoklady

Tutor je autorizován a autentizován

Tutor otevřel složku kursu, v rámci kterého hodlá dokument vytvořit/přejmenovat/smazat.

Kroky

Tutor standardním způsobem vytvoří/přejmenuje/smaže složku s názvem dokumentu.

Systém vytvoří/přejmenuje/smaže ve svém úložišti dokument shodný s názvem složky.

SPRAVOVAT SOUBOR

Popis

Tutor vkládá/přejmenovává/maže v rámci dokumentu soubory.

Předpoklady

Tutor je autentizován a autorizován.

Tutor má otevřenou složku dokumentu, v rámci kterého soubory vkládá/přejmenovává/maže.

Kroky

Tutor vloží/přejmenuje/smaže soubor obsažený v dokumentu.

Systém změny zaznamená ve svých úložištích v závislosti na typu dokumentu (postup je popsán v případech užití „spravovat soubor DocBook“ a „spravovat jiný soubor“) provede potřebné operace

SPRAVOVAT SOUBOR DOCBOOK

Popis

45 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Vložení, přejmenování nebo smazání souboru obsahujícího validní dokument ve značkování DocBook.

Předpoklady

Tutor je autentizován a autorizován.

Tutor má otevřenou složku dokumentu, v rámci kterého soubory vkládá/přejmenovává/maže.

Kroky

Tutor v rámci složky dokumentu, ve kterém má být daný soubor obsažen, soubor vloží, změní nebo smaže.

Systém provede transformaci do všech formátů, které jsou konfigurovány k použití.

Systém po každé transformaci dokumentu DocBook označí ve svém úložišti dokument jako transformovaný pro daný formát.

SPRAVOVAT JINÝ SOUBOR

Popis

Vložení, přejmenování nebo smazání souboru neobsahujícího validní dokument ve značkování DocBook.

Předpoklady

Tutor je autentizován a autorizován.

Tutor má otevřenou složku dokumentu, v rámci kterého soubory vkládá/přejmenovává/maže.

Kroky

Tutor v rámci složky dokumentu, ve kterém má být daný soubor obsažen, soubor vloží, změní nebo smaže.

Systém provede nakopírování tohoto souboru do všech adresářů s transformacemi dokumentu, v rámci kterého je soubor obsažen.

46 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

SPRAVOVAT KURS

Popis

Administrátor nebo jiný systém vytváří/mění/maže kurs.

Kroky

V závislosti na implementaci úložiště kursů je provedena změna voláním metody nebo změnou v databázi či souboru úložiště.

SPRAVOVAT UŽIVATELE

Popis

Administrátor nebo jiný systém vytváří/mění/maže uživatele.

Kroky

V závislosti na implementaci úložiště uživatelů je provedena změna voláním metody nebo změnou v databázi či souboru úložiště.

Spravovat přiřazení uživatelů ke kursům

Popis

Administrátor nebo jiný systém vytváří/mění/maže přiřazení uživatele ke kursu.

Kroky

V závislosti na implementaci úložiště kursů je provedena změna voláním metody nebo změnou v databázi či souboru úložiště.

1.3 ANALÝZA PROSTŘEDÍ

Jako programovací jazyk implementace systému byla vybrána Java, která je multiplatformní a pro daný účel velmi vhodná.

Pro podporu protokolu WebDAV autor projektu zvolil Jakarta Slide a jeho subprojekt WCK. Důvody rozhodnutí použít Jakarta Slide jsou obsaženy v části kapitoly o protokolu WebDAV věnované

47 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning možnostem implementace podpory tohoto protokolu.

Důvody použití WCK jsou pak závěrem vyvozeným z analýzy Jakarta Slide.

S ohledem na rozsáhlost problematiky Jakarta Slide, nemnohost dokumentace obecně a absolutního nedostatku české dokumentace vůbec, je analýze tohoto projektu věnována celá kapitola této kapitole předcházející.

2 NÁVRH ŘEŠENÍ PROJEKTU DAVLEARN

2.1 ÚVOD

Celkově systém jeho autor koncipoval tak, aby byl maximálně flexibilní. To v praxi znamená, že byly vytvořeny třídy obsahující rozhraní pro zabezpečení funkcionality systému a vytvořen způsob konfigurace celého systému, kdy lze jednotlivé funkční celky nahradit vlastní implementací. Samotný systém pak obsahuje implementace, které by se daly označit jako referenční.

Konkrétně se pak jedná o:

● možnost napojit systém na vlastní databázi uživatelů

● možnost použít jiný způsob ukládání jednotlivých souborů

● možnost jiného způsobu ukládání vlastních dat systému (metadata kursů, uživatelů, dokumentů a transformací)

● možnost jednoduše do systému přidávat další transformační šablony

2.2 NÁVRH SYSTÉMU

Diagram tříd je dostupný na přiloženém CD.

2.2.1 JÁDRO APLIKACE

Tato část je obsažena v balíčku cz.skrehota.davlearn a obsahuje rozhraní pro úložiště kursů,

48 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning deskriptorů dokumentů a samotných dokumentů a třídy deskriptoru dokumentu a kursu. Jednotlivé třídy a rozhraní jsou následující:

DAVLEARNDOCUMENT

Deskriptor dokumentu uloženého v úložišti dokumentů. Obsahuje jeho název, popis a další vlastnosti.

DAVLEARNCOURSE

Deskriptor kursu uloženého v úložišti kursů. Obsahuje jeho název, popis a další vlastnosti.

COURSESSTORE

Rozhraní úložiště kursů. Obsahuje metody pro přidání kursu a především získávání deskriptorů jednotlivých kursů.

DOCUSTORE

Rozhraní úložiště dokumentů. Úložiště dokumentů se stará o fyzické uložení dokumentů a jejich transformaci. Implementace tohoto rozhraní je použita ve třídě FileStoreImpl.

Pokud se tedy rozhodneme ukládat soubory například do databáze, bude to právě implementace tohoto rozhraní, která nás bude zajímat.

DOCUSTOREKEEPER A COURSESSTOREKEEPER

Třídy pro získání instance úložišť – aplikace návrhového vzoru singleton. Díky těmto třídám se dají implementace flexibilně měnit s pomocí konfiguračního souboru.

Součástí jádra aplikace je pak i balíček obsahující referenční a tedy i jakousi „základní“ implementaci – ta je obsažena v balíčku cz.skrehota.davlearn.implementation a podrobněji bude popsána v části zabývající se implementací projektu.

49 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

2.2.2 TRANSFORMAČNÍ FUNKČNÍ CELEK

Tento celek se stará o transformaci dokumentů DocBook do všech dostupných a v aplikaci konfigurovaných formátů. Pro konfiguraci transformací pak obsahuje vlastní rozhraní úložiště.

Konkrétně se jedná o následující třídy a rozhraní:

TRANSFORMATIONITEM

Deskriptor transformace. Popisuje její název, transformační nástroj, který má být použit (FOP nebo Saxon), příponu, kterou budou mít soubory transformace.

TRANSFORMATIONSTORE

Rozhraní úložiště deskriptorů transformací – jejich konfigurací.

TRANSFORMATIONFACTORY

Třída pro transformování dokumentů. Její nejdůležitější metodou je metoda transform, která si za argumenty vezme deskriptor dokumentu a transformace a provede transformaci.

TRANSFORMATIONFACTORYKEEPER A TRANSFORMATIONSTOREKEEPER

Třídy pro získání instance úložiště transformací a třídy TransformationFactory – aplikace návrhového vzoru singleton.

Součástí této části je rovněž implementace úložiště transformací, která je obsažena v balíčku cz.skrehota.davlearn.transform.implementation a podrobněji bude popsána v části zabývající se implementací projektu.

2.2.3 ČÁST STARAJÍCÍ SE O BEZPEČNOST

Tato část, obsažená v balíčku cz.skrehota.davlearn.security, zajišťuje autentizaci a autorizaci uživatelů ve spolupráci s Jakarta Slide a dále jejich správu. Nejdůležitější částí balíčku je rozhraní DavLearnUserStore. Díky tomuto rozhraní je do budoucna zajištěno snadné napojení celého projektu na jinou aplikaci resp. databázi uživatelů této aplikace.

50 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Konkrétně se jedná o následující třídy a rozhraní:

DAVLEARNUSERCONNECTION

Deskriptor uživatele. Obsahuje uživatelské jméno, roli uživatele a další detaily. Tento objekt se předává při vytvoření spojení – autentizaci uživatele. Je získán z implementace úložiště DavLearnUserStore.

DAVLEARNUSERSTORE

Rozhraní úložiště uživatelů, resp. jejich deskriptorů. Implementací tohoto rozhraní můžeme dosáhnout propojení úložiště např. s LDAP nebo databází uživatelů jiného systému.

Nejdůležitější metodou úložiště je metoda getUser, která na základě uživatelského jména a hesla vrací deskriptor uživatele.

Metody pro vytvoření uživatele a udělení uživatelských práv je třeba implementovat pouze v případě, že budou volány jiným systémem.

DAVLEARNPOOLINGCONNECTIONMANAGER

Třída zabezpečující komunikaci s vyšší vrstvou Jakarta Slide. Deskriptory uživatelů získává z implementace DavLearnUserStore.

USERSTOREKEEPER

Třídy pro získání instance úložiště uživatelů – aplikace návrhového vzoru singleton. Vytváří se instance třídy definované v souboru Domain.xml.

I zde je obsažen balíček cz.skrehota.davlearn.security.implementation, který obsahuje implementaci rozhraní DavLearnUserStore pracující s konfigurací uloženou v XML souborech a podrobněji bude popsána v části zabývající se implementací projektu.

2.3 FUNGOVÁNÍ SYSTÉMU

Nejdůležitější činností úložiště je transformace dokumentů DocBook do konfigurovaných formátů.

51 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Ukažme si tedy na diagramu, jak takové uložení probíhá (pro zjednodušení nejsou zahrnuty kroky autentizace a autorizace – autentizace proběhne při prvním přihlášení, autorizaci provádí třída FileStoreImpl):

52 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Ilustrace 4: Sekvenční diagram přidávání dokumentů do úložiště. 53 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

3 POPIS IMPLEMENTACE

Po definování rozhraní a základních tříd již zbývá pouze rozhraní implementovat. Níže bude stručně popsán způsob implementace rozhraní. V případě, že čtenář hodlá vytvořit vlastní implementaci, je k dispozici zdrojový kód implementace a především javadoc obsažený na přiloženém CD.

V dalších subkapitolách si stručně popíšeme fungování všech implementovaných rozhraní.

3.1 IMPLEMENTACE ROZHRANÍ JÁDRA SYSTÉMU

CZ.SKREHOTA.DAVLEARN.IMPLEMENTATION.COURSESSTOREIMPL

Implementace úložiště kursů používá pro ukládání XML soubor. DTD tohoto souboru je obsažena na CD příloze této práce.

Název souboru s definicí úložiště je získáván z Domain.xml.

CZ.SKREHOTA.DAVLEARN.IMPLEMENTATION.DOCUSTOREIMPL

Úložiště souborů organizovaných v rámci dokumentu. V případě, že se jedná o dokument DocBook, jsou vyvolány příslušné transformace a dokument je transformován do všech konfigurovaných formátů.

Autorizace uživatelů se v této třídě již neprovádí, je zabezpečena třídou FileStoreImpl. Třída není instancována přímo, její instanci získáme voláním statické metody getInstance třídy DocuStoreKeeper.

CZ.SKREHOTA.DAVLEARN.IMPLEMENTATION.FILESTOREIMPL

Jedná se o nejdůležitější třídu celého projektu DavLearn. Tato třída, pokud je její použití definováno v souboru Domain.xml je používáno jako úložiště. Jedná se o implementaci třídy BasicWebdavStore obsažené v balíčku org.apache.slide.simple.Store – cože je hlavní část projektu WCK.

Rozhraní BasicWebdavStore předepisuje metody, které zabezpečí základní funkce protokolu WebDAV. Tyto metody jsou blíže popsány v kapitole zabývající se Jakarta Slide, konkrétně pak

54 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

WCK.

Právě v této třídě dochází k oddělení logické adresářové struktury úložiště od struktury fyzického uložení dokumentů. K autorizaci přístupu k jednotlivým dokumentům dochází za použití objektu DavLearnUserConnection, který je předán metodě begin volané vždy při vytvoření nového připojení.

3.2 IMPLEMENTACE ÚLOŽIŠTĚ TRANSFORMACÍ

CZ.SKREHOTA.DAVLEARN.TRANSFORMATION.IMPLEMENTATION.TRANSFORMATIONSTOREIMPL

Konfigurace všech transformací v tomto případě je prováděna v XML souboru, jehož DTD je dostupné v CD příloze této práce a je detailně popsána v administrátorském manuálu.

3.3 IMPLEMENTACE ÚLOŽIŠTĚ UŽIVATELŮ

Třída cz.skrehota.davlearn.security.implementation.UserStoreImpl obsahuje implementaci úložiště dat o uživatelích v XML souboru.

V tomto případě platí více než jinde, že se jedná o implementaci referenční, neboť většinou bude docházet k napojení projektu DavLearn na uživatelskou databázi jiného systému.

Do XML souboru se ukládá především uživatelské jméno, heslo a oprávnění uživatele. Tato třída je následně použita třídou cz.skrehota.davlearn.DavLearnPoolingConnectionManager, která je volána vrstvou Jakarta Slide.

Nejdůležitější metodou je metoda getUser, která na základě kombinace uživatelského jména a hesla vrací objekt uživatele – DavLearnUserConnection.

55 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

4 DOKUMENTACE SYSTÉMU

4.1 LICENCE

Projekt DavLearn smí být distribuován a používán za následujících podmínek:

● Šíření, distribuce a používání programu a zdrojových kódu programu je dovoleno pro osobní nekomerční potřebu zdarma.

● Pro komerční nebo jiné podobné využití je nutný souhlas autora programu, kterým je autor této práce. Bez souhlasu autora je komerční využití jakékoliv části programu zakázáno.

● V ostatních otázkách se použije version 215.

4.2 ADMINISTRÁTORSKÁ DOKUMENTACE

4.2.1 INSTALACE

Projekt DavLearn vyžaduje ke svému běhu servlet container. Testován byl s Apache Tomcat. Postup instalace je následující:

1. V případě, že nemáte funkční instalaci Apache Tomcat a nehodláte používat distribuci s již konfigurovaným a instalovaným projektem, instalujte jej. Na stránkách http://tomcat.apache.org/ je k dispozici jak návod, tak distribuce programu. Distribuce je rovněž dostupná na CD příloze.

2. Nainstalujte Jakarta Slide spolu s DavLearn. Možnosti jsou následující:

1. 1.na CD příloze, v adresáři dist je soubor slide.war, která se instaluje standardním způsobem do Apache Tomcat

2. 2.na CD příloze v adresáři dist je rovněž soubor DavLearn_Tomcat_bundle.zip – v tomto případě stačí adresář rozbalit a nastavit systémovou proměnnou CATALINA_HOME

15 dostupné z http://www.apache.org/licenses/

56 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

na adresář Tomcat rozbaleného programu. Celý program následně spustíte za pomocí souboru startup.bat nebo startup.sh v případě Linux systému.

3. Dekomprimujte soubor DavLearn_store.zip, který obsahuje adresářovou strukturu úložišť DavLearn.

4. Proveďte konfiguraci projektu DavLearn popsanou níže.

4.2.2 KONFIGURACE

Níže uvedený postup obsahuje kroky potřebné ke zprovoznění a fungování systému DavLearn.

Pokud je zmíněna změna souboru Domain.xml, najdete tento soubor v adresáři webapps/slide adresáře Tomcat.

Pokud je zmiňováno nastavení parametru v souboru Domain.xml, jedná se o následující postup:

Máme­li např. nastavit parametr DavLearnRootDir na hodnotu „C:\DavLearn­files“, najdeme nejprve řádek, který bude vypadat např. následovně:

nějaká hodnota parametru a změníme jej takto:

C:\DavLearn­files

KONFIGURACE PŘED SPUŠTĚNÍM

Ještě před tím, než můžete DavLearn korektně spustit, je třeba provést následující kroky konfigurace:

● Nastavte parametr DavLearn­rootDir na adresář, který jste rozbalili ze souboru DavLearn_store.zip.

● Do souboru jaas.config (v případě, že jej nepoužíváte, nebo nevíte oč se jedná, vytvořte takový soubor v adresáři conf adresáře Tomcat) přidejte následující řádky: slide_login {

57 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

org.apache.slide.simple.authentication.JAASLoginModule required factoryClassName=cz.skrehota.davLearn.security.DavLearnPooling ConnectionManager slideRole=root; }; Soubor jaas.config je rovněž obsažen v adresáři conf adresáře dist na CD příloze této práce.

● Pokud používáte vlastní distribuci Apache Tomcat nebo nově instalovanou distribuci, změňte soubor startup.bat (nebo startup.sh v případě Linuxu) přidáním následujících řádek před příkaz end (pokud používáte distribuci Apache Tomcat s již integrovaným DavLearn z CD přílohy, tento krok se Vás netýká):

set CATALINA_OPTS=%CATALINA_OPTS% ­Djava .security.auth.login.config = %CATALINA_HOME%/conf/jaas.config call "%EXECUTABLE%" run %CMD_LINE_ARGS%

Modifikovaný soubor startup.bat je přiložen rovněž v adresáři conf adresáře dist na CD příloze této práce.

● Proveďte konfiguraci transformací, kursů a uživatelů popsanou níže.

4.2.3 PŘIDÁVÁNÍ A ODEBÍRÁNÍ KURSŮ

V případě, že používáme referenční implementaci úložiště kursů (pokud jsme neměnili hodnotu parametru DavLearn­coursesStoreClass), nastavíme cestu k XML souboru s konfigurací úložiště kursů uloženou v parametru DavLearn­coursesFile– tato cesta je relativní k cestě určené parametrem DavLearn­rootDir.

Pokud jste pouze rozbalili soubory úložiště a správně nastavili parametr DavLearn­RootDir v souboru Domain.xml, není třeba již nic měnit.

Nyní již můžeme přidávat jednotlivé kursy modifikací výše zmíněného souboru:

Např. pokud hodláme přidat kurs Matematická logika, jehož adresář bude mít název mat_logika, jeho krátkým, jednoznačně identifikujícím jménem bude MA001 a jehož popisem bude „Předmět

58 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning matematická logika“, přidáme do elementu courses následující element.

Předmět matematická logika V případě, že takový kurs hodláme smazat, předchozí element smažeme.

Pro to, aby se změny projevily, DavLearn restartujeme.

4.2.4 PŘIDÁVÁNÍ UŽIVATELŮ

V případě, že používáme referenční implementaci úložiště uživatelů (v případě, že jsme neměnili hodnotu parametru DavLearn­userStoreClass), nastavte cestu k XML souboru s konfigurací úložiště uživatelů uloženou v parametru DavLearn­userStoreFile – tato cesta je relativní k cestě určené parametrem DavLearn­rootDir.

Pokud jste pouze rozbalili soubory úložiště a správně nastavili parametr DavLearn­RootDir v souboru Domain.xml, není třeba již nic měnit.

Rovněž je nutné upozornit, že hesla v tomto případě se ukládají v originální podobě, nešifrovaná – to proto, že se jedná o referenční implementaci, s jejímž použitím v produkčním prostředí se nepočítá.

Analogicky jako u modifikace kursů postupujeme v případě správy uživatelů:

Např. pokud hodláme přidat uživatele skrehota, který má heslo dfs.dss88,má roli učitel a učí kursy, jejich krátký název je IA001 a MA001, přidáme následující element user do elementu users:

>

Ondřej

59 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Skrehota 24

Jak je vidět, je možno o uživatelích ukládat i další informace, tyto informace jsou následně aplikaci přístupné, nicméně je zatím nevyužívá.

Pokud bychom chtěli, aby přidávaný uživatel nebyl tutorem, ale studentem, nastavíme hodnotu atributu roles na hodnotu „student“ a na místo elementu teaches použijeme element studies se stejnou syntaxí.

Následně můžeme uživatele zařazovat jako tutora/studenta dalších kursů přidáním elementu course s atributem name nastaveným na krátký název kursu do elementu teaches/studies.

Pro to, aby se změny projevily, DavLearn restartujeme (důvodem je, že uživatelé jsou ukládáni do souboru, nikoliv do databáze – jak již ale bylo řečeno, je tato implementace pouze referenční a většinou bude nahrazena).

4.2.5 PŘIDÁVÁNÍ TRANSFORMACÍ

Snahou autora tohoto projektu bylo umožnit snadné přidávání dalších transformací do aplikace – proto jsou v aplikaci zabudovány procesory Saxon a FOP a je umožněna konfigurace jednotlivých transformací.

Šablony XSLT jsou často distribuovány jako balíček několika různých šablon. Toto aplikace reflektuje – nejprve je vytvořen adresář se šablonami a v rámci tohoto adresáře můžeme konfigurovat několik transformací.

Transformace se tedy přidávají následujícím způsobem:

1. nahrajeme příslušně soubory s XSLT šablonami takto:

1. 1.V adresáři definovaném parametrem DavLearn­rootDir v souboru Domain.xml otevřeme adresář transformations.

2. Vytvoříme adresář, ve kterém následně bude buď jedna, nebo několik XSLT šablon.

60 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

3. Do takto vytvořeného adresáře šablony nakopírujeme.

4. Změníme konfiguraci souboru transformations.xml obsaženého v kořenovém adresáři úložiště.

Pokud tedy hodláme např. přidat balíček šablon DocBook XSLT a konfigurovat transformaci do HTML a PDF, postupujeme následovně:

V adresáři transformations vytvoříme např. adresář DocBookXSLT, do tohoto adresáře nakopírujeme obsah distribuce a provedeme konfiguraci přidáním elementu directory (konfigurace transformací obsažených v rámci určitého námi vytvořeného adresáře) do elementu transformations:

Transformace do html kodu. /html/docbook.xsl html Transformace do PDF /fo/docbook.xsl pdf Povšimněte si prosím následujícího:

● Atribut name určuje jednak jméno transformace, ale rovněž název adresáře, ve kterém se bude daná transformace zobrazovat uživateli.

● Atribut engine určuje, zda­li se jako transformační procesor použije Saxon nebo FOP a nabývá hodnoty „saxon“ nebo „fop“.

● V případě, že použije FOP, ukazuje hodnota elementu file na XSLT šablonu transformující DocBook na FO (formating objects).

61 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

● Element suffix určuje příponu souboru.

● Element description obsahuje popis transformace, zatím jej ale DavLearn k ničemu nevyužívá.

Tato konfigurace včetně šablon je již obsažena v distribuci DavLearn.

4.2.6 ADRESÁŘOVÁ STRUKTURA ÚLOŽIŠŤ PROGRAMU

Pro lepší pochopení toho, jak úložiště fungují je vhodné použít následující schémata:

Ilustrace 5: Schéma adresáře úložiště.

Na předchozím schématu je zobrazen obsah složky definované parametrem DavLearn­rootDir. Jednotlivé XML soubory slouží implementacím úložišť, do složky transformations se ukládají transformační XSLT šablony. Do složky courses se pak ukládají dokumenty, které jsou vytvářeny tutory a taky soubory, do kterých jsou tyto dokumenty transformovány.

Struktura složky transformations je následující:

62 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Ilustrace 6: Struktura složky transformations.

Ve složce transformations vytváří administrátor složky obsahující balíčky transformací, které následně konfiguruje v souboru transformations.xml.

Složka courses kořenového adresáře obsahuje dvě podsložky: source, která obsahuje zdrojové dokumenty a složku transformed, která obsahuje dokumenty transformované do definovaných formátů.

Struktura složky courses je následující:

63 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Ilustrace 7: Struktura složky source. Konečně struktura složky transformed je následující:

64 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Ilustrace 8: Struktura složky transformed.

4.3 UŽIVATELSKÁ DOKUMENTACE

Výhoda použití protokolu WebDAV se demonstruje právě zde. Díky tomu, že WebDAV je podporován často přímo v operačním systému, stačí se k DavLearnu pouze připojit a následující práce probíhá stejně, jako s jinou složkou či adresářem.

4.3.1 PŘIPOJENÍ K SYSTÉMU

Od administrátora obdrží uživatel adresu serveru, své uživatelské jméno a heslo.

65 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

PŘIPOJENÍ Z OPERAČNÍHO SYSTÉMU WINDOWS

Podpora WebDAVu by měla být obsažena počínaje verzí systému Windows 2000. Podpora DavLearnu je ovšem testována pouze s Windows XP.

Připojení probíhá následovně:

1. 1.Z nabídky Start vybereme položku Mista v síti.

2. 2.V levém panelu zvolíme Přidat místo v síti.

3. 3.V průvodci stiskneme tlačítko Další a následně zvolíme Jiné umístnění v síti a stiskneme Další.

4. 4.Do pole pro adresu vložíme adresu serveru (např. http://localhost/slide/files/), kterou jsme obdrželi od administrátora. Nesmíme přitom zapomenout na případné lomítko za adresou. Stiskneme tlačítko Další.

5. Zadáme uživatelské jméno a heslo a složku si pojmenujeme.

6. Pod tímto jménem bude v systému složka od této chvíle přístupná.

V případě, že se systém bude odmítat připojit, je dobré experimentovat s koncovým lomítkem, případně s tvarem adresy.

PŘIPOJENÍ S POMOCÍ PROGRAMU DAV EXPLORER

Distribuce programu DAV Explorer je obsažena v CD příloze této práce. Soubor stačí dekomprimovat a z dekomprimované složky spustit soubor DAVExplorer.bat nebo DAVExplorer.sh dle toho, zda je použit Windows nebo Linux.

Do adresního řádku vypíšeme adresu, kterou jsme obdrželi od administrátora a stiskneme tlačítko connect (rovnou vedle adresního řádku). Budeme dotázáni na uživatelské jméno a heslo, které vyplníme.

Následně se nám již zobrazí struktura adresáře. Tu můžeme procházet. Stažení souboru, nebo nahrání souboru na server provedeme z menu File příkazem Get file a Write file.

66 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Jistě si všimnete, že DAVExplorer obsahuje další příkazy např. pro správu verzí apod. ­ to je proto, že rozšíření protokolu WebDAV správu verzí umožňují.

DavLearn zatím ale neimplementuje rozhraní WCK pro správu verzí, Do budoucna ji však obsahovat bude.

Připojení pomocí internetového prohlížeče

DavLearn má díky Jakarta Slide i webové rozhraní. Takové přípojení ale umožňuje pouze prohlížení, nikoliv zápis.

Jako adresu stačí prohlížeči zadat URL poskytnuté administrátorem. Následně se přihlásíme svým uživatelským jménem a heslem a prohlížeč nám zobrazí složky, ke kterým máme přístup.

4.3.2 POUŽÍVÁNÍ SYSTÉMU TUTOREM

Po připojení se tutorovi zobrazí složka jím učených kursů – taught_courses. Otevřením této složky se zobrazí všechny kursy, do kterých je tutor zapsán.

Po otevření složky kursu může tutor vytvářet nové dokumenty tak, že ve složce kursu vytvoří nový adresář.

Po vytvoření složky se v této objeví složka sources – do ní již může uživatel kopírovat soubor ve formátu DocBook a všechny soubory, na které se jeho dokument odkazuje (samozřejmě odkazy musí být relativní k tomuto dokumentu).

Po vložení dokumentu DocBook dojde okamžitě k automatické transformaci do všech formátů. Složky s transformovaným obsahem se zobrazí ve složce dokumentu.

Systém si zatím neumí poradit s diakritikou v názvech souborů.

4.3.3 POUŽÍVÁNÍ SYSTÉMU STUDENTEM

Po připojení se studentovi zobrazí složka my_courses. Po jejím otevření se zobrazí složky všech kursů, do kterých je student přihlášen.

Jakmile je otevřena složka některého kursu, jsou zobrazeny všechny dokumenty daného kursu ve složkách.

67 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Nyní již stačí otevřít složku zvoleného dokumentu, vybrat formát, ve kterém se dokument zobrazí a prohlížet nebo kopírovat obsah.

TECHNICKÁ DOKUMENTACE

Pokud se rozhodnete systém DavLearn modifikovat či dopsat vlastní implementace úložišť, je tato kapitola tím, co hledáte.

Na CD příloze v adresáři src najdete veškeré zdrojové kódy včetně skriptů pro ANT. Rovněž je obsažena i konfigurace projektu pro vývojové prostředí Netbeans.

Standardně je tedy nutné modifikovat soubory build.properties a nastavit je pro prostředí, ve kterém probíhá spuštění skriptů ANT.

Další informace, včetně dokumentace javadoc získáte na přiloženém CD.

5 ZÁVĚR

Tato práce si vytyčila za úkol vytvořit systém úložiště dokumentů DocBook s rozhraním WebDAV. Tohoto cíle bylo dosaženo a zadání splněno vytvořením projektu DavLearn, mezi jehož hlavní přednosti patří:

● jednoduchý přístup, neboť systém se tváří jako adresářová struktura

● snadnost provádění transformací

● možnost jednoduše přidávat nové transformace

● možnost měnit implementace jednotlivých úložišť

● snadné napojení systému na databázi uživatelů jiného systému

Při hledání způsobu, jakým implementovat podporu protokolu WebDAV byl vybrán Jakarta Slide. Protože bylo zjištěno, že dokumentace v anglickém jazyce je nemnoho a dokumentace česká pak

68 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning není dostupná vůbec, zvolil si autor za cíl usnadnit dalším zájemcům o použití tohoto velmi zajímavého projektu práci. Vznikla tak kapitola tomuto projektu věnovaná, zabývající se jeho celkovým popisem, která je v současnosti jedinou, autorovi známou, českou dokumentací.

Rovněž byla věnována pozornost protokolu WebDAV a jeho přednostem a možnostem.

Především pak práce představuje relativně nové spojení snadného přístupu protokolem WebDAV k systému a následné automatické transformace, čím je nejen šetřen čas uživatelův, ale je i rozšířen okruh možných uživatelů o ty, kteří by si jinak s transformacemi dokumentů neporadili.

Tato práce tedy znamená následující přínos:

● Vytvoření první české dokumentace pro Jakarta Slide a WCK.

● Ojedinělé spojení úložiště dokumentů se jejich automatickou transformací a snadným přístupem prostřednictvím protokolu WebDAV.

5.1 MOŽNOSTI DALŠÍHO VÝVOJE

Protože se autor rozhodl v projektu pokračovat, byly pro další verze vytyčeny tyto cíle:

● Vytvořit možnost transformovat nejen dokumenty DocBook.

● Implementovat další rozhraní WCK tak, aby byla umožněna i správa verzí a zamykání souborů.

● Umožnit studentům odevzdávat své práce tutorům a tutorům umožnit vytvářet a konfigurovat takováto „úložiště“.

● Umožnit automatické zasílání zpráv (např. e­mailů) o změnách. Studentům by tak přišla zpráva o novém dokumentu, tutorovi zpráva o tom, že jeho kolega změnil jeho soubor v návaznosti na správu verzí.

● Zavést podporu XML katalogů tak, aby systém při transformaci nehledal DTD v Internetu, ale ve svých adresářích.

● Umožnit vyhledávání a indexování dokumentů DocBook.

69 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

Program DavLearn by se po modifikacích dal použít rovněž jako osobní nástroj pro provádění transformací různých XML dokumentů.

POUŽITÉ ZDROJE

1. SKŘEHOTA, Ondřej. Nástroj pro ukládání a transformování dokumentů DocBook. Brno, 2004. 30 s. FI MUNI. Vedoucí bakalářské práce RNDr. Tomáš Pitner, PhD.

70 ze 71 Diplomová práce WebDAV a DocBook jako protokol a formát pro e­learning

2. Apache Software Foundation. The Jakarta Slide Project [online]. c2004 [cit. 2006­02­05]. Dostupný z WWW: .

3. Apache Software Foundation. FOP [online]. c1999­2006 [cit. 2006­02­05]. Dostupný z WWW: .

4. STEIN, Greg. WebDAV Resources [online]. 1999 [cit. 2006­03­30]. Dostupný z WWW: .

5. Apache Software Foundation. Apache Tomcat [online]. c1999­2006 [cit. 2006­03­30]. Dostupný z WWW: .

6. SPELL, Brett. Java : Programujeme profesionálně. Praha : Computer Press, 2002. 600 s. ISBN 80­7226.

7. SCHMULLER, Joseph. Myslíme v jazyku UML. Praha : Grada Publishing, 2001. 360 s. Myslíme v.... ISBN 80­247­0029­8.

8. Bradley N., XML: kompletní průvodce, Praha: Grada Publishing, 2000, ISBN 80­7169­949

71 ze 71