Systém evidence knih v obecní

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

Download "Systém evidence knih v obecní"

Transkript

1 Mendelova zemědělská a lesnická univerzita v Brně Provozně ekonomická fakulta Systém evidence knih v obecní knihovně Bakalářská práce Vedoucí práce: Ing. Petr Jedlička, Ph.D Radek Majer Brno 2009

2 Rád bych touto cestou poděkoval Ing. Petru Jedličkovi, Ph.D. za veškerou pomoc, cenné rady a připomínky, které mi poskytl při zpracování bakalářské práce.

3 Prohlašuji, že jsem vyvíjený program, který je cílem bakalářské práce, zpracoval samostatně a bakalářskou práci také samostatně s použitím uvedené literatury a pod odborným vedením Ing. Petra Jedličky, Ph.D. V Brně 14. května

4 4 Abstract Majer, R. System for books account in the council library. Bc. Dissertation. Brno, The dissertation deals with development program for books registration. This work analyzes the current registration of books, identifies the current deficiencies in the way of evidence in the local library. On the basis of this information suggests and implements an appropriate information system, which has implemented functions as log books, readers, books borrowing and archiving, inventory, Web catalog and part of the whole system is also a help. The consequent program can be easily modified for any library (approx volumes). Abstrakt Majer, R. Systém evidence knih v obecní knihovně. Bakalářská práce. Brno, Bakalářská práce se zabývá vývojem programu pro evidenci knih. Práce analyzuje stávající způsob evidence knih, zjišťuje nedostatky současného způsobu evidence v místní knihovně. Na základě těchto informací navrhuje a realizuje vhodný informační systém, který má implemenotovány funkce jako je např. evidence knih, čtenářů, vypůjčky a jejich archivace, inventarizace, webový katalog a součástí celého systému je také nápověda. Výsledný program lze snadno modifikovat pro libovolnou knihovnu (cca svazků).

5 OBSAH 5 Obsah 1 Úvod 8 2 Cíl a metodika práce Cíl práce Metodika práce Současný stav Popis současného způsobu evidence knih Hlavní problémy Návrh řešení 15 5 Volba technologií pro implementaci Programovací jazyk Vývojové prostředí Volba databáze Spring Hibernate Mapování tabulek Ukládání, aktualizace a mazání dat Vyhledávání a načítání dat z databáze Replikace Jasper Reports SwingX Substance HTML a PHP Implementace Zabezpeční aplikace Evidence čtenářů Evidence knih Výpůjčky a jejich archivace Inventarizace Tisk reportů, čárových kódů a čtenářských kartiček Vlastní nastavení aplikace Rezervace knih Synchronice databází Nápověda Webový katalog Závěr 51

6 OBSAH 6 8 Literatura 53 Přílohy 54 A Náhledy aplikace 55 B Elektronické přílohy 59

7 PŘEHLED POUŽITÝCH ZKRATEK 7 Přehled použitých zkratek AOP API AWT BSD DAO DI GPL GUI HQL HTML IDE IoC JDBC JDK JEE JMF JMS JPA JRE JSF LGPL MVC OQL ORM PHP POJO UML SWT Aspect Oriented Programming Application interface Abstract Windowing Toolkit Berkeley Software Distribution Data Access Object Dependency Injection General Public Licence Graphical User Interface Hibernate Query Language HyperText Markup Language Integrated Development Environment Inversion of Control Java Database Connectivity Java Develpoment Kit Java Enterprise Edition Java Media Framework Java Message Service Java Persistence API Java Runtime Environment JavaServer Faces Lesser General Public Licence Model View Controller Object Query Language Object Relational Mapping Hypertext Preprocessor Plain Old Java Object Unified Modeling Language Standard Widget Toolkit

8 1 ÚVOD 8 1 Úvod V současné době se v České republice podle údajů z Evidence knihoven Ministerstva kultury nacházelo knihoven. 1 Podle knihovního zákona č. 257/2001 Sb. byly zrušeny knihovny 2 neposkytující přístup k informacím na internetu. Podle knihovního zákona se knihovnou rozumí zařízení, v němž jsou způsobem zaručujícím rovný přístup všem bez rozdílu poskytovány veřejné knihovnické a informační služby vymezené tímto zákonem, a které je zapsáno v evidenci knihoven. 3 V ČR podle odstavce 1 3 tohoto zákona funguje následující systém knihoven: Národní knihovna České republiky (dále jen Národní knihovna ), Knihovna a tiskárna pro nevidomé K. E. Macana, Moravská zemská knihovna v Brně, zřízené Ministerstvem kultury (dále jen ministerstvo ), krajské knihovny, zřízené příslušným orgánem kraje, základní knihovny, zřízené příslušným orgánem obce, specializované knihovny (např. univerzitní, církevní, lékařské,...). Prvotní myšlenkou pro vytvoření této bakalářské práce, a tedy informačního systému, byl požadavek zastupitelstva obce Kašnice posoudit výhodnost koupě informačního systému pro evidenci knih do místní knihovny. Obec Kašnice se nachází v Jihomoravském kraji v okresu Břeclav a leží na hlavní silnici mezi městy Brno a Hodonín. V této malé obci žije 227 obyvatel a průměrný věk zde dostahuje 39 let. Nenachází se zde škola, pošta ani restaurace, přesto se sem začínají stěhovat hlavně mladí lidé. Tato zařízení jsou dostupná ve vedlejším městě Klobouky u Brna a z obce je snadná dostupnost do větších měst. Z této dostupnosti pramení i nejnižší nezaměstnanost na Břeclavsku, dosahuje něco málo přes pět procent. 4 V obci se nachází malá knihovna pod názvem Místní lidová knihovna Kašnice registrovaná na Ministerstvu kultury České republiky. Jedná se o malou knihovnu s přibližně svazky. Obdobných knihoven je po celé republice několik set a všechny mají stejný problém. Tento problém je nedostatek finančních prostředků na rozvoj služeb poskytovaných těmito organizacemi. Pro tyto potřeby fungují jak dotace ze státního rozpočtu, tak strukturální fondy z EU. Avšak přes náročnou ad- 1 Údaje z Ministerstva kultury (MK ČR) (Ministerstvo kultury ČR, 2008) 2 Podle údajů MK ČR zrušeno 201 knihoven do 1. ledna 2008 (Ministerstvo kultury ČR, 2008) 3 Knihovní zákon č. 257/2001 Sb. (Knihovní zákon, 2003) 4 Břeclavský deník (Ševčík, 2009)

9 1 ÚVOD 9 ministrativu a zdlouhavé vyřizování dotací se může stát, že tak malá knihovna, jako je knihovna v Kašnici, nemusí tyto prostředky získat.

10 2 CÍL A METODIKA PRÁCE 10 2 Cíl a metodika práce 2.1 Cíl práce Cílem této bakalářské práce je usnadnění evidence knih ve vybrané místní knihovně. Po předběžné analýze stavu obecní knihovny byl stanoven cíl vytvořit program, který bude určený pro malé knihovny. Tento cíl se tedy shoduje s cílem bakalářské práce. Program by měl být mnohonásobně levnější než programy od konkurence a to pomocí použití nejmodernějších technologií při tvorbě aplikace. Měl by také výrazně zjednodušit evidenci knih v knihovně, jakož i inventarizaci a sdílení katalogu knih na internetu. Vyvíjený produkt vznikal pod záštitou firmy Effectiva Solutions, s. r. o. na popud obecního zastupitelsta, které chtělo zmodernizovat služby v místní knihovně. Původně se jednalo o posouzení existujícího informačního systému k evidenci knih a čtenářů. Cena tohoto produktu se pohybuje okolo Kč. Existují i varianty, které jsou levnější, ale jsou dostupné pouze on-line. Jedná se o internetové aplikace, které nejsou tak schopné, jako klasické desktopové aplikace, proto nejsou tak oblíbené. Dalším, neméně důležitým cílem, je přilákat nové čtenáře do knihovny. Knihovní systém by měl umožňovat sdílet svůj katalog na internetu pro potřeby čtenářů. Základní podmínkou je, aby aplikace byla nainstalovaná na lokálním počítači a fungovala bez nutnosti nepřetržitého přístupu k internetu (v tzv. offline režimu) a přesto byl webový katalog dostupný pro nahlížení čtenářů. 2.2 Metodika práce Pro splnění výše uvedeného cíle je celé řešení rozděleno do několika etap. Nejprve bude popsáno zjištění současného stavu při evidenci knih a návrh možného zlepšení. Tedy návrh vlastní aplikace, zejména datové části, která bude vycházet ze současného stavu evidence knih a požadavků na nový systém. Po namodelování situace budoucího systému budou zvoleny vhodné technologie, které umožní vytvořit velmi kvalitní aplikaci za použití co nejméně času. Tedy takové technologie, které jsou relativně jednoduché na použití nebo jejich použití je složité, ale přesto budou vést ke zkrácení doby vývoje celé aplikace. Při popisu jednotlivých technologií budou ukázány krátké ukázky zdrojového kódu pro použití této technologie nebo její části. Po zvolení těchto technologií bude program vytvořen ve zvoleném programovacím jazyce a s použitím daných techno-

11 2 CÍL A METODIKA PRÁCE 11 logií. Následně pak bude program popsán z pohledu implementačního a funkčního. Na závěr bude zhodnoceno, zda bylo dosaženo požadovaného výsledku, popřípadě v jaké míře jej bylo dosaženo.

12 3 SOUČASNÝ STAV 12 3 Současný stav 3.1 Popis současného způsobu evidence knih Nyní se knihy evidují pomoci tzv. kartičkového systému. Každá kniha v knihovně má vlastní kartičku, na které je uvedeno její název, autor, rok vydání a další. Dále se na ni vypisuje datum vypůjčení, datum vrácení a jméno čtenáře, který si knihu vypůjčil. Každý čtenář má svoji složku, do které se vkládají při vypůjčení kartičky z knihy, vyplní se údaje o vypůjčení a při vrácení se kartička vrátí zpět do knihy a vyplní se údaje příslušné údaje o vrácení. Následující systémový diagram popisuje současný stav evidence knih. V případě vypůjčování knihy si čtenář vybere knihu, kterou si chce vypůjčit a následně zaměstnanec knihovny provede zápis o vypůjčení do výpůjčního protokolu. Jakmile čtenář vrací knihu, pak zaměstnanec opět zapíše záznam do výpůjčního protokolu o vrácení knihy. Systém evidence knih zůstane takřka identický, dojde pouze k odstranění fyzického zápisu evidence knih do automatizovaného informačního systému.

13 3 SOUČASNÝ STAV 13 Obr. 1: Systémový diagram V knihovně se nachází starší počítač (HDD 8 GB, RAM 128 MB, CPU Celeron MHz) a je na něm nainstalovaný operační systém Microsoft Windows XP Professional, dále je k němu připojena barevná inkoustová tiskárna. Čtenáři mohou tento počítač využívat k prohlížení internetu, tisku dokumentů nebo jen učení práce s počítačem. Počítač je připojen k internetu technologií WI-FI o rychlosti pohybující se kolem 6 Mb/s. Toto připojení je sdílené s počítačem obecní úřadu obce Kašnice. Knihovna má možnost využít laserovou tiskárnu, která je umístěna na obecním úřadě, který se nachází hned vedle knihovny. V současnosti tento počítač je relativně nevyužit, protože slouží čtenářům knihovny k prohlížení internetu, psaní dopisů, tisku atd. Tuto službu čtenáři moc nevyužívají a to hlavně z důvodu, že mají internet doma, nebo o počítače nemají vůbec zájem. Jelikož knihovna nemá dostatek finančních prostředků na nákup nové výpočetní techniky, tak by aplikace měla fungovat na tomtéž počítači. 3.2 Hlavní problémy Největším problémem je zdlouhavé vyřizování vypůjčení a vracení knih. Při současném způsobu evidence knih dochází i k určitým nesrovnalostem, kdy si čtenář knihu vypůjčil, mezi tím ji vrátil, ale do knihy nebyla vrácena kartička ze čtenářovy složky,

14 3 SOUČASNÝ STAV 14 a se může zdát, že ji čtenář ještě nevrátil a je po něm požadována. Velkým problémem také je inventarizace knih, která se provádí jednou za pět let. I když knihovna obsahuje necelých svazků knih, inventarizace zabere několik dnů a může se stát, že i přesto nebude stoprocentní. Dalším problém je absence on-line katalogu knihovny. Tato absence je také částečným důvodem, proč do knihovny chodí nízký počet občanů. Občané si ani nejsou vědomi, jestli daná kniha se v knihovně nachází, a proto chodí do větší knihovny, kde si mohou ověřit dostupnost knihy.

15 4 NÁVRH ŘEŠENÍ 15 4 Návrh řešení Aplikace by měla být rozdělena na dvě části. Hlavní aplikace by měla mít podobu klasické desktopové aplikace, měla by být jednoduchá na ovládání a uživatelsky přívětivá, dále by měla být nezávislá na dostupnosti internetu (měla by mít schopnost práce v tzv. offline režimu). Jednou z hlavních podmínek je, aby bylo možné spustit aplikaci na počítači, který se již v knihovně nachází, bez větších nákladů. Stěžejní funkce programu jsou evidence knih, čtenářů, aktuálních výpůjček a archivace výpůjček. Další z hlavních vlastností je možnost sdílení katalogu knih na internetu bez nutnosti vlastnit server a veřejnou vlastní IP adresu. Součástí evidence čtenářů je tisk čtenářských kartiček a čárových kódů. Čárové kódy budou rovněž použity pro evidenci knih. Aplikace bude knihy identifikovat pomocí čtečky čárových kódů. Nedílnou součástí evidence knih je jejich inventarizace a následné reportování výsledků. Reporty bude možné tisknout pro kteroukoliv tabulku po filtraci nebo seřazení. Součástí programu by měla být podrobná nápověda, která pomůže pracovníkovi knihovny vyřešit všechny běžné problémy s evidencí knih. S použitím všech těchto technologií dojde ke zjednodušení a tím následné zrychlení práce. Webová část aplikace sloužící pro čtenáře by měla být umístěna na internetu jako webový katalog, aby čtenáři měli on-line přístup k informacím o dostupných knihách v knihovně. Aplikace by čtenáři měla umožnit on-line listovat katalogem. Webový katalog by měl pracovat s jinou databází, než hlavní aplikace, přičemž by obě databáze měly pracovat se stejnými daty. Internetová databáze by měla zároveň sloužit jako záloha dat v případě, že by došlo k poškození lokální databáze. Následující UML diagram tříd popisuje atributy a metody jednotlivých objektů v informačním systému knihovny a vztahy mezi jednotlivými objekty. Jedná se o návrh základní struktury programu vyjádřený v podobě objektů. Z tohoto diagramu bude vycházet i ERD diagram, který bude představovat uložení dat do databáze.

16 Obr. 2: UML diagram - Diagram tříd 4 NÁVRH ŘEŠENÍ 16

