Slezská univerzita Filozoficko přírodovědecká fakulta Ústav informatiky

Rozměr: px
Začít zobrazení ze stránky:

Download "Slezská univerzita Filozoficko přírodovědecká fakulta Ústav informatiky"

Transkript

1 Slezská univerzita Filozoficko přírodovědecká fakulta Ústav informatiky Bakalářská diplomová práce Autor: Petr Mrůzek Obor: Informatika a výpočetní technika Opava 2008

2

3 Slezská univerzita Filozoficko přírodovědecká fakulta Ústav informatiky Bakalářská diplomová práce Vytvoření systému pro inventarizaci prostředků informačních technologií na Slezské univerzitě (Development of stocktaking and reconciliation system for information technologies on the Silesian University) Autor: Petr Mrůzek Obor: Informatika a výpočetní technika Vedoucí práce: Ing. Lukáš Macura Opava 2008

4 Prohlašuji, že jsem tuto práci vypracoval samostatně a že jsem použil pouze uvedené zdroje a literaturu. Beru na vědomí, že odevzdáním své bakalářské diplomové práce souhlasím se zveřejněním své práce podle zákona o vysokých školách a s tím, aby sloužila ve schodě s mými autorskými právy zájemcům o mou práci. V Opavě dne (podpis)

5 Na tomto místě bych rád poděkoval vedoucímu této bakalářské diplomové práce, Ing. Lukáši Macurovi, za jeho ochotu, cenné rady a připomínky. Dále bych mu chtěl poděkovat za poskytnutí diskového prostoru a zprovoznění testovacího serveru. Ještě jednou děkuji za vzájemnou spolupráci.

6 Obsah 1 ÚVOD ANALÝZA SOUČASNÉHO STAVU INVENTARIZACE IT NA SLEZSKÉ UNIVERZITĚ Zabbix Porty VÝBĚR VHODNÉHO OPENSOURCE SOFTWARE A KNIHOVEN PRO TVORBU APLIKACE PHP Popis jazyka PHP Verze jazyka a některé rozdíly mezi nimi ODBC MySQL Apache HTTP Server TRAC Wiki Tickets (úkolovací systém) Timeline Browse Source (Procházet zdrojový kód) SUBVERSION Základní pojmy a postupy Správa verzí pomocí Subversion VYTVOŘENÍ STRÁNKY O PROJEKTU A JEHO VÝVOJI Nastavení prostředí TRAC Přístup do SVN repozítáře Nastavení lokálního serveru a databáze Nastavení serveru Apache Nastavení PHP Nastavení ODBC ovladače PhpMyAdmin Vývoj a podpora projektu Milestone: Roadmap pro verzi Datový model Popis datového modelu Konzolidace adresářů Programování tříd a jejich metod Plnění jednotlivých úkolů (Tickets) Testování Testování během psaní zdrojového kódu Testování hotové aplikace zkušebními daty PŘEDÁNÍ DO PROVOZU Nasazení SRSW4IT na Filozofickopřírodovědecké fakultě Slezské univerzity Propojení s dalšími systémy Náměty pro budoucí verze a moduly ZÁVĚR PŘÍLOHY...47 Příloha I. Soupis tabulek s detailním popisem sloupců...47 Příloha II. Export datového modelu do grafické podoby...51 Příloha III. Unikátní indexy...52 Příloha IV. Zkušební data pro testování aplikace...53 Příloha V. Ukázky výsledku práce programu Doxygen...54 Příloha VI. Výpis výchozích typů událostí z databáze...55

7 1 ÚVOD Zadání bakalářské diplomové práce bylo inspirováno potřebou Slezské univerzity inventarizovat prostředky informačních technologií. Protože současný stav evidence všech zařízení se podle provedené analýzy ukázal být nevyhovující, je cílem práce vytvořit inventarizační software, který by splňoval zadané požadavky. Mezi nejdůležitější požadavky patřily otevřenost zdrojového kódu a nezávislost aplikace na použitém databázovém systému a platformě. Požadovaná nezávislost na použité databázi měla zajistit, že software bude fungovat pod kterýmkoli systémem řízení báze dat beze změny kódu a funkčnosti. Přestože byl pro práci vybrán databázový systém MySQL, je tak možno použít libovolný databázový systém (MS SQL Server, PostgreSQL atd.). Aby mohl být zdrojový kód včetně dokumentace přístupný veřejnosti, bylo dalším úkolem vytvoření a provoz webových stránek o projektu. Každý návštěvník stránek by tak měl možnost použít aplikaci pro vlastní specifické účely, případně dopracovat nové potřebné funkce. Pomocí úkolovacího systému, který je blíže popsán ve třetí kapitole, by měly být zadávány nové náměty. Na základě veřejné diskuze tak bude možno software postupně rozšiřovat o nové moduly a vylepšení. Dalším požadavkem byla správa softwaru přes webové rozhraní. Software nemá sloužit jako program spouštěný na jedné lokální stanici, ale jako samostatná serverová aplikace. Bude přístupný kterémukoli počítači s připojením na internetovou síť a proto dalšími úkoly bylo vytvoření struktury uživatelských účtů a zabezpečení softwaru proti neoprávněnému zneužití. Dále by měl tento software mít dostatečně obecný datový model. Protože, kromě základních tabulek ze systému Zabbix, nebyly stanoveny žádné konkrétní typy objektů a zařízení, které se v systému budou ukládat, musel datový model umožňovat i vložení takových typů objektů a zařízení, s nimiž se v průběhu vývoje nepočítalo. Vlastní práce je členěna do sedmi kapitol. Po úvodu a části věnované stručné analýze současného stavu inventarizace informačních technologií na Slezské univerzitě 5

8 následuje třetí kapitola zabývající se výběrem vhodného opensource softwaru a knihoven pro tvorbu aplikace. Ve čtvrté kapitole je shrnuta nejdůležitější část práce. Je zde popsáno nastavení jednotlivých systémů pro podporu vývoje a jejich uvedení do provozu. Důraz je kladen především na popis datového modelu, vytvořených tříd a jednotlivých fází vývoje projektu. Její součástí je také podkapitola o testování softwaru. Stručné informace o předání vyvíjeného softwaru do provozu jsou obsaženy v páté kapitole. Za ní následuje závěrečné shrnutí a seznam použité literatury a zdrojů. Jednotlivé přílohy jsou označeny římskými číslicemi a uvedeny v samostatné kapitole. Hlavní součástí bakalářské diplomové práce je přiložené CD s kompletní adresářovou strukturou vyvíjeného softwaru. Jednotlivé soubory zdrojového kódu jsou rozděleny podle jejich funkce. CD také obsahuje digitální verzi textu bakalářské diplomové práce v originálním formátu ODT (Open Office Document) i ve formátu PDF. 6

9 2 ANALÝZA SOUČASNÉHO STAVU INVENTARIZACE IT NA SLEZSKÉ UNIVERZITĚ 2.1 Zabbix V současné době je na Slezské univerzitě v provozu dohledový systém Zabbix 1, který má kromě jiných součástí obsažen i modul zvaný Inventory. Tato součást systému uchovává a zobrazuje informace o používaných informačních technologiích. Ovšem vzhledem k tomu, že inventarizace není hlavním účelem systému Zabbix, ale pouze jeho doplňkovou funkcí, není tento stav právě optimální. Neexistují zde šablony pro různé typy zařízení a data jsou tak uchovávána ve stejných tabulkách ať se jedná o stolní počítač nebo serverovou stanici. Důsledkem toho je, že jsou některé tabulky téměř prázdné (viz obr. 1). Obr. 1 Tabulka zařízení (host profile) v systému Zabbix 1 Oficiální stránky programu: 7

10 Prvky jsou sice děleny do skupin, ale nelze zde vyhledávat jednotlivá zařízení podle názvu nebo upřesňujících parametrů. Pro účely systému Zabbix je tento stav dostačující, avšak pro důkladný inventář prostředků IT je zcela nevhodný. 2.2 Porty Informace o propojení mezi jednotlivými zařízeními, které jsou ve valné většině případů řešeny ethernetovými porty, jsou v současnosti ukládány do tabulek kancelářského programu MS Excel. Protože jde pouze o tabulkový editor, jsou data uchovávána v nepřehledných tabulkách, mnohdy v několika souborech. Toto řešení se zdá být pouze provizorní a nehodí se pro složitější vyhledávání. Jednotlivé tabulky mezi sebou povětšinou nemají žádnou vazbu a už vůbec nejsou propojitelné se současným stavem inventarizace v systému Zabbix. 8

11 3 VÝBĚR VHODNÉHO OPENSOURCE SOFTWARE A KNIHOVEN PRO TVORBU APLIKACE S ohledem na uvedené požadavky na software, který je cílem této práce, bylo nutné vyhledat nástroje, pomocí nichž budou tato kritéria splněna. Protože inventarizační aplikace má mít přístup přes webové rozhraní, zvolili jsme kombinaci skriptovacího jazyka PHP 2 a databázového přístupu pomocí rozhraní ODBC. Toto standardizované API 3 umožňuje přístup do většiny nejpoužívanějších databázových systémů. Pro účely práce byl vybrán jeden z nejznámějších systémů řízení báze dat a tím je MySQL 4. Pro zprovoznění serverové aplikace je také nutné použít softwarový webový server, jímž se stal Apache HTTP Server 5. K vytvoření stránky o projektu a jeho vývoji byl použit nástroj přímo určený k vývoji softwarových projektů. Jde o nástroj Trac 6, webové rozhraní, které zprostředkovává komunikaci mezi členy vývojového týmu. Trac také poskytuje přístup k centrálnímu úložišti zdrojových kódů (repository 7 ). Každý větší projekt, ať již na něm spolupracují vícečlenné týmy nebo jej vyvíjí samostatná osoba, potřebuje spravovat jednotlivé verze svého vývoje. Právě kvůli potřebě verzování zdrojových kódů bylo nutné zvolit nástroj, který uspokojí alespoň základní potřeby a funkce pro správu verzí 8. Jelikož systém Trac, pomocí něhož je aplikace vyvíjena, podporuje SVN repository, zvolili jsme nástroj Subversion PHP Označení PHP bylo původně zkratkou pro Personal Home Page. Tuto technologii vytvořil v roce 1994 Rasmus Lerdorf kvůli sledování 2 PHP (PHP: Hypertext Preprocessor) 3 API (Application Programming Interface) - rozhraní pro programování aplikací 4 Oficiální stránky: 5 Oficiální stránky: 6 Oficiální stránky: 7 repository centrální úložiště zdrojového kódu projektu. Viz kapitola o systému Subversion 8 vytvoření pracovní kopie, potvrzení provedených změn, apod. Viz kapitola o systému Subversion 9 Oficiální stránky: 9

12 návštěvníků svých webových stránek. Postupem času se ujal rekurzívní název PHP: Hypertext Preprocessor Popis jazyka PHP PHP je vloženým skriptovacím jazykem 10. Je-li PHP vložen do HTML, znamená to, že jej lze interpretovat přímo v kódu HTML, což se často uplatňuje při vývoji dynamických webových aplikací. K jeho použitelnosti na webu také přispívá, že není jazykem programovacím, ale skriptovacím, protože je navržen tak, aby vykonal určitou činnost (např. ověření správnosti uživatelského hesla) jako reakci na nějakou událost (např. potvrzení a odeslání formuláře). PHP je technologie nezávislá na platformě a je určena pro servery. Skutečnost, že jde o serverovou technologii, napovídá, že vše, co se v kódu PHP odehrává, se neodehrává na klientském počítači, ale na serveru. Ke klientovi se již dostane jen výsledek vykonané operace, nejčastěji v podobě vygenerované HTML stránky. Protože tato technologie není závislá na platformě, lze jazyk PHP použít na většině operačních systémů (vč. MS Windows, Unix, Linux a Macintosh). Díky tomu také skript napsaný na jednom serveru bude fungovat prakticky bez úprav i na jakémkoli jiném serveru. PHP je také jazyk hybridní. Autoři si vypůjčili jazykovou syntaxi částečně od jiných jazyků, jako jsou C, Perl, Java nebo prostředí Příkazového řádku. Dle vyjádření autorů 11 přebírá PHP od jiných jazyků jen ty nejlepší vlastnosti a vytváří tak snadno použitelný a velmi výkonný skriptovací jazyk. 10 Viz 11 Mistrovstvi v PHP 10

