MASARYKOVA UNIVERZITA F}w¡¢£¤¥¦§¨  AKULTA INFORMATIKY !"#$%&'()+,-./012345

Správca súborov pre webový informaˇcnýsystém

DIPLOMOVÁ PRÁCA

Tomáš Zábojník

Brno, jar 2013 Prehlásenie

Prehlasujem, že táto diplomová práca je mojím pôvodným autorským dielom, ktoré som vypracoval samostatne. Všetky zdroje, pramene a literatúru, ktoré som pri vypra- covaní používal alebo z nich ˇcerpal,v práci riadne citujem s uvedením úplného od- kazu na príslušný zdroj.

Vedúci práce: doc. Ing. Michal Brandejs, CSc.

ii Pod’akovanie

Chcel by som pod’akovat’ môjmu vedúcemu doc. Ing. Michalovi Brandejsovi, CSc. za jeho trpezlivost’ a neustálu podporu poˇcasmojej párce. Dalejˇ chcem pod’akovat’ ˇclenomvývojového týmu Informaˇcnéhosystému Masarykovej univerzity za cenné rady a pripomienky a tiež mojej rodine a známym za morálnu podporu.

iii Obsah

1 Úvod do správy súborov ...... 4 1.1 Súbory a súborové systémy ...... 4 1.2 Správcovia súborov ...... 5 1.2.1 Editory adresárov[10] ...... 5 1.2.2 Tradiˇcnísprávcovia súborov ...... 6 1.2.3 Priestoroví správcovia súborov ...... 6 1.2.4 Navigaˇcnísprávcovia súborov ...... 6 1.2.5 Ostatné typy ...... 7 2 Weboví správcovia súborov ...... 8 2.1 Rozhrania webových správcov súborov ...... 8 2.1.1 Simple ...... 8 2.1.2 KCFinder ...... 9 2.1.3 Google Drive ...... 10 2.1.4 PHP Navigator ...... 11 2.2 Správca súborov v IS MU ...... 11 2.2.1 Operácie ...... 11 2.2.2 Zoznam súborov ...... 14 3 Správa súborov v prostredí IS MU ...... 16 3.1 Agendy ...... 16 3.2 Prístupové práva ...... 18 3.2.1 Aplikaˇcnépráva ...... 19 3.3 Implementácia úložiska IS MU ...... 20 3.3.1 Súborový systém ...... 20 3.3.2 Prístupové práva ...... 20 3.3.3 Fyzické ukladanie dát ...... 21 3.4 Analýza používania ...... 21 3.4.1 Poˇctyprístupov ...... 21 3.4.2 Operácie ...... 24 4 Implementácia nového Správcu súborov ...... 26 4.1 Podnety užívatel’ov ...... 26 4.2 Použité technológie ...... 27 4.2.1 AJAX ...... 28 4.2.2 jQuery ...... 28 4.2.3 JSON ...... 28 4.2.4 HTML 5 ...... 29 4.3 Užívatel’ské rozhranie ...... 29 4.3.1 Zoznam súborov ...... 31 4.3.2 Rozhranie operácií ...... 31 4.4 JavaScriptové rozhranie ...... 32 4.5 Vnútorné zmeny ...... 33 4.5.1 Zvýšenie opätovnej použitel’nosti kódu ...... 33

1 4.5.2 Oddelenie formy od obsahu ...... 34 4.6 Dalšieˇ možné rozšírenia ...... 34 5 Záver ...... 36 Literatúra ...... 36 6 Prílohy ...... 39 6.1 Schéma úložiska IS MU ...... 39 6.2 Schéma vykonávania operácií v novom Správcovi súborov ...... 40 6.3 Ukážky grafického rozhrania ...... 42 6.3.1 jQuery pluginy qTip a jQueryUI ...... 42 6.3.2 Tmavý dizajn nového Správcu súborov ...... 42

2 Úvod

Správca súborov v Informaˇcnomsystéme Masarykovej univerzity (d’alej len IS MU) je jednou z najpoužívanejších aplikácií Informaˇcnéhosystému. V priemere každú de- siatu požiadavku v IS MU, ˇciuž ide o prezeranie študijných materiálov, odovzdá- vanie študentských seminárnych prác a projektov, alebo o kontrolu závereˇcnýchprác na plagiáty spracúva práve Správca súborov. Súˇcasnápodoba aplikácie vznikla v roku 2006[18] odkedy sa doˇckalalen malých zmien v sémantike niektorých operácií a jedinej výraznejšej zmeny v podobe úpravy vyhodnocovania prístupových práv súborov v úložisku IS MU[19]. Vzhl’adom k ne- ustálemu zvyšovaniu poˇctuspravovaných súborov a k prudkému rozvoju webových technológii v posledných rokoch sa aplikácia stáva ˇcorazviac zastaralou, ˇciuž z po- hl’adu jej interného návrhu, nemožnosti integrácie jej komponentov do d’alších apliká- cií v Informaˇcnomsystéme, alebo z pohl’adu užívatel’ského rozhrania a užívatel’skej prívetivosti. Ciel’om našej práce je identifikovat’ a analyzovat’ slabé miesta Správcu súborov v IS MU. Preskúmame možnosti dnešných správcov súborov a to ako webových, tak klasických desktopových aplikácií a do tohoto kontextu sa pokúsime zasadit’ súˇcasnú podobu Správcu súborov v IS MU. Analyzujeme podnety užívatel’ov IS MU k Správ- covi súborov a na základe nadobudnutých poznatkov navrhneme a implementujeme novú podobu aplikácie.

3 Kapitola 1 Úvod do správy súborov

Ciel’om tejto kapitoly je v struˇcnostizhrnút’ problematiku správy súborov. V prvej ˇcastizadefinujeme základné pojmy a ciele správy súborov. V druhej ˇcasti,ktorej štruk- túra je prevzatá z [10], spravíme struˇcnýprehl’ad historického vývoja správcov súborov a pozrieme sa na ich vybraných predstavitel’ov.

1.1 Súbory a súborové systémy

Pod pojmom súbor (angl. file) v oblasti poˇcítaˇcovýchsystémov rozumieme zoskupe- nie dát, ktoré sú ako celok uložené najˇcastejšievo vonkajšej pamäti poˇcítaˇca.S pojmom sa môžme stretnút’ už v 50. rokoch 20. storoˇcia,teda v ére prvých poˇcítaˇcov, kedy americká spoloˇcnost’ RCA použila v reklame termín na popis svojich „pamät’ových trubíc“[1], ktoré boli urˇcenéako operaˇcnápamät’ vtedajších poˇcítaˇcov[14].V tomto období sa za súbor považovali nielen samotné dáta, ale aj hardware, na ktorom boli uložené, ˇciuž išlo o vonkajšiu, alebo vnútornú pamät’. S príchodom prvých multitaskingových operaˇcnýchsystémov a potrebou odlíšit’ od seba dáta rôznych programov sa objavil koncept súborového systému, vd’aka ktorému boli programy schopné pracovat’ hned’ s niekol’kými virtuálnymi súbormi na jedinom úložnom zariadení. Od tohto momentu sa pojem súbor zaˇcalpoužívat’ v jeho dnešnom význame. Súborové systémy od svojho vzniku prešli dlhým vývojom a okrem samotného prístupu k súborom dnes ponúkajú možnosti ochrany pred stratou údajov, verzovanie súborov, transakˇcnéhromadné operácie a pod. Programy pristupujú k súborom pomocou služieb operaˇcnéhosystému. Aj ked’ sa spôsob práce v jednotlivých operaˇcnýcha súborových systémoch môže líšit’, väˇcšina z nich poskytuje nasledujúce operácie[15]:

• vytvorenie nového súboru,

• otvorenie súboru,

• zatvorenie súboru,

• vyhl’adávanie v súbore (zmena aktuálnej pozície),

• ˇcítaniez aktuálnej pozície v súbore,

• zápis na aktuálnu pozíciu v súbore.

K súborom sa pristupuje pomocou ich mena. V UNIXových systémoch sú súbory popísané štruktúrou tzv. i-uzlov (i-nodes). I-uzly obsahujú adresu dát na fyzickom médiu a vel’kost súborov. Mená súborov, pomocou ktorých k nim pristupujeme, sú uložené v tzv. adresároch. Adresár je v prípade UNIXových súborových systémov zvláštny druh súboru, ktorý obsahuje tabul’ku mien súborov a zodpovedajúcich ˇcísel

4 1. ÚVOD DO SPRÁVY SÚBOROV i-uzlov[3]. Je zrejmé, že adresáre môžu ukazovat’ na d’alšie tzv. podadresáre. Štruk- túru UNIXového súborového systému si tak môžme predstavit’ ako orientovaný graf s poˇciatoˇcnýmuzlom, ktorý nazývame kore ˇnovýadresár. Postupnost’ uzlov zaˇcína- júcu v koreˇnovomadresári nazývame cestou v adresárovej štruktúre. Napriek tomu, že tento graf môže obsahovat’ viac ciest k jednému súboru a môže dokonca obsaho- vat’ cykly, je ˇcastovýhodné predstavovat’ si jeho štruktúru ako strom, ktorého uzly sú adresáre (koreˇnovýadresár plní úlohu koreˇnovéhouzla) a súbory sú listy. V jednoduchších súborových systémoch, ako je napr. FAT, majú adresáre skutoˇcne stromovú štruktúru. Cesta k súboru v takom prípade jednoznaˇcneurˇcujejeho pozíciu na pamät’ovom médiu a naopak súbor je jednoznaˇcneidentifikovaný svojou cestou (v tom prípade je možné súbor stotožnit’ s jeho cestou). Adresáre sú základnou organizaˇcnouštruktúrou väˇcšinysúˇcasnýchsúborových systémov. Pre úplnost’ dodajme, že niektoré jednoduchšie systémy, ako napr. CP/M neumožˇnujúvytváranie adresárov[9] a hovoríme, že majú plochú (flat) štruktúru. Súˇcast’ou súborového systému môžu byt’ d’alšie objekty, spomeˇnmenapríklad sym- bolické odkazy, pomenované rúry, špeciálne súbory. Narozdiel od týchto, (bežné) sú- bory nie sú interpretované súborovým resp. operaˇcnýmsystémom. Súborové systémy ˇcastoevidujú rôzne atribúty a metadáta súborov, ako sú napr. typ súboru (ˇcastourˇcenýtzv. príponou súboru), jeho vlastník, dátum a ˇcasposlednej zmeny, príznak „len pre ˇcítanie“.Viacužívatel’ské systémy navyše obvykle umožˇnujú pokroˇcilúkontrolu prístupových práv.

1.2 Správcovia súborov

S narastajúcou kapacitou vonkajších pamätí poˇcítaˇcovnarastá aj poˇcetsúborov, ktoré sú na nich uložené. Preto okrem manipulácie s obsahom súborov vyvstáva požia- davka na ich správu v rámci súborového systému. Typicky požadujeme: • výpis súborov v adresári, • vytváranie súborov a adresárov, • kopírovanie súborov medzi adresármi a fyzickými médiami, • presúvanie a premenovanie súborov a adresárov, • rušenie súborov a adresárov, • zmena atribútov a prístupových práv. Je zrejmé, že v UNIXových systémoch, v ktorých „všetko je súbor“, si na vykonanie týchto akcií vystaˇcímes operáciami uvedenými v predchádzajúcej ˇcasti.Takáto práca by však bola neefektívna, preto štandardnou súˇcast’ou operaˇcnýchsystémov zvyknú byt’ programy, ktoré nám umožnia jednoducho vykonat’ tieto operácie (ls, mkdir, mv, cp, rmdir, rm, ...). Pri práci s vel’kým poˇctomsúborov a adresárov sa však aj tieto programy ukazujú ako t’ažkopádne, preto zaˇcalivznikat’ programy, ktoré zastrešujú vyššie uvedené operácie v jednotnom užívatel’skom rozhraní - správcovia súborov.

1.2.1 Editory adresárov[10] Za prvých predchodcov dnešných správcov súborov môžeme považovat’ programy oznaˇcovanéako editory adresárov, ktoré ako prvé poskytli rozhranie na prechádzanie