17 4 NÁVRH ŘEŠENÍ 17 Celý systém bude složen ze sedmi tabulek, z toho jedna zůstává relativně nevyužita. Jedná se o tabulku rezervace a to z toho důvodu, že zatím nebyl požadavek na rezervování knih čtenáři přes internet. Hlavní aplikace s tabulkou při vypůjčování knih kontroluje, zda je kniha rezervována či nikoliv. Pokud je kniha rezervována, pak se ještě provádí kontrola, jestli je rezervována pro čtenáře, který si knihu právě půjčuje. Internetová část systému zatím s tabulkou nepracuje, tj. neukládají se do ní požadavky na rezervaci od čtenářů. Pokud nastane požadavek knihovny na rezervace přes internet, bude zbývat přepsat webovou část systému bez nutnosti zasahovat do desktopové aplikace. Data z tabulky Rezervace a Vypujcky budou z databáze vymazávána. V těchto tabulkách by bylo zbytečné uchovávat staré záznamy. Například v tabulce Vypujcky by za několik let bylo velké množství záznamů a postupně by se aplikace při vypůjčování knih zpomalovala. Proto je navržena druhá tabulka VypujckyArchiv, do které se budou ukládat všechny výpůjčky a je možné nad nimi v případě potřeby vyhledávat. V ostatních tabulkách se mazání dat nebude provádět. K vytvoření dojmu vymazání záznamu v každé takové tabulce bude sloužit atribut viditelnost, který bude boolenovského typu. V případě, že bude položka vymazána, pak bude tento atribut nastaven na hodnotu false. Data není vhodné mazat z důvodu návaznosti jednotlivých tabulek na sebe. Pokud bychom chtěli vymazat pracovníka knihovny, pak bychom museli použít kaskádové mazání a vymazali bychom všechny informace, které zaměstnanec s příslušným ID provedl. Z toho důvodu dojde pouze k relativnímu vymazání položky a přitom nedojde k narušení integrity databáze. Tabulka Ctenari slouží pro evidenci čtenářů a bude mít celkem 14 atributů. Mezi nejdůležitější patří ID, které jednoznačně identifikuje čtenáře a má datový typ INTEGER (bude se jednat o primární klíč tabulky). Dalším jednoznačným identifikátorem je CID, je datového typu VARCHAR a jedná se o unikátní klíč. Hlavní rozdíl mezi CID a ID je ten, že CID bude složen ze dvou složek první z nich je písmeno C (označení čtenáře) a dalších devět čísel. Dále obsahuje atributy pro jméno, příjmení, heslo (pro on-line rezervaci knih) a další. Tabulka pro knihy bude rozdělena na dvě části a to na Objekty a Vytisky. Je to z důvodu redundance dat v databázi. Tabulka Objekty v sobě obsahuje ty atributy, které mají knihy společné (pokud máme dvě knihy stejné knihy s názvem např. Umění klamu, pak mají stejný název, autora, nakladatele, ale stejné už nemají jejich OID - unikátní klíč, místo umístění v knihovně, informace o jejich stavu, inventarizaci,...). OID bude opět složeno ze dvou složek a to z písmene O (definuje objekt - může to být kniha, časopis,...) a devíti čísel.

18 4 NÁVRH ŘEŠENÍ 18 Propojení tabulky Ctenari a Vytisky je z důvodu výměnného fondu. Knihovny si mezi sebou mohou navzájem půjčovat knih a tak jedna působí v roli knihovny a druhá v roli čtenáře. Pokud čtenář obsahuje atribut výměnný fond, pak v tomto atributu bude uveden název knihovny a ve jméně a příjmení bude uvedena odpovědná osoba, která nám knihy zapůjčila. Pokud máme knihu v invenáři z výměnného fondu, pak v tabulce Vytisky v atributu vymennyfond uvedeno ID z tabulky Ctenari, který je veden jako výměnný fond. Pokud tedy chceme zjistit, které knihy máme zapůjčeny od dané knihovny, je možné ji pak jednoduše vyfiltrovat. Důvod proč nevyužít CID nebo OID jako primární klíč je ten, že se jedná o datový typ VARCHAR a porovnávání tohoto typu trvá déle, než porovnávání datového typu INTEGER. Tabulka Uzivatele v sobě bude uchovávat informace o zaměstnancích v knihovně. Jim je přiřazeno přihlašovací jméno (automaticky transformuje jejich příjmení na malé znaky bez diakritiky) a heslo. Další tabulkou kde se informace budou mazat, je tabulka Vypujcky. Po vypůjčení a následném vrácení knihy jsou data přesunuty z této tabulky do tabulky VypujckyArchiv. V tabulce Vypujcky jsou atributy ID, Datum, Uzivatel, Vytisk a Ctenar. Tyto atributy nám umožní identifikovat kdy si který čtenář danou knihu zapůjčil. V tabulce VypujckyArchiv ještě přibyl navíc atribut DatumVraceni, do kterého je uloženo datum o vrácení knihy. Všechny časové atributy budou ukládány do časového datového typu podle příslušné databáze většinou DATETIME. Číselné hodnoty jsou ukládádny do datového typu INTEGER (NUMBER) a řetězcové znaky do datového typu VARCHAR (VARCHAR2). Všechny datové typ jsou voleny automaticky podle příslušné databáze. Následující ERD diagram znázorňuje tabulky, atributy a vazby mezi nimi.

19 4 NÁVRH ŘEŠENÍ 19 Obr. 3: ERD diagram

20 5 VOLBA TECHNOLOGIÍ PRO IMPLEMENTACI 20 5 Volba technologií pro implementaci Pro tvorbu aplikace byly vybírány technologie spadající do kategorie JEE (Java Enterprise Editon). Označení JEE je velmi široký pojem a může být i trochu matoucí. Neznamená to, že tyto technologie jsou určeny pouze pro obrovské projekty. Tyto technologie velmi zjednodušují práci a zkracují až několikanásobně dobu vývoje celé aplikace. Příkladem může být Jasper Reports (technologie pro reportování dokumentů). Šablonu pro report je možné vytvořit během několika minut. Výsledek vypadá velmi profesionálně a navíc je možné výsledný report uložit do několika formátů. Pokud bychom chtěli reportovat výsledky byť jen do jednoho typu souboru, zabralo by nám to minimálně několik hodin a následný report by nebyl zdaleka v takové kvalitě. 5.1 Programovací jazyk V dnešní době se téměř vše vyjadřuje objektově. Využití objektů v programování je velmi velkým zjednodušením a to díky použití dědičnosti, asociace a polymorfismu. Proto byl zvolen objektově orientovaný jazyk Java, který má hlavní výhodu např. proti.netu tu, že se jedná o multiplatformní aplikaci. To znamená, že může běžet na systému s operačním systémem Windows, Linux nebo MacOS. Jedinou podmínkou je, že na daném systému musí být nainstalovaný balíček JRE, který slouží jako virtuální stroj, na kterém se aplikace spouští. Dnes na většině počítačů již JRE nainstalované je, protože například pro přístup k internetovému bankovnictví se používají applety, které jsou napsané v Javě a přístup ke svému účtu bychom bez JRE neměli. Platforma Java má tři velké výhody oproti ostatním objektově orientovaným programovacím jazykům. První z nich je možnost komerčního využití knihoven třetích stran, které velmi významně zjednodušují vývoj aplikací. Další z nich je možnost výběru z několika vývojových prostředí, ne všechna jsou však zdarma. Aplikace vyvíjené v programovacím jazyku Java mohou být vyvíjeny v jakémkoliv operačním systému, za podmínky, že je na něm nainstalované JDK. JDK obsahuje základní nástroje pro vývoj aplikací v Javě. JDK obsahuje: JRE, překladač do bytekódu (javac), debugger pro hledání chyb a ladění programu (jdb),

21 5 VOLBA TECHNOLOGIÍ PRO IMPLEMENTACI 21 javadoc pro generování vývojářské dokumentace (javadoc), nástroj pro tvorbu JAR balíčků (jar), nástroj pro spouštění a ladění appletů bez webového prohlížeče (appletviewer). Proto jsou náklady pro programátora na vývoj nulové. Nevýhodou Javy je její rychlost. V současnosti je nevhodná pro aplikace pracující v reálném čase. Java je oproti jazyku C několikanásobně pomalejší. Toto by se mělo změnit v roce 2010, kdy společnost Sun Microsystems by měla pro Java 7 uvolnit nový Garbage Collector (označovaný G1) a ten slibuje přiblížení rychlosti Javy k aplikacím real-time. 5.2 Vývojové prostředí IDE (Integrated development environment) je zkratka pro vývojové prostředí. Každé IDE je většinou zaměřené na jeden programovací jazyk. Výběr IDE není jednoduchý. Existují dva hlavní kandidáti a to jsou Netbeans a Eclipse. Obě IDE podporují verzovací systém SVN, Maven a další. Tyto IDE jsou na stejné úrovni, a proto jen záleží na volbě programátora, které IDE je mu příjemnější na práci. Vývojové prostředí Netbeans má jednu malou výhodu a to tu, že ho vyvíjí společnost Sun Microsystems, která je také největším distributorem JRE, a proto bylo zvoleno toto IDE. Netbeans je vydáváno jako open-source projekt, za kterým stojí velká komunita vývojářů. Celé Netbeans jsou napsány v programovacím jazyce Java a lze spustit na libovolném operačním systému (jde o multiplatformní aplikaci), na kterém je nainstalované JDK (Windows, Linux, Mac a Solaris). V současnosti je verze Netbeans ve verzi 6.5.1, která umožňuje programovat v programovacích jazycích Java, C/C++, Ruby, Python a nově i v PHP. Další výhodou Netbeans je, že po nainstalování pluginu se celé IDE nemusí restartovávat, to v ostatních IDE není možné. 5.3 Volba databáze Mezi použitelné databáze je možné uvažovat nad třemi databázemi. Všechny tři podporují kódování UTF-8. První z nich je databáze MySQL. Jedná se o velmi rychlou multiplatformní databázi, ale má také své nevýhody, pokud není MySQL databáze nainstalována pod utf czech cs, pak je nutné nastavit collate pro schéma, tabulku i sloupce. Mezi hlavní nevýhodu databáze MySQL je změna licenece z LGPL na GPL. Licence GPL je velmi striktní a při jejím použití celá aplikace musí být vydána pod licencí

22 5 VOLBA TECHNOLOGIÍ PRO IMPLEMENTACI 22 GPL. Jinak je možné si zakoupit komerční licenci. U této databáze se kódování nastavuje jak pro schéma, tabulku tak i pro sloupec. To může být někdy výhodné, pokud máme databázi nastavenou na jiné kódování, než požadujeme, pak budeme mít problémy s kódováním českých znaků. Druhou možností je zvolení databáze PostgreSQL, je to také multiplatformní aplikace, ale je o něco pomalejší než databáze MySQL. Databáze má konstatní výkon, takže při větším množství dat má přibližně stejnou dobu odezvy jako u malého množství dat. Velkou výhodou databáze PostgreSQL je její licence. Je vydána pod licencí BSD, která je velmi svobodná a ve volném překladu říká: Vezmi si, co chceš a dělej si s tím, co chceš. Třetí možností je použití databáze Apache Derby. Jde také o multiplatformní databázi, která je vydána pod licencí Apache License, Version 2.0. Tato licence nevynucuje redistribuci kódů pod stejnou licencí, jen musíme do kódu uvádět, které soubory byly použity pod touto licencí. Mezi velkou výhodu této databáze je, že se instaluje úplně automaticky a uživatel o ní ani neví. Je velmi nenáročná na paměť a místo na disku. Má ovšem jednu velkou nevýhodu a to je praktická nemožnost její zprávcování. Přístup do databáze je pouze přes vlastní rozhraní, které si v aplikaci napíšeme nebo z IDE např. Netbeans. Byla zvolena tato databáze a to hlavně z důvodu její jednoduchosti instalace (instaluje se zcela automaticky). Rozhraní pro přístup k datům není vůbec důležité, někdy může být i nevhodné. Příkladem může být, že bychom ručně přidali nějaké záznamy do databáze, ale zapomněli bychom zvýšit poslední použité ID. Při zápisu dat z aplikace by následně docházelo ke kolizím. 5.4 Spring Tato technologie spadá do kategorie JEE, jedná se o moderní technologii, která je zaměřena pro tvorbu webových aplikací. Tuto technologii je možné použít takřka ve všech typech aplikací včetně klasických (desktopových) aplikací. Tento framework podporuje všechny vrstvy aplikace: perzistenční vrstva, datová vrstva, aplikační vrstva, prezentační vrstva, vrstva webových služeb.

23 5 VOLBA TECHNOLOGIÍ PRO IMPLEMENTACI 23 Spring je zprostředkovatel technologií (integruje ostatní nástroje) mezi použitými technologiemi a vlastní aplikací. Jedná se o JSF, JPA, JMF, JDBC, Hibernate a další. Další funkcí Springu je poskytování služeb jako je konfigurace, AOP, remoting, transakce, nastavení rozesílání ů a další. Konfiguraci Springu je možné provést čtyřmi způsoby: XML - Konfigurace pomocí XML souboru má jednu velkou výhodu. Tou je, že celá konfigurace je vždy uložena na jednom místě. Použití XML souborů pro konfigurací Springu je povinné vždy i v případě kdy jej nechceme používat, protože v souboru musíme alespoň říct, jak Spring budeme konfigurovat. Properties - Použití properties souborů se v dnes již moc nepoužívá. Pokud je tato konfigurace použita, pak z toho důvodu, že je v ní uloženo připojení k databázi a podobné nastavení, které se často mění a to z důvodu, že ne vždy aplikaci nasazuje programátor. Ten, co aplikaci nasazuje, by musel zkontrolovat někdy i značné množství zdrojového kódu, než by našel požadované nastavení. Proto je možné takové nastavení oddělit do těchto souborů. Anotace - Použití anotací je moderní způsob konfigurace. Její malou nevýhodou je, že konfigurace celého Springu je na několika místech. Konfigurace pomocí Javy - Jde o nestandardní část Spring frameworku a v současné době se již moc nevyvíjí. Tento způsob se doporučuje použít tehdy, pokud je potřeba za běhu aplikace měnit konfiguraci Springu. Spring se skládá z šesti částí (modulů). Základním modulem, který je nutné vždy použít je Core modul. Pak obsahuje dalších pět volitelných modulů - DAO, ORM, AOP, JEE a Web. Core Je nejdůležitější částí Springu a musí být implementovaný vždy, pokud chceme použít nějaký modul Springu. Obsahuje vlastní třídu implementující BeanFactory, která umožňuje vyhledávání objektů podle jmen a následné řízení vztahů. Core modul obsahuje IoC (někdy označovaný jako DI kontejner), který představuje aplikační kontext Springu. Tento kontejner se stará o třídy, které jsou managované Springem. Nemanagementované třídy vznikají na základě volání jejich konstruktoru. AOP Je zkratka z aspektově orientovaného programování. Tato metoda programování je nadstavbou nad objektově orientovaným programováním (AOP doplňuje OOP). Používá se u opakujících částí kódu, které jsou většinou skoro stejné.

24 5 VOLBA TECHNOLOGIÍ PRO IMPLEMENTACI 24 Možnosti použití jsou zejména u otevírání, zavírání transakcí, autorizaci, logování a mnohému dalšímu. Opět máme možnost použít konfiguraci pomocí anotací nebo XML souborů. AOP programování je možné použít pouze na objekty vytvořené Springem, v případě objektů nevytvořených ve Springu nebude automatické volání metod fungovat. DAO Velmi důležitou částí Springu je vrstva DAO, která umožňuje přístup k datům. Tento modul umožňuje jednoduché použití transakcí v aplikaci, ty můžeme ovládat programově nebo deklarativně. Operace, které jsou prováděny pomocí transakcí, musí používat jedno připojení do databáze (jinak by transakce nebylo možné realizovat). Od takovýchto věcí nás odděluje Spring, který si to řeší sám (podobné je to s otevíráním a uzavíráním spojení). Nevýhody použití klasického JDBC API jsou následující: nutné napsat velké množství zdrojového kódu, nepřehlednost, odchytávání velkého množství výjimek, vzniká pouze jediná výjimka - SQLException. ORM Spring podporuje objektově-relační mapování databází. V současnosti jsou relační databáze nejrozšířenějšími databázemi, ale struktura releční databáze je odlišná od struktury objektové. Proto je nutné namapovat objekty do databáze. Spring sám nemá žádný ORM nástroj pro mapování, ale podporuje nástroje třetích stran. Nejpopulárnějším mapovacím nástrojem je Hibernate, ale existují i další nástroje např. ibatis. Hibernate si generuje vlastní SQL dotazy pro každou databázi, takže je ho možné použít takřka beze změn pro jakoukoliv databázi (je v něm možné psát i klasické SQL dotazy). ibatis je nutné téměř vše psát ručně, což má své výhody i nevýhody. JEE Tato technologie umožňuje například jednoduší tvorbu a příjem ů než v klasickém Java Mail API včetně správného zobrazování českých znaků, kde lze jednoduše nadefinovat požadované kódování. Lze také k těmto ům jednoduše přikládat soubory jako přílohy. JEE obsahuje JMS, které slouží pro příjem, zpracování vlastních zpráv. Tato technologie je založená na síti peer-topeer. WEB Jedna z nejdůležitějších částí Sprigu je modul Web. Spring se nejvíce používá