13 3.1.2 Verze jazyka a některé rozdíly mezi nimi PHP/FI bylo první verzí nástroje, nazvaného Personal Hompage Tools/Form Interpreter. Byl to vlastně jazyk podobný jazyku Perl a byl schopen zpracovávat odesílání dat z formulářů. Chybělo mu však mnoho základních jazykových konstrukcí (např. Příkaz for). V roce 1997 byl původní nástroj PHP/FI přepracován a v této době si nové verze všimli Andi Gutmans a Zeev Suraski. Zjistili, že PHP/FI není tak účinný jak se domnívali a že mu chybí řada důležitých funkcí. Proto se rozhodli jazyk zcela přepracovat. Spojili se s Rasmusem Lerdorfem a společně připravili verzi PHP 3. V této době také vznikl název PHP: Hypertext Preprocessor. Nástroj již nebyl určen jen pro osobní potřebu, navíc byla implementována nová rozšíření rozhraní API. Po uvolnění třetí verze se odhadovalo, že PHP je nainstalován na domén. Skriptovací stroj PHP 3 zpracovával skript během čtení. Verze PHP 4 už přišla s novým přístupem. Místo aby stroj překládal skript do strojového kódu, vytvořil bajtový kód, jenž byl pak zpracován pomocí stroje Zend Engine 12. Tedy nejprve se provedl překlad a až poté zpracování. Tento způsob zpracování skriptů výrazně zvýšil výkon jazyka bez narušení zpětné kompatibility s jazykem PHP 3. Jazyk PHP ve verzi 4 byl oficiálně uvolněn v březnu roku 2002 a dnes je nainstalován na více než 15 milionech domén. Při přepracování PHP 3 na verzi 4 došlo ke změně skriptovacího stroje a zvýšení výkonu. Ovšem objektově orientovaný model, který byl do verze 3 přidán jen jako syntaktická laskomina pro usnadnění přístupu ke kolekcím 13, zůstal prakticky nedotčen. I přes svá zásadní omezení byl tento objektový model široce 12 Zend symbolizuje jména Zeev (Suraski) a Andi (Gutmans) 13 Gutmans A., Bakken S. S., Rethans D.: Mistrovství v PHP vydání. Brno Computer Press, a.s s

14 používán po celém světě a to zejména v rozsáhlejších aplikacích. Tato skutečnost vedla k tomu, že mu v nové verzi autoři věnovali zvláštní pozornost. Kromě vylepšeného objektového modelu však PHP 5 obsahuje i další rozšíření funkcí, např. Funkce pro práci s dokumenty XML nebo podpory dalších technologií. 3.2 ODBC Open Database Connectivity (ODBC) je standardizované softwarové API pro přístup k databázovým systémům (DBMS 14 ). Snahou ODBC je poskytovat přístup nezávislý na programovacím jazyku, operačním systému a databázovém systému. Díky této vlastnosti je možné aplikaci přesunout na web s jiným DBMS bez nutnosti opravovat celý kód. Stačí nainstalovat příslušný ovladač ODBC a pozměnit DSN 15 pro přístup k danému databázovému systému. 3.3 MySQL MySQL je relační databázový systém, vytvořený švédskou firmou MySQL AB, nyní dceřinou společností společnosti Sun Microsystems 16. Komunikace s touto multiplatformní 17 databází probíhá pomocí jazyka SQL 18. Podobně jako u ostatních SQL databází se jedná o dialekt tohoto jazyka s některými rozšířeními. Je k dispozici jak pod bezplatnou licencí GPL, tak pod komerční placenou licencí. MySQL byla vytvořena v roce 1995 jako jednoúčelová databáze pro snadné ukládání a především čtení textových dat v internetových 14 DBMS (DataBase Management systém) Systém řízení báze dat (SŘBD) 15 DSN (Data Source Name) - je logickým názvem používaným rozhraním ODBC (Open Database Connectivity) k odkazu na ovladač a další informace, které jsou vyžadovány pro přístup k datům. 16 Viz článek na stránkách ze dne Pracuje např. na platformách: FreeBSD, OpenBSD, Linux, MAC OS, Novell NetWare, Solaris, SunOS, Windows (95, 98, ME, NT, 2000, XP, Vista) 18 SQL (Structured Query Language) strukturovaný dotazovací jazyk používaný v relačních databázích 12

15 aplikacích. V současné době má vysoký podíl na dnes používaných databázích. Velmi oblíbená je dnes kombinace MySQL, PHP a Apache. 3.4 Apache HTTP Server Apache 19 HTTP Server je softwarový webový server s otevřeným kódem pro Linux, BSD, Microsoft Windows a další platformy. V současné době dodává prohlížečům na celém světě většinu internetových stránek. 3.5 TRAC Jak jsem již uvedl v úvodu této kapitoly, Trac je nástroj k vývoji softwarových projektů, který je určen jednotlivcům i vývojářským týmům. Jde o webové rozhraní, jenž zprostředkovává komunikaci mezi členy vývojového týmu registrovaným osobám podle jejich práv. Tato komunikace probíhá pomocí dvou hlavních funkcí Tracu, stránek wiki a úkolového systému Wiki Wiki 20 je software, který umožňuje uživatelům jednoduše tvořit a editovat webové stránky a vzájemně je propojovat pomocí odkazů. Wiki je často používána k tvorbě kolaborativních 21 stránek, či stránek 19 Apache - název vznikl z úcty a obdivu k domorodému kmenu indiánů - Apačů anebo anglického slovního spojení A patchy server (patchovaný server, kdysi byl Apache pouze sada patchů pro jiný web server). Jako indiánský symbol je ve znaku ptačí pero. 20 "wiki", resp. "wikiwiki" pochází z Havajštiny, ve které je to výraz pro "rychlý" resp. "velmi rychlý". Teprve později vznikl tzv. backronym WIKI = "What I Know Is" (To, co vím je). "backronym" je anglický výraz pro akronym, jež nevznikl spojením začátků slov do názvu, ale vznikl z již existujícího názvu, aby dodatečně vysvětlil význam. 21 Slovo kolaborativní se běžně zaměňuje za kooperativní. Skupina kolaboruje (spolupracuje) na dosažení určitého cíle, obvykle na splnění složitější úlohy. Za splnění jsou zodpovědní všichni členové skupiny. Spolupráce vychází z otevřené komunikace, probíhá v atmosféře rovnocennosti, důvěry, sdílení a podpory. Z práce skupiny mají prospěch všichni jednotlivci. Členové skupiny zastávají různé role. 13

16 velkých komunit. Ward Cunningham, tvůrce první wiki, ji líčí jako "nejjednodušší online databáze, která by snad měla fungovat" 22. Principem wiki je otevřenost a jednoduchý značkovací jazyk, který je následně interpretován do HTML kódu a zobrazen v prohlížeči. Uživatel se pak neztrácí v nepřehledných párových a nepárových značkách jazyka HTML, ale formátuje text jednoduchými symboly. Editace stránek probíhá kolizní metodou, což znamená, že jakmile chce uživatel uložit upravenou stránku, kterou mezitím změnil a uložil jiný uživatel (čímž dojde ke kolizi), systém stránku neuloží. Bližší informace o wiki lze nalézt na internetu Tickets (úkolovací systém) Hlavním účelem Tracu je pomoci vývojářům v práci a v tom, mít přehled o již hotových částech projektu, o úlohách, které je potřeba vyřešit, a termínech jejich splnění. Tuto funkci obstarává Roadmap, což je jakýsi seznam mezníků (milestones) na cestě k hotovému projektu. Milestone (mezník) se používá k označení jednotlivých etap vývoje. Nese také informaci o předpokládaném datu splnění všech úkolů, které jsou mezníku přiřazeny. Jakmile jsou všechny splněny (a to pouze tehdy), Milestone je hotov a uzavřen. Pohledem na uzavřené i otevřené mezníky každý ze skupiny vývojářů snadno pozná, jaké části jsou hotovy, na jakých se právě pracuje a do kterého data by měly být uzavřeny. Jednotlivé úkoly (Tickets) jsou přiřazovány registrovaným uživatelům vývojářům. Mohou být různého druhu a mít rozdílnou prioritu. 22 Viz stránky

17 Druhy úkolů (ve výchozím nastavení): defect chyba, vada, potřeba odstranit problém enhancement vylepšení, pozvednutí úrovně task problém, těžký úkol request požadavek, přání, dotaz, návrh Priorita (ve výchozím nastavení): blocker blok, překážka critical rozhodující, kritický úkol major důležitý, závažný úkol minor menší, podružný úkol trivial triviální, jednoduchý úkol Timeline Timeline, neboli časová osa projektu, je další částí systému Trac. Na této stránce je uložena historie změn podle data. Lze nastavit od jakého data, případně v jakém časovém intervalu, mají být provedené změny zobrazeny. Zobrazení je možné dále filtrovat na úkoly, editované stránky, mezníky (milestones), nebo změny v repozitáři 24 (changeset) Browse Source (Procházet zdrojový kód) Tato stránka zobrazuje aktuální obsah repozitáře. Umožňuje vyhledat, revizi 25 po revizi, posloupnost všech změn, které byly v kódu provedeny. Po změně souborů se zdrojovými kódy nejsou do repozitáře uloženy celé jejich kopie, ale zapíší se pouze rozdíly mezi revizemi (diff 26 ). 24 repository centrální úložiště zdrojového kódu projektu. Viz kapitola o systému Subversion 25 revision pořadové číslo změny. Viz kapitola o systému Subversion 26 diff z anglického difference. Zvýrazňuje řádky, které se liší oproti předchozím verzím kódu 15

18 3.6 SUBVERSION Tento nástroj, vyvíjený firmou CollabNet, Inc je šířen pod licencí, která umožňuje jeho bezplatné komerční využití a existuje k němu velmi dobře zpracovaná dokumentace 27. Původně vznikl jako náhrada za starší nástroj CVS a je také založen na principu centrálního úložiště. Přestože se starším CVS inspiruje, je mnohem flexibilnější a přístup k centrálnímu úložišti může být realizován pomocí více přístupových metod. Subversion lze provozovat na mnoha platformách, včetně Windows. Skládá se ze dvou hlavních částí serverové a klientské. Klientská část poskytuje nástroje pro práci s verzemi přímo v pracovním adresáři a komunikaci se serverovou částí, která se stará o repository (centrální úložiště). K repository lze přistupovat lokálně, nebo přes nativní protokol svn://. Existuje také několik klientských nástrojů, od příkazové řádky, přes webové rozhraní až po nástroje integrované do GUI operačního systému. Umožňuje tak uživateli vybrat způsob, který mu nejvíce vyhovuje Základní pojmy a postupy Repository (repozitář, centrální úložiště) Umožňuje organizovat projekt a spravovat jeho verze. Fyzicky je uloženo na souborovém systému serveru. K repository se přistupuje přes Repository Access Layer (RA) systému Subversion a jeho správa se provádí klientskými nástroji. Branch (větev) Slouží k organizaci repository, jedná se o analogii s adresáři. Pokud se z repository vyzvedne větev, na klientovi vznikne adresářová struktura, která přesně odpovídá větvím v repository. 27 Viz 16

19 Revision (revize) Revize je pořadové číslo každé změny. Slouží ke sledování změn ve větvích v čase. Každá změna v nějaké větvi vytvoří novou revizi v rámci celé repository. Revize obsahuje informace o tom, co bylo změněno, kdo změnu provedl, poznámku a čas. Pracovní kopie Kopie dat z určité větve z repository v aktuální revizi uložená na pevný disk lokálního klienta. Do pracovní kopie je možné provádět změny, které je možné commitem uložit zpět do repository. Commit Odeslání změn provedených od posledního commitu do repository. Commit je nejčastěji používaná změna při práci s repository. Pokud se provádí commit celé pracovní kopie, jedná se o atomickou operaci, jsou odeslány veškeré změny ve všech objektech ve správě verzí. Pokud dojde k nějaké chybě při přenosu, není commit pro ostatní uživatele repository zviditelněn a nová revize není vytvořena. Konflikt Konflikt je stav signalizující, že stejný objekt, který má být právě commitován, byl změněn někým jiným a nachází se v repository v aktuální revizi v jiné podobě, než jaká je v pracovní kopii. Nelze provést commit celé pracovní kopie, pokud se v ní nachází jeden nebo více souboru v konfliktu. Changeset Changeset je sada změn, které se posílají z pracovní kopie do repository (nebo sada změn provedených v rámci repository). Subversion ukládá vždy jen informace o provedených změnách, tedy 17

20 rozdíly mezi jednotlivými revizemi. Tím se spoří místo na disku a snižuje objem dat přenášených z klienta na server. Merge Sloučení změn z větve v repository do pracovní kopie. Lze specifikovat určitý rozsah změn, a to intervalem revizí. Cheap-copy Technika, kterou se realizují kopie prováděné v rámci repository. Objekty nejsou v repository fyzicky duplikovány, ale jsou vytvořeny tzv. odkazy (link) na kopírované objekty. Zjednodušeně lze chápat takový link jako informaci o URL s číslem revize. Díky tomu má SVN nízké nároky na datový prostor Správa verzí pomocí Subversion Následující příklad ukazuje, jak probíhá správa verzí pomocí SVN. Jedná se o zjednodušený proces, kdy jsou požadavky vyvíjeny za sebou, nikoliv paralelně, a vyvíjený projekt se již nachází v repository. Postup práce pak probíhá následovně. Vyzvednutí projektu (tzv. checkout) z repository do lokálního adresáře. Tím se vytváří pracovní kopie, která funguje jako pracovní prostor. Editace požadovaných souborů (přidání, mazání). Odeslání změn do repository (tzv. commit). Změny jsou viditelné pro všechny uživatele repository. Spolu se změnami se zapisuje čas jejich poslání do repository, autor a textový komentář. Další vývojář (pokud již má pracovní prostor) provede stažení aktuální verze z repository (tzv. update) a pokračuje ve vývoji. Vytvořené změny opět odešle do repository (tzv. commit). 18