5 1. ÚVOD DO SPRÁVY SÚBOROV adresárovej štruktúry. Umožˇnovalizorad’ovat’ súbory pomocou ich atribútov a tie následne menit’. Tiež umožˇnovalispúšt’at’ programy priamo zo svojho rozhrania. Za všetky spomeˇnmeprogramy a ded. Okrem nich existovali takzvaní „file-list“ správcovia súborov, ktorí umožˇnovalitriedit’ súbory v adresároch pomocou atribútov a ich výstup bolo možné d’alej spracovat’ pomocou skriptov. Do tejto kategórie patria napr. programy flist pre systém CMS, alebo filelist.

1.2.2 Tradiˇcnísprávcovia súborov

Tradiˇcnísprávcovia súborov (d’alej OFM z angl. orthodox file managers) sú starším typom, ktorý si ale zachoval popularitu dodnes. Jeho prvými a najdôležitejšími pred- stavitel’mi sú programy PathMinder a pre DOS, ktoré vyšli v rokoch 1984 resp. 1986[13, 12]. Typické rozhranie OFM pozostáva z dvoch hlavných okien (aktívneho a pasívneho) na prácu so súbormi a adresármi a z príkazového riadku operaˇcnéhosystému. Jed- notlivé okná je obvykle možné skrývat’ a menit’ ich vel’kost’. V hlavných oknách sú bežne zobrazené zoznamy súborov toho istého, alebo dvoch rôznych adresárov. OFM bežne podporujú niekol’ko druhov zobrazenia adresára, napr. zoznam, po- drobný zoznam (okrem mena súboru sú zobrazené aj niektoré atribúty ako vel’kost’, dátum poslednej úpravy), adresárový strom, miniatúry obrázkov. Castoˇ tiež obsahujú režim, kedy sa v pasívnom okne zobrazujú informácie o práve vybratom súbore alebo adresári v aktívnom okne. OFM obvykle ponúkajú jednoduchý vstavaný editor tex- tových súborov a prehliadaˇcniektorých d’alších bežných typov súborov. Mnoho z nich poskytuje prehliadaˇcvirtuálnych súborových systémov (FTP, WebDAV). Napriek tomu, že moderní OFM podporujú prácu s myšou vrátane podpory „drag & drop“, ich rozhranie je prispôsobené na pohodlnú a efektívnu prácu s klávesnicou. O ich popularite svedˇcímnožstvo klonov pôvodného Norton Commandera pre prakticky všetky rozšírené operaˇcnésystémy (napr. , Volkov Comman- der pre DOS, Altap Salamander, pre Windows, Midnight Comman- der pre Linux a MacOS), dokument OFM standards v poslednej verzii z r. 2012[2], ale aj požiadavky užívatel’ov IS MU na dvojpanelového Správcu súborov v IS MU.

1.2.3 Priestoroví správcovia súborov

Priestoroví správcovia súborov vznikli po rozšírení moderných grafických rozhraní, ktoré podporujú prácu vo viacerých oknách. Každý zobrazený adresár má vlastné okno, v ktorom je zobrazený jeho obsah (v jednom z režimov, ktoré sme popísali vyššie). Súbory je možné presúvat’ a kopírovat’ medzi adresármi metódou „drag & drop“. Nevýhodou tohoto prístupu je pomerne t’ažkopádna navigácia a horšia orien- tácia v otvorených oknách, oproti dvom panelom v tradiˇcnýchsprávcoch súborov. Typickými predstavitel’mi sú programy pre MacOS vo verziách 5 - 9, Win- dows Explorer vo Windows 95 (možno prepnút’ aj do navigaˇcnéhorežimu, vid’ d’alšia sekcia) a nižších verziách, Nautilus 2.6 pre UNIXové systémy. Tento model je postupne opúšt’aný.

1.2.4 Navigaˇcnísprávcovia súborov

Dnes prevládajúci typ správcov súborov, ktorý bol spropagovaný hlavne vd’aka pro- gramu Windows Explorer vo Windows 98 a vyšších verziách. Navigaˇcnýrežim je štan-

6 1. ÚVOD DO SPRÁVY SÚBOROV dardne zapnutý aj v nových verziách programov Finder a Nautilus. Navigaˇcnísprávcovia bežne obsahujú okno so zoznamom súborov, riadok s adre- sou aktuálneho adresára a navigaˇcnýpanel podobný tomu z webových prehliadaˇcov (obvykle obsahuje tlaˇcidlá spät’, vpred, domov, obnovit’; riadok s adresou obsahuje URI aktuálneho adresára). Podobne ako webové prehliadaˇce,navigaˇcnísprávcovia ˇcasto obsahujú panel s obl’úbenými položkami a panel s históriou. Obvykle tiež umožˇnujú zapnút’ panel s adresárovou štruktúrou, narozdiel od tradiˇcnýchsprávcov súborov sa v ˇnomvšak nedá vykonávat’ väˇcšinaoperácií. Presúvanie a kopírovanie súborov obvykle prebieha metódou „drag & drop“ medzi otvorenými oknami, alebo pomocou schránky (clipboard), do/z ktorej je možné súbory a adresáre kopírovat’. Medzikrokom medzi tradiˇcnýmia navigaˇcnýmisprávcami súborov sú tzv. st´lp- coví (column) správcovia, ktorí obsah každého adresára od koreˇnovéhoaž po ak- tuálny zobrazujú vo vlastnom st´lpci. S touto myšlienkou prišiel ako prvý program File Viewer[11], ktorý bol súˇcast’ou operaˇcnéhosystému NeXTSTEP a d’alej ju spopulari- zoval Apple, ktorý st´lpcovú navigáciu implementoval vo Finderi, ako aj v mediálnom prehliadaˇciiTunes.

1.2.5 Ostatné typy Z d’alších systémov na správu súborov spomenieme 3D správcov súborov fsn, fsv pre UNIXové systémy a BumpTop pre Windows a MacOSX. Tieto systémy si zatial’ nevy- dobili vel’kú popularitu, pravdepodobne práve kvôli rozhraniu, ktoré je pre väˇcšinu užívatel’ov neprehl’adné a t’ažko ovládatel’né.

7 Kapitola 2 Weboví správcovia súborov

S rozvojom WWW sa množstvo desktopových aplikácií presúva do okna webového prehliadaˇca,ˇciuž ide o e-mailových klientov, kancelárske balíky, alebo o komplexné informaˇcnésystémy. Prvé nástroje na prácu so súbormi na webe boli jednoduché skripty (prípadne priamo súˇcast’ webových serverov, napr. Apache Directory Listing), ktoré umožˇnovali výpis súborov v adresároch na webovom serveri. Po zavedení formulárového prvku „file“ v HTML 3[4] vznikla možnost’ nahrávat’ súbory na server prostredníctvom we- bového prehliadaˇca.To využili niektoré webohostingové spoloˇcnosti,ktoré chceli svo- jim užívatel’om zjednodušit’ prácu so súbormi v priestore pre ich weby a zaˇcalivyví- jat’ vlastných webových správcov súborov. Podl’a našich skúseností so slovenskými a ˇceskýmiwebhostingovými službami však nedosahovali komfort prístupu cez dostup- ných FTP klientov, ktorí už v tom ˇcaseboli súˇcast’ou mnohých desktopových správcov súborov. Dalšíˇ zlom vo vývoji webových správcov súborov nastal s príchodom Webu 2.0 a rozvojom systémov na správu obsahu (CMS). Vyvstala potreba, aby súbory mohli na web umiestˇnovat’ aj menej technicky zdatní užívatelia, ˇcosi vynútilo zjednoduše- nie rozhrania týchto aplikácií, ˇcastoaj na úkor ich funkcionality. Napr. niektoré CMS ukladajú súbory do vopred urˇcenej„adresárovej“ štruktúry (obrázky, videá, doku- menty), v ktorej neumožˇnujúvytvárat’ podasresáre. Okrem toho však do správy sú- borov priniesli nové koncepty práce s dátami, napr. oznaˇcovaniesúborov štítkami (tagmi), zdiel’anie na sociálnych siet’ach a pod. V súˇcasnostisa weboví správcovia súborov svojou funkcionalitou a komfortom užívatel’ského rozhrania vyrovnajú svojím desktopovým náprotivkom. Umožˇnujúsprá- vu súborov na lokálnych (systém na ktorom beží webový server) aj vzdialených systé- moch, na ktoré sa dokážu pripojit’ pomocou protokolov FTP a WebDAV a vykonávat’ prakticky všetky operácie, ktoré operaˇcnýa súborový systém podporujú.

2.1 Rozhrania webových správcov súborov

Na webe sa v súˇcasnostistretávame skoro výluˇcnes navigaˇcnýmisprávcami súborov. V tejto sekcií si na niekol’kých konkrétnych príkladoch ukážeme základné koncepty webových správcov súborov, ako aj prvky rozhraní, ktoré zatial’ nie sú pre webové aplikácie bežné.

2.1.1 Simple File Manager

Rozhranie Simple File Manager[5] (SFM) pozostáva z 3 ˇcastí:

• identifikácia pracovného adresára,

8 2. WEBOVÍSPRÁVCOVIASÚBOROV

Obr. 2.1: Rozhranie aplikácie Simple File Manager[5]

• panel s operáciami na vytváranie súborov a adresárov,

• zoznam súborov v pracovnom adresári.

Tieto, alebo podobné prvky rozhrania obsahujú skoro všetky aplikácie, vrátane Správ- cu súborov v IS MU, ktorými sa v tejto práci zaoberáme. Na každom riadku v zozname súborov nájdeme ikonu súboru, jeho meno, vel’kost’, typ a operácie, ktoré so súborom môže vykonat’. SFM podporuje operácie presúva- nia a kopírovania, premenovania a mazania. Textové súbory je navyše možné edito- vat’ interným textovým editorom. Aplikácia nepodporuje žiadne hromadné operácie, hodí sa preto len na správu menších adresárov (napr. osobných webov na free web- hostingu). Posledná verzia SFM bola vydaná v roku 2003 a jej základné rozhranie je statické, teda každé kliknutie v rozhraní je spracované webovým serverom. Jedinou výnimkou je vstavaný prehliadaˇcobrázkov, ktorý v malej miere využíva JavaScript. Všetky zmeny v adresári (vstup do iného adresára, operácia so súborom) sú na server odosielané ako požiadavky typu GET s parametrami zakódovanými v URL. To umožˇnujenavigá- ciu „dopredu“ a „dozadu“ v navštívených adresároch pomocou tlaˇcidielwebového prehliadaˇca. Kvôli aspoˇnzákladnej miere zabezpeˇceniaumožˇnujeSFM chránit’ prístup do svo- jho rozhrania pomocou užívatel’ského mena a hesla. Tie, podobne ako parametre ope- rácií, pri každej požiadavke odosiela v otvorenej podobe ako súˇcast’ URL, preto tohoto správcu súborov nie je vhodné používat’ v kombinácií s nešifrovanou komunikáciou.

2.1.2 KCFinder

KCFinder[17] je open-source klonom aplikácie CKFinder, ktorá je primárne urˇcená ako správca súborov pre online HTML editor CKEditor, používaný okrem iného aj v IS MU. Rozhranie oproti vyššie spomínanému Simple File Manager obsahuje l’avý panel s adresárovým stromom, ktorý je bežný pri webových správcoch s dynamickým (AJAX- ovým) rozhraním. Zmena pracovného adresára prebieha bez opätovného naˇcítania celej stránky a zmeny URL v prehliadaˇci,preto na navigáciu nie je možné použit’

9 2. WEBOVÍSPRÁVCOVIASÚBOROV

