Navrh na zaklade postrehu z jednotlivych sezeni 1. Spravce formularu Ma na starosti veskere formulare. To znamena, ze na urcity pozadavek od uzivatele je schopny vratit prislusny formular (mohou by ulozeny v databazi v podobe nejakych sablon). Otazkou je, jestli tento modul ma provadet jiz nejake zakladni kontroly nebo vse nechat az na modul Tester. Zakladni kontroly by mohly obnaset zjisteni chybejicich udaju nebo spatneho typu udaju. To lze zjistit porovnanim vyplneneho formulare a puvodni sablony. Dalsi ukolem muze byt vyrovnani se se znakovou sadou. Vsechna data od uzivatele by se mela ukladat do databaze (ve forme tmp dat). Duvodem je neobtezovani uzivatel znovuvyplnovanim jiz znamych dat, prestoze byly napr. ve spatne kolonce 2. Startovac Dostane mail od uzivatele s vyplnenymi udaji. Tyto data se prechroustaji a ulozi do databaze. Vystupem je odkaz na ulozenou stranku (klic, ktery se posle zpet uzivateli). Stranka muze byt bud v tvaru: "Vse je v poradku, zaznamy byly prijaty", eventuelne: "Nelibi se mi toto a toto. Oprav to.". 3. Import Jeho ukolem je dohled nad dalsimi moznymi importy dat (soubory apod.). 4. Export Tento modul by mel zajistovat export databaze do zadanych formatu. Soucasti specifikace je totiz export dat pro ProCite a RIV. Mozna by byl vhodny i export do nejakeho textoveho formatu pro ucely prenosu (zalohovani) databaze. I kdyz, jak vyplynulo ze schuzky, neni problem prenest celou databazi. A vubec, jestli je zalohovani databaze nase starost. 5. Tester Na vstup dostane vlastni data od uzivatele a pozadavky na data (sablony formularu a dalsi udaje). Podle techto udaju vse zkontroluje a vrati stav dat (jako celku x jednotlivych polozek). Otazkou je, zda ma tento modul spolupracovat jen s planovacem (to znamena, ze planovac bude ridit jednotlive kontroly vsech dat) nebo zda ma spolupracovat i s konkretnimi moduly zajistujicimi vstup dat (spravce formularu, mail ...). Priklanel bych se spise k prvnimu reseni. 6. Planovac Mel by mit na starost rizeni cele aplikace a jejich jednotlivych modulu. To znamena, ze by si vedl zaznamy o vsech rozpracovanych ukolech a jejich stavu (napr. data pred/po kontrole/oprave apod.). Jako jediny modul by mel mit pristup ke spravci databaze, aby se zamezilo nejakym nezadoucim akcim. I kdyz na druhou stranu by pristup ke spravci dat mohl mit i tester (bylo by to rychlejsi?, nedojde tim ke komplikacim vzhledem k rizeni celeho procesu zpracovani dat od pocatecniho vlozeni az k definitivnimu ulozeni spravnych a kompletnich dat?). 7. Spravce databaze Tento modul jako jediny by mel mit pristup primo k databazi(m). Je zadouci, aby poskytoval jistou abstrakci vsech moznych dotazu na databazi pro planovac (ev. jine moduly). Tyto dotazy by pak prevedl na konkretni dotazy na konkretni databazi (MySQL). Mel by zajistovat i jistou serializaci vsech dotazu, aby nedochazelo ke konfliktum. To znamena zamykani databaze. Soucasti by mela byt i autentifikace dotazu (zda se jedna o opravneny dotaz). Poznamky Jako prirozeny prostredek pro prenos dat mezi moduly se jevi XML pro svou schopnost sebevysvetlitelnosti prenasenych dat. Ovsem to jenom pro prenos dat jako takovych. Pro ruzne pozadavky typu vyzadani zaznamu, vyhledavani se pouzije jiny format. Dalsi veci je logovani vsech akci. To by mohl provadet planovac, pripadne spravce databaze, ktery by mohl logovat vsechny uskutecnene dotazy na databazi. Dale nejake kuse postrehy ze setkani: 1. Melo by se zvazit pouzivani CVS jiz od uplneho zacatku. Mate nekdo nejakou vhodnou kucharku? 2. Byla zvazovana role testera cele aplikace od urciteho momentu (navrh od Ondry K. na zaklade jeho zkusenosti) 3. Debatovano vyuziti Javascriptu 4. Jak bude probihat komunikace mezi moduly: message passing (neni to v PHP prilis obskurni?), prime volani PHP skriptu pomoci metod GET/POST, prime volani fci jednotlivych modulu 5. Filtrace proti duplicitam v databazi (uloha spravce databaze?) 6. Zalohovani databaze?