25 5 VOLBA TECHNOLOGIÍ PRO IMPLEMENTACI 25 pro tvorbu webových aplikací. Obsahuje MVC rámec (např. Struts) pro vývoj webových aplikací. Jedná se o softwarovou architekturu, která aplikaci rozděluje do tří komponent: datový model, řídící logika aplikace, uživatelské rozhraní. Spring umožňuje intgeraci prezentační technologií jako např. reportovací nástroj JasperReports, Velocity, PDF, Excel. Dále obsahuje JSF, což je prostředí pro vývoj webových rozhraní. Hlavní výhodou JSF je odstínění programátora od tvorby grafiky a odstínění grafika od programování. Podobně je to s frameworkem FreeMarker. 5.5 Hibernate Hibernate slouží jako rozhraní mezi vlastní aplikací a databází. Je vydáván pod licencí LGPL, kde můžeme knihovnu Hibernatu a výsledný produkt můžeme vydávat pod libovolnou licencí. Hibernate zajišťuje persistenci dat. Vlastnosti persistence: více uživatelů má v jednu chvíli přístup ke stejným datům, více uživatelů může v jednu chvíli s daty pracovat - modifikovat je a to bez poškození integrity dat. To zajišťuje transakční přístup, snadná přenositelnost programů na jiná datová úložiště. Hibernate je plně objektový jazyk (vychází z jazyka OQL - Object Query Language) a umožňuje využití vlastností objektů jako jsou dědičnost, asociace a polymorfismus. Hibernate používá vlastní jazyk HQL, který je nadstavbou nad jazykem OQL. HQL vychází ze syntaxe SQL jazyka pro danou databázi. Jedná se o velmi univerzální nástroj, který může pracovat až z 25 různými databázemi v různých verzích. Primárně je Hibernate testován pro databázi Microsoft SQL Server Dále podporuje databáze Oracle, MySQL, PostgreSQL, Apache Derby, Microsoft Access a mnohé další. Napojení na určitou databázi je velmi jednoduché. Stačí k tomu ovladač dané databáze, který je typu JAR souboru a přiloží se k projektu. Poté jen stačí upravit několik řádků v nastavení Springu připojení k databázi. Tato technologie byla vybrána pro svou univerzálnost, jednoduchost nastavení a bez nutnosti psaní SQL dotazů, které jsou většinou použitelné jen pro jednu databázi (v různých databázích se SQL dotazy v detailech liší). Obecně je známo, že Hibernate je o trochu pomalejší při složitých dotazech oproti SQL dotazům. Po-

26 5 VOLBA TECHNOLOGIÍ PRO IMPLEMENTACI 26 kud tedy potřebujeme velmi výkonnou aplikaci, pak si kdykoliv můžeme složité SQL dotazy napsat sami Mapování tabulek Pro namapování tabulek z objektů máme více možností. Tou jednodušší je, že třídu, kterou chceme namapovat jako tabulku, označíme anotací a pak dalšími anotacemi označíme jednotlivé proměnné. Následující zjednodušená třída Uzivatele obsahuje proměnné ID a Jmeno. Označení třídy se provádí a uvedením jejího názvu. Podobné je to s označením atributů, kde se a název atributu. Při refaktoringu kódu je velkou výhodou pro programátora umístění kódu na jednom místě. /** * table="uzivatele" */ public class Uzivatele { /** * generator-class="sequence" * column="id" */ private integer id; } /** * column="jmeno" */ private String jmeno; Druhou možností k mapování je použití XML souborů. Soubor se musí jmenovat stejně jako mapovaná třída, v našem případě Uzivatele.hbm.xml. XML soubor musí povinně obsahovat hlavičku XML dokumentu a poté již definujeme vlastní mapování. <?xml version="1.0" encoding="utf-8"?>

27 5 VOLBA TECHNOLOGIÍ PRO IMPLEMENTACI 27 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" " <hibernate-mapping> <class name="cz.effectiva.ukazka.bo.uzivatele" table="uzivatele"> <id name="id" column="id" type="java.lang.long"> <generator class="native"> <param name="sequence">id_uzivatele</param> </generator> </id> <property name="jmeno"/> </class> </hibernate-mapping> Obecně lze říci, že pro menší třídy je lepší použítí anotací, vše je na jednom místě a je přehledné. Ale pokud budeme mít na mapování rozsáhlou třídu, je výhodnější použít mapování pomocí hbm.xml souborů. Velkou výhodou Hibernatu je, že se nemusíme starat o datové typy, která databáze podporuje. Hibernate si totiž mapuje proměnné z výchozího nastavení podle sebe, toto je velké usnadnění pro programátora. Pokud však z nějakého důvodu potřebujeme změnit datový typ, je to možné pomocí použití klíčového slova type a uvedením požadovaného typu. Pro definování vlastností atributů se používají následující položky (property): name - jméno proměnné, column - určuje výsledný název sloupce, ve výchozím nastavení se jméno sloupce určuje ze jména proměnné, type - typ sloupce v databázích. Hibernate sám určuje výsledný datový typ. Použití type se doporučuje, jen pokud je to nezbytně nutné, lazy - určuje typ načítání dat. Pokud je hodnota nastavena na false, pak při dotazu do databáze se nám stahují celé objekty nebo listy. Pokud však je hodnota nastavena na true, pak se záznamy načítají až v době, kdy jsou skutečně potřeba. Velkou výhodou je, že se nepřenáší zbytečně velké množství dat, ale jen skutečně požadované záznamy. Nevýhodou naopak je, že pokud požadujeme

28 5 VOLBA TECHNOLOGIÍ PRO IMPLEMENTACI 28 data ze zděděné třídy, musíme je znovu načíst a to vede k většímu počtu dotazů do databáze, unique - říká databázi, jestli je daný sloupec unikátní nebo ne. To znamená, že v daném sloupci se daná hodnota může vyskytnout pouze jedenkrát, not-null - pokud je hodnota nastavena na true, tak při vkládání dat nebo jejich editaci tato položka musí být vyplněna (musí obsahovat nějakou hodnotu). Mapování zděděných objektů Pokud jeden objekt obsahuje další objekt, pak se pro mapování objektu do databáze používá vazby many-to-one, která nám umožní namapovat objekty a pak při načtení s nimi jako s objekty pracovat. <many-to-one name="ctenar" class="cz.effectiva.ukazka.bo.ctenar"/> Mapování je velmi jednoduché. Je nutné pouze zadat typ vazby, jméno proměnné ze třídy Java a pak cestu ke třídě. Toto jsou povinné údaje, dále je možné připojit property. Oproti property běžných proměnných je možné obohatit o další property jako je např. cascade - kaskádové mazázní záznamů Ukládání, aktualizace a mazání dat Při ukládání, aktualizaci a mazání dat je nutné si nejprve vytvořit spojení, které nám požadovanou činnost umožní. To se provádí příkazem: Session session = getsessionfactory().opensession(); Po provedení požadovaných změn v databázi je nutné spojení ukončit a to se provede příkazem: session.flush(); session.close(); Uložení dat do databáze je velmi jednoduché a při ukládání si můžeme zvolit z několika možností uložení. session.flush(); Tento příkaz provede uložení nového záznam: session.save(ctenar); Tento příkaz provede uložení nového záznamu nebo aktualizaci již existujícího záznamu: session.saveorupdate(ctenar); Způsobí aktualizaci již existujícího záznamu v databázi: session.update(ctenar);

29 5 VOLBA TECHNOLOGIÍ PRO IMPLEMENTACI 29 Klíčové slovo flush označuje tzv. flushing. Do doby, kdy nezavoláme příkaz flush(), nedojde k aktualizaci dat v databázi. To může být výhodné, zejména pokud nechceme často navazovat spojení a ukládat data po jednom záznamu. Nedojde-li ani ke změně objektu a chceme provést uložení do databáze, pak spojení nebude ani navázáno, protože bychom ukládali stejný objekt. S tímto příkazem můžeme pracovat podle sebe. Defaultně se tento příkaz volá před každým dotazem do databáze nebo jej můžeme nastavit, aby se spouštěl před každým commitem nebo jej úplně vypnout a pak změny ukládáme sami. Mazání objektů v databázi je možné provést mnoha způsoby. Nejjednodušším z nich je pomocí příkazu session.delete(ctenar); kde v jednom spojení vymažeme objekt čtenář. Toto lze provést, pouze pokud pracujeme s jednou databází. Pokud chceme načíst záznam z jedné databáze a vymazat ho ve druhé databázi, pak tento příkaz nelze použít, protože objekt nerovná se objekt. Objekty obsahují různé indexy, které nejsou na první pohled viditelné a v každé databázi jsou jiné. Pokud chceme provést mazání objektů z různých databází, pak je nutné je mazat podle jejich unikátních identifikátorů (ID). To ukazuje následující příklad: Query q = session.createquery("delete FROM Vypujcka vp WHERE vp.id = :id"); q.setparameter("id", vypujcka.getid()); q.executeupdate(); Vyhledávání a načítání dat z databáze Hibernate umožňuje tři základní přístupy k tvorbě dotazů do databáze: SQL dotazy - Hibernate umožňuje psaní klasických SQL dotazů, ale použití tohoto přístupu se velmi nedoporučuje, snad je v nevyhnutelných případech. Je to hlavně z toho důvodu, že technologie Hibernate je určena pro komunikaci s více než dvaceti druhy databází a v některé z databází se mohou lišit jednotlivé SQL dotazy (sice jen v detailech), pak ale není zaručena stabilita aplikace. public List<Ctenari> listctenari(string cid) { sess.createsqlquery("select * FROM Ctenari").list(); } HQL dotazy - Vychází z jazyka OQL (tedy objektový přístup k datům), do jisté míry je podobý přístupu SQL ve které se používá relační přístup.

30 5 VOLBA TECHNOLOGIÍ PRO IMPLEMENTACI 30 public List<Vypujcka> listvypujckacid(string cid) { return (List<Vypujcka>) gethibernatetemplate().find("from Vypujcka v left join fetch v.ctenar c where c.cid=? order by v.vytisk.objekt.nazev", cid); } Další možností získávání dat z databáze je za použití kritérií. Jde o velmi mocný nástroj, se kterým se pracuje velmi intuitivně bez nutnosti znalosti SQL nebo HQL dotazů. Výsledný SQL dotaz se automaticky vygeneruje podle databáze se kterou pracujeme. public List<Vytisk> listvytiskycriteria(string oid, String autor, String nakladatel, String nazev) { Criteria criteria = getsession().createcriteria(vytisk.class).add(restrictions.eq("oid", oid)).createalias("objekt", "o").add(restrictions.like("o.jmenoautora", autor + "%")).add(restrictions.like("o.nazev", nazev + "%")).add(restrictions.like("o.nakladatel", nakladatel + "%")).add(restrictions.eq("viditelnost", true)).addorder(property.forname("o.nazev").asc()); return (List<Vytisk>) criteria.list(); } Replikace Pro synchronizace dat v databázích je vhodné využít v Hibernatu replikace. Tato možnost nám umožní synchronizaci dvou různých databází (např. je možné synchronizovat databázi MySQL s databází Oracle). Pro replikaci se používá příkaz replicate(object, ReplicationMode). Jako první parametr se uvádí libovolný objekt, který má být replikovaný. Druhým parametrem se uvádí jeden ze čtyř módů replikace: ReplicationMode.OVERWRITE - Přepíše záznam v tabulce se stejným identifikátorem. ReplicationMode.LATEST VERSION - Přepíše záznam v tabulce, pokud replikovaný řádek je novější. Pokud je záznam starší, pak se replikace neprovádí.

31 5 VOLBA TECHNOLOGIÍ PRO IMPLEMENTACI 31 ReplicationMode.IGNORE - Zapíše záznam do databáze pokud se záznam se stejným identifikátorem v databázi nenachází. Pokud již je záznam v databázi se stejným identifikátorem obsažen, pak se nechá v původních hodnotách (nedojde k přepsání na novější data). ReplicationMode.EXCEPTION - Spustí výjimku, pokud se v databázi nachází záznam se stejným identifikátorem. Kdybychom jako první příklad parametru replicate uváděli vždy jeden objekt, pak by synchronizace dvou databází po jednom objektu trvala neúměrně dlouho, protože pro každé načtení a následné uložení objektu se musí vytvořit spojení. Proto je vhodné v jednom spojení data načíst a ve druhém spojení data uložit jako list záznamů. Nejprve libovolně získáme list položek (může se jednat i o celou tabulku) a následně se provede uložení do druhé databáze. To ukazuje následující příklad: Session session2 = getsessionfactory().opensession(); Transaction tx2 = session2.begintransaction(); for (Ctenar ctenar: listctenari) { session2.replicate(ctenar, ReplicationMode.OVERWRITE); } tx2.commit(); session2.close(); } 5.6 Jasper Reports V současnosti je tato technologie nejlepší volbou pro tvorbu reportů. Umožňuje přímý tisk a ukládání do formátu PDF, RTF, ODT, HTML, CSV, XML, XLS a vlastního formátu jrprint. Pro návrh tiskových sestav se používá program ireport, který je vydán pod licencí GNU GPL. ireport je program vytvoření v programovacím jazyce Javě, je tedy multiplatformní a lze jej spustit přímo bez instalace. Ještě existuje v druhé verzi jako plugin do Netbeans, pak nemusíme spouštět žádný další program a návrh reportu vytvoříme přímo v Netbeans a můžeme je zařadit přímo do balíčku. ireport je založen na XML dokumentu. Návrh výsledného reportu můžeme tvořit za použití: statických textů, proměnlivých textů (tzv. TextFields), tabulek,

32 5 VOLBA TECHNOLOGIÍ PRO IMPLEMENTACI 32 grafů, obrázků, čárových kódů, čar a křivek, sub-reportů. Sub-report je report v reportu, tedy jeden report může obsahovat několik dalších reportů. Použití se najde v mnoha případech, nejčastěji však, mají-li se v reportu objevovat data několikrát za sebou a ty data mohou mít další položky, které se proměnlivě mění. Typickým příkladem může být výpis domů a jejich majitelů v obci. V takovém případě je nutné použít report v reportu, kde výpis domů bude vnější report a vlastníci daného domu budou vnitřní report. Celý report je rozdělen do devíti částí, kde každá část se v dokumentu objevuje na jiných místech. Struktura reportu je následující: Background - Nastavuje pozadí reportu. Title - Jde o titulek stránky a v případě vícestránkového dokumentu se titulek zobrazuje pouze na první stránce. Page Header - Hlavička stránky, která se zobrazuje na každé stránce reportovaného dokumentu. Column Header - Hlavička sloupců tabulky. Tato část bezprostředně souvisní s částí detail. Detail - Jde o hlavní část sestavy. Tato část umí vytvářet nové řádky. Column Footer - Patička sloupců. Page Footer - Patička stránky. Last Page Footer - Patička poslední stránky reportu. Důležitou vlastností této části je, že se zobrazuje vždy na poslední stránce reportu na konci stránky. Pokud tuto část použijeme, pak se Page Footer na poslední stránce zobrazovat nebude (Last Page Footer jej překryje). Summary - Zobrazuje se vždy na poslední stránce pro závěrečná shrnutí. Zobrazuje se však na poslední stránce tiskové sestavy před Column Footer i když v návrháři je uvedená až jako poslední. Soubor je uložen do formátu jrxml a před následným tiskem je nutné jej zkompilovat do formátu.jasper, pak je možné zvolit tisk nebo jednu z forem exportu. ireport umožňuje vkládat tři typy proměnných a to variables, parameters a fields. Variables obsahují některé proměnné, které ireport již vytvoříl sám, jako jsou např. číslo strany, celkový počet stran, číslo sloupce, celkový počet sloupců