21 4 VYTVOŘENÍ STRÁNKY O PROJEKTU A JEHO VÝVOJI Před samotným zahájením vývoje softwaru, bylo nutné zprovoznit vývojové prostředí Trac. Pro účely práce byl poskytnut webový prostor na univerzitním serveru 28 s již předinstalovanou aplikací. Dále byl zajištěn přístup do univerzitního SVN repozitáře 29. Aby bylo možné testovat zdrojové kódy aplikace, musel být vytvořen lokální server pomocí Apache HTTP Server. 4.1 Nastavení prostředí TRAC Prvním krokem ve vývojovém prostředí bylo vytvoření uživatelských účtů a nastavení uživatelských práv. Bylo potřeba zajistit, aby měl nepřihlášený uživatel přístup k informacím o projektu a možnost vytvořit nový úkol, ale administrátorské funkce 30 mu zůstaly skryty. Poté následovalo vytvoření stránky o samotném projektu. Úvodní stránka obsahuje informace o licenci budoucího softwaru, programovacím jazyce, použitém databázovém systému i anonymním přístupu do repozitáře. Jsou zde uvedeny i externí odkazy na webové stránky používaných technologií a interní odkazy na další informace (např. datový model). 4.2 Přístup do SVN repozitáře Pro uchovávání verzí budoucího zdrojového kódu byla zprovozněna komunikace mezi lokálním počítačem a vzdáleným úložištěm. Protože systém Subversion má svůj vlastní přístupový protokol svn://, bylo nutné nalézt vhodný program, který tímto protokolem komunikuje. Stal se jím TortoiseSVN. Tento software poskytuje uživatelům operačního systému svn://srsw4it.bp.opf.slu.cz/srsw4it 30 Např. editace stránek wiki, tvorba mezníků či nastavení samotného prostředí 19

22 Windows jednoduchou integraci verzovacího nástroje přímo do kontextového menu Průzkumníka. Vytvoření pracovní kopie je tak snadným úkolem. Stačí pravým tlačítkem vybrat složku a v kontextovém menu zvolit možnost SVN Checkout. Stejně jednoduché jsou pak i další funkce. Pro účely projektu bylo využito především základních funkcí k vytvoření a aktualizaci pracovní kopie, vyhledání provedených změn a vytvoření nové revize příkazem commit. 4.3 Nastavení lokálního serveru a databáze Pro správnou funkci testovacího provozu na lokálním serveru byla nainstalována trojice nástrojů Apache, PHP 5 a MySQL. Kvůli splnění požadavku nezávislosti aplikace na platformě či použité databázi bylo dále nutné nainstalovat ovladač pro přístup k databázi MySQL pomocí ODBC. Pro snadnější kontrolu změn provedených v databázi byl využit nástroj phpmyadmin Nastavení serveru Apache Vzhledem k tomu, že server Apache nepotřebuje složitou konfiguraci, stačilo jej nastavit velmi jednoduše editací souboru httpd.conf. Důležitými kroky byla změna výchozího pracovního adresáře, pojmenování serveru (na localhost) a nastavení výchozí stránky na index.php Nastavení PHP V konfiguračním souboru php.ini bylo nutné pozměnit několik základních parametrů. 31 Volby DocumentRoot, ServerName a DirectoryIndex 20

23 short_open_tag = Off error_reporting = E_ALL display_errors = On display_startup_errors = On register_globals = Off Proměnná short_open_tag umožňuje začínat skripty PHP zkrácenou verzí tagu <??> místo plného tagu <?php?>. Nastavení na hodnotu On může mít za následek kolizi se zkrácenými značkami jiných jazyků, např. XML. Funkci register_globals vypínáme z bezpečnostních důvodů. Umožňuje totiž automaticky definovat proměnné ze superglobálních polí GET, POST a COOKIE jako globální proměnné. Je to ovšem jen pojistka, neboť v celém kódu jsou používána právě superglobální pole (např. $_GET['what']) Nastavení ODBC ovladače Aby skripty komunikovaly s databází MySQL pomocí ODBC, je potřeba nastavit DSN (Data Source Name). To se provádí v Nástrojích pro správu ve volbě Datové zdroje (ODBC). Je nutné vyplnit pole DSN, Server, User, Password a Database PhpMyAdmin Pomocí nástroje PhpMyAdmin se musí vytvořit pracovní databáze, která v našem případě nese název srsw4it. Také je možné nastavit heslo k MySQL databázi změnou v tabulce user v databázi mysql. 21

24 4.4 Vývoj a podpora projektu Samotný vývoj probíhal hlavně ve dvou rovinách. První se týkala plnění úkolů v systému Trac, plánování nových úkolů, debaty nad těmi nesplněnými a doplňování stránek Wiki. Druhá pak obsahovala samotné programování v textovém editoru a testování na lokálním serveru Milestone: Roadmap pro verzi 0.1 Na počátku vývoje jsme potřebovali sepsat hlavní myšlenky a požadavky na budoucí aplikaci. Pro tento účel jsme vytvořili mezník, který tyto požadavky shrnuje. Kromě samotných požadavků je v něm popsán postup pro zadání návrhu na funkci či jiná vylepšení softwaru. Nový požadavek může zadat každý návštěvník stránek o projektu, stačí pouze vyplnit formulář pro zadání úkolu New Ticket a přiřadit tento ticket uživateli mruzek Datový model Datový model je základem celého softwaru, neboť je-li navržen nevhodně, nezbývá než jej přepracovat a začít od začátku. Vzhledem k důležitosti této části práce bylo diskuzím kolem datového modelu věnováno velké množství času a úsilí. Model musel být dostatečně obecný, aby byla aplikace použitelná v širším měřítku a ne jen pro jednu organizaci. Datový model byl v průběhu práce měněn a doplňován o další entity vždy, když bylo nutné použít další relace či doplnit stávající tabulky 32 o nové sloupce. Protože se naše databáze skládá z jednoduchých tabulek, které jsou mezi sebou propojeny, nebyl vytvářen žádný ER diagram, ale přímo 32 V této práci používáme slova relace a tabulka jako synonyma, i přes to, že mezi nimi existuje jistý rozdíl. 22

25 model databáze. Pro tento účel jsme použili freeware program Data Toad Modeler 33. Tento nástroj umožňuje jednoduchým způsobem definovat relace (jako tabulky v logickém modelu) a vazby mezi nimi. Pomocí exportu tabulek do grafického formátu byl vytvořen obrázek datového modelu (viz Příloha II.) Popis datového modelu Model je v současné době tvořen 18-ti relacemi, které jsou vzájemně propojeny cizími klíči. Protože má být aplikace nezávislá na platformě i databázi, jsou cizí klíče v tabulce tvořeny přidáním sloupce, který obsahuje identifikátor záznamu z jiné tabulky. Tyto sloupce jsou pojmenovány tak, aby bylo na první pohled zřejmé, že jde o cizí klíč, a to jak v datovém modelu, tak v databázi samotné. Každý takový klíč začíná písmeny ID a pokračuje buď názvem tabulky, k níž se identifikátor vztahuje, nebo výstižným popisem toho, co klíč v této tabulce představuje. Např. V tabulce Device představuje sloupec IDDeviceType cizí klíč z tabulky DeviceType a sloupec IDOwner označuje osobu z tabulky User, která je vlastníkem tohoto zařízení. Následují odstavce shrnují pouze základní informace o jednotlivých tabulkách. Celkový soupis sloupců, spolu s detailním popisem jejich významu, je uveden v Příloze I. Device (zařízení) Zařízením se rozumí základní datová jednotka, kterou budeme používat. Zařízením se rozumí také část již existujícího zařízení, o němž si chceme udržet informace. Tabulka Device definuje základní parametry každého zařízení. Kromě povinných atributů obsahuje také tři nepovinné 33 Program je ke stažení na stránkách a to jak v bezplatné tak v komerční verzi 23

26 sloupce začínající písmeny Img. Tyto sloupce jsou zde nachystány pro případ vytvoření modulu, který všechna uložená zařízení rozmístí po vytvořené 2D či 3D mapě. DeviceType Typ zařízení je šablona, která definuje doplňující parametry pro zařízení. Tabulka DeviceType obsahuje pouze název a popis šablony, samotné parametry jsou k zařízení přiřazovány pomocí tabulky DeviceTypeAttribute. AttributeType Atribut je jeden parametr zařízení. Jako atribut se může použít jakákoli informace, ať již chceme uchovávat informaci o stavu zařízení, nebo potřebujeme popsat nějakou část zařízení, které nechceme věnovat samostatný záznam v tabulce Device. Jako příklad můžeme uvést např. atribut procesor, životnost projektoru nebo provozní stav zařízení. Tabulka AttributeType tak potvrzuje obecnost datového modelu. ConnectorType Typ propojení definuje možnost propojení dvou atributů mezi sebou. Tabulka ConnectorType obsahuje seznam všech možných propojovacích typů. Pro vytvoření propojovací vazby mezi atributy je nutné, aby byl typ propojení u obou atributů stejný. Příkladem mohou být ethernetové porty. DeviceTypeAttribute Tato tabulka slouží pro přiřazení jednotlivých atributů k typům zařízení. Jde o implementaci vztahu M:N mezi relacemi DeviceType a AttributeType. Tímto se teprve vytváří šablona pro určitý typ zařízení. Kromě cizích klíčů z obou tabulek obsahuje tato relace sloupce, které 24

27 určují maximální počet atributů pro jedno zařízení s touto šablonou a dědičnost či unikátnost hodnoty pro jedno zařízení nebo celou šablonu. AttributeData Tato tabulka obsahuje hodnoty atributů, které jsou danému zařízení definovány skrze šablonu. Mimo cizích klíčů a hodnoty atributu obsahuje každý záznam pořadové číslo, které udává pořadí instance typu atributu v rámci zařízení. Dále obsahuje informace o datu vložení, datu poslední úpravy a o tom, který uživatel poslední změnu provedl. Link Tato relace slouží pro vytvoření vztahu (vazby) mezi atributy. Slouží jako implementace unárního vztahu M:N nad tabulkou AttributeData. Jak již bylo uvedeno, spojovat lze pouze atributy se stejným typem propojení. Kombinace vstupního a výstupního atributu je jedinečná a proto je na ni vytvořen unikátní index. DeviceGroup Zařízení je potřeba rozdělovat do skupin podle různých parametrů. Jedno zařízení může být zařazeno do několika skupin. Např. zařízení Projektor může patřit do skupiny Vizuální technika a zároveň do skupiny Zařízení ústavu informatiky. DeviceGroupDevice Pomocí této tabulky je implementováno přiřazení zařízení ke skupinám. Tak jako již v předchozích případech jde o implementaci vztahu M:N a to mezi tabulkami DeviceGroup a Device. I zde je použit unikátní index na dvojici cizích klíčů. 25

28 User V této relaci jsou uloženy informace o uživatelích aplikace. Kromě iniciál, uživatelského jména a hesla jsou zde kontaktní informace a také skupina a organizační jednotka, ke které osoba náleží. Jedinou povinnou kontaktní informací je telefonní číslo. V systému mohou být uvedeny osoby, které nepotřebují být přihlášeny k aplikaci. Tyto osoby mají uloženo nulové heslo. UserGroup Uživatelská skupina slouží nejen k rozdělení uživatelů, ale také k nastavení uživatelských oprávnění pro zařízení. Uživatel může být pouze v jedné skupině. UserGroupRights Tabulka UserGroupRights slouží pro implementaci vztahu M:N mezi tabulkami UserGroup a Rights, tedy definuje oprávnění dané skupiny uživatelů k zařízením. Rights Pro každé vložené zařízení se vytvoří tři záznamy v této tabulce. Každý z těchto záznamů má různou hodnotu oprávnění, jeden pro čtení (r), druhý pro čtení a modifikaci neklíčových atributů (w) a třetí pro úplnou editaci zařízení (a). OU Organizační jednotkou je myšlen jakýkoli útvar v organizaci. Na Slezské univerzitě může jít o fakulty, ústavy apod. Jednotky jsou do tabulky OU ukládány hierarchicky pomocí tzv. tečkové syntaxe. Názvem jednotky je zkratka následovaná tečkou a názvem nadřazené jednotky. Název bez tečky značí hierarchicky nejvýše položený útvar. 26

29 Při vkládání nového útvaru se pak testuje existence organizační jednotky uvedené za tečkou. Každá jednotka má přiřazenu skupinu uživatelů, kteří v ní mohou měnit či vytvářet zařízení. Building V tabulce Building jsou uvedeny budovy, které k organizaci patří. Sloupec adresy sice nesplňuje podmínku nedělitelnosti hodnoty v relaci, ale pro účely této aplikace předpokládáme, že nebude třeba hledat zařízení např. podle poštovního směrovacího čísla. Adresa je zde tedy chápána jako atomická (dále nedělitelná) hodnota. Room Pro umístění zařízení je třeba evidovat také jednotlivé místnosti. Tabulka Room obsahuje základní informace o tom, ve které budově a poschodí se místnost nachází a také kontaktní osobu, na kterou je možno se v případě potřeby obrátit. EventType Pro administraci systému jsou uchovávány důležité události a změny v aplikaci. Výchozí data vyvíjené práce obsahují základní typy událostí, které mohou být uchovávány. Podle hodnoty sloupce Importance (Důležitost) se dají jednotlivé záznamy filtrovat např. pouze na závažné chyby v aplikaci. Event Tabulka Event je místem pro uložení všech událostí, které systém zaznamenává. Vzhledem k tomu, že změny v aplikaci jsou nevratné, uchovává se zde datum změny, identifikátor přihlášeného uživatele, jeho IP adresa, typ události a popisný text. Ten může například při chybném přihlášení obsahovat zadané uživatelské jméno. 27