Obr. 2.2: Rozhranie aplikácie KCFinder[17] tlaˇcidláv prehliadaˇci(preto musí rozhranie obsahovat’ tlaˇcidlona obnovenie obsahu pracovného adresára). V zozname súborov KCFinder umožˇnujezvolit’, ktoré informácie o súboroch sa majú zobrazovat’ a podl’a ktorého st´lpca tabul’ky sa majú riadky zorad’ovat’. Okrem toho aplikácia poskytuje režim „náhl’adov“, v ktorom zobrazuje vel’ké ikony súborov a v prípade obrázkov ich náhl’ady. Aplikácia obsahuje vstavaný prehliadaˇcobrázkov. Operácie presunu a kopírovania súborov a adresárov sú vykonávané metódou „drag & drop“, prípadne pomocou virtuálnej „schránky“ (koncept prevzatý z desk- topových rozhraní), kam je možné súbory kopírovat’ a následne ich vkladat’ do in- ých adresárov. Poznamenajme, že schránku je možné implementovat’ vd’aka dyna- mickému rozhraniu. Jej obsah je uložený v globálnej premennej JavaScriptu, o ktorej obsah by sme navigáciou na inú stránku prišli. Z d’alších prvkov rozhrania, ktoré nie sú pre webové aplikácie bežné, spomeˇnme kontextové menu s operáciami, ktoré je možné na zvolených súboroch vykonat’.

2.1.3 Google Drive

Aplikácia Google Drive[6] d’alej rozvíja myšlienky, ktoré sme si popísali pri programe KCFinder. Rozhranie spolupracuje s d’alšími aplikáciami Google ako kancelársky balík a je prispôsobené na kolaboratívnu prácu, vd’aka ˇcomuobsahuje pokroˇcilejšiemož- nosti nastavenia prístupových práv súborov a adresárov. Dalšouˇ novinkou oproti vyššie uvedeným aplikáciám sú virtuálne adresáre:

• súbory zdiel’ané so mnou,

• súbory oznaˇcenéhviezdiˇckou,

• nedávno otvorené súbory.

Tieto adresáre majú špeciálny režim, súbory do nich nie je možné presúvat’ a kopírovat’ bežným spôsobom (s výnimkou kopírovania do adresára súborov s hviezdiˇckou). Všetky operácie sú dostupné z kontextového menu, ktoré sa líši pre jednotlivé typy súborov a tiež v závislosti na tom, ˇcije oznaˇcený,jeden alebo viacero súborov.

10 2. WEBOVÍSPRÁVCOVIASÚBOROV

Obr. 2.3: Rozhranie PHP Navigator[16]

Základné rozhranie Google Drive je rozdelené na 2 ˇcasti- navigaˇcnýst´lpec a zoz- nam súborov. Podrobnosti o súbore sa zobrazujú v d’alšom st´lpci, ktorý sa dynamicky vkladá do rozhrania, napravo od zoznamu súborov. Dialógy operácií sa potom zo- brazujú v tzv. modálnom okne, ktoré prekrýva ostatné prvky užívatel’ského rozhrania a nedovolí s nimi pracovat’ do potvrdenia resp. zrušenia operácie. Aplikácia podporuje v moderných prehliadaˇcochvkladanie súborov metódou „drag & drop“, teda presunutím „z plochy poˇcítaˇca“,popri klasickom prístupe vkladania pomocou špeciálneho formulára. Pretože dáta v Google Drive sú uložené v rozsiahlom distribuovanom súborovom systéme, zmeny vykonané v súboroch sa nemusia prejavit’ okamžite po potvrdení vykonania operácie (v kontraste so súborovým systémom v IS MU, ktorý zmeny vy- konáva okamžite a transakˇcne). Aplikácia, narozdiel od vyššie uvedených nemá dostupné zdrojové kódy a nie je možné použit’ ju na vlastnom systéme.

2.1.4 PHP Navigator PHP navigator[16] má dynamické rozhranie, ktoré v základnej podobe verne kopíruje aplikáciu Windows Explorer. Informácie o aktuálnom súbore aj s ponukou operácií sa zobrazujú v l’avom paneli. Okrem bežných operácií umožˇnujeaplikácia vkladat’ súbory rozbalením archívu ZIP a naopak kolekciu súborov pred stiahnutím zabalit’ do ZIPu. Dalejˇ obsahuje vlastný jednoduchý HTML editor a editor textových súborov s podporou zvýrazˇnovaniasyn- taxe niekol’kých programovacích jazykov. PHP Navigator implementuje vlastný systém správy užívatel’ov a prístupových práv. Informácie o užívatel’och a právach ukladá v MySQL databáze.

2.2 Správca súborov v IS MU

2.2.1 Operácie Správca súborov v IS MU má bežné navigaˇcnérozhranie, ktoré je rozdelené na 4 ˇcasti (vid’ obrázok 2.4):

11 2. WEBOVÍSPRÁVCOVIASÚBOROV

Obr. 2.4: Rozhranie Správcu súborov v IS MU

1. panel s adresou, 2. panel operácií, 3. zoznam nadradených adresárov, 4. zoznam súborov. Panel operácií sa nachádza na 2 miestach - nad a pod zoznamom súborov, ˇcomôže pri práci s vel’kými adresármi ušetrit’ niekol’ko pohybov myšou a scrollovanie. Ope- rácie sú rozdelené do 3 skupín: • Vkladacie operácie, teda také, na ktorých vykonanie je potrebné právo vkladat’ do adresára. Sú to operácie:

– Nahrat’ súbor, umožˇnujedo aktuálneho adresára vložit’ až 10 súborov z poˇcítaˇca.Užívatel’ im pri tom môže nastavit’ názov, popis a meno pomo- cou ktorého budú identifikované v súborovom systéme (tieto vlastnosti je tiež možné nastavovat’ pri vytváraní adresára, vkladaní súboru pomocou vstavaného editora a vkladaní odkazu do Internetu). – Vpísat’ súbor pomocou editora, dovol’uje pomocou vstavaného HTML ed- itora (resp. obyˇcajnéhotextového pol’a) vytvárat’ a ukladat’ dokumenty pri- amo v okne Správcu súborov. – Vytvorit’ adresár, umožˇnujev aktuálnom adresári vytvorit’ až 10 podadre- sárov. – Vložit’ súbory a adresáre presunutím/kopírovaním, z iných adresárov v súborovom systéme. – Rozbalit’ ZIP, automaticky rozbalí vkladaný archív ZIP. – Vložit’ odkaz, umožˇnujepriamo do zoznamu súborov umiestnit’ hypertex- tový odkaz na l’ubovol’nú stránku v Internete.

• Operácie na zaškrtnutých uzloch. Niektoré z týchto operácií umožˇnujúupravo- vat’ vlastnosti, ktoré sa viažu na jednotliv riadky zoznamu súborov (ˇciuž meta- dáta alebo obsah). V takom prípade vyvolaný dialóg operácie obsahuje samo- statné editaˇcnéprvky pre každý riadok. Do tejto skupiny patria operácie:

12 2. WEBOVÍSPRÁVCOVIASÚBOROV

– Odstránit’, presunie zvolené súbory ˇciadresáre do „Odpadkového koša“, alebo ich úplne odstráni zo súborového systému. – Upravit’ obsah súboru, umožˇnujeeditovat’ textové súbory pomocou vsta- vaného editora, – Zmenit’ spoloˇcnévlastnosti súborov, umožˇnujeeditovat’ metainformácie o súboroch a adresároch, teda ich názov, popis, poradie v adresári. V niek- torých agendách umožˇnujepredvyplnit’ dátum, kedy budú odstránené. – Zmenit’ vlastnosti súborov, dovol’uje zmenit’ mená súborov, pomocou kto- rých sú identifikované v súborovom systéme, mime-typy, ktoré sa posielajú v hlaviˇckeHTTP odpovede pri ich st’ahovaní a v prípade textových súborov tiež kódovanie. – Nastavit’ práva jednotlivo, umožˇnujenastavit’ prístupové práva a atribúty jednotlivých súborov a adresárov. – Nájst’ podobné dokumenty, zobrazí podobnost’ s textovými súbormi v úložisku IS, prípadne zaradí súbor do fronty na kontrolu plagiátovým sys- témom. – Zmenit’ poradie, umožˇnujenastavit’ poradie v zozname súborov v rámci adresára. Súbory s vyplneným poradím sa v zozname súborov automaticky umiestˇnujúnad súbormi bez neho. Súbory s rovnakým poradím sa d’alej zorad’ujú podl’a užívatel’om stanoveného kritéria. – Presunút’/skopírovat’ inam, dovol’uje presúvat’ zaškrtnuté súbory na iné miesta v súborovom systéme. – Kontrola práv, umožˇnujeužívatel’ovi zistit’, ˇcimá nejaká konkrétna osoba v IS MU právo na zaškrtnutý súbor a jeho nadradené adresáre.

• Hromadné operácie, umožˇnujúzmenit’ niektoré vlastnosti naraz všetkým za- škrtnutým riadkom:

– Nastavit’ práva hromadne, podobné ako operácia „Nastavit’ práva jed- notlivo“, zobrazuje však len jeden dialóg pre všetky zaškrtnuté riadky a zvolené operácie s právami vykoná na každom z nich. – Nastavit’ exspiráciu, nastaví hromadne dátum vymazania riadkov zo sú- borového systému. – Nastavit’ ako preˇcítané, nastaví riadkom atribút preˇcítanosti,ktorý inak vzniká automaticky stiahnutím súboru. Atribút sa neuplatˇnujena adresáre a odkazy do Internetu.

Hromadné operácie, ktoré vytvárajú, upravujú a presúvajú súbory v rámci súborového systému užívatel’ovi ešte pred ich odoslaním dávajú na výber, ˇcorobit’ v prípade kolízie mien. Je možné bud’ celú operáciu zrušit’ (tá je vykonávaná transakˇcne,takže jej zrušenie neovplyvní žiadny upravovaný súbor), nový súbor s kolidujúcim menom premenovat’, alebo starý súbor prepísat’ novým. Panel operácií je ˇcastýmterˇcomkritiky užívatel’ov, kvôli svojej neprehl’adnosti a nejasnému významu ikon. Ikony navyše nemajú pevnú pozíciu v rámci panela, ked’že sa v ˇnomzobrazujú len operácie, na ktoré má užívatel’ v pracovnom adresári právo.

13 2. WEBOVÍSPRÁVCOVIASÚBOROV

Obr. 2.5: Informácie o riadku zoznamu súborov rozbalené „montážnym kl’úˇcom“.

Rozdelenie do troch vyššie uvedených kategórií je tiež celkom umelé a orientáciu nijak neul’ahˇcuje. Odosielanie požiadavky na operáciu prebieha prostredníctvom JavaScriptu, bez jeho podpory vo webovom prehliadaˇcifunguje Správca súborov len v režime „iba na ˇcítanie“.

2.2.2 Zoznam súborov

Na prvých riadkoch zoznamu súborov sa nachádzajú nadradené adresáre pracovného adresára, s ktorými nie je možné vykonávat’ žiadne operácie. Tabul’ka obsahuje dohromady 10 st´lpcov, ktoré obsahujú nasledujúce položky:

• zaškrtávacie tlaˇcidlona výber riadku,

• ikona „montážneho kl’úˇca“ktorá po kliknutí na ˇnurozbalí riadok s podrob- nost’ami o súbore a jeho jeho prístupových právach,

• ikony súborov na riadku a doplˇnujúceinformácie, medzi ktoré patrí napr. poˇcet priamych potomkov adresára, skontrolovanost’ antivírusovým programom, ikona náhl’adu,

• názov riadku a meno v súborovom systéme; pokial’ má riadok vyplnený popis, za meno súboru pribudne ikonka, ktorá popis zobrazí,

• meno užívatel’a, ktorý vytvoril súbor alebo adresár,

• dátum a ˇcasvloženia,

• ikony práv a atribútov, na každý typ práva pripadá samostatná ikona,

• ikona exspirácie,

• ikona preˇcítanosti,

• ikona poradia.

14 2. WEBOVÍSPRÁVCOVIASÚBOROV

Zoznam súborov v záhlaví obsahuje ikony, ktoré umožˇnujúzorad’ovat’ jeho riad- ky podl’a väˇcšinyuvedených st´lpcov, výnimkou sú tlaˇcidlovýberu, ikona montážneho kl’úˇcaa ikona poradia. V záhlaví st´lpca sa d’alej nachádzajú ikony na spoˇcítanievel’- kosti súborov v podadresároch a poˇctunepreˇcítanýchsúborov.