33 5 VOLBA TECHNOLOGIÍ PRO IMPLEMENTACI 33 a počet reportů. Další proměnné si můžeme vytvořit sami. U těchto proměnných si můžeme zvolit způsoby jejich výpočtu z implicitních vzorců, jako jsou součty, průměry, vybírat nejvyšší, nejnižší čísla přímo v reportu. Dále máme možnost si vytvořit zcela vlastní vzorce pro výpočty. Parameters jsou proměnné předávané z Javy a slouží k zobrazování položek stejných pro jednotlivé řádky reportu. Zejména se jedná o nadpisy, hlavičky tabulek, datum, tvůrce reportu atd. Parametry jsou v Javě zastoupeny pomocí mapy. Následuje jednoduchý příklad: } Map parameters = new HashMap(); parameters.put("titulek", "Historie výpůjček"); parameters.put("jmenoctenare", ctenar.getprijmenijmeno()); parameters.put("datum", new Date()); parameters.put("pocetvypujcek", vypujcky.size()); Jedná se o obecnou mapu, do které můžeme vkládat datum, řetězce znaků, čísla, logické proměnné atd. První podmínkou pro vytvoření reportu je, že proměnné v Javě se musí jmenovat stejně jako Parameters v reportu včetně velikosti písmen. Druhou podmínkou je, že pokud vkládáme čísla, je nutné je v reportu převést na řetězec. K tomu se používá metoda tostring(). Pro práci s datem, řetězci, čísly existuje v ireportu široké spektrum metod. Například pro práci s řetězci existuje přibližně čtyřicet metod: charat(int) - Tato metoda nám vráti znak na pozici podle zadaného parametru, compareto(string) - Metoda pro porovnání dvou řetězců, contains(string) - Slouží ke zjištění, jestli jeden řetězec obsahuje druhý řetězec. Metoda vrací logickou hodnotu, equalsignorecase(string) - Srovnává dva řetězce a vrací logickou hodnotu, přičemž ignoruje velikost písmen, isempty() - Kontroluje, jestli řetězec obsahuje nějaké znaky. Tato metoda vrací logickou hodnotu. Pro práci s datem existuje přes dvacet metod. Jedná se zejména o získávání minut, hodin, dnů, měsíců ze zadaného data a formátování data k zobrazení (např. na čas podle GMT).

34 5 VOLBA TECHNOLOGIÍ PRO IMPLEMENTACI 34 Poslední proměnnou k zobrazení jsou Fields. Jsou to položky, které tvoří jednotlivé řádky v reportu. Používají se zejména v tabulkách jako její jednotlivé buňky a umístňují se nejčastěji do části Detail v reportu. U Fields platí stejné podmínky jako u Parameters. V Javě jsou reprezentovány pomocí kolekce a ukazuje to následující příklad: List<JrVytisky> jrvytisky = new ArrayList(); for (Vytisk vytisk : vytisky) { JrVytisky polozka = new JrVytisky(); polozka.setoid(vytisk.getoid()); polozka.setisbn(vytisk.getobjekt().getisbn()); polozka.setjmenoautora(vytisk.getobjekt().getjmenoautora()); polozka.setnazev(vytisk.getobjekt().getnazev()); polozka.setrokvydani(vytisk.getobjekt().getrokvydani()); polozka.setnakladatel(vytisk.getobjekt().getnakladatel().getnazev()); jrvytisky.add(polozka); } Tento příklad ukazuje použití kolekce. ArrayList implementuje rozhraní List a je jednou ze základních kolekcí. Na prvním řádku je vytvoření Listu, do kterého budou jednotlivé položky uloženy. Následuje for cyklus, který přidává každé položce hodnoty. Následující příklad zobrazuje reportování dokumentu. První parametr je název reportu, který se má použít. Druhým parametrem je mapa parametrů a třetím parametrem jsou již zmíněné kolekce. Po zkompilování se provede zobrazení reportu do programu Jasper Viewer, ze kterého je možné data tisknout nebo ukládat do již zmíněných formátů. Při exportu dokumentu musíme vložit mapu a kolekci položek. Pokud chceme vytvořit report pouze s mapou, pak musíme vytvořit prázdnou kolekci, analogicky to platí pro vytvoření reportu pouze s kolekcí. public static void printlist(string reportname, Map parameters, Collection polozky) { String jasperextension = ".jrxml"; InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("cz/effectiva/adriana/resources/" + reportname + jasperextension); try {

35 5 VOLBA TECHNOLOGIÍ PRO IMPLEMENTACI 35 } JRDataSource datasource = new JRBeanCollectionDataSource(polozky); JasperReport report = JasperCompileManager.compileReport(is); JRLoader.loadObject(is); JasperPrint print = JasperFillManager.fillReport(report, parameters, datasource); JasperViewer.viewReport(print, false); } catch (JRException ex) { ex.printstacktrace(); } 5.7 SwingX Jedná se o knihovnu, která nabízí nové GUI komponenty nebo vylepšuje starší komponenty Swingu. Knihovna je vydaná pod licencí LGPL což znamená, že se jedná o licenci, kde výsledný program může být vydán pod libovolnou licencí (tedy i komerčně). Pro Javu je možné si vybrat mezi Swingem, SWT a AWT komponentami (pak existují ještě komerční varianty např. JIDE komponenty). AWT komponenty byly první implementací grafiky v Javě. Jde o platformově nezávislé komponenty, ale jejich přenositelnost je problematická. SWT komponenty mají různé problémy na operačním systému MAC OS (všeobecně se nedoporučuje míchat aplikace s SWT a Swing komponentami). Jde hlavně o problémy se zabezpečováním událostí nad komponentami a problémy s výkonem. Swing nabízí několikanásobně více komponent, než zmíněné SWT. Změna skinování (look and feel) v aplikacích používající SWT je velmi složitá, naproti tomu změna skinování v aplikacích Swing je velmi jednoduchá, skiny si můžeme volit např. použitím Substance. Proto je použití Swingu mnohem používanější než použití komponent založených na SWT. Zvolení této knihovny bylo hlavně z několika důvodů. První z nich je, že se dají využít zdarma i ke komerčním účelům, jsou skinovatelné a nabízí požadované komponenty (kalendářová komponenta a komponenta pro zobrazení obrázku). Dále SwingX vlastní komponenty pro práci s grafy, s rozšířenými tabulkami, stromové tabulky, hypertextové odkazy, vylepšenou komponentu pro práci s listem, pro práci se stromem, komponentu pro zobrazení stavu aplikace (rozšířený progressbar) a mnohé další.

36 5 VOLBA TECHNOLOGIÍ PRO IMPLEMENTACI 36 Pro zobrazení obrázku do panelu se používají nasledující příkazy: BufferedImage logo = ImageIO.read(path); jximagepanel_logo.setimage(logo); První příkaz načte obrázek podle proměnné path, která určuje cestu k obrázku, který se nachází přímo ve výsledném JAR balíčku. Druhým příkazem se provede zobrazení načteného obrázku do panelu. Práce s komponentou pro datum je také velmi jednoduchá. Pro nastavení data do komponenty je možné použít dva způsoby. První možností je zdata přímo datum (první řádek následující ukázky) a tou druhou je zadat čas v milisekundách od (druhý řádek následující ukázky). Metoda get je obdobná k metodě set. Pro získání data se používá metoda getdate() (metoda vrací datum) nebo getdateinmilis() (metoda vrací počet milisekund od ). jxdatepicker_do.setdate(datumod); jxdatepicker_datumod.setdate(new Date(datumOdInMilis)); 5.8 Substance Tato technologie slouží ke zlepšení vzhledu stávající aplikace. Jsou dva hlavní důvody proč měnit vzhled aplikace. První z nich je, že aplikace vytvořené bez použití změny vzhledu (look and feel) jsou rozdílné na různých operačních systémech. Standardně Java používá nativní vzhled operačního systému. Například aplikace spuštěná pod Windows vypadá nativně, ale například na linuxu aplikace vypadá trochu jinak (neprofesionálně) zejména v KDE. Dalším důvodem je, že aplikace jsou značně uživatelsky nepřívětivé. Od verze Java 5 je podporovaný nativní vzhled aplikací pro Microsoft, po vydání Java 6 se nativní vzhled ještě zlepšil, ale přesto aplikace nedosahují takových kvalit, jako aplikace se změněným vzhledem. K odstranění nedostatků vzhledu slouží právě různé technologie pro změnu vzhledu aplikace. Z internetu je možné si stáhnout spousty šablon pro změnu vzhledu, ale existuje knihovna, ve které si můžeme volit vzhled sami a to je právě Substance. V současnosti je tato technologie ve verzi 5.0. Jedná se o knihovnu vydanou pod licencí BSD, proto si v této knihovně můžeme upravovat sami libovolné části kódu, bez porušení licence. S použitím této technologie se aplikace stává uživatelsky mnohem přívětivější. Změna vzhledu nám umožňuje měnit různé části aplikace:

37 5 VOLBA TECHNOLOGIÍ PRO IMPLEMENTACI 37 rámečku aplikace, dialogů (otevírací, ukládací, potvrzovací,...), hlavní aplikace - můžeme měnit vzhled i vodotisk aplikace. Pro volbu vzhledu aplikace máme k dispozici zhruba dvacet předpřipravených vzhledů, například aplikace může vypadat jako MS Office 2007 (modrá nebo stříbrná barva). Zlepšení vzhledu můžeme ještě umocnit použitím vodoznaků, na výběr máme opět několik předpřipravených vodoznaků (např. s pruhy, s čísly, s planktonem, se šrafováním, s vlastním obrázkem na pozadí aplikace a další). 5.9 HTML a PHP Jelikož celý systém musí být multiplatformní, pak musí být multiplatformní i nápověda. Nelze použít např. klasické nápovědy pro Windows ve formátu *.hlp. Jako optimální se proto jeví použití HTML. Hlavní výhodou této technologie je, že stránky vytvořené v prostém HTML nemusí být umístěny na žádném serveru, lze je tedy spustit lokálně bez dostupnosti internetu. Nápověda vytvořená v tomto jazyce stačí být zkopírována do počítače a následně ihned spuštěna za předpokladu, že v počítači je nainstalovaný internetový prohlížeč. Pro zjednodušení nastavení a zlepšení vzhledu výsledné nápovědy je docíleno použitím kaskádových stylů. Pro tvorbu webového katalogu bylo rozhodováno mezi JSF a PHP. Požadavek na webový katalog je pouze k zobrazení dostupných knih v knihovně. JSF technologie spadá do kategorie JEE a použití k tomuto požadavku je nevhodné. Tato technologie je velmi obsáhlá a složitá na implementaci. Pro menší projekty spíše prodlužuje dobu vývoje oproti klasickému PHP. Využití JSF ve velkých projektech je naopak výhodnější, neboť po počáteční konfiguraci se aplikace vyvíjí mnohem rychleji a nabízí široké spektrum možností. Aby aplikace vytvořená v JSF mohla být provozována, pak na serveru musí být nainstalovaný servlet Apache Tomcat. Pro tvorbu webového katalogu byla zvolena technologie PHP. Pro webový katalog jsou také použité kaskádové styly pro zlepšení vzhledu celého katalogu.

38 6 IMPLEMENTACE 38 6 Implementace 6.1 Zabezpeční aplikace Pro zabezpečení aplikace se musí pracovník před prací se systémem autorizovat pomocí svého přihlašovacího jména a hesla. Aplikace umožňuje práci ve dvou režimech. První z nich je režim administrátorský, ve kterém můžeme přidávat, editovat a mazat uživatele. Další důležitou funkcí administrátora je nastavení synchronizace mezi databázemi. Může například zvolit, že chce obnovit celou databázi z veřejného serveru (může to být z důvodu reinstalace počítače v knihovně nebo porušení databáze). Dále může nastavit synchronizaci pro určitou tabulku a tím zkontrolovat správnost dat. Druhý režim slouží pro zaměstnanece knihovny, kteří se systémem pracují a evidují čtenáře a jejich výpůjčky. Jelikož počítač slouží i čtenářům k prohlížení internetu, tisku dokumentů a dalších činností, pak zaměstnanec nemusí aplikaci vypínat a pak opět zapínat, ale stačí mu pouze odhlášení ze systému. Po odhlášení je možné aplikaci vypnout, znovu se přihlásit nebo přihlásit jiného zaměstnance knihovny. 6.2 Evidence čtenářů Čtenáři knihovny jsou evidováni do stejnojmenné tabulky Ctenari, kde se o nich ukládají jednotlivé informace. O čtenáři nás zajímají následující informace: jméno, příjmení, adresa, telefonní číslo, , doplňující informace o čtenáři (např. pravidelné pozdní vracení knih a podobně). Každému čtenáři je přidělen desetimístný unikátní identifikátor začínajícím písmenem velké C (označovaný jako CID). CID je vyjádřen pomocí čárového kódu, který je vytištěný na čtenářskou kartičku příslušného čtenáře. Pomocí této kartičky se čtenář identifikuje při vypůjčování nebo vracení knih. Knihovna umožňuje i výpůjčky z jiných knihoven (meziknihovní výpůjčky), proto se v evidenci čtenářů nachází položka VF (výměnný fond). Zvolíme-li tuto položku, dále zadáme název knihovny a následně tato knihovna slouží jako výměnný fond, od kterého si můžeme knihy nejen půjčovat, ale také jim knihy půjčovat.

39 6 IMPLEMENTACE 39 Jméno a příjmení pak slouží jako kontaktní informace na odpovědnou osobu z dané knihovny. Protože čtenář a výměnný fond jsou v konečném důsledku to stejné (zajímají nás o nich stejné informace), tak se data ukládají do stejné tabulky. Pokud by se jednalo o větší knihovnu, která by si půjčovala knihy od většího počtu knihoven, bylo by výhodnější rozdělit tuto tabulku na dvě. Poté jednoduše můžeme provést selekci dat z databáze a zobrazit knihy, které máme vypůjčeny ze které knihovny. Pro vyhledávání mezi čtenáři slouží klávesová zkratka CTRL + F nebo z hlavního menu kliknout na Úpravy a následně kliknout na Filtry. Tím se nám v záložkách pro evidenci čtenářů zobrazí nebo skryjí vyhledávací pole, podle kterých můžeme mezi čtenáři vyhledávat. Zobrazí se nám následující čtyři pole (můžeme vyhledávat podle nich zároveň): CID, jména, příjmení, adresy. Pro přidání nebo editaci čtenáře klikneme v hlavním menu na položku Čtenáři a následně na požadovanou akci, kterou chceme nad čtenářem provést. Pokud chceme čtenáře přidat nebo upravit, pak je nutné vyplnit minimálně ty položky, které jsou označeny červeně. Bez vyplnění těchto povinných položek nebude čtenář přidán do databáze a moct si půjčovat knihy. Po přidání nebo úpravě čtenáře máme možnost automatického tisku čtenářské kartičky (podle vlastní nastavení aplikace). Pokud chceme vytisknout kartičku k existujícímu čtenáři bez nutnosti jeho edice, pak ho stačí v databázi najít, kliknout na něj v tabulce myší a stisknout tlačítko Tisk, tím dojde k vytištění kartičky požadovaného čtenáře. Při přidání čtenáře je automaticky vytvořeno jeho heslo, které je vytvořeno ze čtenářova příjmení a to tak, že nejprve jsou všechny písmena zmenšeny a následně je z nich odstraněna diakritika. Pomocí CID a tohoto hesla, se čtenář bude moct přihlásit do internetového katalogu a provádět rezervace knih, nahlížení do výpůjček, případně editovat svůj účet (pokud bude požadavek na obsáhlejší internetový katalog). Dále se automaticky při přidání čtenáře do atributu datum vytvoření čtenáře vloží aktuální datum a dále se ke čtenáři přidá pracovník knihovny, který uživatele vytvořil. O každém čtenáři si můžeme zjistit podrobné informace v záložce Informace o jednotlivých čtenářích nebo z hlavního menu Čtenáři kliknutím na položku Informace o jednotlivých čtenářích. Pro zjištění informace o konkrétním čtenáři zadáme

