<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sk">
	<id>http://www.kiwiki.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dusan</id>
	<title>Kiwiki - Príspevky používateľa [sk]</title>
	<link rel="self" type="application/atom+xml" href="http://www.kiwiki.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dusan"/>
	<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php/%C5%A0peci%C3%A1lne:Pr%C3%ADspevky/Dusan"/>
	<updated>2026-04-16T20:01:55Z</updated>
	<subtitle>Príspevky používateľa</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Bakal%C3%A1rske_pr%C3%A1ce&amp;diff=6908</id>
		<title>Bakalárske práce</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Bakal%C3%A1rske_pr%C3%A1ce&amp;diff=6908"/>
		<updated>2010-09-05T13:58:57Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ako_pisat_wikiPracu|Dusan|Ggaspar|Jakub Trska}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;mainpage_topbox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;mainpage_pagetitle&amp;quot;&amp;gt;Bakalárske práce 2009/2010&amp;lt;/div&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;  border=1 cellpadding=5 cellspacing=0 style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!Autor&lt;br /&gt;
!Názov práce&lt;br /&gt;
!style=&amp;quot;width:150px&amp;quot;|Stav práce&lt;br /&gt;
!style=&amp;quot;width:90px&amp;quot;|Zadanie&lt;br /&gt;
|-&lt;br /&gt;
|Milan Porubský&lt;br /&gt;
|[[Systém tvorby rozvrhu]]&lt;br /&gt;
|{{stav_prace|100}}&lt;br /&gt;
|[[Systém tvorby rozvrhu (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Dušan Pagáč&lt;br /&gt;
|[[Off-line funkcionalita on-line web aplikácií]]&lt;br /&gt;
|{{stav_prace|98}}&lt;br /&gt;
|[[Off-line funkcionalita on-line web aplikácií (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Dávid Ďurika&lt;br /&gt;
|[[Štatistický modul v systéme rozvrhu FM]]&lt;br /&gt;
|{{stav_prace|45}}&lt;br /&gt;
|[[Štatistický modul v systéme rozvrhu FM (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Gabriel Gašpar, Bc.&lt;br /&gt;
|[[Autonómny systém pre zber teplotných dát z pôdneho profilu]]&lt;br /&gt;
|{{stav_prace|100}}&lt;br /&gt;
|[[Autonómny systém pre zber teplotných dát z pôdneho profilu (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Lukáš Krajči&lt;br /&gt;
|[[Otvorené formáty súborov kancelárskych softvérov]]&lt;br /&gt;
|{{stav_prace|66.6}}&lt;br /&gt;
|[[Otvorené formáty súborov kancelárskych softvérov (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Martin Pilař&lt;br /&gt;
|[[Poloautomatický parkovací systém]]&lt;br /&gt;
|{{stav_prace|100}}&lt;br /&gt;
|[[Poloautomatický parkovací systém (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Ľubomír Milko&lt;br /&gt;
|[[Aplikácie teórie grafov a teórie hier v rozhodovacích problémoch]]&lt;br /&gt;
|{{stav_prace|70}}&lt;br /&gt;
|[[Aplikácie teórie grafov a teórie hier v rozhodovacích problémoch (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Peter Magala&lt;br /&gt;
|[[Bezpečnosť webových aplikácií]]&lt;br /&gt;
|{{stav_prace|100}}&lt;br /&gt;
|[[Bezpečnosť webových aplikácií (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Ján Čižmárik&lt;br /&gt;
|[[Metódy riešenia optimalizačných problémov]]&lt;br /&gt;
|{{stav_prace|20}}&lt;br /&gt;
|[[Metódy riešenia optimalizačných problémov (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Martin Cibulka&lt;br /&gt;
|[[Nastavenie priority procesu a vplyv na jeho činnosť v operačnom systéme]]&lt;br /&gt;
|{{stav_prace|98}}&lt;br /&gt;
|[[Nastavenie priority procesu a vplyv na jeho činnosť v operačnom systéme (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Lukáš Ronec&lt;br /&gt;
|[[Generátor náhľadov fotografií umiestnených na webe]]&lt;br /&gt;
|{{stav_prace|0}}&lt;br /&gt;
|[[Generátor náhľadov fotografií umiestnených na webe (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Július Jančo&lt;br /&gt;
|[[Implementácia protokolu RC5 na platforme procesora Cypress]]&lt;br /&gt;
|{{stav_prace|100}}&lt;br /&gt;
|[[Implementácia protokolu RC5 na platforme procesora Cypress (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Juraj Prívara&lt;br /&gt;
|[[Použitie mikrouchopovačov MEMS]]&lt;br /&gt;
|{{stav_prace|65}}&lt;br /&gt;
|[[Použitie mikrouchopovačov MEMS (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Emanuel Dubovan&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dušan Vojsovič&lt;br /&gt;
|[[Porovnanie výkonnosti virtualizačných softvérových produktov]]&lt;br /&gt;
|{{stav_prace|20}}&lt;br /&gt;
||[[Porovnanie výkonnosti virtualizačných softvérových produktov (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Jozef Janega&lt;br /&gt;
|[[Fotoelektrický parkovací senzor]]&lt;br /&gt;
|{{stav_prace|10}}&lt;br /&gt;
||[[Fotoelektrický parkovací senzor (Zadanie)|Zadanie BP]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;mainpage_topbox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;mainpage_pagetitle&amp;quot;&amp;gt;Bakalárske práce 2008/2009&amp;lt;/div&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;  border=1 cellpadding=5 cellspacing=0 style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:yellow&amp;quot;&lt;br /&gt;
! Autor&lt;br /&gt;
!Názov&lt;br /&gt;
!style=&amp;quot;width:150px&amp;quot;|Stav práce&lt;br /&gt;
!style=&amp;quot;width:90px&amp;quot;|Zadanie&lt;br /&gt;
|-&lt;br /&gt;
|Milan Lokšík&lt;br /&gt;
|[[Simulácia a modelovanie technologických procesov pomocou stavebnice FESTO]]&lt;br /&gt;
|{{stav_prace|80}}&lt;br /&gt;
|- &lt;br /&gt;
|Ivana Zuzinová&lt;br /&gt;
|[[Pokročilé vlastnosti skiptovacích jazykov]]&lt;br /&gt;
|{{stav_prace|100}}&lt;br /&gt;
|-&lt;br /&gt;
|Martin Starosta&lt;br /&gt;
|[[Webové služby v Jave]]&lt;br /&gt;
|{{stav_prace|100}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Staršie práce budú pridané.&lt;br /&gt;
&lt;br /&gt;
[[Kategória:Študentské práce]]&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Off-line_funkcionalita_on-line_web_aplik%C3%A1ci%C3%AD&amp;diff=6906</id>
		<title>Off-line funkcionalita on-line web aplikácií</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Off-line_funkcionalita_on-line_web_aplik%C3%A1ci%C3%AD&amp;diff=6906"/>
		<updated>2010-09-05T13:57:49Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:php]]&lt;br /&gt;
[[Kategória:web]]&lt;br /&gt;
{{Hlavička_FM|{{PAGENAME}}|Dušan Pagáč|Ing. Juraj Ďuďák|&lt;br /&gt;
2009/2010&lt;br /&gt;
|Bakalárska práca|Mechatronika}} &lt;br /&gt;
{{Praca_uvod|1|Off-line funkcionalita on-line web aplikácií|Štruktúra webovej aplikácie|Technológie off-line web aplikácií|Systémy na vizualizáciu rozvrhu hodín|Návrh používateľského rozhrania rozvrhu FM TnUAD}}&lt;br /&gt;
__TOC__&lt;br /&gt;
{{Abstrakt&lt;br /&gt;
|Bakalárska práca sa zaoberá web aplikáciami, ktoré sú schopné pracovať aj v režime off-line. V prvej kapitole je rozobraná architektúru web aplikácií. Zaoberá sa štruktúrou webovej aplikácie pracujúcej aj v režime off-line. V druhej časti je popísaná technológia Google Gears od firmy Google, ktorá toto umožňuje. Následne sú uvedené výhody a nevýhody tejto technológie a možnosti jej praktického využitia vo webových aplikáciách. V práci je spomenutá aj nová špecifikácia HTML5, ktorá taktiež prináša off-line podporu pre webové aplikácie. V ďalšej časti sa venuje aplikáciám na tvorbu a zobrazovanie rozvrhov a návrhu front-endu rozvrhu Fakulty mechatroniky. Na zabezpečenie off-line funkcionality sme použili rozšírenie Google Gears.&lt;br /&gt;
|This bachelor work deals with web applications which are able to work in an off-line mode. The first part is concerned with the architecture of web applications. It is devoted to the structure of web-application able to work also in the off-line mode. The Google Gears technology by the Google company which makes this possible is described in the second part. Consequently, the advantages and the disadvantages are stated as well as the posibilities of&amp;amp;nbsp;the&amp;amp;nbsp;&amp;amp;nbsp;practical usage in the web aplications. The new specification HTML5 that also offers off-line support for web applications is mentioned in this work, too. The final part is&amp;amp;nbsp;dedicated to the applications used for creation and display of timetables and design of front-end directly for Faculty of mechatronics. The off-line functionality has been ensured by the Google Gears extention.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Úvod'''&lt;br /&gt;
&lt;br /&gt;
S obrovskou rýchlosťou akou sa internet rozšíril a stal sa každodennou súčasťou nášho života sme si ani neuvedomili, ako sme od neho závislí. Stretávame sa s ním na každom mieste, či už je to v práci, škole alebo domácnosti. Veľký problém nastáva pri nedostupnosti signálu, napríklad v odľahlých častiach alebo pri výpadku pripojenia. Tento problém sa snaží vyriešiť firma Google so svojim open-source rozšírením Google Gears pre internetové prehliadače. Zároveň postupne presadzuje používanie tejto technológie aj vo svojich aplikáciách. Vďaka open-source je možné, aby túto technológiu použil každý. &lt;br /&gt;
Pre správne pochopenie ako táto technológia pracuje, rozoberieme v prvej kapitole samotnú štruktúru web aplikácií. Následne sa budeme venovať optimálnej štruktúre web aplikácií s podporom režimu off-line, funkčnosti a synchronizácií. &lt;br /&gt;
Druhá časť tejto práce je zameraná na objasnenie princípu činnosti Google Gears a vysvetľuje prácu s touto technológiou. Spomenuté sú aj webové aplikácie, ktoré túto výhodu podpory v režime off-line v praxi využívajú. Táto kapitola sa venuje aj novej špecifikácií značkovacieho jazyka HTML5, ktorá je v súčasnosti vo vývoji a v budúcnosti má obsahovať podporu off-line aplikácií. &lt;br /&gt;
Tretia kapitola sa zaoberá systémami na vizualizáciu rozvrhu. V nej si rozoberieme akým spôsobom sa zobrazujú výstupné dáta programov a web aplikácií na tvorbu rozvrhu. Zhodnotíme aké nedostatky spôsobujú neprehľadnosť v používateľskom prostredí.&lt;br /&gt;
Záverečná časť sa venuje praktickej časti tejto práce, a to návrhu používateľského rozhrania rozvrhu Fakulty mechatroniky a zabezpečeniu funkcionality v režime off-.line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Štruktúra webovej aplikácie=&lt;br /&gt;
&lt;br /&gt;
Webová aplikácia je aplikácia, ktorá je prístupná pomocou webového prehliadača cez sieť internet a intranet. Skladá sa z viacerých vrstiev. Rozoznávame dvojvrstvové alebo trojvrstvové, niekedy nazývané viacvrstvové. &lt;br /&gt;
 &lt;br /&gt;
==Dvojvrstvové web aplikácie==&lt;br /&gt;
&lt;br /&gt;
Dvojvrstvová aplikácia sa skladá z klientskej a dátovej vrstvy. Klientska vrstva obsahuje väčšinu aplikačnej logiky, s ktorou sa pracuje priamo nad dátovým zdrojom. Takýto dátový zdroj môže byť reprezentovaný relačnou databázou. Ďalšie zdroje môžu byť súbory alebo iné aplikácie. Schému dvojvrstvovej web aplikácie môžeme vidieť na obrázku (Obr 1.1).&lt;br /&gt;
&lt;br /&gt;
[[Image:Example.jpg|center|framed|Obr 1.1 Schéma dvojvrstvovej web aplikácie. Zdroj: [1] ]]&lt;br /&gt;
&lt;br /&gt;
Nevýhody tohto modelu sa ukázali pri vzrastajúcej komplexnosti klientskych aplikácií. S ich zložitosťou vzrastali aj výkonové nároky na klientské počítače. S masívnym rozšírením aplikácií boli softvérové firmy nútené reagovať na požiadavky klientov.  Napríklad zdieľanie zdrojov, obmedzenie dátového prenosu atď. Preto sa začalo uvažovať o trojvrstvovej architektúre, ktorá by tieto požiadavky pokryla.&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
==Trojvrstvové web aplikácie==&lt;br /&gt;
&lt;br /&gt;
Riešenie sa našlo v podobe pridania tretej – strednej vrstvy. Samozrejme sa nejednalo len o pridanie ďalšej vrstvy. Bolo nutné špecifikovať jednotlivé vrstvy, respektíve ich úlohu v architektúre. Trojvrstvovú architektúru zobrazuje schéma (Obr. 1.2).&lt;br /&gt;
&lt;br /&gt;
[[Súbor:bp_off_web_1.jpg|center|framed|Obr. 1.2 Schéma trojvrstvovej aplikácie. Zdroj: [1]]]&lt;br /&gt;
&lt;br /&gt;
===Zmeny v klientskej vrstve===&lt;br /&gt;
&lt;br /&gt;
Najväčšia zmena nastala v prípade klientskej vrstvy. Vďaka novo definovanej aplikačnej vrstve bolo možné logiku aplikácie presunúť na server tejto vrstvy. Celý výpočtový výkon bol prenesený na výkonné servery. Presunutím aplikačnej logiky na jedno miesto sme dosiahli lepšiu možnosť jej zdieľania, správy a dostupnosti. Významnou mierou sa podarilo redukovať dátový prenos, pretože komunikácia je sústredená medzi serverom a dátovým zdrojom.&lt;br /&gt;
&lt;br /&gt;
===Aplikačná vrstva===&lt;br /&gt;
&lt;br /&gt;
Z pohľadu doby prešla aplikačná vrstva najväčším vývojom. Táto vrstva, resp. aplikačná logika, zaisťuje prístup k dátam, prácu s dátami a ich poskytnutie vo vhodnom formáte (XML, HTML) pre klientskú vrstvu. &lt;br /&gt;
&lt;br /&gt;
==Model-View-Controller (MVC)==&lt;br /&gt;
&lt;br /&gt;
Model-view-controller je architektonický vzor využívaný pri tvorbe aplikácií, ktorý oddeľuje dátový model, používateľské rozhranie a riadiacu logiku. Vytváranie aplikácie s využitím architektúry MVC vyžaduje tri komponenty:&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Model je funkčným a dátovým základom celej aplikácie. Poskytuje prostriedky pre prístup k dátovej základni, stavom aplikácie, ukladaniu a aktualizácií.&lt;br /&gt;
===View===&lt;br /&gt;
View zobrazuje obsah Modelu, zaisťuje grafický či iný výstup aplikácie. Cez Model pristupuje k dátam, stavom aplikácie a špecifikuje ako majú byť prezentované. Pri zmene stavu Modelu aktualizuje zobrazenie. V prípade webových aplikácií View generuje príslušný HTML kód, ktorý je odoslaný prehliadaču ako odpoveď na požiadavka.&lt;br /&gt;
===Controller===&lt;br /&gt;
Controller definuje správanie aplikácie. Spracováva všetky vstupy a udalosti z používateľského rozhrania. Na ich základe volá príslušné procesy Modelu, mení stav a pod. Podľa udalostí prijatých od používateľa a podľa výsledkov akcií Modelu potom Controller vyberie vhodné View pre ďalšie zobrazenie.&lt;br /&gt;
===Výhody vzoru MVC===&lt;br /&gt;
* Jednoduché sprístupnenie pre rôzne druhy klientov. Pre zavedenie podpory ďalšieho klienta stačí nadefinovať len nové View.&lt;br /&gt;
* Minimalizácia duplicity zdrojového kódu.&lt;br /&gt;
* Rozdelenie vývojárskych úloh a&amp;amp;nbsp;samostatný vývoj jednotlivých častí.&lt;br /&gt;
* Znovupoužiteľnosť kódu.&lt;br /&gt;
* Vysoká komplexnosť návrhu a jednoduchšia rozšíriteľnosť aplikácie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Optimálna štruktúra aplikácie s podporou režimu off-line==&lt;br /&gt;
Webové aplikácie, ktoré sú postavené s podporou off-line režimu majú tendenciu byť štruktúrované tak, že ich dátová vrstva je izolovaná. Väčšina dnešných web aplikácií takto stavaných nie je. Pravdepodobne najvýhodnejšia štruktúra je zobrazená v schéme (Obr. 1.3). &lt;br /&gt;
&lt;br /&gt;
[[Súbor:bp_off_web_3.jpg|center|framed|Schéma web aplikácie podporujúcej režime off-line. Zdroj: [1]]]&lt;br /&gt;
&lt;br /&gt;
Hlavným krokom pre dosiahnutie vhodnej architektúry je vytvorenie lokálnej dátovej vrstvy, ktorá využíva lokálnu databázu. Podľa toho či ste on-line alebo off-line, sa dáta získavajú zo servera alebo z lokálneho úložiska. O prepínanie medzi dátovým vrstvami sa stará prepínač. Prepínač je časť kódu, ktorý rozhoduje odkiaľ sa budú dáta čerpať. &lt;br /&gt;
&lt;br /&gt;
==Funkcie dostupné v režime off-line==&lt;br /&gt;
Nedá sa zabezpečiť, aby všetky dostupné funkcie web aplikácie boli prístupné aj v off-line režime. Je zbytočné kopírovať celú databázu zo servera, keď budeme využívať len časť. Preto je vhodné rozhodnúť, ktoré dáta budú uložené lokálne. Implementovaním logiky rozhodovania do našej aplikácie zabezpečíme, že určité dáta bude získavať z lokálneho úložiska a ďalšie zo servera.&lt;br /&gt;
&lt;br /&gt;
Niektoré dáta nemá zmysel ukladať na lokálny disk a&amp;amp;nbsp;je vhodnejšie ich získavať zo servera. Sú to predovšetkým:&lt;br /&gt;
&lt;br /&gt;
* dáta, ktoré sa menia často alebo dokonca v&amp;amp;nbsp;reálnom čase,&lt;br /&gt;
* dáta, ktoré majú zmysel len v&amp;amp;nbsp;režime on-line ako instant messaging,&lt;br /&gt;
* dáta, ktoré sú náročné na miesto na disku.&lt;br /&gt;
&lt;br /&gt;
Optimálne riešenie je používať lokálne úložisko čo najviac ako je to možné. Pretože je to obyčajne rýchlejšie ako pripojenie na vzdialený server. Ak chceme, aby aplikácia pracovala čo najviac s&amp;amp;nbsp;lokálnymi dátami, bude toto implementovanie náročnejšie. Preto už pri návrhu aplikácie musíme zvážiť, čo je pre nás výhodnejšie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Forma off-line aplikácií==&lt;br /&gt;
Typ aplikácie môže mať modálnu alebo nemodálnu formu. Modálne aplikácie obyčajne rozlišujú on-line a off-line mód indikáciou cez zmenu v používateľskom rozhraní. Používateľ sa podieľa na zmene stavu.&lt;br /&gt;
Nemodálne aplikácie prechádzajú medzi on-line a off-line stavmi bez zmien v používateľskom rozhraní. Používateľ sa nemusí zúčastňovať na prepínaní stavov. Aplikácia to robí automaticky.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modálne aplikácie===&lt;br /&gt;
V&amp;amp;nbsp;modálnych aplikáciách, ak je aplikácia on-line, komunikuje so serverom. Ak je  off-line, využíva lokálne zdroje. V&amp;amp;nbsp;prípade zmeny módov je nutná synchronizácia dát.&lt;br /&gt;
&lt;br /&gt;
Výhody:&lt;br /&gt;
&lt;br /&gt;
* Relatívne jednoduchá implementácia.&lt;br /&gt;
Nevýhody:&lt;br /&gt;
&lt;br /&gt;
* Používateľ musí pamätať na prepínanie módov. Ak zabudne, nebude mať v&amp;amp;nbsp;off-line móde potrebné dáta alebo bude pracovať on-line &amp;amp;nbsp;bez podpory off-line úložiska.&lt;br /&gt;
* Ak je internetové pripojenie prerušované, používateľ si musí zvoliť jedno z&amp;amp;nbsp;nastavení alebo si bude musieť neustále prepínať medzi módmi podľa stavu pripojenia.&lt;br /&gt;
* Keďže lokálne zdroje nie sú vždy aktuálne, nemôžu byť pri pripojení na server využívané na zlepšenie podpory aplikácie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Nemodálne aplikácie===&lt;br /&gt;
V&amp;amp;nbsp;prípade nemodálnych aplikácií pracuje aplikácia s&amp;amp;nbsp;predpokladom off-line stavu alebo možnosti náhodnej straty pripojenia.  Aplikácia využíva lokálne zdroje v&amp;amp;nbsp;maximálne možnej miere, a&amp;amp;nbsp;keď je server dosiahnuteľný, prebieha neustála synchronizácia dát. Tá prebieha taktiež pri prechode do on-line stavu.&lt;br /&gt;
&lt;br /&gt;
Výhody:&lt;br /&gt;
&lt;br /&gt;
* Používateľ sa nemusí starať o&amp;amp;nbsp;to,&amp;amp;nbsp;či je pripojený alebo v&amp;amp;nbsp;akom je stave jeho aplikácia&lt;br /&gt;
(on-line/off-line).&lt;br /&gt;
&lt;br /&gt;
* Aplikácia pracuje plynulo aj v&amp;amp;nbsp;prípade prerušovaného pripojenia.&lt;br /&gt;
* Keďže je lokálny zdroj aktualizovaný, môže byť využívaný na optimalizáciu serverového pripojenia.&lt;br /&gt;
Nevýhody:&lt;br /&gt;
&lt;br /&gt;
* Náročná implementácia.&lt;br /&gt;
* Musí sa dbať na to, aby proces synchronizácie nezabral príliš veľa zdrojov a&amp;amp;nbsp;nespôsobil spomalenie celej aplikácie.&lt;br /&gt;
* Testovanie aplikácie ja náročnejšie, keďže logika synchronizácie sa deje na&amp;amp;nbsp;pozadí a&amp;amp;nbsp;nie ako odozva na&amp;amp;nbsp;špecifický krok používateľa.&lt;br /&gt;
&lt;br /&gt;
==Synchronizácia dát==&lt;br /&gt;
Bez ohľadu na pripojenie alebo modálnu stratégiu dáta v&amp;amp;nbsp;lokálnej databáze vystupujú zo&amp;amp;nbsp;synchronizácie so serverovými dátami. Napríklad v&amp;amp;nbsp;týchto prípadoch:&lt;br /&gt;
&lt;br /&gt;
* Používateľ urobí zmeny v&amp;amp;nbsp;off-line stave.&lt;br /&gt;
* Dáta na serveri sú zdieľané a&amp;amp;nbsp;môžu byť zmenené externými subjektmi.&lt;br /&gt;
* Dáta prichádzajú z&amp;amp;nbsp;vonkajšieho zdroja (RSS).&lt;br /&gt;
&lt;br /&gt;
Proces odstraňovania týchto rozdielov tak, že dva zdroje sa stávajú totožnými, nazývame synchronizácia. Existuje mnoho prístupov k&amp;amp;nbsp;synchronizácii, ale&amp;amp;nbsp;žiadny nie je výhodný pre&amp;amp;nbsp;všetky situácie. Vybrané riešenie by malo byť čo najvýhodnejšie pre našu aplikáciu.&lt;br /&gt;
&lt;br /&gt;
Pre príklad sú uvádzané dve všeobecné synchronizačné stratégie.&lt;br /&gt;
&lt;br /&gt;
===Manuálna synchronizácia===&lt;br /&gt;
Najjednoduchší spôsob synchronizácie je tzv. ''manuálna synchronizácia''. Manuálna preto, lebo používateľ sám volí čas synchronizácie. Môže byť implementovaná jednoducho nahraním všetkých starých dát na server a&amp;amp;nbsp;následným stiahnutím novej kópie dát zo serveru pred prechodom na off-line stav.&lt;br /&gt;
&lt;br /&gt;
Manuálna synchronizácia ma nasledovné požiadavky:&lt;br /&gt;
&lt;br /&gt;
* Objem dát dostatočne malý na stiahnutie v&amp;amp;nbsp;primeranom čase.&lt;br /&gt;
* Používateľ sám stanovuje prechod do režimu off-line, väčšinou tlačidlom v&amp;amp;nbsp;používateľskom prostredí.&lt;br /&gt;
&lt;br /&gt;
Problémy tejto metódy a&amp;amp;nbsp;jej off-line módu:&lt;br /&gt;
&lt;br /&gt;
* Užívatelia nie vždy vedia okamžitý stav svojho pripojenia. Internetové pripojenie môže byť náhle odpojené alebo prerušované.&lt;br /&gt;
* Užívatelia môžu zabudnúť synchronizovať dáta pred prechodom do stavu off-line.&lt;br /&gt;
&lt;br /&gt;
Manuálna synchronizácia môže byť na začiatok vhodným spôsobom synchronizácie, najmä kvôli relatívne jednoduchej implementácii. Bohužiaľ, vyžaduje uvedomelosť používateľa a&amp;amp;nbsp;jeho zapojenie do procesu synchronizácie.&lt;br /&gt;
&lt;br /&gt;
===Synchronizácia na pozadí===&lt;br /&gt;
V prípade synchronizácie na pozadí aplikácia neustále synchronizuje dáta medzi lokálnym zdrojom a&amp;amp;nbsp;serverom. To môže byť uskutočňované opakovanými pokusmi pripájať sa na server  alebo v&amp;amp;nbsp;lepšom prípade umožniť serveru presúvať dáta ku klientovi.&lt;br /&gt;
&lt;br /&gt;
Výhody synchronizácie na pozadí:&lt;br /&gt;
&lt;br /&gt;
* Dáta sú pripravené vždy, keď sa používateľ rozhodne pre prechod do režimu off-line alebo je náhodne odpojený.&lt;br /&gt;
* Zlepšenie výkonu v&amp;amp;nbsp;prípade využívania pomalého internetového pripojenia.&lt;br /&gt;
&lt;br /&gt;
Nevýhody:&lt;br /&gt;
&lt;br /&gt;
* Nevýhodou je možnosť spomalenia pri kopírovaní dát na pozadí. Spomalenie sa dá minimalizovať využitím rôznych možností (Google Gears WorkerPool).&lt;br /&gt;
&lt;br /&gt;
[[Súbor:bp_off_web_4.jpg|center|framed|Architektúra web aplikácie so synchronizáciou na pozadí. Zdroj: [1]]]&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=N%C3%A1vrh_pou%C5%BE%C3%ADvate%C4%BEsk%C3%A9ho_rozhrania_rozvrhu_FM_TnUAD&amp;diff=6905</id>
		<title>Návrh používateľského rozhrania rozvrhu FM TnUAD</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=N%C3%A1vrh_pou%C5%BE%C3%ADvate%C4%BEsk%C3%A9ho_rozhrania_rozvrhu_FM_TnUAD&amp;diff=6905"/>
		<updated>2010-09-05T13:56:28Z</updated>

		<summary type="html">&lt;p&gt;Dusan: /* RozvrhFM – návrh a implementácia nového rozvrhu fakulty mechatroniky */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]][[Kategória:Bakalárske práce]][[Kategória:Informatika]][[Kategória:php]][[Kategória:web]]&lt;br /&gt;
{{Praca_uvod|4|Off-line funkcionalita on-line web aplikácií|Štruktúra webovej aplikácie|Technológie off-line web aplikácií|Systémy na vizualizáciu rozvrhu hodín|Návrh používateľského rozhrania rozvrhu FM TnUAD}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=RozvrhFM – návrh a implementácia nového rozvrhu fakulty mechatroniky=&lt;br /&gt;
&lt;br /&gt;
Úlohou tejto bakalárskej práce je navrhnúť používateľské rozhranie (frontend) rozvrhu Fakulty mechatroniky pre režim on-line aj off-line. Pri návrhu bol kladený dôraz na to, aby bolo používateľské prostredie dostatočne prehľadné a jednoduché. &lt;br /&gt;
Webová aplikácia RozvrhFM je databázová aplikácia. Entitno relačný model databázy nie je v tejto práci potrebné uvádzať, pretože pre získanie údajov z databázy je pripravený databázový pohľad (view) rozvrh_view, v ktorom sú všetky požadované údaje pre zobrazenie rozvrhu. Štruktúra tohto pohľadu je zobrazená v tabuľke 4.1.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 4.1 Štruktúra databázového pohľadu ''rozvrh_view''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|align = &amp;quot;center&amp;quot;|'''Pole'''&lt;br /&gt;
|align = &amp;quot;center&amp;quot;|'''Typ'''&lt;br /&gt;
|align = &amp;quot;center&amp;quot;|'''Význam'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|subject &lt;br /&gt;
|varchar(255)&lt;br /&gt;
|Názov predmetu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|subject_abbr &lt;br /&gt;
|varchar(20)&lt;br /&gt;
|Skratka predmetu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|subject_id &lt;br /&gt;
|int(11)&lt;br /&gt;
|ID predmetu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|hours &lt;br /&gt;
|tinyint(1)&lt;br /&gt;
|Dĺžka trvania prednášky v hodinách&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|type &lt;br /&gt;
|varchar(10)&lt;br /&gt;
|Typ vyučovacej hodiny (prednáška, cvičenie, laboratóriá)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|color &lt;br /&gt;
|varchar(7)&lt;br /&gt;
|Farba&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|week &lt;br /&gt;
|enum(&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;k&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;p&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;n&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
|Predmet sa vyučuje: každý, párny, nepárny týždeň&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|day &lt;br /&gt;
|tinyint(1)&lt;br /&gt;
|Deň v&amp;amp;nbsp;týždni (1-5)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|hour &lt;br /&gt;
|tinyint(2)&lt;br /&gt;
|Hodina, v ktorej začína vyučovanie predmetu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|room &lt;br /&gt;
|varchar(10)&lt;br /&gt;
|Miestnosť&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|room_id &lt;br /&gt;
|int(11)&lt;br /&gt;
|ID miestnosti&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|provides &lt;br /&gt;
|varchar(8)&lt;br /&gt;
|Katedra, ktorá predmet zabezpečuje&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|meno &lt;br /&gt;
|varchar(128)&lt;br /&gt;
|Meno vyučujúceho&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|priezvisko &lt;br /&gt;
|varchar(128)&lt;br /&gt;
|Priezvisko vyučujúceho&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|tituly &lt;br /&gt;
|varchar(128)&lt;br /&gt;
|Tituly vyučujúceho&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|user_katedra &lt;br /&gt;
|varchar(128)&lt;br /&gt;
|Katedra, pod ktorú patrí vyučujúci&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|user_id &lt;br /&gt;
|int(11)&lt;br /&gt;
|ID vyučujúceho&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|user_abbr &lt;br /&gt;
|varchar(20)&lt;br /&gt;
|Skratka mena vyučujúceho&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|office &lt;br /&gt;
|varchar(10)&lt;br /&gt;
|Číslo kancelárie vyučujúceho&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|subclass &lt;br /&gt;
|var(18)&lt;br /&gt;
|Krúžok, ktorý má vyučovanie&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|subclass_id &lt;br /&gt;
|int(11)&lt;br /&gt;
|ID krúžku&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|branch &lt;br /&gt;
|varchar(5)&lt;br /&gt;
|Odbor&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|branch_num &lt;br /&gt;
|int(1)&lt;br /&gt;
|Číslo odboru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|subclass_sign &lt;br /&gt;
|varchar(2)&lt;br /&gt;
|Koncové dvojčíslie krúžku&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|year &lt;br /&gt;
|tinyint(1)&lt;br /&gt;
|Rok štúdia &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|note &lt;br /&gt;
|varchar(255)&lt;br /&gt;
|Poznámka&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Grafický návrh používateľského rozhrania==&lt;br /&gt;
Grafický návrh používateľského rozhrania je veľmi dôležitý, pretože tvorí časť, s ktorou je používateľ priamo konfrontovaný. Cieľom rozvrhnutia jednotlivých častí (Obr. 4.1) je zobrazenie čo najväčšej časti výpisu tabuľky rozvrhu bez nutnosti posúvania zobrazenej plochy stránky. Oproti verzii opisovanej v kapitole 3.2.1 pribudne niekoľko panelov. Vrchný panel bude obsahovať ikonu režimu práce (on-line/off-line). Ikona bude zobrazovaná len v prípade nainštalovaného rozšírenia Google Gears. Z formulára na výber jednotlivých parametrov pre filtrovanie sme odstránili niekoľko prvkov formulára, ktoré neboli dôležité. Ponechané boli iba prvky na výber krúžku, predmetu, vyučujúceho a miestnosti. V pravej časti pribudne panel na zobrazovanie informácií o zmene v rozvrhu. Pod ním je panel odkazov na export rozvrhu do rôznych formátov a ponuka inštalácie rozšírenia Google Gears.    &lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_13.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr. 4.1 Návrh prezentačnej vrstvy rozvrhu&lt;br /&gt;
&lt;br /&gt;
Najdôležitejšou časťou je zobrazenie samotnej tabuľky rozvrhu. Oproti súčasnej verzií (Obr. 3.3) je do návrhu novej tabuľky rozvrhu (Obr. 4.2) pridaná vodorovná časová os. Každý ďalší riadok tabuľky reprezentuje deň v týždni a zobrazuje predmety, ktoré do neho patria. V prípade, že sa predmet koná len v nepárny týždeň, rozdelí sa riadok na dva riadky. Tie potom reprezentujú párny a nepárny týždeň. Prednáška je označená modrou, cvičenie červenou a laboratóriá zelenou farbou. Každá farebná bunka obsahuje názov predmetu, meno vyučujúceho a miestnosť, kde sa vyučovanie koná. Nasledovným rozvrhnutím tabuľky rozvrhu sme zobrazili potrebné údaje a zlepšili prehľadnosť odstránením prebytočných údajov. &lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_14.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 4.2 Návrh novej tabuľky rozvrhu&lt;br /&gt;
&lt;br /&gt;
===Realizácia používateľského rozhrania v&amp;amp;nbsp;režime online===&lt;br /&gt;
Pri realizácií front-endu rozvrhu fakulty mechatroniky sme použili knižnicu ZEND framework [19].&lt;br /&gt;
&lt;br /&gt;
====Príprava dát pre formulár====&lt;br /&gt;
Formulár (Obr. 4.3) slúži na výber jednotlivých parametrov, podľa ktorých sa budú filtrovať dáta z&amp;amp;nbsp;databázy. Následne sa zobrazí tabuľka zodpovedajúca týmto dátam. Výpis rozvrhu sa dá filtrovať podľa názvu krúžku, predmetu, mena vyučujúceho a&amp;amp;nbsp;učebne.&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_15.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 4.3 Formulár na výber dát podľa parametrov&lt;br /&gt;
&lt;br /&gt;
Zoznam všetkých možností výberu jednotlivých parametrov sa načíta z pohľadov databázy rozvrh_view a rozvrh_view_extern. Formulár nezobrazí prvky výberu, ktoré síce v databáze existujú, ale nie sú zaradené do aktuálne vytvoreného rozvrhu. To znamená, že vo formulári bude chýbať, napr. predmet Matematika I. v prípade, ak nebude mať pridelený aspoň jeden krúžok. Potom by bol tento predmet ako možnosť parametra predmet zbytočný. &lt;br /&gt;
&lt;br /&gt;
Výber údajov z databázy zabezpečuje trieda indexSearch, ktorá je modelom používaným v kontroléri indexController. Tento kontrolér obsluhuje celý front-end. Výber jednotlivých parametrov má veľmi podobný SQL dopyt, ktorý sa líši iba názvami vyberaných stĺpcov. Preto bola vytvorená metóda bothViewsSelect znázornená v kóde 4.1, ktorá vyberá údaje z oboch pohľadov.&lt;br /&gt;
&lt;br /&gt;
Kód 5.1 Metóda ''bothViewsSelect'''' ''triedy ''indexSearch''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
private function bothViewsSelect(array $columns, $cmp = null, array $where = array())&lt;br /&gt;
	{&lt;br /&gt;
		$types = array('D' =&amp;gt; T_VIEW, 'E' =&amp;gt; T_VIEW_E);&lt;br /&gt;
		$union = array();&lt;br /&gt;
&lt;br /&gt;
		foreach($types as $type =&amp;gt; $table) {&lt;br /&gt;
			$select = $this-&amp;gt;_db-&amp;gt;select()&lt;br /&gt;
				-&amp;gt;distinct()&lt;br /&gt;
				-&amp;gt;from($table, $columns);&lt;br /&gt;
&lt;br /&gt;
			foreach($where as $wh) {&lt;br /&gt;
				$select-&amp;gt;where($wh);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			$union[] = $select;&lt;br /&gt;
		}&lt;br /&gt;
		$select = $this-&amp;gt;_db-&amp;gt;select()-&amp;gt;union($union);&lt;br /&gt;
$data = $this-&amp;gt;_db-&amp;gt;fetchAll($select);&lt;br /&gt;
		if($cmp !== null) {&lt;br /&gt;
			usort($data, $cmp);&lt;br /&gt;
		}&lt;br /&gt;
		return $data;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Metóda ''bothViewsSelect ''má nasledovné parametre:&lt;br /&gt;
&lt;br /&gt;
* $columns – pole stĺpcov, ktoré sa majú z&amp;amp;nbsp;databázy vybrať&lt;br /&gt;
* $cmp – obsahuje názov porovnávacej funkcie, podľa ktorej sa majú výsledky zoradiť, v opačnom prípadne má hodnotu ''null''&lt;br /&gt;
* $where – pole podmienok dotazu&lt;br /&gt;
&lt;br /&gt;
Najskôr sa pre každý pohľad vytvorí ''SELECT'' dopyt zvlášť podľa parametrov metódy. Následne sa tieto dopyty spoja SQL príkazom ''UNION(),'' ktorý zabezpečí, že vyberú iba rozdielne dáta. Výber dát z&amp;amp;nbsp;databázy vykonáva metóda ''fetchAll()'' triedy ''Zend_Db_Select''. Ak&amp;amp;nbsp;parameter ''$cmp'' obsahuje názov porovnávacej funkcie, zavolá sa funkcia ''usort()''. Tá má parameter ''$data'', ktorý obsahuje výsledky dopytu a samotný parameter ''$cmp''. Zoradí pole ''$data'' podľa názvu funkcie uloženého v&amp;amp;nbsp;reťazci ''$cmp.''&lt;br /&gt;
&lt;br /&gt;
Kód 4.2 Príklad funkcia na porovnanie vyučujúcich&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
function cmp_teachers($a, $b)&lt;br /&gt;
{&lt;br /&gt;
	if($a['priezvisko'] == $b['priezvisko']) {&lt;br /&gt;
		return ($a['meno'] &amp;lt; $b['meno']) ? -1 : 1;&lt;br /&gt;
	} else {&lt;br /&gt;
		return ($a['priezvisko'] &amp;lt; $b['priezvisko']) ? -1 : 1;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Funkcia na porovnanie vyučujúcich porovnáva najskôr podľa priezviska, v prípade zhody sa porovnáva podľa mena. &lt;br /&gt;
&lt;br /&gt;
Kód 4.3 Príklad použitia metódy ''bothViewsSelect'' na výber vyučujúcich&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function getUsers()&lt;br /&gt;
{&lt;br /&gt;
	return $this-&amp;gt;bothViewsSelect(&lt;br /&gt;
		array('meno', 'priezvisko', 'tituly', 'user_id'),&lt;br /&gt;
		'cmp_teachers'&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Výber dát z databázy podľa zvolených parametrov===&lt;br /&gt;
&lt;br /&gt;
Metóda ''getTTable'' získa z&amp;amp;nbsp;databázy všetky potrebné dáta podľa zadaných parametrov z&amp;amp;nbsp;formulára a&amp;amp;nbsp;pripraví ich pre pomocnú triedu ''TimetableRenderer'', ktorá sa stará o&amp;amp;nbsp;vykresľovanie tabuľky rozvrhu.&lt;br /&gt;
&lt;br /&gt;
Kód 4.4 Metóda ''getTTable''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function getTTable($params)&lt;br /&gt;
{&lt;br /&gt;
	$return = array('D' =&amp;gt; array(), 'E' =&amp;gt; array());&lt;br /&gt;
$where = array();&lt;br /&gt;
	if($params['subclass']) {&lt;br /&gt;
		$branch_num = substr($params['subclass'], 1, 1);&lt;br /&gt;
		$year = substr($params['subclass'], 2, 1);&lt;br /&gt;
		$sign = substr($params['subclass'], 3);&lt;br /&gt;
&lt;br /&gt;
		$where[] = $this-&amp;gt;_db-&amp;gt;quoteInto('branch_num = ?', (int)$branch_num);&lt;br /&gt;
		$where[] = $this-&amp;gt;_db-&amp;gt;quoteInto('year = ?', (int)$year);&lt;br /&gt;
		$where[] = $this-&amp;gt;_db-&amp;gt;quoteInto('subclass_sign IS NULL OR subclass_sign = ?', $sign);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ak bol zadaný parameter krúžok, získame z&amp;amp;nbsp;neho jednotlivé údaje o&amp;amp;nbsp;číselnom označení odboru, ročníka a&amp;amp;nbsp;krúžka. Tieto údaje potom vložíme do poľa podmienok ''$where''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
if($params['room']) {&lt;br /&gt;
		$where[] = $this-&amp;gt;_db-&amp;gt;quoteInto('room_id = ?', (int)$params['room']);&lt;br /&gt;
	}&lt;br /&gt;
	if($params['teacher']) {&lt;br /&gt;
		$where[] = $this-&amp;gt;_db-&amp;gt;quoteInto('user_id = ?', (int)$params['teacher']);&lt;br /&gt;
	}&lt;br /&gt;
	if($params['subject']) {&lt;br /&gt;
		$where[] = $this-&amp;gt;_db-&amp;gt;quoteInto('subject_id = ?', (int)$params['subject']);&lt;br /&gt;
	}&lt;br /&gt;
	$select = $this-&amp;gt;_db-&amp;gt;select()&lt;br /&gt;
		-&amp;gt;from(T_VIEW,&lt;br /&gt;
			array('subject', 'hours', 'color', 'week','day', 'hour', 'room', 'meno', 'priezvisko', 'tituly', 'subclass'));&lt;br /&gt;
	foreach($where as $wh) {&lt;br /&gt;
		$select-&amp;gt;where($wh);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vytvorenie dopytu na pohľad ''rozvrh_view'' v&amp;amp;nbsp;databáze&amp;amp;nbsp;denných študentov.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
	$data = $this-&amp;gt;_db-&amp;gt;fetchAll($select);&lt;br /&gt;
	$return = array();&lt;br /&gt;
	foreach($data as $row) {&lt;br /&gt;
		$return['D'][$row['day']][$row['week']][$row['hour']] = array(&lt;br /&gt;
			'subject' =&amp;gt; $row['subject'],&lt;br /&gt;
			'tituly' =&amp;gt; $row['tituly'],&lt;br /&gt;
			'meno' =&amp;gt; $row['meno'],&lt;br /&gt;
			'priezvisko' =&amp;gt; $row['priezvisko'],&lt;br /&gt;
			'room' =&amp;gt; $row['room'],&lt;br /&gt;
			'subclass' =&amp;gt; $row['subclass'],&lt;br /&gt;
			'hours' =&amp;gt; $row['hours'],&lt;br /&gt;
			'color' =&amp;gt; $row['color']&lt;br /&gt;
		);&lt;br /&gt;
	}&lt;br /&gt;
	return $return;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metóda ''getTTable'' vracia údaje z&amp;amp;nbsp;databázy do mnohorozmerného poľa, zoradeného podľa našich potrieb pre vykresľovanie.&lt;br /&gt;
&lt;br /&gt;
===Vykresľovanie rozvrhu===&lt;br /&gt;
Vytvorená trieda ''Views_Helpers_TimetableRenderer'' pre časť ''view'' obsahuje metódy:&lt;br /&gt;
&lt;br /&gt;
* ''timetableRenderer($data, $subclass)'' – ak vo formulári nebol ako parameter vybraný krúžok, vypíše sa rozvrh pre denných aj externých študentov. V&amp;amp;nbsp;opačnom prípade sa rozhodne o&amp;amp;nbsp;tom, ktorý druh rozvrhu sa vypíše, podľa názvu krúžku. Krúžky patriace do externej formy štúdia majú v&amp;amp;nbsp;názvoch písmeno E.&lt;br /&gt;
* ''intern()'' – metóda na vykreslenie tabuľky rozvrhu denných študentov, ktorá si volá ďalšie pomocné metódy:&lt;br /&gt;
* ''intern_prepareDay($index'') – metóda vracia štruktúru buniek dňa s&amp;amp;nbsp;indexom $index&lt;br /&gt;
* ''intern_prepareCell($data)'' – metóda vytvára obsah bunky (predmet, meno vyučujúceho, učebňa, prípadne číslo krúžku). Číslo krúžku sa vypisuje len v&amp;amp;nbsp;prípade, ak sa nejedná o&amp;amp;nbsp;prednášky.&lt;br /&gt;
&lt;br /&gt;
==Realizácia používateľského rozhrania v&amp;amp;nbsp;režime offline==&lt;br /&gt;
Pre zabezpečenie funkcionality aj v&amp;amp;nbsp;režime off-line sme využili rozšírenie Google Gears. Toto rozšírenie nám sprístupní rovnaké dáta a&amp;amp;nbsp;funkcionalitu ako v&amp;amp;nbsp;režime on-line. Aby sa možnosti off-line web aplikácie mohli využívať, je potrebné splniť nasledujúce podmienky:&lt;br /&gt;
&lt;br /&gt;
* Používateľ musí mať vo svojom prehliadači nainštalované rozšírenie Google Gears.&lt;br /&gt;
* Používateľ musí web aplikácií RozvrhFM povoliť využívanie tohto rozšírenia pre&amp;amp;nbsp;konkrétnu doménu.&lt;br /&gt;
* Synchronizácia dát musí prebehnúť úspešne.&lt;br /&gt;
&lt;br /&gt;
===Povolenie prístupu===&lt;br /&gt;
Funkcionalita Google Gears je v&amp;amp;nbsp;užívateľskom prostredí reprezentované ikonou (Obr. 4.4). Po jej stlačení sa vysunie panel s&amp;amp;nbsp;tlačidlom ''Inštalácia Google Gears''.&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_16.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 4.4 Panel s&amp;amp;nbsp;ikonou Google Gears&lt;br /&gt;
&lt;br /&gt;
Povolenie prístupu Google Gears pre doménu rozvrhu musí potvrdiť používateľ (Obr 4.5).&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_17.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 4.5 Okno žiadosti o&amp;amp;nbsp;povolenie prístupu Google Gears pre doménu ''rozvrh.fmtnuni.sk''&lt;br /&gt;
&lt;br /&gt;
Inštalácia prebieha zavolaním metódy ''getPermission'' triedy ''roGears'' v&amp;amp;nbsp;kóde 4.5. V&amp;amp;nbsp;prípade,  ak je definovaný objekt ''google.gears'' a&amp;amp;nbsp;doména zatiaľ nemá povolenie, zobrazí sa okno          so žiadosťou o&amp;amp;nbsp;povolenie prístupu. Po povolení prístupu sa volá metóda ''createStore'' určená   na synchronizáciu.&lt;br /&gt;
&lt;br /&gt;
Kód 4.5 Metóda ''getPermission'' triedy ''roGears''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
getPermission : function() {&lt;br /&gt;
      var perm = true;&lt;br /&gt;
      if ( 'undefined' != typeof google &amp;amp;&amp;amp; google.gears ) {&lt;br /&gt;
		if ( !google.gears.factory.hasPermission )&lt;br /&gt;
                	perm = google.gears.factory.getPermission('Rozvrh',           &lt;br /&gt;
                  'public/img/logo.png' );&lt;br /&gt;
            if ( perm )&lt;br /&gt;
			try { roGears.createStore(); } catch(e) { alert(e); } &lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Synchronizácia===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Synchronizácia dát v&amp;amp;nbsp;našej web aplikácií nemusí prebiehať pri každej návšteve web stránky, pretože sa predpokladá, že dáta na serveri nebudú často aktualizované. Preto sme sa rozhodli, že synchronizácia dát prebehne hneď po povolení prístupu pre doménu. Ďalšia synchronizácia bude možná stlačením používateľského tlačidla synchronizácie. Synchronizácia sa vykoná zavolaním metódy ''createStore'' triedy ''roGears'' v kóde 4.6.&lt;br /&gt;
&lt;br /&gt;
Kód 4.6 Metóda createStore triedy roGears&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
createStore : function() {&lt;br /&gt;
	db = google.gears.factory.create('beta.database'); &lt;br /&gt;
	if(db)&lt;br /&gt;
		db.open('rozvrh');    &lt;br /&gt;
	if ( 'undefined' == typeof google || ! google.gears ) return;&lt;br /&gt;
	if ( 'undefined' == typeof localServer )&lt;br /&gt;
	      localServer = google.gears.factory.create(&amp;quot;beta.localserver&amp;quot;);&lt;br /&gt;
      store = localServer.createManagedStore('rozvrh');&lt;br /&gt;
	store.manifestUrl = &amp;quot;public/gears/timetable.json&amp;quot;;&lt;br /&gt;
	store.checkForUpdate();  &lt;br /&gt;
      roGears.syncData();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metóda ''createStore ''zabezpečí vytvorenie objektov ''beta.database,''&amp;amp;nbsp;''beta.localserver ''a&amp;amp;nbsp;skopíruje súbory nevyhnutné pre beh aplikácie v&amp;amp;nbsp;režime off-line. Zoznam týchto súborov sa&amp;amp;nbsp;nachádza v&amp;amp;nbsp;súbore ''timetable.json''. V&amp;amp;nbsp;našom prípade synchronizujeme aj samotný html dokument, ktorý sa na lokálny disk uloží bez PHP kódu. Používateľ je o procese synchronizácie informovaný upozornením v&amp;amp;nbsp;hornom paneli (Obr 4.6).&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_18.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 4.6 Zobrazenie informácie&amp;amp;nbsp;stavu on-line a&amp;amp;nbsp;synchronizácie&lt;br /&gt;
&lt;br /&gt;
Synchronizácia databázy sa vykoná zavolaním metódy ''syncData ''v&amp;amp;nbsp;kóde 4.7'' ''triedy ''roGears. ''Metóda db.''execute'' vytvorí tabuľku ''rozvrh'' v&amp;amp;nbsp;lokálnej databáze. Štruktúra tejto tabuľky je rovnaká ako štruktúra tabuľky databázy na serveri, z&amp;amp;nbsp;ktorej získavame údaje. Pomocou funkcie ''getJSON ''knižnice ''jQuery'' získame json objekt, ktorý obsahuje všetky potrebné údaje. Získané údaje z&amp;amp;nbsp;tohto objektu nahráme do tabuľky ''rozvrh''.&lt;br /&gt;
&lt;br /&gt;
4.7 Metóda ''syncData'''' ''v&amp;amp;nbsp;kóde '' ''triedy ''roGears''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
syncData : function() {&lt;br /&gt;
    clearInterval(int_checkOnline);&lt;br /&gt;
    $('#sync').show();&lt;br /&gt;
    // vytvorenie novej tabulky pre lokalne ulozisko&lt;br /&gt;
    db.execute('create table if not exists rozvrh' +          &lt;br /&gt;
    ' (subject varchar(255), subject_abbr varchar(20), ...&lt;br /&gt;
    // poziadavka na online rozvrh&lt;br /&gt;
    $.getJSON(BASEURL + '/json/data/subclass/all', [], function(jpole) {&lt;br /&gt;
	   db.execute('DELETE FROM rozvrh');&lt;br /&gt;
	   // vsetky zaznamy v rozvrhu&lt;br /&gt;
	   for (var i = 0; i &amp;lt; (jpole['intern'].length);i++) &lt;br /&gt;
	   // vlozenie dát do lokalnej tabulky&lt;br /&gt;
         db.execute('INSERT INTO rozvrh VALUES  ... );  &lt;br /&gt;
         int_checkOnline = window.setInterval(roGears.checkOnline, 3000);&lt;br /&gt;
         $('#sync').hide();&lt;br /&gt;
    });&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
V kóde 4.7 sa nachádza len principiálny kód pre objasnenie synchronizácie databázy. Kompletný výpis zdrojového kódu metódy ''syncData ''sa nachádza na priloženom CD nosiči.&lt;br /&gt;
&lt;br /&gt;
====Zisťovanie on-line a off-line stavu====&lt;br /&gt;
Podľa stavu, v&amp;amp;nbsp;ktorom sa aplikácia nachádza, získavame dáta buď zo servera alebo z&amp;amp;nbsp;lokálneho úložiska. Používateľ je o&amp;amp;nbsp;stave  on-line a off-line informovaný pomocou ikony v&amp;amp;nbsp;hornom paneli. Zisťovania stavu zabezpečuje metóda ''checkOnline ''triedy ''roGears v (Kóde 4.5).''&lt;br /&gt;
&lt;br /&gt;
Kód 4.8 Metóda ''checkOnline ''triedy ''roGears''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
checkOnline : function() {&lt;br /&gt;
      var PING_TIMEOUT_SECONDS = 1000;&lt;br /&gt;
	var TIME_BETWEEN_PINGS = 3 * 1000;&lt;br /&gt;
      if(!int_checkOnline) return;&lt;br /&gt;
            $.ajax({&lt;br /&gt;
			url : BASEURL + '/index/checkonline',&lt;br /&gt;
			dataType : 'text',&lt;br /&gt;
			timeout : PING_TIMEOUT_SECONDS,&lt;br /&gt;
			cache : false,&lt;br /&gt;
			error : function() { ONLINE = false; $('#indicator').attr('class', 'offline'); $('#panel input').hide(); },&lt;br /&gt;
                  success : function() { ONLINE = true; $('#indicator').attr('class', 'online'); $('#panel input').show(); }&lt;br /&gt;
		});&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metóda ''checkOnline'' každé tri sekundy odošle požiadavku na zvolenú URL. Jedinou funkciou tejto URL je prijímanie požiadaviek na kontrolu stavu on-line/off-line. Ak metóda dostane odpoveď 200,'' ''hodnota premennej ONLINE sa nastaví na ''true.'' V&amp;amp;nbsp;opačnom prípade na ''false''. Čas vypršania požiadavky je nastavený na jednu sekundu. Po uplynutí tohto času je požiadavka považovaná za neúspešnú.&lt;br /&gt;
&lt;br /&gt;
==Implementácia systému RozvrhFM==&lt;br /&gt;
&lt;br /&gt;
Web aplikácia Rozvrh FM pracuje na webovom serveri Apache s modulmi PHP a MySQL. Všetok použitý softvér na strane servera je open-source. Pri tvorbe tejto aplikácie sme využili PHP ZEND framework a javascriptovú knižnicu jquery. Na Obr. 4.7 je náhľad na rozhranie aplikácie RozvrhFM.&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_19.png|framed|none]]&lt;br /&gt;
Obr 4.7 Zobrazenie používateľského rozhrania aplikácie RozvrhFM&lt;br /&gt;
&lt;br /&gt;
Vlastnosti vytvoreného systému môžeme zhrnúť do nasledujúcich bodov:&amp;lt;br&amp;gt;Výhody aplikácie RozvrhFM:&lt;br /&gt;
* systém RozvrhFM je vďaka dodržiavaniu štandardov kompatibilný so všetkými internetovými prehliadačmi,&lt;br /&gt;
* vyššia rýchlosť oproti iným systémom, ktoré využívajú proprietárne technológie ako napr. ActiveX,&lt;br /&gt;
* jednoduchý export údajov do iných systémov (formát JSON),&lt;br /&gt;
* bezpečnosť aplikácie: údaje z&amp;amp;nbsp;databázy získavame pomocou obmedzeného prístupu k databáze.&amp;lt;br&amp;gt;Nevýhody aplikácie RozvrhFM:&lt;br /&gt;
* systém nie je začlenený do ďalšieho informačného systému, aj keď zoznam vyučujúcich sa získava z&amp;amp;nbsp;databázy evalvácie fakulty,&lt;br /&gt;
* v&amp;amp;nbsp;súvislosti s&amp;amp;nbsp;tým, že vývoj Google Gears bol zastavený, nepredpokladá sa žiadne ďalšie vylepšenie off-line funkcionality.&lt;br /&gt;
&lt;br /&gt;
'''Záver'''&lt;br /&gt;
&lt;br /&gt;
Cieľom práce bolo navrhnúť požívateľské rozhranie web aplikácie na zobrazovanie rozvrhu Fakulty mechatroniky a opísať technológiu Google Gears, ktorá je implementovaná v navrhnutej aplikácii. Zamerali sme sa aj na novú špecifikáciu HTML5, ktorá bude taktiež podporovať off-line aplikácie. V tretej kapitole sme predstavili niekoľko aplikácií, ktoré umožňujú vytvárať a zobrazovať rozvrh. Popísali sme, akým spôsobom zobrazujú údaje a zvýraznili nedostatky, ktoré z tohto plynú. Z existujúcich systémov pre vizualizáciu rozvrhu sme vybrali ich najlepšie vlastnosti a tieto sme implementovali do vytvoreného rozvrhu Fakulty mechatroniky RozvrhFM. V aplikácií RozvrhFM bola doplnená nová funkcionalita, ktorú neobsahuje ani jeden z porovnávaných systémov pre vizualizáciu rozvrhu. Nová funkcionalita zahŕňa off-line prístup k rozvrhu a zobrazenie doplňujúcich informácií, ako napr. zoznam študijných krúžkov alebo nové zmeny v rozvrhu. V poslednej kapitole sme sa venovali návrhu a implementácií nového rozvrhu Fakulty mechatroniky. Navrhli sme vzhľad používateľského prostredia a zvolili prehľadný spôsob, akým zobraziť tabuľku rozvrhu. Pre prístup k rozvrhu nie je vyžadovaná autentifikácia. S využitím technológie Google Gears sme zabezpečili podporu aplikácie aj v režime off-line. Používateľ bude môcť zobrazovať svoj rozvrh aj v prípade, že nebude mať prístup k internetu. Aplikácia RozvrhFM je v súčasnosti dostupná na adrese rozvrh.fmtnuni.sk.&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_19.png&amp;diff=6902</id>
		<title>Súbor:Bakalarka dušan pagáč 2 2 FINAL 19.png</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_19.png&amp;diff=6902"/>
		<updated>2010-09-05T13:53:52Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_18.png&amp;diff=6901</id>
		<title>Súbor:Bakalarka dušan pagáč 2 2 FINAL 18.png</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_18.png&amp;diff=6901"/>
		<updated>2010-09-05T13:53:39Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_17.png&amp;diff=6900</id>
		<title>Súbor:Bakalarka dušan pagáč 2 2 FINAL 17.png</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_17.png&amp;diff=6900"/>
		<updated>2010-09-05T13:53:27Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_16.png&amp;diff=6899</id>
		<title>Súbor:Bakalarka dušan pagáč 2 2 FINAL 16.png</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_16.png&amp;diff=6899"/>
		<updated>2010-09-05T13:53:13Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_15.png&amp;diff=6898</id>
		<title>Súbor:Bakalarka dušan pagáč 2 2 FINAL 15.png</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_15.png&amp;diff=6898"/>
		<updated>2010-09-05T13:52:54Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_14.png&amp;diff=6897</id>
		<title>Súbor:Bakalarka dušan pagáč 2 2 FINAL 14.png</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_14.png&amp;diff=6897"/>
		<updated>2010-09-05T13:52:45Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_13.png&amp;diff=6896</id>
		<title>Súbor:Bakalarka dušan pagáč 2 2 FINAL 13.png</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_13.png&amp;diff=6896"/>
		<updated>2010-09-05T13:52:35Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=N%C3%A1vrh_pou%C5%BE%C3%ADvate%C4%BEsk%C3%A9ho_rozhrania_rozvrhu_FM_TnUAD&amp;diff=6894</id>
		<title>Návrh používateľského rozhrania rozvrhu FM TnUAD</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=N%C3%A1vrh_pou%C5%BE%C3%ADvate%C4%BEsk%C3%A9ho_rozhrania_rozvrhu_FM_TnUAD&amp;diff=6894"/>
		<updated>2010-09-05T13:44:34Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]][[Kategória:Bakalárske práce]][[Kategória:Informatika]][[Kategória:php]][[Kategória:web]]&lt;br /&gt;
{{Praca_uvod|4|Off-line funkcionalita on-line web aplikácií|Štruktúra webovej aplikácie|Technológie off-line web aplikácií|Systémy na vizualizáciu rozvrhu hodín|Návrh používateľského rozhrania rozvrhu FM TnUAD}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=RozvrhFM – návrh a implementácia nového rozvrhu fakulty mechatroniky=&lt;br /&gt;
&lt;br /&gt;
Úlohou tejto bakalárskej práce je navrhnúť používateľské rozhranie (frontend) rozvrhu Fakulty mechatroniky pre režim on-line aj off-line. Pri návrhu bol kladený dôraz na to, aby bolo používateľské prostredie dostatočne prehľadné a jednoduché. &lt;br /&gt;
Webová aplikácia RozvrhFM je databázová aplikácia. Entitno relačný model databázy nie je v tejto práci potrebné uvádzať, pretože pre získanie údajov z databázy je pripravený databázový pohľad (view) rozvrh_view, v ktorom sú všetky požadované údaje pre zobrazenie rozvrhu. Štruktúra tohto pohľadu je zobrazená v tabuľke 4.1.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 4.1 Štruktúra databázového pohľadu ''rozvrh_view''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|align = &amp;quot;center&amp;quot;|'''Pole'''&lt;br /&gt;
|align = &amp;quot;center&amp;quot;|'''Typ'''&lt;br /&gt;
|align = &amp;quot;center&amp;quot;|'''Význam'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|subject &lt;br /&gt;
|varchar(255)&lt;br /&gt;
|Názov predmetu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|subject_abbr &lt;br /&gt;
|varchar(20)&lt;br /&gt;
|Skratka predmetu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|subject_id &lt;br /&gt;
|int(11)&lt;br /&gt;
|ID predmetu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|hours &lt;br /&gt;
|tinyint(1)&lt;br /&gt;
|Dĺžka trvania prednášky v hodinách&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|type &lt;br /&gt;
|varchar(10)&lt;br /&gt;
|Typ vyučovacej hodiny (prednáška, cvičenie, laboratóriá)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|color &lt;br /&gt;
|varchar(7)&lt;br /&gt;
|Farba&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|week &lt;br /&gt;
|enum(&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;k&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;p&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;n&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
|Predmet sa vyučuje: každý, párny, nepárny týždeň&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|day &lt;br /&gt;
|tinyint(1)&lt;br /&gt;
|Deň v&amp;amp;nbsp;týždni (1-5)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|hour &lt;br /&gt;
|tinyint(2)&lt;br /&gt;
|Hodina, v ktorej začína vyučovanie predmetu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|room &lt;br /&gt;
|varchar(10)&lt;br /&gt;
|Miestnosť&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|room_id &lt;br /&gt;
|int(11)&lt;br /&gt;
|ID miestnosti&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|provides &lt;br /&gt;
|varchar(8)&lt;br /&gt;
|Katedra, ktorá predmet zabezpečuje&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|meno &lt;br /&gt;
|varchar(128)&lt;br /&gt;
|Meno vyučujúceho&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|priezvisko &lt;br /&gt;
|varchar(128)&lt;br /&gt;
|Priezvisko vyučujúceho&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|tituly &lt;br /&gt;
|varchar(128)&lt;br /&gt;
|Tituly vyučujúceho&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|user_katedra &lt;br /&gt;
|varchar(128)&lt;br /&gt;
|Katedra, pod ktorú patrí vyučujúci&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|user_id &lt;br /&gt;
|int(11)&lt;br /&gt;
|ID vyučujúceho&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|user_abbr &lt;br /&gt;
|varchar(20)&lt;br /&gt;
|Skratka mena vyučujúceho&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|office &lt;br /&gt;
|varchar(10)&lt;br /&gt;
|Číslo kancelárie vyučujúceho&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|subclass &lt;br /&gt;
|var(18)&lt;br /&gt;
|Krúžok, ktorý má vyučovanie&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|subclass_id &lt;br /&gt;
|int(11)&lt;br /&gt;
|ID krúžku&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|branch &lt;br /&gt;
|varchar(5)&lt;br /&gt;
|Odbor&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|branch_num &lt;br /&gt;
|int(1)&lt;br /&gt;
|Číslo odboru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|subclass_sign &lt;br /&gt;
|varchar(2)&lt;br /&gt;
|Koncové dvojčíslie krúžku&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|year &lt;br /&gt;
|tinyint(1)&lt;br /&gt;
|Rok štúdia &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|note &lt;br /&gt;
|varchar(255)&lt;br /&gt;
|Poznámka&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Grafický návrh používateľského rozhrania==&lt;br /&gt;
Grafický návrh používateľského rozhrania je veľmi dôležitý, pretože tvorí časť, s ktorou je používateľ priamo konfrontovaný. Cieľom rozvrhnutia jednotlivých častí (Obr. 4.1) je zobrazenie čo najväčšej časti výpisu tabuľky rozvrhu bez nutnosti posúvania zobrazenej plochy stránky. Oproti verzii opisovanej v kapitole 3.2.1 pribudne niekoľko panelov. Vrchný panel bude obsahovať ikonu režimu práce (on-line/off-line). Ikona bude zobrazovaná len v prípade nainštalovaného rozšírenia Google Gears. Z formulára na výber jednotlivých parametrov pre filtrovanie sme odstránili niekoľko prvkov formulára, ktoré neboli dôležité. Ponechané boli iba prvky na výber krúžku, predmetu, vyučujúceho a miestnosti. V pravej časti pribudne panel na zobrazovanie informácií o zmene v rozvrhu. Pod ním je panel odkazov na export rozvrhu do rôznych formátov a ponuka inštalácie rozšírenia Google Gears.    &lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_13.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr. 4.1 Návrh prezentačnej vrstvy rozvrhu&lt;br /&gt;
&lt;br /&gt;
Najdôležitejšou časťou je zobrazenie samotnej tabuľky rozvrhu. Oproti súčasnej verzií (Obr. 3.3) je do návrhu novej tabuľky rozvrhu (Obr. 4.2) pridaná vodorovná časová os. Každý ďalší riadok tabuľky reprezentuje deň v týždni a zobrazuje predmety, ktoré do neho patria. V prípade, že sa predmet koná len v nepárny týždeň, rozdelí sa riadok na dva riadky. Tie potom reprezentujú párny a nepárny týždeň. Prednáška je označená modrou, cvičenie červenou a laboratóriá zelenou farbou. Každá farebná bunka obsahuje názov predmetu, meno vyučujúceho a miestnosť, kde sa vyučovanie koná. Nasledovným rozvrhnutím tabuľky rozvrhu sme zobrazili potrebné údaje a zlepšili prehľadnosť odstránením prebytočných údajov. &lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_14.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 4.2 Návrh novej tabuľky rozvrhu&lt;br /&gt;
&lt;br /&gt;
===Realizácia používateľského rozhrania v&amp;amp;nbsp;režime online===&lt;br /&gt;
Pri realizácií front-endu rozvrhu fakulty mechatroniky sme použili knižnicu ZEND framework [19].&lt;br /&gt;
&lt;br /&gt;
====Príprava dát pre formulár====&lt;br /&gt;
Formulár (Obr. 4.3) slúži na výber jednotlivých parametrov, podľa ktorých sa budú filtrovať dáta z&amp;amp;nbsp;databázy. Následne sa zobrazí tabuľka zodpovedajúca týmto dátam. Výpis rozvrhu sa dá filtrovať podľa názvu krúžku, predmetu, mena vyučujúceho a&amp;amp;nbsp;učebne.&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_15.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 4.3 Formulár na výber dát podľa parametrov&lt;br /&gt;
&lt;br /&gt;
Zoznam všetkých možností výberu jednotlivých parametrov sa načíta z pohľadov databázy rozvrh_view a rozvrh_view_extern. Formulár nezobrazí prvky výberu, ktoré síce v databáze existujú, ale nie sú zaradené do aktuálne vytvoreného rozvrhu. To znamená, že vo formulári bude chýbať, napr. predmet Matematika I. v prípade, ak nebude mať pridelený aspoň jeden krúžok. Potom by bol tento predmet ako možnosť parametra predmet zbytočný. &lt;br /&gt;
&lt;br /&gt;
Výber údajov z databázy zabezpečuje trieda indexSearch, ktorá je modelom používaným v kontroléri indexController. Tento kontrolér obsluhuje celý front-end. Výber jednotlivých parametrov má veľmi podobný SQL dopyt, ktorý sa líši iba názvami vyberaných stĺpcov. Preto bola vytvorená metóda bothViewsSelect znázornená v kóde 4.1, ktorá vyberá údaje z oboch pohľadov.&lt;br /&gt;
&lt;br /&gt;
Kód 5.1 Metóda ''bothViewsSelect'''' ''triedy ''indexSearch''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
private function bothViewsSelect(array $columns, $cmp = null, array $where = array())&lt;br /&gt;
	{&lt;br /&gt;
		$types = array('D' =&amp;gt; T_VIEW, 'E' =&amp;gt; T_VIEW_E);&lt;br /&gt;
		$union = array();&lt;br /&gt;
&lt;br /&gt;
		foreach($types as $type =&amp;gt; $table) {&lt;br /&gt;
			$select = $this-&amp;gt;_db-&amp;gt;select()&lt;br /&gt;
				-&amp;gt;distinct()&lt;br /&gt;
				-&amp;gt;from($table, $columns);&lt;br /&gt;
&lt;br /&gt;
			foreach($where as $wh) {&lt;br /&gt;
				$select-&amp;gt;where($wh);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			$union[] = $select;&lt;br /&gt;
		}&lt;br /&gt;
		$select = $this-&amp;gt;_db-&amp;gt;select()-&amp;gt;union($union);&lt;br /&gt;
$data = $this-&amp;gt;_db-&amp;gt;fetchAll($select);&lt;br /&gt;
		if($cmp !== null) {&lt;br /&gt;
			usort($data, $cmp);&lt;br /&gt;
		}&lt;br /&gt;
		return $data;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Metóda ''bothViewsSelect ''má nasledovné parametre:&lt;br /&gt;
&lt;br /&gt;
* $columns – pole stĺpcov, ktoré sa majú z&amp;amp;nbsp;databázy vybrať&lt;br /&gt;
* $cmp – obsahuje názov porovnávacej funkcie, podľa ktorej sa majú výsledky zoradiť, v opačnom prípadne má hodnotu ''null''&lt;br /&gt;
* $where – pole podmienok dotazu&lt;br /&gt;
&lt;br /&gt;
Najskôr sa pre každý pohľad vytvorí ''SELECT'' dopyt zvlášť podľa parametrov metódy. Následne sa tieto dopyty spoja SQL príkazom ''UNION(),'' ktorý zabezpečí, že vyberú iba rozdielne dáta. Výber dát z&amp;amp;nbsp;databázy vykonáva metóda ''fetchAll()'' triedy ''Zend_Db_Select''. Ak&amp;amp;nbsp;parameter ''$cmp'' obsahuje názov porovnávacej funkcie, zavolá sa funkcia ''usort()''. Tá má parameter ''$data'', ktorý obsahuje výsledky dopytu a samotný parameter ''$cmp''. Zoradí pole ''$data'' podľa názvu funkcie uloženého v&amp;amp;nbsp;reťazci ''$cmp.''&lt;br /&gt;
&lt;br /&gt;
Kód 4.2 Príklad funkcia na porovnanie vyučujúcich&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
function cmp_teachers($a, $b)&lt;br /&gt;
{&lt;br /&gt;
	if($a['priezvisko'] == $b['priezvisko']) {&lt;br /&gt;
		return ($a['meno'] &amp;lt; $b['meno']) ? -1 : 1;&lt;br /&gt;
	} else {&lt;br /&gt;
		return ($a['priezvisko'] &amp;lt; $b['priezvisko']) ? -1 : 1;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Funkcia na porovnanie vyučujúcich porovnáva najskôr podľa priezviska, v prípade zhody sa porovnáva podľa mena. &lt;br /&gt;
&lt;br /&gt;
Kód 4.3 Príklad použitia metódy ''bothViewsSelect'' na výber vyučujúcich&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function getUsers()&lt;br /&gt;
{&lt;br /&gt;
	return $this-&amp;gt;bothViewsSelect(&lt;br /&gt;
		array('meno', 'priezvisko', 'tituly', 'user_id'),&lt;br /&gt;
		'cmp_teachers'&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Výber dát z databázy podľa zvolených parametrov===&lt;br /&gt;
&lt;br /&gt;
Metóda ''getTTable'' získa z&amp;amp;nbsp;databázy všetky potrebné dáta podľa zadaných parametrov z&amp;amp;nbsp;formulára a&amp;amp;nbsp;pripraví ich pre pomocnú triedu ''TimetableRenderer'', ktorá sa stará o&amp;amp;nbsp;vykresľovanie tabuľky rozvrhu.&lt;br /&gt;
&lt;br /&gt;
Kód 4.4 Metóda ''getTTable''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function getTTable($params)&lt;br /&gt;
{&lt;br /&gt;
	$return = array('D' =&amp;gt; array(), 'E' =&amp;gt; array());&lt;br /&gt;
$where = array();&lt;br /&gt;
	if($params['subclass']) {&lt;br /&gt;
		$branch_num = substr($params['subclass'], 1, 1);&lt;br /&gt;
		$year = substr($params['subclass'], 2, 1);&lt;br /&gt;
		$sign = substr($params['subclass'], 3);&lt;br /&gt;
&lt;br /&gt;
		$where[] = $this-&amp;gt;_db-&amp;gt;quoteInto('branch_num = ?', (int)$branch_num);&lt;br /&gt;
		$where[] = $this-&amp;gt;_db-&amp;gt;quoteInto('year = ?', (int)$year);&lt;br /&gt;
		$where[] = $this-&amp;gt;_db-&amp;gt;quoteInto('subclass_sign IS NULL OR subclass_sign = ?', $sign);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ak bol zadaný parameter krúžok, získame z&amp;amp;nbsp;neho jednotlivé údaje o&amp;amp;nbsp;číselnom označení odboru, ročníka a&amp;amp;nbsp;krúžka. Tieto údaje potom vložíme do poľa podmienok ''$where''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
if($params['room']) {&lt;br /&gt;
		$where[] = $this-&amp;gt;_db-&amp;gt;quoteInto('room_id = ?', (int)$params['room']);&lt;br /&gt;
	}&lt;br /&gt;
	if($params['teacher']) {&lt;br /&gt;
		$where[] = $this-&amp;gt;_db-&amp;gt;quoteInto('user_id = ?', (int)$params['teacher']);&lt;br /&gt;
	}&lt;br /&gt;
	if($params['subject']) {&lt;br /&gt;
		$where[] = $this-&amp;gt;_db-&amp;gt;quoteInto('subject_id = ?', (int)$params['subject']);&lt;br /&gt;
	}&lt;br /&gt;
	$select = $this-&amp;gt;_db-&amp;gt;select()&lt;br /&gt;
		-&amp;gt;from(T_VIEW,&lt;br /&gt;
			array('subject', 'hours', 'color', 'week','day', 'hour', 'room', 'meno', 'priezvisko', 'tituly', 'subclass'));&lt;br /&gt;
	foreach($where as $wh) {&lt;br /&gt;
		$select-&amp;gt;where($wh);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vytvorenie dopytu na pohľad ''rozvrh_view'' v&amp;amp;nbsp;databáze&amp;amp;nbsp;denných študentov.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
	$data = $this-&amp;gt;_db-&amp;gt;fetchAll($select);&lt;br /&gt;
	$return = array();&lt;br /&gt;
	foreach($data as $row) {&lt;br /&gt;
		$return['D'][$row['day']][$row['week']][$row['hour']] = array(&lt;br /&gt;
			'subject' =&amp;gt; $row['subject'],&lt;br /&gt;
			'tituly' =&amp;gt; $row['tituly'],&lt;br /&gt;
			'meno' =&amp;gt; $row['meno'],&lt;br /&gt;
			'priezvisko' =&amp;gt; $row['priezvisko'],&lt;br /&gt;
			'room' =&amp;gt; $row['room'],&lt;br /&gt;
			'subclass' =&amp;gt; $row['subclass'],&lt;br /&gt;
			'hours' =&amp;gt; $row['hours'],&lt;br /&gt;
			'color' =&amp;gt; $row['color']&lt;br /&gt;
		);&lt;br /&gt;
	}&lt;br /&gt;
	return $return;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metóda ''getTTable'' vracia údaje z&amp;amp;nbsp;databázy do mnohorozmerného poľa, zoradeného podľa našich potrieb pre vykresľovanie.&lt;br /&gt;
&lt;br /&gt;
===Vykresľovanie rozvrhu===&lt;br /&gt;
Vytvorená trieda ''Views_Helpers_TimetableRenderer'' pre časť ''view'' obsahuje metódy:&lt;br /&gt;
&lt;br /&gt;
* ''timetableRenderer($data, $subclass)'' – ak vo formulári nebol ako parameter vybraný krúžok, vypíše sa rozvrh pre denných aj externých študentov. V&amp;amp;nbsp;opačnom prípade sa rozhodne o&amp;amp;nbsp;tom, ktorý druh rozvrhu sa vypíše, podľa názvu krúžku. Krúžky patriace do externej formy štúdia majú v&amp;amp;nbsp;názvoch písmeno E.&lt;br /&gt;
* ''intern()'' – metóda na vykreslenie tabuľky rozvrhu denných študentov, ktorá si volá ďalšie pomocné metódy:&lt;br /&gt;
* ''intern_prepareDay($index'') – metóda vracia štruktúru buniek dňa s&amp;amp;nbsp;indexom $index&lt;br /&gt;
* ''intern_prepareCell($data)'' – metóda vytvára obsah bunky (predmet, meno vyučujúceho, učebňa, prípadne číslo krúžku). Číslo krúžku sa vypisuje len v&amp;amp;nbsp;prípade, ak sa nejedná o&amp;amp;nbsp;prednášky.&lt;br /&gt;
&lt;br /&gt;
==Realizácia používateľského rozhrania v&amp;amp;nbsp;režime offline==&lt;br /&gt;
Pre zabezpečenie funkcionality aj v&amp;amp;nbsp;režime off-line sme využili rozšírenie Google Gears. Toto rozšírenie nám sprístupní rovnaké dáta a&amp;amp;nbsp;funkcionalitu ako v&amp;amp;nbsp;režime on-line. Aby sa možnosti off-line web aplikácie mohli využívať, je potrebné splniť nasledujúce podmienky:&lt;br /&gt;
&lt;br /&gt;
* Používateľ musí mať vo svojom prehliadači nainštalované rozšírenie Google Gears.&lt;br /&gt;
* Používateľ musí web aplikácií RozvrhFM povoliť využívanie tohto rozšírenia pre&amp;amp;nbsp;konkrétnu doménu.&lt;br /&gt;
* Synchronizácia dát musí prebehnúť úspešne.&lt;br /&gt;
&lt;br /&gt;
===Povolenie prístupu===&lt;br /&gt;
Funkcionalita Google Gears je v&amp;amp;nbsp;užívateľskom prostredí reprezentované ikonou (Obr. 4.4). Po jej stlačení sa vysunie panel s&amp;amp;nbsp;tlačidlom ''Inštalácia Google Gears''.&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_16.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 4.4 Panel s&amp;amp;nbsp;ikonou Google Gears&lt;br /&gt;
&lt;br /&gt;
Povolenie prístupu Google Gears pre doménu rozvrhu musí potvrdiť používateľ (Obr 4.5).&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_17.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 4.5 Okno žiadosti o&amp;amp;nbsp;povolenie prístupu Google Gears pre doménu ''rozvrh.fmtnuni.sk''&lt;br /&gt;
&lt;br /&gt;
Inštalácia prebieha zavolaním metódy ''getPermission'' triedy ''roGears'' v&amp;amp;nbsp;kóde 4.5. V&amp;amp;nbsp;prípade,  ak je definovaný objekt ''google.gears'' a&amp;amp;nbsp;doména zatiaľ nemá povolenie, zobrazí sa okno          so žiadosťou o&amp;amp;nbsp;povolenie prístupu. Po povolení prístupu sa volá metóda ''createStore'' určená   na synchronizáciu.&lt;br /&gt;
&lt;br /&gt;
Kód 4.5 Metóda ''getPermission'' triedy ''roGears''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
getPermission : function() {&lt;br /&gt;
      var perm = true;&lt;br /&gt;
      if ( 'undefined' != typeof google &amp;amp;&amp;amp; google.gears ) {&lt;br /&gt;
		if ( !google.gears.factory.hasPermission )&lt;br /&gt;
                	perm = google.gears.factory.getPermission('Rozvrh',           &lt;br /&gt;
                  'public/img/logo.png' );&lt;br /&gt;
            if ( perm )&lt;br /&gt;
			try { roGears.createStore(); } catch(e) { alert(e); } &lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Synchronizácia===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Synchronizácia dát v&amp;amp;nbsp;našej web aplikácií nemusí prebiehať pri každej návšteve web stránky, pretože sa predpokladá, že dáta na serveri nebudú často aktualizované. Preto sme sa rozhodli, že synchronizácia dát prebehne hneď po povolení prístupu pre doménu. Ďalšia synchronizácia bude možná stlačením používateľského tlačidla synchronizácie. Synchronizácia sa vykoná zavolaním metódy ''createStore'' triedy ''roGears'' v kóde 4.6.&lt;br /&gt;
&lt;br /&gt;
Kód 4.6 Metóda createStore triedy roGears&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
createStore : function() {&lt;br /&gt;
	db = google.gears.factory.create('beta.database'); &lt;br /&gt;
	if(db)&lt;br /&gt;
		db.open('rozvrh');    &lt;br /&gt;
	if ( 'undefined' == typeof google || ! google.gears ) return;&lt;br /&gt;
	if ( 'undefined' == typeof localServer )&lt;br /&gt;
	      localServer = google.gears.factory.create(&amp;quot;beta.localserver&amp;quot;);&lt;br /&gt;
      store = localServer.createManagedStore('rozvrh');&lt;br /&gt;
	store.manifestUrl = &amp;quot;public/gears/timetable.json&amp;quot;;&lt;br /&gt;
	store.checkForUpdate();  &lt;br /&gt;
      roGears.syncData();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metóda ''createStore ''zabezpečí vytvorenie objektov ''beta.database,''&amp;amp;nbsp;''beta.localserver ''a&amp;amp;nbsp;skopíruje súbory nevyhnutné pre beh aplikácie v&amp;amp;nbsp;režime off-line. Zoznam týchto súborov sa&amp;amp;nbsp;nachádza v&amp;amp;nbsp;súbore ''timetable.json''. V&amp;amp;nbsp;našom prípade synchronizujeme aj samotný html dokument, ktorý sa na lokálny disk uloží bez PHP kódu. Používateľ je o procese synchronizácie informovaný upozornením v&amp;amp;nbsp;hornom paneli (Obr 4.6).&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_18.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 4.6 Zobrazenie informácie&amp;amp;nbsp;stavu on-line a&amp;amp;nbsp;synchronizácie&lt;br /&gt;
&lt;br /&gt;
Synchronizácia databázy sa vykoná zavolaním metódy ''syncData ''v&amp;amp;nbsp;kóde 4.7'' ''triedy ''roGears. ''Metóda db.''execute'' vytvorí tabuľku ''rozvrh'' v&amp;amp;nbsp;lokálnej databáze. Štruktúra tejto tabuľky je rovnaká ako štruktúra tabuľky databázy na serveri, z&amp;amp;nbsp;ktorej získavame údaje. Pomocou funkcie ''getJSON ''knižnice ''jQuery'' získame json objekt, ktorý obsahuje všetky potrebné údaje. Získané údaje z&amp;amp;nbsp;tohto objektu nahráme do tabuľky ''rozvrh''.&lt;br /&gt;
&lt;br /&gt;
4.7 Metóda ''syncData'''' ''v&amp;amp;nbsp;kóde '' ''triedy ''roGears''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
syncData : function() {&lt;br /&gt;
    clearInterval(int_checkOnline);&lt;br /&gt;
    $('#sync').show();&lt;br /&gt;
    // vytvorenie novej tabulky pre lokalne ulozisko&lt;br /&gt;
    db.execute('create table if not exists rozvrh' +          &lt;br /&gt;
    ' (subject varchar(255), subject_abbr varchar(20), ...&lt;br /&gt;
    // poziadavka na online rozvrh&lt;br /&gt;
    $.getJSON(BASEURL + '/json/data/subclass/all', [], function(jpole) {&lt;br /&gt;
	   db.execute('DELETE FROM rozvrh');&lt;br /&gt;
	   // vsetky zaznamy v rozvrhu&lt;br /&gt;
	   for (var i = 0; i &amp;lt; (jpole['intern'].length);i++) &lt;br /&gt;
	   // vlozenie dát do lokalnej tabulky&lt;br /&gt;
         db.execute('INSERT INTO rozvrh VALUES  ... );  &lt;br /&gt;
         int_checkOnline = window.setInterval(roGears.checkOnline, 3000);&lt;br /&gt;
         $('#sync').hide();&lt;br /&gt;
    });&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
V kóde 4.7 sa nachádza len principiálny kód pre objasnenie synchronizácie databázy. Kompletný výpis zdrojového kódu metódy ''syncData ''sa nachádza na priloženom CD nosiči.&lt;br /&gt;
&lt;br /&gt;
====Zisťovanie on-line a off-line stavu====&lt;br /&gt;
Podľa stavu, v&amp;amp;nbsp;ktorom sa aplikácia nachádza, získavame dáta buď zo servera alebo z&amp;amp;nbsp;lokálneho úložiska. Používateľ je o&amp;amp;nbsp;stave  on-line a off-line informovaný pomocou ikony v&amp;amp;nbsp;hornom paneli. Zisťovania stavu zabezpečuje metóda ''checkOnline ''triedy ''roGears v (Kóde 4.5).''&lt;br /&gt;
&lt;br /&gt;
Kód 4.8 Metóda ''checkOnline ''triedy ''roGears''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
checkOnline : function() {&lt;br /&gt;
      var PING_TIMEOUT_SECONDS = 1000;&lt;br /&gt;
	var TIME_BETWEEN_PINGS = 3 * 1000;&lt;br /&gt;
      if(!int_checkOnline) return;&lt;br /&gt;
            $.ajax({&lt;br /&gt;
			url : BASEURL + '/index/checkonline',&lt;br /&gt;
			dataType : 'text',&lt;br /&gt;
			timeout : PING_TIMEOUT_SECONDS,&lt;br /&gt;
			cache : false,&lt;br /&gt;
			error : function() { ONLINE = false; $('#indicator').attr('class', 'offline'); $('#panel input').hide(); },&lt;br /&gt;
                  success : function() { ONLINE = true; $('#indicator').attr('class', 'online'); $('#panel input').show(); }&lt;br /&gt;
		});&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metóda ''checkOnline'' každé tri sekundy odošle požiadavku na zvolenú URL. Jedinou funkciou tejto URL je prijímanie požiadaviek na kontrolu stavu on-line/off-line. Ak metóda dostane odpoveď 200,'' ''hodnota premennej ONLINE sa nastaví na ''true.'' V&amp;amp;nbsp;opačnom prípade na ''false''. Čas vypršania požiadavky je nastavený na jednu sekundu. Po uplynutí tohto času je požiadavka považovaná za neúspešnú.&lt;br /&gt;
&lt;br /&gt;
==Implementácia systému RozvrhFM==&lt;br /&gt;
&lt;br /&gt;
Web aplikácia Rozvrh FM pracuje na webovom serveri Apache s modulmi PHP a MySQL. Všetok použitý softvér na strane servera je open-source. Pri tvorbe tejto aplikácie sme využili PHP ZEND framework a javascriptovú knižnicu jquery. Na Obr. 4.7 je náhľad na rozhranie aplikácie RozvrhFM.&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_19.png|framed|none]]&lt;br /&gt;
Obr 4.7 Zobrazenie používateľského rozhrania aplikácie RozvrhFM&lt;br /&gt;
&lt;br /&gt;
Vlastnosti vytvoreného systému môžeme zhrnúť do nasledujúcich bodov:&amp;lt;br&amp;gt;Výhody aplikácie RozvrhFM:&lt;br /&gt;
* systém RozvrhFM je vďaka dodržiavaniu štandardov kompatibilný so všetkými internetovými prehliadačmi,&lt;br /&gt;
* vyššia rýchlosť oproti iným systémom, ktoré využívajú proprietárne technológie ako napr. ActiveX,&lt;br /&gt;
* jednoduchý export údajov do iných systémov (formát JSON),&lt;br /&gt;
* bezpečnosť aplikácie: údaje z&amp;amp;nbsp;databázy získavame pomocou obmedzeného prístupu k databáze.&amp;lt;br&amp;gt;Nevýhody aplikácie RozvrhFM:&lt;br /&gt;
* systém nie je začlenený do ďalšieho informačného systému, aj keď zoznam vyučujúcich sa získava z&amp;amp;nbsp;databázy evalvácie fakulty,&lt;br /&gt;
* v&amp;amp;nbsp;súvislosti s&amp;amp;nbsp;tým, že vývoj Google Gears bol zastavený, nepredpokladá sa žiadne ďalšie vylepšenie off-line funkcionality.&lt;br /&gt;
&lt;br /&gt;
'Záver'&lt;br /&gt;
&lt;br /&gt;
Cieľom práce bolo navrhnúť požívateľské rozhranie web aplikácie na zobrazovanie rozvrhu Fakulty mechatroniky a opísať technológiu Google Gears, ktorá je implementovaná v navrhnutej aplikácii. Zamerali sme sa aj na novú špecifikáciu HTML5, ktorá bude taktiež podporovať off-line aplikácie. V tretej kapitole sme predstavili niekoľko aplikácií, ktoré umožňujú vytvárať a zobrazovať rozvrh. Popísali sme, akým spôsobom zobrazujú údaje a zvýraznili nedostatky, ktoré z tohto plynú. Z existujúcich systémov pre vizualizáciu rozvrhu sme vybrali ich najlepšie vlastnosti a tieto sme implementovali do vytvoreného rozvrhu Fakulty mechatroniky RozvrhFM. V aplikácií RozvrhFM bola doplnená nová funkcionalita, ktorú neobsahuje ani jeden z porovnávaných systémov pre vizualizáciu rozvrhu. Nová funkcionalita zahŕňa off-line prístup k rozvrhu a zobrazenie doplňujúcich informácií, ako napr. zoznam študijných krúžkov alebo nové zmeny v rozvrhu. V poslednej kapitole sme sa venovali návrhu a implementácií nového rozvrhu Fakulty mechatroniky. Navrhli sme vzhľad používateľského prostredia a zvolili prehľadný spôsob, akým zobraziť tabuľku rozvrhu. Pre prístup k rozvrhu nie je vyžadovaná autentifikácia. S využitím technológie Google Gears sme zabezpečili podporu aplikácie aj v režime off-line. Používateľ bude môcť zobrazovať svoj rozvrh aj v prípade, že nebude mať prístup k internetu. Aplikácia RozvrhFM je v súčasnosti dostupná na adrese rozvrh.fmtnuni.sk.&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=N%C3%A1vrh_pou%C5%BE%C3%ADvate%C4%BEsk%C3%A9ho_rozhrania_rozvrhu_FM_TnUAD&amp;diff=6892</id>
		<title>Návrh používateľského rozhrania rozvrhu FM TnUAD</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=N%C3%A1vrh_pou%C5%BE%C3%ADvate%C4%BEsk%C3%A9ho_rozhrania_rozvrhu_FM_TnUAD&amp;diff=6892"/>
		<updated>2010-09-05T13:39:39Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]][[Kategória:Bakalárske práce]][[Kategória:Informatika]][[Kategória:php]][[Kategória:web]]&lt;br /&gt;
{{Praca_uvod|4|Off-line funkcionalita on-line web aplikácií|Štruktúra webovej aplikácie|Technológie off-line web aplikácií|Systémy na vizualizáciu rozvrhu hodín|Návrh používateľského rozhrania rozvrhu FM TnUAD}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=RozvrhFM – návrh a implementácia nového rozvrhu fakulty mechatroniky=&lt;br /&gt;
&lt;br /&gt;
Úlohou tejto bakalárskej práce je navrhnúť používateľské rozhranie (frontend) rozvrhu Fakulty mechatroniky pre režim on-line aj off-line. Pri návrhu bol kladený dôraz na to, aby bolo používateľské prostredie dostatočne prehľadné a jednoduché. &lt;br /&gt;
Webová aplikácia RozvrhFM je databázová aplikácia. Entitno relačný model databázy nie je v tejto práci potrebné uvádzať, pretože pre získanie údajov z databázy je pripravený databázový pohľad (view) rozvrh_view, v ktorom sú všetky požadované údaje pre zobrazenie rozvrhu. Štruktúra tohto pohľadu je zobrazená v tabuľke 4.1.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 4.1 Štruktúra databázového pohľadu ''rozvrh_view''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|align = &amp;quot;center&amp;quot;|'''Pole'''&lt;br /&gt;
|align = &amp;quot;center&amp;quot;|'''Typ'''&lt;br /&gt;
|align = &amp;quot;center&amp;quot;|'''Význam'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|subject &lt;br /&gt;
|varchar(255)&lt;br /&gt;
|Názov predmetu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|subject_abbr &lt;br /&gt;
|varchar(20)&lt;br /&gt;
|Skratka predmetu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|subject_id &lt;br /&gt;
|int(11)&lt;br /&gt;
|ID predmetu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|hours &lt;br /&gt;
|tinyint(1)&lt;br /&gt;
|Dĺžka trvania prednášky v hodinách&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|type &lt;br /&gt;
|varchar(10)&lt;br /&gt;
|Typ vyučovacej hodiny (prednáška, cvičenie, laboratóriá)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|color &lt;br /&gt;
|varchar(7)&lt;br /&gt;
|Farba&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|week &lt;br /&gt;
|enum(&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;k&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;p&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;n&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
|Predmet sa vyučuje: každý, párny, nepárny týždeň&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|day &lt;br /&gt;
|tinyint(1)&lt;br /&gt;
|Deň v&amp;amp;nbsp;týždni (1-5)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|hour &lt;br /&gt;
|tinyint(2)&lt;br /&gt;
|Hodina, v ktorej začína vyučovanie predmetu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|room &lt;br /&gt;
|varchar(10)&lt;br /&gt;
|Miestnosť&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|room_id &lt;br /&gt;
|int(11)&lt;br /&gt;
|ID miestnosti&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|provides &lt;br /&gt;
|varchar(8)&lt;br /&gt;
|Katedra, ktorá predmet zabezpečuje&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|meno &lt;br /&gt;
|varchar(128)&lt;br /&gt;
|Meno vyučujúceho&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|priezvisko &lt;br /&gt;
|varchar(128)&lt;br /&gt;
|Priezvisko vyučujúceho&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|tituly &lt;br /&gt;
|varchar(128)&lt;br /&gt;
|Tituly vyučujúceho&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|user_katedra &lt;br /&gt;
|varchar(128)&lt;br /&gt;
|Katedra, pod ktorú patrí vyučujúci&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|user_id &lt;br /&gt;
|int(11)&lt;br /&gt;
|ID vyučujúceho&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|user_abbr &lt;br /&gt;
|varchar(20)&lt;br /&gt;
|Skratka mena vyučujúceho&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|office &lt;br /&gt;
|varchar(10)&lt;br /&gt;
|Číslo kancelárie vyučujúceho&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|subclass &lt;br /&gt;
|var(18)&lt;br /&gt;
|Krúžok, ktorý má vyučovanie&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|subclass_id &lt;br /&gt;
|int(11)&lt;br /&gt;
|ID krúžku&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|branch &lt;br /&gt;
|varchar(5)&lt;br /&gt;
|Odbor&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|branch_num &lt;br /&gt;
|int(1)&lt;br /&gt;
|Číslo odboru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|subclass_sign &lt;br /&gt;
|varchar(2)&lt;br /&gt;
|Koncové dvojčíslie krúžku&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|year &lt;br /&gt;
|tinyint(1)&lt;br /&gt;
|Rok štúdia &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|note &lt;br /&gt;
|varchar(255)&lt;br /&gt;
|Poznámka&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Grafický návrh používateľského rozhrania==&lt;br /&gt;
Grafický návrh používateľského rozhrania je veľmi dôležitý, pretože tvorí časť, s ktorou je používateľ priamo konfrontovaný. Cieľom rozvrhnutia jednotlivých častí (Obr. 4.1) je zobrazenie čo najväčšej časti výpisu tabuľky rozvrhu bez nutnosti posúvania zobrazenej plochy stránky. Oproti verzii opisovanej v kapitole 3.2.1 pribudne niekoľko panelov. Vrchný panel bude obsahovať ikonu režimu práce (on-line/off-line). Ikona bude zobrazovaná len v prípade nainštalovaného rozšírenia Google Gears. Z formulára na výber jednotlivých parametrov pre filtrovanie sme odstránili niekoľko prvkov formulára, ktoré neboli dôležité. Ponechané boli iba prvky na výber krúžku, predmetu, vyučujúceho a miestnosti. V pravej časti pribudne panel na zobrazovanie informácií o zmene v rozvrhu. Pod ním je panel odkazov na export rozvrhu do rôznych formátov a ponuka inštalácie rozšírenia Google Gears.    &lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_13.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr. 4.1 Návrh prezentačnej vrstvy rozvrhu&lt;br /&gt;
&lt;br /&gt;
Najdôležitejšou časťou je zobrazenie samotnej tabuľky rozvrhu. Oproti súčasnej verzií (Obr. 3.3) je do návrhu novej tabuľky rozvrhu (Obr. 4.2) pridaná vodorovná časová os. Každý ďalší riadok tabuľky reprezentuje deň v týždni a zobrazuje predmety, ktoré do neho patria. V prípade, že sa predmet koná len v nepárny týždeň, rozdelí sa riadok na dva riadky. Tie potom reprezentujú párny a nepárny týždeň. Prednáška je označená modrou, cvičenie červenou a laboratóriá zelenou farbou. Každá farebná bunka obsahuje názov predmetu, meno vyučujúceho a miestnosť, kde sa vyučovanie koná. Nasledovným rozvrhnutím tabuľky rozvrhu sme zobrazili potrebné údaje a zlepšili prehľadnosť odstránením prebytočných údajov. &lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_14.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 4.2 Návrh novej tabuľky rozvrhu&lt;br /&gt;
&lt;br /&gt;
===Realizácia používateľského rozhrania v&amp;amp;nbsp;režime online===&lt;br /&gt;
Pri realizácií front-endu rozvrhu fakulty mechatroniky sme použili knižnicu ZEND framework [19].&lt;br /&gt;
&lt;br /&gt;
====Príprava dát pre formulár====&lt;br /&gt;
Formulár (Obr. 4.3) slúži na výber jednotlivých parametrov, podľa ktorých sa budú filtrovať dáta z&amp;amp;nbsp;databázy. Následne sa zobrazí tabuľka zodpovedajúca týmto dátam. Výpis rozvrhu sa dá filtrovať podľa názvu krúžku, predmetu, mena vyučujúceho a&amp;amp;nbsp;učebne.&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_15.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 4.3 Formulár na výber dát podľa parametrov&lt;br /&gt;
&lt;br /&gt;
Zoznam všetkých možností výberu jednotlivých parametrov sa načíta z pohľadov databázy rozvrh_view a rozvrh_view_extern. Formulár nezobrazí prvky výberu, ktoré síce v databáze existujú, ale nie sú zaradené do aktuálne vytvoreného rozvrhu. To znamená, že vo formulári bude chýbať, napr. predmet Matematika I. v prípade, ak nebude mať pridelený aspoň jeden krúžok. Potom by bol tento predmet ako možnosť parametra predmet zbytočný. &lt;br /&gt;
&lt;br /&gt;
Výber údajov z databázy zabezpečuje trieda indexSearch, ktorá je modelom používaným v kontroléri indexController. Tento kontrolér obsluhuje celý front-end. Výber jednotlivých parametrov má veľmi podobný SQL dopyt, ktorý sa líši iba názvami vyberaných stĺpcov. Preto bola vytvorená metóda bothViewsSelect znázornená v kóde 4.1, ktorá vyberá údaje z oboch pohľadov.&lt;br /&gt;
&lt;br /&gt;
Kód 5.1 Metóda ''bothViewsSelect'''' ''triedy ''indexSearch''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
private function bothViewsSelect(array $columns, $cmp = null, array $where = array())&lt;br /&gt;
	{&lt;br /&gt;
		$types = array('D' =&amp;gt; T_VIEW, 'E' =&amp;gt; T_VIEW_E);&lt;br /&gt;
		$union = array();&lt;br /&gt;
&lt;br /&gt;
		foreach($types as $type =&amp;gt; $table) {&lt;br /&gt;
			$select = $this-&amp;gt;_db-&amp;gt;select()&lt;br /&gt;
				-&amp;gt;distinct()&lt;br /&gt;
				-&amp;gt;from($table, $columns);&lt;br /&gt;
&lt;br /&gt;
			foreach($where as $wh) {&lt;br /&gt;
				$select-&amp;gt;where($wh);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			$union[] = $select;&lt;br /&gt;
		}&lt;br /&gt;
		$select = $this-&amp;gt;_db-&amp;gt;select()-&amp;gt;union($union);&lt;br /&gt;
$data = $this-&amp;gt;_db-&amp;gt;fetchAll($select);&lt;br /&gt;
		if($cmp !== null) {&lt;br /&gt;
			usort($data, $cmp);&lt;br /&gt;
		}&lt;br /&gt;
		return $data;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Metóda ''bothViewsSelect ''má nasledovné parametre:&lt;br /&gt;
&lt;br /&gt;
* $columns – pole stĺpcov, ktoré sa majú z&amp;amp;nbsp;databázy vybrať&lt;br /&gt;
* $cmp – obsahuje názov porovnávacej funkcie, podľa ktorej sa majú výsledky zoradiť, v opačnom prípadne má hodnotu ''null''&lt;br /&gt;
* $where – pole podmienok dotazu&lt;br /&gt;
&lt;br /&gt;
Najskôr sa pre každý pohľad vytvorí ''SELECT'' dopyt zvlášť podľa parametrov metódy. Následne sa tieto dopyty spoja SQL príkazom ''UNION(),'' ktorý zabezpečí, že vyberú iba rozdielne dáta. Výber dát z&amp;amp;nbsp;databázy vykonáva metóda ''fetchAll()'' triedy ''Zend_Db_Select''. Ak&amp;amp;nbsp;parameter ''$cmp'' obsahuje názov porovnávacej funkcie, zavolá sa funkcia ''usort()''. Tá má parameter ''$data'', ktorý obsahuje výsledky dopytu a samotný parameter ''$cmp''. Zoradí pole ''$data'' podľa názvu funkcie uloženého v&amp;amp;nbsp;reťazci ''$cmp.''&lt;br /&gt;
&lt;br /&gt;
Kód 4.2 Príklad funkcia na porovnanie vyučujúcich&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
function cmp_teachers($a, $b)&lt;br /&gt;
{&lt;br /&gt;
	if($a['priezvisko'] == $b['priezvisko']) {&lt;br /&gt;
		return ($a['meno'] &amp;lt; $b['meno']) ? -1 : 1;&lt;br /&gt;
	} else {&lt;br /&gt;
		return ($a['priezvisko'] &amp;lt; $b['priezvisko']) ? -1 : 1;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Funkcia na porovnanie vyučujúcich porovnáva najskôr podľa priezviska, v prípade zhody sa porovnáva podľa mena. &lt;br /&gt;
&lt;br /&gt;
Kód 4.3 Príklad použitia metódy ''bothViewsSelect'' na výber vyučujúcich&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function getUsers()&lt;br /&gt;
{&lt;br /&gt;
	return $this-&amp;gt;bothViewsSelect(&lt;br /&gt;
		array('meno', 'priezvisko', 'tituly', 'user_id'),&lt;br /&gt;
		'cmp_teachers'&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Výber dát z databázy podľa zvolených parametrov===&lt;br /&gt;
&lt;br /&gt;
Metóda ''getTTable'' získa z&amp;amp;nbsp;databázy všetky potrebné dáta podľa zadaných parametrov z&amp;amp;nbsp;formulára a&amp;amp;nbsp;pripraví ich pre pomocnú triedu ''TimetableRenderer'', ktorá sa stará o&amp;amp;nbsp;vykresľovanie tabuľky rozvrhu.&lt;br /&gt;
&lt;br /&gt;
Kód 4.4 Metóda ''getTTable''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function getTTable($params)&lt;br /&gt;
{&lt;br /&gt;
	$return = array('D' =&amp;gt; array(), 'E' =&amp;gt; array());&lt;br /&gt;
$where = array();&lt;br /&gt;
	if($params['subclass']) {&lt;br /&gt;
		$branch_num = substr($params['subclass'], 1, 1);&lt;br /&gt;
		$year = substr($params['subclass'], 2, 1);&lt;br /&gt;
		$sign = substr($params['subclass'], 3);&lt;br /&gt;
&lt;br /&gt;
		$where[] = $this-&amp;gt;_db-&amp;gt;quoteInto('branch_num = ?', (int)$branch_num);&lt;br /&gt;
		$where[] = $this-&amp;gt;_db-&amp;gt;quoteInto('year = ?', (int)$year);&lt;br /&gt;
		$where[] = $this-&amp;gt;_db-&amp;gt;quoteInto('subclass_sign IS NULL OR subclass_sign = ?', $sign);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ak bol zadaný parameter krúžok, získame z&amp;amp;nbsp;neho jednotlivé údaje o&amp;amp;nbsp;číselnom označení odboru, ročníka a&amp;amp;nbsp;krúžka. Tieto údaje potom vložíme do poľa podmienok ''$where''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
if($params['room']) {&lt;br /&gt;
		$where[] = $this-&amp;gt;_db-&amp;gt;quoteInto('room_id = ?', (int)$params['room']);&lt;br /&gt;
	}&lt;br /&gt;
	if($params['teacher']) {&lt;br /&gt;
		$where[] = $this-&amp;gt;_db-&amp;gt;quoteInto('user_id = ?', (int)$params['teacher']);&lt;br /&gt;
	}&lt;br /&gt;
	if($params['subject']) {&lt;br /&gt;
		$where[] = $this-&amp;gt;_db-&amp;gt;quoteInto('subject_id = ?', (int)$params['subject']);&lt;br /&gt;
	}&lt;br /&gt;
	$select = $this-&amp;gt;_db-&amp;gt;select()&lt;br /&gt;
		-&amp;gt;from(T_VIEW,&lt;br /&gt;
			array('subject', 'hours', 'color', 'week','day', 'hour', 'room', 'meno', 'priezvisko', 'tituly', 'subclass'));&lt;br /&gt;
	foreach($where as $wh) {&lt;br /&gt;
		$select-&amp;gt;where($wh);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vytvorenie dopytu na pohľad ''rozvrh_view'' v&amp;amp;nbsp;databáze&amp;amp;nbsp;denných študentov.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
	$data = $this-&amp;gt;_db-&amp;gt;fetchAll($select);&lt;br /&gt;
	$return = array();&lt;br /&gt;
	foreach($data as $row) {&lt;br /&gt;
		$return['D'][$row['day']][$row['week']][$row['hour']] = array(&lt;br /&gt;
			'subject' =&amp;gt; $row['subject'],&lt;br /&gt;
			'tituly' =&amp;gt; $row['tituly'],&lt;br /&gt;
			'meno' =&amp;gt; $row['meno'],&lt;br /&gt;
			'priezvisko' =&amp;gt; $row['priezvisko'],&lt;br /&gt;
			'room' =&amp;gt; $row['room'],&lt;br /&gt;
			'subclass' =&amp;gt; $row['subclass'],&lt;br /&gt;
			'hours' =&amp;gt; $row['hours'],&lt;br /&gt;
			'color' =&amp;gt; $row['color']&lt;br /&gt;
		);&lt;br /&gt;
	}&lt;br /&gt;
	return $return;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metóda ''getTTable'' vracia údaje z&amp;amp;nbsp;databázy do mnohorozmerného poľa, zoradeného podľa našich potrieb pre vykresľovanie.&lt;br /&gt;
&lt;br /&gt;
===Vykresľovanie rozvrhu===&lt;br /&gt;
Vytvorená trieda ''Views_Helpers_TimetableRenderer'' pre časť ''view'' obsahuje metódy:&lt;br /&gt;
&lt;br /&gt;
* ''timetableRenderer($data, $subclass)'' – ak vo formulári nebol ako parameter vybraný krúžok, vypíše sa rozvrh pre denných aj externých študentov. V&amp;amp;nbsp;opačnom prípade sa rozhodne o&amp;amp;nbsp;tom, ktorý druh rozvrhu sa vypíše, podľa názvu krúžku. Krúžky patriace do externej formy štúdia majú v&amp;amp;nbsp;názvoch písmeno E.&lt;br /&gt;
* ''intern()'' – metóda na vykreslenie tabuľky rozvrhu denných študentov, ktorá si volá ďalšie pomocné metódy:&lt;br /&gt;
* ''intern_prepareDay($index'') – metóda vracia štruktúru buniek dňa s&amp;amp;nbsp;indexom $index&lt;br /&gt;
* ''intern_prepareCell($data)'' – metóda vytvára obsah bunky (predmet, meno vyučujúceho, učebňa, prípadne číslo krúžku). Číslo krúžku sa vypisuje len v&amp;amp;nbsp;prípade, ak sa nejedná o&amp;amp;nbsp;prednášky.&lt;br /&gt;
&lt;br /&gt;
==Realizácia používateľského rozhrania v&amp;amp;nbsp;režime offline==&lt;br /&gt;
Pre zabezpečenie funkcionality aj v&amp;amp;nbsp;režime off-line sme využili rozšírenie Google Gears. Toto rozšírenie nám sprístupní rovnaké dáta a&amp;amp;nbsp;funkcionalitu ako v&amp;amp;nbsp;režime on-line. Aby sa možnosti off-line web aplikácie mohli využívať, je potrebné splniť nasledujúce podmienky:&lt;br /&gt;
&lt;br /&gt;
* Používateľ musí mať vo svojom prehliadači nainštalované rozšírenie Google Gears.&lt;br /&gt;
* Používateľ musí web aplikácií RozvrhFM povoliť využívanie tohto rozšírenia pre&amp;amp;nbsp;konkrétnu doménu.&lt;br /&gt;
* Synchronizácia dát musí prebehnúť úspešne.&lt;br /&gt;
&lt;br /&gt;
===Povolenie prístupu===&lt;br /&gt;
Funkcionalita Google Gears je v&amp;amp;nbsp;užívateľskom prostredí reprezentované ikonou (Obr. 4.4). Po jej stlačení sa vysunie panel s&amp;amp;nbsp;tlačidlom ''Inštalácia Google Gears''.&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_16.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 4.4 Panel s&amp;amp;nbsp;ikonou Google Gears&lt;br /&gt;
&lt;br /&gt;
Povolenie prístupu Google Gears pre doménu rozvrhu musí potvrdiť používateľ (Obr 4.5).&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_17.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 4.5 Okno žiadosti o&amp;amp;nbsp;povolenie prístupu Google Gears pre doménu ''rozvrh.fmtnuni.sk''&lt;br /&gt;
&lt;br /&gt;
Inštalácia prebieha zavolaním metódy ''getPermission'' triedy ''roGears'' v&amp;amp;nbsp;kóde 4.5. V&amp;amp;nbsp;prípade,  ak je definovaný objekt ''google.gears'' a&amp;amp;nbsp;doména zatiaľ nemá povolenie, zobrazí sa okno          so žiadosťou o&amp;amp;nbsp;povolenie prístupu. Po povolení prístupu sa volá metóda ''createStore'' určená   na synchronizáciu.&lt;br /&gt;
&lt;br /&gt;
Kód 4.5 Metóda ''getPermission'' triedy ''roGears''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
getPermission : function() {&lt;br /&gt;
      var perm = true;&lt;br /&gt;
      if ( 'undefined' != typeof google &amp;amp;&amp;amp; google.gears ) {&lt;br /&gt;
		if ( !google.gears.factory.hasPermission )&lt;br /&gt;
                	perm = google.gears.factory.getPermission('Rozvrh',           &lt;br /&gt;
                  'public/img/logo.png' );&lt;br /&gt;
            if ( perm )&lt;br /&gt;
			try { roGears.createStore(); } catch(e) { alert(e); } &lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Synchronizácia===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Synchronizácia dát v&amp;amp;nbsp;našej web aplikácií nemusí prebiehať pri každej návšteve web stránky, pretože sa predpokladá, že dáta na serveri nebudú často aktualizované. Preto sme sa rozhodli, že synchronizácia dát prebehne hneď po povolení prístupu pre doménu. Ďalšia synchronizácia bude možná stlačením používateľského tlačidla synchronizácie. Synchronizácia sa vykoná zavolaním metódy ''createStore'' triedy ''roGears'' v kóde 4.6.&lt;br /&gt;
&lt;br /&gt;
Kód 4.6 Metóda createStore triedy roGears&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
createStore : function() {&lt;br /&gt;
	db = google.gears.factory.create('beta.database'); &lt;br /&gt;
	if(db)&lt;br /&gt;
		db.open('rozvrh');    &lt;br /&gt;
	if ( 'undefined' == typeof google || ! google.gears ) return;&lt;br /&gt;
	if ( 'undefined' == typeof localServer )&lt;br /&gt;
	      localServer = google.gears.factory.create(&amp;quot;beta.localserver&amp;quot;);&lt;br /&gt;
      store = localServer.createManagedStore('rozvrh');&lt;br /&gt;
	store.manifestUrl = &amp;quot;public/gears/timetable.json&amp;quot;;&lt;br /&gt;
	store.checkForUpdate();  &lt;br /&gt;
      roGears.syncData();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metóda ''createStore ''zabezpečí vytvorenie objektov ''beta.database,''&amp;amp;nbsp;''beta.localserver ''a&amp;amp;nbsp;skopíruje súbory nevyhnutné pre beh aplikácie v&amp;amp;nbsp;režime off-line. Zoznam týchto súborov sa&amp;amp;nbsp;nachádza v&amp;amp;nbsp;súbore ''timetable.json''. V&amp;amp;nbsp;našom prípade synchronizujeme aj samotný html dokument, ktorý sa na lokálny disk uloží bez PHP kódu. Používateľ je o procese synchronizácie informovaný upozornením v&amp;amp;nbsp;hornom paneli (Obr 4.6).&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_18.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 4.6 Zobrazenie informácie&amp;amp;nbsp;stavu on-line a&amp;amp;nbsp;synchronizácie&lt;br /&gt;
&lt;br /&gt;
Synchronizácia databázy sa vykoná zavolaním metódy ''syncData ''v&amp;amp;nbsp;kóde 4.7'' ''triedy ''roGears. ''Metóda db.''execute'' vytvorí tabuľku ''rozvrh'' v&amp;amp;nbsp;lokálnej databáze. Štruktúra tejto tabuľky je rovnaká ako štruktúra tabuľky databázy na serveri, z&amp;amp;nbsp;ktorej získavame údaje. Pomocou funkcie ''getJSON ''knižnice ''jQuery'' získame json objekt, ktorý obsahuje všetky potrebné údaje. Získané údaje z&amp;amp;nbsp;tohto objektu nahráme do tabuľky ''rozvrh''.&lt;br /&gt;
&lt;br /&gt;
4.7 Metóda ''syncData'''' ''v&amp;amp;nbsp;kóde '' ''triedy ''roGears''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
syncData : function() {&lt;br /&gt;
    clearInterval(int_checkOnline);&lt;br /&gt;
    $('#sync').show();&lt;br /&gt;
    // vytvorenie novej tabulky pre lokalne ulozisko&lt;br /&gt;
    db.execute('create table if not exists rozvrh' +          &lt;br /&gt;
    ' (subject varchar(255), subject_abbr varchar(20), ...&lt;br /&gt;
    // poziadavka na online rozvrh&lt;br /&gt;
    $.getJSON(BASEURL + '/json/data/subclass/all', [], function(jpole) {&lt;br /&gt;
	   db.execute('DELETE FROM rozvrh');&lt;br /&gt;
	   // vsetky zaznamy v rozvrhu&lt;br /&gt;
	   for (var i = 0; i &amp;lt; (jpole['intern'].length);i++) &lt;br /&gt;
	   // vlozenie dát do lokalnej tabulky&lt;br /&gt;
         db.execute('INSERT INTO rozvrh VALUES  ... );  &lt;br /&gt;
         int_checkOnline = window.setInterval(roGears.checkOnline, 3000);&lt;br /&gt;
         $('#sync').hide();&lt;br /&gt;
    });&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
V kóde 4.7 sa nachádza len principiálny kód pre objasnenie synchronizácie databázy. Kompletný výpis zdrojového kódu metódy ''syncData ''sa nachádza na priloženom CD nosiči.&lt;br /&gt;
&lt;br /&gt;
====Zisťovanie on-line a off-line stavu====&lt;br /&gt;
Podľa stavu, v&amp;amp;nbsp;ktorom sa aplikácia nachádza, získavame dáta buď zo servera alebo z&amp;amp;nbsp;lokálneho úložiska. Používateľ je o&amp;amp;nbsp;stave  on-line a off-line informovaný pomocou ikony v&amp;amp;nbsp;hornom paneli. Zisťovania stavu zabezpečuje metóda ''checkOnline ''triedy ''roGears v (Kóde 4.5).''&lt;br /&gt;
&lt;br /&gt;
Kód 4.8 Metóda ''checkOnline ''triedy ''roGears''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
checkOnline : function() {&lt;br /&gt;
      var PING_TIMEOUT_SECONDS = 1000;&lt;br /&gt;
	var TIME_BETWEEN_PINGS = 3 * 1000;&lt;br /&gt;
      if(!int_checkOnline) return;&lt;br /&gt;
            $.ajax({&lt;br /&gt;
			url : BASEURL + '/index/checkonline',&lt;br /&gt;
			dataType : 'text',&lt;br /&gt;
			timeout : PING_TIMEOUT_SECONDS,&lt;br /&gt;
			cache : false,&lt;br /&gt;
			error : function() { ONLINE = false; $('#indicator').attr('class', 'offline'); $('#panel input').hide(); },&lt;br /&gt;
                  success : function() { ONLINE = true; $('#indicator').attr('class', 'online'); $('#panel input').show(); }&lt;br /&gt;
		});&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metóda ''checkOnline'' každé tri sekundy odošle požiadavku na zvolenú URL. Jedinou funkciou tejto URL je prijímanie požiadaviek na kontrolu stavu on-line/off-line. Ak metóda dostane odpoveď 200,'' ''hodnota premennej ONLINE sa nastaví na ''true.'' V&amp;amp;nbsp;opačnom prípade na ''false''. Čas vypršania požiadavky je nastavený na jednu sekundu. Po uplynutí tohto času je požiadavka považovaná za neúspešnú.&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Technol%C3%B3gie_off-line_web_aplik%C3%A1ci%C3%AD&amp;diff=6889</id>
		<title>Technológie off-line web aplikácií</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Technol%C3%B3gie_off-line_web_aplik%C3%A1ci%C3%AD&amp;diff=6889"/>
		<updated>2010-09-05T13:14:32Z</updated>

		<summary type="html">&lt;p&gt;Dusan: /* Technológie off-line web aplikácií */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:php]]&lt;br /&gt;
[[Kategória:web]]&lt;br /&gt;
{{Praca_uvod|2|Off-line funkcionalita on-line web aplikácií|Štruktúra webovej aplikácie|Technológie off-line web aplikácií|Systémy na vizualizáciu rozvrhu hodín|Návrh používateľského rozhrania rozvrhu FM TnUAD}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Technológie off-line web aplikácií=&lt;br /&gt;
V&amp;amp;nbsp;súčasnosti je dostupných niekoľko technológií, ktoré podporujú off-line aplikácie:&lt;br /&gt;
&lt;br /&gt;
* Google Gears&lt;br /&gt;
* HTML5&lt;br /&gt;
Nová špecifikácia HTML5 je zatiaľ vo vývoji a&amp;amp;nbsp;má byť dokončená v&amp;amp;nbsp;roku 2012. Niektoré jej možnosti sú už dnes podporované vo väčšine prehliadačoch.&lt;br /&gt;
&lt;br /&gt;
==Google Gears==&lt;br /&gt;
Google Gears [1] je open-source projekt of firmy Google. Pridaním nových funkcií do&amp;amp;nbsp;prehliadača dokáže sprístupniť webovú aplikáciu aj v&amp;amp;nbsp;režime off-line. Používateľovi stačí nainštalovať rozšírenie (Obr. 2.1) do svojho prehliadača a&amp;amp;nbsp;následne povoliť (Obr. 2.2) prístup konkrétnej webovej lokalite pre použitie&amp;amp;nbsp;tohto rozšírenia.&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_07.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 2.1 Zobrazenie rozšírenia Google Gears v&amp;amp;nbsp;správe rozšírení prehliadača Firefox&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_08.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 2.2 Povolenia rozšírenia pre webovú lokalitu (localhost)&lt;br /&gt;
&lt;br /&gt;
===Moduly Google Gears===&lt;br /&gt;
S rozšírením Google Gears získame tri nezávislé moduly: lokálny server, databáza, spracovanie kódu na pozadí. Každý z&amp;amp;nbsp;nich vylepšuje nejaký aspekt programovania webovej aplikácie na strane klienta prostredníctvom konkrétneho modulu.&lt;br /&gt;
&lt;br /&gt;
'''Lokálny server'''&lt;br /&gt;
&lt;br /&gt;
Modul lokálny server (''LocalServer'') umožňuje aplikácii uložiť a&amp;amp;nbsp;používať jeho HTTP zdroje lokálne bez pripojenia k&amp;amp;nbsp;sieti. Je to špecializovaná vyrovnávacia pamäť. Požiadavky na URL vo vyrovnávacej pamäti lokálneho servera sú zachytené a&amp;amp;nbsp;obslúžené lokálne priamo z&amp;amp;nbsp;disku používateľa.&lt;br /&gt;
&lt;br /&gt;
'''Databáza'''&lt;br /&gt;
&lt;br /&gt;
Databázový modul (''Database'') poskytuje open-source databázový systém SQLite. Databázové API slúži k&amp;amp;nbsp;neustálemu ukladaniu používateľských dát. Pre dáta uložené v&amp;amp;nbsp;lokálnej databáze je definovaná bezpečnostná politika, ktorá web aplikácii nedovolí prístup mimo jej domény.&lt;br /&gt;
&lt;br /&gt;
'''Spracovanie kódu na pozadí'''&lt;br /&gt;
&lt;br /&gt;
Skript časovo náročný na spracovanie, ako napríklad zložitý výpočet, môže spôsobiť, že&amp;amp;nbsp;používateľské prostredie nereaguje. Technika spracovania kódu na pozadí (''WorkerPool API'') dovoľuje web aplikácii spustiť javaskriptový kód na pozadí bez blokovania vykonávania ostatných skriptov na stránke.&lt;br /&gt;
&lt;br /&gt;
===Google Gears API===&lt;br /&gt;
S&amp;amp;nbsp;modulmi Google Gears API pracujeme pomocou metód aplikačného rozhrania. Pre prístup k&amp;amp;nbsp;nim musíme do aplikácie zahrnúť súbor ''gears_init.js'', ktorý sa nachádza na adrese ''http://code.google.com/intl/sk/apis/gears/gears_init.js''. V&amp;amp;nbsp;nasledujúcom texte budú opísané všetky moduly Google Gears API.&lt;br /&gt;
&lt;br /&gt;
====Factory API====&lt;br /&gt;
Trieda ''Factory'' je použitá na vytvorenie inštancií všetkých Gears objektov. Vytvorenie tejto inštancie (Kód 2.1) je povinné.&lt;br /&gt;
&lt;br /&gt;
Kód 2.1 Volanie metódy ''create'''' ''triedy'' factory''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;gears_init.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    if (window.google &amp;amp;&amp;amp; google.gears) {&lt;br /&gt;
        var db = google.gears.factory.create('beta.database');&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na to aby sme vytvorili inštanciu triedy ''Factory, ''je potrebné mať nainštalované samotné rozšírenie Google Gears. Existenciu tohto rozšírenia overíme pomocou kontroly globálnych objektov ''window.google'' a ''google.gears''. V&amp;amp;nbsp;skripte ''gears_init.js'' je definovaný objekt ''google.gears.factory''. Metóda ''create'' triedy ''factory'' vytvorí objekt danej triedy s parametrom ''className''. Parameter ''className ''je typ objektu, ktorý sa má vytvoriť. Kompletná špecifikácia je triedy ''Factory'' je v [2].&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.1 Opis metód triedy'' Factory''''.'' &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;factory&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Object''' create(className, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;classVersion&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vytvára Gears objekt danej triedy&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|className – typ objektu,  ktorý sa má vytvoriť&amp;lt;br&amp;gt;classVersion – parameter sa už nepoužíva, prípadne jeho hodnota &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;1.0&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Detaily:&lt;br /&gt;
|Podporované hodnoty parametru className:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|className&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Vytvorenie Gears triedy&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.blobbuilder&lt;br /&gt;
|BlobBuilder&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.canvas&lt;br /&gt;
|Canvas&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.database&lt;br /&gt;
|Database&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.desktop&lt;br /&gt;
|Desktop&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.geolocation&lt;br /&gt;
|Geolocation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.httprequest&lt;br /&gt;
|HttpRequest&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.localserver&lt;br /&gt;
|LocalServer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.timer&lt;br /&gt;
|Timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.workerpool&lt;br /&gt;
|WorkerPool&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====LocalServer API====&lt;br /&gt;
Na správu vyrovnávacej pamäti sú dostupné dve triedy:&lt;br /&gt;
&lt;br /&gt;
'''''ResourceStore'' '''– povoľuje zachytávať dáta (obrázky, PDF súbor), ktoré sú adresované s URL.&lt;br /&gt;
&lt;br /&gt;
'''''ManagedResourceStore''''' – zoznam URL odkazov na súbory, ktoré budú dostupné off-line, sú&amp;amp;nbsp;v&amp;amp;nbsp;súbore ''manifest.'' Pomocou tejto triedy môžeme zabezpečiť aplikácii všetky dáta, ktoré bude potrebovať. Výhoda takéhoto riešenia je v automatickej aktualizácií pri zmene súboru ''manifest''. Príklad použitia je v&amp;amp;nbsp;kóde 2.2.&lt;br /&gt;
&lt;br /&gt;
Kód 2.2 Príklad použitia metódy ''createManagedStor''''e''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;gears_init.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var localServer = google.gears.factory.create('beta.localserver');&lt;br /&gt;
    var store = localServer.createManagedStore('test-store');&lt;br /&gt;
    store.manifestUrl = 'manifest.txt';&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Odkazy na súbory uvedené v&amp;amp;nbsp;súbore'' manifest'' (Kód 2.3) sa pri synchronizácií skopírujú na&amp;amp;nbsp;lokálny disk.&lt;br /&gt;
&lt;br /&gt;
Kód 2.3 Výpis súboru ''manifest.tx''''t''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;betaManifestVersion&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;1.0&amp;quot;,&lt;br /&gt;
    &amp;quot;entries&amp;quot;: [&lt;br /&gt;
        { &amp;quot;url&amp;quot;: &amp;quot;index.html&amp;quot; },&lt;br /&gt;
        { &amp;quot;url&amp;quot;: &amp;quot;gears_init.js&amp;quot; }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.2 Metódy triedy ''LocalServer''. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;LocalServer&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''createManagedStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ManagedResourceStore &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ManagedResourceStore alebo vytvorí novú, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''openManagedStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ManagedResourceStore &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ManagedResourceStore alebo vráti null, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' removeManagedStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Odstráni  ManagedResourceStore a&amp;amp;nbsp;odstráni všetky jej URL z&amp;amp;nbsp;lokálnej&amp;lt;br&amp;gt;vyrovnávacej pamäti&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''createStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ResourceStore&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ResourceStore alebo vytvorí novú, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''openStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ResourceStore&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ResourceStore alebo vráti null, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' removeStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Odstráni  ResourceStore a&amp;amp;nbsp;odstráni a&amp;amp;nbsp;celý jeho obsah&amp;lt;br&amp;gt;vyrovnávacej pamäti&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Database API====&lt;br /&gt;
Database API je aplikačné rozhranie pre prácu s&amp;amp;nbsp;lokálnou databázou SQLite[4]. SQLite je&amp;amp;nbsp;knižnica, ktorá implementuje relačnú databázu bez potreby servera.&lt;br /&gt;
&lt;br /&gt;
Kód 2.4 Príklad práce s&amp;amp;nbsp;lokálnou databázou&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;gears_init.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
var db = google.gears.factory.create('beta.database');&lt;br /&gt;
db.open('moja-databaza);&lt;br /&gt;
db.execute('create table if not exists Zoznam' +&lt;br /&gt;
           ' (Meno text, Vek int)');&lt;br /&gt;
db.execute('insert into Zoznam values (?, ?)', ['Peter', '22']);&lt;br /&gt;
var rs = db.execute('select * from Zoznam order by Vek desc');&lt;br /&gt;
&lt;br /&gt;
rs.close();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.3 Opis metód triedy'' Database''''.'' &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Database&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''Metóda: '''&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' open(&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;name&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – voliteľný&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí databázu&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''execute(sqlStatement, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;argArray&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|sqlStatement – reťazec obsahujúci SQL príkaz, so znakom &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;'''?''' &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;''' '''ako''' '''zástupný symbol  previazaný s parametrami&amp;lt;br&amp;gt;argArray – voliteľné pole parametrov,  ktoré nahradia symboly &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;'''?''' &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ResultSet&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vykoná SQL príkazy.  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void '''close()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Ukončí spojenie s&amp;amp;nbsp;databázou. Volanie database.close()  nie je potrebné&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' remove()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Zmaže práve otvorenú databázu.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Metóda ''database.execute ''po úspešnom volaní vráti objekt triedy ''ResultSet.'' Obsahuje výsledky vykonaných SQL príkazov.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.4 Opis metód triedy'' ResultSe''''t''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;ResultSet&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|boolean '''isValidRow()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti true, ak môžete volať metódy na extrakciu dát&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void '''next()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Pokračuje na ďalší riadok výsledkov  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void '''close()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Je potrebné zavolať metodu close(), ak sme skončili s&amp;amp;nbsp;prácou s výsledkami&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.5 Opis metód na extrakciu dát&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot; &amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;colspan = &amp;quot;2&amp;quot;|'''Metódy na extrakciu dát'''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Int '''fieldCount()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti počet polí výsledku&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|string '''fieldName(int fieldIndex)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|fieldIndex – index požadovaného pola&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti meno špecifikovaného pola.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''field(int fieldIndex)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|fieldIndex – index požadovaného pola&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|rôzne&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti obsah špecifikovaného pola v aktuálnom riadku&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''fieldByName(string fieldName)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|fieldName – názov požadovaného pola&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|rôzne&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti obsah špecifikovaného pola v aktuálnom riadku&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====WorkerPool API====&lt;br /&gt;
Aplikačné rozhranie, ktoré umožňuje spracovávať javaskriptový kód na pozadí. Vďaka tomu neblokuje vykonávanie ďalších skriptov. Kompletná špecifikácia v [6].&lt;br /&gt;
&lt;br /&gt;
====Blob API====&lt;br /&gt;
Pomocou objektov typu ''Blob ''môžeme odkazovať na binárne dáta vo webových aplikáciách. Kompletná špecifikácia v [7].&lt;br /&gt;
&lt;br /&gt;
====BlobBuilder API====&lt;br /&gt;
''BlobBuilder'' je pomocný objekt pre vytváranie objektov typu ''Blob.  Blob ''je nemenný, read-only object, rovnaký ako reťazec v&amp;amp;nbsp;Javascripte. ''BlobBuilder'' je používaný na&amp;amp;nbsp;generovanie ''Blobu'' s&amp;amp;nbsp;novým obsahom. Kompletná špecifikácia v [8].&lt;br /&gt;
&lt;br /&gt;
====Canvas API====&lt;br /&gt;
Prostredníctvom tejto API môžeme pracovať s&amp;amp;nbsp;obrázkami pomocou javaskriptu. Táto grafická API je inšpirovaná HTML5 canvasom. Obsahuje metódy na rozkódovanie a zakódovanie do&amp;amp;nbsp;binárnych formátov (napr. PNG, JPEG). Kompletná špecifikácia v [9].&lt;br /&gt;
&lt;br /&gt;
====Desktop API====&lt;br /&gt;
Desktop API poskytuje rozhranie pre prístup k desktopovým funkciám, ako je vytváranie ikon. V&amp;amp;nbsp;kóde 2.5 je zobrazená funkcia ''createShortcut'', ktorá vytvorí ikony na ploche a paneli nástrojov.&lt;br /&gt;
&lt;br /&gt;
Kód 2.5 Ukážka práce s&amp;amp;nbsp;Desktop API &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var desktop = google.gears.factory.create('beta.desktop');&lt;br /&gt;
function createShortcut() {&lt;br /&gt;
      var desktop = google.gears.factory.create(&amp;quot;beta.desktop&amp;quot;);&lt;br /&gt;
      var description = &amp;quot;Vytvorenie ikonky ROZVRHU.&amp;quot;;&lt;br /&gt;
      var icons = {&lt;br /&gt;
           &amp;quot;16x16&amp;quot;: &amp;quot;16icon.png&amp;quot;&lt;br /&gt;
           &amp;quot;32x32&amp;quot;: &amp;quot;32icon.png&amp;quot;,&lt;br /&gt;
           &amp;quot;48x48&amp;quot;: &amp;quot;48icon.png&amp;quot;,&lt;br /&gt;
           &amp;quot;128x128&amp;quot;: &amp;quot;128icon.png&amp;quot;&lt;br /&gt;
      };&lt;br /&gt;
      desktop.createShortcut(&amp;quot;Rozvrh Fakulty Mechatroniky&amp;quot;,  &lt;br /&gt;
           &amp;quot; http://priklad.sk/index.html&amp;quot;,  &lt;br /&gt;
            icons,  &lt;br /&gt;
            description); &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
V&amp;amp;nbsp;tabuľke 2.6 je výpis metód triedy ''Desktop.'' Kompletná špecifikácia v [10].&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.6 Opis metód triedy ''Desktop''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Desktop&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''Metóda: '''&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|createShortcut(name, url, icons, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;description&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name - meno odkazu&amp;lt;br&amp;gt;url - adresa dokumentu,  ktorý sa má otvoriť&amp;lt;br&amp;gt;icons – Objekt obsahujúci jednu alebo viac hodnôt v tvare:&amp;lt;br&amp;gt;rozmer : URL ikony&amp;lt;br&amp;gt;Napr.'' &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;128x128&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;: &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;http://priklad. sk/icon128x128.png&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;''&amp;lt;br&amp;gt;descriptions – nepovinný parameter. Text sa zobrazí v potvrdzovacom dialógu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vytvorí desktopový odkaz na spustenie aplikácie&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&amp;lt;br clear=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Geolocation API====&lt;br /&gt;
Geolocation API umožňuje webovej aplikácii získať používateľa geografickú polohu. Kompletnú špecifikáciu nájdete v [11].&lt;br /&gt;
&lt;br /&gt;
====HttpRequest API====&lt;br /&gt;
HttpRequest API implementuje podskupinu XmlHttpRequest W3C špecifikácie. Gears poskytuje vlastný HttpRequest objekt. Obsahuje väčšinu vlastností. Kompletnú špecifikáciu nájdete v [12].&lt;br /&gt;
&lt;br /&gt;
====Timer API====&lt;br /&gt;
Obsahuje metódy, ktoré umožnia nastaviť vykonanie skriptov s&amp;amp;nbsp;časovým oneskorením a&amp;amp;nbsp;podobne. Kompletnú špecifikáciu nájdete v [13].&lt;br /&gt;
&lt;br /&gt;
===Podpora Google Gears v&amp;amp;nbsp;operačných systémoch a prehliadačoch===&lt;br /&gt;
Funkčnosť Google Gears je overená na nasledujúcich platformách a&amp;amp;nbsp;prehliadačoch [14]:&lt;br /&gt;
&lt;br /&gt;
* Apple Mac OS X (10.4 alebo vyššia, G4, G5 or Intel Processor)&lt;br /&gt;
* Firefox 1.5 alebo vyššia&lt;br /&gt;
* Safari 3.1.1 alebo vyššia (OS X Tiger 10.4.11&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; alebo Leopard 10.5.3&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;, G4, G5 alebo Intel Processor)&lt;br /&gt;
* Linux&lt;br /&gt;
* Firefox 1.5 alebo vyššia&lt;br /&gt;
* Microsoft Windows (XP alebo vyššia)&lt;br /&gt;
* Firefox 1.5 alebo vyššia&lt;br /&gt;
* Internet Explorer 6 alebo vyššia&lt;br /&gt;
* Google Chrome&lt;br /&gt;
* Microsoft Windows Mobile (5 alebo vyššia)&lt;br /&gt;
* Internet Explorer 4.01 alebo vyššia&lt;br /&gt;
* Opera Mobile 9.51 (Presto build 2.1.0&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;) (Windows Mobile 6 len pre dotykové zariadenia)&lt;br /&gt;
* &amp;amp;nbsp;Nasledovné zariadenia nie sú podporované&lt;br /&gt;
* Samsung i320 a i320N&lt;br /&gt;
* Orange SPV C600&lt;br /&gt;
* Motorola Q&lt;br /&gt;
* Android 1.0&lt;br /&gt;
===Umiestnenie dát na disku===&lt;br /&gt;
Umiestnenie dát webovej aplikácie na disku záleží na platforme a&amp;amp;nbsp;internetovom prehliadači.&lt;br /&gt;
&lt;br /&gt;
'''Windows Vista - Internet Explorer'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: &amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;FOLDERID_LocalAppDataLow&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;\Google\Google Gears for Internet Explorer&amp;lt;br&amp;gt;Príklad: C:\Users\Bob\AppData\LocalLow\Google\Google Gears for Internet Explorer&lt;br /&gt;
&lt;br /&gt;
'''Windows Vista - Firefox'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: C:\Users\&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;username&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;\AppData\Local\Mozilla\Firefox\Profiles\&amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;profile&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;.default\Google Gears for Firefox &amp;lt;br&amp;gt;Príklad: C:\Users\Bob\AppData\Local\Mozilla\Firefox\Profiles\uelib44s.default\Google Gears for Firefox&lt;br /&gt;
&lt;br /&gt;
'''Windows Vista - Chrome'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: C:\Users\&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;username&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;\AppData\Local\Google\Chrome\User Data\Default\Plugin Data\Google Gears&amp;lt;br&amp;gt;Príklad: C:\Users\Bob\AppData\Local\Google\Chrome\User Data\Default\Plugin Data\Google Gears&lt;br /&gt;
&lt;br /&gt;
'''Mac OS X - Safari'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: &amp;lt;nowiki&amp;gt;~&amp;lt;/nowiki&amp;gt;/Library/Application Support/Google/Google Gears for Safari&amp;lt;br&amp;gt;Príklad: /Users/Bob/Library/Application Support/Google/Google Gears for Safari&lt;br /&gt;
&lt;br /&gt;
'''Linux - Firefox'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: &amp;lt;nowiki&amp;gt;~&amp;lt;/nowiki&amp;gt;''bob''/.mozilla/firefox/&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;firefox&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;s profile id&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;/Google Gears for Firefox &amp;lt;br&amp;gt;Príklad: &amp;lt;nowiki&amp;gt;~&amp;lt;/nowiki&amp;gt;bob/.mozilla/firefox/08ywpi3q.default/Google Gears for Firefox&lt;br /&gt;
&lt;br /&gt;
===Využitie Google Gears===&lt;br /&gt;
Ako prvá začala Google Gears využívať firma Google vo svojej čítačke kanálov Google Reader. V&amp;amp;nbsp;režime off-line umožňuje prehliadať až 2000 príspevkov. Postupne sa podpora pre&amp;amp;nbsp;toto rozšírenie pridala aj do mailovej služby Gmail a on-line kancelárskeho balíka Google Docs.&lt;br /&gt;
&lt;br /&gt;
Ďalšie webové služby využívajúce Google Gears:&lt;br /&gt;
&lt;br /&gt;
* správca úloh '''rememberthemilk.com,'''&lt;br /&gt;
* sociálna služba '''myspace.com,'''&lt;br /&gt;
* on-line správca hesiel '''passpack.com,'''&lt;br /&gt;
* nástroj pre riadenie projektov''' mindmeister.com,'''&lt;br /&gt;
* open-source redakčný systém '''wordpress.net''' a ďalší.&lt;br /&gt;
==HTML5==&lt;br /&gt;
&lt;br /&gt;
HTML5 [15] je najnovšia špecifikácia značkovacieho jazyka HTML vyvíjaná medzinárodným združením W3C (World Wide Web Consortium). Najdôležitejšou zmenou v&amp;amp;nbsp;novej verzií je samotná&amp;amp;nbsp;štruktúra&amp;amp;nbsp;HTML dokumentu, veľké množstvo nových elementov a&amp;amp;nbsp;aj podpora off-line web aplikácií. Pretože Google sa snaží dodržiavať štandardy, zastavil vývoj Google Gears a&amp;amp;nbsp;svoju iniciatívu smeruje na HTML5. Je možné, že podpora off-line aplikácií bude mať v novej špecifikácií aj niektoré rysy, ktoré poznáme z Google Gears. V&amp;amp;nbsp;súčasnosti je stále HTML 5 vo&amp;amp;nbsp;fáze vývoja. Dokončenie je plánované na rok 2012. Niekoľko rokov však potrvá jeho úplná podpora vo väčšine prehliadačoch. Prehliadače ako napríklad Firefox podporujú už väčšiu časť nových prvkov HTML5. V&amp;amp;nbsp;našom prehľade sú&amp;amp;nbsp;zaujímavé SQL API a&amp;amp;nbsp;Cache API, ktoré majú poskytovať rovnakú funkcionalitu ako Google Gears.&lt;br /&gt;
&lt;br /&gt;
===Elementy štruktúry===&lt;br /&gt;
Doposiaľ bola štruktúra HTML dokumentu tvorená z&amp;amp;nbsp;''div ''elementov. HTML5 pridáva nové elementy k&amp;amp;nbsp;identifikácií každého z&amp;amp;nbsp;nich. Tieto majú presne stanovený sémantický význam a&amp;amp;nbsp;lepšie sa v nich orientuje aj samotný programátor.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.7 Zoznam nových sémantických elementov štruktúry HTML5&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|section&lt;br /&gt;
|Všeobecná (často nadradená) časť,  ktorá môže združovať ostatné časti stránky. Element DIV, ktorý dostal sémantické meno.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|header&lt;br /&gt;
|Hlavička časti, v ktorej je začlenená.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|footer&lt;br /&gt;
|Pätička časti, v ktorej je začlenená.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|nav&lt;br /&gt;
|Časť stránky,  ktorá obsahuje odkazy na ostatné stránky alebo časti danej stránky.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|article&lt;br /&gt;
|Časť stránky,  ktorá obsahuje text nezávislý od ostatných dielov stránky.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Elementy multimédií===&lt;br /&gt;
Zaujímavých zmien sa dočkala aj podpora multimédií (zvuk, video). Tieto sa na webe neskutočne rýchlo rozšírili (hlavne jednoduchým šírením pomocou stránok youtube.com a&amp;amp;nbsp;podobne). Preto sú v&amp;amp;nbsp;novej verzií HTML5 prístupné tagy&amp;amp;nbsp;''&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;video&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;''&amp;amp;nbsp;a ''&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;audio&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;.''&lt;br /&gt;
&lt;br /&gt;
Element ''&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;canvas&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;'' reprezentuje 2D kresliacu plochu ovládanú javaskriptom, ktorú môžete využívať, napr. na kreslenie grafov, grafických prvkov v hrách a prezentáciách.&lt;br /&gt;
&lt;br /&gt;
===Inline elementy===&lt;br /&gt;
HTML5 zavádza nové elementy, ktoré majú pomôcť uviesť základné prvky, ako je čas alebo čísla.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.8 Zoznam  nových inline elementov HTML5&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|mark&lt;br /&gt;
|Označenie textu.&amp;amp;nbsp;Slúži napríklad na označenie hľadaného slová v zozname výsledkov&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|time&lt;br /&gt;
|Označuje čas alebo dátum v bloku textu.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|meter&lt;br /&gt;
|Predstavuje skalárne meradlá.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|progress&lt;br /&gt;
|Reprezentuje pokrok v&amp;amp;nbsp;dokončení úlohy. Môže byť použitý pre vizuálne zobrazenie.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Podpora režimu off-line===&lt;br /&gt;
S novou špecifikáciou jazyka HTML 5 prichádza aj podpora off-line aplikácií. K&amp;amp;nbsp;dispozícií máme SQL API a&amp;amp;nbsp;Cache API, ktorá je obdobou LocalServer API.&lt;br /&gt;
&lt;br /&gt;
====SQL API====&lt;br /&gt;
SQL databáza na strane klienta umožní štruktúrované dátové úložisko. API pracuje s&amp;amp;nbsp;touto databázou asynchrónne. To znamená, že používateľské prostredie nebude blokované vykonávaním synchrónneho požiadavku.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.9 Zoznam metód návrhu HTML5&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Object openDatabase(dbname, dbversion, displayname, size)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vytvára databázový objekt podľa zvolených parametrov&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|dbname – meno databázy&amp;lt;br&amp;gt;dbversion – verzia databázy&amp;lt;br&amp;gt;displayname – zobrazený názov databázy&amp;lt;br&amp;gt;size – predpokladaná veľkosť databázy v bajtoch&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ďalšie Metódy: &lt;br /&gt;
|transaction(), executeSql()&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====LocalStorage API====&lt;br /&gt;
Dáta na lokálnom disku bude reprezentovať objekt ''localStorage.''&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.10 Zoznam niektorých metód pre prácu s&amp;amp;nbsp;lokálnym úložiskom&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Opis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|clear()&lt;br /&gt;
|zmaže celý obsah objektu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|getItem()&lt;br /&gt;
|získa obsah objektu podľa názvu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|key()&lt;br /&gt;
|získa kľúč podľa čísla&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|length&lt;br /&gt;
|Počet uložených kľúčov&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|removeItem()&lt;br /&gt;
|odstráni položku podľa jej mena&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|setItem()&lt;br /&gt;
|Pridá hodnotu položke&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Technol%C3%B3gie_off-line_web_aplik%C3%A1ci%C3%AD&amp;diff=6885</id>
		<title>Technológie off-line web aplikácií</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Technol%C3%B3gie_off-line_web_aplik%C3%A1ci%C3%AD&amp;diff=6885"/>
		<updated>2010-09-05T13:06:07Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:php]]&lt;br /&gt;
[[Kategória:web]]&lt;br /&gt;
{{Hlavička_FM|{{PAGENAME}}|Dušan Pagáč|Ing. Juraj Ďuďák|&lt;br /&gt;
2009/2010&lt;br /&gt;
|Semetrálna práca|Mechatronika}} &lt;br /&gt;
{{Praca_uvod|2|Off-line funkcionalita on-line web aplikácií|Štruktúra webovej aplikácie|Technológie off-line web aplikácií|Systémy na vizualizáciu rozvrhu hodín|Návrh používateľského rozhrania rozvrhu FM TnUAD}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Technológie off-line web aplikácií==&lt;br /&gt;
V&amp;amp;nbsp;súčasnosti je dostupných niekoľko technológií, ktoré podporujú off-line aplikácie:&lt;br /&gt;
&lt;br /&gt;
* Google Gears&lt;br /&gt;
* HTML5&lt;br /&gt;
Nová špecifikácia HTML5 je zatiaľ vo vývoji a&amp;amp;nbsp;má byť dokončená v&amp;amp;nbsp;roku 2012. Niektoré jej možnosti sú už dnes podporované vo väčšine prehliadačoch.&lt;br /&gt;
&lt;br /&gt;
===Google Gears===&lt;br /&gt;
Google Gears [1] je open-source projekt of firmy Google. Pridaním nových funkcií do&amp;amp;nbsp;prehliadača dokáže sprístupniť webovú aplikáciu aj v&amp;amp;nbsp;režime off-line. Používateľovi stačí nainštalovať rozšírenie (Obr. 2.1) do svojho prehliadača a&amp;amp;nbsp;následne povoliť (Obr. 2.2) prístup konkrétnej webovej lokalite pre použitie&amp;amp;nbsp;tohto rozšírenia.&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_07.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 2.1 Zobrazenie rozšírenia Google Gears v&amp;amp;nbsp;správe rozšírení prehliadača Firefox&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_08.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 2.2 Povolenia rozšírenia pre webovú lokalitu (localhost)&lt;br /&gt;
&lt;br /&gt;
====Moduly Google Gears====&lt;br /&gt;
S rozšírením Google Gears získame tri nezávislé moduly: lokálny server, databáza, spracovanie kódu na pozadí. Každý z&amp;amp;nbsp;nich vylepšuje nejaký aspekt programovania webovej aplikácie na strane klienta prostredníctvom konkrétneho modulu.&lt;br /&gt;
&lt;br /&gt;
'''Lokálny server'''&lt;br /&gt;
&lt;br /&gt;
Modul lokálny server (''LocalServer'') umožňuje aplikácii uložiť a&amp;amp;nbsp;používať jeho HTTP zdroje lokálne bez pripojenia k&amp;amp;nbsp;sieti. Je to špecializovaná vyrovnávacia pamäť. Požiadavky na URL vo vyrovnávacej pamäti lokálneho servera sú zachytené a&amp;amp;nbsp;obslúžené lokálne priamo z&amp;amp;nbsp;disku používateľa.&lt;br /&gt;
&lt;br /&gt;
'''Databáza'''&lt;br /&gt;
&lt;br /&gt;
Databázový modul (''Database'') poskytuje open-source databázový systém SQLite. Databázové API slúži k&amp;amp;nbsp;neustálemu ukladaniu používateľských dát. Pre dáta uložené v&amp;amp;nbsp;lokálnej databáze je definovaná bezpečnostná politika, ktorá web aplikácii nedovolí prístup mimo jej domény.&lt;br /&gt;
&lt;br /&gt;
'''Spracovanie kódu na pozadí'''&lt;br /&gt;
&lt;br /&gt;
Skript časovo náročný na spracovanie, ako napríklad zložitý výpočet, môže spôsobiť, že&amp;amp;nbsp;používateľské prostredie nereaguje. Technika spracovania kódu na pozadí (''WorkerPool API'') dovoľuje web aplikácii spustiť javaskriptový kód na pozadí bez blokovania vykonávania ostatných skriptov na stránke.&lt;br /&gt;
&lt;br /&gt;
====Google Gears API====&lt;br /&gt;
S&amp;amp;nbsp;modulmi Google Gears API pracujeme pomocou metód aplikačného rozhrania. Pre prístup k&amp;amp;nbsp;nim musíme do aplikácie zahrnúť súbor ''gears_init.js'', ktorý sa nachádza na adrese ''http://code.google.com/intl/sk/apis/gears/gears_init.js''. V&amp;amp;nbsp;nasledujúcom texte budú opísané všetky moduly Google Gears API.&lt;br /&gt;
&lt;br /&gt;
=====Factory API=====&lt;br /&gt;
Trieda ''Factory'' je použitá na vytvorenie inštancií všetkých Gears objektov. Vytvorenie tejto inštancie (Kód 2.1) je povinné.&lt;br /&gt;
&lt;br /&gt;
Kód 2.1 Volanie metódy ''create'''' ''triedy'' factory''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;gears_init.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    if (window.google &amp;amp;&amp;amp; google.gears) {&lt;br /&gt;
        var db = google.gears.factory.create('beta.database');&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na to aby sme vytvorili inštanciu triedy ''Factory, ''je potrebné mať nainštalované samotné rozšírenie Google Gears. Existenciu tohto rozšírenia overíme pomocou kontroly globálnych objektov ''window.google'' a ''google.gears''. V&amp;amp;nbsp;skripte ''gears_init.js'' je definovaný objekt ''google.gears.factory''. Metóda ''create'' triedy ''factory'' vytvorí objekt danej triedy s parametrom ''className''. Parameter ''className ''je typ objektu, ktorý sa má vytvoriť. Kompletná špecifikácia je triedy ''Factory'' je v [2].&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.1 Opis metód triedy'' Factory''''.'' &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;factory&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Object''' create(className, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;classVersion&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vytvára Gears objekt danej triedy&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|className – typ objektu,  ktorý sa má vytvoriť&amp;lt;br&amp;gt;classVersion – parameter sa už nepoužíva, prípadne jeho hodnota &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;1.0&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Detaily:&lt;br /&gt;
|Podporované hodnoty parametru className:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|className&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Vytvorenie Gears triedy&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.blobbuilder&lt;br /&gt;
|BlobBuilder&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.canvas&lt;br /&gt;
|Canvas&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.database&lt;br /&gt;
|Database&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.desktop&lt;br /&gt;
|Desktop&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.geolocation&lt;br /&gt;
|Geolocation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.httprequest&lt;br /&gt;
|HttpRequest&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.localserver&lt;br /&gt;
|LocalServer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.timer&lt;br /&gt;
|Timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.workerpool&lt;br /&gt;
|WorkerPool&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====LocalServer API=====&lt;br /&gt;
Na správu vyrovnávacej pamäti sú dostupné dve triedy:&lt;br /&gt;
&lt;br /&gt;
'''''ResourceStore'' '''– povoľuje zachytávať dáta (obrázky, PDF súbor), ktoré sú adresované s URL.&lt;br /&gt;
&lt;br /&gt;
'''''ManagedResourceStore''''' – zoznam URL odkazov na súbory, ktoré budú dostupné off-line, sú&amp;amp;nbsp;v&amp;amp;nbsp;súbore ''manifest.'' Pomocou tejto triedy môžeme zabezpečiť aplikácii všetky dáta, ktoré bude potrebovať. Výhoda takéhoto riešenia je v automatickej aktualizácií pri zmene súboru ''manifest''. Príklad použitia je v&amp;amp;nbsp;kóde 2.2.&lt;br /&gt;
&lt;br /&gt;
Kód 2.2 Príklad použitia metódy ''createManagedStor''''e''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;gears_init.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var localServer = google.gears.factory.create('beta.localserver');&lt;br /&gt;
    var store = localServer.createManagedStore('test-store');&lt;br /&gt;
    store.manifestUrl = 'manifest.txt';&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Odkazy na súbory uvedené v&amp;amp;nbsp;súbore'' manifest'' (Kód 2.3) sa pri synchronizácií skopírujú na&amp;amp;nbsp;lokálny disk.&lt;br /&gt;
&lt;br /&gt;
Kód 2.3 Výpis súboru ''manifest.tx''''t''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;betaManifestVersion&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;1.0&amp;quot;,&lt;br /&gt;
    &amp;quot;entries&amp;quot;: [&lt;br /&gt;
        { &amp;quot;url&amp;quot;: &amp;quot;index.html&amp;quot; },&lt;br /&gt;
        { &amp;quot;url&amp;quot;: &amp;quot;gears_init.js&amp;quot; }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.2 Metódy triedy ''LocalServer''. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;LocalServer&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''createManagedStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ManagedResourceStore &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ManagedResourceStore alebo vytvorí novú, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''openManagedStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ManagedResourceStore &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ManagedResourceStore alebo vráti null, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' removeManagedStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Odstráni  ManagedResourceStore a&amp;amp;nbsp;odstráni všetky jej URL z&amp;amp;nbsp;lokálnej&amp;lt;br&amp;gt;vyrovnávacej pamäti&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''createStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ResourceStore&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ResourceStore alebo vytvorí novú, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''openStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ResourceStore&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ResourceStore alebo vráti null, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' removeStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Odstráni  ResourceStore a&amp;amp;nbsp;odstráni a&amp;amp;nbsp;celý jeho obsah&amp;lt;br&amp;gt;vyrovnávacej pamäti&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Database API=====&lt;br /&gt;
Database API je aplikačné rozhranie pre prácu s&amp;amp;nbsp;lokálnou databázou SQLite[4]. SQLite je&amp;amp;nbsp;knižnica, ktorá implementuje relačnú databázu bez potreby servera.&lt;br /&gt;
&lt;br /&gt;
Kód 2.4 Príklad práce s&amp;amp;nbsp;lokálnou databázou&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;gears_init.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
var db = google.gears.factory.create('beta.database');&lt;br /&gt;
db.open('moja-databaza);&lt;br /&gt;
db.execute('create table if not exists Zoznam' +&lt;br /&gt;
           ' (Meno text, Vek int)');&lt;br /&gt;
db.execute('insert into Zoznam values (?, ?)', ['Peter', '22']);&lt;br /&gt;
var rs = db.execute('select * from Zoznam order by Vek desc');&lt;br /&gt;
&lt;br /&gt;
rs.close();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.3 Opis metód triedy'' Database''''.'' &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Database&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''Metóda: '''&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' open(&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;name&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – voliteľný&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí databázu&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''execute(sqlStatement, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;argArray&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|sqlStatement – reťazec obsahujúci SQL príkaz, so znakom &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;'''?''' &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;''' '''ako''' '''zástupný symbol  previazaný s parametrami&amp;lt;br&amp;gt;argArray – voliteľné pole parametrov,  ktoré nahradia symboly &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;'''?''' &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ResultSet&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vykoná SQL príkazy.  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void '''close()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Ukončí spojenie s&amp;amp;nbsp;databázou. Volanie database.close()  nie je potrebné&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' remove()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Zmaže práve otvorenú databázu.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Metóda ''database.execute ''po úspešnom volaní vráti objekt triedy ''ResultSet.'' Obsahuje výsledky vykonaných SQL príkazov.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.4 Opis metód triedy'' ResultSe''''t''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;ResultSet&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|boolean '''isValidRow()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti true, ak môžete volať metódy na extrakciu dát&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void '''next()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Pokračuje na ďalší riadok výsledkov  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void '''close()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Je potrebné zavolať metodu close(), ak sme skončili s&amp;amp;nbsp;prácou s výsledkami&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.5 Opis metód na extrakciu dát&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot; &amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;colspan = &amp;quot;2&amp;quot;|'''Metódy na extrakciu dát'''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Int '''fieldCount()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti počet polí výsledku&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|string '''fieldName(int fieldIndex)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|fieldIndex – index požadovaného pola&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti meno špecifikovaného pola.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''field(int fieldIndex)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|fieldIndex – index požadovaného pola&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|rôzne&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti obsah špecifikovaného pola v aktuálnom riadku&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''fieldByName(string fieldName)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|fieldName – názov požadovaného pola&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|rôzne&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti obsah špecifikovaného pola v aktuálnom riadku&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====WorkerPool API=====&lt;br /&gt;
Aplikačné rozhranie, ktoré umožňuje spracovávať javaskriptový kód na pozadí. Vďaka tomu neblokuje vykonávanie ďalších skriptov. Kompletná špecifikácia v [6].&lt;br /&gt;
&lt;br /&gt;
=====Blob API=====&lt;br /&gt;
Pomocou objektov typu ''Blob ''môžeme odkazovať na binárne dáta vo webových aplikáciách. Kompletná špecifikácia v [7].&lt;br /&gt;
&lt;br /&gt;
=====BlobBuilder API=====&lt;br /&gt;
''BlobBuilder'' je pomocný objekt pre vytváranie objektov typu ''Blob.  Blob ''je nemenný, read-only object, rovnaký ako reťazec v&amp;amp;nbsp;Javascripte. ''BlobBuilder'' je používaný na&amp;amp;nbsp;generovanie ''Blobu'' s&amp;amp;nbsp;novým obsahom. Kompletná špecifikácia v [8].&lt;br /&gt;
&lt;br /&gt;
=====Canvas API=====&lt;br /&gt;
Prostredníctvom tejto API môžeme pracovať s&amp;amp;nbsp;obrázkami pomocou javaskriptu. Táto grafická API je inšpirovaná HTML5 canvasom. Obsahuje metódy na rozkódovanie a zakódovanie do&amp;amp;nbsp;binárnych formátov (napr. PNG, JPEG). Kompletná špecifikácia v [9].&lt;br /&gt;
&lt;br /&gt;
=====Desktop API=====&lt;br /&gt;
Desktop API poskytuje rozhranie pre prístup k desktopovým funkciám, ako je vytváranie ikon. V&amp;amp;nbsp;kóde 2.5 je zobrazená funkcia ''createShortcut'', ktorá vytvorí ikony na ploche a paneli nástrojov.&lt;br /&gt;
&lt;br /&gt;
Kód 2.5 Ukážka práce s&amp;amp;nbsp;Desktop API &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var desktop = google.gears.factory.create('beta.desktop');&lt;br /&gt;
function createShortcut() {&lt;br /&gt;
      var desktop = google.gears.factory.create(&amp;quot;beta.desktop&amp;quot;);&lt;br /&gt;
      var description = &amp;quot;Vytvorenie ikonky ROZVRHU.&amp;quot;;&lt;br /&gt;
      var icons = {&lt;br /&gt;
           &amp;quot;16x16&amp;quot;: &amp;quot;16icon.png&amp;quot;&lt;br /&gt;
           &amp;quot;32x32&amp;quot;: &amp;quot;32icon.png&amp;quot;,&lt;br /&gt;
           &amp;quot;48x48&amp;quot;: &amp;quot;48icon.png&amp;quot;,&lt;br /&gt;
           &amp;quot;128x128&amp;quot;: &amp;quot;128icon.png&amp;quot;&lt;br /&gt;
      };&lt;br /&gt;
      desktop.createShortcut(&amp;quot;Rozvrh Fakulty Mechatroniky&amp;quot;,  &lt;br /&gt;
           &amp;quot; http://priklad.sk/index.html&amp;quot;,  &lt;br /&gt;
            icons,  &lt;br /&gt;
            description); &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
V&amp;amp;nbsp;tabuľke 2.6 je výpis metód triedy ''Desktop.'' Kompletná špecifikácia v [10].&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.6 Opis metód triedy ''Desktop''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Desktop&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''Metóda: '''&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|createShortcut(name, url, icons, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;description&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name - meno odkazu&amp;lt;br&amp;gt;url - adresa dokumentu,  ktorý sa má otvoriť&amp;lt;br&amp;gt;icons – Objekt obsahujúci jednu alebo viac hodnôt v tvare:&amp;lt;br&amp;gt;rozmer : URL ikony&amp;lt;br&amp;gt;Napr.'' &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;128x128&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;: &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;http://priklad. sk/icon128x128.png&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;''&amp;lt;br&amp;gt;descriptions – nepovinný parameter. Text sa zobrazí v potvrdzovacom dialógu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vytvorí desktopový odkaz na spustenie aplikácie&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&amp;lt;br clear=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Geolocation API=====&lt;br /&gt;
Geolocation API umožňuje webovej aplikácii získať používateľa geografickú polohu. Kompletnú špecifikáciu nájdete v [11].&lt;br /&gt;
&lt;br /&gt;
=====HttpRequest API=====&lt;br /&gt;
HttpRequest API implementuje podskupinu XmlHttpRequest W3C špecifikácie. Gears poskytuje vlastný HttpRequest objekt. Obsahuje väčšinu vlastností. Kompletnú špecifikáciu nájdete v [12].&lt;br /&gt;
&lt;br /&gt;
=====Timer API=====&lt;br /&gt;
Obsahuje metódy, ktoré umožnia nastaviť vykonanie skriptov s&amp;amp;nbsp;časovým oneskorením a&amp;amp;nbsp;podobne. Kompletnú špecifikáciu nájdete v [13].&lt;br /&gt;
&lt;br /&gt;
====Podpora Google Gears v&amp;amp;nbsp;operačných systémoch a prehliadačoch====&lt;br /&gt;
Funkčnosť Google Gears je overená na nasledujúcich platformách a&amp;amp;nbsp;prehliadačoch [14]:&lt;br /&gt;
&lt;br /&gt;
* Apple Mac OS X (10.4 alebo vyššia, G4, G5 or Intel Processor)&lt;br /&gt;
* Firefox 1.5 alebo vyššia&lt;br /&gt;
* Safari 3.1.1 alebo vyššia (OS X Tiger 10.4.11&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; alebo Leopard 10.5.3&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;, G4, G5 alebo Intel Processor)&lt;br /&gt;
* Linux&lt;br /&gt;
* Firefox 1.5 alebo vyššia&lt;br /&gt;
* Microsoft Windows (XP alebo vyššia)&lt;br /&gt;
* Firefox 1.5 alebo vyššia&lt;br /&gt;
* Internet Explorer 6 alebo vyššia&lt;br /&gt;
* Google Chrome&lt;br /&gt;
* Microsoft Windows Mobile (5 alebo vyššia)&lt;br /&gt;
* Internet Explorer 4.01 alebo vyššia&lt;br /&gt;
* Opera Mobile 9.51 (Presto build 2.1.0&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;) (Windows Mobile 6 len pre dotykové zariadenia)&lt;br /&gt;
* &amp;amp;nbsp;Nasledovné zariadenia nie sú podporované&lt;br /&gt;
* Samsung i320 a i320N&lt;br /&gt;
* Orange SPV C600&lt;br /&gt;
* Motorola Q&lt;br /&gt;
* Android 1.0&lt;br /&gt;
====Umiestnenie dát na disku====&lt;br /&gt;
Umiestnenie dát webovej aplikácie na disku záleží na platforme a&amp;amp;nbsp;internetovom prehliadači.&lt;br /&gt;
&lt;br /&gt;
'''Windows Vista - Internet Explorer'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: &amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;FOLDERID_LocalAppDataLow&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;\Google\Google Gears for Internet Explorer&amp;lt;br&amp;gt;Príklad: C:\Users\Bob\AppData\LocalLow\Google\Google Gears for Internet Explorer&lt;br /&gt;
&lt;br /&gt;
'''Windows Vista - Firefox'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: C:\Users\&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;username&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;\AppData\Local\Mozilla\Firefox\Profiles\&amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;profile&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;.default\Google Gears for Firefox &amp;lt;br&amp;gt;Príklad: C:\Users\Bob\AppData\Local\Mozilla\Firefox\Profiles\uelib44s.default\Google Gears for Firefox&lt;br /&gt;
&lt;br /&gt;
'''Windows Vista - Chrome'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: C:\Users\&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;username&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;\AppData\Local\Google\Chrome\User Data\Default\Plugin Data\Google Gears&amp;lt;br&amp;gt;Príklad: C:\Users\Bob\AppData\Local\Google\Chrome\User Data\Default\Plugin Data\Google Gears&lt;br /&gt;
&lt;br /&gt;
'''Mac OS X - Safari'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: &amp;lt;nowiki&amp;gt;~&amp;lt;/nowiki&amp;gt;/Library/Application Support/Google/Google Gears for Safari&amp;lt;br&amp;gt;Príklad: /Users/Bob/Library/Application Support/Google/Google Gears for Safari&lt;br /&gt;
&lt;br /&gt;
'''Linux - Firefox'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: &amp;lt;nowiki&amp;gt;~&amp;lt;/nowiki&amp;gt;''bob''/.mozilla/firefox/&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;firefox&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;s profile id&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;/Google Gears for Firefox &amp;lt;br&amp;gt;Príklad: &amp;lt;nowiki&amp;gt;~&amp;lt;/nowiki&amp;gt;bob/.mozilla/firefox/08ywpi3q.default/Google Gears for Firefox&lt;br /&gt;
&lt;br /&gt;
====Využitie Google Gears====&lt;br /&gt;
Ako prvá začala Google Gears využívať firma Google vo svojej čítačke kanálov Google Reader. V&amp;amp;nbsp;režime off-line umožňuje prehliadať až 2000 príspevkov. Postupne sa podpora pre&amp;amp;nbsp;toto rozšírenie pridala aj do mailovej služby Gmail a on-line kancelárskeho balíka Google Docs.&lt;br /&gt;
&lt;br /&gt;
Ďalšie webové služby využívajúce Google Gears:&lt;br /&gt;
&lt;br /&gt;
* správca úloh '''rememberthemilk.com,'''&lt;br /&gt;
* sociálna služba '''myspace.com,'''&lt;br /&gt;
* on-line správca hesiel '''passpack.com,'''&lt;br /&gt;
* nástroj pre riadenie projektov''' mindmeister.com,'''&lt;br /&gt;
* open-source redakčný systém '''wordpress.net''' a ďalší.&lt;br /&gt;
===HTML5===&lt;br /&gt;
&lt;br /&gt;
HTML5 [15] je najnovšia špecifikácia značkovacieho jazyka HTML vyvíjaná medzinárodným združením W3C (World Wide Web Consortium). Najdôležitejšou zmenou v&amp;amp;nbsp;novej verzií je samotná&amp;amp;nbsp;štruktúra&amp;amp;nbsp;HTML dokumentu, veľké množstvo nových elementov a&amp;amp;nbsp;aj podpora off-line web aplikácií. Pretože Google sa snaží dodržiavať štandardy, zastavil vývoj Google Gears a&amp;amp;nbsp;svoju iniciatívu smeruje na HTML5. Je možné, že podpora off-line aplikácií bude mať v novej špecifikácií aj niektoré rysy, ktoré poznáme z Google Gears. V&amp;amp;nbsp;súčasnosti je stále HTML 5 vo&amp;amp;nbsp;fáze vývoja. Dokončenie je plánované na rok 2012. Niekoľko rokov však potrvá jeho úplná podpora vo väčšine prehliadačoch. Prehliadače ako napríklad Firefox podporujú už väčšiu časť nových prvkov HTML5. V&amp;amp;nbsp;našom prehľade sú&amp;amp;nbsp;zaujímavé SQL API a&amp;amp;nbsp;Cache API, ktoré majú poskytovať rovnakú funkcionalitu ako Google Gears.&lt;br /&gt;
&lt;br /&gt;
====Elementy štruktúry====&lt;br /&gt;
Doposiaľ bola štruktúra HTML dokumentu tvorená z&amp;amp;nbsp;''div ''elementov. HTML5 pridáva nové elementy k&amp;amp;nbsp;identifikácií každého z&amp;amp;nbsp;nich. Tieto majú presne stanovený sémantický význam a&amp;amp;nbsp;lepšie sa v nich orientuje aj samotný programátor.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.7 Zoznam nových sémantických elementov štruktúry HTML5&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|section&lt;br /&gt;
|Všeobecná (často nadradená) časť,  ktorá môže združovať ostatné časti stránky. Element DIV, ktorý dostal sémantické meno.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|header&lt;br /&gt;
|Hlavička časti, v ktorej je začlenená.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|footer&lt;br /&gt;
|Pätička časti, v ktorej je začlenená.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|nav&lt;br /&gt;
|Časť stránky,  ktorá obsahuje odkazy na ostatné stránky alebo časti danej stránky.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|article&lt;br /&gt;
|Časť stránky,  ktorá obsahuje text nezávislý od ostatných dielov stránky.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Elementy multimédií====&lt;br /&gt;
Zaujímavých zmien sa dočkala aj podpora multimédií (zvuk, video). Tieto sa na webe neskutočne rýchlo rozšírili (hlavne jednoduchým šírením pomocou stránok youtube.com a&amp;amp;nbsp;podobne). Preto sú v&amp;amp;nbsp;novej verzií HTML5 prístupné tagy&amp;amp;nbsp;''&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;video&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;''&amp;amp;nbsp;a ''&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;audio&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;.''&lt;br /&gt;
&lt;br /&gt;
Element ''&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;canvas&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;'' reprezentuje 2D kresliacu plochu ovládanú javaskriptom, ktorú môžete využívať, napr. na kreslenie grafov, grafických prvkov v hrách a prezentáciách.&lt;br /&gt;
&lt;br /&gt;
====Inline elementy====&lt;br /&gt;
HTML5 zavádza nové elementy, ktoré majú pomôcť uviesť základné prvky, ako je čas alebo čísla.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.8 Zoznam  nových inline elementov HTML5&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|mark&lt;br /&gt;
|Označenie textu.&amp;amp;nbsp;Slúži napríklad na označenie hľadaného slová v zozname výsledkov&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|time&lt;br /&gt;
|Označuje čas alebo dátum v bloku textu.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|meter&lt;br /&gt;
|Predstavuje skalárne meradlá.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|progress&lt;br /&gt;
|Reprezentuje pokrok v&amp;amp;nbsp;dokončení úlohy. Môže byť použitý pre vizuálne zobrazenie.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Podpora režimu off-line====&lt;br /&gt;
S novou špecifikáciou jazyka HTML 5 prichádza aj podpora off-line aplikácií. K&amp;amp;nbsp;dispozícií máme SQL API a&amp;amp;nbsp;Cache API, ktorá je obdobou LocalServer API.&lt;br /&gt;
&lt;br /&gt;
=====SQL API=====&lt;br /&gt;
SQL databáza na strane klienta umožní štruktúrované dátové úložisko. API pracuje s&amp;amp;nbsp;touto databázou asynchrónne. To znamená, že používateľské prostredie nebude blokované vykonávaním synchrónneho požiadavku.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.9 Zoznam metód návrhu HTML5&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Object openDatabase(dbname, dbversion, displayname, size)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vytvára databázový objekt podľa zvolených parametrov&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|dbname – meno databázy&amp;lt;br&amp;gt;dbversion – verzia databázy&amp;lt;br&amp;gt;displayname – zobrazený názov databázy&amp;lt;br&amp;gt;size – predpokladaná veľkosť databázy v bajtoch&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ďalšie Metódy: &lt;br /&gt;
|transaction(), executeSql()&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====LocalStorage API=====&lt;br /&gt;
Dáta na lokálnom disku bude reprezentovať objekt ''localStorage.''&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.10 Zoznam niektorých metód pre prácu s&amp;amp;nbsp;lokálnym úložiskom&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Opis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|clear()&lt;br /&gt;
|zmaže celý obsah objektu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|getItem()&lt;br /&gt;
|získa obsah objektu podľa názvu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|key()&lt;br /&gt;
|získa kľúč podľa čísla&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|length&lt;br /&gt;
|Počet uložených kľúčov&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|removeItem()&lt;br /&gt;
|odstráni položku podľa jej mena&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|setItem()&lt;br /&gt;
|Pridá hodnotu položke&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_12.png&amp;diff=6884</id>
		<title>Súbor:Bakalarka dušan pagáč 2 2 FINAL 12.png</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_12.png&amp;diff=6884"/>
		<updated>2010-09-05T13:04:25Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_11.png&amp;diff=6883</id>
		<title>Súbor:Bakalarka dušan pagáč 2 2 FINAL 11.png</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_11.png&amp;diff=6883"/>
		<updated>2010-09-05T13:04:18Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_10.png&amp;diff=6882</id>
		<title>Súbor:Bakalarka dušan pagáč 2 2 FINAL 10.png</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_10.png&amp;diff=6882"/>
		<updated>2010-09-05T13:04:06Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_09.png&amp;diff=6881</id>
		<title>Súbor:Bakalarka dušan pagáč 2 2 FINAL 09.png</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_09.png&amp;diff=6881"/>
		<updated>2010-09-05T13:03:59Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Syst%C3%A9my_na_vizualiz%C3%A1ciu_rozvrhu_hod%C3%ADn&amp;diff=6880</id>
		<title>Systémy na vizualizáciu rozvrhu hodín</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Syst%C3%A9my_na_vizualiz%C3%A1ciu_rozvrhu_hod%C3%ADn&amp;diff=6880"/>
		<updated>2010-09-05T12:55:36Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]][[Kategória:Bakalárske práce]][[Kategória:Informatika]][[Kategória:php]][[Kategória:web]]&lt;br /&gt;
{{Praca_uvod|3|Off-line funkcionalita on-line web aplikácií|Štruktúra webovej aplikácie|Technológie off-line web aplikácií|Systémy na vizualizáciu rozvrhu hodín|Návrh používateľského rozhrania rozvrhu FM TnUAD}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Systémy na vizualizáciu rozvrhu=&lt;br /&gt;
Pre lepšie pochopenie problematiky tvorby rozvrhu sa budeme v tejto kapitole zaoberať aplikáciami na tvorbu a správu rozvrhu. Zaujímať nás bude hlavne akým spôsobom je riešené zobrazovanie samotného rozvrhu. &lt;br /&gt;
&lt;br /&gt;
==Rozvrh 4.1==&lt;br /&gt;
Rozvrh 4.1 [16] je aplikácia na tvorbu rozvrhu pre všetky typy škôl určená pre operačný systém Windows. Program má výkonný algoritmus automatickej tvorby rozvrhu, ktorý vytvorí kompletný rozvrh školy podľa zadaných podmienok. Pri tvorbe sú dodržiavané pedagogické požiadavky na vyučovanie v&amp;amp;nbsp;triedach, na počet voľných hodín v rozvrhu učiteľa ako i rôzne špecifické požiadavky každej školy. V programe sú veľmi silné nástroje, ktoré umožňujú tvorcovi rozvrhu jednoducho upravovať už vytvorený rozvrh. Verzia 4.1 má funkciu export rozvrhov vo formáte HTML (Obr. 4.1), čo umožňuje jednoduchým spôsobom prezentovať rozvrh školy na internete.&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_09.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr. 4.1 Html výstup zobrazenia rozvrhu programu Rozvrh 4.1&lt;br /&gt;
&lt;br /&gt;
Prvý riadok reprezentuje časovú os jednotlivých vyučovacích hodín. Každý ďalší riadok zobrazuje vyučovacie hodiny v danom dni. Toto rozloženie je pravdepodobne najprehľadnejšie a veľmi intuitívne. Vhodným riešením je aj farebné označenie každého predmetu. Používateľ si daný predmet zapamätá podľa jemu priradenej farby, a tým sa mu zjednoduší orientácia v rozvrhu.  &lt;br /&gt;
&lt;br /&gt;
==UIS Mendelovej univerzity v&amp;amp;nbsp;Brne==&lt;br /&gt;
&lt;br /&gt;
Univerzitný informačný systém je programový systém (webový informačný systém), vytvorený domácim vývojom na Mendelovej univerzite v Brne za účelom automatizácie jej študijnej a vedecko-výskumnej agendy. V súčasnej dobe tento školský informačný systém pokrýva všetky hlavné činnosti univerzity a postupne automatizuje ďalšie prevádzkové a administratívne agendy. Programový súbor je tiež postupne zavádzaný na ďalších univerzitách v Českej a Slovenskej republike. Informačný systém je vyvíjaný postupne od roku 2000 a počas svojej krátkej existencie získal rôzne ocenenia. V roku 2002 3. miesto v súťaži EUNIS Elite Award of Excellence, v roku 2007 bol v tej istej súťaži doporučený ako High Recommended a získal 2. miesto [17]. Ukážka používateľského rozhrania (Obr. 3.1).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_10.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 3.2 Zobrazenie prvkov používateľského rozhrania UIS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rozvrh fakulty mechatroniky==&lt;br /&gt;
===Rozvrh – stará verzia aplikácie===&lt;br /&gt;
Webová aplikácia (systém pracoval od roku 2006 do zimného semester 2009) na zobrazovanie rozvrhu fakulty mechatroniky má výpis rozvrhu riešený iným spôsobom ako v&amp;amp;nbsp;aplikácií Rozvh 4.1.&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_11.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 3.3 Webová aplikácia na zobrazovanie rozvrhu Fakulty mechatroniky TnU AD&lt;br /&gt;
&lt;br /&gt;
Výpis môže pôsobiť trochu neprehľadne, pretože&amp;amp;nbsp;každý riadok reprezentuje jeden predmet. Čas jednotlivých prednášok je zobrazený v&amp;amp;nbsp;stĺpci s názvom ''Čas''. Deň, v&amp;amp;nbsp;ktorý sa daný predmet vyučuje, je v&amp;amp;nbsp;stĺpci s&amp;amp;nbsp;názvom ''Deň''. Absencia časovej osi robí  problémy v&amp;amp;nbsp;pohodlnej orientácií v&amp;amp;nbsp;rozvrhu.&lt;br /&gt;
&lt;br /&gt;
===Rozvrh FM - AIS===&lt;br /&gt;
Systém je nasadený od letného semestra 2010 ako celo univerzitné riešenie. V&amp;amp;nbsp;súčasnosti používa fakulta na správu rozvrhu modul AiS[18]. Akademický informačný systém AiS je komplexný informačný systém určený na podporu riadenie základných procesov vysokej školy. AiS je produkt, ktorý sa neustále dynamicky vyvíja na základe požiadaviek jednotlivých vysokých škôl. V súčasnosti je AiS implementovaný na 16 vysokých školách na Slovensku a k dispozícii ho má viac ako 100 tisíc študentov slovenských škôl, čo je viac ako 50% všetkých študentov slovenských vysokých škôl. Nevýhodou tohto komplexného systému je jeho zložitosť, neprehľadnosť a&amp;amp;nbsp;pomalé odozvy používateľského prostredia. Študent po prihlásení do systému AiS musí otvoriť niekoľko pracovných okien a&amp;amp;nbsp;navoliť kritéria pre zobrazenie rozvrhu pre svoj študijný obor, čo je veľmi zdĺhavé a&amp;amp;nbsp;nepohodlné. Ukážka používateľského prostredia (Obr. 3.1).&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_12.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 3.4 Zobrazenie používateľského prostredia AiS2&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Technol%C3%B3gie_off-line_web_aplik%C3%A1ci%C3%AD&amp;diff=6879</id>
		<title>Technológie off-line web aplikácií</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Technol%C3%B3gie_off-line_web_aplik%C3%A1ci%C3%AD&amp;diff=6879"/>
		<updated>2010-09-05T12:37:43Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:php]]&lt;br /&gt;
[[Kategória:web]]&lt;br /&gt;
{{Hlavička_FM|{{PAGENAME}}|Dušan Pagáč|Ing. Juraj Ďuďák|&lt;br /&gt;
2009/2010&lt;br /&gt;
|Semetrálna práca|Mechatronika}} &lt;br /&gt;
{{Praca_uvod|2|Off-line funkcionalita on-line web aplikácií|Štruktúra webovej aplikácie|Technológie off-line web aplikácií|Systémy na vizualizáciu rozvrhu hodín|Návrh používateľského rozhrania rozvrhu FM TnUAD}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
&lt;br /&gt;
==Technológie off-line web aplikácií==&lt;br /&gt;
V&amp;amp;nbsp;súčasnosti je dostupných niekoľko technológií, ktoré podporujú off-line aplikácie:&lt;br /&gt;
&lt;br /&gt;
* Google Gears&lt;br /&gt;
* HTML5&lt;br /&gt;
Nová špecifikácia HTML5 je zatiaľ vo vývoji a&amp;amp;nbsp;má byť dokončená v&amp;amp;nbsp;roku 2012. Niektoré jej možnosti sú už dnes podporované vo väčšine prehliadačoch.&lt;br /&gt;
&lt;br /&gt;
===Google Gears===&lt;br /&gt;
Google Gears [1] je open-source projekt of firmy Google. Pridaním nových funkcií do&amp;amp;nbsp;prehliadača dokáže sprístupniť webovú aplikáciu aj v&amp;amp;nbsp;režime off-line. Používateľovi stačí nainštalovať rozšírenie (Obr. 2.1) do svojho prehliadača a&amp;amp;nbsp;následne povoliť (Obr. 2.2) prístup konkrétnej webovej lokalite pre použitie&amp;amp;nbsp;tohto rozšírenia.&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_07.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 2.1 Zobrazenie rozšírenia Google Gears v&amp;amp;nbsp;správe rozšírení prehliadača Firefox&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_08.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 2.2 Povolenia rozšírenia pre webovú lokalitu (localhost)&lt;br /&gt;
&lt;br /&gt;
====Moduly Google Gears====&lt;br /&gt;
S rozšírením Google Gears získame tri nezávislé moduly: lokálny server, databáza, spracovanie kódu na pozadí. Každý z&amp;amp;nbsp;nich vylepšuje nejaký aspekt programovania webovej aplikácie na strane klienta prostredníctvom konkrétneho modulu.&lt;br /&gt;
&lt;br /&gt;
'''Lokálny server'''&lt;br /&gt;
&lt;br /&gt;
Modul lokálny server (''LocalServer'') umožňuje aplikácii uložiť a&amp;amp;nbsp;používať jeho HTTP zdroje lokálne bez pripojenia k&amp;amp;nbsp;sieti. Je to špecializovaná vyrovnávacia pamäť. Požiadavky na URL vo vyrovnávacej pamäti lokálneho servera sú zachytené a&amp;amp;nbsp;obslúžené lokálne priamo z&amp;amp;nbsp;disku používateľa.&lt;br /&gt;
&lt;br /&gt;
'''Databáza'''&lt;br /&gt;
&lt;br /&gt;
Databázový modul (''Database'') poskytuje open-source databázový systém SQLite. Databázové API slúži k&amp;amp;nbsp;neustálemu ukladaniu používateľských dát. Pre dáta uložené v&amp;amp;nbsp;lokálnej databáze je definovaná bezpečnostná politika, ktorá web aplikácii nedovolí prístup mimo jej domény.&lt;br /&gt;
&lt;br /&gt;
'''Spracovanie kódu na pozadí'''&lt;br /&gt;
&lt;br /&gt;
Skript časovo náročný na spracovanie, ako napríklad zložitý výpočet, môže spôsobiť, že&amp;amp;nbsp;používateľské prostredie nereaguje. Technika spracovania kódu na pozadí (''WorkerPool API'') dovoľuje web aplikácii spustiť javaskriptový kód na pozadí bez blokovania vykonávania ostatných skriptov na stránke.&lt;br /&gt;
&lt;br /&gt;
====Google Gears API====&lt;br /&gt;
S&amp;amp;nbsp;modulmi Google Gears API pracujeme pomocou metód aplikačného rozhrania. Pre prístup k&amp;amp;nbsp;nim musíme do aplikácie zahrnúť súbor ''gears_init.js'', ktorý sa nachádza na adrese ''http://code.google.com/intl/sk/apis/gears/gears_init.js''. V&amp;amp;nbsp;nasledujúcom texte budú opísané všetky moduly Google Gears API.&lt;br /&gt;
&lt;br /&gt;
=====Factory API=====&lt;br /&gt;
Trieda ''Factory'' je použitá na vytvorenie inštancií všetkých Gears objektov. Vytvorenie tejto inštancie (Kód 2.1) je povinné.&lt;br /&gt;
&lt;br /&gt;
Kód 2.1 Volanie metódy ''create'''' ''triedy'' factory''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;gears_init.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    if (window.google &amp;amp;&amp;amp; google.gears) {&lt;br /&gt;
        var db = google.gears.factory.create('beta.database');&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na to aby sme vytvorili inštanciu triedy ''Factory, ''je potrebné mať nainštalované samotné rozšírenie Google Gears. Existenciu tohto rozšírenia overíme pomocou kontroly globálnych objektov ''window.google'' a ''google.gears''. V&amp;amp;nbsp;skripte ''gears_init.js'' je definovaný objekt ''google.gears.factory''. Metóda ''create'' triedy ''factory'' vytvorí objekt danej triedy s parametrom ''className''. Parameter ''className ''je typ objektu, ktorý sa má vytvoriť. Kompletná špecifikácia je triedy ''Factory'' je v [2].&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.1 Opis metód triedy'' Factory''''.'' &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;factory&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Object''' create(className, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;classVersion&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vytvára Gears objekt danej triedy&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|className – typ objektu,  ktorý sa má vytvoriť&amp;lt;br&amp;gt;classVersion – parameter sa už nepoužíva, prípadne jeho hodnota &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;1.0&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Detaily:&lt;br /&gt;
|Podporované hodnoty parametru className:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|className&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Vytvorenie Gears triedy&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.blobbuilder&lt;br /&gt;
|BlobBuilder&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.canvas&lt;br /&gt;
|Canvas&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.database&lt;br /&gt;
|Database&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.desktop&lt;br /&gt;
|Desktop&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.geolocation&lt;br /&gt;
|Geolocation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.httprequest&lt;br /&gt;
|HttpRequest&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.localserver&lt;br /&gt;
|LocalServer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.timer&lt;br /&gt;
|Timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.workerpool&lt;br /&gt;
|WorkerPool&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====LocalServer API=====&lt;br /&gt;
Na správu vyrovnávacej pamäti sú dostupné dve triedy:&lt;br /&gt;
&lt;br /&gt;
'''''ResourceStore'' '''– povoľuje zachytávať dáta (obrázky, PDF súbor), ktoré sú adresované s URL.&lt;br /&gt;
&lt;br /&gt;
'''''ManagedResourceStore''''' – zoznam URL odkazov na súbory, ktoré budú dostupné off-line, sú&amp;amp;nbsp;v&amp;amp;nbsp;súbore ''manifest.'' Pomocou tejto triedy môžeme zabezpečiť aplikácii všetky dáta, ktoré bude potrebovať. Výhoda takéhoto riešenia je v automatickej aktualizácií pri zmene súboru ''manifest''. Príklad použitia je v&amp;amp;nbsp;kóde 2.2.&lt;br /&gt;
&lt;br /&gt;
Kód 2.2 Príklad použitia metódy ''createManagedStor''''e''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;gears_init.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var localServer = google.gears.factory.create('beta.localserver');&lt;br /&gt;
    var store = localServer.createManagedStore('test-store');&lt;br /&gt;
    store.manifestUrl = 'manifest.txt';&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Odkazy na súbory uvedené v&amp;amp;nbsp;súbore'' manifest'' (Kód 2.3) sa pri synchronizácií skopírujú na&amp;amp;nbsp;lokálny disk.&lt;br /&gt;
&lt;br /&gt;
Kód 2.3 Výpis súboru ''manifest.tx''''t''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;betaManifestVersion&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;1.0&amp;quot;,&lt;br /&gt;
    &amp;quot;entries&amp;quot;: [&lt;br /&gt;
        { &amp;quot;url&amp;quot;: &amp;quot;index.html&amp;quot; },&lt;br /&gt;
        { &amp;quot;url&amp;quot;: &amp;quot;gears_init.js&amp;quot; }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.2 Metódy triedy ''LocalServer''. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;LocalServer&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''createManagedStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ManagedResourceStore &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ManagedResourceStore alebo vytvorí novú, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''openManagedStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ManagedResourceStore &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ManagedResourceStore alebo vráti null, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' removeManagedStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Odstráni  ManagedResourceStore a&amp;amp;nbsp;odstráni všetky jej URL z&amp;amp;nbsp;lokálnej&amp;lt;br&amp;gt;vyrovnávacej pamäti&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''createStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ResourceStore&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ResourceStore alebo vytvorí novú, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''openStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ResourceStore&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ResourceStore alebo vráti null, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' removeStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Odstráni  ResourceStore a&amp;amp;nbsp;odstráni a&amp;amp;nbsp;celý jeho obsah&amp;lt;br&amp;gt;vyrovnávacej pamäti&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Database API=====&lt;br /&gt;
Database API je aplikačné rozhranie pre prácu s&amp;amp;nbsp;lokálnou databázou SQLite[4]. SQLite je&amp;amp;nbsp;knižnica, ktorá implementuje relačnú databázu bez potreby servera.&lt;br /&gt;
&lt;br /&gt;
Kód 2.4 Príklad práce s&amp;amp;nbsp;lokálnou databázou&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;gears_init.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
var db = google.gears.factory.create('beta.database');&lt;br /&gt;
db.open('moja-databaza);&lt;br /&gt;
db.execute('create table if not exists Zoznam' +&lt;br /&gt;
           ' (Meno text, Vek int)');&lt;br /&gt;
db.execute('insert into Zoznam values (?, ?)', ['Peter', '22']);&lt;br /&gt;
var rs = db.execute('select * from Zoznam order by Vek desc');&lt;br /&gt;
&lt;br /&gt;
rs.close();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.3 Opis metód triedy'' Database''''.'' &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Database&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''Metóda: '''&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' open(&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;name&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – voliteľný&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí databázu&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''execute(sqlStatement, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;argArray&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|sqlStatement – reťazec obsahujúci SQL príkaz, so znakom &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;'''?''' &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;''' '''ako''' '''zástupný symbol  previazaný s parametrami&amp;lt;br&amp;gt;argArray – voliteľné pole parametrov,  ktoré nahradia symboly &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;'''?''' &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ResultSet&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vykoná SQL príkazy.  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void '''close()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Ukončí spojenie s&amp;amp;nbsp;databázou. Volanie database.close()  nie je potrebné&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' remove()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Zmaže práve otvorenú databázu.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Metóda ''database.execute ''po úspešnom volaní vráti objekt triedy ''ResultSet.'' Obsahuje výsledky vykonaných SQL príkazov.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.4 Opis metód triedy'' ResultSe''''t''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;ResultSet&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|boolean '''isValidRow()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti true, ak môžete volať metódy na extrakciu dát&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void '''next()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Pokračuje na ďalší riadok výsledkov  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void '''close()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Je potrebné zavolať metodu close(), ak sme skončili s&amp;amp;nbsp;prácou s výsledkami&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.5 Opis metód na extrakciu dát&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot; &amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;colspan = &amp;quot;2&amp;quot;|'''Metódy na extrakciu dát'''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Int '''fieldCount()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti počet polí výsledku&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|string '''fieldName(int fieldIndex)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|fieldIndex – index požadovaného pola&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti meno špecifikovaného pola.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''field(int fieldIndex)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|fieldIndex – index požadovaného pola&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|rôzne&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti obsah špecifikovaného pola v aktuálnom riadku&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''fieldByName(string fieldName)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|fieldName – názov požadovaného pola&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|rôzne&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti obsah špecifikovaného pola v aktuálnom riadku&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====WorkerPool API=====&lt;br /&gt;
Aplikačné rozhranie, ktoré umožňuje spracovávať javaskriptový kód na pozadí. Vďaka tomu neblokuje vykonávanie ďalších skriptov. Kompletná špecifikácia v [6].&lt;br /&gt;
&lt;br /&gt;
=====Blob API=====&lt;br /&gt;
Pomocou objektov typu ''Blob ''môžeme odkazovať na binárne dáta vo webových aplikáciách. Kompletná špecifikácia v [7].&lt;br /&gt;
&lt;br /&gt;
=====BlobBuilder API=====&lt;br /&gt;
''BlobBuilder'' je pomocný objekt pre vytváranie objektov typu ''Blob.  Blob ''je nemenný, read-only object, rovnaký ako reťazec v&amp;amp;nbsp;Javascripte. ''BlobBuilder'' je používaný na&amp;amp;nbsp;generovanie ''Blobu'' s&amp;amp;nbsp;novým obsahom. Kompletná špecifikácia v [8].&lt;br /&gt;
&lt;br /&gt;
=====Canvas API=====&lt;br /&gt;
Prostredníctvom tejto API môžeme pracovať s&amp;amp;nbsp;obrázkami pomocou javaskriptu. Táto grafická API je inšpirovaná HTML5 canvasom. Obsahuje metódy na rozkódovanie a zakódovanie do&amp;amp;nbsp;binárnych formátov (napr. PNG, JPEG). Kompletná špecifikácia v [9].&lt;br /&gt;
&lt;br /&gt;
=====Desktop API=====&lt;br /&gt;
Desktop API poskytuje rozhranie pre prístup k desktopovým funkciám, ako je vytváranie ikon. V&amp;amp;nbsp;kóde 2.5 je zobrazená funkcia ''createShortcut'', ktorá vytvorí ikony na ploche a paneli nástrojov.&lt;br /&gt;
&lt;br /&gt;
Kód 2.5 Ukážka práce s&amp;amp;nbsp;Desktop API &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var desktop = google.gears.factory.create('beta.desktop');&lt;br /&gt;
function createShortcut() {&lt;br /&gt;
      var desktop = google.gears.factory.create(&amp;quot;beta.desktop&amp;quot;);&lt;br /&gt;
      var description = &amp;quot;Vytvorenie ikonky ROZVRHU.&amp;quot;;&lt;br /&gt;
      var icons = {&lt;br /&gt;
           &amp;quot;16x16&amp;quot;: &amp;quot;16icon.png&amp;quot;&lt;br /&gt;
           &amp;quot;32x32&amp;quot;: &amp;quot;32icon.png&amp;quot;,&lt;br /&gt;
           &amp;quot;48x48&amp;quot;: &amp;quot;48icon.png&amp;quot;,&lt;br /&gt;
           &amp;quot;128x128&amp;quot;: &amp;quot;128icon.png&amp;quot;&lt;br /&gt;
      };&lt;br /&gt;
      desktop.createShortcut(&amp;quot;Rozvrh Fakulty Mechatroniky&amp;quot;,  &lt;br /&gt;
           &amp;quot; http://priklad.sk/index.html&amp;quot;,  &lt;br /&gt;
            icons,  &lt;br /&gt;
            description); &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
V&amp;amp;nbsp;tabuľke 2.6 je výpis metód triedy ''Desktop.'' Kompletná špecifikácia v [10].&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.6 Opis metód triedy ''Desktop''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Desktop&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''Metóda: '''&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|createShortcut(name, url, icons, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;description&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name - meno odkazu&amp;lt;br&amp;gt;url - adresa dokumentu,  ktorý sa má otvoriť&amp;lt;br&amp;gt;icons – Objekt obsahujúci jednu alebo viac hodnôt v tvare:&amp;lt;br&amp;gt;rozmer : URL ikony&amp;lt;br&amp;gt;Napr.'' &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;128x128&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;: &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;http://priklad. sk/icon128x128.png&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;''&amp;lt;br&amp;gt;descriptions – nepovinný parameter. Text sa zobrazí v potvrdzovacom dialógu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vytvorí desktopový odkaz na spustenie aplikácie&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&amp;lt;br clear=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Geolocation API=====&lt;br /&gt;
Geolocation API umožňuje webovej aplikácii získať používateľa geografickú polohu. Kompletnú špecifikáciu nájdete v [11].&lt;br /&gt;
&lt;br /&gt;
=====HttpRequest API=====&lt;br /&gt;
HttpRequest API implementuje podskupinu XmlHttpRequest W3C špecifikácie. Gears poskytuje vlastný HttpRequest objekt. Obsahuje väčšinu vlastností. Kompletnú špecifikáciu nájdete v [12].&lt;br /&gt;
&lt;br /&gt;
=====Timer API=====&lt;br /&gt;
Obsahuje metódy, ktoré umožnia nastaviť vykonanie skriptov s&amp;amp;nbsp;časovým oneskorením a&amp;amp;nbsp;podobne. Kompletnú špecifikáciu nájdete v [13].&lt;br /&gt;
&lt;br /&gt;
====Podpora Google Gears v&amp;amp;nbsp;operačných systémoch a prehliadačoch====&lt;br /&gt;
Funkčnosť Google Gears je overená na nasledujúcich platformách a&amp;amp;nbsp;prehliadačoch [14]:&lt;br /&gt;
&lt;br /&gt;
* Apple Mac OS X (10.4 alebo vyššia, G4, G5 or Intel Processor)&lt;br /&gt;
* Firefox 1.5 alebo vyššia&lt;br /&gt;
* Safari 3.1.1 alebo vyššia (OS X Tiger 10.4.11&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; alebo Leopard 10.5.3&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;, G4, G5 alebo Intel Processor)&lt;br /&gt;
* Linux&lt;br /&gt;
* Firefox 1.5 alebo vyššia&lt;br /&gt;
* Microsoft Windows (XP alebo vyššia)&lt;br /&gt;
* Firefox 1.5 alebo vyššia&lt;br /&gt;
* Internet Explorer 6 alebo vyššia&lt;br /&gt;
* Google Chrome&lt;br /&gt;
* Microsoft Windows Mobile (5 alebo vyššia)&lt;br /&gt;
* Internet Explorer 4.01 alebo vyššia&lt;br /&gt;
* Opera Mobile 9.51 (Presto build 2.1.0&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;) (Windows Mobile 6 len pre dotykové zariadenia)&lt;br /&gt;
* &amp;amp;nbsp;Nasledovné zariadenia nie sú podporované&lt;br /&gt;
* Samsung i320 a i320N&lt;br /&gt;
* Orange SPV C600&lt;br /&gt;
* Motorola Q&lt;br /&gt;
* Android 1.0&lt;br /&gt;
====Umiestnenie dát na disku====&lt;br /&gt;
Umiestnenie dát webovej aplikácie na disku záleží na platforme a&amp;amp;nbsp;internetovom prehliadači.&lt;br /&gt;
&lt;br /&gt;
'''Windows Vista - Internet Explorer'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: &amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;FOLDERID_LocalAppDataLow&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;\Google\Google Gears for Internet Explorer&amp;lt;br&amp;gt;Príklad: C:\Users\Bob\AppData\LocalLow\Google\Google Gears for Internet Explorer&lt;br /&gt;
&lt;br /&gt;
'''Windows Vista - Firefox'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: C:\Users\&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;username&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;\AppData\Local\Mozilla\Firefox\Profiles\&amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;profile&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;.default\Google Gears for Firefox &amp;lt;br&amp;gt;Príklad: C:\Users\Bob\AppData\Local\Mozilla\Firefox\Profiles\uelib44s.default\Google Gears for Firefox&lt;br /&gt;
&lt;br /&gt;
'''Windows Vista - Chrome'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: C:\Users\&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;username&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;\AppData\Local\Google\Chrome\User Data\Default\Plugin Data\Google Gears&amp;lt;br&amp;gt;Príklad: C:\Users\Bob\AppData\Local\Google\Chrome\User Data\Default\Plugin Data\Google Gears&lt;br /&gt;
&lt;br /&gt;
'''Mac OS X - Safari'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: &amp;lt;nowiki&amp;gt;~&amp;lt;/nowiki&amp;gt;/Library/Application Support/Google/Google Gears for Safari&amp;lt;br&amp;gt;Príklad: /Users/Bob/Library/Application Support/Google/Google Gears for Safari&lt;br /&gt;
&lt;br /&gt;
'''Linux - Firefox'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: &amp;lt;nowiki&amp;gt;~&amp;lt;/nowiki&amp;gt;''bob''/.mozilla/firefox/&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;firefox&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;s profile id&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;/Google Gears for Firefox &amp;lt;br&amp;gt;Príklad: &amp;lt;nowiki&amp;gt;~&amp;lt;/nowiki&amp;gt;bob/.mozilla/firefox/08ywpi3q.default/Google Gears for Firefox&lt;br /&gt;
&lt;br /&gt;
====Využitie Google Gears====&lt;br /&gt;
Ako prvá začala Google Gears využívať firma Google vo svojej čítačke kanálov Google Reader. V&amp;amp;nbsp;režime off-line umožňuje prehliadať až 2000 príspevkov. Postupne sa podpora pre&amp;amp;nbsp;toto rozšírenie pridala aj do mailovej služby Gmail a on-line kancelárskeho balíka Google Docs.&lt;br /&gt;
&lt;br /&gt;
Ďalšie webové služby využívajúce Google Gears:&lt;br /&gt;
&lt;br /&gt;
* správca úloh '''rememberthemilk.com,'''&lt;br /&gt;
* sociálna služba '''myspace.com,'''&lt;br /&gt;
* on-line správca hesiel '''passpack.com,'''&lt;br /&gt;
* nástroj pre riadenie projektov''' mindmeister.com,'''&lt;br /&gt;
* open-source redakčný systém '''wordpress.net''' a ďalší.&lt;br /&gt;
===HTML5===&lt;br /&gt;
&lt;br /&gt;
HTML5 [15] je najnovšia špecifikácia značkovacieho jazyka HTML vyvíjaná medzinárodným združením W3C (World Wide Web Consortium). Najdôležitejšou zmenou v&amp;amp;nbsp;novej verzií je samotná&amp;amp;nbsp;štruktúra&amp;amp;nbsp;HTML dokumentu, veľké množstvo nových elementov a&amp;amp;nbsp;aj podpora off-line web aplikácií. Pretože Google sa snaží dodržiavať štandardy, zastavil vývoj Google Gears a&amp;amp;nbsp;svoju iniciatívu smeruje na HTML5. Je možné, že podpora off-line aplikácií bude mať v novej špecifikácií aj niektoré rysy, ktoré poznáme z Google Gears. V&amp;amp;nbsp;súčasnosti je stále HTML 5 vo&amp;amp;nbsp;fáze vývoja. Dokončenie je plánované na rok 2012. Niekoľko rokov však potrvá jeho úplná podpora vo väčšine prehliadačoch. Prehliadače ako napríklad Firefox podporujú už väčšiu časť nových prvkov HTML5. V&amp;amp;nbsp;našom prehľade sú&amp;amp;nbsp;zaujímavé SQL API a&amp;amp;nbsp;Cache API, ktoré majú poskytovať rovnakú funkcionalitu ako Google Gears.&lt;br /&gt;
&lt;br /&gt;
====Elementy štruktúry====&lt;br /&gt;
Doposiaľ bola štruktúra HTML dokumentu tvorená z&amp;amp;nbsp;''div ''elementov. HTML5 pridáva nové elementy k&amp;amp;nbsp;identifikácií každého z&amp;amp;nbsp;nich. Tieto majú presne stanovený sémantický význam a&amp;amp;nbsp;lepšie sa v nich orientuje aj samotný programátor.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.7 Zoznam nových sémantických elementov štruktúry HTML5&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|section&lt;br /&gt;
|Všeobecná (často nadradená) časť,  ktorá môže združovať ostatné časti stránky. Element DIV, ktorý dostal sémantické meno.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|header&lt;br /&gt;
|Hlavička časti, v ktorej je začlenená.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|footer&lt;br /&gt;
|Pätička časti, v ktorej je začlenená.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|nav&lt;br /&gt;
|Časť stránky,  ktorá obsahuje odkazy na ostatné stránky alebo časti danej stránky.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|article&lt;br /&gt;
|Časť stránky,  ktorá obsahuje text nezávislý od ostatných dielov stránky.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Elementy multimédií====&lt;br /&gt;
Zaujímavých zmien sa dočkala aj podpora multimédií (zvuk, video). Tieto sa na webe neskutočne rýchlo rozšírili (hlavne jednoduchým šírením pomocou stránok youtube.com a&amp;amp;nbsp;podobne). Preto sú v&amp;amp;nbsp;novej verzií HTML5 prístupné tagy&amp;amp;nbsp;''&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;video&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;''&amp;amp;nbsp;a ''&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;audio&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;.''&lt;br /&gt;
&lt;br /&gt;
Element ''&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;canvas&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;'' reprezentuje 2D kresliacu plochu ovládanú javaskriptom, ktorú môžete využívať, napr. na kreslenie grafov, grafických prvkov v hrách a prezentáciách.&lt;br /&gt;
&lt;br /&gt;
====Inline elementy====&lt;br /&gt;
HTML5 zavádza nové elementy, ktoré majú pomôcť uviesť základné prvky, ako je čas alebo čísla.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.8 Zoznam  nových inline elementov HTML5&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|mark&lt;br /&gt;
|Označenie textu.&amp;amp;nbsp;Slúži napríklad na označenie hľadaného slová v zozname výsledkov&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|time&lt;br /&gt;
|Označuje čas alebo dátum v bloku textu.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|meter&lt;br /&gt;
|Predstavuje skalárne meradlá.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|progress&lt;br /&gt;
|Reprezentuje pokrok v&amp;amp;nbsp;dokončení úlohy. Môže byť použitý pre vizuálne zobrazenie.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Podpora režimu off-line====&lt;br /&gt;
S novou špecifikáciou jazyka HTML 5 prichádza aj podpora off-line aplikácií. K&amp;amp;nbsp;dispozícií máme SQL API a&amp;amp;nbsp;Cache API, ktorá je obdobou LocalServer API.&lt;br /&gt;
&lt;br /&gt;
=====SQL API=====&lt;br /&gt;
SQL databáza na strane klienta umožní štruktúrované dátové úložisko. API pracuje s&amp;amp;nbsp;touto databázou asynchrónne. To znamená, že používateľské prostredie nebude blokované vykonávaním synchrónneho požiadavku.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.9 Zoznam metód návrhu HTML5&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Object openDatabase(dbname, dbversion, displayname, size)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vytvára databázový objekt podľa zvolených parametrov&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|dbname – meno databázy&amp;lt;br&amp;gt;dbversion – verzia databázy&amp;lt;br&amp;gt;displayname – zobrazený názov databázy&amp;lt;br&amp;gt;size – predpokladaná veľkosť databázy v bajtoch&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ďalšie Metódy: &lt;br /&gt;
|transaction(), executeSql()&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====LocalStorage API=====&lt;br /&gt;
Dáta na lokálnom disku bude reprezentovať objekt ''localStorage.''&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.10 Zoznam niektorých metód pre prácu s&amp;amp;nbsp;lokálnym úložiskom&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Opis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|clear()&lt;br /&gt;
|zmaže celý obsah objektu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|getItem()&lt;br /&gt;
|získa obsah objektu podľa názvu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|key()&lt;br /&gt;
|získa kľúč podľa čísla&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|length&lt;br /&gt;
|Počet uložených kľúčov&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|removeItem()&lt;br /&gt;
|odstráni položku podľa jej mena&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|setItem()&lt;br /&gt;
|Pridá hodnotu položke&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Technol%C3%B3gie_off-line_web_aplik%C3%A1ci%C3%AD&amp;diff=6878</id>
		<title>Technológie off-line web aplikácií</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Technol%C3%B3gie_off-line_web_aplik%C3%A1ci%C3%AD&amp;diff=6878"/>
		<updated>2010-09-05T12:33:09Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:php]]&lt;br /&gt;
[[Kategória:web]]&lt;br /&gt;
{{Hlavička_FM|{{PAGENAME}}|Dušan Pagáč|Ing. Juraj Ďuďák|&lt;br /&gt;
2009/2010&lt;br /&gt;
|Semetrálna práca|Mechatronika}} &lt;br /&gt;
{{Praca_uvod|2|Off-line funkcionalita on-line web aplikácií|Štruktúra webovej aplikácie|Technológie off-line web aplikácií|Systémy na vizualizáciu rozvrhu hodín|Návrh používateľského rozhrania rozvrhu FM TnUAD}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Technológie off-line web aplikácií==&lt;br /&gt;
V&amp;amp;nbsp;súčasnosti je dostupných niekoľko technológií, ktoré podporujú off-line aplikácie:&lt;br /&gt;
&lt;br /&gt;
* Google Gears&lt;br /&gt;
* HTML5&lt;br /&gt;
Nová špecifikácia HTML5 je zatiaľ vo vývoji a&amp;amp;nbsp;má byť dokončená v&amp;amp;nbsp;roku 2012. Niektoré jej možnosti sú už dnes podporované vo väčšine prehliadačoch.&lt;br /&gt;
&lt;br /&gt;
===Google Gears===&lt;br /&gt;
Google Gears [1] je open-source projekt of firmy Google. Pridaním nových funkcií do&amp;amp;nbsp;prehliadača dokáže sprístupniť webovú aplikáciu aj v&amp;amp;nbsp;režime off-line. Používateľovi stačí nainštalovať rozšírenie (Obr. 2.1) do svojho prehliadača a&amp;amp;nbsp;následne povoliť (Obr. 2.2) prístup konkrétnej webovej lokalite pre použitie&amp;amp;nbsp;tohto rozšírenia.&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_07.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 2.1 Zobrazenie rozšírenia Google Gears v&amp;amp;nbsp;správe rozšírení prehliadača Firefox&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_08.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 2.2 Povolenia rozšírenia pre webovú lokalitu (localhost)&lt;br /&gt;
&lt;br /&gt;
====Moduly Google Gears====&lt;br /&gt;
S rozšírením Google Gears získame tri nezávislé moduly: lokálny server, databáza, spracovanie kódu na pozadí. Každý z&amp;amp;nbsp;nich vylepšuje nejaký aspekt programovania webovej aplikácie na strane klienta prostredníctvom konkrétneho modulu.&lt;br /&gt;
&lt;br /&gt;
'''Lokálny server'''&lt;br /&gt;
&lt;br /&gt;
Modul lokálny server (''LocalServer'') umožňuje aplikácii uložiť a&amp;amp;nbsp;používať jeho HTTP zdroje lokálne bez pripojenia k&amp;amp;nbsp;sieti. Je to špecializovaná vyrovnávacia pamäť. Požiadavky na URL vo vyrovnávacej pamäti lokálneho servera sú zachytené a&amp;amp;nbsp;obslúžené lokálne priamo z&amp;amp;nbsp;disku používateľa.&lt;br /&gt;
&lt;br /&gt;
'''Databáza'''&lt;br /&gt;
&lt;br /&gt;
Databázový modul (''Database'') poskytuje open-source databázový systém SQLite. Databázové API slúži k&amp;amp;nbsp;neustálemu ukladaniu používateľských dát. Pre dáta uložené v&amp;amp;nbsp;lokálnej databáze je definovaná bezpečnostná politika, ktorá web aplikácii nedovolí prístup mimo jej domény.&lt;br /&gt;
&lt;br /&gt;
'''Spracovanie kódu na pozadí'''&lt;br /&gt;
&lt;br /&gt;
Skript časovo náročný na spracovanie, ako napríklad zložitý výpočet, môže spôsobiť, že&amp;amp;nbsp;používateľské prostredie nereaguje. Technika spracovania kódu na pozadí (''WorkerPool API'') dovoľuje web aplikácii spustiť javaskriptový kód na pozadí bez blokovania vykonávania ostatných skriptov na stránke.&lt;br /&gt;
&lt;br /&gt;
====Google Gears API====&lt;br /&gt;
S&amp;amp;nbsp;modulmi Google Gears API pracujeme pomocou metód aplikačného rozhrania. Pre prístup k&amp;amp;nbsp;nim musíme do aplikácie zahrnúť súbor ''gears_init.js'', ktorý sa nachádza na adrese ''http://code.google.com/intl/sk/apis/gears/gears_init.js''. V&amp;amp;nbsp;nasledujúcom texte budú opísané všetky moduly Google Gears API.&lt;br /&gt;
&lt;br /&gt;
=====Factory API=====&lt;br /&gt;
Trieda ''Factory'' je použitá na vytvorenie inštancií všetkých Gears objektov. Vytvorenie tejto inštancie (Kód 2.1) je povinné.&lt;br /&gt;
&lt;br /&gt;
Kód 2.1 Volanie metódy ''create'''' ''triedy'' factory''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;gears_init.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    if (window.google &amp;amp;&amp;amp; google.gears) {&lt;br /&gt;
        var db = google.gears.factory.create('beta.database');&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na to aby sme vytvorili inštanciu triedy ''Factory, ''je potrebné mať nainštalované samotné rozšírenie Google Gears. Existenciu tohto rozšírenia overíme pomocou kontroly globálnych objektov ''window.google'' a ''google.gears''. V&amp;amp;nbsp;skripte ''gears_init.js'' je definovaný objekt ''google.gears.factory''. Metóda ''create'' triedy ''factory'' vytvorí objekt danej triedy s parametrom ''className''. Parameter ''className ''je typ objektu, ktorý sa má vytvoriť. Kompletná špecifikácia je triedy ''Factory'' je v [2].&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.1 Opis metód triedy'' Factory''''.'' &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;factory&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Object''' create(className, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;classVersion&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vytvára Gears objekt danej triedy&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|className – typ objektu,  ktorý sa má vytvoriť&amp;lt;br&amp;gt;classVersion – parameter sa už nepoužíva, prípadne jeho hodnota &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;1.0&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Detaily:&lt;br /&gt;
|Podporované hodnoty parametru className:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|className&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Vytvorenie Gears triedy&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.blobbuilder&lt;br /&gt;
|BlobBuilder&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.canvas&lt;br /&gt;
|Canvas&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.database&lt;br /&gt;
|Database&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.desktop&lt;br /&gt;
|Desktop&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.geolocation&lt;br /&gt;
|Geolocation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.httprequest&lt;br /&gt;
|HttpRequest&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.localserver&lt;br /&gt;
|LocalServer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.timer&lt;br /&gt;
|Timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.workerpool&lt;br /&gt;
|WorkerPool&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====LocalServer API=====&lt;br /&gt;
Na správu vyrovnávacej pamäti sú dostupné dve triedy:&lt;br /&gt;
&lt;br /&gt;
'''''ResourceStore'' '''– povoľuje zachytávať dáta (obrázky, PDF súbor), ktoré sú adresované s URL.&lt;br /&gt;
&lt;br /&gt;
'''''ManagedResourceStore''''' – zoznam URL odkazov na súbory, ktoré budú dostupné off-line, sú&amp;amp;nbsp;v&amp;amp;nbsp;súbore ''manifest.'' Pomocou tejto triedy môžeme zabezpečiť aplikácii všetky dáta, ktoré bude potrebovať. Výhoda takéhoto riešenia je v automatickej aktualizácií pri zmene súboru ''manifest''. Príklad použitia je v&amp;amp;nbsp;kóde 2.2.&lt;br /&gt;
&lt;br /&gt;
Kód 2.2 Príklad použitia metódy ''createManagedStor''''e''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;gears_init.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var localServer = google.gears.factory.create('beta.localserver');&lt;br /&gt;
    var store = localServer.createManagedStore('test-store');&lt;br /&gt;
    store.manifestUrl = 'manifest.txt';&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Odkazy na súbory uvedené v&amp;amp;nbsp;súbore'' manifest'' (Kód 2.3) sa pri synchronizácií skopírujú na&amp;amp;nbsp;lokálny disk.&lt;br /&gt;
&lt;br /&gt;
Kód 2.3 Výpis súboru ''manifest.tx''''t''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;betaManifestVersion&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;1.0&amp;quot;,&lt;br /&gt;
    &amp;quot;entries&amp;quot;: [&lt;br /&gt;
        { &amp;quot;url&amp;quot;: &amp;quot;index.html&amp;quot; },&lt;br /&gt;
        { &amp;quot;url&amp;quot;: &amp;quot;gears_init.js&amp;quot; }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.2 Metódy triedy ''LocalServer''. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;LocalServer&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''createManagedStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ManagedResourceStore &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ManagedResourceStore alebo vytvorí novú, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''openManagedStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ManagedResourceStore &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ManagedResourceStore alebo vráti null, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' removeManagedStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Odstráni  ManagedResourceStore a&amp;amp;nbsp;odstráni všetky jej URL z&amp;amp;nbsp;lokálnej&amp;lt;br&amp;gt;vyrovnávacej pamäti&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''createStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ResourceStore&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ResourceStore alebo vytvorí novú, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''openStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ResourceStore&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ResourceStore alebo vráti null, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' removeStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Odstráni  ResourceStore a&amp;amp;nbsp;odstráni a&amp;amp;nbsp;celý jeho obsah&amp;lt;br&amp;gt;vyrovnávacej pamäti&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Database API=====&lt;br /&gt;
Database API je aplikačné rozhranie pre prácu s&amp;amp;nbsp;lokálnou databázou SQLite[4]. SQLite je&amp;amp;nbsp;knižnica, ktorá implementuje relačnú databázu bez potreby servera.&lt;br /&gt;
&lt;br /&gt;
Kód 2.4 Príklad práce s&amp;amp;nbsp;lokálnou databázou&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;gears_init.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
var db = google.gears.factory.create('beta.database');&lt;br /&gt;
db.open('moja-databaza);&lt;br /&gt;
db.execute('create table if not exists Zoznam' +&lt;br /&gt;
           ' (Meno text, Vek int)');&lt;br /&gt;
db.execute('insert into Zoznam values (?, ?)', ['Peter', '22']);&lt;br /&gt;
var rs = db.execute('select * from Zoznam order by Vek desc');&lt;br /&gt;
&lt;br /&gt;
rs.close();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.3 Opis metód triedy'' Database''''.'' &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Database&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''Metóda: '''&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' open(&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;name&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – voliteľný&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí databázu&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''execute(sqlStatement, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;argArray&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|sqlStatement – reťazec obsahujúci SQL príkaz, so znakom &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;'''?''' &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;''' '''ako''' '''zástupný symbol  previazaný s parametrami&amp;lt;br&amp;gt;argArray – voliteľné pole parametrov,  ktoré nahradia symboly &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;'''?''' &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ResultSet&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vykoná SQL príkazy.  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void '''close()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Ukončí spojenie s&amp;amp;nbsp;databázou. Volanie database.close()  nie je potrebné&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' remove()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Zmaže práve otvorenú databázu.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Metóda ''database.execute ''po úspešnom volaní vráti objekt triedy ''ResultSet.'' Obsahuje výsledky vykonaných SQL príkazov.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.4 Opis metód triedy'' ResultSe''''t''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;ResultSet&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|boolean '''isValidRow()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti true, ak môžete volať metódy na extrakciu dát&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void '''next()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Pokračuje na ďalší riadok výsledkov  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void '''close()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Je potrebné zavolať metodu close(), ak sme skončili s&amp;amp;nbsp;prácou s výsledkami&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.5 Opis metód na extrakciu dát&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot; &amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;colspan = &amp;quot;2&amp;quot;|'''Metódy na extrakciu dát'''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Int '''fieldCount()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti počet polí výsledku&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|string '''fieldName(int fieldIndex)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|fieldIndex – index požadovaného pola&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti meno špecifikovaného pola.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''field(int fieldIndex)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|fieldIndex – index požadovaného pola&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|rôzne&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti obsah špecifikovaného pola v aktuálnom riadku&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''fieldByName(string fieldName)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|fieldName – názov požadovaného pola&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|rôzne&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti obsah špecifikovaného pola v aktuálnom riadku&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====WorkerPool API=====&lt;br /&gt;
Aplikačné rozhranie, ktoré umožňuje spracovávať javaskriptový kód na pozadí. Vďaka tomu neblokuje vykonávanie ďalších skriptov. Kompletná špecifikácia v [6].&lt;br /&gt;
&lt;br /&gt;
=====Blob API=====&lt;br /&gt;
Pomocou objektov typu ''Blob ''môžeme odkazovať na binárne dáta vo webových aplikáciách. Kompletná špecifikácia v [7].&lt;br /&gt;
&lt;br /&gt;
=====BlobBuilder API=====&lt;br /&gt;
''BlobBuilder'' je pomocný objekt pre vytváranie objektov typu ''Blob.  Blob ''je nemenný, read-only object, rovnaký ako reťazec v&amp;amp;nbsp;Javascripte. ''BlobBuilder'' je používaný na&amp;amp;nbsp;generovanie ''Blobu'' s&amp;amp;nbsp;novým obsahom. Kompletná špecifikácia v [8].&lt;br /&gt;
&lt;br /&gt;
=====Canvas API=====&lt;br /&gt;
Prostredníctvom tejto API môžeme pracovať s&amp;amp;nbsp;obrázkami pomocou javaskriptu. Táto grafická API je inšpirovaná HTML5 canvasom. Obsahuje metódy na rozkódovanie a zakódovanie do&amp;amp;nbsp;binárnych formátov (napr. PNG, JPEG). Kompletná špecifikácia v [9].&lt;br /&gt;
&lt;br /&gt;
=====Desktop API=====&lt;br /&gt;
Desktop API poskytuje rozhranie pre prístup k desktopovým funkciám, ako je vytváranie ikon. V&amp;amp;nbsp;kóde 2.5 je zobrazená funkcia ''createShortcut'', ktorá vytvorí ikony na ploche a paneli nástrojov.&lt;br /&gt;
&lt;br /&gt;
Kód 2.5 Ukážka práce s&amp;amp;nbsp;Desktop API &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var desktop = google.gears.factory.create('beta.desktop');&lt;br /&gt;
function createShortcut() {&lt;br /&gt;
      var desktop = google.gears.factory.create(&amp;quot;beta.desktop&amp;quot;);&lt;br /&gt;
      var description = &amp;quot;Vytvorenie ikonky ROZVRHU.&amp;quot;;&lt;br /&gt;
      var icons = {&lt;br /&gt;
           &amp;quot;16x16&amp;quot;: &amp;quot;16icon.png&amp;quot;&lt;br /&gt;
           &amp;quot;32x32&amp;quot;: &amp;quot;32icon.png&amp;quot;,&lt;br /&gt;
           &amp;quot;48x48&amp;quot;: &amp;quot;48icon.png&amp;quot;,&lt;br /&gt;
           &amp;quot;128x128&amp;quot;: &amp;quot;128icon.png&amp;quot;&lt;br /&gt;
      };&lt;br /&gt;
      desktop.createShortcut(&amp;quot;Rozvrh Fakulty Mechatroniky&amp;quot;,  &lt;br /&gt;
           &amp;quot; http://priklad.sk/index.html&amp;quot;,  &lt;br /&gt;
            icons,  &lt;br /&gt;
            description); &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
V&amp;amp;nbsp;tabuľke 2.6 je výpis metód triedy ''Desktop.'' Kompletná špecifikácia v [10].&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.6 Opis metód triedy ''Desktop''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Desktop&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''Metóda: '''&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|createShortcut(name, url, icons, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;description&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name - meno odkazu&amp;lt;br&amp;gt;url - adresa dokumentu,  ktorý sa má otvoriť&amp;lt;br&amp;gt;icons – Objekt obsahujúci jednu alebo viac hodnôt v tvare:&amp;lt;br&amp;gt;rozmer : URL ikony&amp;lt;br&amp;gt;Napr.'' &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;128x128&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;: &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;http://priklad. sk/icon128x128.png&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;''&amp;lt;br&amp;gt;descriptions – nepovinný parameter. Text sa zobrazí v potvrdzovacom dialógu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vytvorí desktopový odkaz na spustenie aplikácie&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&amp;lt;br clear=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Geolocation API=====&lt;br /&gt;
Geolocation API umožňuje webovej aplikácii získať používateľa geografickú polohu. Kompletnú špecifikáciu nájdete v [11].&lt;br /&gt;
&lt;br /&gt;
=====HttpRequest API=====&lt;br /&gt;
HttpRequest API implementuje podskupinu XmlHttpRequest W3C špecifikácie. Gears poskytuje vlastný HttpRequest objekt. Obsahuje väčšinu vlastností. Kompletnú špecifikáciu nájdete v [12].&lt;br /&gt;
&lt;br /&gt;
=====Timer API=====&lt;br /&gt;
Obsahuje metódy, ktoré umožnia nastaviť vykonanie skriptov s&amp;amp;nbsp;časovým oneskorením a&amp;amp;nbsp;podobne. Kompletnú špecifikáciu nájdete v [13].&lt;br /&gt;
&lt;br /&gt;
====Podpora Google Gears v&amp;amp;nbsp;operačných systémoch a prehliadačoch====&lt;br /&gt;
Funkčnosť Google Gears je overená na nasledujúcich platformách a&amp;amp;nbsp;prehliadačoch [14]:&lt;br /&gt;
&lt;br /&gt;
* Apple Mac OS X (10.4 alebo vyššia, G4, G5 or Intel Processor)&lt;br /&gt;
* Firefox 1.5 alebo vyššia&lt;br /&gt;
* Safari 3.1.1 alebo vyššia (OS X Tiger 10.4.11&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; alebo Leopard 10.5.3&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;, G4, G5 alebo Intel Processor)&lt;br /&gt;
* Linux&lt;br /&gt;
* Firefox 1.5 alebo vyššia&lt;br /&gt;
* Microsoft Windows (XP alebo vyššia)&lt;br /&gt;
* Firefox 1.5 alebo vyššia&lt;br /&gt;
* Internet Explorer 6 alebo vyššia&lt;br /&gt;
* Google Chrome&lt;br /&gt;
* Microsoft Windows Mobile (5 alebo vyššia)&lt;br /&gt;
* Internet Explorer 4.01 alebo vyššia&lt;br /&gt;
* Opera Mobile 9.51 (Presto build 2.1.0&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;) (Windows Mobile 6 len pre dotykové zariadenia)&lt;br /&gt;
* &amp;amp;nbsp;Nasledovné zariadenia nie sú podporované&lt;br /&gt;
* Samsung i320 a i320N&lt;br /&gt;
* Orange SPV C600&lt;br /&gt;
* Motorola Q&lt;br /&gt;
* Android 1.0&lt;br /&gt;
====Umiestnenie dát na disku====&lt;br /&gt;
Umiestnenie dát webovej aplikácie na disku záleží na platforme a&amp;amp;nbsp;internetovom prehliadači.&lt;br /&gt;
&lt;br /&gt;
'''Windows Vista - Internet Explorer'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: &amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;FOLDERID_LocalAppDataLow&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;\Google\Google Gears for Internet Explorer&amp;lt;br&amp;gt;Príklad: C:\Users\Bob\AppData\LocalLow\Google\Google Gears for Internet Explorer&lt;br /&gt;
&lt;br /&gt;
'''Windows Vista - Firefox'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: C:\Users\&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;username&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;\AppData\Local\Mozilla\Firefox\Profiles\&amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;profile&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;.default\Google Gears for Firefox &amp;lt;br&amp;gt;Príklad: C:\Users\Bob\AppData\Local\Mozilla\Firefox\Profiles\uelib44s.default\Google Gears for Firefox&lt;br /&gt;
&lt;br /&gt;
'''Windows Vista - Chrome'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: C:\Users\&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;username&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;\AppData\Local\Google\Chrome\User Data\Default\Plugin Data\Google Gears&amp;lt;br&amp;gt;Príklad: C:\Users\Bob\AppData\Local\Google\Chrome\User Data\Default\Plugin Data\Google Gears&lt;br /&gt;
&lt;br /&gt;
'''Mac OS X - Safari'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: &amp;lt;nowiki&amp;gt;~&amp;lt;/nowiki&amp;gt;/Library/Application Support/Google/Google Gears for Safari&amp;lt;br&amp;gt;Príklad: /Users/Bob/Library/Application Support/Google/Google Gears for Safari&lt;br /&gt;
&lt;br /&gt;
'''Linux - Firefox'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: &amp;lt;nowiki&amp;gt;~&amp;lt;/nowiki&amp;gt;''bob''/.mozilla/firefox/&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;firefox&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;s profile id&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;/Google Gears for Firefox &amp;lt;br&amp;gt;Príklad: &amp;lt;nowiki&amp;gt;~&amp;lt;/nowiki&amp;gt;bob/.mozilla/firefox/08ywpi3q.default/Google Gears for Firefox&lt;br /&gt;
&lt;br /&gt;
====Využitie Google Gears====&lt;br /&gt;
Ako prvá začala Google Gears využívať firma Google vo svojej čítačke kanálov Google Reader. V&amp;amp;nbsp;režime off-line umožňuje prehliadať až 2000 príspevkov. Postupne sa podpora pre&amp;amp;nbsp;toto rozšírenie pridala aj do mailovej služby Gmail a on-line kancelárskeho balíka Google Docs.&lt;br /&gt;
&lt;br /&gt;
Ďalšie webové služby využívajúce Google Gears:&lt;br /&gt;
&lt;br /&gt;
* správca úloh '''rememberthemilk.com,'''&lt;br /&gt;
* sociálna služba '''myspace.com,'''&lt;br /&gt;
* on-line správca hesiel '''passpack.com,'''&lt;br /&gt;
* nástroj pre riadenie projektov''' mindmeister.com,'''&lt;br /&gt;
* open-source redakčný systém '''wordpress.net''' a ďalší.&lt;br /&gt;
===HTML5===&lt;br /&gt;
&lt;br /&gt;
HTML5 [15] je najnovšia špecifikácia značkovacieho jazyka HTML vyvíjaná medzinárodným združením W3C (World Wide Web Consortium). Najdôležitejšou zmenou v&amp;amp;nbsp;novej verzií je samotná&amp;amp;nbsp;štruktúra&amp;amp;nbsp;HTML dokumentu, veľké množstvo nových elementov a&amp;amp;nbsp;aj podpora off-line web aplikácií. Pretože Google sa snaží dodržiavať štandardy, zastavil vývoj Google Gears a&amp;amp;nbsp;svoju iniciatívu smeruje na HTML5. Je možné, že podpora off-line aplikácií bude mať v novej špecifikácií aj niektoré rysy, ktoré poznáme z Google Gears. V&amp;amp;nbsp;súčasnosti je stále HTML 5 vo&amp;amp;nbsp;fáze vývoja. Dokončenie je plánované na rok 2012. Niekoľko rokov však potrvá jeho úplná podpora vo väčšine prehliadačoch. Prehliadače ako napríklad Firefox podporujú už väčšiu časť nových prvkov HTML5. V&amp;amp;nbsp;našom prehľade sú&amp;amp;nbsp;zaujímavé SQL API a&amp;amp;nbsp;Cache API, ktoré majú poskytovať rovnakú funkcionalitu ako Google Gears.&lt;br /&gt;
&lt;br /&gt;
====Elementy štruktúry====&lt;br /&gt;
Doposiaľ bola štruktúra HTML dokumentu tvorená z&amp;amp;nbsp;''div ''elementov. HTML5 pridáva nové elementy k&amp;amp;nbsp;identifikácií každého z&amp;amp;nbsp;nich. Tieto majú presne stanovený sémantický význam a&amp;amp;nbsp;lepšie sa v nich orientuje aj samotný programátor.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.7 Zoznam nových sémantických elementov štruktúry HTML5&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|section&lt;br /&gt;
|Všeobecná (často nadradená) časť,  ktorá môže združovať ostatné časti stránky. Element DIV, ktorý dostal sémantické meno.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|header&lt;br /&gt;
|Hlavička časti, v ktorej je začlenená.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|footer&lt;br /&gt;
|Pätička časti, v ktorej je začlenená.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|nav&lt;br /&gt;
|Časť stránky,  ktorá obsahuje odkazy na ostatné stránky alebo časti danej stránky.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|article&lt;br /&gt;
|Časť stránky,  ktorá obsahuje text nezávislý od ostatných dielov stránky.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Elementy multimédií====&lt;br /&gt;
Zaujímavých zmien sa dočkala aj podpora multimédií (zvuk, video). Tieto sa na webe neskutočne rýchlo rozšírili (hlavne jednoduchým šírením pomocou stránok youtube.com a&amp;amp;nbsp;podobne). Preto sú v&amp;amp;nbsp;novej verzií HTML5 prístupné tagy&amp;amp;nbsp;''&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;video&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;''&amp;amp;nbsp;a ''&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;audio&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;.''&lt;br /&gt;
&lt;br /&gt;
Element ''&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;canvas&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;'' reprezentuje 2D kresliacu plochu ovládanú javaskriptom, ktorú môžete využívať, napr. na kreslenie grafov, grafických prvkov v hrách a prezentáciách.&lt;br /&gt;
&lt;br /&gt;
====Inline elementy====&lt;br /&gt;
HTML5 zavádza nové elementy, ktoré majú pomôcť uviesť základné prvky, ako je čas alebo čísla.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.8 Zoznam  nových inline elementov HTML5&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|mark&lt;br /&gt;
|Označenie textu.&amp;amp;nbsp;Slúži napríklad na označenie hľadaného slová v zozname výsledkov&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|time&lt;br /&gt;
|Označuje čas alebo dátum v bloku textu.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|meter&lt;br /&gt;
|Predstavuje skalárne meradlá.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|progress&lt;br /&gt;
|Reprezentuje pokrok v&amp;amp;nbsp;dokončení úlohy. Môže byť použitý pre vizuálne zobrazenie.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Podpora režimu off-line====&lt;br /&gt;
S novou špecifikáciou jazyka HTML 5 prichádza aj podpora off-line aplikácií. K&amp;amp;nbsp;dispozícií máme SQL API a&amp;amp;nbsp;Cache API, ktorá je obdobou LocalServer API.&lt;br /&gt;
&lt;br /&gt;
=====SQL API=====&lt;br /&gt;
SQL databáza na strane klienta umožní štruktúrované dátové úložisko. API pracuje s&amp;amp;nbsp;touto databázou asynchrónne. To znamená, že používateľské prostredie nebude blokované vykonávaním synchrónneho požiadavku.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.9 Zoznam metód návrhu HTML5&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Object openDatabase(dbname, dbversion, displayname, size)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vytvára databázový objekt podľa zvolených parametrov&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|dbname – meno databázy&amp;lt;br&amp;gt;dbversion – verzia databázy&amp;lt;br&amp;gt;displayname – zobrazený názov databázy&amp;lt;br&amp;gt;size – predpokladaná veľkosť databázy v bajtoch&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ďalšie Metódy: &lt;br /&gt;
|transaction(), executeSql()&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====LocalStorage API=====&lt;br /&gt;
Dáta na lokálnom disku bude reprezentovať objekt ''localStorage.''&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.10 Zoznam niektorých metód pre prácu s&amp;amp;nbsp;lokálnym úložiskom&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Opis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|clear()&lt;br /&gt;
|zmaže celý obsah objektu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|getItem()&lt;br /&gt;
|získa obsah objektu podľa názvu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|key()&lt;br /&gt;
|získa kľúč podľa čísla&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|length&lt;br /&gt;
|Počet uložených kľúčov&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|removeItem()&lt;br /&gt;
|odstráni položku podľa jej mena&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|setItem()&lt;br /&gt;
|Pridá hodnotu položke&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_08.png&amp;diff=6877</id>
		<title>Súbor:Bakalarka dušan pagáč 2 2 FINAL 08.png</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_08.png&amp;diff=6877"/>
		<updated>2010-09-05T12:08:23Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_07.png&amp;diff=6876</id>
		<title>Súbor:Bakalarka dušan pagáč 2 2 FINAL 07.png</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=S%C3%BAbor:Bakalarka_du%C5%A1an_pag%C3%A1%C4%8D_2_2_FINAL_07.png&amp;diff=6876"/>
		<updated>2010-09-05T12:08:10Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Technol%C3%B3gie_off-line_web_aplik%C3%A1ci%C3%AD&amp;diff=6875</id>
		<title>Technológie off-line web aplikácií</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Technol%C3%B3gie_off-line_web_aplik%C3%A1ci%C3%AD&amp;diff=6875"/>
		<updated>2010-09-05T11:55:47Z</updated>

		<summary type="html">&lt;p&gt;Dusan: /*  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:php]]&lt;br /&gt;
[[Kategória:web]]&lt;br /&gt;
{{Hlavička_FM|{{PAGENAME}}|Dušan Pagáč|Ing. Juraj Ďuďák|&lt;br /&gt;
2009/2010&lt;br /&gt;
|Semetrálna práca|Mechatronika}} &lt;br /&gt;
{{Praca_uvod|2|Off-line funkcionalita on-line web aplikácií|Štruktúra webovej aplikácie|Technológie off-line web aplikácií|Systémy na vizualizáciu rozvrhu hodín|Návrh používateľského rozhrania rozvrhu FM TnUAD}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Technológie off-line web aplikácií==&lt;br /&gt;
V&amp;amp;nbsp;súčasnosti je dostupných niekoľko technológií, ktoré podporujú off-line aplikácie:&lt;br /&gt;
&lt;br /&gt;
* Google Gears&lt;br /&gt;
* HTML5&lt;br /&gt;
Nová špecifikácia HTML5 je zatiaľ vo vývoji a&amp;amp;nbsp;má byť dokončená v&amp;amp;nbsp;roku 2012. Niektoré jej možnosti sú už dnes podporované vo väčšine prehliadačoch.&lt;br /&gt;
&lt;br /&gt;
===Google Gears===&lt;br /&gt;
Google Gears [1] je open-source projekt of firmy Google. Pridaním nových funkcií do&amp;amp;nbsp;prehliadača dokáže sprístupniť webovú aplikáciu aj v&amp;amp;nbsp;režime off-line. Používateľovi stačí nainštalovať rozšírenie (Obr. 2.1) do svojho prehliadača a&amp;amp;nbsp;následne povoliť (Obr. 2.2) prístup konkrétnej webovej lokalite pre použitie&amp;amp;nbsp;tohto rozšírenia.&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_07.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 2.1 Zobrazenie rozšírenia Google Gears v&amp;amp;nbsp;správe rozšírení prehliadača Firefox&lt;br /&gt;
&lt;br /&gt;
[[Image:bakalarka_dušan_pagáč_2_2_FINAL_08.png|framed|none]]&lt;br /&gt;
&lt;br /&gt;
Obr 2.2 Povolenia rozšírenia pre webovú lokalitu (localhost)&lt;br /&gt;
&lt;br /&gt;
====Moduly Google Gears====&lt;br /&gt;
S rozšírením Google Gears získame tri nezávislé moduly: lokálny server, databáza, spracovanie kódu na pozadí. Každý z&amp;amp;nbsp;nich vylepšuje nejaký aspekt programovania webovej aplikácie na strane klienta prostredníctvom konkrétneho modulu.&lt;br /&gt;
&lt;br /&gt;
'''Lokálny server'''&lt;br /&gt;
&lt;br /&gt;
Modul lokálny server (''LocalServer'') umožňuje aplikácii uložiť a&amp;amp;nbsp;používať jeho HTTP zdroje lokálne bez pripojenia k&amp;amp;nbsp;sieti. Je to špecializovaná vyrovnávacia pamäť. Požiadavky na URL vo vyrovnávacej pamäti lokálneho servera sú zachytené a&amp;amp;nbsp;obslúžené lokálne priamo z&amp;amp;nbsp;disku používateľa.&lt;br /&gt;
&lt;br /&gt;
'''Databáza'''&lt;br /&gt;
&lt;br /&gt;
Databázový modul (''Database'') poskytuje open-source databázový systém SQLite. Databázové API slúži k&amp;amp;nbsp;neustálemu ukladaniu používateľských dát. Pre dáta uložené v&amp;amp;nbsp;lokálnej databáze je definovaná bezpečnostná politika, ktorá web aplikácii nedovolí prístup mimo jej domény.&lt;br /&gt;
&lt;br /&gt;
'''Spracovanie kódu na pozadí'''&lt;br /&gt;
&lt;br /&gt;
Skript časovo náročný na spracovanie, ako napríklad zložitý výpočet, môže spôsobiť, že&amp;amp;nbsp;používateľské prostredie nereaguje. Technika spracovania kódu na pozadí (''WorkerPool API'') dovoľuje web aplikácii spustiť javaskriptový kód na pozadí bez blokovania vykonávania ostatných skriptov na stránke.&lt;br /&gt;
&lt;br /&gt;
====Google Gears API====&lt;br /&gt;
S&amp;amp;nbsp;modulmi Google Gears API pracujeme pomocou metód aplikačného rozhrania. Pre prístup k&amp;amp;nbsp;nim musíme do aplikácie zahrnúť súbor ''gears_init.js'', ktorý sa nachádza na adrese ''http://code.google.com/intl/sk/apis/gears/gears_init.js''. V&amp;amp;nbsp;nasledujúcom texte budú opísané všetky moduly Google Gears API.&lt;br /&gt;
&lt;br /&gt;
=====Factory API=====&lt;br /&gt;
Trieda ''Factory'' je použitá na vytvorenie inštancií všetkých Gears objektov. Vytvorenie tejto inštancie (Kód 2.1) je povinné.&lt;br /&gt;
&lt;br /&gt;
Kód 2.1 Volanie metódy ''create'''' ''triedy'' factory''&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;gears_init.js&amp;quot;&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;/script&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;script type=&amp;quot;text/javascript&amp;quot;&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;    if (window.google &amp;amp;&amp;amp; google.gears) &amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;        var db = google.gears.factory.create(&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;beta.database&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;);&amp;lt;br&amp;gt;    &amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;/script&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Na to aby sme vytvorili inštanciu triedy ''Factory, ''je potrebné mať nainštalované samotné rozšírenie Google Gears. Existenciu tohto rozšírenia overíme pomocou kontroly globálnych objektov ''window.google'' a ''google.gears''. V&amp;amp;nbsp;skripte ''gears_init.js'' je definovaný objekt ''google.gears.factory''. Metóda ''create'' triedy ''factory'' vytvorí objekt danej triedy s parametrom ''className''. Parameter ''className ''je typ objektu, ktorý sa má vytvoriť. Kompletná špecifikácia je triedy ''Factory'' je v [2].&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.1 Opis metód triedy'' Factory''''.'' &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;factory&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Object''' create(className, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;classVersion&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vytvára Gears objekt danej triedy&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|className – typ objektu,  ktorý sa má vytvoriť&amp;lt;br&amp;gt;classVersion – parameter sa už nepoužíva, prípadne jeho hodnota &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;1.0&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Detaily:&lt;br /&gt;
|Podporované hodnoty parametru className:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|className&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Vytvorenie Gears triedy&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.blobbuilder&lt;br /&gt;
|BlobBuilder&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.canvas&lt;br /&gt;
|Canvas&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.database&lt;br /&gt;
|Database&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.desktop&lt;br /&gt;
|Desktop&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.geolocation&lt;br /&gt;
|Geolocation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.httprequest&lt;br /&gt;
|HttpRequest&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.localserver&lt;br /&gt;
|LocalServer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.timer&lt;br /&gt;
|Timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|beta.workerpool&lt;br /&gt;
|WorkerPool&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====LocalServer API=====&lt;br /&gt;
Na správu vyrovnávacej pamäti sú dostupné dve triedy:&lt;br /&gt;
&lt;br /&gt;
'''''ResourceStore'' '''– povoľuje zachytávať dáta (obrázky, PDF súbor), ktoré sú adresované s URL.&lt;br /&gt;
&lt;br /&gt;
'''''ManagedResourceStore''''' – zoznam URL odkazov na súbory, ktoré budú dostupné off-line, sú&amp;amp;nbsp;v&amp;amp;nbsp;súbore ''manifest.'' Pomocou tejto triedy môžeme zabezpečiť aplikácii všetky dáta, ktoré bude potrebovať. Výhoda takéhoto riešenia je v automatickej aktualizácií pri zmene súboru ''manifest''. Príklad použitia je v&amp;amp;nbsp;kóde 2.2.&lt;br /&gt;
&lt;br /&gt;
Kód 2.2 Príklad použitia metódy ''createManagedStor''''e''&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;gears_init.js&amp;quot;&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;/script&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;script type=&amp;quot;text/javascript&amp;quot;&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;    var localServer = google.gears.factory.create(&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;beta.localserver&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;);&amp;lt;br&amp;gt;    var store = localServer.createManagedStore(&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;test-store&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;);&amp;lt;br&amp;gt;    store.manifestUrl = &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;manifest.txt&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;;&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;/script&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Odkazy na súbory uvedené v&amp;amp;nbsp;súbore'' manifest'' (Kód 2.3) sa pri synchronizácií skopírujú na&amp;amp;nbsp;lokálny disk.&lt;br /&gt;
&lt;br /&gt;
Kód 2.3 Výpis súboru ''manifest.tx''''t''&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;    &amp;quot;betaManifestVersion&amp;quot;: 1,&amp;lt;br&amp;gt;    &amp;quot;version&amp;quot;: &amp;quot;1.0&amp;quot;,&amp;lt;br&amp;gt;    &amp;quot;entries&amp;quot;: &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;        &amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt; &amp;quot;url&amp;quot;: &amp;quot;index.html&amp;quot; &amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;,&amp;lt;br&amp;gt;        &amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt; &amp;quot;url&amp;quot;: &amp;quot;gears_init.js&amp;quot; &amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;    &amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;V&amp;amp;nbsp;tabuľke 2.2 je výpis metód triedy ''LocalServer. ''Kompletná špecifikácia je v [3].&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.2 Metódy triedy ''LocalServer''. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;LocalServer&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''createManagedStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ManagedResourceStore &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ManagedResourceStore alebo vytvorí novú, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''openManagedStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ManagedResourceStore &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ManagedResourceStore alebo vráti null, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' removeManagedStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Odstráni  ManagedResourceStore a&amp;amp;nbsp;odstráni všetky jej URL z&amp;amp;nbsp;lokálnej&amp;lt;br&amp;gt;vyrovnávacej pamäti&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''createStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ResourceStore&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ResourceStore alebo vytvorí novú, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''openStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ResourceStore&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí existujúcu  ResourceStore alebo vráti null, ak žiadna taká neexistuje&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' removeStore(string name, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;string requiredCookie&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – reťazec identifikujúci úložný priestor&amp;lt;br&amp;gt;requiredCookie – nepovinný parameter identifikujúci jedinečnosť úložného priestoru&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Odstráni  ResourceStore a&amp;amp;nbsp;odstráni a&amp;amp;nbsp;celý jeho obsah&amp;lt;br&amp;gt;vyrovnávacej pamäti&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Database API=====&lt;br /&gt;
Database API je aplikačné rozhranie pre prácu s&amp;amp;nbsp;lokálnou databázou SQLite[4]. SQLite je&amp;amp;nbsp;knižnica, ktorá implementuje relačnú databázu bez potreby servera.&lt;br /&gt;
&lt;br /&gt;
Kód 2.4 Príklad práce s&amp;amp;nbsp;lokálnou databázou&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;'''gears_init.js'''&amp;quot;&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;/script&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;script type=&amp;quot;text/javascript&amp;quot;&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;var db = google.gears.factory.create(&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;beta.database&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;);&amp;lt;br&amp;gt;db.open(&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;moja-databaza);&amp;lt;br&amp;gt;db.execute(&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;create table if not exists Zoznam&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;           &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt; (Meno text, Vek int)&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;);&amp;lt;br&amp;gt;db.execute(&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;insert into Zoznam values (?, ?)&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;[’&amp;lt;/nowiki&amp;gt;Peter&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;22&amp;lt;nowiki&amp;gt;’]&amp;lt;/nowiki&amp;gt;);&amp;lt;br&amp;gt;var rs = db.execute(&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;select * from Zoznam order by Vek desc&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;);&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;rs.close();&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;/script&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;V&amp;amp;nbsp;kóde 2.2 je ukážka vytvorenia tabuľky v&amp;amp;nbsp;lokálnej databáze. Metóda ''execute'' vykoná SQL dopyt na databázu. Pri ukončení práce s&amp;amp;nbsp;databázou je doporučené použitie metódy ''close''. V&amp;amp;nbsp;tabuľke 2.3 je výpis metód triedy ''Database.'' Kompletná špecifikácia je v [5].&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.3 Opis metód triedy'' Database''''.'' &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Database&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''Metóda: '''&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' open(&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;name&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name – voliteľný&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Otvorí databázu&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''execute(sqlStatement, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;argArray&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|sqlStatement – reťazec obsahujúci SQL príkaz, so znakom &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;'''?''' &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;''' '''ako''' '''zástupný symbol  previazaný s parametrami&amp;lt;br&amp;gt;argArray – voliteľné pole parametrov,  ktoré nahradia symboly &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;'''?''' &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|ResultSet&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vykoná SQL príkazy.  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void '''close()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Ukončí spojenie s&amp;amp;nbsp;databázou. Volanie database.close()  nie je potrebné&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void''' remove()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Zmaže práve otvorenú databázu.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Metóda ''database.execute ''po úspešnom volaní vráti objekt triedy ''ResultSet.'' Obsahuje výsledky vykonaných SQL príkazov.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.4 Opis metód triedy'' ResultSe''''t''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;ResultSet&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|boolean '''isValidRow()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti true, ak môžete volať metódy na extrakciu dát&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void '''next()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Pokračuje na ďalší riadok výsledkov  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|void '''close()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Je potrebné zavolať metodu close(), ak sme skončili s&amp;amp;nbsp;prácou s výsledkami&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.5 Opis metód na extrakciu dát&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot; &amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;colspan = &amp;quot;2&amp;quot;|'''Metódy na extrakciu dát'''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Int '''fieldCount()'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti počet polí výsledku&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|string '''fieldName(int fieldIndex)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|fieldIndex – index požadovaného pola&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti meno špecifikovaného pola.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''field(int fieldIndex)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|fieldIndex – index požadovaného pola&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|rôzne&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti obsah špecifikovaného pola v aktuálnom riadku&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''fieldByName(string fieldName)'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|fieldName – názov požadovaného pola&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Návratová hodnota:&lt;br /&gt;
|rôzne&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vráti obsah špecifikovaného pola v aktuálnom riadku&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====WorkerPool API=====&lt;br /&gt;
Aplikačné rozhranie, ktoré umožňuje spracovávať javaskriptový kód na pozadí. Vďaka tomu neblokuje vykonávanie ďalších skriptov. Kompletná špecifikácia v [6].&lt;br /&gt;
&lt;br /&gt;
=====Blob API=====&lt;br /&gt;
Pomocou objektov typu ''Blob ''môžeme odkazovať na binárne dáta vo webových aplikáciách. Kompletná špecifikácia v [7].&lt;br /&gt;
&lt;br /&gt;
=====BlobBuilder API=====&lt;br /&gt;
''BlobBuilder'' je pomocný objekt pre vytváranie objektov typu ''Blob.  Blob ''je nemenný, read-only object, rovnaký ako reťazec v&amp;amp;nbsp;Javascripte. ''BlobBuilder'' je používaný na&amp;amp;nbsp;generovanie ''Blobu'' s&amp;amp;nbsp;novým obsahom. Kompletná špecifikácia v [8].&lt;br /&gt;
&lt;br /&gt;
=====Canvas API=====&lt;br /&gt;
Prostredníctvom tejto API môžeme pracovať s&amp;amp;nbsp;obrázkami pomocou javaskriptu. Táto grafická API je inšpirovaná HTML5 canvasom. Obsahuje metódy na rozkódovanie a zakódovanie do&amp;amp;nbsp;binárnych formátov (napr. PNG, JPEG). Kompletná špecifikácia v [9].&lt;br /&gt;
&lt;br /&gt;
=====Desktop API=====&lt;br /&gt;
Desktop API poskytuje rozhranie pre prístup k desktopovým funkciám, ako je vytváranie ikon. V&amp;amp;nbsp;kóde 2.5 je zobrazená funkcia ''createShortcut'', ktorá vytvorí ikony na ploche a paneli nástrojov.&lt;br /&gt;
&lt;br /&gt;
Kód 2.5 Ukážka práce s&amp;amp;nbsp;Desktop API &lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|var desktop = google.gears.factory.create(&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;beta.desktop&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;);&amp;lt;br&amp;gt;function createShortcut() &amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;      var desktop = google.gears.factory.create(&amp;quot;beta.desktop&amp;quot;);&amp;lt;br&amp;gt;      var description = &amp;quot;Vytvorenie ikonky ROZVRHU.&amp;quot;;&amp;lt;br&amp;gt;      var icons = &amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;           &amp;quot;16x16&amp;quot;: &amp;quot;16icon.png&amp;quot;&amp;lt;br&amp;gt;           &amp;quot;32x32&amp;quot;: &amp;quot;32icon.png&amp;quot;,&amp;lt;br&amp;gt;           &amp;quot;48x48&amp;quot;: &amp;quot;48icon.png&amp;quot;,&amp;lt;br&amp;gt;           &amp;quot;128x128&amp;quot;: &amp;quot;128icon.png&amp;quot;&amp;lt;br&amp;gt;      &amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;;&amp;lt;br&amp;gt;      desktop.createShortcut(&amp;quot;Rozvrh Fakulty Mechatroniky&amp;quot;,&amp;lt;br&amp;gt;           &amp;quot; http://priklad.sk/index.html&amp;quot;,&amp;lt;br&amp;gt;            icons,&amp;lt;br&amp;gt;            description);&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
V&amp;amp;nbsp;tabuľke 2.6 je výpis metód triedy ''Desktop.'' Kompletná špecifikácia v [10].&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.6 Opis metód triedy ''Desktop''&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Trieda: &amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#a3d1e4&amp;quot;|&amp;lt;font color=&amp;quot;#000000&amp;quot;&amp;gt;Desktop&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|'''Metóda: '''&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|createShortcut(name, url, icons, &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;description&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|name - meno odkazu&amp;lt;br&amp;gt;url - adresa dokumentu,  ktorý sa má otvoriť&amp;lt;br&amp;gt;icons – Objekt obsahujúci jednu alebo viac hodnôt v tvare:&amp;lt;br&amp;gt;rozmer : URL ikony&amp;lt;br&amp;gt;Napr.'' &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;128x128&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;: &amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;http://priklad. sk/icon128x128.png&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;''&amp;lt;br&amp;gt;descriptions – nepovinný parameter. Text sa zobrazí v potvrdzovacom dialógu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vytvorí desktopový odkaz na spustenie aplikácie&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&amp;lt;br clear=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Geolocation API=====&lt;br /&gt;
Geolocation API umožňuje webovej aplikácii získať používateľa geografickú polohu. Kompletnú špecifikáciu nájdete v [11].&lt;br /&gt;
&lt;br /&gt;
=====HttpRequest API=====&lt;br /&gt;
HttpRequest API implementuje podskupinu XmlHttpRequest W3C špecifikácie. Gears poskytuje vlastný HttpRequest objekt. Obsahuje väčšinu vlastností. Kompletnú špecifikáciu nájdete v [12].&lt;br /&gt;
&lt;br /&gt;
=====Timer API=====&lt;br /&gt;
Obsahuje metódy, ktoré umožnia nastaviť vykonanie skriptov s&amp;amp;nbsp;časovým oneskorením a&amp;amp;nbsp;podobne. Kompletnú špecifikáciu nájdete v [13].&lt;br /&gt;
&lt;br /&gt;
====Podpora Google Gears v&amp;amp;nbsp;operačných systémoch a prehliadačoch====&lt;br /&gt;
Funkčnosť Google Gears je overená na nasledujúcich platformách a&amp;amp;nbsp;prehliadačoch [14]:&lt;br /&gt;
&lt;br /&gt;
* Apple Mac OS X (10.4 alebo vyššia, G4, G5 or Intel Processor)&lt;br /&gt;
* Firefox 1.5 alebo vyššia&lt;br /&gt;
* Safari 3.1.1 alebo vyššia (OS X Tiger 10.4.11&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; alebo Leopard 10.5.3&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;, G4, G5 alebo Intel Processor)&lt;br /&gt;
* Linux&lt;br /&gt;
* Firefox 1.5 alebo vyššia&lt;br /&gt;
* Microsoft Windows (XP alebo vyššia)&lt;br /&gt;
* Firefox 1.5 alebo vyššia&lt;br /&gt;
* Internet Explorer 6 alebo vyššia&lt;br /&gt;
* Google Chrome&lt;br /&gt;
* Microsoft Windows Mobile (5 alebo vyššia)&lt;br /&gt;
* Internet Explorer 4.01 alebo vyššia&lt;br /&gt;
* Opera Mobile 9.51 (Presto build 2.1.0&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;) (Windows Mobile 6 len pre dotykové zariadenia)&lt;br /&gt;
* &amp;amp;nbsp;Nasledovné zariadenia nie sú podporované&lt;br /&gt;
* Samsung i320 a i320N&lt;br /&gt;
* Orange SPV C600&lt;br /&gt;
* Motorola Q&lt;br /&gt;
* Android 1.0&lt;br /&gt;
====Umiestnenie dát na disku====&lt;br /&gt;
Umiestnenie dát webovej aplikácie na disku záleží na platforme a&amp;amp;nbsp;internetovom prehliadači.&lt;br /&gt;
&lt;br /&gt;
'''Windows Vista - Internet Explorer'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: &amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;FOLDERID_LocalAppDataLow&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;\Google\Google Gears for Internet Explorer&amp;lt;br&amp;gt;Príklad: C:\Users\Bob\AppData\LocalLow\Google\Google Gears for Internet Explorer&lt;br /&gt;
&lt;br /&gt;
'''Windows Vista - Firefox'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: C:\Users\&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;username&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;\AppData\Local\Mozilla\Firefox\Profiles\&amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;profile&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;.default\Google Gears for Firefox &amp;lt;br&amp;gt;Príklad: C:\Users\Bob\AppData\Local\Mozilla\Firefox\Profiles\uelib44s.default\Google Gears for Firefox&lt;br /&gt;
&lt;br /&gt;
'''Windows Vista - Chrome'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: C:\Users\&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;username&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;\AppData\Local\Google\Chrome\User Data\Default\Plugin Data\Google Gears&amp;lt;br&amp;gt;Príklad: C:\Users\Bob\AppData\Local\Google\Chrome\User Data\Default\Plugin Data\Google Gears&lt;br /&gt;
&lt;br /&gt;
'''Mac OS X - Safari'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: &amp;lt;nowiki&amp;gt;~&amp;lt;/nowiki&amp;gt;/Library/Application Support/Google/Google Gears for Safari&amp;lt;br&amp;gt;Príklad: /Users/Bob/Library/Application Support/Google/Google Gears for Safari&lt;br /&gt;
&lt;br /&gt;
'''Linux - Firefox'''&lt;br /&gt;
&lt;br /&gt;
Umiestnenie: &amp;lt;nowiki&amp;gt;~&amp;lt;/nowiki&amp;gt;''bob''/.mozilla/firefox/&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;firefox&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;s profile id&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;/Google Gears for Firefox &amp;lt;br&amp;gt;Príklad: &amp;lt;nowiki&amp;gt;~&amp;lt;/nowiki&amp;gt;bob/.mozilla/firefox/08ywpi3q.default/Google Gears for Firefox&lt;br /&gt;
&lt;br /&gt;
====Využitie Google Gears====&lt;br /&gt;
Ako prvá začala Google Gears využívať firma Google vo svojej čítačke kanálov Google Reader. V&amp;amp;nbsp;režime off-line umožňuje prehliadať až 2000 príspevkov. Postupne sa podpora pre&amp;amp;nbsp;toto rozšírenie pridala aj do mailovej služby Gmail a on-line kancelárskeho balíka Google Docs.&lt;br /&gt;
&lt;br /&gt;
Ďalšie webové služby využívajúce Google Gears:&lt;br /&gt;
&lt;br /&gt;
* správca úloh '''rememberthemilk.com,'''&lt;br /&gt;
* sociálna služba '''myspace.com,'''&lt;br /&gt;
* on-line správca hesiel '''passpack.com,'''&lt;br /&gt;
* nástroj pre riadenie projektov''' mindmeister.com,'''&lt;br /&gt;
* open-source redakčný systém '''wordpress.net''' a ďalší.&lt;br /&gt;
===HTML5===&lt;br /&gt;
&lt;br /&gt;
HTML5 [15] je najnovšia špecifikácia značkovacieho jazyka HTML vyvíjaná medzinárodným združením W3C (World Wide Web Consortium). Najdôležitejšou zmenou v&amp;amp;nbsp;novej verzií je samotná&amp;amp;nbsp;štruktúra&amp;amp;nbsp;HTML dokumentu, veľké množstvo nových elementov a&amp;amp;nbsp;aj podpora off-line web aplikácií. Pretože Google sa snaží dodržiavať štandardy, zastavil vývoj Google Gears a&amp;amp;nbsp;svoju iniciatívu smeruje na HTML5. Je možné, že podpora off-line aplikácií bude mať v novej špecifikácií aj niektoré rysy, ktoré poznáme z Google Gears. V&amp;amp;nbsp;súčasnosti je stále HTML 5 vo&amp;amp;nbsp;fáze vývoja. Dokončenie je plánované na rok 2012. Niekoľko rokov však potrvá jeho úplná podpora vo väčšine prehliadačoch. Prehliadače ako napríklad Firefox podporujú už väčšiu časť nových prvkov HTML5. V&amp;amp;nbsp;našom prehľade sú&amp;amp;nbsp;zaujímavé SQL API a&amp;amp;nbsp;Cache API, ktoré majú poskytovať rovnakú funkcionalitu ako Google Gears.&lt;br /&gt;
&lt;br /&gt;
====Elementy štruktúry====&lt;br /&gt;
Doposiaľ bola štruktúra HTML dokumentu tvorená z&amp;amp;nbsp;''div ''elementov. HTML5 pridáva nové elementy k&amp;amp;nbsp;identifikácií každého z&amp;amp;nbsp;nich. Tieto majú presne stanovený sémantický význam a&amp;amp;nbsp;lepšie sa v nich orientuje aj samotný programátor.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.7 Zoznam nových sémantických elementov štruktúry HTML5&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|section&lt;br /&gt;
|Všeobecná (často nadradená) časť,  ktorá môže združovať ostatné časti stránky. Element DIV, ktorý dostal sémantické meno.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|header&lt;br /&gt;
|Hlavička časti, v ktorej je začlenená.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|footer&lt;br /&gt;
|Pätička časti, v ktorej je začlenená.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|nav&lt;br /&gt;
|Časť stránky,  ktorá obsahuje odkazy na ostatné stránky alebo časti danej stránky.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|article&lt;br /&gt;
|Časť stránky,  ktorá obsahuje text nezávislý od ostatných dielov stránky.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Elementy multimédií====&lt;br /&gt;
Zaujímavých zmien sa dočkala aj podpora multimédií (zvuk, video). Tieto sa na webe neskutočne rýchlo rozšírili (hlavne jednoduchým šírením pomocou stránok youtube.com a&amp;amp;nbsp;podobne). Preto sú v&amp;amp;nbsp;novej verzií HTML5 prístupné tagy&amp;amp;nbsp;''&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;video&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;''&amp;amp;nbsp;a ''&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;audio&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;.''&lt;br /&gt;
&lt;br /&gt;
Element ''&amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;canvas&amp;lt;nowiki&amp;gt;&amp;gt;&amp;lt;/nowiki&amp;gt;'' reprezentuje 2D kresliacu plochu ovládanú javaskriptom, ktorú môžete využívať, napr. na kreslenie grafov, grafických prvkov v hrách a prezentáciách.&lt;br /&gt;
&lt;br /&gt;
====Inline elementy====&lt;br /&gt;
HTML5 zavádza nové elementy, ktoré majú pomôcť uviesť základné prvky, ako je čas alebo čísla.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.8 Zoznam  nových inline elementov HTML5&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|mark&lt;br /&gt;
|Označenie textu.&amp;amp;nbsp;Slúži napríklad na označenie hľadaného slová v zozname výsledkov&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|time&lt;br /&gt;
|Označuje čas alebo dátum v bloku textu.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|meter&lt;br /&gt;
|Predstavuje skalárne meradlá.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|progress&lt;br /&gt;
|Reprezentuje pokrok v&amp;amp;nbsp;dokončení úlohy. Môže byť použitý pre vizuálne zobrazenie.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Podpora režimu off-line====&lt;br /&gt;
S novou špecifikáciou jazyka HTML 5 prichádza aj podpora off-line aplikácií. K&amp;amp;nbsp;dispozícií máme SQL API a&amp;amp;nbsp;Cache API, ktorá je obdobou LocalServer API.&lt;br /&gt;
&lt;br /&gt;
=====SQL API=====&lt;br /&gt;
SQL databáza na strane klienta umožní štruktúrované dátové úložisko. API pracuje s&amp;amp;nbsp;touto databázou asynchrónne. To znamená, že používateľské prostredie nebude blokované vykonávaním synchrónneho požiadavku.&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.9 Zoznam metód návrhu HTML5&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Object openDatabase(dbname, dbversion, displayname, size)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Opis:&lt;br /&gt;
|Vytvára databázový objekt podľa zvolených parametrov&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Parametre:&lt;br /&gt;
|dbname – meno databázy&amp;lt;br&amp;gt;dbversion – verzia databázy&amp;lt;br&amp;gt;displayname – zobrazený názov databázy&amp;lt;br&amp;gt;size – predpokladaná veľkosť databázy v bajtoch&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ďalšie Metódy: &lt;br /&gt;
|transaction(), executeSql()&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====LocalStorage API=====&lt;br /&gt;
Dáta na lokálnom disku bude reprezentovať objekt ''localStorage.''&lt;br /&gt;
&lt;br /&gt;
Tabuľka 2.10 Zoznam niektorých metód pre prácu s&amp;amp;nbsp;lokálnym úložiskom&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;600px&amp;quot;&lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Metóda: &lt;br /&gt;
|bgcolor = &amp;quot;#EAEAEA&amp;quot;|Opis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|clear()&lt;br /&gt;
|zmaže celý obsah objektu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|getItem()&lt;br /&gt;
|získa obsah objektu podľa názvu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|key()&lt;br /&gt;
|získa kľúč podľa čísla&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|length&lt;br /&gt;
|Počet uložených kľúčov&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|removeItem()&lt;br /&gt;
|odstráni položku podľa jej mena&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|setItem()&lt;br /&gt;
|Pridá hodnotu položke&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Off-line_funkcionalita_on-line_web_aplik%C3%A1ci%C3%AD&amp;diff=6874</id>
		<title>Off-line funkcionalita on-line web aplikácií</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Off-line_funkcionalita_on-line_web_aplik%C3%A1ci%C3%AD&amp;diff=6874"/>
		<updated>2010-09-05T11:20:58Z</updated>

		<summary type="html">&lt;p&gt;Dusan: /* Štruktúra webovej aplikácie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:php]]&lt;br /&gt;
[[Kategória:web]]&lt;br /&gt;
{{Hlavička_FM|{{PAGENAME}}|Dušan Pagáč|Ing. Juraj Ďuďák|&lt;br /&gt;
2009/2010&lt;br /&gt;
|Semetrálna práca|Mechatronika}} &lt;br /&gt;
{{Praca_uvod|1|Off-line funkcionalita on-line web aplikácií|Štruktúra webovej aplikácie|Technológie off-line web aplikácií|Systémy na vizualizáciu rozvrhu hodín|Návrh používateľského rozhrania rozvrhu FM TnUAD}}&lt;br /&gt;
__TOC__&lt;br /&gt;
{{Abstrakt&lt;br /&gt;
|Bakalárska práca sa zaoberá web aplikáciami, ktoré sú schopné pracovať aj v režime off-line. V prvej kapitole je rozobraná architektúru web aplikácií. Zaoberá sa štruktúrou webovej aplikácie pracujúcej aj v režime off-line. V druhej časti je popísaná technológia Google Gears od firmy Google, ktorá toto umožňuje. Následne sú uvedené výhody a nevýhody tejto technológie a možnosti jej praktického využitia vo webových aplikáciách. V práci je spomenutá aj nová špecifikácia HTML5, ktorá taktiež prináša off-line podporu pre webové aplikácie. V ďalšej časti sa venuje aplikáciám na tvorbu a zobrazovanie rozvrhov a návrhu front-endu rozvrhu Fakulty mechatroniky. Na zabezpečenie off-line funkcionality sme použili rozšírenie Google Gears.&lt;br /&gt;
|This bachelor work deals with web applications which are able to work in an off-line mode. The first part is concerned with the architecture of web applications. It is devoted to the structure of web-application able to work also in the off-line mode. The Google Gears technology by the Google company which makes this possible is described in the second part. Consequently, the advantages and the disadvantages are stated as well as the posibilities of&amp;amp;nbsp;the&amp;amp;nbsp;&amp;amp;nbsp;practical usage in the web aplications. The new specification HTML5 that also offers off-line support for web applications is mentioned in this work, too. The final part is&amp;amp;nbsp;dedicated to the applications used for creation and display of timetables and design of front-end directly for Faculty of mechatronics. The off-line functionality has been ensured by the Google Gears extention.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Štruktúra webovej aplikácie=&lt;br /&gt;
&lt;br /&gt;
Webová aplikácia je aplikácia, ktorá je prístupná pomocou webového prehliadača cez sieť internet a intranet. Skladá sa z viacerých vrstiev. Rozoznávame dvojvrstvové alebo trojvrstvové, niekedy nazývané viacvrstvové. &lt;br /&gt;
 &lt;br /&gt;
==Dvojvrstvové web aplikácie==&lt;br /&gt;
&lt;br /&gt;
Dvojvrstvová aplikácia sa skladá z klientskej a dátovej vrstvy. Klientska vrstva obsahuje väčšinu aplikačnej logiky, s ktorou sa pracuje priamo nad dátovým zdrojom. Takýto dátový zdroj môže byť reprezentovaný relačnou databázou. Ďalšie zdroje môžu byť súbory alebo iné aplikácie. Schému dvojvrstvovej web aplikácie môžeme vidieť na obrázku (Obr 1.1).&lt;br /&gt;
&lt;br /&gt;
[[Image:Example.jpg|center|framed|Obr 1.1 Schéma dvojvrstvovej web aplikácie. Zdroj: [1] ]]&lt;br /&gt;
&lt;br /&gt;
Nevýhody tohto modelu sa ukázali pri vzrastajúcej komplexnosti klientskych aplikácií. S ich zložitosťou vzrastali aj výkonové nároky na klientské počítače. S masívnym rozšírením aplikácií boli softvérové firmy nútené reagovať na požiadavky klientov.  Napríklad zdieľanie zdrojov, obmedzenie dátového prenosu atď. Preto sa začalo uvažovať o trojvrstvovej architektúre, ktorá by tieto požiadavky pokryla.&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
==Trojvrstvové web aplikácie==&lt;br /&gt;
&lt;br /&gt;
Riešenie sa našlo v podobe pridania tretej – strednej vrstvy. Samozrejme sa nejednalo len o pridanie ďalšej vrstvy. Bolo nutné špecifikovať jednotlivé vrstvy, respektíve ich úlohu v architektúre. Trojvrstvovú architektúru zobrazuje schéma (Obr. 1.2).&lt;br /&gt;
&lt;br /&gt;
[[Súbor:bp_off_web_1.jpg|center|framed|Obr. 1.2 Schéma trojvrstvovej aplikácie. Zdroj: [1]]]&lt;br /&gt;
&lt;br /&gt;
===Zmeny v klientskej vrstve===&lt;br /&gt;
&lt;br /&gt;
Najväčšia zmena nastala v prípade klientskej vrstvy. Vďaka novo definovanej aplikačnej vrstve bolo možné logiku aplikácie presunúť na server tejto vrstvy. Celý výpočtový výkon bol prenesený na výkonné servery. Presunutím aplikačnej logiky na jedno miesto sme dosiahli lepšiu možnosť jej zdieľania, správy a dostupnosti. Významnou mierou sa podarilo redukovať dátový prenos, pretože komunikácia je sústredená medzi serverom a dátovým zdrojom.&lt;br /&gt;
&lt;br /&gt;
===Aplikačná vrstva===&lt;br /&gt;
&lt;br /&gt;
Z pohľadu doby prešla aplikačná vrstva najväčším vývojom. Táto vrstva, resp. aplikačná logika, zaisťuje prístup k dátam, prácu s dátami a ich poskytnutie vo vhodnom formáte (XML, HTML) pre klientskú vrstvu. &lt;br /&gt;
&lt;br /&gt;
==Model-View-Controller (MVC)==&lt;br /&gt;
&lt;br /&gt;
Model-view-controller je architektonický vzor využívaný pri tvorbe aplikácií, ktorý oddeľuje dátový model, používateľské rozhranie a riadiacu logiku. Vytváranie aplikácie s využitím architektúry MVC vyžaduje tri komponenty:&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Model je funkčným a dátovým základom celej aplikácie. Poskytuje prostriedky pre prístup k dátovej základni, stavom aplikácie, ukladaniu a aktualizácií.&lt;br /&gt;
===View===&lt;br /&gt;
View zobrazuje obsah Modelu, zaisťuje grafický či iný výstup aplikácie. Cez Model pristupuje k dátam, stavom aplikácie a špecifikuje ako majú byť prezentované. Pri zmene stavu Modelu aktualizuje zobrazenie. V prípade webových aplikácií View generuje príslušný HTML kód, ktorý je odoslaný prehliadaču ako odpoveď na požiadavka.&lt;br /&gt;
===Controller===&lt;br /&gt;
Controller definuje správanie aplikácie. Spracováva všetky vstupy a udalosti z používateľského rozhrania. Na ich základe volá príslušné procesy Modelu, mení stav a pod. Podľa udalostí prijatých od používateľa a podľa výsledkov akcií Modelu potom Controller vyberie vhodné View pre ďalšie zobrazenie.&lt;br /&gt;
===Výhody vzoru MVC===&lt;br /&gt;
* Jednoduché sprístupnenie pre rôzne druhy klientov. Pre zavedenie podpory ďalšieho klienta stačí nadefinovať len nové View.&lt;br /&gt;
* Minimalizácia duplicity zdrojového kódu.&lt;br /&gt;
* Rozdelenie vývojárskych úloh a&amp;amp;nbsp;samostatný vývoj jednotlivých častí.&lt;br /&gt;
* Znovupoužiteľnosť kódu.&lt;br /&gt;
* Vysoká komplexnosť návrhu a jednoduchšia rozšíriteľnosť aplikácie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Optimálna štruktúra aplikácie s podporou režimu off-line==&lt;br /&gt;
Webové aplikácie, ktoré sú postavené s podporou off-line režimu majú tendenciu byť štruktúrované tak, že ich dátová vrstva je izolovaná. Väčšina dnešných web aplikácií takto stavaných nie je. Pravdepodobne najvýhodnejšia štruktúra je zobrazená v schéme (Obr. 1.3). &lt;br /&gt;
&lt;br /&gt;
[[Súbor:bp_off_web_3.jpg|center|framed|Schéma web aplikácie podporujúcej režime off-line. Zdroj: [1]]]&lt;br /&gt;
&lt;br /&gt;
Hlavným krokom pre dosiahnutie vhodnej architektúry je vytvorenie lokálnej dátovej vrstvy, ktorá využíva lokálnu databázu. Podľa toho či ste on-line alebo off-line, sa dáta získavajú zo servera alebo z lokálneho úložiska. O prepínanie medzi dátovým vrstvami sa stará prepínač. Prepínač je časť kódu, ktorý rozhoduje odkiaľ sa budú dáta čerpať. &lt;br /&gt;
&lt;br /&gt;
==Funkcie dostupné v režime off-line==&lt;br /&gt;
Nedá sa zabezpečiť, aby všetky dostupné funkcie web aplikácie boli prístupné aj v off-line režime. Je zbytočné kopírovať celú databázu zo servera, keď budeme využívať len časť. Preto je vhodné rozhodnúť, ktoré dáta budú uložené lokálne. Implementovaním logiky rozhodovania do našej aplikácie zabezpečíme, že určité dáta bude získavať z lokálneho úložiska a ďalšie zo servera.&lt;br /&gt;
&lt;br /&gt;
Niektoré dáta nemá zmysel ukladať na lokálny disk a&amp;amp;nbsp;je vhodnejšie ich získavať zo servera. Sú to predovšetkým:&lt;br /&gt;
&lt;br /&gt;
* dáta, ktoré sa menia často alebo dokonca v&amp;amp;nbsp;reálnom čase,&lt;br /&gt;
* dáta, ktoré majú zmysel len v&amp;amp;nbsp;režime on-line ako instant messaging,&lt;br /&gt;
* dáta, ktoré sú náročné na miesto na disku.&lt;br /&gt;
&lt;br /&gt;
Optimálne riešenie je používať lokálne úložisko čo najviac ako je to možné. Pretože je to obyčajne rýchlejšie ako pripojenie na vzdialený server. Ak chceme, aby aplikácia pracovala čo najviac s&amp;amp;nbsp;lokálnymi dátami, bude toto implementovanie náročnejšie. Preto už pri návrhu aplikácie musíme zvážiť, čo je pre nás výhodnejšie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Forma off-line aplikácií==&lt;br /&gt;
Typ aplikácie môže mať modálnu alebo nemodálnu formu. Modálne aplikácie obyčajne rozlišujú on-line a off-line mód indikáciou cez zmenu v používateľskom rozhraní. Používateľ sa podieľa na zmene stavu.&lt;br /&gt;
Nemodálne aplikácie prechádzajú medzi on-line a off-line stavmi bez zmien v používateľskom rozhraní. Používateľ sa nemusí zúčastňovať na prepínaní stavov. Aplikácia to robí automaticky.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modálne aplikácie===&lt;br /&gt;
V&amp;amp;nbsp;modálnych aplikáciách, ak je aplikácia on-line, komunikuje so serverom. Ak je  off-line, využíva lokálne zdroje. V&amp;amp;nbsp;prípade zmeny módov je nutná synchronizácia dát.&lt;br /&gt;
&lt;br /&gt;
Výhody:&lt;br /&gt;
&lt;br /&gt;
* Relatívne jednoduchá implementácia.&lt;br /&gt;
Nevýhody:&lt;br /&gt;
&lt;br /&gt;
* Používateľ musí pamätať na prepínanie módov. Ak zabudne, nebude mať v&amp;amp;nbsp;off-line móde potrebné dáta alebo bude pracovať on-line &amp;amp;nbsp;bez podpory off-line úložiska.&lt;br /&gt;
* Ak je internetové pripojenie prerušované, používateľ si musí zvoliť jedno z&amp;amp;nbsp;nastavení alebo si bude musieť neustále prepínať medzi módmi podľa stavu pripojenia.&lt;br /&gt;
* Keďže lokálne zdroje nie sú vždy aktuálne, nemôžu byť pri pripojení na server využívané na zlepšenie podpory aplikácie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Nemodálne aplikácie===&lt;br /&gt;
V&amp;amp;nbsp;prípade nemodálnych aplikácií pracuje aplikácia s&amp;amp;nbsp;predpokladom off-line stavu alebo možnosti náhodnej straty pripojenia.  Aplikácia využíva lokálne zdroje v&amp;amp;nbsp;maximálne možnej miere, a&amp;amp;nbsp;keď je server dosiahnuteľný, prebieha neustála synchronizácia dát. Tá prebieha taktiež pri prechode do on-line stavu.&lt;br /&gt;
&lt;br /&gt;
Výhody:&lt;br /&gt;
&lt;br /&gt;
* Používateľ sa nemusí starať o&amp;amp;nbsp;to,&amp;amp;nbsp;či je pripojený alebo v&amp;amp;nbsp;akom je stave jeho aplikácia&lt;br /&gt;
(on-line/off-line).&lt;br /&gt;
&lt;br /&gt;
* Aplikácia pracuje plynulo aj v&amp;amp;nbsp;prípade prerušovaného pripojenia.&lt;br /&gt;
* Keďže je lokálny zdroj aktualizovaný, môže byť využívaný na optimalizáciu serverového pripojenia.&lt;br /&gt;
Nevýhody:&lt;br /&gt;
&lt;br /&gt;
* Náročná implementácia.&lt;br /&gt;
* Musí sa dbať na to, aby proces synchronizácie nezabral príliš veľa zdrojov a&amp;amp;nbsp;nespôsobil spomalenie celej aplikácie.&lt;br /&gt;
* Testovanie aplikácie ja náročnejšie, keďže logika synchronizácie sa deje na&amp;amp;nbsp;pozadí a&amp;amp;nbsp;nie ako odozva na&amp;amp;nbsp;špecifický krok používateľa.&lt;br /&gt;
&lt;br /&gt;
==Synchronizácia dát==&lt;br /&gt;
Bez ohľadu na pripojenie alebo modálnu stratégiu dáta v&amp;amp;nbsp;lokálnej databáze vystupujú zo&amp;amp;nbsp;synchronizácie so serverovými dátami. Napríklad v&amp;amp;nbsp;týchto prípadoch:&lt;br /&gt;
&lt;br /&gt;
* Používateľ urobí zmeny v&amp;amp;nbsp;off-line stave.&lt;br /&gt;
* Dáta na serveri sú zdieľané a&amp;amp;nbsp;môžu byť zmenené externými subjektmi.&lt;br /&gt;
* Dáta prichádzajú z&amp;amp;nbsp;vonkajšieho zdroja (RSS).&lt;br /&gt;
&lt;br /&gt;
Proces odstraňovania týchto rozdielov tak, že dva zdroje sa stávajú totožnými, nazývame synchronizácia. Existuje mnoho prístupov k&amp;amp;nbsp;synchronizácii, ale&amp;amp;nbsp;žiadny nie je výhodný pre&amp;amp;nbsp;všetky situácie. Vybrané riešenie by malo byť čo najvýhodnejšie pre našu aplikáciu.&lt;br /&gt;
&lt;br /&gt;
Pre príklad sú uvádzané dve všeobecné synchronizačné stratégie.&lt;br /&gt;
&lt;br /&gt;
===Manuálna synchronizácia===&lt;br /&gt;
Najjednoduchší spôsob synchronizácie je tzv. ''manuálna synchronizácia''. Manuálna preto, lebo používateľ sám volí čas synchronizácie. Môže byť implementovaná jednoducho nahraním všetkých starých dát na server a&amp;amp;nbsp;následným stiahnutím novej kópie dát zo serveru pred prechodom na off-line stav.&lt;br /&gt;
&lt;br /&gt;
Manuálna synchronizácia ma nasledovné požiadavky:&lt;br /&gt;
&lt;br /&gt;
* Objem dát dostatočne malý na stiahnutie v&amp;amp;nbsp;primeranom čase.&lt;br /&gt;
* Používateľ sám stanovuje prechod do režimu off-line, väčšinou tlačidlom v&amp;amp;nbsp;používateľskom prostredí.&lt;br /&gt;
&lt;br /&gt;
Problémy tejto metódy a&amp;amp;nbsp;jej off-line módu:&lt;br /&gt;
&lt;br /&gt;
* Užívatelia nie vždy vedia okamžitý stav svojho pripojenia. Internetové pripojenie môže byť náhle odpojené alebo prerušované.&lt;br /&gt;
* Užívatelia môžu zabudnúť synchronizovať dáta pred prechodom do stavu off-line.&lt;br /&gt;
&lt;br /&gt;
Manuálna synchronizácia môže byť na začiatok vhodným spôsobom synchronizácie, najmä kvôli relatívne jednoduchej implementácii. Bohužiaľ, vyžaduje uvedomelosť používateľa a&amp;amp;nbsp;jeho zapojenie do procesu synchronizácie.&lt;br /&gt;
&lt;br /&gt;
===Synchronizácia na pozadí===&lt;br /&gt;
V prípade synchronizácie na pozadí aplikácia neustále synchronizuje dáta medzi lokálnym zdrojom a&amp;amp;nbsp;serverom. To môže byť uskutočňované opakovanými pokusmi pripájať sa na server  alebo v&amp;amp;nbsp;lepšom prípade umožniť serveru presúvať dáta ku klientovi.&lt;br /&gt;
&lt;br /&gt;
Výhody synchronizácie na pozadí:&lt;br /&gt;
&lt;br /&gt;
* Dáta sú pripravené vždy, keď sa používateľ rozhodne pre prechod do režimu off-line alebo je náhodne odpojený.&lt;br /&gt;
* Zlepšenie výkonu v&amp;amp;nbsp;prípade využívania pomalého internetového pripojenia.&lt;br /&gt;
&lt;br /&gt;
Nevýhody:&lt;br /&gt;
&lt;br /&gt;
* Nevýhodou je možnosť spomalenia pri kopírovaní dát na pozadí. Spomalenie sa dá minimalizovať využitím rôznych možností (Google Gears WorkerPool).&lt;br /&gt;
&lt;br /&gt;
[[Súbor:bp_off_web_4.jpg|center|framed|Architektúra web aplikácie so synchronizáciou na pozadí. Zdroj: [1]]]&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Off-line_funkcionalita_on-line_web_aplik%C3%A1ci%C3%AD&amp;diff=6873</id>
		<title>Off-line funkcionalita on-line web aplikácií</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Off-line_funkcionalita_on-line_web_aplik%C3%A1ci%C3%AD&amp;diff=6873"/>
		<updated>2010-09-05T11:18:47Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:php]]&lt;br /&gt;
[[Kategória:web]]&lt;br /&gt;
{{Hlavička_FM|{{PAGENAME}}|Dušan Pagáč|Ing. Juraj Ďuďák|&lt;br /&gt;
2009/2010&lt;br /&gt;
|Semetrálna práca|Mechatronika}} &lt;br /&gt;
{{Praca_uvod|1|Off-line funkcionalita on-line web aplikácií|Štruktúra webovej aplikácie|Technológie off-line web aplikácií|Systémy na vizualizáciu rozvrhu hodín|Návrh používateľského rozhrania rozvrhu FM TnUAD}}&lt;br /&gt;
__TOC__&lt;br /&gt;
{{Abstrakt&lt;br /&gt;
|Bakalárska práca sa zaoberá web aplikáciami, ktoré sú schopné pracovať aj v režime off-line. V prvej kapitole je rozobraná architektúru web aplikácií. Zaoberá sa štruktúrou webovej aplikácie pracujúcej aj v režime off-line. V druhej časti je popísaná technológia Google Gears od firmy Google, ktorá toto umožňuje. Následne sú uvedené výhody a nevýhody tejto technológie a možnosti jej praktického využitia vo webových aplikáciách. V práci je spomenutá aj nová špecifikácia HTML5, ktorá taktiež prináša off-line podporu pre webové aplikácie. V ďalšej časti sa venuje aplikáciám na tvorbu a zobrazovanie rozvrhov a návrhu front-endu rozvrhu Fakulty mechatroniky. Na zabezpečenie off-line funkcionality sme použili rozšírenie Google Gears.&lt;br /&gt;
|This bachelor work deals with web applications which are able to work in an off-line mode. The first part is concerned with the architecture of web applications. It is devoted to the structure of web-application able to work also in the off-line mode. The Google Gears technology by the Google company which makes this possible is described in the second part. Consequently, the advantages and the disadvantages are stated as well as the posibilities of&amp;amp;nbsp;the&amp;amp;nbsp;&amp;amp;nbsp;practical usage in the web aplications. The new specification HTML5 that also offers off-line support for web applications is mentioned in this work, too. The final part is&amp;amp;nbsp;dedicated to the applications used for creation and display of timetables and design of front-end directly for Faculty of mechatronics. The off-line functionality has been ensured by the Google Gears extention.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Štruktúra webovej aplikácie=&lt;br /&gt;
&lt;br /&gt;
Webová aplikácia je aplikácia, ktorá je prístupná pomocou webového prehliadača cez sieť internet a intranet. Skladá sa z viacerých vrstiev. Rozoznávame dvojvrstvové alebo trojvrstvové, niekedy nazývané viacvrstvové. &lt;br /&gt;
 &lt;br /&gt;
==Dvojvrstvové web aplikácie==&lt;br /&gt;
&lt;br /&gt;
Dvojvrstvová aplikácia sa skladá z klientskej a dátovej vrstvy. Klientska vrstva obsahuje väčšinu aplikačnej logiky, s ktorou sa pracuje priamo nad dátovým zdrojom. Takýto dátový zdroj môže byť reprezentovaný relačnou databázou. Ďalšie zdroje môžu byť súbory alebo iné aplikácie. Schému dvojvrstvovej web aplikácie môžeme vidieť na obrázku (Obr 1.1).&lt;br /&gt;
&lt;br /&gt;
[[Image:Example.jpg|center|framed|Obr 1.1 Schéma dvojvrstvovej web aplikácie. Zdroj: [1] ]]&lt;br /&gt;
&lt;br /&gt;
Nevýhody tohto modelu sa ukázali pri vzrastajúcej komplexnosti klientskych aplikácií. S ich zložitosťou vzrastali aj výkonové nároky na klientské počítače. S masívnym rozšírením aplikácií boli softvérové firmy nútené reagovať na požiadavky klientov.  Napríklad zdieľanie zdrojov, obmedzenie dátového prenosu atď. Preto sa začalo uvažovať o trojvrstvovej architektúre, ktorá by tieto požiadavky pokryla.&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
==Trojvrstvové web aplikácie==&lt;br /&gt;
&lt;br /&gt;
Riešenie sa našlo v podobe pridania tretej – strednej vrstvy. Samozrejme sa nejednalo len o pridanie ďalšej vrstvy. Bolo nutné špecifikovať jednotlivé vrstvy, respektíve ich úlohu v architektúre. Trojvrstvovú architektúru zobrazuje schéma (Obr. 1.2).&lt;br /&gt;
&lt;br /&gt;
[[Súbor:bp_off_web_1.jpg|center|framed|Obr. 1.2 Schéma trojvrstvovej aplikácie. Zdroj: [1]]]&lt;br /&gt;
&lt;br /&gt;
===Zmeny v klientskej vrstve===&lt;br /&gt;
&lt;br /&gt;
Najväčšia zmena nastala v prípade klientskej vrstvy. Vďaka novo definovanej aplikačnej vrstve bolo možné logiku aplikácie presunúť na server tejto vrstvy. Celý výpočtový výkon bol prenesený na výkonné servery. Presunutím aplikačnej logiky na jedno miesto sme dosiahli lepšiu možnosť jej zdieľania, správy a dostupnosti. Významnou mierou sa podarilo redukovať dátový prenos, pretože komunikácia je sústredená medzi serverom a dátovým zdrojom.&lt;br /&gt;
&lt;br /&gt;
===Aplikačná vrstva===&lt;br /&gt;
&lt;br /&gt;
Z pohľadu doby prešla aplikačná vrstva najväčším vývojom. Táto vrstva, resp. aplikačná logika, zaisťuje prístup k dátam, prácu s dátami a ich poskytnutie vo vhodnom formáte (XML, HTML) pre klientskú vrstvu. &lt;br /&gt;
&lt;br /&gt;
==Model-View-Controller (MVC)==&lt;br /&gt;
&lt;br /&gt;
Model-view-controller je architektonický vzor využívaný pri tvorbe aplikácií, ktorý oddeľuje dátový model, používateľské rozhranie a riadiacu logiku. Vytváranie aplikácie s využitím architektúry MVC vyžaduje tri komponenty:&lt;br /&gt;
&lt;br /&gt;
===Model===&lt;br /&gt;
Model je funkčným a dátovým základom celej aplikácie. Poskytuje prostriedky pre prístup k dátovej základni, stavom aplikácie, ukladaniu a aktualizácií.&lt;br /&gt;
===View===&lt;br /&gt;
View zobrazuje obsah Modelu, zaisťuje grafický či iný výstup aplikácie. Cez Model pristupuje k dátam, stavom aplikácie a špecifikuje ako majú byť prezentované. Pri zmene stavu Modelu aktualizuje zobrazenie. V prípade webových aplikácií View generuje príslušný HTML kód, ktorý je odoslaný prehliadaču ako odpoveď na požiadavka.&lt;br /&gt;
===Controller===&lt;br /&gt;
Controller definuje správanie aplikácie. Spracováva všetky vstupy a udalosti z používateľského rozhrania. Na ich základe volá príslušné procesy Modelu, mení stav a pod. Podľa udalostí prijatých od používateľa a podľa výsledkov akcií Modelu potom Controller vyberie vhodné View pre ďalšie zobrazenie.&lt;br /&gt;
===Výhody vzoru MVC===&lt;br /&gt;
* Jednoduché sprístupnenie pre rôzne druhy klientov. Pre zavedenie podpory ďalšieho klienta stačí nadefinovať len nové View.&lt;br /&gt;
* Minimalizácia duplicity zdrojového kódu.&lt;br /&gt;
* Rozdelenie vývojárskych úloh a&amp;amp;nbsp;samostatný vývoj jednotlivých častí.&lt;br /&gt;
* Znovupoužiteľnosť kódu.&lt;br /&gt;
* Vysoká komplexnosť návrhu a jednoduchšia rozšíriteľnosť aplikácie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Optimálna štruktúra aplikácie s podporou režimu off-line==&lt;br /&gt;
Webové aplikácie, ktoré sú postavené s podporou off-line režimu majú tendenciu byť štruktúrované tak, že ich dátová vrstva je izolovaná. Väčšina dnešných web aplikácií takto stavaných nie je. Pravdepodobne najvýhodnejšia štruktúra je zobrazená v schéme (Obr. 1.3). &lt;br /&gt;
&lt;br /&gt;
[[Súbor:bp_off_web_3.jpg|center|framed|Schéma web aplikácie podporujúcej režime off-line. Zdroj: [1]]]&lt;br /&gt;
&lt;br /&gt;
Hlavným krokom pre dosiahnutie vhodnej architektúry je vytvorenie lokálnej dátovej vrstvy, ktorá využíva lokálnu databázu. Podľa toho či ste on-line alebo off-line, sa dáta získavajú zo servera alebo z lokálneho úložiska. O prepínanie medzi dátovým vrstvami sa stará prepínač. Prepínač je časť kódu, ktorý rozhoduje odkiaľ sa budú dáta čerpať. &lt;br /&gt;
&lt;br /&gt;
==Funkcie dostupné v režime off-line==&lt;br /&gt;
Nedá sa zabezpečiť, aby všetky dostupné funkcie web aplikácie boli prístupné aj v off-line režime. Je zbytočné kopírovať celú databázu zo servera, keď budeme využívať len časť. Preto je vhodné rozhodnúť, ktoré dáta budú uložené lokálne. Implementovaním logiky rozhodovania do našej aplikácie zabezpečíme, že určité dáta bude získavať z lokálneho úložiska a ďalšie zo servera.&lt;br /&gt;
&lt;br /&gt;
Niektoré dáta nemá zmysel ukladať na lokálny disk a&amp;amp;nbsp;je vhodnejšie ich získavať zo servera. Sú to predovšetkým:&lt;br /&gt;
&lt;br /&gt;
* dáta, ktoré sa menia často alebo dokonca v&amp;amp;nbsp;reálnom čase,&lt;br /&gt;
* dáta, ktoré majú zmysel len v&amp;amp;nbsp;režime on-line ako instant messaging,&lt;br /&gt;
* dáta, ktoré sú náročné na miesto na disku.&lt;br /&gt;
&lt;br /&gt;
Optimálne riešenie je používať lokálne úložisko čo najviac ako je to možné. Pretože je to obyčajne rýchlejšie ako pripojenie na vzdialený server. Ak chceme, aby aplikácia pracovala čo najviac s&amp;amp;nbsp;lokálnymi dátami, bude toto implementovanie náročnejšie. Preto už pri návrhu aplikácie musíme zvážiť, čo je pre nás výhodnejšie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Forma off-line aplikácií==&lt;br /&gt;
Typ aplikácie môže mať modálnu alebo nemodálnu formu. Modálne aplikácie obyčajne rozlišujú on-line a off-line mód indikáciou cez zmenu v používateľskom rozhraní. Používateľ sa podieľa na zmene stavu.&lt;br /&gt;
Nemodálne aplikácie prechádzajú medzi on-line a off-line stavmi bez zmien v používateľskom rozhraní. Používateľ sa nemusí zúčastňovať na prepínaní stavov. Aplikácia to robí automaticky.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modálne aplikácie===&lt;br /&gt;
V&amp;amp;nbsp;modálnych aplikáciách, ak je aplikácia on-line, komunikuje so serverom. Ak je  off-line, využíva lokálne zdroje. V&amp;amp;nbsp;prípade zmeny módov je nutná synchronizácia dát.&lt;br /&gt;
&lt;br /&gt;
Výhody:&lt;br /&gt;
&lt;br /&gt;
* Relatívne jednoduchá implementácia.&lt;br /&gt;
Nevýhody:&lt;br /&gt;
&lt;br /&gt;
* Používateľ musí pamätať na prepínanie módov. Ak zabudne, nebude mať v&amp;amp;nbsp;off-line móde potrebné dáta alebo bude pracovať on-line &amp;amp;nbsp;bez podpory off-line úložiska.&lt;br /&gt;
* Ak je internetové pripojenie prerušované, používateľ si musí zvoliť jedno z&amp;amp;nbsp;nastavení alebo si bude musieť neustále prepínať medzi módmi podľa stavu pripojenia.&lt;br /&gt;
* Keďže lokálne zdroje nie sú vždy aktuálne, nemôžu byť pri pripojení na server využívané na zlepšenie podpory aplikácie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Nemodálne aplikácie===&lt;br /&gt;
V&amp;amp;nbsp;prípade nemodálnych aplikácií pracuje aplikácia s&amp;amp;nbsp;predpokladom off-line stavu alebo možnosti náhodnej straty pripojenia.  Aplikácia využíva lokálne zdroje v&amp;amp;nbsp;maximálne možnej miere, a&amp;amp;nbsp;keď je server dosiahnuteľný, prebieha neustála synchronizácia dát. Tá prebieha taktiež pri prechode do on-line stavu.&lt;br /&gt;
&lt;br /&gt;
Výhody:&lt;br /&gt;
&lt;br /&gt;
* Používateľ sa nemusí starať o&amp;amp;nbsp;to,&amp;amp;nbsp;či je pripojený alebo v&amp;amp;nbsp;akom je stave jeho aplikácia&lt;br /&gt;
(on-line/off-line).&lt;br /&gt;
&lt;br /&gt;
* Aplikácia pracuje plynulo aj v&amp;amp;nbsp;prípade prerušovaného pripojenia.&lt;br /&gt;
* Keďže je lokálny zdroj aktualizovaný, môže byť využívaný na optimalizáciu serverového pripojenia.&lt;br /&gt;
Nevýhody:&lt;br /&gt;
&lt;br /&gt;
* Náročná implementácia.&lt;br /&gt;
* Musí sa dbať na to, aby proces synchronizácie nezabral príliš veľa zdrojov a&amp;amp;nbsp;nespôsobil spomalenie celej aplikácie.&lt;br /&gt;
* Testovanie aplikácie ja náročnejšie, keďže logika synchronizácie sa deje na&amp;amp;nbsp;pozadí a&amp;amp;nbsp;nie ako odozva na&amp;amp;nbsp;špecifický krok používateľa.&lt;br /&gt;
&lt;br /&gt;
==Synchronizácia dát==&lt;br /&gt;
Bez ohľadu na pripojenie alebo modálnu stratégiu dáta v&amp;amp;nbsp;lokálnej databáze vystupujú zo&amp;amp;nbsp;synchronizácie so serverovými dátami. Napríklad v&amp;amp;nbsp;týchto prípadoch:&lt;br /&gt;
&lt;br /&gt;
* Používateľ urobí zmeny v&amp;amp;nbsp;off-line stave.&lt;br /&gt;
* Dáta na serveri sú zdieľané a&amp;amp;nbsp;môžu byť zmenené externými subjektmi.&lt;br /&gt;
* Dáta prichádzajú z&amp;amp;nbsp;vonkajšieho zdroja (RSS).&lt;br /&gt;
&lt;br /&gt;
Proces odstraňovania týchto rozdielov tak, že dva zdroje sa stávajú totožnými, nazývame synchronizácia. Existuje mnoho prístupov k&amp;amp;nbsp;synchronizácii, ale&amp;amp;nbsp;žiadny nie je výhodný pre&amp;amp;nbsp;všetky situácie. Vybrané riešenie by malo byť čo najvýhodnejšie pre našu aplikáciu.&lt;br /&gt;
&lt;br /&gt;
Pre príklad sú uvádzané dve všeobecné synchronizačné stratégie.&lt;br /&gt;
&lt;br /&gt;
===Manuálna synchronizácia===&lt;br /&gt;
Najjednoduchší spôsob synchronizácie je tzv. ''manuálna synchronizácia''. Manuálna preto, lebo používateľ sám volí čas synchronizácie. Môže byť implementovaná jednoducho nahraním všetkých starých dát na server a&amp;amp;nbsp;následným stiahnutím novej kópie dát zo serveru pred prechodom na off-line stav.&lt;br /&gt;
&lt;br /&gt;
Manuálna synchronizácia ma nasledovné požiadavky:&lt;br /&gt;
&lt;br /&gt;
* Objem dát dostatočne malý na stiahnutie v&amp;amp;nbsp;primeranom čase.&lt;br /&gt;
* Používateľ sám stanovuje prechod do režimu off-line, väčšinou tlačidlom v&amp;amp;nbsp;používateľskom prostredí.&lt;br /&gt;
&lt;br /&gt;
Problémy tejto metódy a&amp;amp;nbsp;jej off-line módu:&lt;br /&gt;
&lt;br /&gt;
* Užívatelia nie vždy vedia okamžitý stav svojho pripojenia. Internetové pripojenie môže byť náhle odpojené alebo prerušované.&lt;br /&gt;
* Užívatelia môžu zabudnúť synchronizovať dáta pred prechodom do stavu off-line.&lt;br /&gt;
&lt;br /&gt;
Manuálna synchronizácia môže byť na začiatok vhodným spôsobom synchronizácie, najmä kvôli relatívne jednoduchej implementácii. Bohužiaľ, vyžaduje uvedomelosť používateľa a&amp;amp;nbsp;jeho zapojenie do procesu synchronizácie.&lt;br /&gt;
&lt;br /&gt;
===Synchronizácia na pozadí===&lt;br /&gt;
V prípade synchronizácie na pozadí aplikácia neustále synchronizuje dáta medzi lokálnym zdrojom a&amp;amp;nbsp;serverom. To môže byť uskutočňované opakovanými pokusmi pripájať sa na server  alebo v&amp;amp;nbsp;lepšom prípade umožniť serveru presúvať dáta ku klientovi.&lt;br /&gt;
&lt;br /&gt;
Výhody synchronizácie na pozadí:&lt;br /&gt;
&lt;br /&gt;
* Dáta sú pripravené vždy, keď sa používateľ rozhodne pre prechod do režimu off-line alebo je náhodne odpojený.&lt;br /&gt;
* Zlepšenie výkonu v&amp;amp;nbsp;prípade využívania pomalého internetového pripojenia.&lt;br /&gt;
&lt;br /&gt;
Nevýhody:&lt;br /&gt;
&lt;br /&gt;
* Nevýhodou je možnosť spomalenia pri kopírovaní dát na pozadí. Spomalenie sa dá minimalizovať využitím rôznych možností (Google Gears WorkerPool).&lt;br /&gt;
&lt;br /&gt;
[[Súbor:bp_off_web_4.jpg|center|framed|Architektúra web aplikácie so synchronizáciou na pozadí. Zdroj: [1]]]&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5722</id>
		<title>Prehľad architektúry PSoC</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5722"/>
		<updated>2010-06-23T10:58:50Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Mikroprocesorové systémy]]&lt;br /&gt;
__NOTOC__&lt;br /&gt;
{{Draft}}&lt;br /&gt;
'''Mikroprocesory PSoC''' &amp;lt;ref&amp;gt;http://www.cypress.com&amp;lt;/ref&amp;gt; (Programmable System on Chip – Programovateľný systém na čipe) sa skladajú z konfigurovateľných blokov analógových obvodov a digitálnej logiky, ktoré sú vzájomne programovo prepojené. Uvedená architektúra umožňuje vytvárať zákaznícke konfigurácie mikroprocesora tak, aby boli splnené požiadavky potrebné na realizáciu jednotlivých aplikácií. Bloková schéma na Obr. 1.1 zobrazuje architektúru celej rodiny mikroprocesorov PSoC. &lt;br /&gt;
&lt;br /&gt;
== Vnútorná štruktúra PSoC ==&lt;br /&gt;
&lt;br /&gt;
Spoločnosť '''Cypress''' vyvinula niekoľko desiatok typov súčiastok typov PSoC. Líšia sa predovšetkým množstvom a druhom blokov, veľkosťou pamäti programu ([http://sk.wikipedia.org/wiki/FLASH FLASH]), pamäťou dát ([http://sk.wikipedia.org/wiki/Pam%C3%A4%C5%A5_s_priamym_pr%C3%ADstupom RAM]), veľkosťou a druhom puzdier a ďalšími parametrami. V závislosti na type obsahujú 4-16 digitálnych a 3-12 analógových blokov. &lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_struktura.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 1.1 Vnútorná štruktúra PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== M8C – procesorové jadro ==&lt;br /&gt;
&lt;br /&gt;
Na Obr. 2.1 sú zobrazené prvky architektúry jadra PSoC. Procesor je 8-bitový a dokáže spracovať až 4 milióny inštrukcií za sekundu.&lt;br /&gt;
8-bitová architektúra podporuje použitie až 64 kilobajtov pamäti Flash, v ktorej je uložená užívateľská aplikácia. Flash pamäť je „in-circuit programmable“, takže PSoC je možné programovať aj potom, ako je zapojený do dosky plošných spojov. Flash je zároveň aj „in-application programmable“, čo znamená, že mikroprocesor je schopný dynamicky meniť svoju vlastnú pamäť. [http://sk.wikipedia.org/wiki/Procesor Procesor] je pripojený k viacerým digitálnym a analógovým blokom, ktoré poskytujú funkcionalitu a flexibilitu charakteristickú pre celú rodinu PSoC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_JadroPSoC.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.1 Jadro PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Registre procesora M8C ===&lt;br /&gt;
&lt;br /&gt;
'''M8C''' je 8-bitový [http://sk.wikipedia.org/wiki/Mikroprocesor mikroprocesor] MIPS harvardskej architektúry s voliteľnou hodinovou frekvenciou od 93.7 kHz do 24 MHz. Má päť vnútorných [http://sk.wikipedia.org/wiki/Register_(procesor) registrov], ktoré sú využívané pri vykonávaní programu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_registreprocesora.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.2 Registre procesora M8C&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Štruktúra pamäte M8C ===&lt;br /&gt;
&lt;br /&gt;
M8C má tri adresné priestory: [http://sk.wikipedia.org/wiki/ROM ROM], RAM a registre. K adresnému priestoru ROM pristupujeme cez jeho vlastné adresy a dátovú [http://sk.wikipedia.org/wiki/Zbernica#Zbernica_po.C4.8D.C3.ADta.C4.8Da zbernicu]. ROM zahŕňa SROM a Flash pamäte. V pamäti Flash je uložený firmvér zariadenia a je rozdelená do 64-bajtových blokov. Používateľ nemusí ošetrovať prechod programu na ďalšiu pamäťovú stránku, pretože M8C automaticky zvyšuje 16-bitový register PC pri každej inštrukcii presahujúcej hranice aktuálnej stránky. V pamäti SROM je uložený program využívaný na spúšťanie PSoC, kalibrovanie obvodov a vykonávanie operácií s pamäťou Flash. Funkcie zabezpečované SROM sú volané z programu uloženého v pamäti Flash alebo pomocou programátora. Adresný priestor registrov je využívaný na konfigurovanie programovateľných blokov mikroprocesora. Skladá sa z dvoch 256-bajtových blokov. Na prepínanie medzi blokmi sa nastavuje bit XIO v registri F. Ak je F nastavený, zvolí sa blok1, ak nie je nastavený, zvolí sa blok0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_adresnypriestor.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.3 Adresný priestor&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inštrukčné formáty ===&lt;br /&gt;
&lt;br /&gt;
M8C má spolu sedem inštrukčných formátov, ktoré používajú inštrukcie o dĺžkach jeden, dva a tri bajty. Všetky bajty inštrukcie sú vyvolávané z programovej pamäte Flash, za použitia adries a dátovej zbernice, ktoré sú nezávislé od adries a dátovej zbernice používaných pre registre a prístup do pamäte RAM. &lt;br /&gt;
&lt;br /&gt;
== Digitálne a analógové bloky PSoC ==&lt;br /&gt;
&lt;br /&gt;
'''Digitálne a analógové bloky sú moduly''' vytvorené z digitálnych a analógových prvkov, ktoré sú konfigurovateľné pre rôzne druhy operácií pomocou registrov špecifických pre každý blok.&lt;br /&gt;
&lt;br /&gt;
=== Digitálne bloky ===&lt;br /&gt;
&lt;br /&gt;
'''Digitálne bloky''' &amp;lt;ref&amp;gt;http://www.lubino.sk/rs/3/files/diplomka_-_ubo.pdf&amp;lt;/ref&amp;gt; redukujú potrebu použitia ďalších externých obvodov pre požadovanú funkcionalitu pripravovaného zariadenia. Sú určené na spracovávanie a generovanie hlavne digitálneho signálu. Dajú sa programovať a variovať tak, aby poskytovali funkčnosť štandardných elektronických integrovaných obvodov ako napríklad počítadlo, šírkový generátor pulzov, RS-232, IrDA, SPI, I2C príjem a binárnych dát, generátory pseudonáhodných čísel a iné. Taktiež sa používajú na prípravu požadovaného taktovacieho signálu pre analógové bloky, prípadne na spracovanie signálov z analógových blokov (možné prepojenie cez vstupno-výstupné piny). Ich činnosť je nezávislá na behu programu mikroprocesora, avšak môže byť moderovaná programom pomocou [http://sk.wikipedia.org/wiki/Application_programming_interface API] funkcií.&lt;br /&gt;
&lt;br /&gt;
* PWMs (8 to 32 bit)&lt;br /&gt;
* [http://www.cypress.com/?docID=19560 PWMs with Dead band (8 to 32 bit)] &lt;br /&gt;
* [http://www.cypress.com/?docID=19121 Counters (8 to 32 bit)]&lt;br /&gt;
* [http://www.cypress.com/?docID=19152 Timers (8 to 32 bit)]&lt;br /&gt;
* [http://www.cypress.com/?docID=19130 UART 8 bit with selectable parity (up to 2)]&lt;br /&gt;
* [http://www.cypress.com/?docID=19104 SPI slave and master (up to 2)]&lt;br /&gt;
* [http://www.cypress.com/?docID=20823 I2C slave and multi-master (1 available as a System Resource)]&lt;br /&gt;
* [http://www.cypress.com/?docID=16559 Cyclical Redundancy Checker/Generator (8 to 32 bit)]&lt;br /&gt;
* [http://www.cypress.com/?docID=19131 IrDA (up to 2)]&lt;br /&gt;
* [http://www.cypress.com/?docID=19082 Pseudo Random Sequence Generators (8 to 32 bit)]&lt;br /&gt;
&lt;br /&gt;
=== Analógové bloky ===&lt;br /&gt;
&lt;br /&gt;
'''Analógové bloky''' &amp;lt;ref&amp;gt;http://www.lubino.sk/rs/3/files/diplomka_-_ubo.pdf&amp;lt;/ref&amp;gt; sú taktiež zdrojom prostriedkov pre aplikácie, avšak orientované na spracovávanie a generovanie analógových signálov. Základom analógových blokov sú obvody spínače, prepínače, operačné zosilňovače a spínané kondenzátory. Každý analógový obvod ma viac potenciálne použiteľných vstupov a výstupov. K dispozícii sú vždy tieto tri výstupy:&lt;br /&gt;
* analógová výstupná zbernica (ABUS)&lt;br /&gt;
* porovnávacia zbernica (CBUS)&lt;br /&gt;
* výstupná zbernica (OUT)&lt;br /&gt;
&lt;br /&gt;
Zoznam analógových blokov:&lt;br /&gt;
&lt;br /&gt;
* Analog-to-digital converters (up to 4, with 6- to 14-bit resolution, selectable as Incremental, Delta Sigma, and SAR)&lt;br /&gt;
* Filters (2, 4, 6, and 8 pole band-pass, low-pass, and notch)&lt;br /&gt;
* Amplifiers (up to 4, with selectable gain to 48x)&lt;br /&gt;
* [http://www.cypress.com/?docID=16708 Instrumentation amplifiers (up to 2, with selectable gain to 93x)]&lt;br /&gt;
* Comparators (up to 4, with 16 selectable thresholds)&lt;br /&gt;
* DACs (up to 4, with 6- to 9-bit resolution)&lt;br /&gt;
* Multiplying DACs (up to 4, with 6- to 9-bit resolution)&lt;br /&gt;
* High current output drivers (four with 30 mA drive as a Core Resource)&lt;br /&gt;
* 1.3V reference (as a System Resource)&lt;br /&gt;
* [http://www.cypress.com/?docID=17257 DTMF Dialer]&lt;br /&gt;
* Modulators&lt;br /&gt;
* Correlators&lt;br /&gt;
* Peak detectors&lt;br /&gt;
* Many other topologies possible&lt;br /&gt;
&lt;br /&gt;
Analógová výstupná zbernica je vodičom analógového signálu. Túto zbernicu spolu zdieľajú analógové bloky v jednom stĺpci. Keďže je takýchto stĺpcov viac, je viac aj zberníc tohoto typu. Vo väčšine modelov mikroprocesora sú 4. K tejto zbernici je pripojený analógový výstupný zásobník (Analog Output Buffer), ktorý v závislosti od nastavenia prepojí zbernicu s nastaveným analógovým výstupným pinom. Porovnávacia zbernica je digitálnou zbernicou a taktiež ju zdieľajú všetky analógové bloky v jednom stĺpci. Túto zbernicu nie je možné pripojiť na vstupno-výstupný pin, ale je možné pripojiť ju na vstup niektorého digitálneho bloku. Podobne aj výstupná zbernica je zdieľaná vrámci jedného stĺpca.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5718</id>
		<title>Prehľad architektúry PSoC</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5718"/>
		<updated>2010-06-23T10:54:25Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Mikroprocesorové systémy]]&lt;br /&gt;
__NOTOC__&lt;br /&gt;
{{Draft}}&lt;br /&gt;
'''Mikroprocesory PSoC''' &amp;lt;ref&amp;gt;http://www.cypress.com&amp;lt;/ref&amp;gt; (Programmable System on Chip – Programovateľný systém na čipe) sa skladajú z konfigurovateľných blokov analógových obvodov a digitálnej logiky, ktoré sú vzájomne programovo prepojené. Uvedená architektúra umožňuje vytvárať zákaznícke konfigurácie mikroprocesora tak, aby boli splnené požiadavky potrebné na realizáciu jednotlivých aplikácií. Bloková schéma na Obr. 1.1 zobrazuje architektúru celej rodiny mikroprocesorov PSoC. &lt;br /&gt;
&lt;br /&gt;
== Vnútorná štruktúra PSoC ==&lt;br /&gt;
&lt;br /&gt;
Spoločnosť '''Cypress''' vyvinula niekoľko desiatok typov súčiastok typov PSoC. Líšia sa predovšetkým množstvom a druhom blokov, veľkosťou pamäti programu ([http://sk.wikipedia.org/wiki/FLASH FLASH]), pamäťou dát ([http://sk.wikipedia.org/wiki/Pam%C3%A4%C5%A5_s_priamym_pr%C3%ADstupom RAM]), veľkosťou a druhom puzdier a ďalšími parametrami. V závislosti na type obsahujú 4-16 digitálnych a 3-12 analógových blokov. &lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_struktura.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 1.1 Vnútorná štruktúra PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== M8C – procesorové jadro ==&lt;br /&gt;
&lt;br /&gt;
Na Obr. 2.1 sú zobrazené prvky architektúry jadra PSoC. Procesor je 8-bitový a dokáže spracovať až 4 milióny inštrukcií za sekundu.&lt;br /&gt;
8-bitová architektúra podporuje použitie až 64 kilobajtov pamäti Flash, v ktorej je uložená užívateľská aplikácia. Flash pamäť je „in-circuit programmable“, takže PSoC je možné programovať aj potom, ako je zapojený do dosky plošných spojov. Flash je zároveň aj „in-application programmable“, čo znamená, že mikroprocesor je schopný dynamicky meniť svoju vlastnú pamäť. [http://sk.wikipedia.org/wiki/Procesor Procesor] je pripojený k viacerým digitálnym a analógovým blokom, ktoré poskytujú funkcionalitu a flexibilitu charakteristickú pre celú rodinu PSoC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_JadroPSoC.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.1 Jadro PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Registre procesora M8C ===&lt;br /&gt;
&lt;br /&gt;
'''M8C''' je 8-bitový [http://sk.wikipedia.org/wiki/Mikroprocesor mikroprocesor] MIPS harvardskej architektúry s voliteľnou hodinovou frekvenciou od 93.7 kHz do 24 MHz. Má päť vnútorných [http://sk.wikipedia.org/wiki/Register_(procesor) registrov], ktoré sú využívané pri vykonávaní programu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_registreprocesora.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.2 Registre procesora M8C&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Štruktúra pamäte M8C ===&lt;br /&gt;
&lt;br /&gt;
M8C má tri adresné priestory: [http://sk.wikipedia.org/wiki/ROM ROM], RAM a registre. K adresnému priestoru ROM pristupujeme cez jeho vlastné adresy a dátovú [http://sk.wikipedia.org/wiki/Zbernica#Zbernica_po.C4.8D.C3.ADta.C4.8Da zbernicu]. ROM zahŕňa SROM a Flash pamäte. V pamäti Flash je uložený firmvér zariadenia a je rozdelená do 64-bajtových blokov. Používateľ nemusí ošetrovať prechod programu na ďalšiu pamäťovú stránku, pretože M8C automaticky zvyšuje 16-bitový register PC pri každej inštrukcii presahujúcej hranice aktuálnej stránky. V pamäti SROM je uložený program využívaný na spúšťanie PSoC, kalibrovanie obvodov a vykonávanie operácií s pamäťou Flash. Funkcie zabezpečované SROM sú volané z programu uloženého v pamäti Flash alebo pomocou programátora. Adresný priestor registrov je využívaný na konfigurovanie programovateľných blokov mikroprocesora. Skladá sa z dvoch 256-bajtových blokov. Na prepínanie medzi blokmi sa nastavuje bit XIO v registri F. Ak je F nastavený, zvolí sa blok1, ak nie je nastavený, zvolí sa blok0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_adresnypriestor.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.3 Adresný priestor&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inštrukčné formáty ===&lt;br /&gt;
&lt;br /&gt;
M8C má spolu sedem inštrukčných formátov, ktoré používajú inštrukcie o dĺžkach jeden, dva a tri bajty. Všetky bajty inštrukcie sú vyvolávané z programovej pamäte Flash, za použitia adries a dátovej zbernice, ktoré sú nezávislé od adries a dátovej zbernice používaných pre registre a prístup do pamäte RAM. &lt;br /&gt;
&lt;br /&gt;
== Digitálne a analógové bloky PSoC ==&lt;br /&gt;
&lt;br /&gt;
'''Digitálne a analógové bloky sú moduly''' vytvorené z digitálnych a analógových prvkov, ktoré sú konfigurovateľné pre rôzne druhy operácií pomocou registrov špecifických pre každý blok.&lt;br /&gt;
&lt;br /&gt;
=== Digitálne bloky ===&lt;br /&gt;
&lt;br /&gt;
'''Digitálne bloky''' &amp;lt;ref&amp;gt;http://www.lubino.sk/rs/3/files/diplomka_-_ubo.pdf&amp;lt;/ref&amp;gt; redukujú potrebu použitia ďalších externých obvodov pre požadovanú funkcionalitu pripravovaného zariadenia. Sú určené na spracovávanie a generovanie hlavne digitálneho signálu. Dajú sa programovať a variovať tak, aby poskytovali funkčnosť štandardných elektronických integrovaných obvodov ako napríklad počítadlo, šírkový generátor pulzov, RS-232, IrDA, SPI, I2C príjem a binárnych dát, generátory pseudonáhodných čísel a iné. Taktiež sa používajú na prípravu požadovaného taktovacieho signálu pre analógové bloky, prípadne na spracovanie signálov z analógových blokov (možné prepojenie cez vstupno-výstupné piny). Ich činnosť je nezávislá na behu programu mikroprocesora, avšak môže byť moderovaná programom pomocou [http://sk.wikipedia.org/wiki/Application_programming_interface API] funkcií.&lt;br /&gt;
&lt;br /&gt;
* PWMs (8 to 32 bit)&lt;br /&gt;
* [http://www.cypress.com/?docID=19560 PWMs with Dead band (8 to 32 bit)] &lt;br /&gt;
* [http://www.cypress.com/?docID=19121 Counters (8 to 32 bit)]&lt;br /&gt;
* [http://www.cypress.com/?docID=19152 Timers (8 to 32 bit)]&lt;br /&gt;
* [http://www.cypress.com/?docID=19130 UART 8 bit with selectable parity (up to 2)]&lt;br /&gt;
* [http://www.cypress.com/?docID=19104 SPI slave and master (up to 2)]&lt;br /&gt;
* [http://www.cypress.com/?docID=20823 I2C slave and multi-master (1 available as a System Resource)]&lt;br /&gt;
* [http://www.cypress.com/?docID=16559 Cyclical Redundancy Checker/Generator (8 to 32 bit)]&lt;br /&gt;
* [http://www.cypress.com/?docID=19131 IrDA (up to 2)]&lt;br /&gt;
* [http://www.cypress.com/?docID=19082 Pseudo Random Sequence Generators (8 to 32 bit)]&lt;br /&gt;
&lt;br /&gt;
=== Analógové bloky ===&lt;br /&gt;
&lt;br /&gt;
'''Analógové bloky''' &amp;lt;ref&amp;gt;http://www.lubino.sk/rs/3/files/diplomka_-_ubo.pdf&amp;lt;/ref&amp;gt; sú taktiež zdrojom prostriedkov pre aplikácie, avšak orientované na spracovávanie a generovanie analógových signálov. Základom analógových blokov sú obvody spínače, prepínače, operačné zosilňovače a spínané kondenzátory. Každý analógový obvod ma viac potenciálne použiteľných vstupov a výstupov. K dispozícii sú vždy tieto tri výstupy:&lt;br /&gt;
* analógová výstupná zbernica (ABUS)&lt;br /&gt;
* porovnávacia zbernica (CBUS)&lt;br /&gt;
* výstupná zbernica (OUT)&lt;br /&gt;
&lt;br /&gt;
Zoznam analógových blokov:&lt;br /&gt;
&lt;br /&gt;
* Analog-to-digital converters (up to 4, with 6- to 14-bit resolution, selectable as Incremental, Delta Sigma, and SAR)&lt;br /&gt;
* Filters (2, 4, 6, and 8 pole band-pass, low-pass, and notch)&lt;br /&gt;
* Amplifiers (up to 4, with selectable gain to 48x)&lt;br /&gt;
* Instrumentation amplifiers (up to 2, with selectable gain to 93x)&lt;br /&gt;
* Comparators (up to 4, with 16 selectable thresholds)&lt;br /&gt;
* DACs (up to 4, with 6- to 9-bit resolution)&lt;br /&gt;
* Multiplying DACs (up to 4, with 6- to 9-bit resolution)&lt;br /&gt;
* High current output drivers (four with 30 mA drive as a Core Resource)&lt;br /&gt;
* 1.3V reference (as a System Resource)&lt;br /&gt;
* DTMF Dialer&lt;br /&gt;
* Modulators&lt;br /&gt;
* Correlators&lt;br /&gt;
* Peak detectors&lt;br /&gt;
* Many other topologies possible&lt;br /&gt;
&lt;br /&gt;
Analógová výstupná zbernica je vodičom analógového signálu. Túto zbernicu spolu zdieľajú analógové bloky v jednom stĺpci. Keďže je takýchto stĺpcov viac, je viac aj zberníc tohoto typu. Vo väčšine modelov mikroprocesora sú 4. K tejto zbernici je pripojený analógový výstupný zásobník (Analog Output Buffer), ktorý v závislosti od nastavenia prepojí zbernicu s nastaveným analógovým výstupným pinom. Porovnávacia zbernica je digitálnou zbernicou a taktiež ju zdieľajú všetky analógové bloky v jednom stĺpci. Túto zbernicu nie je možné pripojiť na vstupno-výstupný pin, ale je možné pripojiť ju na vstup niektorého digitálneho bloku. Podobne aj výstupná zbernica je zdieľaná vrámci jedného stĺpca.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Diskusia:Elektrick%C3%A9_a_mechanick%C3%A9_parametre_architekt%C3%BAry_PSoC&amp;diff=5654</id>
		<title>Diskusia:Elektrické a mechanické parametre architektúry PSoC</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Diskusia:Elektrick%C3%A9_a_mechanick%C3%A9_parametre_architekt%C3%BAry_PSoC&amp;diff=5654"/>
		<updated>2010-06-23T08:04:09Z</updated>

		<summary type="html">&lt;p&gt;Dusan: Vytvorená stránka „neviem čo doplniť“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;neviem čo doplniť&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Diskusia:Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5650</id>
		<title>Diskusia:Prehľad architektúry PSoC</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Diskusia:Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5650"/>
		<updated>2010-06-23T08:00:27Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zdravím, v práci som použil časti textu z práce vašeho študenta z UK Luboša Strapka(lubino@gmail.com), ktorého som kontaktoval.&lt;br /&gt;
Dostal som od neho povolenie a napísal, že by chcel na Vás kontakt.&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Diskusia:Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5648</id>
		<title>Diskusia:Prehľad architektúry PSoC</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Diskusia:Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5648"/>
		<updated>2010-06-23T07:57:48Z</updated>

		<summary type="html">&lt;p&gt;Dusan: Vytvorená stránka „Zdravím, v práci som použil časti textu z práce vašeho študenta z KU Luboša Strapka(lubino@gmail.com), ktorého som kontaktoval. Dostal som od neho povolenie a nap…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zdravím, v práci som použil časti textu z práce vašeho študenta z KU Luboša Strapka(lubino@gmail.com), ktorého som kontaktoval.&lt;br /&gt;
Dostal som od neho povolenie a napísal, že by chcel na Vás kontakt.&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=U%C5%BE%C3%ADvate%C4%BE:Dusan&amp;diff=5509</id>
		<title>Užívateľ:Dusan</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=U%C5%BE%C3%ADvate%C4%BE:Dusan&amp;diff=5509"/>
		<updated>2010-06-22T19:30:34Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Well-formed-xml-tags.jpg|right|top]]&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
meno=Dušan Pagáč&lt;br /&gt;
pôsobnosť=študent, teda aspoň to vravia&lt;br /&gt;
čo viem= vyhovárať sa&lt;br /&gt;
čo neviem= ?&lt;br /&gt;
na kiwiki som= varený pečený&lt;br /&gt;
kontakt=pagacdusan85[zavinac]gmail[bodka]com&lt;br /&gt;
na kiwiki poradím pri= vkladaní bakalárskych prác&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Volám sa Dušan Pagáč a tretím rokom sa snažím študovať ME na FM.&lt;br /&gt;
Mojou úlohou na ''http://kiwiki.fmtnuni.sk'' je vás sledovať.&lt;br /&gt;
&lt;br /&gt;
Upozorňujem Vás, že na tej foto nie som ja takže mi nepíšte, že chcete telefóne číslo.&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=U%C5%BE%C3%ADvate%C4%BE:Dusan&amp;diff=5507</id>
		<title>Užívateľ:Dusan</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=U%C5%BE%C3%ADvate%C4%BE:Dusan&amp;diff=5507"/>
		<updated>2010-06-22T19:28:07Z</updated>

		<summary type="html">&lt;p&gt;Dusan: Vytvorená stránka „top &amp;lt;properties&amp;gt; meno=Dušan Pagáč pôsobnosť=študent, teda aspoň to vravia čo viem= vyhovárať sa čo neviem= ? na kiwiki s…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Well-formed-xml-tags.jpg|right|top]]&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
meno=Dušan Pagáč&lt;br /&gt;
pôsobnosť=študent, teda aspoň to vravia&lt;br /&gt;
čo viem= vyhovárať sa&lt;br /&gt;
čo neviem= ?&lt;br /&gt;
na kiwiki som= varený pečený&lt;br /&gt;
kontakt=pagacdusan85[zavinac]gmail[bodka]com&lt;br /&gt;
na kiwiki poradím pri= vkladaní bakalárskych prác&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Volám sa Dušan Pagáč a tretím rokom sa snažím študovať ME na FM.&lt;br /&gt;
&lt;br /&gt;
Mojou úlohou na ''http://kiwiki.fmtnuni.sk'' je vás sledovať.&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=S%C3%BAbor:Well-formed-xml-tags.jpg&amp;diff=5506</id>
		<title>Súbor:Well-formed-xml-tags.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=S%C3%BAbor:Well-formed-xml-tags.jpg&amp;diff=5506"/>
		<updated>2010-06-22T19:24:32Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=V%C3%BDvojov%C3%A9_prostredie_pre_syst%C3%A9my_PSoC&amp;diff=5503</id>
		<title>Vývojové prostredie pre systémy PSoC</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=V%C3%BDvojov%C3%A9_prostredie_pre_syst%C3%A9my_PSoC&amp;diff=5503"/>
		<updated>2010-06-22T18:40:48Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;K vytváraniu aplikácie, resp. programu, pro PSoC je z programátorského hľadiska najlepšie použiť k tomu firmou Cypress určené vývojové prostredie PSoC Designer&amp;lt;ref&amp;gt;http://www.cypress.com&amp;lt;/ref&amp;gt;. Slúži na návrh správneho nastavenia všetkých registrov, zberníc&lt;br /&gt;
a blokov ako aj naprogramovanie algoritmu pre mikrokontrolér. Je to grafické prostredie, kde je možné skúšať jednotlivé varianty, ktoré&lt;br /&gt;
sa dajú z PSoC blokov zapojiť. Obsahuje množstvo modulov aj s dokumentáciou a potrebným rozhraním pre nastavovanie ich jednotlivých parametrov. PSoC Designer obsahuje aj podprogram, pre kontrolu korektného zapojenia jednotlivých modulov a rovno počas navrhovania vnútornej štruktúry môže užívateľ vidieť jednotlivé možnosti zapojenia.  Typickým digitálnym užívateľským modulom je UART a typickým analógovým užívateľským modulom je napríklad 12-bitový ADC. &lt;br /&gt;
&lt;br /&gt;
PSoC Designer:&lt;br /&gt;
* Návrh na úrovni chipu&lt;br /&gt;
** Návrh architektúry (bloky a ich vlastnosti)&lt;br /&gt;
** Assembler&lt;br /&gt;
** C Kompilátor&lt;br /&gt;
** Programátor&lt;br /&gt;
** ICE (In Circuit Emulator) Debuger&lt;br /&gt;
* Návrh na úrovni systému&lt;br /&gt;
** Grafické programovanie&lt;br /&gt;
** Definovanie vlastností a vzťahov medzi vstupmi a výstupmi&lt;br /&gt;
&lt;br /&gt;
HW nároky:&lt;br /&gt;
* PC (1GHz, 512MB RAM), OS Windows&lt;br /&gt;
* Programátor&lt;br /&gt;
* ICE pre náročnejšiu prácu&lt;br /&gt;
&lt;br /&gt;
OS Linux:&lt;br /&gt;
* Virtual Box + Win XP, zdielané adresáre s OS&lt;br /&gt;
* PSoC Designer je kompletne funkčný vrátane USB programátora, Debuggera ICE box atď.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_pdchip.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 1.1 PSoC Designer - Chip Level design&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_pdsl.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 1.2 PSoC Designer - System Level Design&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=S%C3%BAbor:Pagac_pdsl.png&amp;diff=5502</id>
		<title>Súbor:Pagac pdsl.png</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=S%C3%BAbor:Pagac_pdsl.png&amp;diff=5502"/>
		<updated>2010-06-22T18:40:09Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=S%C3%BAbor:Pagac_pdchip.png&amp;diff=5501</id>
		<title>Súbor:Pagac pdchip.png</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=S%C3%BAbor:Pagac_pdchip.png&amp;diff=5501"/>
		<updated>2010-06-22T18:37:57Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=V%C3%BDvojov%C3%A9_prostredie_pre_syst%C3%A9my_PSoC&amp;diff=5500</id>
		<title>Vývojové prostredie pre systémy PSoC</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=V%C3%BDvojov%C3%A9_prostredie_pre_syst%C3%A9my_PSoC&amp;diff=5500"/>
		<updated>2010-06-22T18:33:59Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;K vytváraniu aplikácie, resp. programu, pro PSoC je z programátorského hľadiska najlepšie použiť k tomu firmou Cypress určené vývojové prostredie PSoC Designer&amp;lt;ref&amp;gt;http://www.cypress.com&amp;lt;/ref&amp;gt;. Slúži na návrh správneho nastavenia všetkých registrov, zberníc&lt;br /&gt;
a blokov ako aj naprogramovanie algoritmu pre mikrokontrolér. Je to grafické prostredie, kde je možné skúšať jednotlivé varianty, ktoré&lt;br /&gt;
sa dajú z PSoC blokov zapojiť. Obsahuje množstvo modulov aj s dokumentáciou a potrebným rozhraním pre nastavovanie ich jednotlivých parametrov. PSoC Designer obsahuje aj podprogram, pre kontrolu korektného zapojenia jednotlivých modulov a rovno počas navrhovania vnútornej štruktúry môže užívateľ vidieť jednotlivé možnosti zapojenia.  Typickým digitálnym užívateľským modulom je UART a typickým analógovým užívateľským modulom je napríklad 12-bitový ADC. &lt;br /&gt;
&lt;br /&gt;
PSoC Designer:&lt;br /&gt;
* Návrh na úrovni chipu&lt;br /&gt;
** Návrh architektúry (bloky a ich vlastnosti)&lt;br /&gt;
** Assembler&lt;br /&gt;
** C Kompilátor&lt;br /&gt;
** Programátor&lt;br /&gt;
** ICE (In Circuit Emulator) Debuger&lt;br /&gt;
* Návrh na úrovni systému&lt;br /&gt;
** Grafické programovanie&lt;br /&gt;
** Definovanie vlastností a vzťahov medzi vstupmi a výstupmi&lt;br /&gt;
&lt;br /&gt;
HW nároky:&lt;br /&gt;
* PC (1GHz, 512MB RAM), OS Windows&lt;br /&gt;
* Programátor&lt;br /&gt;
* ICE pre náročnejšiu prácu&lt;br /&gt;
&lt;br /&gt;
OS Linux:&lt;br /&gt;
* Virtual Box + Win XP, zdielané adresáre s OS&lt;br /&gt;
* PSoC Designer je kompletne funkčný vrátane USB programátora, Debuggera ICE box atď.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5499</id>
		<title>Prehľad architektúry PSoC</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5499"/>
		<updated>2010-06-22T18:15:10Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Mikroprocesory PSoC''' &amp;lt;ref&amp;gt;http://www.cypress.com&amp;lt;/ref&amp;gt; (Programmable System on Chip – Programovateľný systém na čipe) sa skladajú z konfigurovateľných blokov analógových obvodov a digitálnej logiky, ktoré sú vzájomne programovo prepojené. Uvedená architektúra umožňuje vytvárať zákaznícke konfigurácie mikroprocesora tak, aby boli splnené požiadavky potrebné na realizáciu jednotlivých aplikácií. Bloková schéma na Obr. 1.1 zobrazuje architektúru celej rodiny mikroprocesorov PSoC. &lt;br /&gt;
&lt;br /&gt;
== Vnútorná štruktúra PSoC ==&lt;br /&gt;
&lt;br /&gt;
Spoločnosť '''Cypress''' vyvinula niekoľko desiatok typov súčiastok typov PSoC. Líšia sa predovšetkým množstvom a druhom blokov, veľkosťou pamäti programu ([http://sk.wikipedia.org/wiki/FLASH FLASH]), pamäťou dát ([http://sk.wikipedia.org/wiki/Pam%C3%A4%C5%A5_s_priamym_pr%C3%ADstupom RAM]), veľkosťou a druhom puzdier a ďalšími parametrami. V závislosti na type obsahujú 4-16 digitálnych a 3-12 analógových blokov. &lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_struktura.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 1.1 Vnútorná štruktúra PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== M8C – procesorové jadro ==&lt;br /&gt;
&lt;br /&gt;
Na Obr. 2.1 sú zobrazené prvky architektúry jadra PSoC. Procesor je 8-bitový a dokáže spracovať až 4 milióny inštrukcií za sekundu.&lt;br /&gt;
8-bitová architektúra podporuje použitie až 64 kilobajtov pamäti Flash, v ktorej je uložená užívateľská aplikácia. Flash pamäť je „in-circuit programmable“, takže PSoC je možné programovať aj potom, ako je zapojený do dosky plošných spojov. Flash je zároveň aj „in-application programmable“, čo znamená, že mikroprocesor je schopný dynamicky meniť svoju vlastnú pamäť. [http://sk.wikipedia.org/wiki/Procesor Procesor] je pripojený k viacerým digitálnym a analógovým blokom, ktoré poskytujú funkcionalitu a flexibilitu charakteristickú pre celú rodinu PSoC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_JadroPSoC.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.1 Jadro PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Registre procesora M8C ===&lt;br /&gt;
&lt;br /&gt;
'''M8C''' je 8-bitový [http://sk.wikipedia.org/wiki/Mikroprocesor mikroprocesor] MIPS harvardskej architektúry s voliteľnou hodinovou frekvenciou od 93.7 kHz do 24 MHz. Má päť vnútorných [http://sk.wikipedia.org/wiki/Register_(procesor) registrov], ktoré sú využívané pri vykonávaní programu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_registreprocesora.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.2 Registre procesora M8C&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Štruktúra pamäte M8C ===&lt;br /&gt;
&lt;br /&gt;
M8C má tri adresné priestory: [http://sk.wikipedia.org/wiki/ROM ROM], RAM a registre. K adresnému priestoru ROM pristupujeme cez jeho vlastné adresy a dátovú [http://sk.wikipedia.org/wiki/Zbernica#Zbernica_po.C4.8D.C3.ADta.C4.8Da zbernicu]. ROM zahŕňa SROM a Flash pamäte. V pamäti Flash je uložený firmvér zariadenia a je rozdelená do 64-bajtových blokov. Používateľ nemusí ošetrovať prechod programu na ďalšiu pamäťovú stránku, pretože M8C automaticky zvyšuje 16-bitový register PC pri každej inštrukcii presahujúcej hranice aktuálnej stránky. V pamäti SROM je uložený program využívaný na spúšťanie PSoC, kalibrovanie obvodov a vykonávanie operácií s pamäťou Flash. Funkcie zabezpečované SROM sú volané z programu uloženého v pamäti Flash alebo pomocou programátora. Adresný priestor registrov je využívaný na konfigurovanie programovateľných blokov mikroprocesora. Skladá sa z dvoch 256-bajtových blokov. Na prepínanie medzi blokmi sa nastavuje bit XIO v registri F. Ak je F nastavený, zvolí sa blok1, ak nie je nastavený, zvolí sa blok0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_adresnypriestor.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.3 Adresný priestor&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inštrukčné formáty ===&lt;br /&gt;
&lt;br /&gt;
M8C má spolu sedem inštrukčných formátov, ktoré používajú inštrukcie o dĺžkach jeden, dva a tri bajty. Všetky bajty inštrukcie sú vyvolávané z programovej pamäte Flash, za použitia adries a dátovej zbernice, ktoré sú nezávislé od adries a dátovej zbernice používaných pre registre a prístup do pamäte RAM. &lt;br /&gt;
&lt;br /&gt;
== Digitálne a analógové bloky PSoC ==&lt;br /&gt;
&lt;br /&gt;
'''Digitálne a analógové bloky sú moduly''' vytvorené z digitálnych a analógových prvkov, ktoré sú konfigurovateľné pre rôzne druhy operácií pomocou registrov špecifických pre každý blok.&lt;br /&gt;
&lt;br /&gt;
=== Digitálne bloky ===&lt;br /&gt;
&lt;br /&gt;
'''Digitálne bloky''' &amp;lt;ref&amp;gt;http://www.lubino.sk/rs/3/files/diplomka_-_ubo.pdf&amp;lt;/ref&amp;gt; redukujú potrebu použitia ďalších externých obvodov pre požadovanú funkcionalitu pripravovaného zariadenia. Sú určené na spracovávanie a generovanie hlavne digitálneho signálu. Dajú sa programovať a variovať tak, aby poskytovali funkčnosť štandardných elektronických integrovaných obvodov ako napríklad počítadlo, šírkový generátor pulzov, RS-232, IrDA, SPI, I2C príjem a binárnych dát, generátory pseudonáhodných čísel a iné. Taktiež sa používajú na prípravu požadovaného taktovacieho signálu pre analógové bloky, prípadne na spracovanie signálov z analógových blokov (možné prepojenie cez vstupno-výstupné piny). Ich činnosť je nezávislá na behu programu mikroprocesora, avšak môže byť moderovaná programom pomocou [http://sk.wikipedia.org/wiki/Application_programming_interface API] funkcií.&lt;br /&gt;
&lt;br /&gt;
=== Analógové bloky ===&lt;br /&gt;
&lt;br /&gt;
'''Analógové bloky''' &amp;lt;ref&amp;gt;http://www.lubino.sk/rs/3/files/diplomka_-_ubo.pdf&amp;lt;/ref&amp;gt; sú taktiež zdrojom prostriedkov pre aplikácie, avšak orientované na spracovávanie a generovanie analógových signálov. Základom analógových blokov sú obvody spínače, prepínače, operačné zosilňovače a spínané kondenzátory. Každý analógový obvod ma viac potenciálne použiteľných vstupov a výstupov. K dispozícii sú vždy tieto tri výstupy:&lt;br /&gt;
* analógová výstupná zbernica (ABUS)&lt;br /&gt;
* porovnávacia zbernica (CBUS)&lt;br /&gt;
* výstupná zbernica (OUT)&lt;br /&gt;
&lt;br /&gt;
Analógová výstupná zbernica je vodičom analógového signálu. Túto zbernicu spolu zdieľajú analógové bloky v jednom stĺpci. Keďže je takýchto stĺpcov viac, je viac aj zberníc tohoto typu. Vo väčšine modelov mikroprocesora sú 4. K tejto zbernici je pripojený analógový výstupný zásobník (Analog Output Buffer), ktorý v závislosti od nastavenia prepojí zbernicu s nastaveným analógovým výstupným pinom. Porovnávacia zbernica je digitálnou zbernicou a taktiež ju zdieľajú všetky analógové bloky v jednom stĺpci. Túto zbernicu nie je možné pripojiť na vstupno-výstupný pin, ale je možné pripojiť ju na vstup niektorého digitálneho bloku. Podobne aj výstupná zbernica je zdieľaná vrámci jedného stĺpca.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5497</id>
		<title>Prehľad architektúry PSoC</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5497"/>
		<updated>2010-06-22T18:07:39Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Mikroprocesory PSoC''' &amp;lt;ref&amp;gt;http://www.cypress.com&amp;lt;/ref&amp;gt; (Programmable System on Chip – Programovateľný systém na čipe) sa skladajú z konfigurovateľných blokov analógových obvodov a digitálnej logiky, ktoré sú vzájomne programovo prepojené. Uvedená architektúra umožňuje vytvárať zákaznícke konfigurácie mikroprocesora tak, aby boli splnené požiadavky potrebné na realizáciu jednotlivých aplikácií. Bloková schéma na Obr. 1.1 zobrazuje architektúru celej rodiny mikroprocesorov PSoC. &lt;br /&gt;
&lt;br /&gt;
== Vnútorná štruktúra PSoC ==&lt;br /&gt;
&lt;br /&gt;
Spoločnosť '''Cypress''' vyvinula niekoľko desiatok typov súčiastok typov PSoC. Líšia sa predovšetkým množstvom a druhom blokov, veľkosťou pamäti programu ([http://sk.wikipedia.org/wiki/FLASH FLASH]), pamäťou dát ([http://sk.wikipedia.org/wiki/Pam%C3%A4%C5%A5_s_priamym_pr%C3%ADstupom RAM]), veľkosťou a druhom puzdier a ďalšími parametrami. V závislosti na type obsahujú 4-16 digitálnych a 3-12 analógových blokov. &lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_struktura.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 1.1 Vnútorná štruktúra PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== M8C – procesorové jadro ==&lt;br /&gt;
&lt;br /&gt;
Na Obr. 2.1 sú zobrazené prvky architektúry jadra PSoC. Procesor je 8-bitový a dokáže spracovať až 4 milióny inštrukcií za sekundu.&lt;br /&gt;
8-bitová architektúra podporuje použitie až 64 kilobajtov pamäti Flash, v ktorej je uložená užívateľská aplikácia. Flash pamäť je „in-circuit programmable“, takže PSoC je možné programovať aj potom, ako je zapojený do dosky plošných spojov. Flash je zároveň aj „in-application programmable“, čo znamená, že mikroprocesor je schopný dynamicky meniť svoju vlastnú pamäť. [http://sk.wikipedia.org/wiki/Procesor Procesor] je pripojený k viacerým digitálnym a analógovým blokom, ktoré poskytujú funkcionalitu a flexibilitu charakteristickú pre celú rodinu PSoC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_JadroPSoC.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.1 Jadro PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Registre procesora M8C ===&lt;br /&gt;
&lt;br /&gt;
'''M8C''' je 8-bitový [http://sk.wikipedia.org/wiki/Mikroprocesor mikroprocesor] MIPS harvardskej architektúry s voliteľnou hodinovou frekvenciou od 93.7 kHz do 24 MHz. Má päť vnútorných [http://sk.wikipedia.org/wiki/Register_(procesor) registrov], ktoré sú využívané pri vykonávaní programu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_registreprocesora.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.2 Registre procesora M8C&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Štruktúra pamäte M8C ===&lt;br /&gt;
&lt;br /&gt;
M8C má tri adresné priestory: [http://sk.wikipedia.org/wiki/ROM ROM], RAM a registre. K adresnému priestoru ROM pristupujeme cez jeho vlastné adresy a dátovú [http://sk.wikipedia.org/wiki/Zbernica#Zbernica_po.C4.8D.C3.ADta.C4.8Da zbernicu]. ROM zahŕňa SROM a Flash pamäte. V pamäti Flash je uložený firmvér zariadenia a je rozdelená do 64-bajtových blokov. Používateľ nemusí ošetrovať prechod programu na ďalšiu pamäťovú stránku, pretože M8C automaticky zvyšuje 16-bitový register PC pri každej inštrukcii presahujúcej hranice aktuálnej stránky. V pamäti SROM je uložený program využívaný na spúšťanie PSoC, kalibrovanie obvodov a vykonávanie operácií s pamäťou Flash. Funkcie zabezpečované SROM sú volané z programu uloženého v pamäti Flash alebo pomocou programátora. Adresný priestor registrov je využívaný na konfigurovanie programovateľných blokov mikroprocesora. Skladá sa z dvoch 256-bajtových blokov. Na prepínanie medzi blokmi sa nastavuje bit XIO v registri F. Ak je F nastavený, zvolí sa blok1, ak nie je nastavený, zvolí sa blok0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_adresnypriestor.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.3 Adresný priestor&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inštrukčné formáty ===&lt;br /&gt;
&lt;br /&gt;
M8C má spolu sedem inštrukčných formátov, ktoré používajú inštrukcie o dĺžkach jeden, dva a tri bajty. Všetky bajty inštrukcie sú vyvolávané z programovej pamäte Flash, za použitia adries a dátovej zbernice, ktoré sú nezávislé od adries a dátovej zbernice používaných pre registre a prístup do pamäte RAM. &lt;br /&gt;
&lt;br /&gt;
== Digitálne a analógové bloky PSoC ==&lt;br /&gt;
&lt;br /&gt;
'''Digitálne a analógové bloky sú moduly''' vytvorené z digitálnych a analógových prvkov, ktoré sú konfigurovateľné pre rôzne druhy operácií pomocou registrov špecifických pre každý blok.&lt;br /&gt;
&lt;br /&gt;
=== Digitálne bloky ===&lt;br /&gt;
&lt;br /&gt;
'''Digitálne bloky''' &amp;lt;ref&amp;gt;http://www.lubino.sk/rs/3/files/diplomka_-_ubo.pdf&amp;lt;/ref&amp;gt; redukujú potrebu použitia ďalších externých obvodov pre požadovanú funkcionalitu pripravovaného zariadenia. Sú určené na spracovávanie a generovanie hlavne digitálneho signálu. Dajú sa programovať a variovať tak, aby poskytovali funkčnosť štandardných elektronických integrovaných obvodov ako napríklad počítadlo, šírkový generátor pulzov, RS-232, IrDA, SPI, I2C príjem a binárnych dát, generátory pseudonáhodných čísel a iné. Taktiež sa používajú na prípravu požadovaného taktovacieho signálu pre analógové bloky, prípadne na spracovanie signálov z analógových blokov (možné prepojenie cez vstupno-výstupné piny). Ich činnosť je nezávislá na behu programu mikroprocesora, avšak môže byť moderovaná programom pomocou [http://sk.wikipedia.org/wiki/Application_programming_interface API] funkcií.&lt;br /&gt;
&lt;br /&gt;
=== Analógové bloky ===&lt;br /&gt;
&lt;br /&gt;
'''Analógové bloky''' &amp;lt;ref&amp;gt;http://www.lubino.sk/rs/3/files/diplomka_-_ubo.pdf&amp;lt;/ref&amp;gt; sú taktiež zdrojom prostriedkov pre aplikácie, avšak orientované na spracovávanie a generovanie analógových signálov. Základom analógových blokov sú obvody spínače, prepínače, operačné zosilňovače a spínané kondenzátory. Každý analógový obvod ma viac potenciálne použiteľných vstupov a výstupov. K dispozícii sú vždy tieto tri výstupy:&lt;br /&gt;
* analógová výstupná zbernica (ABUS)&lt;br /&gt;
* porovnávacia zbernica (CBUS)&lt;br /&gt;
* výstupná zbernica (OUT)&lt;br /&gt;
&lt;br /&gt;
Analógová výstupná zbernica je vodičom analógového signálu. Túto zbernicu spolu zdieľajú analógové bloky v jednom stĺpci. Keďže je takýchto stĺpcov viac, je viac aj zberníc tohoto typu. Vo väčšine modelov mikroprocesora sú ich 4. K tejto zbernici je pripojený analógový výstupný zásobník (Analog Output Buffer), ktorý v závislosti od nastavenia prepojí zbernicu s nastaveným analógovým výstupným pinom. Porovnávacia zbernica je digitálnou zbernicou a taktiež ju zdieľajú všetky analógové bloky v jednom stĺpci. Túto zbernicu nie je možné pripojiť na vstupno-výstupný pin, ale je možné pripojiť ju na vstup niektorého digitálneho bloku. Podobne aj výstupná zbernica je zdieľaná vrámci jedného stĺpca.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5496</id>
		<title>Prehľad architektúry PSoC</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5496"/>
		<updated>2010-06-22T18:05:47Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mikroprocesory PSoC &amp;lt;ref&amp;gt;http://www.cypress.com&amp;lt;/ref&amp;gt; (Programmable System on Chip – Programovateľný systém na čipe) sa skladajú z konfigurovateľných blokov analógových obvodov a digitálnej logiky, ktoré sú vzájomne programovo prepojené. Uvedená architektúra umožňuje vytvárať zákaznícke konfigurácie mikroprocesora tak, aby boli splnené požiadavky potrebné na realizáciu jednotlivých aplikácií. Bloková schéma na Obr. 1.1 zobrazuje architektúru celej rodiny mikroprocesorov PSoC. &lt;br /&gt;
&lt;br /&gt;
== Vnútorná štruktúra PSoC ==&lt;br /&gt;
&lt;br /&gt;
Spoločnosť Cypress vyvinula niekoľko desiatok typov súčiastok typov PSoC. Líšia sa predovšetkým množstvom a druhom blokov, veľkosťou pamäti programu ([http://sk.wikipedia.org/wiki/FLASH FLASH]), pamäťou dát ([http://sk.wikipedia.org/wiki/Pam%C3%A4%C5%A5_s_priamym_pr%C3%ADstupom RAM]), veľkosťou a druhom puzdier a ďalšími parametrami. V závislosti na type obsahujú 4-16 digitálnych a 3-12 analógových blokov. &lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_struktura.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 1.1 Vnútorná štruktúra PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== M8C – procesorové jadro ==&lt;br /&gt;
&lt;br /&gt;
Na Obr. 2.1 sú zobrazené prvky architektúry jadra PSoC. Procesor je 8-bitový a dokáže spracovať až 4 milióny inštrukcií za sekundu.&lt;br /&gt;
8-bitová architektúra podporuje použitie až 64 kilobajtov pamäti Flash, v ktorej je uložená užívateľská aplikácia. Flash pamäť je „in-circuit programmable“, takže PSoC je možné programovať aj potom, ako je zapojený do dosky plošných spojov. Flash je zároveň aj „in-application programmable“, čo znamená, že mikroprocesor je schopný dynamicky meniť svoju vlastnú pamäť. [http://sk.wikipedia.org/wiki/Procesor Procesor] je pripojený k viacerým digitálnym a analógovým blokom, ktoré poskytujú funkcionalitu a flexibilitu charakteristickú pre celú rodinu PSoC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_JadroPSoC.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.1 Jadro PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Registre procesora M8C ===&lt;br /&gt;
&lt;br /&gt;
M8C je 8-bitový [http://sk.wikipedia.org/wiki/Mikroprocesor mikroprocesor] MIPS harvardskej architektúry s voliteľnou hodinovou frekvenciou od 93.7 kHz do 24 MHz. Má päť vnútorných [http://sk.wikipedia.org/wiki/Register_(procesor) registrov], ktoré sú využívané pri vykonávaní programu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_registreprocesora.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.2 Registre procesora M8C&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Štruktúra pamäte M8C ===&lt;br /&gt;
&lt;br /&gt;
M8C má tri adresné priestory: [http://sk.wikipedia.org/wiki/ROM ROM], RAM a registre. K adresnému priestoru ROM pristupujeme cez jeho vlastné adresy a dátovú [http://sk.wikipedia.org/wiki/Zbernica#Zbernica_po.C4.8D.C3.ADta.C4.8Da zbernicu]. ROM zahŕňa SROM a Flash pamäte. V pamäti Flash je uložený firmvér zariadenia a je rozdelená do 64-bajtových blokov. Používateľ nemusí ošetrovať prechod programu na ďalšiu pamäťovú stránku, pretože M8C automaticky zvyšuje 16-bitový register PC pri každej inštrukcii presahujúcej hranice aktuálnej stránky. V pamäti SROM je uložený program využívaný na spúšťanie PSoC, kalibrovanie obvodov a vykonávanie operácií s pamäťou Flash. Funkcie zabezpečované SROM sú volané z programu uloženého v pamäti Flash alebo pomocou programátora. Adresný priestor registrov je využívaný na konfigurovanie programovateľných blokov mikroprocesora. Skladá sa z dvoch 256-bajtových blokov. Na prepínanie medzi blokmi sa nastavuje bit XIO v registri F. Ak je F nastavený, zvolí sa blok1, ak nie je nastavený, zvolí sa blok0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_adresnypriestor.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.3 Adresný priestor&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inštrukčné formáty ===&lt;br /&gt;
&lt;br /&gt;
M8C má spolu sedem inštrukčných formátov, ktoré používajú inštrukcie o dĺžkach jeden, dva a tri bajty. Všetky bajty inštrukcie sú vyvolávané z programovej pamäte Flash, za použitia adries a dátovej zbernice, ktoré sú nezávislé od adries a dátovej zbernice používaných pre registre a prístup do pamäte RAM. &lt;br /&gt;
&lt;br /&gt;
== Digitálne a analógové bloky PSoC ==&lt;br /&gt;
&lt;br /&gt;
Digitálne a analógové bloky sú moduly vytvorené z digitálnych a analógových prvkov, ktoré sú konfigurovateľné pre rôzne druhy operácií pomocou registrov špecifických pre každý blok.&lt;br /&gt;
&lt;br /&gt;
=== Digitálne bloky ===&lt;br /&gt;
&lt;br /&gt;
Digitálne bloky &amp;lt;ref&amp;gt;http://www.lubino.sk/rs/3/files/diplomka_-_ubo.pdf&amp;lt;/ref&amp;gt; redukujú potrebu použitia ďalších externých obvodov pre požadovanú funkcionalitu pripravovaného zariadenia. Sú určené na spracovávanie a generovanie hlavne digitálneho signálu. Dajú sa programovať a variovať tak, aby poskytovali funkčnosť štandardných elektronických integrovaných obvodov ako napríklad počítadlo, šírkový generátor pulzov, RS-232, IrDA, SPI, I2C príjem a binárnych dát, generátory pseudonáhodných čísel a iné. Taktiež sa používajú na prípravu požadovaného taktovacieho signálu pre analógové bloky, prípadne na spracovanie signálov z analógových blokov (možné prepojenie cez vstupno-výstupné piny). Ich činnosť je nezávislá na behu programu mikroprocesora, avšak môže byť moderovaná programom pomocou [http://sk.wikipedia.org/wiki/Application_programming_interface API] funkcií.&lt;br /&gt;
&lt;br /&gt;
=== Analógové bloky ===&lt;br /&gt;
&lt;br /&gt;
Analógové bloky &amp;lt;ref&amp;gt;http://www.lubino.sk/rs/3/files/diplomka_-_ubo.pdf&amp;lt;/ref&amp;gt; sú taktiež zdrojom prostriedkov pre aplikácie, avšak orientované na spracovávanie a generovanie analógových signálov. Základom analógových blokov sú obvody spínače, prepínače, operačné zosilňovače a spínané kondenzátory. Každý analógový obvod ma viac potenciálne použiteľných vstupov a výstupov. K dispozícii sú vždy tieto tri výstupy:&lt;br /&gt;
* analógová výstupná zbernica (ABUS)&lt;br /&gt;
* porovnávacia zbernica (CBUS)&lt;br /&gt;
* výstupná zbernica (OUT)&lt;br /&gt;
&lt;br /&gt;
Analógová výstupná zbernica je vodičom analógového signálu. Túto zbernicu spolu zdieľajú analógové bloky v jednom stĺpci. Keďže je takýchto stĺpcov viac, je viac aj zberníc tohoto typu. Vo väčšine modelov mikroprocesora sú ich 4. K tejto zbernici je pripojený analógový výstupný zásobník (Analog Output Buffer), ktorý v závislosti od nastavenia prepojí zbernicu s nastaveným analógovým výstupným pinom. Porovnávacia zbernica je digitálnou zbernicou a taktiež ju zdieľajú všetky analógové bloky v jednom stĺpci. Túto zbernicu nie je možné pripojiť na vstupno-výstupný pin, ale je možné pripojiť ju na vstup niektorého digitálneho bloku. Podobne aj výstupná zbernica je zdieľaná vrámci jedného stĺpca.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5493</id>
		<title>Prehľad architektúry PSoC</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5493"/>
		<updated>2010-06-22T17:53:15Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mikroprocesory PSoC &amp;lt;ref&amp;gt;http://www.cypress.com&amp;lt;/ref&amp;gt; (Programmable System on Chip – Programovateľný systém na čipe) sa skladajú z konfigurovateľných blokov analógových obvodov a digitálnej logiky, ktoré sú vzájomne programovo prepojené. Uvedená architektúra umožňuje vytvárať zákaznícke konfigurácie mikroprocesora tak, aby boli splnené požiadavky potrebné na realizáciu jednotlivých aplikácií. Bloková schéma na Obr. 1.1 zobrazuje architektúru celej rodiny mikroprocesorov PSoC. &lt;br /&gt;
&lt;br /&gt;
== Vnútorná štruktúra PSoC ==&lt;br /&gt;
&lt;br /&gt;
Spoločnosť Cypress vyvinula niekoľko desiatok typov súčiastok typov PSoC. Líšia sa predovšetkým množstvom a druhom blokov, veľkosťou pamäti programu (FLASH), pamäťou dát (RAM), veľkosťou a druhom puzdier a ďalšími parametrami. V závislosti na type obsahujú 4-16 digitálnych a 3-12 analógových blokov. &lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_struktura.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 1.1 Vnútorná štruktúra PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== M8C – procesorové jadro ==&lt;br /&gt;
&lt;br /&gt;
Na Obr. 2.1 sú zobrazené prvky architektúry jadra PSoC. Procesor je 8-bitový a dokáže spracovať až 4 milióny inštrukcií za sekundu.&lt;br /&gt;
8-bitová architektúra podporuje použitie až 64 kilobajtov pamäti Flash, v ktorej je uložená užívateľská aplikácia. Flash pamäť je „in-circuit programmable“, takže PSoC je možné programovať aj potom, ako je zapojený do dosky plošných spojov. Flash je zároveň aj „in-application programmable“, čo znamená, že mikroprocesor je schopný dynamicky meniť svoju vlastnú pamäť. Procesor je pripojený k viacerým digitálnym a analógovým blokom, ktoré poskytujú funkcionalitu a flexibilitu charakteristickú pre celú rodinu PSoC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_JadroPSoC.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.1 Jadro PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Registre procesora M8C ===&lt;br /&gt;
&lt;br /&gt;
M8C je 8-bitový mikroprocesor MIPS harvardskej architektúry s voliteľnou hodinovou frekvenciou od 93.7 kHz do 24 MHz. Má päť vnútorných registrov, ktoré sú využívané pri vykonávaní programu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_registreprocesora.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.2 Registre procesora M8C&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Štruktúra pamäte M8C ===&lt;br /&gt;
&lt;br /&gt;
M8C má tri adresné priestory: ROM, RAM a registre. K adresnému priestoru ROM pristupujeme cez jeho vlastné adresy a dátovú zbernicu. ROM zahŕňa SROM a Flash pamäte. V pamäti Flash je uložený firmvér zariadenia a je rozdelená do 64-bajtových blokov. Používateľ nemusí ošetrovať prechod programu na ďalšiu pamäťovú stránku, pretože M8C automaticky zvyšuje 16-bitový register PC pri každej inštrukcii presahujúcej hranice aktuálnej stránky. V pamäti SROM je uložený program využívaný na spúšťanie PSoC, kalibrovanie obvodov a vykonávanie operácií s pamäťou Flash. Funkcie zabezpečované SROM sú volané z programu uloženého v pamäti Flash alebo pomocou programátora. Adresný priestor registrov je využívaný na konfigurovanie programovateľných blokov mikroprocesora. Skladá sa z dvoch 256-bajtových blokov. Na prepínanie medzi blokmi sa nastavuje bit XIO v registri F. Ak je F nastavený, zvolí sa blok1, ak nie je nastavený, zvolí sa blok0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_adresnypriestor.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.3 Adresný priestor&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inštrukčné formáty ===&lt;br /&gt;
&lt;br /&gt;
M8C má spolu sedem inštrukčných formátov, ktoré používajú inštrukcie o dĺžkach jeden, dva a tri bajty. Všetky bajty inštrukcie sú vyvolávané z programovej pamäte Flash, za použitia adries a dátovej zbernice, ktoré sú nezávislé od adries a dátovej zbernice používaných pre registre a prístup do pamäte RAM. &lt;br /&gt;
&lt;br /&gt;
== Digitálne a analógové bloky PSoC ==&lt;br /&gt;
&lt;br /&gt;
Digitálne a analógové bloky sú moduly vytvorené z digitálnych a analógových prvkov, ktoré sú konfigurovateľné pre rôzne druhy operácií pomocou registrov špecifických pre každý blok.&lt;br /&gt;
&lt;br /&gt;
=== Digitálne bloky ===&lt;br /&gt;
&lt;br /&gt;
Digitálne bloky &amp;lt;ref&amp;gt;http://www.lubino.sk/rs/3/files/diplomka_-_ubo.pdf&amp;lt;/ref&amp;gt; redukujú potrebu použitia ďalších externých obvodov pre požadovanú funkcionalitu pripravovaného zariadenia. Sú určené na spracovávanie a generovanie hlavne digitálneho signálu. Dajú sa programovať a variovať tak, aby poskytovali funkčnosť štandardných elektronických integrovaných obvodov ako napríklad počítadlo, šírkový generátor pulzov, RS-232, IrDA, SPI, I2C príjem a binárnych dát, generátory pseudonáhodných čísel a iné. Taktiež sa používajú na prípravu požadovaného taktovacieho signálu pre analógové bloky, prípadne na spracovanie signálov z analógových blokov (možné prepojenie cez vstupno-výstupné piny). Ich činnosť je nezávislá na behu programu mikroprocesora, avšak môže byť moderovaná programom pomocou API funkcií.&lt;br /&gt;
&lt;br /&gt;
=== Analógové bloky ===&lt;br /&gt;
&lt;br /&gt;
Analógové bloky &amp;lt;ref&amp;gt;http://www.lubino.sk/rs/3/files/diplomka_-_ubo.pdf&amp;lt;/ref&amp;gt; sú taktiež zdrojom prostriedkov pre aplikácie, avšak orientované na spracovávanie a generovanie analógových signálov. Základom analógových blokov sú obvody spínače, prepínače, operačné zosilňovače a spínané kondenzátory. Každý analógový obvod ma viac potenciálne použiteľných vstupov a výstupov. K dispozícii sú vždy tieto tri výstupy:&lt;br /&gt;
* analógová výstupná zbernica (ABUS)&lt;br /&gt;
* porovnávacia zbernica (CBUS)&lt;br /&gt;
* výstupná zbernica (OUT)&lt;br /&gt;
&lt;br /&gt;
Analógová výstupná zbernica je vodičom analógového signálu. Túto zbernicu spolu zdieľajú analógové bloky v jednom stĺpci. Keďže je takýchto stĺpcov viac, je viac aj zberníc tohoto typu. Vo väčšine modelov mikroprocesora sú ich 4. K tejto zbernici je pripojený analógový výstupný zásobník (Analog Output Buffer), ktorý v závislosti od nastavenia prepojí zbernicu s nastaveným analógovým výstupným pinom. Porovnávacia zbernica je digitálnou zbernicou a taktiež ju zdieľajú všetky analógové bloky v jednom stĺpci. Túto zbernicu nie je možné pripojiť na vstupno-výstupný pin, ale je možné pripojiť ju na vstup niektorého digitálneho bloku. Podobne aj výstupná zbernica je zdieľaná vrámci jedného stĺpca.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5492</id>
		<title>Prehľad architektúry PSoC</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5492"/>
		<updated>2010-06-22T17:51:55Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mikroprocesory PSoC &amp;lt;ref&amp;gt;http://www.cypress.com&amp;lt;/ref&amp;gt; (Programmable System on Chip – Programovateľný systém na čipe) sa skladajú z konfigurovateľných blokov analógových obvodov a digitálnej logiky, ktoré sú vzájomne programovo prepojené. Uvedená architektúra umožňuje vytvárať zákaznícke konfigurácie mikroprocesora tak, aby boli splnené požiadavky potrebné na realizáciu jednotlivých aplikácií. Bloková schéma na Obr. 1.1 zobrazuje architektúru celej rodiny mikroprocesorov PSoC. &lt;br /&gt;
&lt;br /&gt;
== Vnútorná štruktúra PSoC ==&lt;br /&gt;
&lt;br /&gt;
Spoločnosť Cypress vyvinula niekoľko desiatok typov súčiastok typov PSoC. Líšia sa predovšetkým množstvom a druhom blokov, veľkosťou pamäti programu (FLASH), pamäťou dát (RAM), veľkosťou a druhom puzdier a ďalšími parametrami. V závislosti na type obsahujú 4-16 digitálnych a 3-12 analógových blokov. &lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_struktura.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 1.1 Vnútorná štruktúra PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== M8C – procesorové jadro ==&lt;br /&gt;
&lt;br /&gt;
Na Obr. 2.1 sú zobrazené prvky architektúry jadra PSoC. Procesor je 8-bitový a dokáže spracovať až 4 milióny inštrukcií za sekundu.&lt;br /&gt;
8-bitová architektúra podporuje použitie až 64 kilobajtov pamäti Flash, v ktorej je uložená užívateľská aplikácia. Flash pamäť je „in-circuit programmable“, takže PSoC je možné programovať aj potom, ako je zapojený do dosky plošných spojov. Flash je zároveň aj „in-application programmable“, čo znamená, že mikroprocesor je schopný dynamicky meniť svoju vlastnú pamäť. Procesor je pripojený k viacerým digitálnym a analógovým blokom, ktoré poskytujú funkcionalitu a flexibilitu charakteristickú pre celú rodinu PSoC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_JadroPSoC.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.1 Jadro PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Registre procesora M8C ===&lt;br /&gt;
&lt;br /&gt;
M8C je 8-bitový mikroprocesor MIPS harvardskej architektúry s voliteľnou hodinovou frekvenciou od 93.7 kHz do 24 MHz. Má päť vnútorných registrov, ktoré sú využívané pri vykonávaní programu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_registreprocesora.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.2 Registre procesora M8C&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Štruktúra pamäte M8C ===&lt;br /&gt;
&lt;br /&gt;
M8C má tri adresné priestory: ROM, RAM a registre. K adresnému priestoru ROM pristupujeme cez jeho vlastné adresy a dátovú zbernicu. ROM zahŕňa SROM a Flash pamäte. V pamäti Flash je uložený firmvér zariadenia a je rozdelená do 64-bajtových blokov. Používateľ nemusí ošetrovať prechod programu na ďalšiu pamäťovú stránku, pretože M8C automaticky zvyšuje 16-bitový register PC pri každej inštrukcii presahujúcej hranice aktuálnej stránky. V pamäti SROM je uložený program využívaný na spúšťanie PSoC, kalibrovanie obvodov a vykonávanie operácií s pamäťou Flash. Funkcie zabezpečované SROM sú volané z programu uloženého v pamäti Flash alebo pomocou programátora. Adresný priestor registrov je využívaný na konfigurovanie programovateľných blokov mikroprocesora. Skladá sa z dvoch 256-bajtových blokov. Na prepínanie medzi blokmi sa nastavuje bit XIO v registri F. Ak je F nastavený, zvolí sa blok1, ak nie je nastavený, zvolí sa blok0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_adresnypriestor.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.3 Adresný priestor&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inštrukčné formáty ===&lt;br /&gt;
&lt;br /&gt;
M8C má spolu sedem inštrukčných formátov, ktoré používajú inštrukcie o dĺžkach jeden, dva a tri bajty. Všetky bajty inštrukcie sú vyvolávané z programovej pamäte Flash, za použitia adries a dátovej zbernice, ktoré sú nezávislé od adries a dátovej zbernice používaných pre registre a prístup do pamäte RAM. &lt;br /&gt;
&lt;br /&gt;
== Digitálne a analógové bloky PSoC ==&lt;br /&gt;
&lt;br /&gt;
Digitálne a analógové bloky sú moduly vytvorené z digitálnych a analógových prvkov, ktoré sú konfigurovateľné pre rôzne druhy operácií pomocou registrov špecifických pre každý blok.&lt;br /&gt;
&lt;br /&gt;
=== Digitálne bloky ===&lt;br /&gt;
&lt;br /&gt;
Digitálne bloky redukujú potrebu použitia ďalších externých obvodov pre požadovanú funkcionalitu pripravovaného zariadenia. Sú určené na spracovávanie a generovanie hlavne digitálneho signálu. Dajú sa programovať a variovať tak, aby poskytovali funkčnosť štandardných elektronických integrovaných obvodov ako napríklad počítadlo, šírkový generátor pulzov, RS-232, IrDA, SPI, I2C príjem a binárnych dát, generátory pseudonáhodných čísel a iné. Taktiež sa používajú na prípravu požadovaného taktovacieho signálu pre analógové bloky, prípadne na spracovanie signálov z analógových blokov (možné prepojenie cez vstupno-výstupné piny). Ich činnosť je nezávislá na behu programu mikroprocesora, avšak môže byť moderovaná programom pomocou API funkcií.&lt;br /&gt;
&lt;br /&gt;
=== Analógové bloky ===&lt;br /&gt;
&lt;br /&gt;
Analógové bloky sú taktiež zdrojom prostriedkov pre aplikácie, avšak orientované na spracovávanie a generovanie analógových signálov. Základom analógových blokov sú obvody spínače, prepínače, operačné zosilňovače a spínané kondenzátory. Každý analógový obvod ma viac potenciálne použiteľných vstupov a výstupov. K dispozícii sú vždy tieto tri výstupy:&lt;br /&gt;
* analógová výstupná zbernica (ABUS)&lt;br /&gt;
* porovnávacia zbernica (CBUS)&lt;br /&gt;
* výstupná zbernica (OUT)&lt;br /&gt;
&lt;br /&gt;
Analógová výstupná zbernica je vodičom analógového signálu. Túto zbernicu spolu zdieľajú analógové bloky v jednom stĺpci. Keďže je takýchto stĺpcov viac, je viac aj zberníc tohoto typu. Vo väčšine modelov mikroprocesora sú ich 4. K tejto zbernici je pripojený analógový výstupný zásobník (Analog Output Buffer), ktorý v závislosti od nastavenia prepojí zbernicu s nastaveným analógovým výstupným pinom. Porovnávacia zbernica je digitálnou zbernicou a taktiež ju zdieľajú všetky analógové bloky v jednom stĺpci. Túto zbernicu nie je možné pripojiť na vstupno-výstupný pin, ale je možné pripojiť ju na vstup niektorého digitálneho bloku. Podobne aj výstupná zbernica je zdieľaná vrámci jedného stĺpca.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5491</id>
		<title>Prehľad architektúry PSoC</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5491"/>
		<updated>2010-06-22T17:46:41Z</updated>

		<summary type="html">&lt;p&gt;Dusan: /* Digitálne bloky */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mikroprocesory PSoC &amp;lt;ref&amp;gt;http://www.cypress.com&amp;lt;/ref&amp;gt; (Programmable System on Chip – Programovateľný systém na čipe) sa skladajú z konfigurovateľných blokov analógových obvodov a digitálnej logiky, ktoré sú vzájomne programovo prepojené. Uvedená architektúra umožňuje vytvárať zákaznícke konfigurácie mikroprocesora tak, aby boli splnené požiadavky potrebné na realizáciu jednotlivých aplikácií. Bloková schéma na Obr. 1.1 zobrazuje architektúru celej rodiny mikroprocesorov PSoC. &lt;br /&gt;
&lt;br /&gt;
== Vnútorná štruktúra PSoC ==&lt;br /&gt;
&lt;br /&gt;
Spoločnosť Cypress vyvinula niekoľko desiatok typov súčiastok typov PSoC. Líšia sa predovšetkým množstvom a druhom blokov, veľkosťou pamäti programu (FLASH), pamäťou dát (RAM), veľkosťou a druhom puzdier a ďalšími parametrami. V závislosti na type obsahujú 4-16 digitálnych a 3-12 analógových blokov. &lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_struktura.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 1.1 Vnútorná štruktúra PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== M8C – procesorové jadro ==&lt;br /&gt;
&lt;br /&gt;
Na Obr. 2.1 sú zobrazené prvky architektúry jadra PSoC. Procesor je 8-bitový a dokáže spracovať až 4 milióny inštrukcií za sekundu.&lt;br /&gt;
8-bitová architektúra podporuje použitie až 64 kilobajtov pamäti Flash, v ktorej je uložená užívateľská aplikácia. Flash pamäť je „in-circuit programmable“, takže PSoC je možné programovať aj potom, ako je zapojený do dosky plošných spojov. Flash je zároveň aj „in-application programmable“, čo znamená, že mikroprocesor je schopný dynamicky meniť svoju vlastnú pamäť. Procesor je pripojený k viacerým digitálnym a analógovým blokom, ktoré poskytujú funkcionalitu a flexibilitu charakteristickú pre celú rodinu PSoC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_JadroPSoC.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.1 Jadro PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Registre procesora M8C ===&lt;br /&gt;
&lt;br /&gt;
M8C je 8-bitový mikroprocesor MIPS harvardskej architektúry s voliteľnou hodinovou frekvenciou od 93.7 kHz do 24 MHz. Má päť vnútorných registrov, ktoré sú využívané pri vykonávaní programu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_registreprocesora.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.2 Registre procesora M8C&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Štruktúra pamäte M8C ===&lt;br /&gt;
&lt;br /&gt;
M8C má tri adresné priestory: ROM, RAM a registre. K adresnému priestoru ROM pristupujeme cez jeho vlastné adresy a dátovú zbernicu. ROM zahŕňa SROM a Flash pamäte. V pamäti Flash je uložený firmvér zariadenia a je rozdelená do 64-bajtových blokov. Používateľ nemusí ošetrovať prechod programu na ďalšiu pamäťovú stránku, pretože M8C automaticky zvyšuje 16-bitový register PC pri každej inštrukcii presahujúcej hranice aktuálnej stránky. V pamäti SROM je uložený program využívaný na spúšťanie PSoC, kalibrovanie obvodov a vykonávanie operácií s pamäťou Flash. Funkcie zabezpečované SROM sú volané z programu uloženého v pamäti Flash alebo pomocou programátora. Adresný priestor registrov je využívaný na konfigurovanie programovateľných blokov mikroprocesora. Skladá sa z dvoch 256-bajtových blokov. Na prepínanie medzi blokmi sa nastavuje bit XIO v registri F. Ak je F nastavený, zvolí sa blok1, ak nie je nastavený, zvolí sa blok0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_adresnypriestor.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.3 Adresný priestor&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inštrukčné formáty ===&lt;br /&gt;
&lt;br /&gt;
M8C má spolu sedem inštrukčných formátov, ktoré používajú inštrukcie o dĺžkach jeden, dva a tri bajty. Všetky bajty inštrukcie sú vyvolávané z programovej pamäte Flash, za použitia adries a dátovej zbernice, ktoré sú nezávislé od adries a dátovej zbernice používaných pre registre a prístup do pamäte RAM. &lt;br /&gt;
&lt;br /&gt;
== Digitálne a analógové bloky PSoC ==&lt;br /&gt;
&lt;br /&gt;
Digitálne a analógové bloky sú moduly vytvorené z digitálnych a analógových prvkov, ktoré sú konfigurovateľné pre rôzne druhy operácií pomocou registrov špecifických pre každý blok.&lt;br /&gt;
&lt;br /&gt;
=== Analógové bloky ===&lt;br /&gt;
&lt;br /&gt;
Na rozdiel od digitálnych blokov, kde blok z užívateľského hľadiska vlastne predstavuje sústavu registrov v ktorých sa zvolí funkcia bloku, sú analógové bloky v podstate založené na obvodovom zapojení obsahujúce jeden operačný zosilovač (OZ) obklopený rôznymi, vo vnútri integrovanými, súčiastkami pripojovanými k OZ cez programovateľné spínače. Tie sú už ovládané nastavením bitov registrov bloku prístupné užívateľovi. Takto je možné u každého bloku definovať použité vstupy i spätné väzby. Analógové bloky: PGA, komparátory, ADC 6-14 bitov, rôzne konfigurácie, DAC 6-9 bitov.&lt;br /&gt;
&lt;br /&gt;
=== Digitálne bloky ===&lt;br /&gt;
&lt;br /&gt;
Digitálne bloky &amp;lt;ref&amp;gt;http://www.lubino.sk/rs/3/files/diplomka_-_ubo.pdf&amp;lt;/ref&amp;gt; redukujú potrebu použitia ďalších externých obvodov pre požadovanú funkcionalitu pripravovaného zariadenia. Sú určené na spracovávanie a generovanie hlavne digitálneho signálu. Dajú sa programovať a variovať tak, aby poskytovali funkčnosť štandardných elektronických integrovaných obvodov ako napríklad počítadlo, šírkový generátor pulzov, RS-232, IrDA, SPI, I2C príjem a binárnych dát, generátory pseudonáhodných čísel a iné. Taktiež sa používajú na prípravu požadovaného taktovacieho signálu pre analógové bloky, prípadne na spracovanie signálov z analógových blokov (možné prepojenie cez vstupno-výstupné piny). Ich činnosť je nezávislá na behu programu mikroprocesora, avšak môže byť moderovaná programom pomocou API funkcií.&lt;br /&gt;
&lt;br /&gt;
Každý digitálny blok má priradených niekoľko registrov, ktorými sa nastavuje vnútorné zapojenie jeho obvodov a prepojenia s globálnou zbernicou. Tieto registre je možné meniť aj počas práce (za behu) mikroprocesora pomocou programu, a tým aj meniť funkčnosť a zapojenie blokov. Podrobná dokumentácia registrom je rozsiahla a voľne dostupná. Pre prácu s mikroprocesorom, kde za behu programu nedochádza k zmene štruktúry, nie je nutné registre detailne poznať, pretože o ich nastavenie sa postará grafický dizajnér, v ktorom sú už pred pripravené konfigurácie blokov na použitie pre niektoré základné zapojenia a funkcionality. Každé takéto zapojenie spotrebuje jeden alebo viac z blokov mikroprocesora. &lt;br /&gt;
&lt;br /&gt;
Globálne vstupy a výstupy dodávajú digitálnym blokom možnosti na prepájanie taktovacích a dátových vstupov. Podobne ako digitálne bloky, aj globálne&lt;br /&gt;
vstupy a výstupy sa nastavujú pomocou k nim prislúchajúceho registra. Podľa konfigurácie registra, jednotlivé bloky pripoja na 8 bitovú, globálnu, vstupnú zbernicu alebo 8 bitovú, globálnu, výstupnú zbernicu. K týmto zberniciam je možné pripojiť i vstupno-výstupné vývody mikroprocesoru.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=V%C3%BDvojov%C3%A9_prostredie_pre_syst%C3%A9my_PSoC&amp;diff=5489</id>
		<title>Vývojové prostredie pre systémy PSoC</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=V%C3%BDvojov%C3%A9_prostredie_pre_syst%C3%A9my_PSoC&amp;diff=5489"/>
		<updated>2010-06-22T17:24:36Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;K vytváraniu aplikácie, resp. programu, pro PSoC je z programátorského hľadiska najlepšie použiť k tomu firmou Cypress určené vývojové prostredie PSoC Designer&amp;lt;ref&amp;gt;http://www.cypress.com&amp;lt;/ref&amp;gt;. Slúži na návrh správneho nastavenia všetkých registrov, zberníc&lt;br /&gt;
a blokov ako aj naprogramovanie algoritmu pre mikrokontrolér. Je to grafické prostredie, kde je možné skúšať jednotlivé varianty, ktoré&lt;br /&gt;
sa dajú z PSoC blokov zapojiť. Obsahuje množstvo modulov aj s dokumentáciou a potrebným rozhraním pre nastavovanie ich jednotlivých parametrov. PSoC Designer obsahuje aj podprogram, pre kontrolu korektného zapojenia jednotlivých modulov a rovno počas navrhovania vnútornej štruktúry môže užívateľ vidieť jednotlivé možnosti zapojenia.  Typickým digitálnym užívateľským modulom je UART a typickým analógovým užívateľským modulom je napríklad 12-bitový ADC. &lt;br /&gt;
&lt;br /&gt;
PSoC Designer:&lt;br /&gt;
* Návrh na úrovni chipu&lt;br /&gt;
** Návrh architektúry (bloky a ich vlastnosti)&lt;br /&gt;
** Assembler&lt;br /&gt;
** C Kompilátor&lt;br /&gt;
** Programátor&lt;br /&gt;
** ICE (In Circuit Emulator) Debuger&lt;br /&gt;
* Návrh na úrovni systému&lt;br /&gt;
** Grafické programovanie&lt;br /&gt;
** Definovanie vlastností a vzťahov medzi vstupmi a výstupmi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Elektrick%C3%A9_a_mechanick%C3%A9_parametre_architekt%C3%BAry_PSoC&amp;diff=5472</id>
		<title>Elektrické a mechanické parametre architektúry PSoC</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Elektrick%C3%A9_a_mechanick%C3%A9_parametre_architekt%C3%BAry_PSoC&amp;diff=5472"/>
		<updated>2010-06-22T16:50:14Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mechanické vlastnosti  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_mechanicke.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 1.1 Mechanické vlastnosti&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Elektrické vlastnosti  ==&lt;br /&gt;
&lt;br /&gt;
* Napájanie&lt;br /&gt;
** 5V, 3.3V, vstavaný menič pre napájanie z jednej AA batérie&lt;br /&gt;
* Hodiny CPU&lt;br /&gt;
** Nastaviteľné od 930kHz do 24 MHz (spotreba), odvodené od vlastného oscilátora na čipe&lt;br /&gt;
** Možnosť synchronizácie externým kryštálom 32 kHz&lt;br /&gt;
* Spotreba&lt;br /&gt;
** počas práce 15 - 70 mW (cca 80 hodín na AA batériu)&lt;br /&gt;
** sleep mód 10 - 70 μW (cca 10rokov na AA batériu)&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Elektrick%C3%A9_a_mechanick%C3%A9_parametre_architekt%C3%BAry_PSoC&amp;diff=5471</id>
		<title>Elektrické a mechanické parametre architektúry PSoC</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Elektrick%C3%A9_a_mechanick%C3%A9_parametre_architekt%C3%BAry_PSoC&amp;diff=5471"/>
		<updated>2010-06-22T16:48:25Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mechanické vlastnosti  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_mechanicke.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 1.1 Mechanické vlastnosti&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Elektrické vlastnosti  ==&lt;br /&gt;
&lt;br /&gt;
* Napájanie&lt;br /&gt;
** 5V, 3.3V, vstavaný menič pre napájanie z jednej AA batérie&lt;br /&gt;
*Hodiny CPU&lt;br /&gt;
** Nastaviteľné od 930kHz do 24 MHz (spotreba), odvodené od vlastného&lt;br /&gt;
oscilátora na čipe&lt;br /&gt;
** Možnosť synchronizácie externým kryštálom 32 kHz&lt;br /&gt;
* Spotreba&lt;br /&gt;
** počas práce 15 - 70 mW (cca 80 hodín na AA batériu)&lt;br /&gt;
** sleep mód 10 - 70 μW (cca 10rokov na AA batériu)&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5463</id>
		<title>Prehľad architektúry PSoC</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5463"/>
		<updated>2010-06-22T16:40:28Z</updated>

		<summary type="html">&lt;p&gt;Dusan: /* Analógové bloky */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mikroprocesory PSoC &amp;lt;ref&amp;gt;http://www.cypress.com&amp;lt;/ref&amp;gt; (Programmable System on Chip – Programovateľný systém na čipe) sa skladajú z konfigurovateľných blokov analógových obvodov a digitálnej logiky, ktoré sú vzájomne programovo prepojené. Uvedená architektúra umožňuje vytvárať zákaznícke konfigurácie mikroprocesora tak, aby boli splnené požiadavky potrebné na realizáciu jednotlivých aplikácií. Bloková schéma na Obr. 1.1 zobrazuje architektúru celej rodiny mikroprocesorov PSoC. &lt;br /&gt;
&lt;br /&gt;
== Vnútorná štruktúra PSoC ==&lt;br /&gt;
&lt;br /&gt;
Spoločnosť Cypress vyvinula niekoľko desiatok typov súčiastok typov PSoC. Líšia sa predovšetkým množstvom a druhom blokov, veľkosťou pamäti programu (FLASH), pamäťou dát (RAM), veľkosťou a druhom puzdier a ďalšími parametrami. V závislosti na type obsahujú 4-16 digitálnych a 3-12 analógových blokov. &lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_struktura.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 1.1 Vnútorná štruktúra PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== M8C – procesorové jadro ==&lt;br /&gt;
&lt;br /&gt;
Na Obr. 2.1 sú zobrazené prvky architektúry jadra PSoC. Procesor je 8-bitový a dokáže spracovať až 4 milióny inštrukcií za sekundu.&lt;br /&gt;
8-bitová architektúra podporuje použitie až 64 kilobajtov pamäti Flash, v ktorej je uložená užívateľská aplikácia. Flash pamäť je „in-circuit programmable“, takže PSoC je možné programovať aj potom, ako je zapojený do dosky plošných spojov. Flash je zároveň aj „in-application programmable“, čo znamená, že mikroprocesor je schopný dynamicky meniť svoju vlastnú pamäť. Procesor je pripojený k viacerým digitálnym a analógovým blokom, ktoré poskytujú funkcionalitu a flexibilitu charakteristickú pre celú rodinu PSoC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_JadroPSoC.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.1 Jadro PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Registre procesora M8C ===&lt;br /&gt;
&lt;br /&gt;
M8C je 8-bitový mikroprocesor MIPS harvardskej architektúry s voliteľnou hodinovou frekvenciou od 93.7 kHz do 24 MHz. Má päť vnútorných registrov, ktoré sú využívané pri vykonávaní programu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_registreprocesora.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.2 Registre procesora M8C&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Štruktúra pamäte M8C ===&lt;br /&gt;
&lt;br /&gt;
M8C má tri adresné priestory: ROM, RAM a registre. K adresnému priestoru ROM pristupujeme cez jeho vlastné adresy a dátovú zbernicu. ROM zahŕňa SROM a Flash pamäte. V pamäti Flash je uložený firmvér zariadenia a je rozdelená do 64-bajtových blokov. Používateľ nemusí ošetrovať prechod programu na ďalšiu pamäťovú stránku, pretože M8C automaticky zvyšuje 16-bitový register PC pri každej inštrukcii presahujúcej hranice aktuálnej stránky. V pamäti SROM je uložený program využívaný na spúšťanie PSoC, kalibrovanie obvodov a vykonávanie operácií s pamäťou Flash. Funkcie zabezpečované SROM sú volané z programu uloženého v pamäti Flash alebo pomocou programátora. Adresný priestor registrov je využívaný na konfigurovanie programovateľných blokov mikroprocesora. Skladá sa z dvoch 256-bajtových blokov. Na prepínanie medzi blokmi sa nastavuje bit XIO v registri F. Ak je F nastavený, zvolí sa blok1, ak nie je nastavený, zvolí sa blok0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_adresnypriestor.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.3 Adresný priestor&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inštrukčné formáty ===&lt;br /&gt;
&lt;br /&gt;
M8C má spolu sedem inštrukčných formátov, ktoré používajú inštrukcie o dĺžkach jeden, dva a tri bajty. Všetky bajty inštrukcie sú vyvolávané z programovej pamäte Flash, za použitia adries a dátovej zbernice, ktoré sú nezávislé od adries a dátovej zbernice používaných pre registre a prístup do pamäte RAM. &lt;br /&gt;
&lt;br /&gt;
== Digitálne a analógové bloky PSoC ==&lt;br /&gt;
&lt;br /&gt;
Digitálne a analógové bloky sú moduly vytvorené z digitálnych a analógových prvkov, ktoré sú konfigurovateľné pre rôzne druhy operácií pomocou registrov špecifických pre každý blok.&lt;br /&gt;
&lt;br /&gt;
=== Analógové bloky ===&lt;br /&gt;
&lt;br /&gt;
Na rozdiel od digitálnych blokov, kde blok z užívateľského hľadiska vlastne predstavuje sústavu registrov v ktorých sa zvolí funkcia bloku, sú analógové bloky v podstate založené na obvodovom zapojení obsahujúce jeden operačný zosilovač (OZ) obklopený rôznymi, vo vnútri integrovanými, súčiastkami pripojovanými k OZ cez programovateľné spínače. Tie sú už ovládané nastavením bitov registrov bloku prístupné užívateľovi. Takto je možné u každého bloku definovať použité vstupy i spätné väzby. Analógové bloky: PGA, komparátory, ADC 6-14 bitov, rôzne konfigurácie, DAC 6-9 bitov.&lt;br /&gt;
&lt;br /&gt;
=== Digitálne bloky ===&lt;br /&gt;
&lt;br /&gt;
Digitálne bloky sú združené v poli digitálnych blokov (Array of Digital PSoC Blocks), pričom sú tu rôzne bloky (užívateľské modely) z pohľadu ich funkcie. Obecne však platí, že každý blok je 8bitový, ale združovaním viacerých blokov dohromady je možné vytvoriť viac bitovú funkciu, napr. 16, 24 alebo 32bitovú. Nutný je iba dostatočný počet blokov.&lt;br /&gt;
Digitálny blok ako taký je z užívateľského hľadiska definovaný ako sada registrov, ktorými sa nastavujú vlastnosti daného bloku. Nie je teda možné, na rozdiel od obvodov FPGA a CPLD, predstavovať si konkrétne zapojenie blokov. Je len možné vymenovať funkcie, ktoré ktoré sa dajú registrami „zapnúť“. Obvykle sa blokmi poskytujú funkcie časovača, čítača, PWM, sériové vysielače a prijímače, UART, SPI, I2C, IrDA...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5457</id>
		<title>Prehľad architektúry PSoC</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5457"/>
		<updated>2010-06-22T16:36:43Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mikroprocesory PSoC &amp;lt;ref&amp;gt;http://www.cypress.com&amp;lt;/ref&amp;gt; (Programmable System on Chip – Programovateľný systém na čipe) sa skladajú z konfigurovateľných blokov analógových obvodov a digitálnej logiky, ktoré sú vzájomne programovo prepojené. Uvedená architektúra umožňuje vytvárať zákaznícke konfigurácie mikroprocesora tak, aby boli splnené požiadavky potrebné na realizáciu jednotlivých aplikácií. Bloková schéma na Obr. 1.1 zobrazuje architektúru celej rodiny mikroprocesorov PSoC. &lt;br /&gt;
&lt;br /&gt;
== Vnútorná štruktúra PSoC ==&lt;br /&gt;
&lt;br /&gt;
Spoločnosť Cypress vyvinula niekoľko desiatok typov súčiastok typov PSoC. Líšia sa predovšetkým množstvom a druhom blokov, veľkosťou pamäti programu (FLASH), pamäťou dát (RAM), veľkosťou a druhom puzdier a ďalšími parametrami. V závislosti na type obsahujú 4-16 digitálnych a 3-12 analógových blokov. &lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_struktura.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 1.1 Vnútorná štruktúra PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== M8C – procesorové jadro ==&lt;br /&gt;
&lt;br /&gt;
Na Obr. 2.1 sú zobrazené prvky architektúry jadra PSoC. Procesor je 8-bitový a dokáže spracovať až 4 milióny inštrukcií za sekundu.&lt;br /&gt;
8-bitová architektúra podporuje použitie až 64 kilobajtov pamäti Flash, v ktorej je uložená užívateľská aplikácia. Flash pamäť je „in-circuit programmable“, takže PSoC je možné programovať aj potom, ako je zapojený do dosky plošných spojov. Flash je zároveň aj „in-application programmable“, čo znamená, že mikroprocesor je schopný dynamicky meniť svoju vlastnú pamäť. Procesor je pripojený k viacerým digitálnym a analógovým blokom, ktoré poskytujú funkcionalitu a flexibilitu charakteristickú pre celú rodinu PSoC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_JadroPSoC.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.1 Jadro PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Registre procesora M8C ===&lt;br /&gt;
&lt;br /&gt;
M8C je 8-bitový mikroprocesor MIPS harvardskej architektúry s voliteľnou hodinovou frekvenciou od 93.7 kHz do 24 MHz. Má päť vnútorných registrov, ktoré sú využívané pri vykonávaní programu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_registreprocesora.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.2 Registre procesora M8C&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Štruktúra pamäte M8C ===&lt;br /&gt;
&lt;br /&gt;
M8C má tri adresné priestory: ROM, RAM a registre. K adresnému priestoru ROM pristupujeme cez jeho vlastné adresy a dátovú zbernicu. ROM zahŕňa SROM a Flash pamäte. V pamäti Flash je uložený firmvér zariadenia a je rozdelená do 64-bajtových blokov. Používateľ nemusí ošetrovať prechod programu na ďalšiu pamäťovú stránku, pretože M8C automaticky zvyšuje 16-bitový register PC pri každej inštrukcii presahujúcej hranice aktuálnej stránky. V pamäti SROM je uložený program využívaný na spúšťanie PSoC, kalibrovanie obvodov a vykonávanie operácií s pamäťou Flash. Funkcie zabezpečované SROM sú volané z programu uloženého v pamäti Flash alebo pomocou programátora. Adresný priestor registrov je využívaný na konfigurovanie programovateľných blokov mikroprocesora. Skladá sa z dvoch 256-bajtových blokov. Na prepínanie medzi blokmi sa nastavuje bit XIO v registri F. Ak je F nastavený, zvolí sa blok1, ak nie je nastavený, zvolí sa blok0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_adresnypriestor.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.3 Adresný priestor&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inštrukčné formáty ===&lt;br /&gt;
&lt;br /&gt;
M8C má spolu sedem inštrukčných formátov, ktoré používajú inštrukcie o dĺžkach jeden, dva a tri bajty. Všetky bajty inštrukcie sú vyvolávané z programovej pamäte Flash, za použitia adries a dátovej zbernice, ktoré sú nezávislé od adries a dátovej zbernice používaných pre registre a prístup do pamäte RAM. &lt;br /&gt;
&lt;br /&gt;
== Digitálne a analógové bloky PSoC ==&lt;br /&gt;
&lt;br /&gt;
Digitálne a analógové bloky sú moduly vytvorené z digitálnych a analógových prvkov, ktoré sú konfigurovateľné pre rôzne druhy operácií pomocou registrov špecifických pre každý blok.&lt;br /&gt;
&lt;br /&gt;
=== Analógové bloky ===&lt;br /&gt;
&lt;br /&gt;
Na rozdiel od digitálnych blokov, kde blok z užívateľského hľadiska vlastne predstavuje sústavu registrov v ktorých sa zvolí funkcia bloku, sú analógové bloky v podstate založené na obvodovom zapojení obsahujúce jeden operačný zosilovač (OZ) obklopený rôznymi, vo vnútri integrovanými, súčiastkami pripojovanými k OZ cez programovateľné spínače. Tie sú už ovládané nastavením bitov registrov bloku prístupné užívateľovi. Takto je možné u každého bloku definovať použité vstupy i spätné väzby. Analógové bloky: PGA, komparátory, ADC 6-14 bitov, rôzne konfigurácie, DAC 6-9 bitov, DAC 6-9 bitov.&lt;br /&gt;
&lt;br /&gt;
=== Digitálne bloky ===&lt;br /&gt;
&lt;br /&gt;
Digitálne bloky sú združené v poli digitálnych blokov (Array of Digital PSoC Blocks), pričom sú tu rôzne bloky (užívateľské modely) z pohľadu ich funkcie. Obecne však platí, že každý blok je 8bitový, ale združovaním viacerých blokov dohromady je možné vytvoriť viac bitovú funkciu, napr. 16, 24 alebo 32bitovú. Nutný je iba dostatočný počet blokov.&lt;br /&gt;
Digitálny blok ako taký je z užívateľského hľadiska definovaný ako sada registrov, ktorými sa nastavujú vlastnosti daného bloku. Nie je teda možné, na rozdiel od obvodov FPGA a CPLD, predstavovať si konkrétne zapojenie blokov. Je len možné vymenovať funkcie, ktoré ktoré sa dajú registrami „zapnúť“. Obvykle sa blokmi poskytujú funkcie časovača, čítača, PWM, sériové vysielače a prijímače, UART, SPI, I2C, IrDA...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5452</id>
		<title>Prehľad architektúry PSoC</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Preh%C4%BEad_architekt%C3%BAry_PSoC&amp;diff=5452"/>
		<updated>2010-06-22T16:28:31Z</updated>

		<summary type="html">&lt;p&gt;Dusan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mikroprocesory PSoC (Programmable System on Chip – Programovateľný systém na čipe) sa skladajú z konfigurovateľných blokov analógových obvodov a digitálnej logiky, ktoré sú vzájomne programovo prepojené. Uvedená architektúra umožňuje vytvárať zákaznícke konfigurácie mikroprocesora tak, aby boli splnené požiadavky potrebné na realizáciu jednotlivých aplikácií. Bloková schéma na Obr. 1.1 zobrazuje architektúru celej rodiny mikroprocesorov PSoC. &lt;br /&gt;
&lt;br /&gt;
== Vnútorná štruktúra PSoC ==&lt;br /&gt;
&lt;br /&gt;
Spoločnosť Cypress vyvinula niekoľko desiatok typov súčiastok typov PSoC. Líšia sa predovšetkým množstvom a druhom blokov, veľkosťou pamäti programu (FLASH), pamäťou dát (RAM), veľkosťou a druhom puzdier a ďalšími parametrami. V závislosti na type obsahujú 4-16 digitálnych a 3-12 analógových blokov. &lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_struktura.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 1.1 Vnútorná štruktúra PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== M8C – procesorové jadro ==&lt;br /&gt;
&lt;br /&gt;
Na Obr. 2.1 sú zobrazené prvky architektúry jadra PSoC. Procesor je 8-bitový a dokáže spracovať až 4 milióny inštrukcií za sekundu.&lt;br /&gt;
8-bitová architektúra podporuje použitie až 64 kilobajtov pamäti Flash, v ktorej je uložená užívateľská aplikácia. Flash pamäť je „in-circuit programmable“, takže PSoC je možné programovať aj potom, ako je zapojený do dosky plošných spojov. Flash je zároveň aj „in-application programmable“, čo znamená, že mikroprocesor je schopný dynamicky meniť svoju vlastnú pamäť. Procesor je pripojený k viacerým digitálnym a analógovým blokom, ktoré poskytujú funkcionalitu a flexibilitu charakteristickú pre celú rodinu PSoC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_JadroPSoC.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.1 Jadro PSoC&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Registre procesora M8C ===&lt;br /&gt;
&lt;br /&gt;
M8C je 8-bitový mikroprocesor MIPS harvardskej architektúry s voliteľnou hodinovou frekvenciou od 93.7 kHz do 24 MHz. Má päť vnútorných registrov, ktoré sú využívané pri vykonávaní programu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_registreprocesora.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.2 Registre procesora M8C&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Štruktúra pamäte M8C ===&lt;br /&gt;
&lt;br /&gt;
M8C má tri adresné priestory: ROM, RAM a registre. K adresnému priestoru ROM pristupujeme cez jeho vlastné adresy a dátovú zbernicu. ROM zahŕňa SROM a Flash pamäte. V pamäti Flash je uložený firmvér zariadenia a je rozdelená do 64-bajtových blokov. Používateľ nemusí ošetrovať prechod programu na ďalšiu pamäťovú stránku, pretože M8C automaticky zvyšuje 16-bitový register PC pri každej inštrukcii presahujúcej hranice aktuálnej stránky. V pamäti SROM je uložený program využívaný na spúšťanie PSoC, kalibrovanie obvodov a vykonávanie operácií s pamäťou Flash. Funkcie zabezpečované SROM sú volané z programu uloženého v pamäti Flash alebo pomocou programátora. Adresný priestor registrov je využívaný na konfigurovanie programovateľných blokov mikroprocesora. Skladá sa z dvoch 256-bajtových blokov. Na prepínanie medzi blokmi sa nastavuje bit XIO v registri F. Ak je F nastavený, zvolí sa blok1, ak nie je nastavený, zvolí sa blok0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt; &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | [[Image:Pagac_adresnypriestor.png]]&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Obr. 2.3 Adresný priestor&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inštrukčné formáty ===&lt;br /&gt;
&lt;br /&gt;
M8C má spolu sedem inštrukčných formátov, ktoré používajú inštrukcie o dĺžkach jeden, dva a tri bajty. Všetky bajty inštrukcie sú vyvolávané z programovej pamäte Flash, za použitia adries a dátovej zbernice, ktoré sú nezávislé od adries a dátovej zbernice používaných pre registre a prístup do pamäte RAM. &lt;br /&gt;
&lt;br /&gt;
== Digitálne a analógové bloky PSoC ==&lt;br /&gt;
&lt;br /&gt;
Digitálne a analógové bloky sú moduly vytvorené z digitálnych a analógových prvkov, ktoré sú konfigurovateľné pre rôzne druhy operácií pomocou registrov špecifických pre každý blok.&lt;br /&gt;
&lt;br /&gt;
=== Analógové bloky ===&lt;br /&gt;
&lt;br /&gt;
Na rozdiel od digitálnych blokov, kde blok z užívateľského hľadiska vlastne predstavuje sústavu registrov v ktorých sa zvolí funkcia bloku, sú analógové bloky v podstate založené na obvodovom zapojení obsahujúce jeden operačný zosilovač (OZ) obklopený rôznymi, vo vnútri integrovanými, súčiastkami pripojovanými k OZ cez programovateľné spínače. Tie sú už ovládané nastavením bitov registrov bloku prístupné užívateľovi. Takto je možné u každého bloku definovať použité vstupy i spätné väzby. Analógové bloky: PGA, komparátory, ADC 6-14 bitov, rôzne konfigurácie, DAC 6-9 bitov, DAC 6-9 bitov.&lt;br /&gt;
&lt;br /&gt;
=== Digitálne bloky ===&lt;br /&gt;
&lt;br /&gt;
Digitálne bloky sú združené v poli digitálnych blokov (Array of Digital PSoC Blocks), pričom sú tu rôzne bloky (užívateľské modely) z pohľadu ich funkcie. Obecne však platí, že každý blok je 8bitový, ale združovaním viacerých blokov dohromady je možné vytvoriť viac bitovú funkciu, napr. 16, 24 alebo 32bitovú. Nutný je iba dostatočný počet blokov.&lt;br /&gt;
Digitálny blok ako taký je z užívateľského hľadiska definovaný ako sada registrov, ktorými sa nastavujú vlastnosti daného bloku. Nie je teda možné, na rozdiel od obvodov FPGA a CPLD, predstavovať si konkrétne zapojenie blokov. Je len možné vymenovať funkcie, ktoré ktoré sa dajú registrami „zapnúť“. Obvykle sa blokmi poskytujú funkcie časovača, čítača, PWM, sériové vysielače a prijímače, UART, SPI, I2C, IrDA...&lt;/div&gt;</summary>
		<author><name>Dusan</name></author>
		
	</entry>
</feed>