15 Kapitola 3 Správa súborov v prostredí IS MU

V úložisku Informaˇcnéhosystému Masarykovej univerzity sa v súˇcasnostinachádza viac ako 13 miliónov súborov. Súbory sú rozdelené do 10 agend, ktoré zah´rˇnajúnaprík- lad dokumentový server, študijné materiály predmetov, študentské a zamestnanecké weby. Pri tejto rôznorodosti obsahu, spôsobu jeho vytvárania a ciel’ovej skupiny uží- vatel’ov, ktorým sú súbory urˇcené,sa požiadavky na funkcionalitu v jednotlivých agendách môžu znaˇcnelíšit’. V tejto kapitole popíšeme súˇcasnúlogickú aj fyzickú štruktúru úložiska súborov IS MU. Nie je v našich možnostiach podat’ úplný prehl’ad vlastností takto rozsiahleho systému, preto budeme klást’ dôraz na špeciálne vlastnosti a požiadavky vyplývajúce z povahy ukladaných dát, ktoré do znaˇcnejmiery ovplyvˇnujúpodobu a obmedzenia Správcu súborov v IS MU. Ústredným pojmom tejto kapitoly bude uzol. Ide o štruktúru, ktorá nemá ekviva- lent v bežných súborových systémoch. Jeho popisu sa budeme venovat’ v sekcii 3.3.1, ˇcitatel’ si pod týmto pojmom môže zatial’ predstavit’ klasický súbor alebo adresár.

3.1 Agendy

Každý súbor v úložisku IS MU je jednoznaˇcneidentifikovaný svojou adresou v tvare:

https://is.muni.cz/auth /th /256774/fi_m /prilohy/src.zip | {z } |{z} | {z } | {z } 1. 2. 3. 4.

1. URL systému,

2. skratka agendy,

3. upresnenie agendy,

4. cesta v rámci agendy, priˇcomnás v tejto práci budú zaujímat’ len ˇcasti2. - 4. Agendy sú základnými organizaˇcnýmijednotkami v IS MU, ktoré od seba odlišujú súbory na základe ich obsahu (napr. študijné materiály od užívatel’ských webov). Líšia sa spôsobom vyhodnocovania prístupových práv (vid’ 3.2.1) a podporou apliká- cií v IS MU. Agendy umožˇnujújemnejšie delenie obsahu pomocou upresnenia. Upresnenie sa môže skladat’ z jednej alebo viacerých ˇcastí.To umožˇnujenapr. zaradit’ dokumenty na dokumentovom serveri pod jednotlivé univerzitné pracoviská, alebo rozdelit’ študijné materiály predmetov podl’a období v ktorých sa vyuˇcujú. Adresy, ktoré neobsahujú upresnenie, alebo všetky jeho ˇcasti,nazývame neúplné cesty. Napriek tomu, že Správca súborov v IS MU dokáže zobrazit’ väˇcšinuneúplných

16 3. SPRÁVA SÚBOROV V PROSTREDÍ ISMU ciest ako adresáre, nejedná sa o súˇcast’ súborového systému (vid’ 3.3.1). Adresa, ktorá obsahuje skratku agendy a jej úplné upresnenie, no neobsahuje cestu v rámci agendy potom plní úlohu kore ˇnovéhoadresára. Medzi najdôležitejšie agendy patria: • Študijné materiály /el/, slúžia na komunikáciu uˇcitel’a so svojimi študentami. Uˇcitel’ má možnost’ vkladat’ sem elektronické študijné materiály (napr. slidy, poznámky z prednášok, interaktívne osnovy a pod.) Špeciálnym typom študijných materiálov sú takzvané odpovedníky, ktoré slúžia na online testovanie študentov a automatické vyhodnocovanie ich odpovedí. Sady otázok a odpovedí k jednotlivým odpovedníkom sa ukladajú do špeciál- neho adresára (testbank) v študijných materiáloch, ktorému nie je možné pridá- vat’ prístupové práva, aby ani v prípade ich nesprávneho nastavenia neboli vyzradené testové otázky. Pretože odpovedníky sú textové súbory, ktoré obsahujú absolútne odkazy do stromu študijných materiálov, je nutné tieto cesty pri presúvaní a kopírovaní upravovat’.

• Závereˇcnépráce /th/, sú priestor na vkladanie závereˇcnýchprác, ich príloh, metadát (zadanie, kl’úˇcovéslová) a posudkov. Agenda má špeciálny režim kon- troly práv, ktorý umožˇnuještudentom vkladat’ vo vybranom období závereˇcné práce a vedúcim a oponentom prác umožˇnujevkladat’ posudky. Oproti ostat- ným agendám má upravený vzhl’ad, okrem vložených súborov sa zobrazuje aj zadanie práce, anotácia, rozcestník prác na príbuzné témy a literatúra použitá v práci.

• Dokumentový server /do/, slúži na komunikáciu univerzity so študentami a verejnost’ou (typicky úradná tabul’a fakulty, dokumenty zo zasadania vedeckej a odborovej rady a pod.) a na ukladanie interných dokumentov jednotlivých univerzitných pracovísk.

• Úschov ˇna/de/, slúži ako doˇcasnýodkladací priestor pre vel’ké súbory, ktoré si medzi sebou vymieˇnajúpoužívatelia IS MU a tiež pre ukladanie príloh odosie- laných e-mailov. Práva v úschovniach sa ignorujú, každý používatel’ má prístup len k súborom vo vlastnej úschovni; do cudzej môže vkladat’ súbory len po- mocou špeciálnej aplikácie. Súbory z úschovne sa po urˇcitomˇcaseautomaticky rušia.

• Užívatel’ské weby /www/, sú priestorom urˇcenýmna osobnú prezentáciu uží- vatel’a IS MU. Narozdiel od úschovne umožˇnujel’ubovol’né nastavenie prís- tupových práv, súbory z užívatel’ských webov sa nerušia a absolventom uni- verzity zostávajú prístupné aj po ukonˇceníaktívneho vzt’ahu ku škole. Uží- vatelia tu majú vyhradený špeciálny adresár, kam sa vkladá životopis a reakcie na ponuky práce vložené cez aplikáciu Tržištˇepráce.

• Sklad dokumentov /dstore/, slúži na ukladanie dokumentov, ktoré využívajú aplikácie IS MU, napr. súbory nápovedy, prehrávaˇcvideí IS MU, prílohy inzerá- tov v aplikácii Tržištˇepráce.

• Systémové súbory, agenda prístupná len oprávneným užívatel’om. Obsahuje súbory súvisiace s prevádzkou úložiska IS MU, napr. nedávno exspirované uzly.

17 3. SPRÁVA SÚBOROV V PROSTREDÍ ISMU

Agendy Úschovˇnaa Môj web, kam užívatelia môžu vkladat’ vlastné údaje majú ob- me-dzenú vel’kost’ nahraných dát (kvótu).

3.2 Prístupové práva

V IS MU rozlišujeme 3 základné typy tzv. implicitných práv, ktoré urˇcujú,aké operá- cie s uzlom môže užívatel’ vykonat’:

• právo ˇcítat’, umožˇnujevstúpit’ do adresára a vypísat’ jeho obsah, prehliadat’ súbory a oznaˇcovat’ ich za preˇcítané,

• právo vkladat’, umožˇnujevstúpit’ do adresára, vytvárat’ v ˇnompodadresáre, vkladat’ a vpisovat’ doˇnhosúbory,

• právo spravovat’, umožˇnujena súbore alebo adresári vykonávat’ všetky operá- cie.

Špeciálnym prípadom je právo ˇcítat’ súbory typu prehrávaˇcvideí IS MU, ktoré umožní v prehliadaˇciprehrat’ video v úložisku IS MU na ktoré prehrávaˇcodkazuje, a to aj v prípade, že užívatel’ nemá právo toto video ˇcítat’. Práva je možné pridat’ jednému alebo viacerým subjektom, ˇcomôže byt’ napr. konkrétna osoba v Informaˇcnomsystéme, ktokol’vek v Internete, ktokol’vek prihlásený v IS, uˇcitelia,študenti predmetu a pod. V IS MU sa do roku 2010 používal hierarchický systém práv, kedy na prístup k uzlu bolo potrebné mat’ právo ˇcítat’ každý adresár na ceste od koreˇnovéhoadresára až k listu (zobrazovanému uzlu). Ten bol potom, kvôli vel’kému nárastu poˇctusúborov v úložisku a následným neúmerným spomalením kontroly práv, nahradený systé- mom plochých práv, ktorý udržiava informáciu o prístupových právach nadradených adresárov v každom uzle. To so sebou nesie niekol’ko nevýhod:

• pri zmene práv adresára, je nutné prepoˇcítat’ práva všetkým jeho potomkom,

• kým starý systém umožnil nastavit’ uzlu právo ˇcítat’ skupine osôb 1, jeho nadra- denému adresáru nastavit’ právo ˇcítat’ skupine osôb 2 a vo výsledku mali právo len osoby patriace do oboch skupín. Nový systém by musel pri nastavovaní takýchto práv a pri každej zmene v skupine poˇcítat’ prienik skupín, ˇcoje výpoˇc- tovo aj implementaˇcnenároˇcné.Preto nie sú povolené niektoré kombinácie práv uzla a jeho nadradeného adresára (vid’ obr. 3.1) a vyššie popísané nastavenie nie je v novom systéme možné.

18 3. SPRÁVA SÚBOROV V PROSTREDÍ ISMU

ktokoľvek v Internete

ktokoľvek prihlásený v IS

študenti predmetu v období doktorskí študenti aktívni študenti pracovníci absolventi študenti prihlásení na skúšku študenti predmetu študenti seminára skupina osôb učiteľia

osoba

Obr. 3.1: Usporiadanie subjektov práv - uzlu je možné pridat’ len právo s rovnakým subjektom, alebo subjektom na nižšej úrovni. Právo „osoba“ je možné priradit’ aké- mukol’vek uzlu.

3.2.1 Aplikaˇcnépráva V niektorých prípadoch je žiadúce, aby niektorí užívatelia mali práva na všetky súbory v urˇcitejagende, typicky aby uˇcitel’ mohol spravovat’ všetky súbory v študijných ma- teriáloch svojho predmetu, alebo aby oprávnený zamestnanec fakulty mohol vkladat’ súbory na dokumentový server svojho pracoviska. To umožˇnujútakzvané aplikaˇcné práva. Aplikaˇcnépráva sa pridel’ujú užívatel’om v závislosti od agendy. Môžu ich získat’ len autentizovaní užívatelia a nie je možné ich pridávat’ ani odoberat’. V nasle- dujúcom, zozname uvádzame prehl’ad aplikaˇcnýchpráv v jednotlivých agendách:

• študijné materiály

– uˇcitel’ predmetu, – zástupca uˇcitel’a, – kontaktná osoba, – garant predmetu, – majitel’ jedného z práv s_sudium, s_vyuka,

• závereˇcnépráce

– autor práce, – autor práce po jej zverejnení s udelenou výnimkou, – vedúci a oponent práce, pokial’ nebolo zadané hodnotenie, – l’udia s právom s_studium resp. s_vyuka,

• úschov ˇna

– majitel’ úschovne, pokial’ je, študentom, absolventom ˇcizamestnancom školy, – majitel’ práva g_depository,

• užívatel’sky web

– majitel’ webu, – majitel’ práva g_depository,

19 3. SPRÁVA SÚBOROV V PROSTREDÍ ISMU

• dokumentový server

– majitel’ práva d_skupiny na svojom pracovisku,

• sklad dokumentov

– správcovia systému

3.3 Implementácia úložiska IS MU