40 6 IMPLEMENTACE 40 jeho CID a vybereme si v rozbalovacím seznamu (comboboxu) informaci, která nás o čtenáři zajímá. Máme na výběr ze tří následujících informací: o vypůjčených knihách, o nevrácených knihách, o archivu výpůjček. Ve vypůjčených knihách a nevrácených knihách máme zobrazené tlačítko Vrátit. Tímto tlačítkem můžeme libovolnou knihu, kterou má čtenář vypůjčenou vrátit tak, že v tabulce klikneme na knihu, kterou čtenář vrací do knihovny, a následně klikneme na tlačítko Vrátit. 6.3 Evidence knih Evidence knih je velmi podobná evidenci čtenářů. Každé knize je přiřazen desetimístný unikátní identifikátor, který začíná velkým písmenem O (označovaný jako OID). Položky, které jsou označeny červeně, jsou povinné k vyplnění. O knize evidujeme následující údaje: ISBN, název, jméno autora, nakladatel, rok vydání, žánr, cena, umístění knihy v knihovně, výměnný fond (pokud z něj kniha byla vypůjčena), doplňující informace o stavu knihy (např. informace o jejím poškození a podobně). Přidáváme-li do evidence knih novou knihu, je vhodné nejdříve vyplnit položku ISBN. Nachází-li se již tato kniha v knihovně, usnadní nám práci v automatickém doplnění informací, které mají tyto knihy společné. Pokud se žádná stejná kniha v knihovně nenachází, pak se musejí všechny informace o knize doplnit ručně. O knize se automaticky evidují informace o datu pořízení, datu vymazání a zaměstnanci knihovny, který evidenci prováděl. V záložce evidence knih se nám zobrazuje výpis jednotlivých knih. První sloupec je pojmenovaný VP (zkratka z vypůjčený) a v každém je zobrazena logická hodnota ve formě zaškrtávacího políčka (checkboxu) o tom, zda je kniha vypůjčena či nikoliv (pokud je kniha vypůjčena,

41 6 IMPLEMENTACE 41 pak je políčko zaškrtnuté). Nad zaevidovanými knihami je možné vyhledávat jako v případě čtenářů. Můžeme vyhledávat podle následujících kritérií (zadaná kritéria lze různě kombinovat): OID, názvu knihy, autora knihy, nakladatele, CID výměnného fondu, pokud knihy byla vypůjčena z jiné knihovny. 6.4 Výpůjčky a jejich archivace Evidence výpůjček se zobrazuje ve stejnojmenném panelu Výpůjčky. V této tabulce jsou zobrazovány aktuálně vypůjčené knihy. V tabulce jsou zobrazeny následující údaje: CID čtenáře, příjmení, jméno a adresa čtenáře, OID knihy, název knihy, jméno autora, datum vypůjčení. Pokud si čtenář chce půjčit knihu, pak zaměstnanec knihovny naskenuje (nebo napíše) jeho CID a po správném načtení identifikátoru se v aplikaci zobrazí souhrnné informace o čtenáři. To stejné je i s identifikátorem OID, kde po naskenování dojde k zobrazení souhrnných informací o vypůjčované knize. Tyto zobrazované údaje zároveň slouží k lepší orientaci pracovníka knihovny, který se ujišťuje, že vypůjčuje správnou knihu správnému čtenři, neboť čtení čárového kódu není bezchybné (i když procento chyb je takřka nulové). V nastavení se můžeme zvolit maximální dobu, jakou čtenáři mohou mít knihu vypůjčenou. Po uplynutí této doby se výpůjčka knihy bude zobrazovat v seznamu nevrácených knih. Knihovna si může nechat zobrazit informaci o tom, o kolik dnů později byla kniha vrácena. Informace o nevrácených knihách zjistíme z hlavního menu položky Výpůjčky a následném kliknutí na Nevrácené knihy nebo přímo na záložku Nevrácené knihy. V tabulce se nám zobrazí seznam knih, které čtenář má vypůjčené déle, než knihovna povoluje. Výpis nevrácených knih je seřazen od nejstarších výpůjček, tzn., že na prvních místech jsou zobrazeny knihy, které jsou nejdéle vypůjčeny a doposud nebyly vráceny.

42 6 IMPLEMENTACE 42 Po vrácení knihy do knihovny se automaticky vymaží data z tabulky výpůjček, a celá výpůjčeka se přesune do tabulky výpůjčky archiv. Prohlížet archiv výpůjček je možné ve stejnojmenném panelu. Zde jsou zobrazeny všechny výpůjčky, které kdy v knihovně byly provedeny. Nad archivem je možné provádět filtraci: CID čtenáře, OID knihy, datem vypůjčení. Je možné provádět kombinaci všech filtrů. Tzn., že můžeme vyhledat jednu knihu a zobrazit si celou její minulost vypůjčování (to stejné lze udělat se čtenářem) nebo si můžeme zvolit pouze rozmezí od data vypůjčení do data vypůjčení a tím se nám zobrazí výpůjčky dané knihy za dané období (obdobně je to opět u čtenáře). Dále je možné vyhledávat v historii pomocí CID a OID zároveň. Tím dospějeme k tomu, že se nám zobrazí požadovaný čtenář a požadovaná kniha. Pokud si čtenář z nějakého důvodu knihu půjčuje častěji, lze takhle jednoduše vyfiltrovat informace nesouvisející s ostatními knihami nebo čtenáři, samozřejmě je možné na tento filtr aplikovat třetí (časový) filtr, kdy si zobrazíme jen zadané období. 6.5 Inventarizace Další zásadním bodem, který byl kladen na software je inventarizace knih v knihovně, která umožňuje zjistit úbytky nebo příbytky knih. Pokud chceme provést inventarizaci, pak v hlavním menu klikneme na Soubor, pak na položku Inventarizace a zvolíme Nová. Tím se nám databáze připraví na novou inventarizaci knih. Poté klikneme na záložku Inventarizace a může se provádět skenování kódů pomocí čtečky čárových kódů. V tabulce si můžeme vybrat, co chceme zobrazovat. Máme na výběr mezi následujícími položkami: zinventarizované knihy, chybějící knihy, nezinventarizované knihy, vypůjčené nezinventarizované knihy. Dále je možné nastavit, že po načtení jednoho kódu se musí kliknout na tlačítko OK a tím se provede zinventarizování jedné knihy nebo je možné nastavit, že ihned po zadání OID knihy se provede automaticky zinventarizování (tlačítko OK se nepoužívá). Druhá možnost výrazně zjednodušuje inventarizaci.

43 6 IMPLEMENTACE 43 Poté, co provedeme inventarizaci všech knih v knihovně nebo i v jejím průběhu se můžeme podívat na dosavadní výsledky inventarizace. Tyto výsledky se zobrazí kliknutím na položku Soubor, pak na položku Inventarizace a následně na Výsledky inventarizace. Pak se nám zobrazí okno kde je zobrazen souhrn výsledů z provedené inventarizace. Nejdůležitější položka je Počet chybějících knih (jejich seznam je možné si vytisknout a vést si evidenci ztracených knih v určitém období). Všechny chybějící knihy můžeme z databáze odstranit stisknutím jediného tlačítka Vymazat chybějící knihy z databáze. Pokud se chceme jen podívat, pak klikneme na tlačítko Zavřít. 6.6 Tisk reportů, čárových kódů a čtenářských kartiček Tisk reportů se provádí do předem vytvořených šablon v programu ireport. Náhled výsledného reportu je zobrazen v programu JasperViewer, který slouží k náhledu na požadovaný report. Z JasperViewer je možné reporty přímo tisknout nebo je exportovat do již uvedených formátů. Uživatel si může vybrat, která data chce exportovat a která ne. Může využít tlačítek (od A do Z) pro rychlý výběr, pak použít různé filtry pro vyfiltrování hledaných záznamů a následně seřadit výsledek podle určitého sloupce. Tyto kombinace lze zvolit nezávisle na sobě. Poté stačí kliknout v hlavním menu na Soubor, pak na Export a Exportovat aktuální tabulku nebo použít klávesové zkratky Alt+E. Výsledný report obsahuje důležité informace pro určování aktuálnosti dokumentů, obsahuje především tyto informace: název reportu - z které tabulky byl report vytvořen, datum a čas vytvoření dokumentu, jméno a příjmení uživatele, který report vytvořil, vlastní data - jednotlivé položky z tabulky, celkový počet položek v reportu, místo pro podpis uživatele, který report vytiskl. Exportování reportů tabulek je velmi důležité u inventarizace, kde je možné sledovat i zpětně úbytky knih. Dále je velmi důležité exportování nad výpůjčkami jednotlivých čtenářů, kde si mohou ověřit svoje výpůjčky nebo nevrácené knihy. Samozřejmě je důležitý export i nad ostatními tabulkami, kde si knihovna může vést evidenci o nevrácených knihách od všech čtenářů, exportovat si všechny čtenáře knihovny, knihy co knihovna vlastní a spoustu dalších informací.

44 6 IMPLEMENTACE 44 Export čárových kódů je určen pro evidenci čtenářů a knih. Každý čtenář má přiřazen unikátní identifikátor CID a každá kniha má unikátní identifikátor OID. Tyto kódy jsou vyjádřeny pomocí čárového kódu, kterým se daná kniha nebo čtenář identifikují. Jako typ čárového kódu byl zvolen Code 128, který dokáže zobrazit až 128 znaků. Jedná se o jednorozměrný kód, který má chybovost 1 : Aplikace si pamatuje poslední exportovaný kód pro čtenáře a pro knihu (je možné ho změnit a vytisknout případně nějaký kód znovu). Při vytváření nového čtenáře nebo knihy ještě probíhá kontrola na existenci kódu v databázi. Pokud je kód již v databázi použit, pak aplikace nedovolí znovupoužití stejného kódu pro jiné knihy nebo čtenáře. Čárové kódy jsou exportovány v počtu 24ks/stránku (osm kódů ve sloupci a tři kódy v řádku). Pro správný export je doporučen samolepící nařezaný papír s již uvedeným rozložením jednotlivých nařezaných částí. Aplikace tedy exportuje čárové kódy v počtu 24ks/stránku, stačí si zvolit počet požadovaných stran a automaticky se zobrazí celkový počet čárových kódů. Pro informaci je možné si zvolit náhled prvního z čárového kódu přímo do panelu aplikace. Po vyexportování se čárové kódy opět zobrazí v programu JasperViewer a pak je možné je opět uložit do libovolného formátu nebo vytisknout. Vzhledem k tomu, že se v knihovně nachází pouze inkoustová tiskárna a její tisk má mnohem menší životnost než tisk laserové tiskárny, proto je doporučené vyexportované čárové kódy uložit do formátu PDF a vytisknout je na laserové tiskárně, která je dostupná na radnici obce Kašnice. Export čtenářských kartiček je možno provést automaticky ihned po přidání nového čtenáře nebo ručně po vybrání čtenáře, kterému chceme čtenářskou kartičku vytisknou. Samozřejmostí je možnost tisku prázdných čtenářských kartiček, kde zaměstnanec knihovny pak ručně vyplní informace o čtenáři a zezadu nalepí čárový kód přidělený čtenáři. Kartička se skládá: z černého rámečku, který usnadňuje následné vystříhnutí, z loga obce Kašnice, která knihovnu podporuje, CID čtenáře, kdyby čárový kód nebyl čitelný, jména a příjmení čtenáře nebo názvu knihovny (pokud se jedná o výměnný fond), datum založení čtenáře. Opět po exportu je náhled zobrazen v programu JasperViewer. V tomto případě je možné z něj přímo tisknout na inkoustové tiskárně, protože logo obce je barevné

45 6 IMPLEMENTACE 45 a čtenáři nosí kartičky v peněžence, proto je dobré kartičku umístnit do fólie, ve které bude čárový kód dobře čitelný a nebude docházet k opotřebení kartičky. 6.7 Vlastní nastavení aplikace Aplikace je optimalizována pro rozlišení 1024x768 pixelů a vyšší. Pro odstranění nepěkného vzhledu Javy byla použita knihovna Substance ve verzi 5.0 a možnost obrázkového menu, které si může uživatel sám vypnout. Aplikace je rozdělena do záložek a tím se stává velmi přehlednou a rychlou na ovládání. Uživatel (zaměstnanec knihovny) si může nastavit aplikaci podle sebe. Může si nastavit z několika oblastí: zobrazení libovolné záložky po startu aplikace, zapnutí/vypnutí obrázkového menu, po přidání čtenáře, po úpravě čtenáře, jako prázdné čtenářské kartičky, jako prázdné čtenářské kartičky pro výměnný fond; inventarizace je možné si zvolit možnost, že po zadání OID se nám kniha automaticky označí jako zinventarizovaná nebo se počká na stisk tlačítka OK, při inventarizaci zobrazovat v tabulce: zinventarizované knihy - ty knihy jejichž OID byly zavedeny do systému, chybějící knihy - ty které nebyly zinventarizované a ani nebyly vypůjčené, nezinventarizované knihy - knihy, jejichž OID nebylo zavedeno do systému, vypůjčené nezinventarizované knihy - jedná se o knihy, které mají čtenáři vypůjčeny a jejich OID nebylo uvedeno v inventarizaci; počet dnů, kdy čtenář může mít knihu vypůjčenou a po překročení této lhůty se kniha bude zobrazovat v nevrácených knihách, při překročení limitu na vypůjčení knihy a následném vracení je možnost zobrazení varovné zprávy s počtem dnů, o kolik je kniha vrácena později, rezervace knih - jedná se o nastavení, po kterém budou rezervace automaticky mazány, pokud si čtenář knihu nevyzvedne. Toto nastavení je pro budoucí možnost rozšíření webového katalogu,

46 6 IMPLEMENTACE 46 synchronizace - zvolení synchronizace obou databází při startu i při ukončení aplikace a tím zajištění aktuálnosti informací. Administrátor systému má větší možnosti nastavení aplikace. Nastavení se týká zejména práce s databází. Administrátor má následující možnosti nastavení: přidávání osob oprávněných se systémem pracovat - pracovníky knihovny, nastavení synchronizace databází - pro každou tabulku je možné nastavit, od kterých záznamů se mají synchronizovat, nastavení cesty k Derby databázi - defaultně je umístěna v domácím adresáře uživatele, který aplikaci spouští. Pokud má být aplikace spouštěna více uživateli (každý z nich má vlastní účet v peračním systému), pak musí být aplikace umístněna na místě, kde mají všichni uživatelé právo zápisu. 6.8 Rezervace knih Požadavky na rezervaci knih nebyly, ale do budoucna je možné, že přibudou. Proto s tím bylo počítáno již při návrhu databázové struktury a celém vývoji aplikace. V návrhu databáze přibyla tabulka rezervace, do které čtenáři budou moct zadávat požadavky na rezervaci. Již nyní probíhá kontrola při vypůjčování, jestli vypůjčovaná kniha nebyla rezervována a pokud ano jestli čtenáři, který si ji právě půjčuje. Dále je počítáno s tím, že čtenáři budou moci prohlížet historii svých výpůjček, současné výpůjčky a editovat rezervace. To bude možné až po jejich autorizaci do internetového systému. V současné době je v tabulce Ctenari atribut Heslo, pomocí kterého budou čtenáři moct přistupovat ke svým internetovým účtům. Nyní se do položky heslo ukládá příjmení čtenáře bez diakritky. Jako přihlašovací jméno bude sloužit CID čtenáře. Po přihlášení si bude moci čtenář své heslo změnit. Pokud tedy přibude požadavek na rezervace knih, pak se nebude muset měnit databázová struktura ani aplikace. Pouze se vytvoří nové webové rozhraní, pomocí kterého čtenáři budou přistupovat k databázi. Rezervace knih se bude provádět pomocí webového klienta a data se budou ukládat do internetové databáze. Při spuštění nebo ukončení programu pro evidenci knih se provádí automatická synchronizace obou databází. Pokud si čtenář zarezervuje knihu, pak musí počkat na potvrzení rezervace, které automaticky udělí sama hlavní aplikace. Schválení rezervace proběhne v tom případě, pokud mezi jednotlivými synchronizacemi bude jediný požadavek na rezervaci daného výtisku, pokud bude více požadavků na stejný výtisk o rezervaci, bude rozhodovat čas rezervace.