30 4.4.4 Konsolidace adresářů Před začátkem programování bylo třeba zvážit adresářovou strukturu projektu. V každém adresáři by měly být uloženy soubory, které spolu souvisí. Soubory tříd by měly být pro přehlednost odděleny od zbylého kódu, stejně jako kaskádové styly a obrázky. Vzniklá počáteční struktura je zobrazena na obrázku č.2. Obr. 2. Počáteční adresářová struktura projektu Třídy samotné jsme uložili do zvláštního adresáře classes, obrázky potřebné pro zobrazení aplikace do složky images, soubory, které se načítají do hlavní stránky, jako například hlavička, menu a pata, jsou uloženy v adresáři includes. V další složce scripts jsou PHP skripty pro zobrazení a ošetření jednotlivých formulářů a také inicializační skript init.php, který načte do databáze počáteční data. Složka styles je určena pro soubory kaskádových stylů CSS Programování tříd a jejich metod Třídy tvoří jádro výsledné aplikace a veškeré vkládání, zobrazování nebo editace objektů se bez nich neobejde. Základem jsou tři třídy: db.class.php logger.class.php globalclass.class.php. 28

31 Třída db Tato třída zajišťuje komunikaci s databází, což obnáší připojení k databázi, provádění SQL dotazů a zjišťování výsledků těchto dotazů. Na začátku této třídy je nutné definovat konstanty, které jsou potřeba pro zdárné připojení. Jsou jimi DSN, typ databáze, uživatelské jméno a heslo. Při každém zobrazení webové stránky aplikace se vytváří globální proměnná, která je instancí této třídy. V okamžiku vytváření této instance se zavolá konstruktor 34 třídy db, který provede připojení k databázi a uložení identifikátoru tohoto připojení do proměnné instance. Tato proměnná je privátní, tedy k ní lze přistupovat jen metodami třídy db, přesněji metodami její instance. Odesílání SQL dotazů obstarává metoda query(), která vrací identifikátor výsledku. Třída dále obsahuje metody pro uvolňování výsledků dotazu, zjištění posledního vloženého identifikátoru či příkazů pro potvrzení a odvolání provedené transakce. Třída logger Přes metody této třídy probíhá komunikace s uživatelem a zobrazení i zaprotokolování chybových a ladících zpráv. Zobrazení těchto zpráv závisí na nastavené úrovni logování. Ta může nabývat čtyř hodnot a těmi jsou: trace nejdetailnější zprávy včetně ladících zpráv, zobrazení prováděných SQL dotazů a jejich výsledků. debug zobrazují se chybové zprávy, varování a důležitější informace pro účely ladění. warning toto je výchozí úroveň logování, zobrazují se pouze varovné a chybové zprávy. 34 Konstruktor je metoda třídy, která se volá automaticky při vytváření nové instance třídy. V případě PHP se dá její chování dodefinovat funkcí construct(). 29

32 error nastavení logování na tuto úroveň bude znamenat zobrazování pouze závažných chyb v aplikaci. Tato třída také obsahuje nepoužité metody, které v budoucnu zajistí odesílání varovných a chybových zpráv do systému Zabbix. Třída globalclass Tato abstraktní 35 třída je tvořena metodami, které je potřeba volat z ostatních tříd a proto je jim hierarchicky nadřazena. Je zde využita vlastnost objektového přístupu k programování. Každá ze tříd má ve své deklaraci uvedenu právě tuto třídu jako rodičovskou. Díky tomu mohou být společné metody uloženy na jednom místě a nemusí se definovat pro každou třídu zvlášť. Zděděné třídy lze volat pomocí identifikátoru rodičovské třídy parent::, např. parent::getidifexist() zavolá metodu getidifexist() třídy globalclass. Tyto metody slouží výhradně jako jakési rozhraní mezi jednotlivými třídami a třídou db, komunikující s databází. Jsou to metody pro zjištění existence záznamu v dané tabulce, metody pro vkládání a úpravy záznamů v tabulce, metoda pro vytváření SQL dotazu a také metody pro získání výsledků v požadované podobě. Touto podobou může být pole nebo textový řetězec. Důležitá je metoda transaction(), která provede potvrzení provedených SQL příkazů v případě, že nebyla zaznamenána žádná chyba a pokud chyba zaznamenána byla, provedené změny budou zahozeny. Další třídy Každá tabulka, která neslouží jako implementace vztahu mezi jinými tabulkami má svou vlastní třídu. Jedinou výjimkou jsou relace Room a EventType. Metody pro obsluhu tvorby a modifikace 35 Abstraktní třída znamená, že nelze vytvořit instanci této třídy. 30

33 místností jsou obsaženy ve třídě, která se zabývá budovami a metody patřící k typům událostí mají své místo ve třídě Event. Všechny tyto třídy mají některé metody se stejným názvem. Protože jsou v celém kódu volány nejen jménem metody, ale také jménem třídy, nebylo potřeba názvy rozlišovat. Chceme-li použít nějakou funkci v jiné metodě stejné třídy, použijeme identifikátor self:: 36, za nímž následuje název požadované funkce. Pokud ale chceme stejnou funkci zavolat z třídy jiné, musíme již použít název třídy. Například při modifikaci zařízení ve třídě device chceme zjistit, zda dané zařízení existuje v databázi a použijeme konstrukci self::getidifexist(). Při stejném zjišťování z jiné třídy musíme zavolat funkci takto: device::getidifexist(). Metoda, jež je všem těmto třídám společná je právě metoda pro nalezení identifikátoru záznamu podle hodnoty jednoho z jejích sloupců. Je to funkce uvedená v příkladu, s názvem getidifexist(). Tato metoda je definována v rodičovské třídě globalclass a všechny třídy ji dědí. Avšak pro každou ze tříd je definice této metody poněkud pozměněna, neboť každá třída pracuje s jinou tabulkou. Tato metoda se používá ve valné většině případů k ověřování existence objektů v databázi ať už k udržování unikátnosti hodnoty ve sloupci nebo získání identifikátoru záznamu podle jména. Důležitými metodami jsou create a modify, které, jak již jejich názvy napovídají, slouží k vytváření a modifikaci objektů v databázi. Jednotlivými řádky kódu těchto metod není třeba se zde zabývat, neboť jsou popsány v podrobnější dokumentaci na stránkách projektu. Ostatní funkce jednotlivých tříd, které se vztahují k vyřešení některého ze zadaných úkolů budou popsány níže v textu. 36 Obdobně se používá již dříve zmiňovaný identifikátor parent::. Oba tyto identifikátory jsou překladačem nahrazovány za název dané třídy. 31

34 4.4.6 Plnění jednotlivých úkolů (Tickets) Přístupová práva k zařízením Každé zařízení by nemělo být přístupné všem uživatelům a proto bylo potřeba vyřešit přístupová oprávnění. Vzhledem k tomu, že udělování práv jednotlivým uživatelům by mohlo být velmi nešikovné, rozhodli jsme se rozdělit jednotlivé uživatele do skupin a vyřešit pro každé zařízení přístup uživatelské skupiny. Při vložení každého nového zařízení se v tabulce Rights vytvoří trojice záznamů. Každý z těchto záznamů je cizím klíčem přiřazen právě vloženému zařízení a má rozlišnou hodnotu oprávnění. Přístupová práva jsou tedy tři 37 : Právo pro čtení ('r'): Umožňuje zobrazení daného zařízení, ale znemožňuje v něm editovat jakoukoli položku. Právo pro zápis ('w'): Uživatelská skupina s právem pro zápis může upravovat neklíčové atributy zařízení, což znamená atributy, které jsou v zařízení definovány pomocí šablony. Nejsou to tedy záznamy v tabulce Device, nýbrž hodnoty sloupce Data v relaci AttributeData. Administrátorské právo ('a'): Povolení pro jakoukoli modifikaci atributů a to jak v tabulce Device (klíčové atributy) tak v tabulce AttributeData (atributy neklíčové). Toto právo také umožňuje přidělit jakékoli právo k tomuto zařízení kterékoli skupině uživatelů. Vložením zařízení se však nepřiřadí právo žádné skupině. Pouze se uloží tři řádky do tabulky Rights. Jakmile chceme přidělit právo pro nějaké zařízení, použijeme metody třídy rights. Nejdříve metodou 37 Pro symboly označující hodnoty jednotlivých oprávnění jsou použita počáteční písmena anglických názvů umožňovaných funkcí, tedy Read, Write a Administrate (číst, zapisovat, spravovat). 32

35 checkdeviceright() zjistíme, zda skupina má přiřazeno k tomuto zařízení některé z práv. Jestliže zjistíme, že nemá, funkce getidrightsbydevice() nalezne identifikátor oprávnění podle zadaného zařízení a požadované hodnoty práva. Poté se vytvoří záznam v tabulce UserGroupRights, čímž se vytvoří vazba mezi skupinou a oprávněním. Jestliže již skupina nějaké právo k tomuto zařízení má, nebudeme záznam do vazební tabulky vkládat, ale upravíme ten existující. Ve zvláštním případě nepotřebujeme použít žádnou z těchto tabulek. Tímto případem je vedoucí skupina organizační jednotky. Patří-li zařízení pod útvar, jež má uvedenu vedoucí skupinu, a je-li uživatel přiřazen do této skupiny, automaticky má administrátorské právo. Oprávnění pro nepřihlášené návštěvníky V aplikaci bylo myšleno i na zpřístupnění některých zařízení všem návštěvníkům aplikace. Pro tento případ je vytvořena skupina guest. Této skupině je možné přiřadit pouze právo pro čtení. Hierarchická struktura útvarů Logickým požadavkem bylo ukládání organizačních jednotek v hierarchické struktuře. Chceme ukládat veškeré útvary a vždy mezi nimi bude nadřazenost či podřazenost. Zde bychom mohli uvést příklad: Máme organizaci, které aplikace slouží, pro naše účely je to Slezská univerzita. Vytvoříme tedy organizační jednotku s názvem su. Všechny další útvary jsou tomuto podřazeny a proto každý z následujících názvů organizačních jednotek obsahuje i název nejblíže nadřazené. Pro vytvoření útvaru fpf (filozoficko-přírodovědecká fakulta) uložíme název fpf.su. Tímto dáváme jasně najevo, že je tato 33

36 fakulta podřazena celé organizaci. Můžeme tedy vytvořit hierarchickou strukturu a to velmi jednoduše. Název útvaru, který neobsahuje tečku je vždy uložen jako nejvýše hierarchicky postavený. Názvy s tečkou jsou aplikací rozděleny na počáteční a koncový segment, přičemž oddělujícím znakem je první nalezená tečka. Před uložením útvaru se hledá nadřazená jednotka a bez její existence není uložení povoleno. Pro vložení nižší úrovně tedy vždy musí existovat ta vyšší. Jednotná dokumentace Aby nebylo nutné zvlášť popisovat veškeré metody jednotlivých tříd, museli jsme již při jejich psaní myslet na dokumentaci. Na webu je spousta dostupných aplikací, které dokáží při správně psaných komentářích extrahovat tyto informace a vytvořit vcelku kvalitní dokumentaci. V našem případě šlo o open source software Doxygen 38. Díky tomuto nástroji stačí psát vhodné komentáře přímo do zdrojového kódu a po skončení prací spustit tvorbu dokumentace. Ukázka výsledku práce Doxgenu je uložena v Příloze V. Indexování Indexování je součástí každé databáze a proto zde zmíníme jen několik informací. Kvůli rychlejšímu vyhledávání v databázi vytváříme index pro veškeré pole typu VARCHAR. Dále definujeme unikátní indexy (UNIQUE INDEX) na množiny atributů v jednotlivých tabulkách. Zamezíme tím případné chybě, protože databáze odmítne uložit záznam, který unikátnost porušuje. Množiny, pro které jsou unikátní indexy definovány jsou popsány v Příloze III.. 38 Oficiální stránky 34

37 Dědičnost a unikátnost atributů zařízení Dědičnost i unikátnost jsou zajištěny pomocí parametru UniqueNumber v tabulce DeviceTypeAttribute. Tento parametr tedy omezuje pouze daný typ atributu v dané šabloně. Pro jiný typ zařízení může být hodnota tohoto parametru jiná. UniqueNumber může nabývat čtyř hodnot, z nichž pouze jedna určuje dědičnost. Je to hodnota -1 a znamená, že se hodnoty tohoto atributu mohou v rámci šablony dědit. Chceme-li vlastnost použít, pak při vkládání zařízení uvedeme ve formuláři klíčové slovo inherit. Záznam se uloží do databáze s tímto textem jen tehdy, existuje-li nějaké rodičovské zařízení stejného typu, jehož hodnota tohoto atributu je konkrétní (tedy není inherit). Při zobrazení detailů o zařízení se pak hledá nejbližší konkrétní hodnota atributu. Nulová hodnota parametru znamená klasické chování. Do atributu je možné uložit jakoukoli hodnotu odpovídající datovému typu. Kladné hodnoty značí požadavek na jedinečnost hodnoty atributu a to buď v rámci jednoho zařízení nebo v rámci všech zařízení tohoto typu (se stejnou šablonou). První možnost (zadáme hodnotu 2) může být použita pro jedinečnou identifikaci hodnoty, např. číslo ethernetového portu, zatímco možnost druhá (hodnota 1) umožní uložit např. sériové číslo zařízení, které nemůže být pro žádné zařízení v šabloně shodné. Kladné hodnoty nemají žádnou vazbu na parametr MaxPerDevice, ale pro zápornou hodnotu je ze zřejmých důvodů 39 nutné, aby byl tento typ atributu uveden v šabloně pouze jednou. Hodnota parametru UniqueNumber může tedy být záporná pouze je-li parametr MaxPerDevice roven jedné. 39 Při větším počtu stejných atributů by nebylo možné zjistit, kterou hodnotu je potřeba zdědit. 35