3.3.1 Súborový systém IS MU používa vlastný databázový súborový systém (vid’ obrázok 6.1). Svojou je filozofiou podobný UNIXovým systémom, v ktorých všetky typy objektov vrátane adresárov sú súbory. Základnou štruktúrou systému IS MU je takzvaný uzol (záznam v tabul’ke g_apl_uzly), ktorý môže slúžit’ ako adresár a zároveˇnaj ako kontajner pre jeden alebo viacero objektov (záznam v tabul’ke g_apl_objekty). Rozlišujeme 3 druhy objektov:

• odkazy do internetu,

• malé textové súbory (do 4000 B),

• vel’ké textové a binárne súbory.

Každý objekt je jednoznaˇcneidentifikovaný svojim ˇcísloma nesie informáciu o svojom poradí v rámci uzlu (užívatel’om vkladané súbory majú typicky poradie 0, formáty vytvorené nástrojmi IS MU, napr. textová podoba PDF dokumentov, majú poradie 1 a vyššie), ˇcasevloženia a autorovi v rámci Informaˇcnéhosystému. Odkazy do internetu d’alej obsahujú svoje URL, ostatné súbory potom informáciu o svojom mene, mime- type a umiestnení v úložisku IS MU. Textové súbory d’alej obsahujú informáciu o svojom kódovaní. Narozdiel od väˇcšinysúˇcasnýchsúborových systémov môže meno súboru obsahovat’ len malé a vel’ké písmená anglickej abecedy a znaky _, - a ., aby bolo možné vložit’ ho do adresy prehliadaˇcabez nutnosti prekódovania špeciálnych znakov. Objekty v rámci jedného uzla musia mat’ rôzne mime-typy. Uzly nesú informáciu o svojej polohe v adresárovej štruktúre, teda identifikátor agendy, do ktorej patria (vid’ 3.1), odkaz na nadradený adresár a skratku, z ktorej sa zostavuje cesta k uzlu. Cestu k objektu, ktorý je súˇcast’ou uzla, dostaneme z cesty to- hoto uzla nahradením jeho skratky za názov súboru objektu. Z toho vyplýva obmedze- nie, že 2 uzly s rovnakým rodiˇcomnesmú obsahovat’ objekty s rovnakým menom súboru. Cesta k súboru môže byt’ dlhá nanajvýš 2000 znakov. Uzly môžu d’alej obsahovat’ informácie o svojich prístupových právach (vid’ 3.2) a metainformácie, ako názov, popis, autora, dátum vloženia, dátum exspirácie a poradie medzi ostatnými uzlami s rovnakým rodiˇcom. Súˇcast’ou každej agendy je tabul’ka s identifikáciou uzlov jej koreˇnovýchadresárov (tzv. topuzlov).

3.3.2 Prístupové práva Práva k uzlom sú uložené v samostatnej tabul’ke (g_apl_uzly_prava), ktorá ku každému právu eviduje ˇcíslouzlu, na ktorý sa právo viaže, typ práva, typ subjektu,

20 3. SPRÁVA SÚBOROV V PROSTREDÍ ISMU

Prístupy Január 2013 Február 2013 Marec 2013 Autentizované 61,527 (1,985; 2,067) 49,989 (1,785; 1,821) 36,883 (1,19; 1,271) Neautentizované 35,176 (1,135; 1,132) 31,551 (1,127; 1,14) 29,887 (0,964; 0,992) Spolu 96,702 (3,119; 3,217) 81,54 (2,912; 2,902) 66,77 (2,153; 2,183)

Tabul’ka 3.1: Poˇcty operácií v IS MU v miliónoch podl’a mesiacov (v zátvorke uvádzame priemernú a strednú hodnotu poˇctuoperácií za deˇn). upresnenie subjektu, osobu, ktorá právo vložila a pri type ˇcítat’ a vkladat’ aj dátum, odkedy, resp. dokedy právo platí. Kontrola implicitných aj aplikaˇcnýchpráv uzlov je implementovaná ako uložená funkcia priamo v databáze. Na zmenu aplikaˇcných práv je teda potrebný zásah do databázového systému.

3.3.3 Fyzické ukladanie dát Úložisko IS MU v súˇcasnejdobe pozostáva z 26 aplikaˇcnýchserverov, ktoré poskytujú neštruktúrovaný fyzický priestor pre ukladané súbory a rozhranie na ich vkladanie, získavanie a rušenie. Súbory v úložisku sú kvôli vyššej dostupnosti a spol’ahlivosti uložené paralelne na niekol’kých serveroch. Malé textové súbory sú ukladané priamo v databáze IS MU (v tabul’ke g_objekty_maly_text_obsah). Mapovanie objektov v súborovom systéme na objekty v úložisku zabezpeˇcujeta- bul’ka g_objekty.

3.4 Analýza používania

3.4.1 Poˇctyprístupov IS MU ukladá podrobné záznamy o všetkých operáciách, ktoré jeho užívatelia vykoná- vajú. Vzhl’adom k poˇctuoperácií (viac ako pol miliardy roˇcne)sme skúmali údaje len z obdobia od januára do marca r. 2013. Tento ˇcasovýúsek sme si vybrali kvôli tomu, že zah´rˇnanasledujúce obdobia, v ktorých, podl’a našich predpokladov, užívatelia použí- vajú odlišné aplikácie: • skúškové obdobie zimného semestra 2012,

• obdobie registrácie a zápisu do jarného semestra 2013,

• podávanie elektronických prihlášok na MU,

• prvú ˇcast’ semestra 2013. Dáta sme obdržali vo formáte CSV, ktoré sme následne analyzovali pomocou vlast- ných skriptov. Dátový súbor mal vel’kost’ cca. 245 miliónov riadkov, priˇcomkaždý riadok zodpovedal jednej zobrazenej stránke v IS MU. V tabul’ke 3.1 uvádzame poˇcty zobrazených stránok v jednotlivých mesiacoch vybraného obdobia. V grafe na obrázku 3.2 sme vykreslili poˇctyzobrazených stránok v IS MU po jed- notlivých dˇnoch.Na grafe antentizovaných prístupov môžme jasne vidiet’ týždenné cykly, kde lokálne minimá zodpovedajú sobotám, maximá pondelkom resp. utorkom. Na neautentizovaných prístupoch nie je tento trend tak viditel’ný. Od zaˇciatkusledovaného obdobia si môžme všimnút’ klesajúci trend poˇctuzo- brazených stránok až do obdobia, ktoré zodpovedá týždˇnupred koncom semestra,

21 3. SPRÁVA SÚBOROV V PROSTREDÍ ISMU

3M

2,5M

2M

1,5M

1M

0,5M Skuskoveˇ obdobie Semester

Koniec semestraZaciatok semestra ˇ 9. 2. 2013 18. 2. 2013

Obr. 3.2: Graf poˇctuprístupov do IS MU v období od 1. 1. 2013 do 31.3.2013 kde môžme vidiet’ 2 výrazné špiˇckyv pondelok 4. a stredu 6. februára, ktoré zod- povedajú registraˇcnýmvlnám na Pedagogickej fakulte (resp. 3. 2. registrácií na Príro- dovedeckej a 5. 2. na Ekonomicko-správnej fakulte). Špiˇckav deˇnzaˇciatkusemestra zodpovedá zaˇciatkuobdobia zmien v zápise. Po skonˇceníobdobia zmien v zápise (2 týždne od zaˇciatkusemestra) sa poˇctyprís- tupov do Informaˇcnéhosystému ustália. Na obrázku 3.3 sme zobrazili poˇctystránok, ktoré spracúval Správca súborov v IS MU. Sivou farbou sú vyznaˇcenépoˇctyvšetkých autentizovaných prístupov do IS MU, ktoré sú kvôli prehl’adnosti vydelené koeficientom 7. Na grafe je jasne vidiet’ klesajúci trend poˇctustránok, zobrazených Správcom súborov v skúškovom období, v kontraste s len vel’mi malým poklesom všetkých stránok zobrazených Informaˇcným systémom. Po zaˇciatkusemestra sa podiel Správcu súborov naopak zvýši a ustáli sa približne 1 na 7 všetkých stránok zobrazených v IS MU. Všimnime si, že zatial’ ˇcoIS MU spracúva rádovo rovnaké množstvo autentizo- vaných a neautentizovaných požiadaviek, autentizovaných požiadaviek v Správcovi súborov je omnoho viac (14,93 mil.) ako neautentizovaných (3,838 mil.). Kvôli tejto dis- proporcii sme sa pri vývoji nového Správcu súborov zamerali hlavne na prihlásených užívatel’ov. V tabul’ke 3.2 uvádzame poˇctyuzlov v jednotlivých agendách ku dˇnu31.3.2013 a poˇctyprístupov do jednotlivých agend vo vybranom období. Vidíme, že viac ako polovica súborov sa nachádza v študijných materiáloch, kam tiež vedú viac ako 2 tretiny prístupov. Trochu prekvapujúcim výsledkom pre nás bolo, že sklad dokumen- tov je tretia najnavštevovanejšia agenda a naopak Úschovˇnuvyužíva na odkladanie svojich súborov relatívne málo l’udí. Poˇctyprístupov do väˇcšinyagend v jednotlivých dˇnochnie sú ovplyvnené obdobi- ami, ktoré sme uviedli na zaˇciatkutejto sekcie a rozloženie prístupov je až na týždenné cykly rovnomerné. Výnimku tvoria študijné materiály, ktoré ako najnavštevovanejšia agenda, podl’a oˇcakávaniakopírujú trendy celkového poˇctuprístupov. Dalšímiˇ výn- imkami sú Závereˇcnépráce a Prijímarne (vid’ obrázok 3.4), ktoré užívatelia navšte-

22 3. SPRÁVA SÚBOROV V PROSTREDÍ ISMU

500k

400k Auten. pristupy do IS MU* 300k

200k

100k

Obr. 3.3: Graf poˇctuprístupov do Správcu súborov v IS MU. V pozadí graf poˇctu všetkých autentizovaných prístupov do IS MU vydelený koeficientom 7.

Agenda Poˇcetuzlov Poˇcetprístupov Študijné materiály 6 689 218 10 136 831 Prijímareˇn 1 604 111 172 077 Dokumentový server 704 576 1 105 064 Sklad dokumentov 672 199 654 743 Závereˇcnépráce 615 931 648 772 Úschovˇna 337 982 121 046 Poskytovˇna 272 616 242 656 Užívatel’ské weby 173 219 234 463 Systémové súbory 98 078 436 Kruhy 17 963 15 301

Tabul’ka 3.2: Poˇctyuzlov v jednotlivých agendách a prístupov k nim.

23 3. SPRÁVA SÚBOROV V PROSTREDÍ ISMU

14k Záverečné práce 12k Prijímárne 10k 8k 6k 4k 2k 0 1. jan 1. feb 18. feb 1. mar

Obr. 3.4: Poˇctyprístupov do agend Závereˇcnépráce a Prijímárne. vujú ˇcastejšiepoˇcasskúškového obdobia (odovzdávanie závereˇcnýchprác, prezeranie naskenovaných skúškových testov).

3.4.2 Operácie Operácie tvoria približne 3,2 % z prístupov do Správcu súborov. Poˇctyjednotlivých operácií uvádzame v tabul’ke 3.3. St´lpec „Poˇctyvolaní operácie“ zah´rˇnakliknutie na príslušnú ikonu, dohl’adanie hodnôt vo formulári a jeho následné odoslanie. Pretože súˇcasnýSprávca súborov je statický, pri každej z týchto akcií sa zbytoˇcne nanovo zostavuje zoznam súborov v aktuálnom adresári. To spomal’uje prácu pre- dovšetkým pri práci s právami, ktoré vyžadujú mnoho upresnení formulára. St´lpec „Poˇcetuložení“ potom zah´rˇnakliknutia na tlaˇcidlo„Uložit’“ resp. „Priebežne uložit’“.

24 3. SPRÁVA SÚBOROV V PROSTREDÍ ISMU