47 6 IMPLEMENTACE 47 Může nastat případ, kdy si více čtenářů zarezervuje stejnou knihu ve stejný okamžik, v tomto případě bude o rezervaci rozhodovat nižší ID čtenáře. Rezervace knih maže opět hlavní aplikace a to v případě kdy kniha byla vypůjčena čtenáři, který si ji rezervoval nebo uplynula lhůta stanovená knihovnou pro rezervování knih (tuto lhůtu si může nastavit knihovna sama). Poté je rezervace zrušena a vymazána z obou databází. 6.9 Synchronice databází Aplikace pracuje se dvěma databázemi nezávislých na sobě. Tím je možné docílit toho, že jsou data z knihovny dostupné na internetu i bez přístupů čtenářů přímo do hlavní databáze knihovny. Synchronizaci si mohou nastavit pracovníci knihovny podle sebe. Mohou si vybrat v synchronizaci při startu aplikace a při ukončení. Průběžná synchronizace nebyla zvolena, protože se neočekávají výrazné změny v databázi během jednoho spuštění aplikace. Synchronizace při startu bude využívána v budoucnu, jestli bude implementovaná část rezervací. Při startu by se pak stahovaly záznamy o nových rezervacích, nebo o datech upravených čtenáři. Synchronizace po ukončení aplikace odesílá nové přírůstky knih, vypůjčené nebo vrácené knihy, přidané čtenáře a spoustu dalších informací. Primární databáze je umístěná na počítači, kde se software spouští. Druhá aplikace je umístěna v internetu na stránkách obce Kašnice. Vzhledem k rychlosti internetu a počtu knih v knihovně se při synchronizaci knih stahuje z internetové databáze celá tabulka. Tato metoda se používá i pro tabulku čtenářů, rezervací a uživatelů, kdy se stáhne celá tabulka a následně jsou porovnány data z obou databází. Jak již bylo zmíněno, objekt nerovná se objekt (nelze tedy použít metodu local.equals(server), která by vrátila hodnotu true nebo false podle toho, jestli by byly objekty stejné nebo nikoli). Jelikož tuto metodu použít nelze, pak se musí jednotlivé položky objektu porovnávat zvlášť. To ukazuje následující příklad. public boolean compareuzivatele(uzivatel local, Uzivatel server) { if (local.getid().compareto(server.getid())!= 0) { return false; } if (!local.getlogin().equals(server.getlogin())) { return false; }

48 6 IMPLEMENTACE 48 } if (!local.getpass().equals(server.getpass())) { return false; } if (local.isviditelnost()!= server.isviditelnost()) { return false; } return true; Synchronizace tabulky pro archiv výpůjček je složitější z toho důvodu, že i když je v knihovně relativně nízký počet knih a čtenářů, postupem doby by se délka synchronizace prodlužovala. Při synchronizaci této tabulky se tedy uchovává poslední správně odeslané ID. Není tak nutné stahovat tuto tabulku z internetové databáze vůbec a odesílají se pouze nová data. Pro synchronizaci databází se používají transakce, protože je možné, že se bude odesílat nebo přijímat větší množství dat a po cestě by mohlo dojít k přerušení spojení, pak by se data mohla nekorektně uložit do databáze. V případě, že proběhne všechno správně, pak se v databázi provede akce zvaná commit, která všechny provedené změny uloží. Jestliže nastane nějaký problém, poté se zavolá rollback a všechny příkazy provedené v transakci se odvolají. Stažení tisíce záznamů z internetu trvá něco kolem 10 vteřin. Nejdéle trvá navázání a ukončení spojení (tisíc záznamů má velikost cca 150 KB). Synchronizace celé databáze je tedy velmi rychlá a trvá maximálně pár minut (záleží na počtu provedených změn). Pokud se počet změn při spuštění aplikace pohybuje v řádu stovek až tisíců, pak se nijak výrazně neprodlužuje doba synchronizace. Internetová databáze slouží zároveň jako záloha lokální databáze. V případě poruchy počítače, stačí přemístit aplikaci na jiný počítač a hned lze aplikaci provozovat bez dlouhého nastavování a kopírování záznamů. V případě přeinstalování operačního systému se tedy nemusí vůbec nic zálohovat. Po nainstalování nového systému stačí do počítače zkopírovat systém pro evidenci knih a při prvním spuštění se automaticky vytvoří databáze, do které se opět automaticky stáhnou data z internetové databáze.

49 6 IMPLEMENTACE Nápověda Nápověda je vytvořená v prostém HTML, a proto ji lze jednoduše spouštět bez nutnosti přístupu k internetu nebo požadavku na vlastní webový server. Při prvním spuštění aplikace se nápověda rozbalí do domovského adresáře uživatele, který je aktuálně přihlášen do systému. Je to z toho důvodu, že jedině v tomto adresáři máme vždy právo zápisu souborů a nezáleží na operačním systému. Každý operační systém má svůj domovský adresář například: Linux: /home/jmenouzivatele Windows XP: C:\Documents and Settings\jmenoUzivatele Windows Vista: C:\Users\jmenoUzivatele Nápověda se spouští klávesou F1 nebo z hlavního menu položka Nápověda. Nápověda se spustí v defaultním internetovém prohlížeči nastaveném v počítači. Po spuštění se nápověda v internetovém okně zobrazí v levé části menu, kde si můžeme zvolit oblast problémů. Máme na výběr z položek: Co je to E-knihovna - Informuje nás o tom, co to E-knihovna je a jaké služby nám nabízí. Hardwarové požadavky - Popsány doporučené požadavky na hardware počítače. Softwarové požadavky - Popsány požadavky na software, který má být nainstalovaný, aby program mohl být korektně spuštěn. Instalace E-knihovny - Jedná se o postup, jak na počítači umístnit a provozovat software E-knihovna. Popis funkcí - Jde o nejdůležitější část nápovědy. Tato část nám pomáhá s prací v celém programu. Jedná se především o: evidenci knih - přidávání, odebírání, upravování, evidenci čtenářů - přidávání, odebírání, upravování, vypůjčování knih, vracení knih, archivace výpůjček, získávání podrobných informací o výpůjčkách jednotlivých čtenářů, inventarizace, reportování tabulek, tisk čárových kódů,

50 6 IMPLEMENTACE 50 tisk čtenářských kartiček, vlastní nastavení aplikace. Tipy a triky - Zde jsou popsány klávesové zkratky, které nám usnadňují práci. Dále se zde nachází tipy k inventarizaci svazků knihovny. Často kladené dotazy - V této části se nachází časté otázky a odpovědi na ně Webový katalog Jde o zjednodušenou formu webového katalogu. Webový katalog je napsaný v PHP a bude umístněn na stránkách obce Kašnice, kde si všichni čtenáři budou moct prohlížet dostupné knihy v obecní knihovně. Katalog čerpá data z internetové databáze. Data jsou uložena v databázi MySQL, tato databáze je u poskytovatele internetových stránek obce Kašnice. Katalog umí vyhledávat až podle čtyř položek zároveň: názvu knihy, autora knihy, nakladatele, žánru. Data jsou seřazena podle názvu knihy a následně jsou zobrazena do přehledné tabulky, která obsahuje vždy nejvýše padesát položek. Pokud je výsledků vyhledávání více než padesát, pak jsou výsledky rozděleny do několika stránek. O knize se nám zobrazí následující informace: ISBN, název knihy, autor, nakladatel, žánr, rok vydání.

51 7 ZÁVĚR 51 7 Závěr Vytvořený program splňuje veškeré požadavky na něj kladené a je vytvořen tak, aby bylo snadné jej modifikovat pro potřeby jiných knihoven. Dle mého názoru i názoru odborníků, kteří se ve světě knihovních systému pohybují přes dvacet let, se jedná o velmi zdařilý program, který má všechny potřebné funkce pro malé knihovny. Nabízí i některé funkce, které největší knihovní systémy neposkytují. Příkladem může být schopnost práce v offline režimu, kdy knihovna ukládá záznamy do lokální databáze a čtenáři si mohou nezávisle na lokální databázi prohlížet katalog nabízených knih k vypůjčení. Aplikace je velmi pěkně graficky zpracována a přitom její náročnost na výpočetní techniku je malá. Knihovní systém je vhodný do menších knihoven, které vlastní až svazků knih. 5 Při vývoji aplikace jsem se setkal s několika problémy, které byly nutné vyřešit. Některé problémy byly jednoduché a některé složité. Mezi nejsložitější problémy patřilo vytváření čárových kódů a reportování výsledků. Nejprve jsem se pokoušel oba problémy řešit svépomocí. Byly prováděny pokusy o tvorbu vlastního čárového kódu, ale tyto pokusy skončily nezdarem. Reportování bylo prováděno pomocí technologie itext, ale výsledné reporty bylo velmi náročné vytvořit a bylo možné je ukládat vždy jen do jednoho formátu. Navíc výsledné zobrazení nevypadalo profesionálně. Oba tyto problémy úspěšně vyřešila technologie JasperReports. Dalším složitějším problémem bylo vymyšlení a zprovoznění synchronizace dvou databází. Tento problém byl úspěšně vyřešen pomocí replikací v technologii Hibernate. Tím, jak je aplikace napsaná, se stává skutečně multiplatformní aplikací. Nejen tím, že je napsaná v programovacím jazyku Java, ale také tím, jak je v tomto jazyku napsaná. Příkladem může být ukládání všech dat do domácího adresáře, který se nalézá na každém operačním systému, volba internetového prohlížeče se volí podle toho, jaký internetový prohlížeč je nainstalovaný a nastavený jako defaultní prohlížeč. Dalším příkladem je volba databáze, která je spustitelná také pod libovolným operačním systémem. Díky tomu je aplikaci možné spustit ihned a bez jakýchkoli úprav. Evidence knih není tak jednoduchým problémem, jak se na první pohled zdá, nebo jak je uváděno ve školách. Větší knihovny potřebují detailní popis každého 5 Databáze byla bezproblematicky testována s celkovým počtem svazků. Hranice svazků byla zvolena z důvodu velikosti knihovny a s tím souvisejících nižších nároků na funkce programu. S velikostí knihovny souvisí větší nároky na funkce programu, které ve stávajícím systému nejsou implementovány, neboť pro potřeby této malé knihovny nejsou požadovány.

52 7 ZÁVĚR 52 svazku, než jak jsou knihy evidovány v malých knihovnách. Velké knihovny obsahují vlastní servery, na kterých sdílí data, ke kterým se mohou připojit menší knihovny a následně přidávat do evidence knihy, které jsou evidovány na serverech velkých knihoven. Tato výměna probíhá většinou přes Z39.50 protokol, který se objevil již v roce Informace o knihách se předávají ve specifickém formátu USMARC, UNIMARC nebo SUTRS. Protokol Z39.50 pracuje na architektuře klient-server. Každá knihovna, která si chce stáhnout záznamy z jiné knihovny, tak systém který vlastní, musí obsahovat Z39.50 klienta. Poté si záznamy může stáhnout a uložit do vlastní databáze. Tento produkt byl poskytnut do obecní knihovny Kašnice zdarma z důvodu možnosti poskytnutí reálného prostředí pro testování. V současné době je testována finální verze a postupně je databáze evidence knih a čtenářů naplňována reálnými daty. Prozatím se nevyskytly žádné zásadní nedostatky při používání zaměstnancem knihovny.

53 8 LITERATURA 53 8 Literatura JASPERSOFT CORPORATION, C. JasperForge. [online] [cit ] Dostupný z WWW: < http : // orge.org/>. JAVA PORTÁL [online] [cit ] Dostupný z WWW: < http : // KNIHOVNÍ ZÁKON 257/2001 SB. ze dne 29. června 2001 [online] [cit ] Dostupný z WWW: < http : //proknihovny.svkkl.cz/knihovni zakon.php/>. MINISTERSTVO KULTURY ČR [online] [cit ] Dostupný z WWW: < http : // = 443/k 20. listopadu 2008>. PECINOVSKÝ, R. Myslíme objektově v jazyku Java vyd. Praha: Grada Publishing, s. Myslíme v. ISBN RED HAT MIDDLEWARE, L. Relational Persistence for Java and.net.[online] [cit ] Dostupný z WWW: < http : // SPRING SOURCE COMMUNITY, C. Spring Framework. [online] [cit ] Dostupný z WWW: < http : // ŠEVČÍK, Jiří. Nový Přerov drtí nezaměstnanost. Břeclavský deník [online] [cit ] Dostupný z WWW: < http : //http : //breclavsky.denik.cz/zpravy region/novy prerov drti nezamestnanost html/>. THE SOURCE FOR JAVA TECHNOLOGY COLLABORATION, Sun Microsystems, Inc. [online] [cit ] Dostupný z WWW: < http : //

54 Přílohy

55 A Náhledy aplikace Obr. 4: Přihlášení uživatele Obr. 5: Nastavení aplikace A NÁHLEDY APLIKACE 55

56 A NÁHLEDY APLIKACE 56 Obr. 6: Evidence knih

57 A NÁHLEDY APLIKACE 57 Obr. 7: Nápověda

58 A NÁHLEDY APLIKACE 58 Obr. 8: Webový katalog

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Nástroje a frameworky pro automatizovaný vývoj Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Proces vývoje webové aplikace Předepsaná adresářová struktura. Kompilace zdrojových kódů.

Více

Multiplatformní osobní organizér v jazyce Java

Multiplatformní osobní organizér v jazyce Java Mendelova zemědělská a lesnická univerzita v Brně Provozně ekonomická fakulta Multiplatformní osobní organizér v jazyce Java Bakalářská práce Vedoucí práce: Ing. Petr Jedlička, Ph.D Petr Gola Brno 2009

Více

KIV/PIA 2013 Jan Tichava

KIV/PIA 2013 Jan Tichava KIV/PIA 2013 Jan Tichava Java EE JSF, PrimeFaces Spring JPA, EclipseLink Java Platform, Enterprise Edition Persistence Zobrazovací vrstva Interakce aplikací Deployment Java Persistence API Enterprise

Více

Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links

Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links links Apache Struts Article with examples JSTL a EL (into JSP) MVC, webové aplikace, JSP Bezpečnost ve webových

Více

Spring framework 2.0. Roman Pichlík http://sweb.cz/pichlik/ CZJUG http://java.cz/jug

Spring framework 2.0. Roman Pichlík http://sweb.cz/pichlik/ CZJUG http://java.cz/jug Spring framework 2.0 Spring framework 2.0 Roman Pichlík http://sweb.cz/pichlik/ Nejdůležitejší slide http://springframework.org/ http://www.springframework.org/documen Historie 2002 - Rod Johnson kniha

Více

UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky. Databázová aplikace pro evidenci mechatronických stavebnic Michal Grof

UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky. Databázová aplikace pro evidenci mechatronických stavebnic Michal Grof UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky Databázová aplikace pro evidenci mechatronických stavebnic Michal Grof Bakalářská práce 2011 Prohlášení autora Prohlašuji, že jsem tuto práci

Více

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text()); Anotace a Hibernate Aleš Nosek, Ondřej Vadinský, Daniel Krátký Anotace v Javě Anotace jsou novinkou v Javy verze 5. Anotace umožňují doplnit kód Javy o dodatečné informace. Zapisují se přímo do zdrojového

Více

VYUŽITÍ REGIONÁLNÍCH FUNKCÍ A WWW ROZHRANÍ V INTEGROVANÉM KNIHOVNÍM SYSTÉMU KPWINSQL

VYUŽITÍ REGIONÁLNÍCH FUNKCÍ A WWW ROZHRANÍ V INTEGROVANÉM KNIHOVNÍM SYSTÉMU KPWINSQL VYUŽITÍ REGIONÁLNÍCH FUNKCÍ A WWW ROZHRANÍ V INTEGROVANÉM KNIHOVNÍM SYSTÉMU KPWINSQL Petr Štefan Václav Trunec, KP-sys, Čacké 155, Pardubice 1 Úvod Firma KP-SYS spol. s r. o. dodává na náš trh integrované

Více

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV) Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java

Více

Vybrané partie z jazyka Java Spring a Enterprise JavaBeans (EJB)

Vybrané partie z jazyka Java Spring a Enterprise JavaBeans (EJB) Vybrané partie z jazyka Java Spring a Enterprise JavaBeans (EJB) Michal Papež Spring & EJB Program: K čemu je to dobré, historie, odlišnosti Spring 2.5 EJB 3.0 K čemu jsou? 1 Vývoj velkých podnikových

Více

KIV/PIA Semestrální práce

KIV/PIA Semestrální práce KIV/PIA Semestrální práce Diskuzní fórum Tomáš Časta(A10N0057P) casta@students.zcu.cz 1. Architektura aplikace 1.1 MVC Model-view-controller (MVC) je softwarová architektura, která rozděluje datový model

Více

Databázové systémy trocha teorie

Databázové systémy trocha teorie Databázové systémy trocha teorie Základní pojmy Historie vývoje zpracování dat: 50. Léta vše v programu nevýhody poměrně jasné Aplikace1 alg.1 Aplikace2 alg.2 typy1 data1 typy2 data2 vytvoření systémů

Více

UNIVERZITA PARDUBICE DOPRAVNÍ FAKULTA JANA PERNERA