38 Události (Events) Administrátor jakékoli aplikace si potřebuje udržovat přehled o chování, chybách a změnách, které provoz přináší. Proto byla navržena tabulka pro ukládání jednotlivých informací. Typy jednotlivých událostí mají nastavenu potřebnou důležitost, podle níž bude možno tyto události zobrazovat. Už v počátečních datech je nastaveno 32 výchozích typů událostí, které se v systému dějí. Výpis z databáze lze nalézt v Příloze VI. Každá uložená událost v sobě nese informace o uživateli, který byl právě přihlášen, o IP adrese, ze které se do systému přihlásil a také krátký popis změny. Například při vytvoření záznamu v tabulce se uloží událost daného typu s textovým popisem obsahujícím identifikátor záznamu, případně hodnotu dalšího atributu. Transakce Transakce zaručují, že žádná posloupnost změn v databázi nebude uložena, pokud neproběhne celá a bez chyby. Právě z tohoto důvodu byla ve třídě db zrušena volba automatického potvrzování jednotlivých SQL příkazů 40. Potvrzení i případné odvolání změn se provádí metodou transaction() ve třídě globalclass. Je-li globální proměnná, která zaznamenává počet chyb prázdná, změny se potvrdí a uloží v databázi natrvalo 41. V opačném případě se změny zruší 42 a uživateli se zobrazí zpráva. Webové rozhraní Ačkoli je komunikace s databází prováděná třídami a jejich metodami, aplikace samotná musí komunikovat s uživateli. Proto bylo vytvořeno jednoduché webové rozhraní, pro které bylo třeba napsat 40 Funkce PHP pro ODBC přístup k databázi - odbc_autocommit 41 Funkce PHP pro ODBC přístup k databázi - odbc_commit 42 Funkce PHP pro ODBC přístup k databázi - odbc_rollback 36

39 jednotlivé formuláře pro vkládání a editace objektů. Samotná webová stránka je psána podle standardu XHTML 1.0 Transitional a stylována podle standardu CSS 2.1. Stránka splňuje všechny podmínky konsorcia W3C na validitu obou standardů viz Obr. 3. Obr. 3. Validita stránky Tvorbu formulářů pro úpravu obstarávají skripty ve složce scripts, které začínají symboly edit_. Načítání těchto skriptů a ošetření odeslaných formulářů uskutečňuje skript edit.php, který je umístěn ve stejné složce. Zabezpečení uživatelského vstupu Každý uživatelský vstup musí být v aplikaci kontrolován a upraven, aby se zamezilo záměrnému nebo neúmyslnému poškození. Proto jsou všechna data z formulářových polí, adresy URL a cookies upravována metodou uprav_promenne. Tato metoda, jejímž jediným argumentem je pole proměnných, odstraní všechna zpětná lomítka, která mohla být přidána automatickou funkcí magic_quotes, všechny speciální znaky převede na escape sekvence 43 a odstraní zbylé tagy a nadbytečné mezery. Funkce uprav_promenne počítá i s takovou situací, kdy je prvkem pole další pole. Ta nastává v případě, že je ve formuláři obsaženo více textových polí stejného typu, např. ve formuláři pro přidání nového zařízení. 43 Escape sekvence převádí problematické znaky na sekvence znaků pomocí zpětného lomítka (\). Problematickými znaky mohou být apostrofy, uvozovky, zpětné lomítko apod. 37