Operácia Poˇcetvolaní operácie Poˇcetuložení Vložit’ súbor 219191 107873 Podobné dokumenty 31088 31088* Zrušit’ súbor alebo adresár 34819 16734 Exportovat’ do ZIPu 24681 11165 Oznaˇcit’ za preˇcítané 16603 7810 Vytvorit’ adresár 15726 7553 Upravit’ text (z okna Vlastnosti) 8660 4158 Zmenit’ práva a atribúty jednotlivo 24132 3382 Upravit’ text 8970 2894 Zmenit’ spoloˇcnévlastnosti 5953 2621 Kopírovat’ inam 7664 2373 Zmenit’ práva a atribúty hromadne 10140 1596 Presunút’ inam 3136 1490 Importovat’ ZIPom 2767 1181 Kopírovat’ sem 2190 1121 Smie osoba ˇcítat’? 2991 939 Zmenit’ parametre súboru 2791 945 Vložit’ odkaz do Internetu 1338 626 Pridat’ k oblúbeným 583 583* Vložit’ editorom 2033 374 Presunút’ sem 847 309 Zmenit’ poradie 678 285 Hromadne nastavit’ expiráciu 498 209 Odobrat’ z obl’úbených 270 270* Zrušit’ verziu súboru 62 31 Zmenit’ odkaz do Internetu 26 12 Nahrat’ d’alší formát súboru 4 nie je možné zistit’

Tabul’ka 3.3: Poˇctyoperácií v Správcovi súborov. Položky oznaˇcené(*) sa ukladajú bez potvrdenia, alebo ich naopak nie je možné uložit’.

25 Kapitola 4 Implementácia nového Správcu súborov

V tejto kapitole struˇcnezhrnieme niektoré aspekty vývoja nového Správcu súborov. Na úvod sa oboznámime s požiadavkami užívatel’ov, následne si predstavíme vy- brané technológie, použité pri implementácii. Dalejˇ si priblížime nami spravené zmeny v užívatel’skom rozhraní, ako aj v kóde samotnej aplikácie. Na záver naˇcrtneme,akým smerom by sa mohol uberat’ d’alší vývoj Správcu súborov.

4.1 Podnety užívatel’ov

Súˇcast’ou IS MU sú tzv. podnetovne - tematické diskusné fóra, ktoré umožˇnujúuží- vatel’om písat’ námety a pripomienky k aplikáciám v Informaˇcnomsystéme. Z pod- netov k Správcovi súborov v IS MU sme sa rozhodli realizovat’ nasledujúce:

• Správca súborov umožˇnujeuˇcitel’om v odovzdávarˇnachv študijných mater- iáloch nahrávat’ z poˇcítaˇcasúbory k odovzdaným dokumentom (poznámky, komentáre, opravy). Umožnit’ uˇcitel’ovi vložit’ komentár pomocou vstavaného HTML editora.

• Po vykonaní operácie v správcovi súborov sa URL dokumentu zmení na https://is.muni.cz/auth/dok/rfmgr.pl, preto nie je po vykonaní operácie možné skopírovat’ adresu pracovného adresára z riadku adresy webového prehliadaˇca. Zachovat’ pôvodné URL. Táto požiadavka sa vyrieši automaticky prechodom na dynamické dialógy op- erácií.

• Do cudzej úschovne je možné vkladat’ len súbory z poˇcítaˇcapomocou špeciálnej aplikácie. Umožnit’ vkladat’ súbory do cudzej úschovne kopírovaním a rozbalením ZIPu. Podnet sme vyriešili zmenou poˇcítaniapráv v úschovniach tak, že každý prih- lásený užívatel’ má právo vkladat’ do ktorejkol’vek úschovne.

• V študijných materiáloch a na dokumentovom serveri umožˇnujeSprávca súborov oznaˇcit’ uzly za obl’úbené. Rozšírit’ možnost’ oznaˇcovat’ súbory za obl’úbené v l’ubovol’nej agende. Umožnit’ užívatel’ovi prezriet’ si zoznam svojich obl’úbených uzlov. Možnost’ oznaˇcovat’ uzly bola doplnená. V budúcnosti by mala vzniknút’ samo- statná stránka, kde si užívatel’ môže prezriet’ všetky obl’úbené objekty v IS MU (súbory, inzeráty na výveske, predmety).

• Umožnit’ v Správcovi súborov naraz oznaˇcit’ všetky nepreˇcítanésúbory.

26 4. IMPLEMENTÁCIA NOVÉHO SPRÁVCU SÚBOROV

Vlastnost’ sme implementovali. Spolu ˇnousme sa rozhodli implementovat’ tiež oznaˇcovanienepreˇcítanýchsúborov, obl’úbených uzlov a adresárov.

• Pri vkladaní súborov sa pri kliknutí na odkaz „vložit’ naraz viacero súborov“ zobrazí hned’ 10 polí na vkladanie. Upravit’ aby sa polia zobrazovali postupne.

• Nové prehliadaˇceumožˇnujújediným HTML vstupom oznaˇcit’ hned’ niekol’ko súborov na vloženie. Umožnit’ vkladanie viacerých súborov naraz pomocou jed- ného prvku.

• Pri vkladaní súborov sa kvóta kontroluje až po prenesení súborov na server. Pri jej prekroˇcenísa tak zbytoˇcneprenášajú dáta. Implementovat’ kontrolu kvóty aj na strane klienta.

• Pri vkladaní a kopírovaní súborov pridat’ možnost’ preskoˇcit’ súbor, ktorý už v ciel’ovom adresári existuje.

• Umožnit’ adresárom nastavit’ st´lpec Správcu súborov, podl’a ktorého budú jeho súbory implicitne zoradené. Vlastnost’ sme implementovali pomocou nových atribútov uzlov.

Nasledujúce podnety nebudú realizované:

• Umožnit’ obnovenie prerušeného st’ahovania súboru. Zdôvodnenie: Na vyriešenie tohoto podnetu je potrebný netriviálny zásah do štruktúry úložiska, ktorý je mimo zamerania našej práce.

• V agende závereˇcnýchprác nezobrazovat’ práce na príbuzné témy. Zdôvodnenie: Ako vyplýva z diskusie pod týmto podnetom, užívatelia túto vlastnost’ väˇcšinoupovažujú za užitoˇcnú.Možnost’ou je vytvorenie preferencie na skrývanie stlpca´ príbuzných prác.

• Prevod PostScriptových súborov do formátov PDF a TXT. Zdôvodnenie: O prevod súborov do iných formátov sa nestará Správca súborov, ale špe- cializované aplikácie, ktoré sú opät’ mimo nášho zamerania.

• Dvojpanelový správca súborov a podpora „drag & drop“. Zdôvodnenie: Úpravy sú príliš ˇcasovonároˇcnéa oproti ostatným podnetom majú nižšiu prioritu. Nevyluˇcujemevšak implementáciu v budúcnosti.

4.2 Použité technológie

Nový správca súborov bol, rovnako ako ostatné aplikácie v IS MU, vyvíjaný v jazyku Perl. Vo výpoˇctovejˇcastipracujeme s dátami IS MU uloženými v databáze Oracle pomocou PL/SQL funkcií a pomocou štandardného rozhrania Perl DBI. Výstupom prezentaˇcnejˇcastije potom dynamické webové rozhranie vytvorené pomocou HTML, CSS a JavaScriptu.

27 4. IMPLEMENTÁCIA NOVÉHO SPRÁVCU SÚBOROV

4.2.1 AJAX AJAX (angl. skr. Asynchronous Javascript And XML) je oznaˇcenietechník na vytváranie asynchrónnych webových aplikácií na strane klienta. AJAXové požiadavky sa ob- vykle realizujú pomocou objektu XMLHttpRequest, ktorý nahradil dovtedy na tento úˇcelvyužívané IFramy. Napriek názvu nie je vyžadované používanie XML a nie je ani nutné aby požiadavky boli asynchrónne[8].

4.2.2 jQuery Podl’a štatistík používania webových prehliadaˇcov, z ktorých bolo pristupované do neautentizovanej ˇcastiIS MU, väˇcšinaužívatel’ov používa prehliadaˇcs podporou mod- erných webových technológií. Ich implementácia a API sa však bohužial’ medzi jed- notlivými prehliadaˇcmiznaˇcnelíšia. Pretože by bolo nepraktické vyvíjat’ a udržiavat’ viacero verzií rozhrania pre rôzne prehliadaˇce,rozhodli sme sa využit’ JavaScriptovú knižnicu jQuery[7], ktorá rieši problém kompatibility a ktorá je už v IS MU nasadená. jQuery vytvára jednotné programátorské rozhranie pre nasledujúce techniky: • detekcia vlastností podporovaných prehliadaˇcom,

• softwarová emulácia niektorých nepodporovaných vlastností a funkcií,

• prechádzanie DOM stromu, hromadné výbery DOM prvkov pomocou selek- torov,

• manipulácia s atribútami a CSS štýlmi prvkov,

• AJAX,

• udalosti v prehliadaˇci,

• efekty a animácie. Knižnica je jednoducho rozšíritel’ná pomocou pluginov, z ktorých sme pri vývoji využili qTip na tvorbu tooltipov a plugin jQueryUI na zobrazovanie kalendárov pri zadávaní dátumu (vid’ príloha 6.3.1).

4.2.3 JSON TradiˇcnéHTML formuláre umožˇnujúodosielat’ dáta vyplnené úžívatel’om vo formáte kl’úˇc-hodnota,kde kl’úˇcje meno prvku vo formulári. Dáta, ktoré chceme posielat’ medzi serverom a webovým rozhraním, sú však zo svojej podstaty štruktúrované, preto sme sa ich rozhodli posielat’ vo formáte JSON ret’azca. JSON (z angl. JavaScript Object Notation) je textový formát, ktorý zodpovedá zápisu JavaScriptových objektov, v ktorých štruktúre sa nenachádzajú funkcie (tzn. je za- kázaná konštrukcia { label:function( ... ) { ... } }). Pretože sa zo syn- taktického hl’adiska jedná o podmnožinu JavaScriptu, JSONové ret’azce je možné vel’mi rýchlo parsovat’ pomocou funkcie eval. Tento spôsob však predstavuje potenciálne bezpeˇcnostnériziko, preto súˇcasnéprehliadaˇceobsahujú funkcie na prevod textovej reprezentácie na objekt a naopak. Kompatibilitu so staršími prehliadaˇcmipotom za- bezpeˇcujúknižnice ako JSON2.js. JSON sme si vybrali kvôli jeho krátkemu zápisu v porovnaní s XML a tiež z dôvodu jeho dobrej podpory v jQuery a v Perle.

28 4. IMPLEMENTÁCIA NOVÉHO SPRÁVCU SÚBOROV

4.2.4 HTML 5

Aj ked’ HTML 5 zatial’ ešte nebolo štandardizované, dnešné prehliadaˇceuž podporujú väˇcšinujeho nových vlastností. Najdôležitejšou bola pre nás možnost’ vkladat’ vlastné atribúty s prefixom „data-“ do l’ubovol’ných tagov a d’alej ich spracúvat’ pomocou JavaScriptu. Aj ked’ možnost’ vkladat’ vlastné atribúty podporujú webové prehliadaˇce už dlho, až s ich ukotvením v štandarde HTML máme istotu, že sa ich sémantika v najbližších verziách HTML nezmení. Vlastnost’ používame napríklad na vkladanie informácie o mime-type súboru do stránky, z ktorej sa následne môže generovat’ kon- textové menu špecifické pre daný typ. Nové prehliadaˇced’alej rozširujú možnosti práce so súbormi na strane klienta. Vd’aka tomu môžeme do jedného formulárového prvku typu „file“ vkladat’ viacero súborov a zistit’ ich vel’kost’ ešte pred odoslaním na server. Toto nám napr. umožnilo implementovat’ dlho požadované varovanie na prekroˇceniekvóty na strane klienta. Z d’alších vlastností používame metódu „drag & drop“.

4.3 Užívatel’ské rozhranie