UNIVERZITA PARDUBICE DOPRAVNÍ FAKULTA JANA PERNERA UNIVERZITA PARDUBICE DOPRAVNÍ FAKULTA JANA PERNERA SOFTWAROVÁ PODPORA PRO TECHNICKOU PŘÍPRAVU PROJEKTU V ELEKTRIZACI ŽELEZNIC PRAHA A.S. BC. LUKÁŠ HRON DIPLOMOVÁ PRÁCE 2008 Souhrn Tato práce si klade

Více

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

Individuální projekt z předmětu webových stránek 2012 - Anketa Jan Livora UŽIVATELSKÁ TECHNICKÁ DOKUMENTACE ANKETA : Individuální projekt z předmětu webových stránek 2012 - Anketa Jan Livora [2ITa] [sk1] 1 Obsah DŮLEŽITÉ UPOZORNĚNÍ!!!... 3 PROHLÁŠENÍ O AUTORSTVÍ:... 3 ANOTACE:...

Více

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23 Seminář Java Úvod Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Úvod 1/ 23 Téma přednášky Organizace semináře Java úvod, distribuce Radek Kočí Seminář Java Úvod 2/ 23

Více

Architektura aplikace

Architektura aplikace Architektura aplikace MARBES-JIRA plugin Tým: GRSS Členové: František Schneider Jaroslav Ráb Lukáš Gemela Jaromír Staněk Upravil Verze dokumentu Datum F. Schneider 1.0 25.3.2012 F. Schneider 2.0 25.4.2012

Více

M I S Y S - W E B. Intranet řešení systému MISYS. Verze 9.00. Příručka uživatele

M I S Y S - W E B. Intranet řešení systému MISYS. Verze 9.00. Příručka uživatele M I S Y S - W E B Intranet řešení systému MISYS Verze 9.00 Příručka uživatele GEPRO s.r.o. Září 2008 Copyright GEPRO s.r.o. 2008 Ochranné známky GEPRO spol. s r.o. KOKEŠ, MISYS Ochranné známky Microsoft

Více

IBM TRIRIGA Application Platform Verze 3 Vydání 4.2. Příručka instalace a implementace

IBM TRIRIGA Application Platform Verze 3 Vydání 4.2. Příručka instalace a implementace IBM TRIRIGA Application Platform Verze 3 Vydání 4.2 Příručka instalace a implementace Poznámka Před použitím těchto informací a produktu, který podporují, si přečtěte informace v části Upozornění na stránce

Více

Obrázek 6.14: Prohlížec nápovedy

Obrázek 6.14: Prohlížec nápovedy JavaHelp Základní popis systému JavaHelp Soucástí vetšiny interaktivních aplikací je nápoveda (help) aplikace v Jave nejsou výjimkou. Systém JavaHelp je napsaný v Jave a je urcený pro aplikace vytvárené

Více

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu Servlety a JSP Petr Adámek, petr.adamek@ibacz.eu Úvod Rekapitulace vstupních znalostí Standardy Nástroje (Běhové prostředí, nástroje pro vývoj) Servlety JSP JSP značky EL (Expression Language) Internacionalizace

Více

Vývoj, výroba, prodej a montáž docházkových a identifikačních systémů. Docházka 3000 Personalistika

Vývoj, výroba, prodej a montáž docházkových a identifikačních systémů. Docházka 3000 Personalistika BM Software, Němčičky 84, 69107 Němčičky u Břeclavi Vývoj, výroba, prodej a montáž docházkových a identifikačních systémů Tel: 519 430 765, Mobil: 608 447 546 e-mail: bmsoft@seznam.cz web: http://www.dochazka.eu

Více

MATURITNÍ PRÁCE dokumentace

MATURITNÍ PRÁCE dokumentace MATURITNÍ PRÁCE dokumentace Jídelníček SŠIEŘ pro Android Martin Bartoň školní rok: 2012/2013 obor: třída: Počítačové systémy PS4.A ABSTRAKT Práce je zaměřená na problematiku tvorby Android aplikací,

Více

MYBIZ - Řešení pro zpřístupnění dat ze stávajících aplikací na mobilních zařízeních (Mobilize your business!) Požadavky zákazníka.