40 4.5 Testování Testování během psaní zdrojového kódu Veškeré metody bylo nutné v průběhu programování testovat, aby se zjistily případné chyby a nedostatky. Teprve až daná funkce pracovala podle představ, bylo možné řešit další problém. Pro samotné testování slouží skript test.php, který je nahráván do úvodní stránky index.php. V tomto souboru jsou zapoznámkovány řádky s použitím jednotlivých metod. Vzhledem k tomu, že byly metody postupně dolaďovány a přepisovány, nemusí být každý z řádků aktuální. Protože však tento soubor nepatří do výsledné aplikace, není třeba jej aktualizovat Testování hotové aplikace zkušebními daty Pro zkušební provoz hotové aplikace bylo potřeba zprovoznit webový server. K dispozici jsme dostali diskový prostor na počítači s operačním systémem Linux (distribuce Debian). Stejně jako při instalaci serveru na lokální stanici bylo i zde nutné nainstalovat potřebné aplikace. Zajištění vzdáleného přístupu k diskovému prostoru Aby bylo možno systém serveru nastavovat a spravovat na dálku přes internetovou síť, museli jsme vytvořit ssh klíče 44 pro jednotlivé uživatele a uložit je v kořenovém adresáři systému ve skryté složce 44 SSH neboli Secure Shell je klient/server protokol v síti TCP/IP, který umožňuje bezpečnou komunikaci mezi dvěma počítači pomocí transparentního šifrování přenášených dat. Pracuje na portu TCP/22. Pokrývá tři základní oblasti bezpečné komunikace: autentizaci obou účastníků komunikace, šifrování přenášených dat a integritu dat. SSH klíč slouží jako identifikace uživatele a je navíc chráněn heslem. Ve Windows jej bylo potřeba vygenerovat, k čemuž posloužil program Puttygen (viz 38

41 .ssh/authorized_keys. Díky tomu bylo možné připojit se pomocí ssh protokolu a vzdáleně spouštět příkazy systému. Pro vzdálené připojení jsme použili dva programy, z nichž jeden spouští přímo linuxový shell a druhý funguje na principu správce souborů 45. Těmito programy jsou PuTTY (viz Obr. 4) a WinSCP (viz Obr. 6). Obr. 4 Autentifikace vzdáleného přístupu pomocí programu PuTTY Instalace virtuálního serveru Oproti instalaci v operačním systému Windows, kde bylo nutné stáhnout veškeré aplikace z jejich domovských stránek, byla instalace v systému Linux o něco jednodušší. Tento operační systém instaluje téměř všechny potřebné programy v podobě balíčků (packages). Pro instalaci jednotlivých balíčků slouží příkaz apt-get install, následovaný názvem příslušného balíčku. Touto metodou nainstalujeme potřebné aplikace, jimž odpovídají balíčky apache2, php5, mysql, libmyodbc a phpmyadmin. Podpora verzovacího nástroje Subversion byla obsažena již v samotné distribuci. Po instalaci a nastavení jednotlivých aplikací byly zdrojové kódy zkopírovány do adresáře webového serveru, tedy /var/www/. Odtud je aplikace přístupná všem uživatelům internetu na URL adrese srsw4it.opf.slu.cz/index.php. 45 Jako například aplikace Total Commander pod windows 39

42 Obr. 5 Okno správce souborů WinSCP Zkušební data Teprve na virtuálním serveru bylo možné otestovat aplikaci jako celek. Při lokálním testování vyšly najevo chyby, které byly ihned provedeny a znovu otestovány. Ale funkce, které mohou být vyzkoušeny až při ostrém provozu, se takto vyladit nedaly. Proto byla vytvořena zkušební data, na kterých se testy prováděly. Jeden z nejdůležitějších se týkal dědičnosti hodnot atributů. Protože se jedná o popis zařízení, muselo být nejprve nějaké vloženo. To však nelze bez předchozích dat. Museli být vytvořeni imaginární uživatelé, organizační jednotky, budovy s místnostmi, typy atributů a samozřejmě také šablony. Teprve tehdy mohla být vložena pokusná zařízení. Zkušební data jsou popsána v Příloze IV. 40

43 5 PŘEDÁNÍ DO PROVOZU V současné době vzniká na Slezské univerzitě potřeba vytvářet ucelený soupis veškerých prostředků informačních technologií. Protože stávající stav evidence těchto zařízení nesplňuje kritéria kladená na inventarizační software, bude již na začátku akademického roku 2008/2009 tento stav aktualizován nasazením softwaru SRSW4IT do provozu. 5.1 Nasazení SRSW4IT na Filozoficko-přírodovědecké fakultě Slezské univerzity Ve spolupráci s Bc. Jiřím Sléžkou DiS. bude počátkem září 2008 probíhat implementace inventarizačního softwaru mezi ostatní používané aplikace na této univerzitě. Bude nutné instalovat a nastavit základní parametry systému a naplnit jej informacemi. Většina zařízení, která jsou již dnes evidována, bude možno i s jejich daty uložit do inventarizační databáze. Pro nové objekty bude nutné nejprve vypracovat šablony a typy atributů. Implementace bude probíhat v komunikaci s vývojáři softwaru. 5.2 Propojení s dalšími systémy V době ukončování prací na projektu bylo projednáváno propojení vyvíjeného softwaru zejména se dvěma dalšími systémy. Jeden z nich umožňuje obnovu disků pracovních stanic v učebnách po celé univerzitě. Vyvíjený software by měl být schopen se systémem obnovy komunikovat a sdílet data. Druhým systémem, na nějž by měla být vytvořena vazba je systém Zabbix, který byl popsán výše. Pro účely propojení s tímto systémem se plánuje dopsání modulu pro import a export dat ve formátu XML. Obě tyto vazby jsou prozatím ve fázi plánování. 41

44 5.3 Náměty pro budoucí verze a moduly Mimo modulů pro import a export bude jistě nalezeno několik dalších námětů na vylepšení či tvorbu nových funkcí. Každý z těchto námětů bude možno uvést na stránkách projektu, kde se vývojářský tým bude zabývat jejich relevancí a možností zapracování potřebných úprav do projektu. Již nyní se naskytlo několik vylepšení, která by následující verze mohla obsahovat, například uživatelské rozhraní pro přiřazování oprávnění jednotlivým uživatelským skupinám. Ve zdrojovém kódu jsou pro tento případ nachystány metody, pomocí nichž se samotné přiřazení uskuteční, ale prozatím není tato možnost přístupná přes uživatelské rozhraní. Dále je možno vytvořit tabulky pro zobrazování informací o jednotlivých objektech v databázi. Při vývoji se kladl důraz na vyhledávání zařízení a proto jsou detailní informace ostatních objektů přístupné pouze při jejich editaci. Všechny dodatečné úpravy a změny budou průběžně uváděny na stránkách 42

45 6 ZÁVĚR Na základě požadavků popsaných v úvodu jsem vytvořil inventarizační software s otevřeným zdrojovým kódem a správou přes webové rozhraní. Kromě samotného softwaru byly uvedeny do provozu stránky o projektu obsahující mimo jiné informace o jeho vývoji a všech součástech. Vytvořený inventarizační software je složen z jednotlivých souborů tříd a obslužných skriptů v jazyce PHP, dále ze souborů, tvořících tělo HTML dokumentu webového rozhraní, a kaskádového stylu, který definuje jeho vzhled. Pro pozdější vývoj je v adresářové struktuře nachystána definice typu dokumentu (Document Type Definition) pro import a export typů zařízení pomocí formátu XML. Tabulky v databázi jsem vytvořil na základě navrženého datového modelu. Díky obecnosti tohoto modelu je možné, kromě výchozích objektů (jako jsou organizační jednotky, budovy, místnosti, a ostatní objekty), pro něž existují databázové tabulky, definovat vlastní typy objektů, ukládaných do systému. Je to způsobeno tím, že do tabulky Device se může uložit jakákoli abstraktní či konkrétní entita, která bude v systému vystupovat jako zařízení. Postačí pro ni definovat správné typy atributů a poskládat je do šablony. Všechna uložená zařízení jsou dělena do skupin a přiřazována k organizačním jednotkám. Webové rozhraní inventarizačního systému bylo navrženo tak, aby komunikovalo s uživatelem pomocí HTML formulářů pro ukládání, vyhledávání a editaci jednotlivých objektů a zařízení. Možnost vyhledávání objektů, které v systému nevystupují jako zařízení, je ve zdrojovém kódu podporována, ale pro funkci systému není důležitá a proto pro ni prozatím nebyl vypracován formulář ani obslužný skript. Software byl zabezpečen proti neoprávněnému zneužití. Díky tomu, že uživatelská data vstupující přes formulář do aplikace jsou upravována a problematické znaky jsou převáděny na neškodné, nedají se zneužít SQL dotazy. Zneužít nelze ani proměnné, neboť jsou porovnávány s polem očekávaných hodnot. Pro přístup do aplikace jsou vytvořena uživatelská konta chráněná heslem. 43

46 Vyvíjený software je možno instalovat na serveru s libovolným operačním systémem, na němž pracuje technologie PHP, a díky funkcím ODBC propojit s vybraným systémem řízení báze dat. Tím byl splněn požadavek nezávislosti na použité platformě a databázi. Software byl v průběhu práce testován na lokálním i zkušebním serveru. Veškeré problémy zjištěné při testování byly opraveny. Uvedení do provozu sice může ukázat problémy, které nebylo možno během vývoje a testování podchytit, avšak zdrojový kód je vytvořen tak, aby po pročtení dokumentace nebyla jeho úprava nijak složitá. Jakékoli případné problémy tak mohou být rychle vyřešeny. Vypracovaný software splňuje všechny požadavky uvedené v zadání bakalářské diplomové práce a věřím, že plně uspokojí potřeby Slezské univerzity v oblasti inventarizace prostředků informačních technologií. Přestože je schopen fungovat samostatně, může se stát jádrem daleko většího systému. Do budoucna se totiž plánuje rozšíření jeho funkcí a také jeho propojení s jinými aplikacemi používanými na Slezské univerzitě. 44

47 Seznam použité literatury a zdrojů Použitá literatura: [1] Gutmans A., Bakken S. S., Rethans D.: Mistrovství v PHP vydání. Brno Computer Press, a.s s. [2] Ullman L.: PHP a MySQL - Názorný průvodce tvorbou dynamických WWW stránek. 1. vydání. Brno Computer Press, a.s s. [3] Husseby S. H.: Zranitelný kód. 1. vydání. Brno Computer Press, a.s s. [4] Riordan R. M.: Vytváříme relační databázové aplikace. 1. vydání. Praha Computer Press, a.s s. [5] Staníček P.: CSS Kaskádové styly - Kompletní průvodce. 2. vydání. Brno Computer Press, a.s s. Internetové zdroje [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]

48 7 PŘÍLOHY Příloha I. Soupis tabulek s detailním popisem sloupců Sloupec ID je obsažen v každé tabulce jako jednoznačný identifikátor záznamu a proto je zde vynecháván. Device (zařízení) Name jedinečný název zařízení. Jedinečnost je zde použita kvůli usnadnění hledání v databázi. IDOU cizí klíč z tabulky OU (Organization Unit), označuje organizační jednotku, pod kterou zařízení spadá. IDRoom cizí klíč z tabulky Room (Místnost), označuje umístění zařízení IDDeviceType cizí klíč z tabulky DeviceType, označuje typ zařízení, neboli šablonu. IDParentDevice cizí klíč z tabulky Device (unární vazba), označuje nadřazené zařízení, k němuž toto zařízení patří, respektive jehož je součástí. Může být prázdný. IDPersonMaintenance osoba (její identifikátor) z tabulky User zodpovědná za údržbu a obsluhu zařízení IDOwner osoba, která má za zařízení hmotnou zodpovědnost. Při vložení nového záznamu se do tohoto sloupce uloží uživatel, který zařízení vytvořil. IDUserAdded osoba, která zařízení vložila, nebo též osoba, která přidělila tomuto zařízení vlastníka. IDUserChanged uživatel, který provedl poslední změny v tomto záznamu. DateAdded časové razítko označující datum a čas vytvoření zařízení. DateChanged časové razítko poslední provedené změny. ImgCoordX nepovinný atribut pro případné zaznamenání pozice na mapě nebo obrázku. ImgCoordY nepovinný atribut pro pozici na mapě ImgLayer nepovinný atribut určující vrstvu. DeviceType Name jedinečný název typu zařízení Description textový popis 46

49 AttributeType Name jedinečný název typu atributu Description textový popis s detaily o atributu Type datový typ a povolené hodnoty pro atribut. Možné jsou typy boolean - logická hodnota true nebo false integer - celé číslo string:max:min - textový řetězec, kde celočíselné hodnoty max a min označují maximální a minimální délku řetězce. Maximální délka je omezena na 50 znaků. enum:{h1,h2,...} - množina povolených hodnot h1,h2,... IDConnectorType typ propojení atributu. ConnectorType Name jedinečný název typu propojení Description textový popis MaxConnections počet atributů, které mohou být propojeny ImgColor nepovinný atribut pro případné zaznamenání na mapě nebo obrázku. ImgLineType typ propojovací čáry (solid - plná, dashed - čárkovaná, dotted - tečkovaná, apod.). DeviceTypeAttribute IDDeviceType Cizí klíč označující typ zařízení (šablonu) IDAttributeType Cizí klíč označující typ atributu MaxPerDevice Maximální počet atributů stejného typu pro jedno zařízení s touto šablonou UniqueNumber Parametr určující dědičnost či unikátnost hodnoty atributu. AttributeData Data Hodnota atributu IDAttributeType Typ atributu IDDevice Zařízení, ke kterému atribut patří IDDeviceType Šablona zařízení RankPerDevice Pořadové číslo atributu v zařízení (zejména v případě většího počtu atributů stejného typu DateAdded Datum vložení záznamu do tabulky DateChanged Datum poslední úpravy záznamu IDUserChanged Identifikátor uživatele, který provedl změnu 47

50 Link IDAttributeIn Identifikátor vstupního atributu IDAttributeOut Identifikátor výstupního atributu DeviceGroup Name jedinečný název skupiny zařízení Description textový popis DeviceGroupDevice IDDevice Zařízení přiřazované do skupiny IDDeviceGroup Skupina zařízení User Username Uživatelské jméno Pwd Uživatelské heslo Name Jméno uživatele Surname Příjmení uživatele Mail Kontaktní informace, Jabber Kontaktní informace, Jabber ID Icq Kontaktní informace, ICQ číslo Phone Kontaktní informace,telefonní číslo IDOU Organizační jednotka IDUserGroup Uživatelská skupina UserGroup Name jedinečný název skupiny Description textový popis UserGroupRights IDUserGroup Uživatelská skupina IDRights Identifikátor záznamu v tabulce Rights Rights IDDevice Zařízení, pro nějž platí hodnota oprávnění Value Hodnota oprávnění OU Name Jedinečný název organizační jednotky (tečková syntaxe) Description Textový popis IDLeaderGroup Vedoucí skupina uživatelů 48

51 Building Name Jednoznačný název budovy Description Textový popis Adress Adresa IDContactPerson Identifikátor kontaktní osoby Room Name Jednoznačný název místnosti Description Textový popis Level Poschodí IDBuilding Identifikátor budovy IDContactPerson Identifikátor kontaktní osoby EventType Name Jednoznačný název typu události Description Textový popis Importance Důležitost události Event Date Datum uložení události IDUserLogged Uživatel přihlášený v době uložení UserIP IP adresa přihlášeného uživatele IDEventType Typ události SQLquery Text obsahující pozměněné informace, uživatelské jméno nebo identifikátor zařízení 49

52 Příloha II. Export datového modelu do grafické podoby 50

53 Příloha III. Unikátní indexy Device DeviceType ConnectorType DeviceTypeAttribute AttributeData Link DeviceGroupDevice User UserGroup UserGroupRights Rights (Name) (Name) (ImgColor, ImgLineType) (IDDeviceType, IDAttributeType) (IDDevice, IDDeviceType, IDAttributeType, RankPerDevice) (IDAttributeIn, IDAttributeOut) (IDDevice, IDDeviceGroup) (Username) (Name) (IDUserGroup, IDRights) (IDDevice, Value) 51

54 Příloha IV. Zkušební data pro testování aplikace Organizační jednotky: su Slezská univerzita, nejvyšší útvar fpf.su Filozoficko přírodovědecká fakulta na SU opf.su Obchodně podnikatelská fakulta na SU ui.fpf.su Ústav informatiky na FPF SU Budovy: BN13 Bezručovo náměstí 13, FPF, děkanát BN14 Bezručovo náměstí 14, FPF, ústav ošetřovatelství Místnosti B1 Učebna na BN13 B2 Učebna na BN13 B3 PC učebna na BN13 C10 PC učebna na BN14 Uživatelské skupiny guest Výchozí skupina pro nepřihlášené uživatele admin Výchozí skupina pro správce aplikace zamestnanci Zkušební skupina Typy propojení atributů: Ethernet UDP kabel s konektorem RJ-45 Typy atributů IP adresa Identifikace zařízení v síti MAC adresa Fyzická adresa zařízení CPU Procesor RAM Operační paměť HDD Pevný disk VGA Grafická karta CD/DVD Mechanika, CD/DVD, ROM/RW Operační systém Primární operační systém Operační systém 2 Sekundární operační systém (při dualbootu) Provozní stav Stav zařízení, může nabývat několika definovaných hodnot 52

55 Příloha V. Ukázky výsledku práce programu Doxygen 53

56 Příloha VI. Výpis výchozích typů událostí z databáze 54

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek Prezentace aplikace Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek Osnova Úvod Programovací jazyk - PHP Etapy vývoje Funkce aplikace Co SW umí Na čem se pracuje Vize do budoucna Úvod Úvod Inspirováno

Více

Správa verzí souborů na cvičení

Správa verzí souborů na cvičení Správa verzí souborů na cvičení Úvod do problematiky, metodické pokyny Karel Šimerda Univerzita Pardubice, Fakulta elektrotechniky a informatiky 1. února 2010 Karel Šimerda (KST, FEI) IOOP/INPSW 1. února

Více

1 Webový server, instalace PHP a MySQL 13

1 Webový server, instalace PHP a MySQL 13 Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

1. Webový server, instalace PHP a MySQL 13

1. Webový server, instalace PHP a MySQL 13 Úvod 11 1. Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Databázové aplikace pro internetové prostředí 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Projekt: Inovace výuky prostřednictvím ICT Registrační číslo: CZ.1.07/1.5.00/34.250

Více

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita Aktivní webové stránky Úvod: - statické webové stránky: pevně vytvořený kód HTML uložený na serveru, ke kterému se přistupuje obvykle pomocí protokolu HTTP (HTTPS - zabezpečený). Je možno používat i různé

Více

SCM = Source Code Management software, základní typologie rozdělení je podle počtu a umístění základního úložiště kódu(=repository) na:

SCM = Source Code Management software, základní typologie rozdělení je podle počtu a umístění základního úložiště kódu(=repository) na: Otázka 16 - Y36SI3 Zadání Disciplinované přístupy ke změnám software (SCM). Nástroje pro správu a verzování zdrojového kódu. Řešení konfliktů v nástrojích pro správu zdrojového kódu. Slučování změn (operace

Více

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11 Obsah Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10 Kapitola 1 Než začneme 11 Dynamické vs. statické stránky 11 Co je a k čemu slouží PHP 12 Instalace potřebného softwarového

Více

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě PHP PHP původně znamenalo Personal Home Page a vzniklo v roce 1996, od té doby prošlo velkými změnami a nyní tato zkratka znamená Hypertext Preprocessor. PHP je skriptovací programovací jazyk, určený především

Více

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE WEBOWÉ STRÁNKY TŘÍD KAMIL POPELKA ZÁVĚREČNÁ MATURITNÍ PRÁCE BRNO 2011 Prohlášení Prohlašuji, že maturitní práce je mým původním autorským dílem, které

Více

Vstupní požadavky, doporučení a metodické pokyny

Vstupní požadavky, doporučení a metodické pokyny Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem

Více

Instalace a konfigurace web serveru. WA1 Martin Klíma

Instalace a konfigurace web serveru. WA1 Martin Klíma Instalace a konfigurace web serveru WA1 Martin Klíma Instalace a konfigurace Apache 1. Instalace stáhnout z http://httpd.apache.org/ nebo nějaký balíček předkonfigurovaného apache, např. WinLamp http://sourceforge.net/projects/winlamp/

Více

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek Co je to webová aplikace? příklady virtuální obchodní dům intranetový IS podniku vyhledávací služby aplikace jako každá jiná přístupná

Více

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída: DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP Maturitní projekt Vypracoval: Denis Ptáček Třída: 4B Rok: 2014/2015 Obsah 1. Použité nástroje... 3 1.1 NetBeans

Více

1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4

1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4 CRM SYSTÉM KORMORÁN PŘÍRUČKA ADMINISTRÁTORA Obsah 1 Administrace systému 3 1.1 Uživatelské účty.................................. 3 1.2 Přístupová práva................................. 3 1.3 Moduly.......................................

Více

24 Uživatelské výběry

24 Uživatelské výběry 24 Uživatelské výběry Uživatelský modul Uživatelské výběry slouží k vytváření, správě a následnému používání tématicky seskupených osob a organizací včetně jejich kontaktních údajů. Modul umožňuje hromadnou

Více

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL, Anotace sady: Dynamické internetové stránky, VY_32_INOVACE_PRG_PHP_01 Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL, Stupeň a typ vzdělávání: gymnaziální vzdělávání, 4. ročník

Více

PRODUKTY. Tovek Tools

PRODUKTY. Tovek Tools Analyst Pack je desktopovou aplikací určenou k vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci i s velkým objemem textových dat z různorodých informačních

Více

Microsoft SharePoint Portal Server 2003. Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

Microsoft SharePoint Portal Server 2003. Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR Microsoft SharePoint Portal Server 2003 Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR Přehled Země: Česká republika Odvětví: Velkoobchod Profil zákazníka

Více

RadioBase 3 Databázový subsystém pro správu dat vysílačů plošného pokrytí

RadioBase 3 Databázový subsystém pro správu dat vysílačů plošného pokrytí Databázový subsystém pro správu dat vysílačů plošného pokrytí RadioBase je datový subsystém pro ukládání a správu dat vysílačů plošného pokrytí zejména pro služby analogové a digitální televize a rozhlasu.

Více

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Web Jaroslav Nečas Obsah přednášky Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Co to je web HTTP protokol bezstavový GET POST HEAD Cookies Session HTTPS

Více

PHP tutoriál (základy PHP snadno a rychle)

PHP tutoriál (základy PHP snadno a rychle) PHP tutoriál (základy PHP snadno a rychle) Druhá, vylepšená offline verze. Připravil Štěpán Mátl, http://khamos.wz.cz Chceš se naučit základy PHP? V tom případě si prostuduj tento rychlý průvodce. Nejdříve

Více

8.2 Používání a tvorba databází

8.2 Používání a tvorba databází 8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam

Více

BALISTICKÝ MĚŘICÍ SYSTÉM

BALISTICKÝ MĚŘICÍ SYSTÉM BALISTICKÝ MĚŘICÍ SYSTÉM UŽIVATELSKÁ PŘÍRUČKA Verze 2.3 2007 OBSAH 1. ÚVOD... 5 2. HLAVNÍ OKNO... 6 3. MENU... 7 3.1 Soubor... 7 3.2 Měření...11 3.3 Zařízení...16 3.4 Graf...17 3.5 Pohled...17 1. ÚVOD

Více

MBI - technologická realizace modelu

MBI - technologická realizace modelu MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,

Více

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ SPOLEČNOST DECADIC PROJEKT FRAMETRIX

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ SPOLEČNOST DECADIC PROJEKT FRAMETRIX FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ MANAGEMENT PROJEKTŮ SPOLEČNOST DECADIC PROJEKT FRAMETRIX SPECIFIKACE POŽADAVKŮ AUTOR DOKUMENTU JIŘÍ JANDA BRNO 15. března 2012 Obsah 1 Úvod........................................

Více

Obecná příručka IS o ISVS

Obecná příručka IS o ISVS Obecná příručka IS o ISVS Informační systém o informačních systémech veřejné správy verze 2.02.00 vypracovala společnost ASD Software, s.r.o. dokument ze dne 16. 11. 2016, verze 1.01 Obecná příručka IS

Více

Úvod do aplikací internetu a přehled možností při tvorbě webu

Úvod do aplikací internetu a přehled možností při tvorbě webu CVT6 01a Úvod do aplikací internetu a přehled možností při tvorbě webu Internet a www Internet? Služby www ftp e-mail telnet NetNews konference IM komunikace Chaty Remote Access P2P aplikace Online games

Více

Relační databáze. V dnešní době existuje řada komerčních DBMS, nejznámější jsou:

Relační databáze. V dnešní době existuje řada komerčních DBMS, nejznámější jsou: Relační databáze Pojem databáze, druhy databází Databází se myslí uložiště dat. V době začátků využívání databází byly tyto členěny hlavně hierarchicky, případně síťově (rozšíření hierarchického modelu).

Více

IntraVUE 2.0.3 Co je nového

IntraVUE 2.0.3 Co je nového IntraVUE 2.0.3 Co je nového Michal Tauchman Pantek (CS) s.r.o. Červen 2008 Strana 2/8 Úvod IntraVUE je diagnostický a podpůrný softwarový nástroj pro řešení komunikačních problémů, vizualizaci a dokumentaci

Více

Maturitní projekt do IVT Pavel Doleček

Maturitní projekt do IVT Pavel Doleček Maturitní projekt do IVT Pavel Doleček CO FILMBOOK JE Filmbook je uzavřená webová aplikace pro celkovou správu informací a dat souvisejících se sledováním filmů. Primárně je zaměřen na uchovávání a spravování

Více

Obsah. Úvodem 9. Kapitola 1 Než začneme 11. Kapitola 2 Dynamické zobrazování obsahu 25. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10

Obsah. Úvodem 9. Kapitola 1 Než začneme 11. Kapitola 2 Dynamické zobrazování obsahu 25. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10 Obsah Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10 Kapitola 1 Než začneme 11 Dynamické vs. statické stránky 11 Co je a k čemu slouží PHP 12 Instalace potřebného softwarového

Více

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika

Více

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U P R O G R A M O V É V Y B A V E N Í Studijní obor: 18-20-M/01 Informační technologie Školní

Více

Postupy práce se šablonami IS MPP

Postupy práce se šablonami IS MPP Postupy práce se šablonami IS MPP Modul plánování a přezkoumávání, verze 1.20 vypracovala společnost ASD Software, s.r.o. dokument ze dne 27. 3. 2013, verze 1.01 Postupy práce se šablonami IS MPP Modul

Více

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009 Webové rozhraní pro datové úložiště Obhajoba bakalářské práce Radek Šipka, jaro 2009 Úvod Cílem práce bylo reimplementovat stávající webové rozhraní datového úložiště MU. Obsah prezentace Úložiště nasazené

Více

APS Administrator.OP

APS Administrator.OP APS Administrator.OP Rozšiřující webový modul pro APS Administrator Přehled přítomnosti osob v oblastech a místnostech Instalační a uživatelská příručka 2004 2013,TECH FASS s.r.o., Věštínská 1611/19, Praha,

Více

POPIS TECHNICKÉHO ŘEŠENÍ INFORMAČNÍHO SYSTÉMU PRO SBĚR DAT V PROJEKTU SLEDOVÁNÍ DEKUBITŮ JAKO INDIKÁTORU KVALITY OŠETŘOVATELSKÉ PÉČE NA NÁRODNÍ ÚROVNI

POPIS TECHNICKÉHO ŘEŠENÍ INFORMAČNÍHO SYSTÉMU PRO SBĚR DAT V PROJEKTU SLEDOVÁNÍ DEKUBITŮ JAKO INDIKÁTORU KVALITY OŠETŘOVATELSKÉ PÉČE NA NÁRODNÍ ÚROVNI POPIS TECHNICKÉHO ŘEŠENÍ INFORMAČNÍHO SYSTÉMU PRO SBĚR DAT V PROJEKTU SLEDOVÁNÍ DEKUBITŮ JAKO INDIKÁTORU KVALITY OŠETŘOVATELSKÉ PÉČE NA NÁRODNÍ ÚROVNI Vypracoval Bc. Petr Suchý Dne: 20.1.2009 Obsah Úvod...

Více

Na vybraném serveru vytvoříme MySQL databázi. Soubory scratch.jpa, kickstart.php a en-gb.kickstart.ini nahrajeme na vybraný server.

Na vybraném serveru vytvoříme MySQL databázi. Soubory scratch.jpa, kickstart.php a en-gb.kickstart.ini nahrajeme na vybraný server. 1 Práce se systémem Tento dokument popíše způsob instalace a základy práce se systémem Joomla!, ve kterém je učebnice jazyka Scratch vytvořena. Podrobný návod k systému Joomla! je popsán v dokumentaci

Více

Průzkumník IS DP. Návod k obsluze informačního systému o datových prvcích (IS DP) vypracovala společnost ASD Software, s. r. o.

Průzkumník IS DP. Návod k obsluze informačního systému o datových prvcích (IS DP) vypracovala společnost ASD Software, s. r. o. Průzkumník IS DP Návod k obsluze informačního systému o datových prvcích (IS DP) vypracovala společnost ASD Software, s. r. o. dokument ze dne 13. 09. 2018, verze 1.00 Průzkumník IS DP Návod k obsluze

Více

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá

Více

Nová áplikáce etesty Př í přává PC ž ádátele

Nová áplikáce etesty Př í přává PC ž ádátele Nová áplikáce etesty Př í přává PC ž ádátele Verze 0.6 Datum aktualizace 20. 12. 2014 Obsah 1 Příprava PC žadatele... 2 1.1 Splnění technických požadavků... 2 1.2 Prostředí PC pro žadatele... 2 1.3 Příprava

Více

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro editaci ŽS. Verze 1.

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro editaci ŽS. Verze 1. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM Manuál pro editaci ŽS Verze 1.0 2012 AutoCont CZ a.s. Veškerá práva vyhrazena. Tento dokument

Více

Už ivatelska dokumentace

Už ivatelska dokumentace Už ivatelska dokumentace Aplikace Portál úspěšných projektů je určena k publikování informací o projektech realizovaných za přispění některého z Operačních programů v gesci Ministerstva vnitra České republiky.

Více

E-learningovýsystém Moodle

E-learningovýsystém Moodle E-learningovýsystém Moodle Jan Povolný Název projektu: Věda pro život, život pro vědu Registrační číslo: CZ.1.07/2.3.00/45.0029 Co je to Moodle? - systém pro tvorbu a správu elektronických výukových kurzů

Více

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

PRODUKTY. Tovek Tools

PRODUKTY. Tovek Tools jsou desktopovou aplikací určenou k vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci i s velkým objemem textových dat z různorodých informačních zdrojů.

Více

Olga Rudikova 2. ročník APIN

Olga Rudikova 2. ročník APIN Olga Rudikova 2. ročník APIN Redakční (publikační) systém neboli CMS - content management system (systém pro správu obsahu) je software zajišťující správu dokumentů, nejčastěji webového obsahu. (webová

Více

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz Vývoj moderních technologií při vyhledávání Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz INFORUM 2007: 13. konference o profesionálních informačních zdrojích Praha, 22. - 24.5. 2007 Abstrakt Vzhledem

Více

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK Systém WorkWatch je určen pro malé a střední firmy, které se zabývají službami nebo zakázkovou výrobou. Zajistí dokonalý přehled o všech zakázkách a jejich rozpracovanosti.

Více

Technologické postupy práce s aktovkou IS MPP

Technologické postupy práce s aktovkou IS MPP Technologické postupy práce s aktovkou IS MPP Modul plánování a přezkoumávání, verze 1.20 vypracovala společnost ASD Software, s.r.o. dokument ze dne 27. 3. 2013, verze 1.01 Technologické postupy práce

Více

Specifikace požadavků. POHODA Web Interface. Verze 1.0. Datum: Autor: Ondřej Šrámek

Specifikace požadavků. POHODA Web Interface. Verze 1.0. Datum: Autor: Ondřej Šrámek Specifikace požadavků POHODA Web Interface Verze 1.0 Datum: 29.12. 2008 Autor: Ondřej Šrámek Copyright 1999 by Karl E. Wiegers. Permission is granted to use, modify, and distribute this document. Strana

Více

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena. 2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena. GEOVAP, spol. s r. o. Čechovo nábřeží 1790 530 03 Pardubice Česká republika +420 466 024 618 http://www.geovap.cz V dokumentu použité názvy programových

Více

Hromadná korespondence

Hromadná korespondence Kapitola dvanáctá Hromadná korespondence Učební text Mgr. Radek Hoszowski Hromadná korespondence Hromadná korespondence Představíme si jednoduchý nástroj, který nám může ušetřit velké množství práce. Je

Více

26 Evidence pošty. Popis modulu. Záložka Evidence pošty

26 Evidence pošty. Popis modulu. Záložka Evidence pošty 26 Evidence pošty Uživatelský modul Evidence pošty realizuje podrobnou evidenci všech došlých a odesílaných poštovních zásilek s možností přidělovat tyto zásilky uživatelům informačního systému k vyřízení,

Více

Návod pro práci s aplikací

Návod pro práci s aplikací Návod pro práci s aplikací NASTAVENÍ FAKTURACÍ...1 NASTAVENÍ FAKTURAČNÍCH ÚDA JŮ...1 Texty - doklady...1 Fakturační řady Ostatní volby...1 Logo Razítko dokladu...2 NASTAVENÍ DALŠÍCH ÚDA JŮ (SEZNAMŮ HODNOT)...2

Více

Obrázek 1: Struktura programu z hlediska zapojení

Obrázek 1: Struktura programu z hlediska zapojení MANUÁL K PROGRAMU DBADVOKÁT Program byl vytořený za účelem třídění a uchovávání jednotlivých spisů (elektronické dokumenty [doc, xls, odt, pdf, xml,...], emaily a další důležité soubory) v centralním počítači

Více

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro administrátory. Verze 1.

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro administrátory. Verze 1. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM Manuál pro administrátory Verze 1.0 2012 AutoCont CZ a.s. Veškerá práva vyhrazena. Tento

Více

Střední odborná škola a Střední odborné učiliště, Hořovice

Střední odborná škola a Střední odborné učiliště, Hořovice Kód DUM : VY_32_INOVACE_DYN.1.18 Název materiálu: Anotace Autor Jazyk Očekávaný výstup 18 PHP- Základy práce s databází PHP - MySQL DUM naučí žáky postupu při vytvoření, připojení databáze a vytvoření

Více

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz

Více

MOBILNÍ SKLADNÍK. Příručka k základnímu ovládání. Beta verze popisu produktu Aktualizace dokumentu: z 10

MOBILNÍ SKLADNÍK. Příručka k základnímu ovládání. Beta verze popisu produktu Aktualizace dokumentu: z 10 MOBILNÍ SKLADNÍK Příručka k základnímu ovládání Beta verze popisu produktu Aktualizace dokumentu: 30.01.2017 1 z 10 1 POPIS Mobilní skladník je software od společnosti ABRA Software s.r.o., který je určen

Více

Podpora skriptování v Audacity

Podpora skriptování v Audacity Specifikace softwarového díla & Časový plán implementace pro Podpora skriptování v Audacity Audacity je oblíběný editor zvuku, který ovšem v současné době postrádá možnost automatizovaného vykonávání skriptů.

Více

Databázové a informační systémy Informační systém prodejny nábytku. Jakub Kamrla, KAM087

Databázové a informační systémy Informační systém prodejny nábytku. Jakub Kamrla, KAM087 Databázové a informační systémy Informační systém prodejny nábytku Jakub Kamrla, KAM087 1. část Funkční a nefunkční požadavky 1. K čemu má systém sloužit Jedná se o informační systém pro jednu nejmenovanou

Více

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U P R O G R A M O V É V Y B A V E N Í Studijní obor: 18-20-M/01 Informační technologie Školní

Více

language="javascript">... </script>.

language=javascript>... </script>. WWW (World Wide Web) je dnes společně s elektronickou poštou nejvyužívanější službou internetu. URL (Uniform Resource Locator) slouží ke kompletní adresaci informace na internetu. Udává jak protokol, který

Více

1. Podmínky chodu aplikace

1. Podmínky chodu aplikace 1 / 15 1. Podmínky chodu aplikace Licenční instalace určení pro značku, lokální instalace, nebo síťová licencovaná MAS serverem. 1.1. Instalace podpory MicroCat na lokální stanici Na dané stanici musí

Více

Redakční systém Joomla. Prokop Zelený

Redakční systém Joomla. Prokop Zelený Redakční systém Joomla Prokop Zelený 1 Co jsou to red. systémy? Redakční systémy (anglicky Content Management System - CMS) jsou webové aplikace používané pro snadnou správu obsahu stránek. Hlavním cílem

Více

Aplikace pro srovna ní cen povinne ho ruc ení

Aplikace pro srovna ní cen povinne ho ruc ení Aplikace pro srovna ní cen povinne ho ruc ení Ukázkový přiklad mikroaplikace systému Formcrates 2010 Naucrates s.r.o. Veškerá práva vyhrazena. Vyskočilova 741/3, 140 00 Praha 4 Czech Republic tel.: +420

Více

O projektu Nasazení OpenOffice.org v praxi

O projektu Nasazení OpenOffice.org v praxi O projektu Nasazení OpenOffice.org v praxi Filip Molčan molcanf@openoffice.org Konference EurOpen Hotel Relax, Moninec - 18. 5. 2005 Obsah prezentace Minulost a současnost OpenOffice.org Představení projektu

Více

Informační systém pro e-learning manuál

Informační systém pro e-learning manuál Informační systém pro e-learning manuál Verze 1.00 Úvod Tento dokument popisuje způsob práce s informačním systémem pro elektronické vzdělávání. Systém je určený pro vytvoření elektronického kurzu a jeho

Více

Obsah Úvod 4. TF Wmake 1.5

Obsah Úvod 4. TF Wmake 1.5 Obsah Úvod 4 Struktura systému 5 Uživatelské role 6 Přihlášení do systému 7 Úvodní stránka 8 enu redaktora 9 enu autora 9 azyky 0 Odhlášení ze systému 0 Nastavení Bloky Editace bloku Přidání nového bloku

Více

Příručka nastavení funkcí snímání

Příručka nastavení funkcí snímání Příručka nastavení funkcí snímání WorkCentre M123/M128 WorkCentre Pro 123/128 701P42171_CS 2004. Všechna práva vyhrazena. Uplatňovaná ochrana autorských práv se vztahuje na všechny formy a záležitosti

Více

Athena Uživatelská dokumentace v

Athena Uživatelská dokumentace v Athena Uživatelská dokumentace v. 2.0.0 OBSAH Obsah... 2 Historie dokumentu... 3 Popis systému... 4 Založení uživatele... 5 Přihlášení uživatele... 7 První přihlášení... 8 Založení profilu zadavatele/dodavatele...

Více

Individuální projekt z předmětu webových stránek 2012/2013 - Anketa

Individuální projekt z předmětu webových stránek 2012/2013 - Anketa Individuální projekt z předmětu webových stránek 2012/2013 - Anketa Daniel Beznoskov, 2 IT A Skupina 1 Úvod Prohlášení o autorství Prohlašuji, že jsem individuální projekt z předmětu webových stránek na

Více

Platební systém XPAY [www.xpay.cz]

Platební systém XPAY [www.xpay.cz] Platební systém XPAY [www.xpay.cz] implementace přenosu informace o doručení SMS verze 166 / 1.3.2012 1 Obsah 1 Implementace platebního systému 3 1.1 Nároky platebního systému na klienta 3 1.2 Komunikace

Více

Modul pro PrestaShop 1.7

Modul pro PrestaShop 1.7 Obsah Modul pro PrestaShop 1.7 1 Instalace...2 1.1 Nahrání modulu do PrestaShopu...2 1.2 Komunikační adresy...3 1.3 Nastavení...4 1.4 Stavy objednávek...6 1.5 Jazykové verze...8 1.6 Kontrola funkčnosti...9

Více

9. Sítě MS Windows. Distribuce Windows. Obchodní označení. Jednoduchý OS pro osobní počítače, pouze FAT, základní podpora peer to peer sítí,

9. Sítě MS Windows. Distribuce Windows. Obchodní označení. Jednoduchý OS pro osobní počítače, pouze FAT, základní podpora peer to peer sítí, 9. Sítě MS Windows MS Windows existoval ve 2 vývojových větvích 9x a NT, tyto později byly sloučeny. V současnosti existují aktuální verze Windows XP a Windows 2003 Server. (Očekává se vydání Windows Vista)

Více

Zpravodaj. Uživatelská příručka. Verze

Zpravodaj. Uživatelská příručka. Verze Zpravodaj Uživatelská příručka Verze 02.01.02 1. Úvod... 3 2. Jak číst tuto příručku... 4 3. Funkčnost... 5 3.1. Seznam zpráv... 5 4. Ovládání programu... 6 4.1. Hlavní okno serveru... 6 4.2. Seznam zpráv...

Více

44 Organizace akcí. Popis modulu. Záložka Seznam akcí

44 Organizace akcí. Popis modulu. Záložka Seznam akcí 44 Organizace akcí Modul Organizace akcí slouží k přípravě a plánování různých společenských, sportovních, kulturních, apod. akcí. Tyto akce je možné dále dělit do částí (ve stromové struktuře) a plánovat

Více

Reportní systém MANTIS

Reportní systém MANTIS TD-IS s.r.o. Sladkovského 43 32600 Plzeň verze: 1.9 Reportní systém MANTIS http://mantis.td-is.cz 1. Přístup k aplikaci Aplikace MANTIS je čistě internetová aplikace, z čehož vyplívá, že jediný přístup

Více

Úvod do tvorby internetových aplikací

Úvod do tvorby internetových aplikací CVT6 01a Úvod do tvorby internetových aplikací Osnova předmětu (X)HTML a tvorba webu pomocí přímého zápisu kódu Tvorba web designu a skládání stránek z kousků Skriptovací jazyky na webu Návrh software

Více

Novinky verze 2.3.0 systému Spisové služby (SpS) e-spis LITE

Novinky verze 2.3.0 systému Spisové služby (SpS) e-spis LITE ICZ a.s. Správa a řízení dokumentů Na hřebenech II 1718/10 147 00 Praha 4 Tel.: +420-222 271 111 Fax: +420-222 271 112 Internet: www.i.cz Novinky verze 2.3.0 systému Spisové služby (SpS) e-spis LITE Vypracoval

Více

Obsah. 1.1 Práce se záznamy... 3 1.2 Stránka Dnes... 4. 2.1 Kontakt se zákazníkem... 5

Obsah. 1.1 Práce se záznamy... 3 1.2 Stránka Dnes... 4. 2.1 Kontakt se zákazníkem... 5 CRM SYSTÉM KORMORÁN UŽIVATELSKÁ PŘÍRUČKA Obsah 1 Základní práce se systémem 3 1.1 Práce se záznamy................................. 3 1.2 Stránka Dnes.................................... 4 1.3 Kalendář......................................

Více

17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/

17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/ 17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/ Úvod 1 Úvod Nedávno jsem zveřejnil návod na vytvoření návštěvní knihy bez nutnosti použít databázi. To je výhodné tehdy, kdy na serveru

Více

Uživatelská příručka pro respondenty

Uživatelská příručka pro respondenty Uživatelská příručka pro respondenty Statistický informační systém Českého statistického úřadu Subsystém DANTE WEB Funkční blok Objednavatel: Český statistický úřad Na padesátém 81, 100 82 Praha 10 Dodavatel:

Více

Evidence požadavků uživatelů bytů a nebytových prostor

Evidence požadavků uživatelů bytů a nebytových prostor Evidence požadavků uživatelů bytů a nebytových prostor Úvod Pro zjednodušení a zprůhlednění Vaší komunikace se správní firmou (dále jen SF ), která má na starost objekt, v němž se nachází bytový či nebytový

Více

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná. Průběžná klasifikace Nová verze modulu Klasifikace žáků přináší novinky především v práci s průběžnou klasifikací. Pro zadání průběžné klasifikace ve třídě doposud existovaly 3 funkce Průběžná klasifikace,

Více

CZ.1.07/1.5.00/34.0527

CZ.1.07/1.5.00/34.0527 Projekt: Příjemce: Digitální učební materiály ve škole, registrační číslo projektu CZ.1.07/1.5.00/34.0527 Střední zdravotnická škola a Vyšší odborná škola zdravotnická, Husova 3, 371 60 České Budějovice

Více

PRŮZKUMNÍK ISDP NÁVOD K OBSLUZE INFORMAČNÍHO SYSTÉMU O DATOVÝCH PRVCÍCH (ISDP)

PRŮZKUMNÍK ISDP NÁVOD K OBSLUZE INFORMAČNÍHO SYSTÉMU O DATOVÝCH PRVCÍCH (ISDP) PRŮZKUMNÍK ISDP NÁVOD K OBSLUZE INFORMAČNÍHO SYSTÉMU O DATOVÝCH PRVCÍCH (ISDP) Obsah Úvod...2 Co je ISDP...2 Jaké jsou funkce ISDP...2 Slovník pojmů...2 Dílčí DP...2 DS...2 ISDP...2 JeDP...2 OS...2 SlDP...2

Více

Versiondog 3.1.0 Lukáš Rejfek, Pantek (CS) s.r.o. 7/2014

Versiondog 3.1.0 Lukáš Rejfek, Pantek (CS) s.r.o. 7/2014 Versiondog 3.1.0 Lukáš Rejfek, Pantek (CS) s.r.o. 7/2014 Strana 2 Versiondog 3.1.0 Nová verze systému Versiondog 3.1.0 přináší oproti předchozí verzi 3.0.3 celou řadu nových funkčností. Zásadní změnou

Více

Otevřený katastr (OK)

Otevřený katastr (OK) Otevřený katastr (OK) Karel Jedlička, Jan Ježek, Jiří Petrák smrcek@kma.zcu.cz, h.jezek@centrum.cz, jiripetrak@seznam.cz Západočeská univerzita v Plzni, Fakulta aplikovaných věd, katedra matematiky oddělení

Více

45 Plánovací kalendář

45 Plánovací kalendář 45 Plánovací kalendář Modul Správa majetku slouží ke tvorbě obecných ročních plánů činností organizace. V rámci plánu je třeba definovat oblasti činností, tj. oblasti, ve kterých je možné plánovat. Každá

Více

1. Administrace služby Bezpečný Internet přes webovou aplikaci WebCare GTS

1. Administrace služby Bezpečný Internet přes webovou aplikaci WebCare GTS 1. Administrace služby Bezpečný Internet přes webovou aplikaci WebCare GTS Pro přístup do administrace služby GTS Bezpečný Internet používejte zákaznický WebCare GTS Czech, který je přístupny přes webové

Více

Vzdělávací obsah vyučovacího předmětu

Vzdělávací obsah vyučovacího předmětu V.9.3. Vzdělávací obsah vyučovacího předmětu Vzdělávací oblast: Inormatika a informační a komunikační technologie Vyučovací předmět: Informatika Ročník: 1. ročník + kvinta chápe a používá základní termíny

Více

10 Balíčky, grafické znázornění tříd, základy zapozdření

10 Balíčky, grafické znázornění tříd, základy zapozdření 10 Balíčky, grafické znázornění tříd, základy zapozdření Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům balíčkům, grafickému

Více

APS Web Panel. Rozšiřující webový modul pro APS Administrator. Webové rozhraní pro vybrané funkce programového balíku APS Administrator

APS Web Panel. Rozšiřující webový modul pro APS Administrator. Webové rozhraní pro vybrané funkce programového balíku APS Administrator APS Web Panel Rozšiřující webový modul pro APS Administrator Webové rozhraní pro vybrané funkce programového balíku APS Administrator Instalační a uživatelská příručka 2004 2016,TECH FASS s.r.o., Věštínská

Více

ProjectWise V8 XM Edition

ProjectWise V8 XM Edition . ProjectWise V8 XM Edition ProjectWise V8 XM Edition Evoluční rozšíření, nikoliv revoluce Hlavní témata XM Edition projekty podpora projektového přístupu, šablony projektů workspaces podpora pracovních

Více

Edu-learning pro školy

Edu-learning pro školy Edu-learning pro školy ONLINE VARIANTA Příručka pro instalaci a správu EDU 2000 s.r.o. Počítačové vzdělávání a testování Oldřichova 49 128 00 Praha 2 www.edu2000.cz info@edu2000.cz www.edu-learning.cz

Více

O projektu OpenOffice.org a IBM OS/2 OS/2 a Open Source

O projektu OpenOffice.org a IBM OS/2 OS/2 a Open Source O projektu OpenOffice.org a IBM OS/2 OS/2 a Open Source Filip Molčan molcanf@openoffice.org Konference Warpstock Czech Republic 2005 Liberec - 16. 7. 2005 Obsah prezentace Minulost a současnost OpenOffice.org

Více