Pri návrhu užívatel’ského rozhrania sme vychádzali zo starého, ktoré sme sa snažili ˇco najviac zjednodušit’. Pripravili sme 2 návrhy, navigaˇcné(obrázok 4.1) a dvojpanelové rozhranie (obrázok 4.2). Napriek tomu, že sme nakoniec implementovali len prvé uve- dené, dizajnové rozhodnutia, ktoré sme pri návrhu spravili, umožnia v budúcnosti aj pomerne priamoˇciare nasadenie dvojpanelového rozhrania. Navigaˇcnérozhranie sme nechali rozdelené na pôvodné 4 ˇcasti:panel s adresou, panel operácií, navigaˇcnýpanel a zoznam súborov. Jedinou zmenou v tomto ohl’ade je presun zoznamu agend z panela s adresou do navigaˇcnejˇcasti.Prechádzanie adresárov v Správcovi súborov sme ponechali statické, teda pri otvorení nového adresára sa celá stránka naˇcítaodznova z zmení sa jej URL. Vd’aka tomu môžu užívatelia adresu ak- tuálneho adresára kopírovat’ priamo z adresného riadku prehliadaˇcaa používat’ jeho navigaˇcnétlaˇcidlá. Statické prechádzanie je nevhodné pri použití dvojpanelového rozhrania, pretože pri každej zmene pracovného adresára je nutné spoˇcítat’ informácie o súboroch v oboch paneloch. Z tohoto dôvodu sme implementovali aj dynamickú AJAXovú nav- igáciu, ktorú je možné použit’ mimo Správcu súborov. Panel operácií sme prerobili do podoby textových rozbal’ovacích menu. Operácie sme kvôli prehl’adnosti zoskupili podl’a ich úˇcelu.Do menu „Pridat’“ sme zaradili op- erácie na vytváranie a vkladanie súborov a adresárov a presuny súborov z iných ˇcastí adresárovej štruktúry. Do menu „Zmenit’“ sme umiestnili operácie, ktoré slúžia na zmenu obsahu súborov, resp. zmenu práv a metadát uzlov. Operácie mazania súborov a vyhl’adávania podobných dokumentov sme ako najpoužívanejšie operácie zaradili do samostatného menu. Zvyšné operácie (kopírovanie, overovanie práv) sme umiest- nili do menu „Dalšie“.ˇ Zobrazenie stromovej štruktúry a zostavenie galérie obrázkov z aktuálneho adresára užívatelia nájdu v menu „Zobrazenie“. Menu operácií do stránky vkladáme ako obyˇcajnýHTML zoznam, aby sme k nemu umožnili jednoduchý prístup aj handicapovaným užívatel’om. Do podoby rozbal’ova- cieho menu ho potom prevádzame pomocou CSS a vlastného jQuery pluginu, ktorý sme d’alej použili na vytváranie kontextových menu.

29 4. IMPLEMENTÁCIA NOVÉHO SPRÁVCU SÚBOROV

Obr. 4.1: Návrh nového užívatel’ského rozhrania Správcu súborov

Obr. 4.2: Návrh dvojpanelového rozhrania Správcu súborov

30 4. IMPLEMENTÁCIA NOVÉHO SPRÁVCU SÚBOROV

Obr. 4.3: Podrobné informácie o uzle.

4.3.1 Zoznam súborov

Oproti pôvodnému zoznamu súborov sme odstránili st´lpce s ikonami preˇcítanosti (ktorú teraz odlišujeme len farbou pozadia), montážneho kl’úˇca,exspirácie a poradia. Výrazne sme zmenšili šírku st´lpca s ikonami ˇcoby malo užívatel’ovi zjednodušit’ vizuálnu identifikáciu typu súboru pomocou ikony. Doplˇnujúceinformácie o uzle, ako poˇcetpriamych potomkov adresára, sme presunuli až za názov súboru. Vytvorili sme sadu ikon, ktoré znázorˇnujújednotlivé subjekty práv. Na každý riadok sme umiestnili ikonu, ktorá znázorˇnujenajširšie právo, ktoré je danému uzlu priradené a nahradili sme ˇnoupôvodné 4 ikony práv a atribútov. Podrobné informácie o uzle (predtým otvárané montážnym kl’úˇcom)sa rovnako ako doteraz otvárajú na novom riadku (vid’ obrázok 4.3). To umožˇnuje mat’ otvorené informácie o viacerých súboroch súˇcasnenarozdiel od prístupu, kedy sú tieto zo- brazené v špeciálnom st´lpci rozhrania, prípadne v modálnom okne. Kvôli dvojpanelovému rozhraniu bolo nutné, aby mal každý zoznam súborov vlast- nú navigáciu, preto sme na prvý riadok zoznamu umiestnili menu so zoznamom agend a zoznam nadradených úrovní.

4.3.2 Rozhranie operácií

Do nového Správcu súborov sme implementovali dynamické AJAXové rozhranie op- erácií, ktoré by vd’aka tomu, že nezostavuje celú stránku aplikácie, malo byt’ nepatrne rýchlejšie ako pôvodné. Kvôli tomu bolo nutné prepísat’ prakticky celý kód operácií v Správcovi súborov. Dialógové okná operácií sme rozdelili na 3 druhy:

• vkladacie operácie, typicky nezávisia na uzloch oznaˇcenýchv zozname súborov.

31 4. IMPLEMENTÁCIA NOVÉHO SPRÁVCU SÚBOROV

Dialógové okno týchto operácií sa vkladá pod riadok pracovného adresára, všetky ostatné riadky v zozname súborov sú skryté,

• hromadné operácie, teda akcie, ktoré sa vykonajú pre každý oznaˇcenýuzol, na ktorý má užívatel’ práva. Dialóg sa vkladá pod posledný oznaˇcenýuzol. Neoz- naˇcenéuzly a uzly, na ktoré užívatel’ nemá práva, sa skrývajú,

• jednotlivé hromadné operácie, sú operácie, pri ktorých sa každému oznaˇcenému uzlu generuje vlastné dialógové okno. To sa následne vkladá pod riadok daného uzla. Ostatné uzly sú opät’ až do ukonˇceniaoperácie skryté.

Operáciu „Oznaˇcit’ za obl’úbené“ sme nezarad’ovali do menu operácií a nahradili sme ju hviezdiˇckouna konci každého riadku, ktorý má užívatel’ právo ˇcítat’. Na oznaˇcenie súboru za obl’úbený resp. jeho odznaˇceniestaˇcíkliknút’ na hviezdiˇcku. Dalejˇ sme sa rozhodli zlúˇcit’ operácie „Zmenit’ práva a atribúty jednotlivo“, „Zmenit’ spoloˇcnévlastnosti“ a „Zmenit’ parametre súboru“, ktoré so sebou úzko súvisia, do jednej.

4.4 JavaScriptové rozhranie

Základom JavaScriptového rozhrania Správcu súborov sú nasledujúce triedy objek- tov:

• seznamSouboru, každá inštancia tejto triedy zodpovedá jednému zoznamu súborov vloženému do stránky. Objekt obsahuje metódy na výber prvkov zoz- namu podl’a zadaných filtrov (selektorov), pridávanie a odoberanie riadkov, AJAXové presmerovanie na novú adresu a pod.

• radekSeznamu, umožˇnujevšetku manipuláciu s jednotlivými riadkami zoz- namu. To zah´rˇnaoznaˇcovaniea odznaˇcovanie,zneaktívˇnovaniea ofarbovanie riadkov, rozbal’ovanie nástrojov a d’alšie.

• obecnaOperace, je prototyp pre triedy hromadnaOperace a samostatnaOperace, ktoré d’alej slúžia ako prototypy pre už konkrétne operácie (napr. zrusitUzel, vlozitSoubory, kopirovatSem...). Inštancia triedy je vždy zviazaná práve s jedným zoznamom súborov, z ktorého berie zoznam oznaˇcenýchriadkov, ktorý posiela na spracovanie. Trieda je d’alej zodpovedná za prevod dát, ktoré dostane od objektu dialógu operácie, na JSON, ich AJAXové odoslanie na server a spra- covanie odpovede.

• htmlDialogOperace, je trieda zviazaná s dialógom konkrétnej operácie. Ob- sahuje metódy na serializáciu dát z formulára a oznaˇcovaniejeho chybne vy- plnených prvkov.

Odpovede na AJAXové požiadavky odoslané operáciami sú obvykle spracúvané funk- ciou fmgrEval, ktorá podl’a inštrukcií dokáže manipulovat’ s jednotlivými riadkami zadanými ich adresami (vnútornými odkazmi), vypisovat’ chyby, potvrdenia, varova- nia a pod. do okna Správcu. Na vykresl’ovanie rozbal’ovacích a kontextových menu sme vytvorili vlastnú kniž- nicu založenú na jQuery, ktorú sme neskôr rozšírili o prácu so záložkami a výpismi chýb, varovaní a pod.

32 4. IMPLEMENTÁCIA NOVÉHO SPRÁVCU SÚBOROV

Obr. 4.4: Rozhranie operácie „Zmenit’ práva a atribúty“ využívajúce záložky.

4.5 Vnútorné zmeny

Jedným z hlavných ciel’ov našej práce bolo refaktorovat’ súˇcasnýkód, aby bol jednoduchšie udržiavatel’ný a použitel’ný aj v iných aplikáciách IS MU.

4.5.1 Zvýšenie opätovnej použitel’nosti kódu

Správca súborov je samostatný Perlový skript - fmgr.pl, ktorý sa stará o hl’adanie súborov a adresárov v súborovom systéme, kontrolu prístupových práv, zostavovanie informácií o uzloch a vykresl’ovanie užívatel’ského rozhrania. Ak chce programá- tor vytvorit’ aplikáciu, ktorá bude vypisovat’ zoznam súborov s rozhraním Správcu súborov, musí jej kód doplnit’ priamo do skriptu fmgr.pl, ˇcoje napríklad prípad záve- reˇcnýchprác, alebo univerzitného repozitára. Navyše, niektoré bežné operácie, ako úprava práv alebo zmena vlastností uzlov a objektov, sú zviazané s grafickým rozhraním ich dialógových okien, preto ich nie je možné použit’ mimo fmgr.pl. Programátori sú tak vo svojich aplikáciách nútení písat’ tieto operácie odznova, ˇcozvyšuje pravdepodobnost’ zanesenia chyby do kódu (napr. aplikácia na prácu s odovzdávarˇnamiv Záznamníku uˇcitel’a umožˇnovalanastavit’ odovzdávarˇnamneplatnú kombináciu atribútov). Z tohoto dôvodu sme sa rozhodli rozdelit’ kód do nasledujúcich modulov:

• Fmgr::Storage - hlavný výpoˇctovýmodul, zo zadanej cesty poˇcítainformácie o uzloch a práva, ktoré následne ukladá do dátovej štruktúry, ktorú následne spracúvajú ostatné moduly Fmgr::*.

• Fmgr::Komponenty - modul na zostavenie užívatel’ského rozhrania (vid’ 4.3), generuje HTML kód.

• Fmgr::Operace - modul na zostavenie a naviazanie užívatel’ského rozhrania op- erácií na ich fyzické vykonanie.

• Fmgr::Kopirovani, Fmgr::Prava, Fmgr::UzlyObjekty - moduly na prácu s bežnými operáciami v úložisku mimo Správcu súborov.

33 4. IMPLEMENTÁCIA NOVÉHO SPRÁVCU SÚBOROV

Fmgr::Prava a) aplikacia.pl Fmgr::Storage Fmgr::Komponenty b) aplikacia.pl Fmgr::Storage Fmgr::Uzly storage_uzly_informace (GUI) storage_uzly_informace Fmgr::Kopirovani

(1) (1) zoznam potomkov uzla hash informácií o uzle fmgr_seznam_souboru fmgr_op_operace

(2) (2) HTML zoznamu súborov Potvrdenie / chybové hlásenie

1. Zostavenie informácií o súbore/adresári zadanom 1. Zostavenie informácií o súbore/adresári, nad cestou; zostavenie zoznamu potomkov. ktorým bude vykonávaná operácia. 2. Zostavenie grafického rozhrania (zoznam súborov). 2. Vykonanie operácie, potvrdenie vykonania resp. hlásenie chyby

Obr. 4.5: Schéma použitia a) grafických komponent, b) operácií so súbormi a adresármi v aplikáciách v IS MU.