MYBIZ - Řešení pro zpřístupnění dat ze stávajících aplikací na mobilních zařízeních (Mobilize your business!) Požadavky zákazníka. MYBIZ - Řešení pro zpřístupnění dat ze stávajících aplikací na mobilních zařízeních (Mobilize your business!) IT SYSTEMS a.s. Mnoho společností má implementovány aplikace, které byly vyvíjeny (případně

Více

Ant aneb Ferda Mravenec, práce všeho druhu

Ant aneb Ferda Mravenec, práce všeho druhu Ant aneb Ferda Mravenec, práce všeho druhu Nástroj na sestavování projektů (aplikací) podobný programu make, který se používá u programů v C či C++. Program Ant je volně k dispozici (tzv. The Apache Software

Více

UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Informační systém realitní kanceláře Jan Šimůnek

UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Informační systém realitní kanceláře Jan Šimůnek UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky Informační systém realitní kanceláře Jan Šimůnek Bakalářská práce 2011 Prohlášení autora Prohlašuji, že jsem tuto práci vypracoval samostatně.

Více

Platformy / technologie. Jaroslav Žáček jaroslav.zacek@osu.cz

Platformy / technologie. Jaroslav Žáček jaroslav.zacek@osu.cz Platformy / technologie Jaroslav Žáček jaroslav.zacek@osu.cz Které platformy / technologie znáte Java Java Java EE 5 Java EE 6 Pruning, Extensibility Ease of Dev, CDI, JAX-RS Java EE 7! JMS 2, Batch, Concurrency,

Více

Marek Laurenčík. Excel. práce s databázemi a kontingenčními tabulkami

Marek Laurenčík. Excel. práce s databázemi a kontingenčními tabulkami Marek Laurenčík Excel práce s databázemi a kontingenčními tabulkami 2010 Upozornění pro čtenáře a uživatele této knihy Všechna práva vyhrazena. Žádná část této tištěné či elektronické knihy nesmí být reprodukována

Více

MS ACCESS A MS WORD V KAŽDODENNÍ PRAXI

MS ACCESS A MS WORD V KAŽDODENNÍ PRAXI MS ACCESS A MS WORD V KAŽDODENNÍ PRAXI Martin Fussek VL Servis s.r.o., Ruská 24/83, 706 02 Ostrava Vítkovice, fussek@lahvarna.cz Abstrakt Příspěvek volně navazuje na můj příspěvek na TS 1999, přičemž nyní

Více

Databáze s tisíci uložených procedur. Pavel Bláhovec, DiS www.blahovec.cz pavel@blahovec.cz

Databáze s tisíci uložených procedur. Pavel Bláhovec, DiS www.blahovec.cz pavel@blahovec.cz Databáze s tisíci uložených procedur Pavel Bláhovec, DiS www.blahovec.cz pavel@blahovec.cz Kdo jsem 1/2 Vývojem software se zabývám přes 15 let Mobilní aplikace pro obchodníky Wella PageMaker plug in pro

Více

Statistica, kdo je kdo?

Statistica, kdo je kdo? Statistica, kdo je kdo? Newsletter Statistica ACADEMY Téma: Typy instalací Typ článku: Teorie Někteří z vás používají univerzitní licence, někteří síťové, podnikové atd. V tomto článku Vám představíme,

Více

UŽIV ATELSKÁ PŘÍRUČKA

UŽIV ATELSKÁ PŘÍRUČKA UŽIVATELSKÁ PŘÍRUČKA Autor: Marek Klimša Úprava: Stanislav Chromý Verze dokumentu: 1.1 Poslední aktualizace: 11. května 2012 Obsah 1. Začínáme 3 1.1 Co je to ADVOKÁTNÍ SPIS 3 1.2 Po prvním spuštění 3 1.3

Více

Úvod. Leden Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 22

Úvod. Leden Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 22 Seminář Java Úvod Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Úvod 1/ 22 Téma přednášky Organizace semináře Java úvod, distribuce Radek Kočí Seminář Java Úvod 2/

Více

Technologie Java. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/

Technologie Java. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Technologie Java Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Trocha historie Java vznikla v roce 1995 jak minimalistický programovací jazyk (211 tříd). Syntaxe vycházela z C/C++. V

Více

Vladimír Mach. @vladimirmach 2. 1. 2013

Vladimír Mach. @vladimirmach 2. 1. 2013 Vladimír Mach @vladimirmach 2. 1. 2013 SQL Server Compact Edition Jednoduchá relační databáze Použití i v malých zařízeních s omezenými zdroji Dříve pod názvem SQL Server Mobile Časté využití při programování

Více

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze NOVINKY V JEE EJB 3.1 Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze PROGRAM Seznámení s Java Enterprise Edition (JEE) Enterprise Java Beans (EJB) Novinky v EJB 3.1 2 JAVA EDITIONS Java

Více

Popis licencování, nastavení a ovládání replikací - přenosů dat

Popis licencování, nastavení a ovládání replikací - přenosů dat Popis licencování, nastavení a ovládání replikací - přenosů dat Ing. Martin Klinger 1.6.2016 Co jsou replikace? Sdílení dat, tzv. replikace najdou své uplatnění všude tam, kde je potřeba výměna dat v online

Více

DPH v Exact Globe Next 2013

DPH v Exact Globe Next 2013 DPH v Exact Globe Next 2013 Tento dokument obsahuje komplexní informace týkající se nastavení číselníků v software Exact Globe Next, potřebných pro správné fungování DPH a souhrnného hlášení, včetně změn,

Více

Free & Open Source software. Liberix. prezentací. Open Source. software. Free Software. projektů pro studenty. Rekapitulace. Liberix o.p.s.

Free & Open Source software. Liberix. prezentací. Open Source. software. Free Software. projektů pro studenty. Rekapitulace. Liberix o.p.s. Open Free & Open o.p.s. 3. 10. 2006 Obsah prezentace Open 1 2 3 Open 4 5 6 o.p.s. Open Naše obecně prospěšná společnost se zabývá propagací a podporou svobodných informačních technologií. Jde především

Více

Síťové propojení, konfigurace počítačů a programu Praktik

Síťové propojení, konfigurace počítačů a programu Praktik Síťové propojení, konfigurace počítačů a programu Praktik Propojení počítačů 2 počítače bez internetu Pokud potřebujeme propojit 2 počítače mezi sebou a vytvořit síť (lékař + sestra), lze je propojit kabelem

Více

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče. KAPITOLA 3 Architektura aplikací na frameworku Rails V této kapitole: modely, pohledy, řadiče. 58 Část I: Začínáme Jedna ze zajímavých vlastností frameworku Rails spočívá v tom, že klade docela závažná

Více

ADDAT HEAT Control - Návod k použití - verze 2.07 (firmware 1.44)

ADDAT HEAT Control - Návod k použití - verze 2.07 (firmware 1.44) - ADDAT HEAT Control - Návod k použití - verze 2.07 (firmware 1.44) ADDAT s.r.o. Májová 1126 463 11 Liberec 30 telefon: fax: http: e-mail: 485 102 271 485 114 761 www.addat.cz addat@addat.cz Obsah: 1.

Více

Konfigurace pracovní stanice pro ISOP-Centrum verze 1.08.20

Konfigurace pracovní stanice pro ISOP-Centrum verze 1.08.20 Informační systém ISOP 7-13 Vypracováno pro CzechInvest Konfigurace pracovní stanice pro ISOP-Centrum verze 1.08.20 vypracovala společnost ASD Software, s.r.o. Dokument ze dne 24.3.2009, verze 1.00 Konfigurace

Více

Obchodní podmínky technické podpory programu ESRI Developer Network (EDN)

Obchodní podmínky technické podpory programu ESRI Developer Network (EDN) Obchodní podmínky technické podpory programu ESRI Developer Network (EDN) Technická podpora EDN programu je poskytována ve formě balíčku 10 předplacených konzultačních hodin za cenu 15.000,- Kč. 1) V rámci

Více

BankKlient. FAQs. verze 9.50

BankKlient. FAQs. verze 9.50 BankKlient FAQs verze 9.50 2 BankKlient Obsah: Úvod... 3 Instalace BankKlient možné problémy... 3 1. Nejsou instalovány požadované aktualizace systému Windows... 3 2. Instalační program hlásí, že nemáte

Více

Program pro flexibilní tvorbu evidencí. VIKLAN - Evidence. Uživatelská příručka. pro seznámení se základními možnostmi programu

Program pro flexibilní tvorbu evidencí. VIKLAN - Evidence. Uživatelská příručka. pro seznámení se základními možnostmi programu Program pro flexibilní tvorbu evidencí VIKLAN - Evidence Uživatelská příručka pro seznámení se základními možnostmi programu Vlastimil Kubínek, Ing. Josef Spilka VIKLAN - Evidence Verse 1.11.8.1 Copyright

Více

InTouch 8.0 Subsystém distribuovaných alarmů

InTouch 8.0 Subsystém distribuovaných alarmů InTouch 8.0 Subsystém distribuovaných alarmů Pavel Průša Pantek (CS) s.r.o. Strana 2 Obsah Úvod Úvod Subsystém distribuovaných alarmů Ukládání alarmů do relační databáze Zobrazování, potvrzování a potlačování

Více

České vysoké učení technické, Fakulta elektrotechnická Úvodní studie semestrálního projektu z X36SIN

České vysoké učení technické, Fakulta elektrotechnická Úvodní studie semestrálního projektu z X36SIN České vysoké učení technické Fakulta elektrotechnická Softwárové inženýrství (X36SIN) - Katedra počítačů Semestrální projekt I. ÚVODNÍ STUDIE Realizační tým: Petr Vízner (mailto:viznep1@fel.cvut.cz) -

Více

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např.

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např. 2 přednáška 2 října 2012 10:32 Souborově orientované uchování dat Slabý HW Není možné uchovávat "velká data" - maximálně řádově jednotky MB Na každou úlohu samostatná aplikace, která má samostatná data

Více

PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY BAKALÁŘSKÁ PRÁCE. Vytváření a evidence smluv. 2012 Petr Čulík

PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY BAKALÁŘSKÁ PRÁCE. Vytváření a evidence smluv. 2012 Petr Čulík PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY BAKALÁŘSKÁ PRÁCE Vytváření a evidence smluv 2012 Petr Čulík Anotace Aplikace slouží uživateli jako nástroj pro vytváření a evidenci jednorázových,

Více

Postup zprovoznění aplikace Crypta 2

Postup zprovoznění aplikace Crypta 2 Identifikace Číslo jednací Nahrazuje Klasifikace Veřejný Platnost 8. 11. 2015 Účinnost 8. 11. 2015 Postup zprovoznění aplikace Crypta 2 verze 3.1 Česká pošta, s.p., se sídlem Politických vězňů 909/4, 225

Více

CLIENT-SERVER PRODUKTY FIRMY YAMACO SOFTWARE PRVODCE PRO KONFIGUROVÁNÍ PROVOZU V SÍTÍCH WINDOWS A LINUX V PROSTEDÍ DB SERVERU FIREBIRD

CLIENT-SERVER PRODUKTY FIRMY YAMACO SOFTWARE PRVODCE PRO KONFIGUROVÁNÍ PROVOZU V SÍTÍCH WINDOWS A LINUX V PROSTEDÍ DB SERVERU FIREBIRD CLIENT-SERVER PRODUKTY FIRMY YAMACO SOFTWARE PRVODCE PRO KONFIGUROVÁNÍ PROVOZU V SÍTÍCH WINDOWS A LINUX V PROSTEDÍ DB SERVERU FIREBIRD INFORMACE O INSTALACI LOKÁLNÍHO SERVERU FIREBIRD INFORMACE O INSTALACI

Více

MANUÁL VERZE 4.3 V 06082012

MANUÁL VERZE 4.3 V 06082012 MANUÁL VERZE 4.3 V 06082012 OBSAH: OBSAH:... 2 Instalace... 3 Registrace... 3 Upgrade... 3 Konfigurace PC... 4 Optimální konfigurace... 4 Popis aplikace... 4 Hlavička... 4 Soupiska hráčů domácí / hosté...

Více

PA165: Úvod do Java EE. Petr Adámek

PA165: Úvod do Java EE. Petr Adámek PA165: Úvod do Java EE Petr Adámek Obsah přednášky Organizace předmětu Formy výuky Hodnocení Osnova Java EE aplikace Architektury Java EE aplikací Technologie Java EE Základní koncepty PA165: Úvod do Java

Více

ZPRACOVÁNÍ NEURČITÝCH ÚDAJŮ V DATABÁZÍCH

ZPRACOVÁNÍ NEURČITÝCH ÚDAJŮ V DATABÁZÍCH 0. Obsah Strana 1 z 12 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV AUTOMATIZACE A INFORMATIKY FACULTY OF MECHANICAL ENGINEERING INSTITUTE OF AUTOMATION

Více

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne. Úvod Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne. Organizace předmětu Materiály k předmětu -Web stránky: http://cw.felk.cvut.cz/doku.php/courses/x33eja/start

Více

VAR-NET INTEGRAL Manuál správce VNI 5.1 VAR-NET INTEGRAL. verze 0.2. Manuál správce VNI 5.1

VAR-NET INTEGRAL Manuál správce VNI 5.1 VAR-NET INTEGRAL. verze 0.2. Manuál správce VNI 5.1 Manuál správce VNI 5.1 verze 0.2 Manuál správce VNI 5.1 VARIANT plus, spol. s.r.o., U Obůrky 5, 674 01 TŘEBÍČ, tel.: 565 659 600 technická linka 565 659 655 (pracovní doba 7:30 15:00) www.variant.cz isb@variant.cz

Více

Workmonitor. Servisní návod. 24. června 2014 w w w. p a p o u c h. c o m

Workmonitor. Servisní návod. 24. června 2014 w w w. p a p o u c h. c o m Servisní návod 24. června 2014 w w w. p a p o u c h. c o m Workmonitor Katalogový list Vytvořen: 18.5.2009 Poslední aktualizace: 24.6 2014 09:20 Počet stran: 11 2014 Adresa: Strašnická 3164/1a 102 00 Praha

Více

E-EDUCATION NEBOLI VYUŽITÍ ICT VE ŠKOLÁCH

E-EDUCATION NEBOLI VYUŽITÍ ICT VE ŠKOLÁCH E-EDUCATION NEBOLI VYUŽITÍ ICT VE ŠKOLÁCH ANDREA BAREŠOVÁ A KOL. Hewlett-Packard Abstrakt: e-education je název znamenající zapojení informačních technologií do výuky. S tímto pojmenováním přišla společnost

Více

Sem vložte zadání Vaší práce.

Sem vložte zadání Vaší práce. Sem vložte zadání Vaší práce. České vysoké učení technické v Praze Fakulta informačních technologií Katedra softwarového inženýrství Bakalářská práce Rezervační komponenta pro informační systém sportovního

Více

Databázové a informační systémy

Databázové a informační systémy Databázové a informační systémy doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Jak ukládat a efektivně zpracovávat

Více

Uživatelská příručka

Uživatelská příručka Uživatelská příručka PC výkaznictví JASU (program pro zpracování účetního výkaznictví) březen 2012 Dodavatel: MÚZO Praha s.r.o. Politických vězňů 15 P.O.Box 36 111 21 Praha 1 telefon: 224 091 619 fax:

Více

Další vlastnosti Springu Moduly Springu. Spring Framework. Pavel Mička. Pavel Mička Spring Framework 1/18

Další vlastnosti Springu Moduly Springu. Spring Framework. Pavel Mička. Pavel Mička Spring Framework 1/18 Spring Framework Pavel Mička Pavel Mička Spring Framework 1/18 Obsah Úvod 1 Úvod 2 Service locator Dependency injection Rozsah platnosti bean 3 4 Pavel Mička Spring Framework 2/18 Co je to Spring framework

Více

Nasazení Object Relation Mapping nástrojů nad legacy datovým modelem

Nasazení Object Relation Mapping nástrojů nad legacy datovým modelem Nasazení Object Relation Mapping nástrojů nad legacy datovým modelem 1 Ondřej Berger, Pavel Janečka, 2 Lukáš Černovský 1 Univerzita Hradec Králové Fakulta informatiky a managementu KIKM Hradecká 1249/6,

Více

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework úvod, historie, základy.net framework, programovací jazyky, vývojové prostředky Úvod strana 2 Cíl předmětu Seznámit se s vývojem aplikací

Více

USNESENÍ VLÁDY ČESKÉ REPUBLIKY č. 624/2001

USNESENÍ VLÁDY ČESKÉ REPUBLIKY č. 624/2001 USNESENÍ VLÁDY ČESKÉ REPUBLIKY č. 624/2001 V l á d a I. s c h v a l u j e Pravidla, zásady a způsob zabezpečování kontroly užívání počítačových programů uvedená v příloze tohoto usnesení (dále jen "Pravidla")

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Uživatelský manuál Radekce-Online.cz

Uživatelský manuál Radekce-Online.cz Uživatelský manuál Radekce-Online.cz (revize 06/2011) V prvním kroku třeba vstoupit do administrace na adrese www.redakce-online.cz kterou naleznete na záložce Administrace / Vstup do Administrace, pro

Více

MASARYKOVA UNIVERZITA V BRNĚ FAKULTA INFORMATIKY

MASARYKOVA UNIVERZITA V BRNĚ FAKULTA INFORMATIKY MASARYKOVA UNIVERZITA V BRNĚ FAKULTA INFORMATIKY Evidence filmových nahrávek Bakalářská práce Richard Karmazín 2005 Prohlášení Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval

Více

Teoretické minimum z PJV

Teoretické minimum z PJV Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov

Více

Anotace a Hibernate. Aleš Nosek Ondřej Vadinský Daniel Krátký

Anotace a Hibernate. Aleš Nosek Ondřej Vadinský Daniel Krátký Anotace a Hibernate Aleš Nosek Ondřej Vadinský Daniel Krátký Anotace v Javě novinka Javy 5 umožňují k Java kódu přidávat dodatečné informace (podobně jako JavaDoc) za předchůdce anotací je možné považovat

Více

Obsah. Základy práce s databází 13. Tabulky 43. Obsah. Úvod 9 Poděkování 12

Obsah. Základy práce s databází 13. Tabulky 43. Obsah. Úvod 9 Poděkování 12 Obsah Úvod 9 Poděkování 12 1 Základy práce s databází 13 Microsoft Access úvodní teoretické informace 14 Co je Microsoft Access 14 Kdy je vhodné použít Access 14 Jednoduché vysvětlení, co je databáze 15

Více

Vítejte v průvodci instalace a ovládání výukového softwaru edu-learning pro českou verzi Microsoft Office 2007.

Vítejte v průvodci instalace a ovládání výukového softwaru edu-learning pro českou verzi Microsoft Office 2007. Vítejte v průvodci instalace a ovládání výukového softwaru edu-learning pro českou verzi Microsoft Office 2007. A. Požadavky před instalací... 2 Minimální konfigurace... 2 B. Postup instalace... 3 C. Spuštění

Více

TouchGuard Online pochůzkový systém

TouchGuard Online pochůzkový systém TouchGuard Online pochůzkový systém Uživatelský manuál TTC TELEKOMUNIKACE, s.r.o. Třebohostická 987/5 100 00 Praha 10 tel.: 234 052 111 fax.: 234 052 999 e-mail: ttc@ttc.cz http://www.ttc-telekomunikace.cz

Více

Funkce Chytrý dotyk. verze 1.4. A-61629_cs

Funkce Chytrý dotyk. verze 1.4. A-61629_cs Funkce Chytrý dotyk verze 1.4 A-61629_cs Používání funkce chytrého dotyku Obsah Přehled... 1 Spuštění funkce chytrého dotyku... 2 Používání funkce chytrého dotyku s výchozími čísly funkcí a předem definovanými

Více

Sísyfos Systém evidence činností

Sísyfos Systém evidence činností Sísyfos Systém evidence Sísyfos : Evidence pracovních Systém Sísyfos je firemní aplikace zaměřená na sledování pracovních úkonů jednotlivých zaměstnanců firmy. Umožňuje sledovat pracovní činnosti na různých

Více

Modul ročních zpráv o výsledcích finančních kontrol

Modul ročních zpráv o výsledcích finančních kontrol Ministerstvo financí Odbor 47 Centrální harmonizační jednotka pro finanční kontroly Informační systém finanční kontroly ve veřejné správě Modul ročních zpráv o výsledcích finančních kontrol Prosinec 2015

Více

Projekty pro výuku programování v jazyce Java

Projekty pro výuku programování v jazyce Java JIHOČESKÁ UNIVERZITA V ČESKÝCH BUDĚJOVICÍCH Pedagogická fakulta Katedra informatiky Akademický rok: 2006/2007 TEZE BAKALÁŘSKÉ PRÁCE Projekty pro výuku programování v jazyce Java Jméno: František Přinosil

Více

Abstrakt. Klíčová slova. Abstract. Key words

Abstrakt. Klíčová slova. Abstract. Key words Vize portálu KNIŽNÍ DATABÁZE Jakub Houžvička Abstrakt Tato semestrální práce má pomoci seznámit s vizí projektu Knižní databáze. Jedná se o projekt v podobě webového portálu přístupnému všem uživatelům

Více

Zakázka Vnitřní integrace úřadu v rámci PROJEKTU Rozvoj služeb egovernmentu ve správním obvodu ORP Rosice

Zakázka Vnitřní integrace úřadu v rámci PROJEKTU Rozvoj služeb egovernmentu ve správním obvodu ORP Rosice Zakázka Vnitřní integrace úřadu v rámci PROJEKTU Rozvoj služeb egovernmentu ve správním obvodu ORP Rosice Příloha č. 1 Výzvy k podání nabídky a k prokázání splnění kvalifikace na realizaci veřejné zakázky

Více

SMART GATE webové a aplikační ovládací rozhraní zařízení ESIM120

SMART GATE webové a aplikační ovládací rozhraní zařízení ESIM120 ALARM PRODEJ.CZ OFICIÁLNÍ DISTRIBUTOR VÝROBKŮ ELDES PRO ČESKOU REPUBLIKU UVÁDÍ INSTRUKTÁŽNÍ PREZENTACI SMART GATE webové a aplikační ovládací rozhraní zařízení ESIM120 ALARM PRODEJ.CZ je součástí CENTR

Více

20. Projekt Domácí mediotéka

20. Projekt Domácí mediotéka Projekt Domácí mediotéka strana 211 20. Projekt Domácí mediotéka 20.1. Základní popis, zadání úkolu V projektu Domácí mediotéka (Dome) se jednoduchým způsobem evidují CD a videa. Projekt je velmi jednoduchý

Více

Na tomto místě bude oficiální zadání vaší práce

Na tomto místě bude oficiální zadání vaší práce Na tomto místě bude oficiální zadání vaší práce Toto zadání je podepsané děkanem a vedoucím katedry, musíte si ho vyzvednout na studiijním oddělení Katedry počítačů na Karlově náměstí, v jedné odevzdané

Více

Inteligentní vyhledávač hodnocení knih

Inteligentní vyhledávač hodnocení knih MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Inteligentní vyhledávač hodnocení knih Bakalářská práce Tomáš Kácel Brno, 2012 Prohlášení Prohlašuji, že tato práce je mým původním autorským dílem, které jsem

Více

Software pro personalizaci karet

Software pro personalizaci karet Software pro personalizaci karet Intuitivní, rychlý a efektivní, těžko uvěřit, že je to software pro identifikační karty. Jediný program pro všechny tiskárny. Asure ID 7 pracuje s tiskárnami pro potisk

Více

ČESKÝ STATISTICKÝ ÚŘAD Praha 10, Na padesátém 81. číslo TP 15/2010 TECHNICKÝ PROJEKT. sběru, zpracování a prezentace dat v resortu ČSÚ NÁZEV

ČESKÝ STATISTICKÝ ÚŘAD Praha 10, Na padesátém 81. číslo TP 15/2010 TECHNICKÝ PROJEKT. sběru, zpracování a prezentace dat v resortu ČSÚ NÁZEV ČESKÝ STATISTICKÝ ÚŘAD Praha 10, Na padesátém 81 číslo TP 15/2010 TECHNICKÝ PROJEKT sběru, zpracování a prezentace dat v resortu ČSÚ NÁZEV Evidenční systém statistického výkaznictví Řešitelé (jméno, organizace)

Více

Server-side technologie pro webové aplikace

Server-side technologie pro webové aplikace Server-side technologie pro webové aplikace PIA 2011/2012 Téma 6 Copyright 2006 Přemysl Brada, Západočeská univerzita Server-side scriptování Cíl dynamické generování webového obsahu/rozhraní integrace

Více

Modul EPNO. Téma: Elektronické odesílání evidenčních listů přepravy nebezpečných odpadů

Modul EPNO. Téma: Elektronické odesílání evidenčních listů přepravy nebezpečných odpadů Modul EPNO Téma: Elektronické odesílání evidenčních listů přepravy nebezpečných odpadů Program: EVI 8 Vypracoval: Mgr. Tomáš Čejchan (oddělení Podpora) Revize: 07.03.2014 Tento dokument popisuje funkcionalitu

Více

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován. Instalace Produkt se neinstaluje. Stačí soubor uložit na libovolné místo na Vašem počítací (klikněte pravým tlačítkem a dejte 'uložit cíl jako ), pak jen spustit. Požadavky na software Produkt je odzkoušen

Více

Inovace firemnı webove aplikace SPEA-SYSTE M

Inovace firemnı webove aplikace SPEA-SYSTE M Inovace firemnı webove aplikace SPEA-SYSTE M 1. ÚVOD Zkratka SPEA je synonymem pro Servis Průmyslové Elektroniky a Automatizace. Jedná se o ryze českou společnost zabývající se převážně opravami průmyslové

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

NÁVRH A REALIZACE WWW PREZENTACE ČKR

NÁVRH A REALIZACE WWW PREZENTACE ČKR NÁVRH A REALIZACE WWW PREZENTACE ČKR Šárka Ocelková Ústav výpočetní techniky MU v Brně, Botanická 68a, 602 00 Brno, ČR E-mail: ocelkova@ics.muni.cz Abstrakt U zrodu www prezentace České konference rektorů

Více

Sem vložte zadání Vaší práce.

Sem vložte zadání Vaší práce. Sem vložte zadání Vaší práce. České vysoké učení technické v Praze Fakulta informačních technologií Katedra softwarového inženýrství Bakalářská práce Tvorba formulářů z popisu v XML s použitím knihovny

Více

MANUÁL MOBILNÍ APLIKACE GOLEM PRO OPERAČNÍ SYSTÉM ANDROID 4.X A VYŠŠÍ

MANUÁL MOBILNÍ APLIKACE GOLEM PRO OPERAČNÍ SYSTÉM ANDROID 4.X A VYŠŠÍ MANUÁL MOBILNÍ APLIKACE GOLEM PRO OPERAČNÍ SYSTÉM ANDROID 4.X A VYŠŠÍ 1 OBSAH 1.Popis... 3 2.Ovládání aplikace...3 3.Základní pojmy... 3 3.1.Karta...3 3.2.Čtečka...3 3.3.Skupina...3 3.4.Kalendář...3 3.5.Volný

Více

2 Popis softwaru Administrative Management Center

2 Popis softwaru Administrative Management Center Testovací protokol USB token ikey 4000 1 Úvod 1.1 Testovaný produkt Hardware: USB token ikey 4000 Software: Administrative Management Center 7.0 Service Pack 8 SafeNet Borderless Security 7.0 Service Pack

Více

WiFiS Uživatelská příručka Obsah

WiFiS Uživatelská příručka Obsah WiFiS Uživatelská příručka Obsah Nastavení aplikace Popis jednotlivých číselníků Agenda ISP internet service provider Obecné Nastavení Nastavení jednotlivých číselníků Skupiny číselníku Agenda, ISP a Obecné

Více

OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha OSGi Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Více

Elektronická distribuce a správa dokumentů v rámci Policie České Republiky

Elektronická distribuce a správa dokumentů v rámci Policie České Republiky PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY BAKALÁŘSKÁ PRÁCE Elektronická distribuce a správa dokumentů v rámci Policie České Republiky 2010 Jan Tonner Anotace V této bakalářské práci

Více

Microsoft Office 2003 Souhrnný technický dokument white paper

Microsoft Office 2003 Souhrnný technický dokument white paper Microsoft Office 2003 Souhrnný technický dokument white paper Přehled inteligentních klientských aplikací založených na sadě Microsoft Office 2003 System Publikováno: Duben 2003 Shrnutí: Inteligentní klienti

Více