Výroční zpráva

Formality

Název: Caddis 2
Vedoucí: Mgr. Michal Žemlička <zemlicka@ksi.ms.mff.cuni.cz>
Řešitelé: Miroslav Beneš <mira@jikos.cz>
  Karel Karlík <kkar8447@ss1000.ms.mff.cuni.cz>
  Ondřej Kučera <ondrej.kucera@centrum.cz>
  Jan Malý <jmal8295@artax.karlin.mff.cuni.cz>
  Ondřej Vošta <ondra.vosta@centrum.cz>
URL: http://www.ms.mff.cuni.cz/~zemlicka/caddis2/

Cíl projektu

(výňatek ze specifikace)

Cílem projektu je implementovat systém pro shromažďování a evidenci bibliografických záznamů, primárně určený pro využití na Matematicko-fyzikální fakultě Univerzity Karlovy v Praze, nicméně snadno přenositelný pro využití na jiných fakultách, případně i v jiných organizacích. Důležitou součástí tohoto informačního systému je mimo jiné komunikace s dalšími aplikacemi, a to zejména s databází Univerzity Karlovy - ProCite a s celostátní databází Ministerstva školství mládeže a tělovýchovy ČR - Riv. Systém je navrhován jako intranetová aplikace, tedy aplikace typu klient-server, kde server bude zajišťován webovým serverem s interpretem jazyka PHP, aplikační logika bude zajišťována právě PHP skripty a k ukládání dat se bude používat SQL server (konkrétně MySQL). Jako tenký klient se bude používat libovolný webový prohlížeč.

Rozdělení projektu a rozdělení práce v týmu

Celý informační systém je rozdělen na relativně samostatné moduly s pevně definovanými rozhraními. To umožňuje větší modularitu systému a jeho snadnou správu. Každý modul je vyvýjen několika členy týmu dohromady, abychom v případě absence jednoho člena týmu zamezili vyšším časovým ztrátám než je nezbytné.

Modul „Formulářník“

(Ondřej Kučera, Ondřej Vošta)

Tento modul zajišťuje zobrazení dat a formulářů uživateli a veškerou komunikaci s uživatelem. Zobrazení dat provádí formulářník na HTTP dotaz zaslaný webovým prohlížečem, a to vytvořením stránky v jazyce HTML (konkrétně ve verzi 4.0). Dále tento modul zajišťuje udržování spojení s uživatelem a částečnou klientskou validaci vstupních dat skripty v jazyce JavaScript (u prohlížečů, které tyto skripty nepodporují, se bude provádět pouze serverová kontrola vstupních dat).

Modul „Plánovač“

(Miroslav Beneš, Ondřej Kučera)

Tento modul je ústřední řídící jednotkou celého systému. Plánovač řídí posloupnost formulářů, které musí uživatel vyplnit k dosažení svého cíle (tzv. workflow). Dále plánovač zajišťuje autentifikaci uživatele a autorizaci požadavků. Posledním úkolem plánovače je řízení sběru, tedy jeho zahájení a ukončení, a autorizace akcí z hlediska stavu sběru.

Modul „Tester“

(Karel Karlík, Jan Malý)

Tento modul zajišťuje komplexní serverovou validaci vstupních údajů (umožňuje mnoho různých testů jak na hodnotu pole, například rodné číslo nebo e-mail, tak na některé složitější testy, jako například přítomnost zadané hodnoty v tabulce nebo jedinečnost zadané hodnoty). Dále se tento modul snaží do určité míry zpříjemnit uživateli práci nabízením pravděpodobných možností, snahou detekovat a opravovat překlepy a hledáním ve známých číselnících a seznamech.

Modul „Databáze“

(Jan Malý, Karel Karlík)

Tento modul slouží ostatním modulům pro přístup k databázi. Díky mechanismu tzv. virtuálních tabulek, které skrývají skutečnou fyzickou strukturu databáze a tu nahrazují virtuálním pohledem, je umožněno, aby se uživatelům (rozumnějme ostatním modulům, protože uživatel by neměl používat přímí přístup do databáze) jevila data v přirozené formě uspořádaná do celých záznamů (a ne rozdělena do dvou až tří tabulek a pospojována cizími klíči), a naproti tomu skutečné databázové schéma odpovídalo Boyce-Codovým normálním formám (do té míry, která se při návrhu databáze zdála rozumná).

Moduly „Import“ a „Export“

(Ondřej Vošta, Miroslav Beneš, Karel Karlík)

Tyto moduly slouží ke komunikaci systému s ostatními aplikacemi. Předpokládáme, že ve finální verzi projektu bude systém umožňovat export do databází ProCite a Riv, do formátu XML a do libovolného formátu specifikovaného pomocí XSLT šablony. Import bude probíhat z databází ProCite a Riv a z formátu XML.

Modul „Startovač“

(Jan Malý)

Tento pomocný modul umožňuje zadávání údajů a omezené využívání systému pomocí elektronické pošty.

„Konfigurace“

(Karel Karlík)

Tento samostatný, relativně oddělený modul zajišťuje zpracování konfiguračních souborů a na jejich základě vytvoření některých databázových tabulek a jejich naplnění.

Současný stav

Modul „Formulářník“

Jsou vytvořeny mechanismy pro převod interního formátu dat do XML, jsou vytvořeny funkce pro transformaci XML pomocí šablony a částečně je vytvořena XSL šablona pro transformaci XML do HTML. Je hotový převod dat přijatých od uživatele (předaných metodou POST v HTTP požadavku). Částečně je rozpracována klientská kontrola vstupních údajů.

Modul „Plánovač“

Je vytvořeno základní rozhodovací jádro spravující různá workflow, je hotova podpora sessions. A téměř hotova je podpora pro autentifikaci a autorizaci.

Nejvýznamnější funkčnost, která schází, je definování konkrétních workflow.

Modul „Tester“

Je implementována základní infrastruktura a jsou implementovány základní obecné testy.

Nejdůležitější scházející funkčnost je navrhování oprav pro nalezené chyby.

Modul „Databáze“

Jsou implementovány operace nad virtuálními tabulkami – čtení, zápis, mazání, aktualizace. Částečně je implementována konverze češtiny a dalších jazyků a částečně je také implementována podpora fulltextového vyhledávání.

Modul „Import“

Je implementován import z formátu XML a částečně je implementován import z databází Riv a ProCite.

Schází zejména dokončení importů z databází Riv a Procite.

Modul „Export“

Je implementován export do databáze Riv, zbývá provést pouze konfiguraci, částečně je implementován export do databáze ProCite. Plně je implementován export do formátu XML a do formátů daných XSLT šablonami.

Schází zejména dokončení exportů do databází Riv a ProCite.

Modul „Startovač“

Je implementováno parsování mailu a částečně je zajištěno zabezpečení přístupu pomocí elektronické pošty.

„Konfigurace“

Jsou navrženy konfigurační soubory a částečně jsou i napsány, částečně je implementováno jejich parsování a tvorba tabulek.

Zejména je potřeba dokončit částečně implementované funkce.

Dokončení projektu

Dokončení projektu plánujeme na období letního semestru akademického roku 2003/2004. Předpokládáme, že mimo vážné dlouhodobé absence členů týmu by nic nemělo ohrozit dokončení projektu.