Na obrázku 4.5 sme schematicky znázornili použitie modulov v aplikáciách. Spô- sob, akým moduly využíva Správca súborov pri vykonávaní operácií je možné nájst’ v prílohe v sekcii 6.2.

4.5.2 Oddelenie formy od obsahu

Kvôli jednoduchšiemu udržiavaniu kódu sme sa rozhodli v novom Správcovi súborov oddelit’ formu od obsahu na dvoch úrovniach:

• Na úrovni programu oddelením prezentaˇcnejˇcastiod výpoˇctovej.Súˇcasnýsprávca súborov prevádza údaje zo súborového systému priamo na riadky zoznamu súborov vo formáte HTML. V novom správcovi sme navrhli novú vnútornú reprezentáciu týchto dát, aby ju bolo možné jednoducho prevádzat’ do rôznych formátov. Implementovali sme výstup do formátov HTML a JSON.

• Na úrovni výsledného HTML kódu. SúˇcasnýSprávca súborov vkladá CSS štýly a JavaScriptový kód priamo do HTML tagov pomocou atribútu „style“. To pre- dovšetkým pri zobrazovaní vel’kých adresárov zbytoˇcnenavyšuje vel’kost’ stránky a znemožˇnujemenit’ jej dizajn. Presunutím štýlov do samostatného súboru sa nám vd’aka cachovaniu CSS podarilo zmenšit’ vel’kost’ výsledných HTML súborov o viac než polovicu. Dalejˇ nám to umožnilo vytvorit’ novú farebnú schému pre tmavý dizajn IS MU (vid’ príloha 6.3.2).

Týmto prístupom sa nám v niektorých prípadoch podarilo zrýchlit’ výpoˇcetSprávcu viac než dvojnásobne (vid tabul’ka 4.1) v závislosti na poˇctea type súborov v adresári. Pri malom poˇctesúborov pritom viac ˇcasuako výpoˇcetzoznamu súborov zaberie poˇcítanieostatných grafických prvkov stránky.

4.6 Dalšieˇ možné rozšírenia

Dalšíˇ vývoj by sa podl’a nás mal uberat’ smerom k užívatel’skému komfortu. Mnoho užívatel’ov by iste uvítalo možnost’ synchronizovat’ niektorý adresár v IS MU s ich domácimi zariadeniami. Pre technicky zdatných študentov by mohlo byt’ pohodlné sledovat’ napr. zmeny v študijných materiáloch pomocou RSS ˇcítaˇcky.

34 4. IMPLEMENTÁCIA NOVÉHO SPRÁVCU SÚBOROV

poˇcetsúborov starý Správca súborov nový Správca súborov zrýchlenie 9 0,69 s (0,55 s) 0,62 s (0,58 s) 1,11 63 1,62 s (1,69 s) 0,81 s (0,96 s) 2 143 3,32 s (3,42 s) 1,9 s (1,99 s) 1,74 296 3,94 s (3,86 s) 1,38 s (1,29 s) 2,86 517 6,43 s (6,26 s) 2,26 s (2,36 s) 2,84

Tabul’ka 4.1: Priemerná rýchlost’ výpoˇctustránky (v zátvorke stredná hodnota).

Coˇ sa týka užívatel’ského rozhrania, nový Správca súborov podstatne zjednodušuje tvorbu nových režimov zobrazenia. V budúcnosti je tak popri tradiˇcnomzozname súborov možné implementovat’ napr. režim ikon, miniatúr, prípadne v práci ˇcasto spomínaný dvojpanelový režim. S možnost’ou zmeny dizajnu by bolo vhodné vytvorit’ štýl pre mobilné zariadenia. Knižnica jQuery ohromným spôsobom urýchlila vývoj JavaScriptového rozhrania, cenou za to je však pomalšia odozva rozhrania vo vel’kých adresároch a to hlavne na mobilných zariadeniach. Bolo by vhodné vytypovat’ kritické miesta v kóde, ktoré sú kvôli knižnici neefektívne a prepísat’ ich pomocou ˇcistéhoJavaScriptu. K jednoduchšej organizácii adresárov by mohlo pomôct’ zbieranie metadáta zo súborov (napr. dátum a ˇcasvzniku, poslednej zmeny, autor dokumentu v súboroch Office, GPS súradnice vo fotografiách) v úložisku a ich následné triedenie a vyhl’adá- vanie v nich. Dalšímˇ rozšírením, ktoré je možné spravit’ s relatívne malými zmenami v Správ- covi súborov a nevyžaduje si zmeny v databázovej schéme úložiska, je verzovanie súborov. Aj ked’ sa zmenou systému práv z hierarchického na plochý podstatne znížila zát’až systému, zvýšila sa redundancia dát. Preto by podl’a nás bolo vhodné preskú- mat’ možnosti ich d’alšej optimalizácie. V prípade väˇcšiehorozšírenia našich knižníc na prácu s úložiskom môže prípadná zanesená chyba znamenat’ vel’ké riziko, ktoré je možné znížit’ napríklad vytvorením unit-testov pre dané knižnice.

35 Kapitola 5 Záver

Ciel’om našej práce bolo navrhnút’ a implementovat’ novú podobu aplikácie Správca súborov pre Informaˇcnýsystém Masarykovej univerzity. V prvých dvoch kapitolách sme sa za týmto úˇcelompozreli na struˇcnúhistóriu vývoja softwaru na správu súborov a na možnosti súˇcasnýchdesktopových aj webových správcov súborov. V d’alšej kapitole sme detailne preskúmali možnosti súˇcasnéhoSprávcu súborov v IS MU a zmerali sme, akým spôsobom ho používajú jeho užívatelia. Dalejˇ sme popísali distribuovaný súborový systém, ktorý aplikácia používa. V predposlednej kapitole sme sa zoznámili s požiadavkami užívatel’ov na nového Správcu súborov. Nadobudnuté poznatky sme využili pri vývoji, ktorý spolu s návrhovými rozhodnu- tiami popisujeme v tej istej kapitole. Na záver sme naˇcrtlimožnosti, ktorými by sa mohol uberat’ d’alší vývoj aplikácie. Výsledkom našej práce je nová podoba Správcu súborov, ktorá by mala byt’ rých- lejšia, jednoduchšie udržiavatel’ná a príjemná na používanie. Pri práci na tejto ap- likácii, ktorá sa v súˇcasnejdobe chystá do testovacej prevádzky, vznikli moduly na zjednodušenie práce so súborovým systémom, ktoré sa zaˇcínajúnasadzovat’ aj v os- tatných aplikáciách Informaˇcnéhosystému, rovnako ako JavaScriptová knižnica, ktorá môže pomôct’ urýchlit’ vývoj interaktívnych webových rozhraní.

36 Literatúra

[1] Popular science magazine. Dostupné z WWW: http://books.google.com/ books?id=9SwDAAAAMBAJ&lpg=PA210&pg=PA96, Feb. 1950. [s. 96].

[2] Nikolai Bezroukov. Orthodox file managers (ofm) standards. Dostupné z WWW: http://www.softpanorama.org/OFM/Standards/index.shtml, 2012. [cit. 14. marca 2013].

[3] Michal Brandejs. Linux - Praktický pr ˚uvodce. Konvoj, 2003. ISBN: 80-7302-050-5.

[4] W3C Dave Raggett. Hypertext markup language specification version 3.0. Dos- tupné z WWW: http://www.w3.org/MarkUp/html3/html3.txt, 1995.

[5] Lee Herron. Simple file manager (). Dostupný z WWW: http:// onedotoh.sourceforge.net/, 2003.

[6] Google Inc. Google drive (software). Dostupné z WWW: https://drive. google.com/.

[7] jQuery Foundation. jquery (software). Dostupné z WWW: http://jquery. com/, 2013.

[8] kolektív. Ajax (programming). Dostupné z WWW: https://en.wikipedia. org/wiki/Ajax_%28programming%29. [cit. 24. mája 2013].

[9] kolektív. Cp/m. Dostupné z WWW: http://en.wikipedia.org/wiki/CP/ M. [cit. 12. marca 2013].

[10] kolektív. File manager. Dostupné z WWW: http://en.wikipedia.org/ wiki/File_manager. [cit. 12. marca 2013].

[11] kolektív. Nextstep. Dostupné z WWW: http://en.wikipedia.org/wiki/ NeXTSTEP. [cit. 14. marca 2013].

[12] kolektív. Norton commander. Dostupné z WWW: http://en.wikipedia. org/wiki/Norton_Commander. [cit. 14. marca 2013].

[13] kolektív. Pathminder. Dostupné z WWW: http://en.wikipedia.org/ wiki/PathMinder. [cit. 14. marca 2013].

[14] kolektív. Selectron tube. Dostupné z WWW: http://en.wikipedia.org/ wiki/Selectron_tube. [cit. 12. marca 2013].

[15] Steve D. Pate. UNIX Filesystems - Evolition, Desing, and Implementation. John Wiley & Sons, 2003. ISBN: 978-0-471-16483-8.

[16] Cyril Sebastian. Php navigator (software). Dostupné z WWW: http:// navphp.sourceforge.net/, 2011.

37 5. ZÁVER

[17] Pavel Tzonkov. Kcfinder (software). Dostupné z WWW: http://kcfinder. sunhater.com/, 2011.

[18] Vývojový tým IS MU. Informaˇcnísystém masarykovy univerzity v roce 2006. Dostupný z WWW: https://is.muni.cz/clanky/2006_vyrocka.pl. [cit. 1. mája 2013].

[19] Vývojový tým IS MU. Informaˇcnísystém masarykovy univerzity v roce 2010. Dostupný z WWW: https://is.muni.cz/clanky/2010_vyrocka.pl. [cit. 1. mája 2013].

38 Kapitola 6 Prílohy

6.1 Schéma úložiska IS MU

Databázový súborový Tabuľka top-uzlov systém IS MU agendy /th/

Top-uzol /th/256774/fi_m/

Uzol /th/256774/fi_m/text_prace/

Objekt /th/256774/fi_m/diplomka.pdf

Objekt /th/256774/fi_m/diplomka.txt Tabuľka práv Uzol /th/256774/fi_m/text_prace/prilohy/ ... Uzol /th/256774/fi_m/web_prace/

Objekt odkaz: http://is.muni.cz/dok/

Tabuľka malých Tabuľka objektov textových súborov

Internet Úložisko Úložisko Úložisko

39 6. PRÍLOHY

6.2 Schéma vykonávania operácií v novom Správcovi súborov

Zobrazenie dialógu operácie (obr. 6.2):

1. odoslanie AJAXovej požiadavky na vytvorenie dialógu operácie,

2. získanie informácií o súboroch a adresároch, kontrola práv,

3. zostavenie dialógu,

4. odoslanie dialógu resp. hlásení o chybách naspät’ klientovi a ich následné zo- brazenie.

Vykonanie operácie:

5. odoslanie AJAXovej požiadavky na vykonanie operácie,

6. získanie informácií o súboroch a adresároch, kontrola práv,

7. požiadavka na vykonanie operácie,

8. vykonanie operácie,

9. prípadné zostavenie informácií o zmenených súboroch/adresároch,

10. prípadné zostavenie nových riadkov do zoznamu súborov,

11. zostavenie potvrdenia o vykonaní operácie resp. chybového hlásenia,

12. zobrazenie výsledku operácie.

40 6. PRÍLOHY

Fmgr::Prava fmgr.plfmgr_ajax.pl Fmgr::Storage Fmgr::Operace Fmgr::Komponenty Fmgr::Uzly (1) (GUI) Fmgr::Kopirovani

(2)

(3)

(4) Zobrazenie dialógu operácie

(5)

(6)

(7)

(8)

(9) Vykonanie operácie (10)

(11)

(12)

Obr. 6.1: Schéma vykonávania operácií v novom Správcovi súborov

41 6. PRÍLOHY

6.3 Ukážky grafického rozhrania

6.3.1 jQuery pluginy qTip a jQueryUI

6.3.2 Tmavý dizajn nového Správcu súborov

42