\documentclass[11pt,oneside]{fithesis}
\usepackage[latin2]{inputenc}
\usepackage{czech}
\usepackage{cmap}
\usepackage[T1]{fontenc}
\usepackage{url}
\usepackage{makeidx}
\makeindex
\bibliographystyle{plain}
\usepackage{a4wide}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{tocloft}
\usepackage{subfig}
\usepackage{booktabs}
\usepackage{amsmath}
%\usepackage{indentfirst}
\hypersetup{colorlinks=true, citecolor=black, urlcolor =black, linkcolor=black} 


\thesistitle{Informan systm pro zen pstupu s~podporou inteligentnch budov}
\thesissubtitle{Diplomov prce}
\thesisstudent{Bc. Tom Jelnek}
\thesiswoman{false}
\thesisfaculty{fi}
\thesisyear{jaro 2011}
\thesisadvisor{RNDr. Jaroslav krablek}
\def\universityname{Masarykova univerzita}

\begin{document}

\hyphenation{}

\FrontMatter
\ThesisTitlePage

\begin{ThesisDeclaration}
\DeclarationText
\AdvisorName
\end{ThesisDeclaration}

\begin{ThesisThanks}
Tmto bych chtl podkovat RNDr. Jaroslavu Skrablkovi za veden tto diplomov prce. Tak bych chtl podkovat panu Jaroslavu Bantovi, kter mi ochotn pomhal a~provzel m po celou dobu tvorby tohoto projektu.
\end{ThesisThanks}

\begin{ThesisAbstract}
Tato prce se zabv tvorbou elektronickho pstupovho systmu od nvrhu pes implementaci a po nasazen. Tvorbou slueb pro ten dat ze sriovch linek, ten a~ovldni vstup-vstupnch zazen pro ovldni zmk dve a~zn zabezpeovacho systmu. Vytvoenm informanho systmu pro sprvu pstupovho systmu a~vizualizac pstupovch dat.
\end{ThesisAbstract}

\begin{ThesisKeyWords}
Pstupov systm, Informan systm, Datov modelovn, WebML, .NET, ASP.NET, C\#, Microsoft Visual Basic, Silverlight, Microsoft SQL, Moxa, ADAM, DataLab, Systmov sluby Windows
\end{ThesisKeyWords}

\MainMatter

\tableofcontents

\clearpage
\phantomsection
\listoftables
\listoffigures
\addcontentsline{toc}{chapter}{Seznam tabulek a~obrzk}
\clearpage

\chapter{vod}

Vyuvn informanch systm a~s~nimi spojen automatizace je stle astj a~v~prosted firem se stvj nepostradatelnou soust. Vznik poteba ve urychlovat, automatizovat a~kontrolovat. Pesn tmto poadavkm vyhovuje systm kontroly pstup. m dl vkonnj databzov stroje umouj zaznamenn kad potebn informace a~propojen takka jakhokoliv zazen se standartnm potaem, dle roziuje jejich vyuit. Pomoc potaovch st lze spojit vechna zazen dohromady a~utvoit z~nich jeden funk pstupov systm.

Na stle vt oblib zskvaj takzvan inteligentn budovy, kde je velk st bn pouvanch zazen ovldna samotnou budovou. Osvtlen se zapn pi vstupu prvn osoby do budovy, klimatizace po vstupu zamstnance do kancele, stejn tak je mon ovldat i~jin zazen, a u se jedn o~aluzie, osvtlen nebo topen. Takto je mon mt celou budovu pod neustlm dohledem a~kontrolou. Poppad i~uetit nklady na provoz budovy. Propojen pstupovho systmu s~jinmi systmy v~budov je samozejm velkou vhodou a~bude na nj brn zetel pi nvrhu a~implementaci. Nicmn zkladnm poadavkem na pstupov systm je ovldn dve a~s~nimi spojen zen zabezpeovacho systmu, kter zajiuje zabezpeen cel budovy. Dky tomu by se ml odstranit problm s~nezabezpeenmi prostory, ve kterch u nikdo nen a~tm zstavaj po zbytek dne a~noci nezabezpeen, m se sniuje zabezpeen cel budovy.

Odpad nutnost noen svazku kl. poppad jednoho generlnho kle, kde je ovem velmi tek omezovat prva, hldat pidlen kl a~jejich pouvn. Zaveden elektronickho pstupovho systmu neme zcela nahradit pouvn klasickch kl. U~dve uvnit budovy je mon pouvn kl omezit na minimum a~ovldn vtiny dve svit do rukou elektronickho pstupovho systmu, u~kterho je snadn nastavit pro kad dvee prva, monitorovat jejich vyuvn a~ovldat je pkazy ze systmu.

Elektronick pstupov systm popisovan v~tto prci je mon pizpsobit kad jednotliv budov a~nastavit jej podle poteb a~zadn kad instalace. Tmto se li od klasickch elektronickch pstupovch systm, kter jet navc nem jejich sprvce pod plnou kontrolou a~vce i mn zskv autonomn systm, kter u dle neme roziovat podle svch pn a~poadavk.  

Hlavn funkc vytvoenho pstupovho      je usnadnn kontroly pstup povenmu uivateli do prostor. Pin tak snadnj sbr dat pro dochzku a~automatizovanou sprvu zabezpeovn objektu. Pro firmu jsou tyto funkce pnosnm zrychlenm kontroly pstup zamstnanc. Podstatn tak je, e automatickm zapnutm systmu pi odchodu zamstnance je zajitno zabezpeen prostoru. Tm odpad nutnost runho zabezpeovn prostor pomoc klvesnice zabezpeovacho systmu a~sniuje se riziko, e objekt zstane nezabezpeen.

\chapter{Informan systmy}

Organizace jsou zvisl na sv schopnosti sbrat a~pouvat informace k~plnovn a~dalmu rozhodovn. Informan systmy nemus vyuvat informan technologie nebo bt nutn automatizovny pomoc pota, mou bt i~v~paprov podob, nicmn informan technologie se na jejich fungovn stle astji podl a~informan systmy se tak stvaj nedlnou soust fungovn firem, organizac i~jednotlivch osob.

Informan systm je tvoen kombinac lid, hardwaru, softwaru, komunikanch zazen, stmi a~datovmi zdroji, kter zpracovvaj data a~informace pro jejich dal el a~vyuit. Jako kterkoliv jin systm jsou i~informan systmy zaloeny na vstupnch datech od jejich uivatel. Tato vstupn data jsou pot dle zpracovvna za vyuit technologickch zazen. Po zpracovn informac produkuje informan systm vstupn data, jako je zobrazovan vsledk nebo generovn tiskovch sestav, kter jsou pedny jinm osobm nebo odeslny po sti a~pouity jako vstupy pro jin informan systmy.

Informan systmy svou innost napomhaj pesnjmu a~rychlejmu zpracovn informac a~tm napomhaj kadodennmu chodu cel organizace. Vechna data jsou uchovvna v~databzch, kter jsou schopn ukldat a~zpracovvat informace mnohem snadnji a~efektivnji, ne tomu bylo u~pouit tradinch metod. 
\newline
\noindent Informan systmy lze dlit podle nkolika faktor:

\begin{itemize}
	\item {\bf oteven x uzaven} - uruje, jestli a~jak moc je systm propojen se svm okolm  
	\item {\bf deterministick x stochastick} - jednoznan nebo nhodn chovn systmu  
	\item {\bf statick x dynamick} - linern nebo diferenciln, systm si pamatuje vnitn stav   
	\item {\bf spojit x diskrtn} - chovn systmu podle asovch udlost  
\end{itemize}

\noindent Informan systmy lze rozdlit do ty zkladnch kategori, kter jsou reprezentovny patry pyramidy a~kter odrej hierarchii organizace a~jsou nsledujc: 

\begin{itemize}
	\item {\bf Executive Information Systems} (EIS) - je vyuvn dcmi pracovnky
	\item {\bf Decision Support Systems} (DSS) - je vyuvn vrcholovm managementem
	\item {\bf Management Information Systems} (MIS) - je vyuvn stednm managementem
	\item {\bf Transaction Processing Systems} (SIS) - je vyuvn benmi pracovnky
\end{itemize}

Akoliv pyramidov model zstv stle vyuvn, existuj i~technologie a~nov kategorie informanch systm, kde nkter z~nich u vce nekoresponduj s~originlnm pyramidovm modelem. 

\newpage
\noindent Pklady nkterch systm nevyhovujcch pyramidovmu modelu:

\begin{itemize}
	\item {\bf Datov sklady} 
	\item {\bf Globln informan systmy}
	\item {\bf Expertn systmy}
	\item {\bf Geografick informan systmy}
\end{itemize}

\noindent Dle je mon informan systmy rozdlovat napklad podle rozsahu jejich nasazen:

\begin{itemize}
	\item {\bf Mstn informan systmy} - v~rmci jedn izolovan firmy 
	\item {\bf Transnrodn informan systmy} - typ interorganizanho informanho systmu pesahujcho hranice sttu
	\item {\bf Internacionln informan systm} - pouze takov systm, kde jedna firma pesahuje hranice sttu
	\item {\bf Spontnn informan systmy} - vznikaj v~souasn dob dky mobiln telekomunikaci, a~ji nelze definovat informan systm mstn, protoe spojuje lidi po celm svt
\end{itemize}

\chapter{Inteligentn budovy}

Pojem inteligentnch budov, nkdy tak oznaovn pomoc pojmu chytr budovy, je znm u adu let. V~tto prci budu pouvat oznaen inteligetn budova. Ustlen a~pijman definice tohoto pojmu dosud neexistuje. Zde uvedu nkter z~nich \cite{inteligentnibudovy}.

\begin{itemize}
	\item Inteligentn budova je takov budova, kter je schopn se pizpsobit zmnm ve zpsobech jejho uvn a~zmnch ivotnho stylu jejch obyvatel a~nepestv jim slouit a~vytvet pjemn a~odpovdajc prosted. 
	\item Inteligentn budovy kombinuj inovace technologickho i~organizanho charakteru s~loklnmi i~centrlnmi principy automatizovanho zen tak, aby se maximalizovala rychlost nvratu investic do budovy vloen.
	\item Inteligentn budova je budovou pln vybavenou automatizan, informan a~komunikan technikou, kter slou jednak pmo svm obyvatelm, jednak pro vytven pjemnho prosted pro n.
\end{itemize}

\begin{figure}[hbt]
	\centering
	\includegraphics[width=15cm]{pictures/prikladinteligentnibudovy}
	\caption{Pklad inteligentn budovy (pevzato z~materilu Inteligentn budovy - uebn text VO a~SP Kutn Hora \cite{inteligentnibudovyvos})}
	\label{fig:prikladinteligentnibudovy}	
\end{figure}

V~posledn dob dky poklesu cen jednotlivch komponent a~rozvoji technologi komunikace, kter mohou vyuvat rozhran ethernet, s internet, rzn bezdrtov st si jej mohou dovolit i~men firmy a~podniky \cite{inteligentnibudovyluxusnebonezbytnost}. Vysok poizovac cena byla dvodem, pro byly systmy inteligentnch budov instalovny pouze do velkch eloch staveb a~firem. S~poklesem cen je spojen rozen automatizace budov i~do mench firem i~soukrom bytov vstavby. Dvody pro tuto skutenost lze hledat nejen v~rostoucch nrocch na komfort uivatele, ale tak ve vznamu automatizace budov v~spoe energi a~zen jeji spoteby, co je hlavnm dvodem poizovn systm inteligentnch budov. Podstatnm faktem nejen v~ppad bytov vstavby, ale i~elovch staveb je zajitn bezpenosti pomoc zabezpeovacch systm. V~ppad elovch budov lze jet zmnit vyadovn flexibility tak, aby bylo v~budoucnu mon zmnit el a~vyuit budovy \cite{automatizovanesystemybudov}.

Pod pojmem elov stavby rozumme budovy, kter spluj urit funkn zamen. Pat sem napklad firemn sdla, kancelsk prostory a~nemocnice. Jeliko se jedn o~podnikatelsky provozovan objekty, asto se vybavuj  nronmi  dicmi systmy, jako jsou napklad zabezpeovac systmy nebo systmy kontroly fyzickho pstupu. Ty pot zajiuj provoz jednotlivch pstroj a~jsou vmnoha ppadech vzjemn propojeny a~spojeny svelnem, takzvanm dispeerskm dicm stanovitm. Komunikace je pak zajitna systmem datovch sbrnic  a~st. Vedle optimalizace spoteby energi se  projev spory i~ve snen potu pracovnk obsluhy \cite{buildingautomation}.

Dal poadavek na systmy velovch budovch vyplv zchovn uivatel. Poadavky na rozdlen prostoru se mohou mnit vzvislosti na restrukturalizaci firmy. Msto  velkch konferennch mstnost me vzniknout poteba mench kancel. Konstrukn koncepce stavby a~jej provozn - technick vybaven mus takov zmny umonit. Napklad rozmstn svtelnch  vypna a~jejich piazen  odpovdajcm svtelnm okruhm u nevyaduje elektrick  propojen kabely, ale pizpsoben se provede peprogramovnm inteligentnch prvk. Zde je vpoped aspekt flexibility provoznho zzem.

V~souvislosti s~inteligentnmi budovami obvykle hovome o~kancelskch budovch, ale vznikaj i~inteligentn bytov domy i nkupn centra a~podobn. Shrneme-li dvody, pro vbec inteligentn budovy vznikaj, dobereme se nsledujcch dvod \cite{inteligentnibudovy}:

\begin{itemize}
	\item Zven komfortu poskytovanch slueb a~s~n spojen zven ceny pronjmu
        \item Snen spoteby energi
        \item Snen provoznch nklad
        \item Zven produktivity
        \item Zrychlen nvratnosti investice
        \item Prodlouen ivotnosti budovy
\end{itemize}

Na inteligentn budovy je jet mon nahlet z~dvou rznch hl. Toto dlen nm nabz nsledujc pohledy \cite{inteligentnibudovyvos}.  
\\
\\
{\bf hledisko architektonick}
\begin{itemize}
	\item budovy zajiujc maximln energetickou spornost
        \item zpsobujc minimln ekologickou zt pro sv okol
	\item v~tomto smyslu se bl pojem inteligentn pojmu solrn, ppadn nzkoenergetick, ppadn pasivn
\end{itemize}

\noindent{\bf hledisko automatizace} 
\\
\\
Objekty s~distribuovanm managementem zahrnujcm:

\begin{itemize}
	\item zen kotelen, regulace vytpn a~klimatizace po jednotlivch mstnostech, rzn asov programy  
        \item ovldn a~regulace osvtlen - automatick regulace osvtlen podle ptomnosti osob, denn doby, centrln vypnn a~zapnn spotebi atd.  
	\item ovldn aluzi, markz, rolet a~garovch vrat - run nebo automatick podle denn doby
	\item management energetickho hospodstv - kontrola a~zen spoteby energie, dlkov odeet elektromr, mi tepla, regulace tepelnch erpadel
	\item sprva spotebi a~celho systmu ovldacmi panely, ppadn telefonem i dlkovm ovladaem
	\item EZS - zabezpeovac a~pstupov systm 
	\item uzaven televizn okruh (CCTV)
	\item EPS - elektronick porn signalizace - porn hlsie, kouov detektory
\end{itemize}

Dleitm faktorem inteligentnch budov je propojenost a~integrace jednotlivch podsystm, kter spolu navzjem komunikuj. Jednotliv podsystmy mus bt vzjemn provzny. Mus sdlet informace mezi jednotlivmi systmy  zen, zabezpeen a~sprvy objektu. Jednotliv systmy musej bt propojeny obousmrnou datovou komunikac a~na zklad informace zskan v~nkterm ze systm budovy prostednictvm integrace pmo vyvolat odpovdajc akci v~systmu jinm. 

Napklad pi pornm poplachu vyhodnocenm systmem EPS se spust porn ventilace, vypne se ostatn vzduchotechnika, uvedou se do pornho reimu vtahy, osvtl se evakuan trasy a~odblokuj nikov vchody. Ovldn osvtlen nebo klimatizace jednotlivch prostor podle stavu jejich obsazenosti, kter je vyhodnocen pstupovm systmem. Na zklad informace ze systmu EZS  pi naruen objektu pepnout na kameru systmu 
CCTV snmajc danou znu, ovldat polohovac hlavice kamer nebo sepnout odpovdajc reim videorekordru, ppadn zapnout osvtlen danho prostoru.

\chapter{Problematika pstupovho systmu}

Pstupov systm je systm umoujc povolit nebo zakzat pouvn urit oblasti nebo zdroje, a u fyzickho zazen nebo potaovho informanho systmu.~\cite{accesscontrol}. Kontrola pstupu je v~dnen dob kadodennm fenomnem, a u se jedn o~dvee v~budov, pin k~bankomatn kart nebo zmek od auta. Vechno lze povaovat za kontrolu pstupu. V~naem ppad se jedn o~ budovu nebo soustavu budov, kde systm zajiuje otevrn zmk dve a~ovldn zn zabezpeovacho systmu v~objektu. Jde o~vzjemnou spoluprci hardwaru a~softwaru s~databz a~s~uivatelskm rozhranm umoujcm pidlovn, odebrn a~sledovn pstupovch prv.

U~fyzick ochrany je pojem zen pstupu chpn jako omezen vstupu na pozemek, do budovy nebo mstnosti pouze pro autorizovan osoby. Fyzick kontrola me bt zajitna lovkem, ve firm napklad recepc nebo tak pomoc mechanickch prostedk, jako jsou zmky a~kle. Sprva fyzickch kl bv asto vyuvna jako dal posilujc prostedek k~elektronickmu pstupovmu systmu, kdy mohou bt nkter prostory navc zabezpeeny pomoc  klasickch zmk a~kl a~dochz tak ke zlepen zabezpeen danho prostoru.

Pi zavdn pstupovho systmu je nutn brt zetel na to, kdo a~jak bude systm pouvat. m vt je poet uivatel, tm vt jsou bezpenostn rizika. V~situacch, kde do oblasti vstupuje mnostv uivatel, vetn host, je namst zavst rzn stupn bezpenosti. Napklad banka s~velkm mnostvm zamstnanc a~irokou zkaznickou zkladnou mus nepochybn uvat vce systm pro kontrolu pstupu, aby zajistila, e veejnost se nedostane k~sejfu a~neautorizovan zamstnanci neotevou bankomat. Na druhou stranu mal firma si vysta s~univerzlnm klem ke vem dvem a~rozdnm kl mezi jednotliv zamstnance.

\section{Fyzick a~elektronick systmy kontroly pstup}

Systm kontroly pstupu by ml kontrolovat kdo, kde a~kdy proel. Systm ur kdo m povolen pijt nebo odejt, kde je povoleno pijt nebo odejt a~kdy je dovoleno pijt nebo odejt. Tohoto bylo dve sten dosahovno pomoc zmk a~kl. Mechanick zmek s~klem nedovoluje specifikovat as a~datum, kdy je dritel kle oprvnn vejt. Pouit kle na urit zmek dve nen nikde zaznamenno a~bez vtch obt je mon kle duplikovat a~pedvat neautorizovanm osobm. Pokud dojde ke ztrt kle nebo jeho dritel u vce nen oprvnn k~jeho uvn, je nutn vymnit zmky.

Elektronick pstupov systmy vyuvaj potae, aby odstranili omezen provzejc uvn pouhch mechanickch zmk a~kl. Msto klasickch kl me bt vyuvna cel ada bezdotykovch karet, pvesk (kompaktnj forma identifikan karty, pvesek je mon dt na krouek s~klasickmi kli) nebo biometrickch daj. Po jejich peten je bu pstup povolen nebo zamtnut. Pokud je pstup povolen, jsou dvee oteveny podobu pedem urenho asu a~pstup je zaznamenn do systmu. Pokud je pstup zamtnut zstvaj dvee zaven a~pokus o~vstup je zaznamenn. Systm tak monitoruje dvee a~upozoruje, pokud jsou dvee oteveny jinak ne kartou nebo dreny oteven po pli dlouhou dobu.

\section{Operace kontroly pstupu}

Klasick pstupov systm po peten tekou odesl informace, vtinou slo, kontrolnmu panelu. Kontroln panel porovn slo s~sly v~seznamu a~povol nebo zake pstup a~odele zznam o~pstupu do databze. Pokud je pstup zamtnut, dvee zstvaj zamen. Pokud je slo v~seznamu nalezeno a~pstup je povolen, je sepnuto rel, kter dvee odemkne. teky vtinou poskytuj zptnou vazbu ve form erven ledky pi zamtnut a~zelen pi povolen nebo pomoc zvukov signalizace. 

Pi authentifikaci me bt vyuvno t typ informac. 

\begin{itemize}
	\item Nco co uivatel zn, napklad heslo, frze nebo PIN. 
	\item Nco co uivatel m, napklad karta nebo pvesek.
	\item Nco co uivatel je, napklad otisk prstu.
\end{itemize}

\section{Komponenty kontroly pstupu}

Bodem kontroly pstupu mohou bt dvee, turniket, zvora, vtah, brna nebo jin fyzick pekka, kterou je mon eklektronicky kontrolovat. Vtinou se jedn o~dvee, kdy takto elektronicky ovldan dvee obsahuj mnostv prvk. Mezi zkladn pat elektronick zmek dve, kter odr stav rel na kter je pipojen. U~dve bv instalovna teka karet nebo teka biometrickch daj, kde rozhodnut o~oteven nedl teka samotn, ale posl slo karty jinam, kde je slo porovnno s~kontrolnm seznamem a~rozhodnuto o~jeho validit. Aby bylo mon monitorovat oteven nebo zaven dve, bvaj na dvee a~rm instalovny magnety, pomoc kterch je tento stav mon zptn monitorovat. Pokud nen nutn monitorovat odchod z~objektu, je mon instalovat odchodov tlatko nebo napklad detektor pohybu. Kdy je zmknuto tlatko nebo detektor zaznamen pohyb, budou dvee oteveny.

\section{Bezpenostn rizika}

Nejbnjm naruenm systmu kontroly pstupu je obyejn nsledovn legitimnho uivatele skrz dvee. asto legitimn uivatel podr dvee a~neoprvnn osoba me projt. Tento nevar lze odstranit zakolenm uivatel nebo instalac turniket. Ve vysoce bezpench systmech je mon pout detekn rmy s~lidskou obsluhou, kter zajist kontrolu a~identifikaci uivatele. 

Druhm nejbnjm bezpenostnm rizikem je ponechn otevench dve. A u mysln nebo nemysln ponechn otevench dve je pekvapiv ast a~jednoduch. Pln implementovan systmy pro kontrolu pstupu monitoruj oteven dve a~ppadn vyhlauj poplach, pokud nejsou dvee do uplynut asovho intervalu zaveny.

Snadn je obejt bod kontroly skrze levn sdrokartonov pky a~vyhnout se tak kontrole. Elegantnj monost jak obejt bod kontroly je vyuit silnho magnetu a~pomoc nj otevt elektromagnetick zmek dve. Je tak mon s~dvemi manipulovat, pokud zmek odpojme nebo pipojme ke zdroji elektrickho proudu.

Samotn karty je mon tak podvrhnout, a u jejich zcizenm nebo zkoprovnm. Pomoc penosn teky je mon pest kartu a~peten slo pout u~teky kd. Toto je mon provst dky tomu, e sla karet jsou penena v~nezakdovan form pomoc bnho textu.

V~neposledn ad lze zatoit i~na samotnou vloku dve, kter bv pouvna u~vtiny elektronickch zmk jako pojistka a~je zraniteln vi takzvan bumping metod, zejmna u~starch cylindrickch vloek.

\chapter{Specifikace poadavk}

V~tto kapitol uvedu jednotliv komponenty pouit pi fyzick instalaci systmu a~specifikaci poadavk na programov vybaven.

\section{Hardware}

{\bf Server} - Pota, na kterm je nainstalovna databze obsahujc veker nastaven a~informace tkajc se pstupovho systmu, ppadn i~dal sluby, jako je sluba ovldajc vstup-vstupn zazen a~sluba, kter te sla karet ze sriovch port, na kter jsou pipojeny jednotliv teky karet. Me zde bt tak nainstalovn internetov informan server, na kterm je instalovn webov management pstupovho systmu. Jednotliv sluby mohou bt instalovny na server nebo ppadn i~na jin potae, kde je podle konfigurace rozpoznno, kter zazen jsou ovldana kterm servisem. 
\\
\\
{\bf Bezkontaktn tecka karet} - Zazen, kter pete piloenou bezkontaktn kartu a~pole peten data na wiegand pevodnk. 
\\
\\
{\bf Dvee s~elektronickm zmkem} - Jedn se o~standartn dvee s~elektromagnetickm zmkem, kter lze ovldat pomoc zmny napt. Na takovchto dvech bvaj tak instalovny magnety, kter zajiuj zptnou informaci o~stavu dve, zda jsou oteven i zaven. 
\\
\\
{\bf Wiegand pevodnk} - Wiegand je standarstnm rozhranm, kterm komunikuj teky bezkontaktnch karet. Univerzlnm pevodnkem z~datovho formtu wiegand na standartn sriov port RS-232 je napklad PRWA2, kter je tak pouit v~naem ppad \cite{prwa2}. Takto lze benou bezkontaktn teku karet pipojit do standartnho sriovho portu potae nebo jinho zazen. Vstupem takovhoto pevodnku je slo peten karty jako ist text ve formtu ASCII. Tento pevodnk pracuje s~penosovu rychlost 9600 Bd, take lze podle tabulky ~\ref{rs232delka} doshnout teoretick maximln mon dlky veden a 150 metr.
\\
\\
{\bf RS-232} - Rozhran pro penos informac vytvoen pvodn pro komunikaci dvou zazen do vzdlenosti 20 m. Pro vt odolnost vi ruen jsou data po propojovacch vodich penena vtm naptm, ne je standartnch 5 V. Penos informac probh asynchronn, pomoc pevn nastaven penosov rychlosti. Standart RS-232 uvd jako maximln monou dlku vodi 15 metr, nebo dlku vodie o~kapacit 2500 pF. Co znamen, e pi pouit kvalitnch vodi lze dodret standart a~doshnout vzdlenosti a 50 metr. Kabel lze tak prodlouit pi snen penosov rychlosti. Texas Instruments uvd jako vsledek pokusnch men nsledujc tabulku dlek vodi ~\ref{rs232delka}.   
\begin{table}[hbt]
	\centering
	\resizebox{10cm}{!} {
		\begin{tabular}{|c|c|}
			\hline
			{\bf Penosov rychlost v~baudech} & {\bf Maximln dlka v~metrech} \\ \hline
			19200 & 15 \\ \hline
			9600 & 150 \\ \hline
			4800 & 300 \\ \hline
			2400 & 900 \\
			\hline
		\end{tabular}
	}
	\caption{Maximln dlka veden v~zvislosti na penosov rychlosti \cite{rs232}}
	\label{rs232delka}
\end{table}
\\
\\
{\bf Moxa UPort NPort} - Moxa UPort je zazen obsahujc sriov porty, kter je mon pipojit pomoc usb kabelu k~potai a~takto jej rozit o~COM porty umstn na Moxe. Moxa NPort je takka toton zazen, kter roz pota o~sriov porty na Moxe. Jedinou odlinost je pipojen Moxy k~potai skrz standartn ethernetovou s. Proto je mon Moxu NPort instalovat i~na vzdlenj msta od serveru, kde nen vzdlenost pipojen limitovna maximln dlkou USB kabelu.
\\
\\
{\bf DataLab} - Jedn se o~vstup-vstupn zazen, kter je pipojeno k~potai pomoc USB kabelu, u~kterho je pot mon st zmny na vstupech a~spnat nebo rozepnat vstupy DataLabu.
\\
\\
{\bf ADAM} - Jedn se o~vstup-vstupn zazen, kter je tak ovldno skrz pota ke ktermu je ADAM pipojen. Msto pipojen USB kabelem je ADAM spojen s~potaem pes potaovou s ethernet, take je mon jej instalovat i~na msta vzdlenj od umstn serveru. 
\\
\\
{\bf Odchodov terminl} - Pota zabudovan do stny vedle odchodovch dve, pomoc kterho je zajiovn odchod a~volba dvodu odchodu a~je skrz nj je mon zjiovat dal informace tkajc se stavu pstupovho systmu. Na potai je instalovn Microsoft Windows XP Embedded, co je systm uren pro specializovan nebo jednoelov zazen vyuvajc stejn technologie jako systmy Windows XP, ale je podstatn men, ne klasick instalace Windows XP a~obsahuje pouze potebn komponenty operanho systmu. Hardware terminlu je v~podtat stejn jako u~klasickho potae, pouze je zde nutnost, aby obsahoval alespo jeden COM port RS-232, na ktrer je poteba pipojit odchodovou teku. 

\section{Poadavky}

Zadnm je vytvoit pstupov systm v~podstat od zatku, aby byla kontrola celho programovho dla pod kontrolou a~bylo je mon upravovat podle poteb jednotlivch instalac. Clem je vytvoit programy, kter dok propojit jednotliv komponenty systmu a~vytvoit z~nj fungujc celek, za vyuit ji zmnnho hardwaru. Proto je poteba implementovat systmovou slubu windows, kter bude st data ze sriovch linek, systmovou slubu na ovldn vstup-vstupnch zazen a~aplikaci bc na odchodovm terminlu, pomoc kter bude mon nastavit parametry odchodu. Poadavkem tak je vytvoit webov management, pomoc kterho bude mon zavdt uivatele, karty, nastavovat oprvnn a~dal potebn nastaven. V~dalch podkapitolch popi poadavky kladen na jednotliv sti systmu.

\section{Sluba pro ten dat ze sriov linky RS-232}

Zadnm je naprogramovat aplikaci jako systmovou slubu windows, co zaru, e i~po restartovn a~optovnm nabhnut potae a~operanho systmu se sluba znovu spust a~bude vykonvat svoji funkci,  kterou je naslouchn na jednotlivch sriovch portech a~po peten sla karty jej odeslat do databze pro dal zpracovn.

\begin{itemize}
	\item Nastaven sluby bude natno z~registr.
	\item Schopnost st vstupn data z~PRWA2 a~peten slo karty poslat do databze.
	\item Monost nastaven intervalu pro ten dat. Po jednom ten nebudou dal peten data poslna do databze, a do uplynut stanovenho intervalu.  
	\item Sputn servisu a~chybov stavy budou zapisovny do textovho souboru na disk.
\end{itemize}

\section{Sluba pro ovldn vstup-vstupnch zazen}

Naprogramovat systmovou slubu, kter bude ovldat a~st stavy vstup-vstupnch zazen. Nastaven, pkazy i~stavy jednotlivch vstup budou natny a~zapisovny skrz databzi.  

\begin{itemize}
	\item Nastaven sluby bude natno z~registr.
	\item Konfigurace jednotlivch ovldanch zazen a~stavy jejich vstup a~vstup budou natny a~nastavovny v~databzi.
	\item Schopnost spnat a~rozepnat vstupy vstup-vstupnch zazen, jejich stavy a~stavy vstup zaznamenvat do databze.
	\item Monost nastavit, kter vstupy a~vstupy budou piazeny dan systmov slub-
	\item Po sputn sluby se vstupy vstup-vstupnho zazen nastav do stavu, v~jakm byly naposledy uloeny v~databzi.
	\item Monost nastavit dodaten proveden nezpracovanch pkaz po sputn sluby, nebo jejich ignorovn. 
	\item Sputn servisu a~chybov stavy budou zapisovny do textovho souboru na disk.
\end{itemize}

\section{Terminlov aplikace}

Aplikace, kter bude sputna na odchodovm terminlu a~bude zajiovat zpracovn odchod, ppadn pchod u~danch dve. 

\begin{itemize}
	\item Nastaven aplikace bude natno z~registr.
	\item Rozmry terminlov aplikace nastavit podle hodnoty nastaven v~registrech 
	\item Dvody jednotlivch odchod budou natny z~databze.
	\item Aplikace bude zobrazovat aktuln as a~bude mon synchronizace asu s~databzovm serverem.
	\item Informace budou bu zpracovny pmo databz, nebo budou poslna xml data na internetov informan server asp strnce, kter data zpracuje, zajist uloen dat do databze a~terminlov aplikaci vrt zpt xml data s~informacemi o~vsledku. 
	\item Zobrazen osob ptomnch v~budov s~monost jejich odhlen.
	\item Monost zobrazit tablo stav zadanch vstup a~vstup vstup-vstupnho zazen.	
	\item Moznost nastavit zobrazen zptn kontroly prostor, kter se zabezpeuj pi odchodu osoby z~budovy a~neoteven v~ppad nespnho zabezpeen nekterho z~prostor.
	\item Sputn terminlov aplikace a~chybov stavy budou zapisovny do textovho souboru na disk.
\end{itemize}

\section{Webov management}

Webov management pstupovho systmu by ml obstarvat vechna potebn nastaven, zobrazovn a~plnn systmu daty, krom prvotnho nastaven, kter bude provedeno pi poten instalaci systmu.

\begin{itemize}
	\item Audit vkldn, editace a~mazn zznam
	\item Pihlaovn a~ovovn pomoc webovho formule nebo tu windows pro pihlaovn pomoc tu v~domn
	\item Monost ovldn systmovch slueb skrz webov management, pokud jsou instalovny na stejnm potai jako internetov informan server
	\item Monost zobrazen logovacch soubor systmovch slueb skrz webov management, pokud jsou instalovny na stejnm potai jako internetov informan server
\end{itemize}


\section{Vstupy informanho systmu}

Informace o~osobch\\
Informace o~kartch\\
Informace o~dvech\\
Informace o~skupinch dve\\
Informace o~prostorech\\
Informace o~asovch omezench\\
Informace o~oprvnnch ke dvem, skupinm dve a~prostorm\\
Informace o~uivatelch webovho managementu\\

\section{Vstupy informanho systmu}

Informace o~ptomnosti osob\\
Informace o~ptomnosti osob v~prostorech\\
Informace o~pstupech v~systmu\\
Informace o~dochzce, pchodech a~odchodech osob\\

\chapter{Analza pstupovho systmu}

V~tto kapitole popi fyzickou instalaci jednotlivch komponent pstupovho systmu a~jejich vzjemn propojen. Odvodnm a~popi vber pouitch technologi pro implementaci programov sti.

\section{Fyzick instalace systmu}

Diagram \ref{fig:physicaldiagram} ukazuje pklad fyzickho zapojen jednotlivch komponent. Hlavn komponentou celho systmu je dc pota, na kterm jsou nainstalovny vechny aplikace potebn pro chod celho systmu. Jedn se o~systmovou slubu windows pro ten dat ze sriovch linek a~systmovou slubu windows, kter zajiuje ten stav vstup a~ovldn vstup vstup-vstupnch zazen.

Ukzkov systm obsahuje mimo dcho potae jet dal zazen. Moxa je zazen, kter je mon pipojit pes USB kabel k~dcmu potai a~rozit jej tak o~COM porty umstn na Moxe. Pipojen je mon i~skrz ethernetovou s a~moxa me bt umstna prakticky na libovolnou vzdlenost od dcho potae. Dal skupinou zazen jsou vstup-vstupn jednotky. Jedn se o~zazen DataLab \cite{datalab} a~ADAM \cite{adam}. 

DataLab IO pedstavuje vstup-vstupn jednotku pro prmyslov pouit. Pro jednoduchost a~pehlednost je v~textu pouvno pouze oznaen DataLab. Jedn se o~modulrn zazen, kdy lze podle velikosti jednotky, kter m tyi, dv nebo jednu pozici, voln nakombinovat vstup-vstupn moduly podle individulnch poteb instalace. Pro poteby pstupovho systmu bvaj jednotky se tymi pozicemi standardn osazovny dvma moduly pro osm logickch vstup a~dvma moduly pro osm logickch vstup. Tm pdem je takto mon vyuit maximln estnct elektromagnetickch zmk pipojench na vstupy a~estnct magnet pipojench ke vstupm jednotky DataLab. Jednotky o~velikosti dvou a~ty volnch pozic je mon napjet jak pomoc USB kabelu, pokud je pipojen do USB portu, kter podporuje pipojen vysokospotebovch periferi, tak pomoc externho zdroje. Jednotka s~jednou volnou pozic nem vyveden konektor pro extern napjen a~proto je mon ji napjet pouze pomoc USB kabelu.

ADAM je oznaen pro vstup-vstupn jednotky od firmy Advantech, kter vyrb celou adu produkt tkajcch se prmyslov automatizace. ADAM srie 4000 komunikuje pomoc sriov linky a~srie 6000 pes potaovou s ethernet. Pro nae poteby je vhodnj srie 6000, kter nepotebuje pro sv pipojen sriov porty, kter u vyuvme pro pipojen teek, navc odpad i~problm s~maximln dlkou kabele a~jednotku je mon umstit v~libovoln vzdlenosti od dcho potae. V~pstupovm systmu je konktrtn instalovn model s~oznaenm ADAM-6060, dle v~textu pro jednoduchost oznaovn pouze jako ADAM, kter poskytuje est relovch vstup a~est digitlnch vstup.

\newpage

\begin{figure}[!ht]
	\centering
	\includegraphics[width=13cm]{pictures/PhysicalDiagram}
	\caption{Diagram fyzickho rozmstn komponent}
	\label{fig:physicaldiagram}	
\end{figure}

\newpage

V~diagramu \ref{fig:physicaldiagram} jsou kvli pehlednosti ob zazen DataLab i~ADAM zobrazena pouze jako jednotky se tymi vstupy a~tymi vstupy. DataLab je v~diagramu pipojen pmo k~dcmu potai a~na vstupo RL0 m pipojen elektromagnetick zmek dve s~slem jedna, kter ovld a~na vstupu DI0 magnet od tch stejnch dve, kter monitoruje, zda jsou dvee oteven nebo zaven. Vedle tchto dve je tak zobrazen terminl, na kterm je sputna odchodov aplikace. Moxa s~oznaenm jedna je takt pipojena pomoc USB kabelu a~na prvnm COM portu m pipojenou teku, kter peten data posl pes PRWA2 pevodnk.

Moxa s~oznaenm dva, ADAM i~Dvee slo dva jsou znzornny v~diagramu tak, e jsou umstny na vzdlenj lokalit od dcho potae, kdy se me jednat i~o~pln jinou budovu nebo pracovit. Vechna tato zazen jsou k~dcmu potai pipojena pomoc st ethernet.

Neosazen vstupy mohou bt propojeny se zabezpeovacm systmem. S~jejich pomoc lze ovldat zabezpeen jednotlivch prostor a~na vstupy zazen zapojit vstupy zabezpeovacho systmu, aby bylo mon monitorovat zptnou vazbu a~stavy zabezpeen jednotlivch pipojench prostor.

\section{Pouit technologie}

Pro vechny aplikace bylo pouito stejn technologie a~to Microsoft .NET, co je platforma uren pro rychl vvoj windows, web a bohatch webovch aplikac (RIA - Rich Internet Applications) a~za vyuit programovacch jazyk C\# a~Visual Basic .NET \cite{programmingcsharp}. 

\subsection{Microsoft .NET}

.NET (\uv{dotnet} z~aglickho teka NET) je nzev pro softwarovou platformu, nad kterou je mon vytvet celou adu softwarovch produkt. a u se jedn o~Web, aplikace pro Windows nebo PocketPC. Zkladem tto platformy je Microsoft .NET Framework, kter je nepostradateln pro bh aplikac napsanch pro platformu .NET. Rovn poskytuje spoutc rozhran a~potebn knihovny. Tato platforma nen svzna s~konkrtnm programovacm jazykem a~i~kdy nejpouvanjmi programovacmi jazyky jsou C\# a~VB.NET, existuj i~jin programovac jazyky, jako je napklad F\#, co je funkcionln programovac jazyk, J\# je jazyk velice blzk jazyku Java a~lze s~jeho pomoc vyuvat standartnch Java knihoven. Nebo tak IronPython, kde se jedn o~implementaci programovaho jazyka Python. 

Nezvisle na pouitm programovacm jazyku je zdrojov kd peloen do mezijazyka CIL (Common Intermediate Language). CIL je procesorov a~hlavn platform nezvisl soubor informac, kter mohou bt implementovny v~jakmkoliv prosted podporujcm CLI (Common Language Infrastructure), tato specifikace definuje prosted, kter umouje pouvn vce vysokorovovch programovacch jazyk na rznch potaovch platformch, ani by bylo potebn pepisovat jejich pekladae s~ohledem na zvltnosti konkrtn architektury. Me se jednat bu o~.NET pro operan systmy Microsoft Windows, nebo samostatn odvozen projekt Mono, kter pracuje pod operanmi systmy jako je Linux nebo UNIX \cite{mono}.

Od svho vzniku Microsoft .NET Framework proel nkolika hlavnmi verzemi \cite{.netframeworkhistory}. Od potku ve verzi 1.0 z~roku 2002, kde bylo uvedeno vvojov prosted pro platformu .NET, kter je ve svch pozdjch verzch vyuvno dodnes. Verze 1.1 s~sebou pinesla novou verzi vvojovho prosted Visual Studio 2003. Verze 2.0 je asi nejrozenj a~nejpouvanj verz frameworku a~byla vydna v~roce 2005 spolu s~Visual Studiem 2005. Pozdj verze 3.0 a~3.5 nejsou samostatn fungujc verze, ale pouze rozen fungujc nad verz 2.0. Visual Studio 2005 je dalm pokraovatelem tohoto vvojovho prosted, kde s~verz Visual Studia 2008 pichz podpora takzvanho multitargetingu, kdy se jedn o~monost mit clovou verzi frameworku, kter u nen spjata s~verz vvojovho prosted. Posledn nejnovj verz framevorku je verze 4.0 z~roku 2010, kter je opt samostatn fungujc instalac a~ke svmu bhu nevyaduje instalaci dvjch verz. Microsoft .NET Framework 4.0 je mon tak instalovat v~pln verzi a~nebo omezenj takzvan klientsk profil, kter je ovem dostaujc pro vtinu bnch aplikac. Visual Studio je takt v~novj verzi a~to pod oznaenm Visual Studio 2010.

Ob systmov sluby windows, aplikace pro odchodov terminl i~webov management byly naprogramovny ve vvojovm prosted Visual Studio 2008 ppadn Visual Studio 2010 a~vechny vyuvaj nejnovj Microsoft .NET Framework 4.0.

\subsection{Webov een}

Stle vce desktopovch aplikac je pevdno do prosted webovch prohle a~internetu. Tato varianta implementace nevyaduje instalovn dnch dalch program na kad klientsk pota a~je vyuvno webovho prohlee, kter u bv soust prakticky kadho operanho systmu. Webov aplikace me bt zpstupena i~z~prosted internetu, i~kdy je primrn urena pro intranet. Kad, kdo potebuje, me mt pstup k~pehledu svch nastaven, prv a~me si zobrazit nebo sthnout pehled svch pstup. 

\subsection{Sluba Windows}

Sluva Windows je v~operanm systmu Microsoft Windows speciln program, kter je sputn dlouhodob a~nen v~pmm kontaktu s~uivatelem. Sluba windows se spout pi startu operanho systmu, ppadn automaticky v~ppad poteby nebo runm zsahem uivatele. Koncept slueb Windows je obdobou unixovch dmon. Tyto vlastnosti jsou ideln pi pouit sluby Windows na serverech, kde je poteba dlouho bcch aplikac, kter nezasahuj do innosti jinch prv pihlench uivatel.
\\
\\
{\bf Sluby Windows oproti bnm Windows aplikacm}

\begin{itemize}
	\item Zkompilovan spustiteln soubor je nutn nainstalovat, ne me bt smyslupln pouvn. Neme bt sputn nebo lazen prostednictvm sputn pmo z~vvojovho prosted. Msto toho je nutn slubu nainstalovat, spustit a~pot pipojit lac program k~jejmu procesu.
	\item Narozdl od jinch typ projekt je pro slubu nutn vytvoit instalan komponenty. Instalan komponenty nainstaluj a~zaregistruj slubu v~Service Control Manageru operanho systmu Windows.  
	\item Sluby systmu Windows jsou sputny v~jinm kontextu, ne je kontext pihlenho uivatele, take jde o~zabezpeen objekt, kter obsahuje schrnku, skupinu globlnch atom a~skupinu jinch objekt. V~ppad slueb Windows se nejedn o~interaktivn aplikaci, take dialogov okna vyvolan z~prosted sluby Windows nebudou zobrazena a~mohou zpsobit zaseknut sluby. Podobn chybov zprvy by mly bt spe zaznamenvny ne zobrazovny skrz uivatelsk rozhrann.
	\item Interakce uivatele se slubou mus bt peliv navrhnuta, tak aby zahrnovala i~ppady, kdy nen pihlen dn uivatel. V~nkterch ppadech je lep vytvoit bnou aplikaci, kter b pod kontrolou uivatele.
	\item Sluby Windows jsou spoutny ve svm vlastnm bezpenostnm kontextu a~spout se ped pihlenm uivatele k~systmu windows, na kterm jsou nainstalovny. Mlo by bt naplnovno, pod jakm uivatelskm tem by mla bt sluba sputna, protoe sluba sputen pod systmovm tem m vce oprvnn a~privileg, ne tomu je u~uivatelskho tu.
\end{itemize}

Dalm rozdlem mezi bnmi aplikacemi a~slubami je zpsob instalace. Jak ji bylo eeno dve jsou sluby zeny prostednictvm Service Control Manageru a~pedtm, ne me bt sluba pouvna, je nutn ji nainstalovat a~tm pidat do seznamu slueb Service Control Manageru. Microsoft .NET Framework pro tyto poteby obsahuje nstroj InstallUtil.exe, kter vol instaltory definovan ve slub a~registruje slubu do Service Control Manageru. Tyto instaltory jsou soust zdrojovch kd sluby a~lze s~jejich pomoc nastavit nkter vlastnosti, se ktermi m bt sluba nainstalovna. Jedn se napklad o~jmno sluby, kter bude zobrazovno v~Service Control Manageru, uivatelsk et, pod kterm bude sluba spoutna nebo zpsob spoutn sluby, a u automaticky nebo manuln uivatelem. Takto nainstalovanou slubu je tak mon odinstalovat za pomoci stejn utility, ale za pout parametru uv{/u}, kter zajist odregistrovn sluby z~Service Control Manageru. 
\\
\\
\noindent {\bf ivotn cyklus sluby windows} 
\\
\\
Sluba bhem svho ivotnho cyklu projde mnostvm internch stav. Prvn je sluba nainstalovna na systm, kde bude sputna. Tento proces spust instaltory, kter zajist nahrn sluby do manaeru slueb. Manaer slueb je utilita, kter je zkladn soust kadho operanho systmu Windows. Po zaveden sluby je poteba ji spustit, co me bt provedeno pomoc manaeru slueb nebo z~kdu pomoc metody Start. 

Metoda Start ped dal zpracovvni aplikace metod OnStart, kter zpracuje jakkoliv nadefinovan kd. Takto sputn sluba zstv v~tomto stavu, a dokud nen pozastavena, zastavena nebo nen vypnut pota, na kterm je sputna. Sluba se me nachzet ve tech zkladnch stavech Running (sputna), Paused (pozastavena) nebo Stopped (zastavena). 

Sluba tak hls stav nezpracovanho pkazu, jako je ContinuePending, PausePending, StartPending, StopPending. Tyto stavy indikuj, e je pkaz zpracovvn, ale jet nebyl vyzen. Stav sluby je mon zjistit pomoc dotazu, nebo je mon vykvat dokud poadovan stav nenastane. Slubu je mon pozastavit, zastavit, nebo obnovit z~manaeru slueb nebo zavolnm pslun metody. Kad z~tchto akc spust ve slub pslunou proceduru OnStop, OnPause, OnContinue, ve kterch je mon nadefinovat dal chovn, kdy sluba zmn svj stav.

\chapter{Komponenty pstupovho systmu}

Systm fyzick kontroly pstupu je tvoen systmovou slubou, kter zajiuje ten piloench karet a~tm pln systm daty. Slubou, kter zajiuje ovldn vstup a~zptn ten informac ze vstup. Dle aplikac pro odchodov terminl, kter pedstavuje msto, kde systm zskv dal data od uivatel. V~neposledn ad webov management, ktermu je vnovna samostatn kapitola.

\section{Sluba pro ten karet}

Vyvinut sluba e ten dat ze sriovch linek po piloen karty ke tece bezkontaktnch karet. Peten sla jsou pot odeslna do databze, ve kter jsou dle zpracovna. K~logovn prbhu sluby a~vech chybovch stav je pouit textov soubor. Nastaven sluby je nateno pi jejm sputn z~registr a~na dal zmny u nen brn zetel. Jeliko k~sprvnmu fungovn sluby je poteba navzat komunikaci s~databzovm serverem, je poteba pipojen k~databzi monitorovat. Pi startu potae me nastat stav, kdy sluba bude sputna dvji, ne bude pipravena s nebo ne se spust lokln databzov server, take bude databze nedostupn. Tyto ppady jsou oeteny opakovanm dotazovnm na server, dokud nen spojen navzno. A pot sluba pejde k~dalm krokm. Stejn opaten je vyuito u~nedostupnosti databze pi zasln petench dat. asov limity a~poty opakovn jsou natny z~registr, stejn tak tomu je s~nastavenm logovn, jako je cesta k~logovacmu souboru, jeho velikost a~stupnm logovn. V~registerech je tak uloen etzec pro pipojen k~databzi. Jeliko cel systm je ve vsledku provozovn na dedikovanch potach, nen nutn hodnoty v~registrech nijak ifrovat, i~kdy je tato monost zmnna jako jedno z~monch rozen. V~registrech je tak mon nastavit interval, kdy se pi kadm jeho dosaen vype mnostv pouvan pamti. Jednm ze zmnnch poadavk byla i~monost zablokovat dal ten dat ze sriovho portu, aby nedochzelo k~rychlmu a~opakovanmu ten stejn karty. Obshlej vklad zasluhuj poloky v~registru, ve kterch je uloeno nastaven sriovch port a~akc, kter nastvaj pi ten z~nich. Podrobnj vysvtlen je v~kapitole Instalace, nasazen a~provoz systmu \ref{chap:instalace}. 

ten dat ze sriov linky je vyuvno i~u~aplikace na odchodovm terminlu, proto jsem zvolil monost vytvoit pro ten sriovch dat knihovnu. Prostednictvm tto knihovny probh nastaven i~otevrn sriovch portu a~nsledn ten z~nich. Chybov stavy jsou takt zaznamenvany do logovacho souboru. Jakmile dojde k~obdren dat ze sriov linky, knihovna vyvol udlost CardReaded, kter me bt nsledn zachycena a~zpracovna. Implementace pomoc knihovny byla zvolena tak z~dvodu snadnj roziitelnosti cel sluby. Pi pouit jinho formtu dat, ne tomu je u~PRWA2 pevodnku nebude zapoteb upravovat zdrojov soubory sluby, ale dojde pouze k~nahrazen tto knihovny. Soust projektu knihovny je naprogramovan i~konzolov nstroj, pomoc kterho je mon se pipojit k~vybran sriov lince, nastavit jej parametry, zvolit typ teky a~otestovat sprvnost ten dat.

Jak u bylo zmnno dve, k~instalaci sluby je mon pout nstroj Installutil.exe, kter je soust nainstalovanho Microsoft .NET Frameworku, kter je nezbytn pro bh .NET aplikac. Uivatelsky pvtivjm zpsobem instalace bylo k~projektu sluby vytvoit jet projekt windows instaltoru. Pomoc nj je mon slubu nainstalovat stejn jako kteroukoliv jinou aplikaci. V~instaltoru je mon nastavit vytvoen registr, jejich umstn a~vchoz hodnoty. V~instaltoru je tak mon nastavit metody, kter budou sputny po dokonen instalace, kde je napklad mon spustit slubu, a potom, co byla zapsna vechna nastaven do regist. Stejn je mon spustit nadefinovanou metodu, kter probhne jet ped odinstalovnm. Pomoc tchto dvou metod je eena zloha registr pi odinstalovn sluby a~jejich nsledn import po instalaci novj verze.  

\section{Sluba pro ovldn vstup-vstupnch zazen}

Sluba pro ovldn vstup-vstupnch zazen je kovou komponentou v~celm pstupovm systmu. Zajiuje ovldn pstupovch bod a~zjiuje jejich stav. Pomoc zazen DataLab a~ADAM, u~kterch doke nastavovat jejich vstupy a~st vstupy, na kter jsou pstupov body pipojeny. K~slub lze piadit libovoln mnostv zazen z~konfigurace, kter je uloen v~databzi. Tm pdem je mon slubu nainstalovat na dva rzn potae, a~kad z~nich me bt nastavena tak, aby naetla pouze konfiguraci, kter je pslun k~pipojenmu zazen. Tto monosti je mon vyut obzvlst pi pouit dvou zazen DataLab, kter mus bt umstna na dvou rznch vzdlench mstech, kde by nedostaovala dlka USB kabelu.  

Stejn jako u~sluby pro ten dat ze sriov linky jsou chybov stavy logovny do textovho souboru a~spojen s~databz je udrovno stejn jako u~prvn sluby. Pi nespnm nastaven vstupu dojde k~opakovanm pokusm a~pokud nen spojen navzno, znamen to nejspe vpadek databzovho serveru nebo potaov st. V~tom ppad se sluba pokou pipojit k~databzi v~definovanch intervalech.  Nastaven a~parametry sluby jsou uloeny v~registrech operanho systmu. 

Pi startu sluby dojde bu k~nastaven vstup do pvodnho stavu nebo jsou jejich stavy obnoveny podle stav uloench v~databzi. Sluba me bt nastavena tak tak, aby po navzn spojen s~databz vykonala i~doposud nezpracovan pkazy nebo je oznaila za zpracovan, ale nevykonala je. Pokud nastane situace, e nen njak pkaz zpracovn do uplynut stanovenho limitu, pokus se sluba pkaz vykonat znovu, pokud se ani po zopakovn pokus nepoda pkaz vykonat, je oznaen jako nespn zpracovan a~me se jednat o~vpadek vstup-vstupnho zazen. A u se jedn o~sov ADAM nebo pomoc USB kabelu pipojen DataLab, maj oba dva typy zazen v~registrech nastaven maximln limit pro vykonn tchto pkazu.

Pkazy jsou trojho typu, pomoc nich lze vstupy ovldat. Je mon jejich sepnut, rozepnut nebo vykonn impulsu. Sepnut a~rozepnut nen poteba nijak ble vysvtlovat, v~ppad impulsu se jedn o~sepnut vstupu na pedem definovanou dobu a~jeho nsledn rozepnut. U~vstup je mon nastavit i~inverzn chovn. Doba impuls i~inverznost jednotlivch vstup je nastavena pro kad vstup zvlṻ a~je natna z~tabulky konfigurace uloen v~databzi.

K~zazen DataLab i~ADAM jsou dodvny knihovny, kter poskytuj funkce pro pipojen k~zazenm, pro ten informac ze vstup a~ovldn vstup. Pro sprvnou funknost zazen DataLab je nutn vytvoit ke kadmu zazen katzvan par soubor. Jedn se o~textov soubor s~pponou par. Definuje osazen jednotlivch slot a~typy jednotlivch modul.

\section{Aplikace pro odchodov terminl}

Aplikace pro odchodov terminl je dleitou soust celho systmu. Jde o~aplikaci, kter umouje uivatelm volit dvody odchod respektive pchod. Tm zajiuje do systmu psun vstupnch informac od uivatel.

Stejn jako u~pedchozch aplikac i~tato m sv nastaven uloen v~registrech opernho systmu. Popisy jednotlivch tlatek jsou ovem uloeny v~databzy, protoe jejich hodnoty jsou vyuvny i~u~zobrazovn jednotlivch pstup.

Aplikace vyuv ji zmiovanou knihovnu, stejn jako sluba pro ten sriovch linek. Fyzick terminl je vybaven dvma sriovmi porty, ke kterm je pipojena pchodov a~odchodov teka. Pchodov teka pracuje stejn jako jakkoliv jin, kterou te sluba windows. Po piloen karty jsou peten data odeslna do databze. U~odchodu je poteba nejdve zvolit dvod odchodu a~az pot piloit kartu, aby byla peten data odeslna a~dle zpracovna.

\begin{figure}[hbt]
	\centering
	\subfloat[Hlavn obrazovka]{
		\label{fig:TerminalMain}
		\setlength\fboxsep{0pt}		
		\fbox{\includegraphics[width=0.45\textwidth]{pictures/TerminalMain}}}                	
  	\subfloat[Servisn obrazovka]{
		\label{fig:TerminalServis}
		\setlength\fboxsep{0pt}
		\fbox{\includegraphics[width=0.45\textwidth]{pictures/TerminalServis}}}
		\caption{Nkter vybran obrazovky dchodovho terminlu}
	\label{fig:Terminal}	
\end{figure}

Soust aplikace je i~servisn menu, pomoc kterho je mon po autorizaci zobrazovat ptomn osoby nebo je tak odhlaovat. Dle je mon zobrazovat stavy jednotlivch vstup a~vstup pomoc obrazovky vizualizace. U~tlatek v~servisnm menu je mon nastavit proveden jakhokoliv sql dotazu. Na pkladu obrazovky \ref{fig:TerminalServis} jsou zobrazena tlatka k~posunut nebo vrcen nonho zabezpeen. Po jejich zmknut se provede sql dotaz, kter nastav datum asovae sputn nonho zabezpeen pslunm zpsobem.

\chapter{Navrh webov aplikace}

V~potcch vvoje webovch aplikac byly aplikace tvoeny bez zvaovn dokumentace nebo modelovn aplikace. Dnen spolenosti zavaj stle vce problm pi spravovn webov aplikace z~dvodu jejich velikosti a~pidvn stle novch poadavk. Z~toho dvodu zanaj vvoji webovch aplikac vnmat, m dl tm vt dleitost pouvn modelovacch jazyk k~nvrhu a~k~dokumentaci systm. Otzkou zstv, zda je zapoteb modelovn u~malch projekt a~zda se tm pouze nezvednou nklady a~neprodlou as potebn k~dokonen projektu. 

Zde bych chtl porovnat dva modelovac jazyky, WebML a~UML. Draz je kladen na WebML, kdy se jedn o~modelovac jazyk, kter byl speciln navren pro modelovn webovch aplikac. WebML je zde porovnvn s~UML, co je velice rozen jazyk, kter je prmyslem pouvn jako de-facto standard pro modelovn rznch systm, mimo jin i~webovch aplikac \cite{webmlvsuml}.

Modelovn je nezbytnou soust a u velkch i malch programovch projekt. Model je abstraktn reprezentac systmu. Vytvoenm model, kter zahrnuj vechny specifikace problmu relnho svta bude mon systm snadnji vytvoit a~mme jistotu, e bude pln funkn. Vytvoen modely tak slou jako komunikan prostedek mezi jednotlivmi leny projektovho tmu. Vznikaj m dl komplexnj systmy a~proto se jejich vizualizace a~modelovn stv nedlnou soust projektu. 

\section{UML}

UML (Unified Modelling Language) je notace pro modelovac systmy, jazyk kter je pouvn ke specifikaci, vizualuzaci, konstrukci a~dokumentaci jednotlivch soust systmu. Proces sbrn a~analzy poadavk je velice komplexn proces a~je mon vyut mnostv metodik. Ovem bez ohledu na to, kter metodika je pi analze pouita, me bt vyuito jazyka UML. V~UML je mon vymodelovat jakkoliv typ aplikace bez ohledu na hardware. Pestoe UML definuje pesn jazyk, stle me bt rozen o~budouc vylepen bez pedefinovn jdra UML.

V~tto sti jsou strun popsny jednotliv typy nejpouvanjch diagram. V~souasn verzi UML 2.2 m trnct diagram, kter jsou rozdleny do dvou hlavnch kategori. Sedm z~nich pat do skupiny strukturnch diagram a~sedm do skupiny diagram chovn \cite{UML2}.

\subsection{Strukturn diagramy}

\noindent{\bf Diagramy td}
\\
\\
Diagramy td ukazuj detaily statick struktury. Popisuj strukturu systmu tm, e zobrazuj systmov tdy, jejich atributy a~vztahy mezi jednotlivmi tdami.
\\
\\
{\bf Diagramy komponent}
\\
\\
Zobrazuj, jak je systm rozdlen na jednotliv komponenty a~ukazuje zvislosti mezi tmito komponentami. 
\\
\\
{\bf Diagramy nasazen}
\\
\\
Diagram nasazen popisuje hardware pouit pi implementaci systmu a~prosted, kde jsou jednotliv artefakty systmu spoutny a~na jak hardware jsou umstny.  
 
\subsection{Diagramy chovn}

\noindent{\bf Diagram ppad uit}
\\
\\
Modely ppad uit modeluj funkcionalitu systmu z~pohledu vnjch uivatel takzvanch aktr. Ppad uit popisuje interakci mezi aktry a~systmem. Ppady uit mohou bt pouity, jak ve fzi analzy, tak ve fzi nvrhu systmu. 
\\
\\
{\bf Sekvenn diagramy}
\\
\\
Sekvenn diagramy zobrazuj, jak mezi sebou komunikuj jednotliv objekty v~prbhu asu za pomoci vmny zprv.
\\
\\
{\bf Komunikan diagramy}
\\
\\
Komunikan diagram zobrazuje interakci mezi objekty a~jednotlivmi stmi pomoc uspodanch zprv. Reprezentuj kombinaci informac z~diagram td, ze sekvennch diagram a~diagram ppad uit popisujc jak statickou strukturu, tak dynamick chovn systmu. 
\\
\\
{\bf Stavov diagramy}
\\
\\
Stavov diagramy ukazuj rzn udlosti a~stavy objekt. Stavov diagramy zobrazuj ivotn cyklus objektu, jeho udlosti, pechody a~rzn stavy mezi udlostmi.

\section{WebML} 

WebML (Web Modelling Language) je modelovac jazyk a~vizuln notace pro specifikaci komplexnch webovch strnek na rovni konceptu. WebML je uren vhradn pro nvrh datov orientovanch webovch aplikac. Poskytuje grafick, pesto vak formln specifikace pro cel prbh nvrhu za pomoci vizulnch nvrhovch nstroj. 

Tento modelovac jazyk byl vyvinut na italsk univerzit Politecnico di Milano na katede elektroniky a~informatiky. Jeho vznik se datuje piblin k~roku 2000. Od tto doby se stal tento modelovac jazyk nejrozenjm v~tto oblasti a~jako jedin se prosadil i~v~komern sfe.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=13cm]{pictures/WebMLModels}
	\caption{WebML koncept webov aplikace}
	\label{fig:WebMLModels}	
\end{figure}

WebML umouje nvrhm vytvoit zkladn rysy webov aplikace na vysok rovni, bez nutnosti zabhat do detail architektury. Dvj absence pstupu s~drazem na analzu a~nvrh zpsobovala pote pi dodatench zmnch v~datov orientovanch webovch aplikacch. 

WebML je vhodn pi poteb podpory vce platform, jako je napklad PC, PDA nebo~WAP. Dle je vhodn pro vvoj webovch strnek zobrazujcch jin obsah pro kadho uivatele. Krom grafick specifikace obsahuje WebML i~podporu pro textovou notaci zaloenou na XML syntaxi. Tm pdem je mon za vyuit softwarovch genertor automaticky vytvoit zkladn kostru webov aplikace. Dky tomu je tak zaruena ji zmiovan penositelnost mezi rznmi platformami.

Dleitm faktorem pi vvoji webovch aplikac pomoc WebML je oddlen obsahu dat od jejich struktury a~navigace nezvisle na konkrtn podob uivatelskho rozhrann. Pomoc WebML je mon specifikovat i~dynamick chovn, kter je zkladem dnench webovch aplikac, kter je vyvolno jako vedlej efekt navigace. Zkladem je konceptuln modelovn spojen s~rozpracovanm nvrhem navigace a~sprvy uivatel webov aplikace \cite{desiningdataintensivewebapplications}.

Ke specifikaci webov aplikace WebML vyuv ty nvzajem propojench model \cite{WebMLOslejsek}:

\begin{itemize}
	\item Strukturln model 
	\item Hypertextov model 
	\item Uivatelsk model
	\item Prezentan model
\end{itemize}

\subsection{Strukturln model}

Strukturln model se zabv nvrhem datov struktury. Jeliko se jedn o~model konceptuln, je mon jej pevst do jakkoliv konkrtn relan databze, jako je napklad MySQL, Oracle nebo v~naem ppad Microsoft SQL 2008. Datov model se dle dl na datov a~derivan model.  

Datov model si je velice podobn s~klasickou notac entitn-relanho modelu. Derivan model je rozenm datovho modelu o~urit data, kter jsou dleit v~pozdjch fzch nvrhu. V~podstat roziuje datovou strukturu bezpenm zpsobem o~redundantn data, kter ji jsou v~datovm modelu obsaena, ale je nutn je z~pvodnch dat njak zskat.

Datov model je tvoen entitami a~vzjemnmi vazbami. Entity maj sv atributy, kterm jsou piazeny jednotliv datov typy. Vazby zobrazuj, v~jakm jsou entity vzjemnm vztahu. Dle stejn jako u~entitn-relanho modelu jsou i~zde mon omezen na kardinalitu jednotlivch entit ve vztahu a~pojmenovn tchto vztah.

\subsection{Hypertextov model}

Hypertextov model je nejdleitjm modelem WebML a~pro svoji pehlednost a~vstinost je povaovn za nejvt pnos tohoto modelovacho jazyka do oblasti nvrhu webovch aplikac. Pomoc hypertextovho modelu je modelovno chovn cel aplikace. Tento model obsahuje jednotliv zkladn elementy pslunch strnek a~jejich vzjemn propojen v~rmci cel webov aplikace.

Hypertextov model je podobn jako strukturln model tvoen dvma submodely, kter jsou spolu tsn spjaty. Prvnm je kompozin model webov aplikace, kde je definovno sloen webov aplikace z~jednotlivch strnek a~sloen strnek z~jednotlivch peddefinovanch element. Ty pedstavuj atomick sousti obsahu strnky a~jsou vzny na entity datovho modelu, ze kterch erpaj svj obsah nebo chovn.

Druhou st hypertextovho modelu je navigace, kter zobrazuje, jak jsou mezi sebou jednotliv strnky, respektive jejich elementy provzny. Tento model tak obsahuje definice prvk pro zkladn operace s~daty, kter jsou vyvolvny jako vedlej efekt navigace.

Obecn se d ci, e tento model definuje strukturu a~funknost webov aplikace na konceptuln rovni. Tedy na rovni, kdy je vsledn produkt jet nezvisl na implementanch detailech a~nen znm vsledn vzhled aplikace.

\subsection{Uivatelsk model}

Tento model definuje jednotliv uivatele a~skupiny uivatel. Pomoc tohoto modelu se dosahuje vytvoen specifickho kontextu pro jednotliv uivatele. Kad uivatel mus bt lenem alespo jedn skupiny uivatel a~kad skupina me mt pstup k~jinm strnkm, k~jinmu kontextu a~funkcm webov aplikace. 

Uivatelsk modely tvo ve WebML takzvan pohledy. Pohled je sadou strnek, kterou uivatel vnm jako celou webovou aplikaci. V~Uivatelskm modelu mohou bt definovny pohledy pro rzn uivatele, skupiny uivatel. Rovn mohou bt definovny pohledy pro rzn typy zazen. Pro modelovn uivatel WebML vyuv standardn objektov orientovan techniky s~bnou notac standardu UML.

\subsection{Prezentan model}

Prezentan model zobrazuje rozvren a~grafick vzhled webovch strnek bez ohledu na vstupn zazen. WebML neobsahuje specifick model pro zobrazen prezentace na konceptuln rovni, ale vyuv standartnch postup, kter jsou bli grafickmu nvrhu. Prezentan model je chpn jako transformace pedchozch model do konkrtn podoby webov prezentace. Cel model WebML je toti mon prezentovat jako XML dokument. Vstupem transformace modelu jsou jednotliv specifikace z~hypertextovho a~datovho modelu ve formtu XML. Vstup je generovn pomoc XSL transformace a~CSS styl a~jsou jm ablony jednotlivch strnek vetn potebnho kdu znakovacho jazyka a~aplikan logiky, pouvajc nkter z~jazyk respektive technologi pro programovn webovch aplikac. Pi tto transformaci je mono pout nejrznj peddefinovan styly a~serverov komponenty.

\section{Vbr WebML}

WebML je pomrn nov vznikl modelovac jazyk vyuvan pro analzu a~nvrh webovch aplikac. Pokrv vechny aspekty nvrhu webovch strnek. Pouit starch a~nekoherentnch metod pro nvrh web je patn pstup \cite{WebMLOslejsek}. WebML si klade za cl poskytnout strukturovan pstup k~nvrhu webovch aplikac, kter intenzivn pracuj s~daty. Jeliko jeho soust je pouze men mnostv diagram a~pi nvrhu je kladen draz na pehlednost a~jednoduchost, je pomrn snadno zvldnuteln a~tm pdem mn asov nron.

Rovn je kladen velk draz na jednoduchost, pehlednost a~srozumitelnost, dky tmto vlastnostem mohou bt zkladn funknosti systmu pochopeny vemi leny vvojovho tmu a~v~konenm dsledku hlavn i~zkaznkem. Dky tomu je mon u v~potenm stdiu odhalit nesrovnalosti v~nvrhu a~provst tak jejich odstrann. Vasnou opravou nedojde k~chybn implementaci funkc dleitch pro bezproblmov chod webov aplikace. Pi pouit jinch metodik, za vyuit UML byly tyto aspekty asto opomjeny, potoe jejich primrnm elem nebyla analza a~nvrh webovch datov orientovanch aplikac.  

WebML nen pouze modelovac jazyk, obsahem je i~metodika, kter ukazuje, jak probh cel ivotn cyklus projektu. Jeliko existuj i~WebML CASE nstroje, jako je napklad WebRatio, kter rovn podporuje generovn kdu z~navrench model, najde si tento modelovac jazyyk praktick vyuit i~u~komernch projekt. UML je oproti WebML mnohem komplexnj a~nronj na zvldnut. Jeliko webov management k~pstupovmu systmu je datov orientovan webov aplikace a~WebML je zameno ist na webov aplikace, zvolil jsem k~jeho analze a~nvrhu tento modelovac jazyk. Dalm dvodem pro volbu WebML byl tak fakt, e UML neobsahuje dn diagram podobn hypertextovmu modelu, pomoc kterho se d vymodelovat struktura cel webov aplikace.

\chapter{WebML}

WebML nen jedinm modelovacm nstrojem pro webov aplikace, ale jako jedin se dokzal penst z~akademick oblasti a do spnho vyuit v~praxi. Tm zskal na popularit u~skupiny nstroj zabvajcch se analzou a~nvrhem webovch aplikac. Jednm z~tchto CASE nstroj, kter se pmo sousted na nvrh datov orientovanch webovch aplikac pomoc modelovacho jazyka WebML je WebRatio. Dky jeho kvalitnmu zpracovn a~ji potenm tendencm vvoj uplatnit WebRatio i~v~komern sfe si zskal tento nstroj dominantn postaven pi nvrhu pomoc WebML. Dky tomuto CASE nstroji je mon pejt od analzy pes nvrh a k~implementaci samotn webov aplikace.  

\section{Strukturln model}

Strukturln model e data, se ktermi webov aplikace pracuje. WebML pro tento el vyuv tradinch prostedk pro datov modelovn. Rozenm oproti klasickmu datovmu modelovn je ve WebML model derivan. K~jeho definovn je vyuvn speciln jazyk WebML-OQL. Propracovan nvrh datovho modelu je velice dleit, protoe tvo zklad cel webov aplikace i~zklad pro dal navazujc modely WebML.

\subsection{Datov model}

Datov model je jako u~jinch aplikac zkladem i~tch webovch. Jedn se o~zkladn soust analzy, jej clem je navrhnut kvalitn datov struktury. Sprvn nvrh datov struktury z~valn sti ovlivuje budouc bezporuchovost, udritelnost a~roziitelnost vsledn webov aplikace.

Pi datovm modelovn je model tvoen na konceptuln rovni. To znamen, e je oproti konkrtn implementaci zobecnn, m je zaruena nezvislost na budoucm pouitm databzovm systmu. Rovn je mon tento konceptuln model kdykoliv pevst do implementace konkrtnho databzovso systmu.

Datov model pouvan ve WebML je velice podobn entitn relanm diagramm nebo diagramm td, kter jsou bn pouvan v~objektov analze a~nvrhu pomoc UML. Samotn datov model je tvoen entitami, kter jsou spolu propojeny pomoc vazeb s~pslunou kardinalitou.

Entita pedstavuje uritou skupinu objekt relnho svta, kter se oznauj jako instance entity. Entita me pedstavovat bu reln fyzick objekty nebo tak objekty abstraktn. Vechny instance dan entity se nazvaj populac a~maj stejnou datovou strukturu, kter m stejnou mnoinu atribut.

Kad entita je pojmenovna a~obsahuje mnoinu svch atribut. Atributy pedstavuj charakteristiku dan entity. Jsou oznaeny nzvem a~datovm typem. Kad atribut me nabvat pouze jednu hodnotu, pokud nebereme v~potaz speciln nulov atribut, kter neobsahuje dnou hodnotu. Pro strukturovan a~vtov typy definuje WebML takzvan slab entity, kdy slab entita mus existovat pouze v~nvaznosti na hlavn entitu.

WebML definuje nsledn obecn datov typy: 

\begin{itemize}
	\item String 
	\item Text 
	\item Boolean
	\item Integer
	\item Float
	\item Time
	\item Date
	\item Blob
\end{itemize}

Tyto obecn typy jsou pi generovn do konkrtn databzov struktury nahrazeny pslunmi typy z~danho databzovho systmu. Kad entita navc obsahuje automaticky generovan atribut, kter v~relanch databzch pedstavuje primrn kl. Jedn se o~pirozen slo, pomoc kterho lze jednoznan identifikovat danou instanci entity. Entita je v~diagramu zobrazovna na zklad zaitch standard jako obdlnk, kter obsahuje nzev dan entity a~seznam atribut s~piazenm datovm typem.

Vztah mezi entitami je vyjden pomoc vazeb, kter jednotliv entity propojuj. Vazba me spojovat pouze dv entity. Pokud je nutn propojit dohromady vce entit, je nutn tento vztah realizovat pomoc vazebn entity. Na vazbu lze pohlet jako na dv vazby v~opanch smrech. Tyto pedstavuj role, kter realizuj pohled na vazbu ve smru od jedn entity ke druh. Kad roli je piazena kardinalita, kter pedstavuje omezen v~potu instanc druh entity. Kardinalita je definovna vdy jako minimln a~maximln poet instanc. Minimln kardinalita me nabvat hodnot 0 nebo 1 a~maximln 1 nebo N. Vazby jsou v~modelu graficky znzornny jako ry spojujc jednotliv entity. Zmna nastv pi zpisu kardinalit, kdy jsou jejich hodnoty psny v~opanm smru, ne jak je zvykem u~klasickch datovch diagram.    

V~datovm modelu WebML je tak mon realizovat generalizaci entit pomoc hierarchi. Hierarchie je speciln druh jednosmrnho spojen mezi dvma entitami. Podazen entita ed vechny atributy od entity nadazen a~pidv k~nim sv vlastn. Hierarchie me mt vce rovn, ale dn podazen entita nesm mt vce ne jednu entitu nadazenou. 

Krom grafickho znzornn entit a~vazeb je mon cel datov model vyjdit tak pomoc XML syntaxe. 

\subsection{Derivan model}

Jak ji bylo zmnno dve derivan model roziuje model datov. Vznikaj tak odvozen entity, atributy nebo vazby. Tento princip je velice podobn vytven pohled v~relanch databzch, kdy pohled vytv nhled na data odvozenm od jejich pevn struktury. Tmto zpsobem lze vytvoit rzn pohledy bez toho, ani by dochzelo k~vytven nedouc redundance.

Tento model vznikl z~toho dvodu, e kad webov strnka je spojena s~derivanm modelem, kter se d zskat dotazem nad pvodnm datovm modelem. K~vytvoen derivanho modelu pouv WebML speciln dotazovac jazyk WebML-OQL. Nespornou vhodou tohoto jazyka je fakt, e jej lze jednodue pevst do bn pouvanho jazyka SQL.

Derivan model je ve vtin ppad pouvn pi poteb dopoitatelnch nebo agregovatelnch atribut. Tak je mon definovat vtov entity a~vybrat pouze ty instance, kter vyhovuj urit definovan podmnce. Nebo pi odvozovn vazeb je mon je spojovat do vazby jedn a~nebo je njakm zpsobem omezovat.

\section{Hypertextov model}

Hypertextov model tvo nejvt pnos WebML na poli analzy a~nvrhu webovch aplikac. Pomoc tohoto modelu je definovna struktura a~funknost cel webov aplikace. Hypertextov model je sloen z~dvou neoddlitelnch soust a~to z~kompozice webov aplikace a~naviganho modelu. Pesto, e jsou rozliovny dva tyto modely, jsou zakreslovny do jednoho spolenho hypertextovho diagramu.  

\subsection{Kompozin model}

Tento model definuje strukturu webov aplikace. Zkladn sloen uivatelskho rozhran, bez toho, ani by njak definoval grafickou podobu webov aplikace. Ve WebML je kad webov aplikace sloena z~webovch strnek, kter ji tvo.

Kad webov strnka pedstavuje zobrazen vech informac, kter zobrazuje v~jeden moment najednou. Webov strnka je sloena ze zkladnch prvk, kter tvo atomick informan jednotky. Kad tento prvek m v~diagramu svoje zvltn grafick zobrazen. Stejn jako u~strukturlnho modelu je i~u~tohoto modelu mon mimo grafickho zobrazen i~vyjden pomoc XML.

Jeliko jsou vechny diagramy pouvn ve WebML vzjemn propojeny, mus bt i~hypertextov model njakm zpsobem propojen s~modelem datovm. Toto propojen je zajitno pomoc zdrojov entity a~selektoru. Zdrojov entita definuje entitu datovho modelu, kter zajiuje zdrojov data a~obsah danho prvku. Pomoc selektoru se definuj podmnky pro vbr instanc, kter budou v~danou chvli tvoit obsah pslunho prvku.  

Pomoc kompozinho modelu jsme schopni nadefinovat zkladn strukturu jednotlivch strnek a~propojit je s~datovm modelem. Vsledkem je kompletn sada webovch strnek a~definice jejich struktury. Kompozin model obsahuje sedm zkladnch druh prvk, ze kterch me bt webov strnka tvoena:

\begin{itemize}
	\item Data units
	\item Multi-data units
	\item Index units
	\item Multi-choice index units
	\item Hiearchical index units
	\item Scroller units
	\item Entry units
\end{itemize}

\begin{figure}[hbt]
	\centering
	\includegraphics[width=15cm]{pictures/ContentUnits}
	\caption{Vybran zkladn prvky kompozinho modelu}
	\label{fig:ContentUnits}	
\end{figure}

\noindent{\bf Data units}
\\
\\
Data unit pedstavuje jeden objekt pslun entity. Data Unit je definovna pomoc zdrojov entity, selektoru a~seznamu atribut, kter jsou pevzaty ze zdrojov entity.
\\
\\
{\bf Multi-data units}
\\
\\
Multi-data unit pedstavuje seznam objekt jedn entity na dan webov strnce. Multi-data unit je definovna zdrojovou entitou, selektorem, seznamem atribut, kter jsou pevzaty ze zdrojov entity, seznamem atribut, podle kterch se m provdt azen a~urenm smru azen.
\\
\\
{\bf Index units}
\\
\\
Index Unit pedstavuje seznam objekt dan entity. Na prvn pohled vypad, e Multidata Units jsou toton s~Index Units. Index Units se ale pouvaj pro zobrazen seznamu objekt, jeho elem je zprostedkovat vbr jednoho z~tchto objekt, napklad pro zobrazen detailu. Index Unit je definovna zdrojovou entitou, selektorem, seznamem atribut, kter jsou pevzaty ze zdrojov entity, seznamem atribut, podle kterch se m provdt azen a~podmnkou azen. Index unit bv pevn spojovna s~data unit, kde jsou zobrazovny detaily vybranho objektu.
\\
\\
{\bf Multi-choice index units}
\\
\\
Jsou variantou index units s~tou modifikac, e v~seznamu objekt meme vybrat nejenom jeden, ale vce objekt. Multi-choice index unit je definovna zdrojovou entitou, selektorem, seznamem atribut, kter jsou pevzaty ze zdrojov entity, seznamem atribut, podle kterch se m provdt azen a~podmnkou azen.
\\
\\
{\bf Hiearchical index units}
\\
\\
Jsou velice dleitou variantou Index Units. Pedstavuj seznam objekt, kter jsou hierarchicky uspodan do stromov struktury. Existuj v~podstat dv zkladn varianty tchto element:

Vnoen entity, kdy jednotliv rovn hierarchie jsou tvoeny rznmi typy entit. Toto je velice ast situace, se kterou se pi tvorb webu bn setkvme. 

Rekurzivn definovan hierarchie, kdy vyuijeme entity, kter maj definovny vazby sami na sebe. Z~takto definovanch entit meme vytvoit pomoc hiearchical index unit napklad stromov menu. Hiearchical index unit je definovna zdrojovou entitou pro kadou rove v~hierarchii, selektorem pro kadou rove v~hierarchii, seznamem atribut, kter jsou pevzaty ze zdrojov entity, seznamem atribut, podle kterch se m provdt azen a~smrem azen.
\\
\\
{\bf Scroller units}
\\
\\
Scroller unit dv uivateli monost listovat skrz mnoinu objekt dan entity. Scroller unit je vtinou propojena s~data unit, multi-data unit nebo index unit, kter data zobrazuj. Scroller unit je definovna zdrojovou entitou, selektorem, pirozenm slem, kter udv poet objekt v~kadm kroku listovn.
\\
\\
{\bf Entry units}
\\
\\
Slou k~modelovn uivatelskch vstup, tedy pro definovn formul. Entry unit je definovna seznamem formulovch prvk, piem pro kad formulov prvek je definovn: nzev prvku, datov typ vstupnch dat, peddefinovan hodnota a~validan pravidla.

\subsection{Navigan model}

Navigan model propojuje strukturu vytvoenou v~kompozinm modelu a~vytv tak potebn hypertext. Pomoc tohoto modelu je zobrazovna nejdleitj soust a~to sice navigace mezi jednotlivmi strnkami webov aplikace. Clem naviganho modelu je propojit obsah jednotlivch strnek pomoc odkaz a~tm navrhnout zpsob navigace uvnit webov aplikace.
\\
\\
{\bf Odkazy}
\\
\\
Pomoc odkaz jsou propojeny jednotliv strnky nebo dva prvky. Jedn se o~orientovan propojen, kdy nejjednodu funkc odkazu je pesmovat aplikaci z~jedn strnky na druhou. astjm ppadem vak bv penen parametr mezi prvky nebo provdn operac nad daty. 

Jednotliv strnky jsou propojeny pomoc nekontextovch odkaz, zatmco datov prvky jsou propojeny pomoc kontextovch odkaz. Nekontextov odkazy propojuj smanticky nezvisl strnky. Kontextov odkazy propojuj zdrojov prvky s~jejich clovmi prvky, a~pen mezi nimi definovan parametry. Stejn jako jsou datov jednotky zaloeny na datovm modelu, jsou na nm zaloeny i~kontextov odkazy. Slou k~penosu informac mezi strnkami a~k~penosu parametr od zdrojovho k~clovmu prvku a~slou k~tvorb parametrizovanch selektor.  

\begin{figure}[hbt]
	\centering
	\includegraphics[width=15cm]{pictures/IndexUnitDataUnitLink}
	\caption{Propojen Index unit s~Data unit pomoc odkazu}
	\label{fig:IndexUnitDataUnitLink}	
\end{figure}

Nejzkladnjm pouitm odkaz pedstavuje propojen Index unit a~Data unit. V~tomto ppad se odkazem pen jako parametr uivatelem zvolen instance ze zdrojovho prvku Index unit a~zobrazuje se v~detailu pomoc Data unit.

Kontextov odkaz me obsahovat libovoln mnostv parametr, kter jsou jednoznan ureny zdrojovm prvkem. Zvltn ppad pedstavuje Entry unit, kdy je hodnotou parametru obsah danho formulovho pole. Pouit Entry unit je typick pro vkldn novch zznam nebo pro vyhledvn, kde je obsah z~Entry Unit penesen do Index unit a~zde pouit pro konstrukci selektoru.  

WebMl jet definuje takzvan implicitn parametry kontextovch odkaz, kdy nemus bt parametr explicitn uvdn, ale je jednoznan uren stanovenmi pravidly zdrojovho prvku. Napklad u~Index unit je automaticky penen jako parametr jednoznan identifiktor vybran instance. Tato vlastnost zjednoduuje vsledn hypertextov diagram a~dl jej vce pehlednm a~itelnm.  

Krom kontextovch odkaz definuje WebML jet transportn a~automatick odkazy. Oba dva tyto odkazy jsou vyuvny pro propojovn prvk umstnch v~jedn strnce. U~automatickho odkazu se jedn o~penesen parametru clovmu prvku okamit po zobrazen strnky. Tento parametr pot me uivatel zmnit pomoc aktivace nkterho z~prvk na strnce. Automatick parametr pedstavuje v~podstat implicitn hodnotu odkazovanho parametru. Narozdl od automatickho odkazu nedovoluje transportn odkaz u dnou dal uivatelskou navigaci. Tento odkaz slou vhradn k~propojen dvou prvk pro jejich logick propojen a~propojuje se bez jakholiv uivatelskho zsahu. V~diagramu je narozdl od kontextovch odkaz oznaovn pomoc peruovan ry.
\\
\\
{\bf Struktura}
\\
\\
Rozshlej vebov aplikace je nutn organizovat do vtch celk, ne jsou pouh jednotliv strnky. Pro tyto ely jsou ve WebML zavedeny kontrukce oblast. Diky nim je mon rozdlit webovou aplikaci do nkolika hlavnch sekc, kter se dle len na podsekce v~nkolika rovnch, kde jsou jednotliv strnky soustmi tchto sekc.

Dal monost, jak specifikovat strukturu webov aplikace je monost specifickho oznaen vybranch strnek nebo oblast. Pro tyto ely jsou vyuvny nsledujc znaky:

\begin{itemize}
	\item Homepage
	\item Default
	\item Landmark
\end{itemize}

\begin{figure}[hbt]
	\centering
	\includegraphics[width=15cm]{pictures/PagesAreas}
	\caption{Struktura strnek do oblast a~jejich pslun oznaen}
	\label{fig:PageAreas}	
\end{figure}

Oznaen Homepage je ureno pro domovskou strnku cel webov aplikace. Oznaen Homepage lze vyut pouze k~oznaen jedn strnky. Zbyl dv znaky Default a~Landmark lze pout pro oznaen strnky nebo oblasti. Oznaen default zastupuje implicitn strnku nebo oblast. Kad oblast mus obsahovat jednu strnku s~oznaenm default, kter pedstavuje obdobu domovsk strnky pro danou oblast. Pomoc znaky Landmark lze oznait strnku nebo oblast, kter m bt pstupn ze stejn oblasti, poppad z~cel webov aplikace. Tuto znaku lze vyut pro celkov zjednoduen a~zpehlednn naviganho modelu. Kdybychom museli msto tto znaky propojit vechny stle pstupn strnky propojit se vemi ostatnmi.  
\\
\\
{\bf Operace s~daty}
\\
\\
Dosud zmnn prvky kompozinho modelu se zabvaly pouze stmi webov aplikace, kter prezentovaly data. Pro to jsou zavedeny objekty, kter pokrvaj manipulaci s~daty a~generovn dynamickho obsahu. Pro tyto operace obsahuje navigan model prvky, kter jsou vyvolvny jako vsledky navigace.

Prvky pro operaci s~daty pidvaj dal dva typy odkaz oznaovan jako OK a~KO, kter pedstavuj zvltn typ odkaz, pomoc kterch lze definovat chovn aplikace. Kad z~prvk provd njakou akci a~me skonit spn OK nebo nespn KO a~aplikace je podle tchto odkaz pesmrovna rozdln podle toho, jestli akce skon spn i nikoliv.

Pro tyto prvky plat urit pravidla, jedno z~nich je, e do prvku me vstupovat jeden nebo vce odkaz, ale alespo jeden z~nich nesm bt transportn, aby byla zaruena monost navigace uivatele a~tm pdem proveden prvku, protoe transportn odkazy slou pouze jako logick propojen. Z~prvku me vystupovat dn, jeden nebo dva netransportn odkazy. Jedn se o~odkaz OK, kter me bt jeden nebo dn a~o~odkaz KO, kter me bt rovn jeden nebo dn. Poet vstupnch transportnch odkaz nen nijak omezen.

Prvky meme dle rozdlit na extern, kter nejsou pmou soust WebML a~pouvaj se k~penosu kontextu mimo webovou aplikaci. A~dle na implicitn, kter jsou standardn soust naviganho modelu. V~ppad implicitnch prvk se jedn o~zkladn operace pro manipulaci s~daty a~WebML disponuje pti zkladnmi internmi prvky:

\begin{itemize}
	\item Create unit
	\item Modify unit
	\item Delete unit
	\item Connect unit
	\item Disconnect unit
\end{itemize}

\begin{figure}[hbt]
	\centering
	\includegraphics[width=15cm]{pictures/DataUnits}
	\caption{Vybran prvky pro operace s~daty}
	\label{fig:DataUnits}	
\end{figure}

Prvek Create unit je pouvn k~vytvoen jedn instance vybran entity. Je definovn zdrojovou entitou a~mnoinou piazovanch hodnot. Po spnm vykonn operace je mon vyut hodnotu primrnho kle prv vloen instance.

Modify unit je uren ke klasick editaci dat. Tento prvek je definovn pomoc zdrojov entity, selektoru a~mnoiny piazovanch hodnot. Pi spenm i~nespenm vykonn operace je mon vyut hodnotu primrnho kle modifikovan instance.

Dalm prvkem pro zkladn prci s~daty je Delete unit. Jedn se o~prvek, kter je pouvn k~smazn jedn nebo vce instanc dan entity. Je definovn zdrojovou entitou a~selektorem. Pi nespnm proveden operace se pen hodnota primrnho kle smazan instance.

Dal monost pro prci s~daty je vytvoen instance vztahu mezi dvma entitamy. K~tomuto elu existuje prvek Connect unit. Je definovn pomoc role vazby a~selektoru zdrojov a~clov entity. Connect Unit vytvo instance, pomoc kterch propoj vechny dvojice instanc ze zdrojov a~clov entity, kter odpovdaj danm selektorm.

Existuje tak prvek, kter takovouto vazbu ru. Jedn se o~Disconnect unit, kter mae instance vztah. Je definovn rol vazby a~selektorem zdrojov a~clov vazby, podle kterch smae vechny vybran instance vztah.  

\begin{figure}[hbt]
	\centering
	\includegraphics[width=15cm]{pictures/SetUnitGetUnit}
	\caption{Prvky pro prci s~globlnmi parametry}
	\label{fig:SetUnitGetUnit}	
\end{figure}

WebML pokrv i~situace, kdy je poteba zavst globln parametry potebn na vech strnkach webov aplikace. K~tmto elm definuje prvky Set unit a~Get unit. Set unit slou k~nastaven globlnho parametru a~Get unit k~naten pslunch dat.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=15cm]{pictures/LogInLogOut}
	\caption{Prvky pihlaovn a~odhlaovn}
	\label{fig:LogInLogOut}	
\end{figure}

V~rmci naviganho modelu jsou modelovny i~prvky pro pihlaovn a~odhlaovn uivatel. K~tmto elm existuj prvky Login unit a~Logout unit, pomoc kterch se lze do aplikace pihlset ppadn se z~n odhlsit.

\section{Uivatelsk model}

Uivatelsk model pedstavuje nejvy roven kompozice struktury webov aplikace. Umouje rozdlen uivatelskho kontextu. Pro personalzaci WebML vyuv zpsob pohled, kde pohled je souborem strnek, kter se prezentuje definovanm zpsobem urit skupin uivatel. Pohled je definovn pomoc nzvu a~piazench strnek nebo oblast, kter spolu logicky souvisej.

Pro omezen prv k~jednotlivm stem webov aplikace je vyuvn atribut protected, kter mus mt kad pohled piazen. Pomoc tohoto atributu je vyjdena nutnost autorizace uivatele pro zobrazen obsahu dan strnky nebo oblasti. Pokud tento atribut nen nastaven, je vem uivatelm povolen voln pohyb v~oblasti bez omezen.

WebML definuje ti implicitn entity pro uivatele, skupiny a~pohledy, pomoc kterch jsou modelovna pstupov prva do jednotlivch pohled. Tyto entity jsou vytvoeny automaticky u~kadho nov vytvoenho projektu. U~jednotlivch uivatelskch skupin lze definovat jejich pstupov prva pro rzn oblasti webov aplikace.

Kad uivatel mus nleet alespo do jedn skupiny uivatel. Jedna z~uivatelovch skupin mus bt oznaena za vchoz. Kad skupina m piazen svj vlastn pohled na webovou aplikaci. Ve spojitosti s~pstupovmi prvy jsou definovny ji zmiovan prvky Login unit pro pihlen a~Logout unit pro odhlen z~webov aplikace.

\section{WebML development process}

Vhodou jazyka WebML je i~fakt, e obsahuje i~vlastn metodiku, kter je speciln zamena na vvoj webovch aplikac za pouit WebML. WebML Development Process definuje postup pi vvoji webov aplikace a~cel ivotn cyklus projektu.

Vvojov proces nen zase tak moc odlin od klasickho schmatu vvoje sowtware. Hlavn draz je kladen na vodn fze a~to specifikaci poadavk, analze a~nvrhu. Nejintenzivnji se tato metodika zabv nvrhem datov struktury a~hypertextovmu modelu, kter tvo zklad budouc webov aplikace navren pomoc WebML.
\\
\\
{\bf Specifikace poadavk} je velice dleitou soust projektu. Rozhoduje o~jeho budoucm spchu s~ohledem na sprvnou funknost a~ppadnou roziitelnost. Dky nejasnmu zadn me dojt k~patnmu nvrhu datovho modelu a~je ho oprava a~nsledn pepisovn kdu m za nsledek ztrtu vynaloenho sil a~hlavn asu. Pi fzi specifikace poadavk erp WebML z~osvdench postup. Orientuje se na uivatele webov aplikace, na jednoduchost a~pochopen. Poskytuje zkladn pohled na poadovanou oblast. Specifikace poadavk je dle elena do dvou st a~to na sbr poadavk a~analzu poadavk.

Sbr poadavk je zkladem kad budouc aplikace. Zkladem je specifikace funknch poadavk. Dale pak uren typ uivatel. Vznamn jsou tak poadavky na personalizaci, kde se uruje jak funkce a~jak obsah bude pstupn pro konkrtn skupiny uivatel. Soust sbru poadavk mohou bt tak nefunkn poadavky, jako jsou napklad vkonnost, pouitelnost, dostupnost nebo teba bezpenost webov aplikace.  

K~Analze poadavk vyuv WebML development process oven techniky v~podob UseCase diagram. Na zatku jsou definovny uivatelsk skupiny, jejich krtk slovn popis a~zaazen v~hierarchii uivatel. Nsledn jsou definovny diagramy ppad uit pro kadou skupinu uivatel, kde aktrem je pslun uivatelsk skupina. Soust tto fze mohou bt jet poadavky na datov slovnk, grafickou podobu webov aplikace nebo proveden test na dve specifikovan nefunk poadavky. 
\\
\\
{\bf Nvrh datov struktury} je zapoteb kvalitn proveden kompletn fze sbru a~analzi poadavk. Pi nvrhu webov aplikace se meme setkat se dvma monmi postupy. Bu jde o~navrhnut zcela nov datov struktury, a~nebo o~rozen ji existujc. V~Ppad navrhnut nov datov struktury nenastv dn problm a~jej tvorba je zcela v~na reii. Co se te ji existujc datov struktury, meme narazit na nkter problmy s~tm spojen. Existuj dv varianty, jak si s~probmem porait. Jednou monost je navrhnut nov datov struktury a~nsledn peveden existujcch dat z~pvodn struktury do nov. Nebo postavit nai webovou aplikaci na pvodn datov struktue beze zmn. Tato varianta je jedinou monou, pokud nad existujc datovou strukturou ji b njak webov apliakce. Tm pdem meme fzi nvrhu datov struktury peskoit, ale ujasnit si, jak sti bude vyuvat nae aplikace.

Zkladem pro nvrh datov struktury je pedevm specifikace a~analza poadavk. Zejmna funkn poadavky, datov slovnk a~mapa webu. Vstupem nvrhu datov struktury je strukturln model. Jedn se o~strukturln schma nezvisl na implementanch detailech, kter je mon nsledn pevst do kterkoliv relan databze. 
\\
\\
{\bf Nvrh hypertextovho modelu} je hlavn napln nvrhu webov aplikace. Zklad pro hypertextov model tvo datov schma, mapy webov aplikace a~funkn poadavky. Z~tohoto je patrn, e vechny fze tvorby webov aplikace pomoc metodiky WebML development process jsou spolu vzjemn propojeny. Proces vytven hypertextovho modelu je mon rozdlit na hrub a~detailn nvrh.

Hrub nvrh rozdl vebovou aplikaci do pohled. Pohledy jsou dle rozdleny na jednotliv oblasti hypertextovho modelu, kter se u skldaj z~jednotlivch strnek. asto plat, e jednotliv oblasti jsou tvoeny podle jednotlivch ppad uit. U~kad oblasti definujeme jej pstupnost a~viditelnost. Vyzname stle pstupn oblasti a~urme implicitn oblasti pro jednotliv pohledy.

Detailn nvrh pedstavuje identifikaci jednotlivch strnek, kter budou tvoit obsah oblast. Jednotlivm strnkm jsou pidleny jejich typy. Oznaen pro domovskou strnku, strnku implicitn pro danou oblast, stle pstupnou strnku nebo klasickou strnku webov aplikace. V~dalm kroku detailnho nvrhu jsou jendotlivm strnkm pidleny jejich obsahov prvky a~prvky pro prci s~daty. 

Vstupem je kompletn hypertextov model, kter obsahuje vechny pohledy na webovou aplikace a~pedstavuje podrobn popis struktury a~pomh pochopit poadovanou funknost webov aplikace. 

\chapter{Webov management}

\section{Analza}

Webov management pstupovho systmu je dostupn pouze pro pihlen uivatele. Z~toho dvodu neexistuje dn veejn pstupn oblast a~kad uivatel mus nleet alespo jedn z~uivatelskch skupin. 

Jednotliv skupiny tvo uivatel, sprvci a~administrtoi. Jedn se o~hierarchickou strukturu rol a~kad sm pouvat pouze fuknce zddn a~nebo pmo piazen skupin.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.5\textwidth]{pictures/UsersUseCase}
	\caption{Hierarchie uivatelskch skupin}
	\label{fig:UsersUseCase}	
\end{figure}

K~zobrazen funknch poadavk pro jednotliv uivatelsk skupiny jsou pouity diagramy ppad uit.
\\
\\
{\bf Uivatel}
\\
\\
Uivatel je zkladn skupinou v~hierarchii uivatel. V~tto skupin jsou bn uivatel pstupovho informanho systmu. Tato skupina m nejzkldnj prva na pouh ten informac, bez monosti je jakkoliv modifikovat. Uivatel m prvo zobrazovat pouze ty osoby v~systmu, kter mu byly piazeny sprvcem nebo administrtorem. Ve vtin ppad je jedninou spravovanou osobou samotn osoba uivatele, kter je do systmu pihlen.

V~systmu je mon po spnm pihlen zobrazovat informace o~osobch, o~jejich oprvnnch, informace o~piazench kartch, o~ptomnosti jednotlivch osob a~ptomnost v~mstnostech. Uivatel maj monost nastavovat rzn zobrazovac filtry a~vyhledvat relevantn data. 

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.5\textwidth]{pictures/UseCaseUzivatel}
	\caption{Skupina uivatel}
	\label{fig:UseCaseUzivatel}	
\end{figure}

Je zde monost vygenerovn dochzky za konkrtn rok a~msc. Nechat si jej vygenerovat v~prosted webov strnky a~nebo prostednictvm XML do formtu podporovanm programem Microsoft Office Excel.
Jednotliv uivatel si mohou mnit nkter nastaven, kter se tkaj jejich tu, jako je napklad poet zobrazovanch zznam v~databzi nebo mnit sv pihlaovac heslo do webovho managementu.  
\\
\\
{\bf Sprvce}
\\
\\
Skupina sprvc je nadazen skupin uivatel. Dd on n vechny funkce. Jedn se o~skupinu, kter m krom ten dat tak prvo na jejich modifikaci. Mohou zavdt nov osoby nebo je modifikovat. Mnit oprvnn osob k~jednotlivm pstupovm bodm. Vytvet, piazovat nebo odebrat karty. Skupina sprvc m tak prvo k~zobrazovn pstup k~jednotlivm pstupovm bodm, na kter m dan sprvce oprvnn. 

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.45\textwidth]{pictures/UseCaseSpravce}
	\caption{Skupina sprvc}
	\label{fig:UseCaseSpravce}	
\end{figure}

Narozdl od skupiny uivatel m skupina sprvc tak prvo na vytven dalch uivatelskch t v~systmu. Ovem mohou vytvet pouze uivatele s~nim oprvnnm, ne jak sami maj, tud s~oprvnnm uivatel. 
\\
\\
{\bf Administrtor}
\\
\\
Administrtor je v~hierarchii uivatel nejve postaven. ed veker fuknce od  skupiny uivatel i~sprvc. V~rmci systmu nen mnostv administrtor nijak omezeno. Admiistrtor m prvo vytvet uivatele s~jakmkoliv stupnm oprvnn, a u uivatele, sprvce nebo i~samotn dal administrtory.  

Krom zddnch funkc maj administrtoi monost mnit nastaven asovch zn, mnit piazen jednotlivch pstupovch bod do skupin, spravovat dvee, skupiny dve a~prostory.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.38\textwidth]{pictures/UseCaseAdministrator}
	\caption{Skupina administrtor}
	\label{fig:UseCaseAdministrator}	
\end{figure}

Administrtor je tak oprvnn ke spravovn piazench uivatelskch rol a~umonuje piazovat ostatnm uivatelm jednotliv osoby, dvee skupiny dve, prostory a~ostatn uivatele, kter je pot mohou st ppadn spravovat.

\section{Nvrh}

Po fzi specifikace poadavk je nutn pejt k~fzi nvrhu. Hlavnmi prvky nvrhu pomoc WebML development process jsou dva modely. Strukturln model tvoc zklad datov struktury a~hypertextov model, kter tvo funkn zklad webov aplikace. 

\subsection{Datov model}

Nvrh vhodn datov struktury tvo zklad tm kterkoliv aplikaci. Tm vce toto plat pro webov aplikace, kter jsou na datech zaloeny. Strukturln model popisuje datovou strukturu vychzejc ze specifikace poadavk. Vhodn datov struktura je dleit pro nsledujc bezproblmovou implementaci a~pro ppadn dal rozien aplikace. Pro tvorbu tohoto diagramu bylo pouito programu WebRatio s~vyuitm notace pro oznaovn kardinality pouvan pro WebML strukturln diagram, kter je opan, ne notace pro UML.

Jdro strukturlnho modelu je tvoeno entitami budovy, prostory, terminaly, skupinyterminaly, skupinyfunkceterminaly,skupinycasovezony, casovezony, tlacitka, duvody, ctecky, pristupy, osoby a~karty \ref{fig:core}.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.7\textwidth]{pictures/datamodel/core}
	\caption{Jdro strukturlnho modelu}
	\label{fig:core}	
\end{figure}

Entita Budovy obsahuje zznamy o~jednotlivch budovch, pokud jsou brny jako dva rzn objekty. 

Dle entita Prostory, kter obsahuje atribut nzev prostoru a~vazby na budovy kvli piazen prostoru k~budov a~dv vazby na entitu Konfigurace, kter uruje, kter vstup a~kter vstup je k~danmu prostoru piazen. 

Entita Terminaly pedstavuje jednotliv pstupov body v~objektu, a u se jedn o~dvee s~terminlem nebo pouze se tekou. Obsahuje atributy nzev, adresa, popis, oteviran a~prichodove. Adresa je etzec identifikujc dan dvee nebo terminl. Atribut otevrn uruje, zda se dvee budou otevrat a~atribut prichodove nastavuje, jestli budou dvee brny pouze jako prchodov a~nebude brno v~potaz zabezpeovn a~odbezpeovn piazench prostor. Kazd terminl je piazen vazbou k~entite Skupinyterminaly. Dle jsou zde jet vazby na entitu Budovy a~Konfigurace, kter uruj, v~kter budov se dan pstupov bod nachz a~kter vstup je piazen pro ovldn zmku.

Entita Skupinyfunkceterminaly je urena pro sjednocovn jednotlivch skupin terminl do celk, kter budou pot piazovny osobm a~vtazn se tm sn poet kon pi zavdn a~nastavovn prv dan osoby. Dky tto entit bude mon jednotliv skupiny sjednotit podle vybrnch kritri a~pot u osobm piazovat pouze tyto skupiny a~ne jednotliv pstupov body. 

K~definovn asovch omezeni jsou definovny entity Skupinycasovezony, kter obsahuje atributy nazev a~popis, kter identifikuj skupinu a~entitu Casovezony, kter specifikuje pravidla pro jednotliv dny v~tdnu pro danou skupinu asov zny.

Tlatka je entita, kter je vytvoena z~dvodu monosti natat nastaven tlatek jednotlivch terminl z~databze. Obsahuje atributy indextlacitka, kter uruje, kde je tlatko umstno na terminlu. Atributy barvapopredi a~barvapozadi slou ke grafickmu zvraznn v~terminlov aplikaci a~sqldotaz je definovn v~pipad, e tlatko slou k~jinmu elu, ne je zadvn dvod odchodu a~je pomoc nj mon nadefinovan sql dotaz spustit.

Entita Duvody definuje dvody odchod a~obsahuje atributy duvod a~zkratka, kter spou k~popisu dvodu.

Entita teky obsahuje definice instalovanch teek. Atribut ctecka uruje poad teky pi pout vce teek u~terminlu nebo dve a~atribut vstup uruje, zda je teka urena pro pchod nebo pro odchod z~objektu.

Entita Pristupy obsahuje zznaky o~povolench pstupech do objektu. Atribut kdy je asov znmka, kter uruje as jednotlivch pstup. Kad pstup je navzn na entitu Duvody, Ctecky, Karty, Osoby. Pomoc tchto vazeb je definovno, jak je dvod pstupu, ze kter teky, pouitm kter karty a~kdo je jejm dritelem.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.23\textwidth]{pictures/datamodel/access}
	\caption{Entita Access}
	\label{fig:entitaaccess}	
\end{figure}

Zde je vhodn zmnit tak entitu Access \ref{fig:entitaaccess}, kter obsahuje vechny zznamy o~pstupech, a u se jedn o~spn i nespn zpracovan pstupy nebo o~povolen i~nepovolen pokusy. Atributy adresa, karta jsou etzce, kter obsahuj informace odkud byl pstup uinn a~s~jakm slem karty. Kad zznam je po pidn oznaen asovm dajem, zpracovn a~po vyhodnocen je nastaven jeho stav zpracovn. Jednotliv hodnoty stav zpracovn jsou uloeny v~pomocn entit Stavzpracovaniaccess \ref{fig:stavzpracovani}.

Entita Karty obsahuje atribut cislokarty, kde je definovno slo karty. Dle pak atribut povoleni urujc, zda je karta povolena a~atribut smazano, kter slou k~vyazen karty ze systmu a~k~oznaen pro jej pozdj smazn. Kad karta me bt v~jendom okamiku vlastnna pouze jednou osobou.

Posledn entitou jdra strukturlnho modelu je entita Osoby. Slou k~uchovvn informac o~jednotlivch osobch, kter pstupov systm uvaj. Pomoc atribut titulpred, titulza, jmeno, prijmeni, osobnicislo, funkce, nakladovestredisko jsou jednotliv osoby popsny. Atributy povoleni a~smazano spluj stejnou funkci jako u~entity Karty, take je mon oznait konkrtn osobu ke smazn a~nebo zablokovat pmo osobu a~ne jednotliv karty, kter m v~dren. Atribut ptomnost, kdy a~vazba na entitu Budovy definuje, zda a~ve kter budov je osoba ptomna a~as kdy k~pchodu nebo odchodu dolo. Pokud je atribut povoleniterminal nastaven kladn m osoba po dn autentifikaci kartou na terminlu prvo vstupovat do servisnho menu. Kad osoba me bt piazena pouze do jedn skupiny asov zny. Pomoc vazeb s~entitami Prostory, Skupinyterminaly a~Skupinyfunkceterminaly jsou definovny prva do prostor, prva k~jednotlivm dvem, terminlm a~jejich skupinm.

Dal dleitou soust datovho modelu jsou entity vyuvan slubou pro ten a~nastavovn vstup a~vstup \ref{fig:konfigurace}. Entita Konfigurace obsahuje atributy urujc typ vstup vstupnho zazen, jeho nzev, adresu a~port. Dle atributy pro definici jednotlivch port. Atribut port obsahuje jeho nzev, typportu uruje zda se jedn o~vstup nebo vstup. Delka pulsu uruje dlku sepnut v~milisekundch. Zapojeno indikuje zda se m tento zznam konfigurace natat, napklad pokud nen vstup vstupn zazen pln obsazeno. Pomoc atributu inverzni lze nastavit, aby se port choval inverzn. Sluzba uruje slubu windows, kter danou konfiguraci nat. Textov atribut popis slou na poznmky k~jednotlivm portm zazen.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.4\textwidth]{pictures/datamodel/konfigurace}
	\caption{Konfigurace sluby pro ovldn vstup vstupnch zazen}
	\label{fig:konfigurace}
\end{figure}

K~entite Konfigurace se vou dal dv entity a~to Prikazy a~Stavy. Entita stavy obsahuje atribut stav, ze kterho je mon zjistit stav danho vstupu nebo vstupu. Jejich stavy jsou udrovny pesn podle stav na vstup vstupnch zazench. Entita Prikazy slou k~zadvn pkaz pro slubu spnn vstup vztupnch zazen. Zznamy tto entity jsou periodicky natny slubou, kter podle atributu prikaz ur o~jak typ pkazu se jedn. Atribut stav uruje zda se jedn o~nezpracovan, spn zpracovan nebo nespn zpracovan pkaz. Popisy jednotlivch stav jsou uloeny v~pomocn entite Stavzpracovaniprikazy \ref{fig:stavzpracovani}. Entita Prikazy obsahuje tak asovou znmku, podle kter lze urit as jednotlivch pkaz.

\begin{figure}[hbt]
	\centering
	\subfloat[Entity Stavzpracovaniaccess a~Stavzpracovaniprikazy]{
		\label{fig:stavzpracovani}
		\setlength\fboxsep{0pt}		
		\includegraphics[width=0.3\textwidth]{pictures/datamodel/stavy}}              	
  	\subfloat[Entita Zmenystavu]{
		\label{fig:zmenystavu}
		\setlength\fboxsep{0pt}
		\includegraphics[width=0.25\textwidth]{pictures/datamodel/zmenystavu}}
	\label{fig:stavzpracovanizmenystavu}	
\end{figure}

Entita Zmenystavu \ref{fig:zmenystavu} je urena pro ukldn a~popis udlost, kter nastvaj pi zmnch jednotlivch vstup a~vstup. Atribut adresa obsahuje etzec identifikujc udlost a~atribut udalost ji dle popisuje. Stejn jako v~ppad entity Prikazy je i~zde ukldn asov daj.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.22\textwidth]{pictures/datamodel/vizualizace}
	\caption{Entita Vizualizace}
	\label{fig:vizualizace}
\end{figure}

Entita Vizualizace \ref{fig:vizualizace} je definovna atributy adresa, text, sqldotaz a~poradi. Z~tto entity jsou natna data pro grafick zobrazovn tabla na obrazovce terminlu. Atributy adresa a~text uruj jednotliv poloky tabla a~atribut sqldotaz definuje dotaz, pomoc jeho vsledku jsou zobrazovny stavy. Atribut poad uruje poad poloek v~tablu. 

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.4\textwidth]{pictures/datamodel/dochazka}
	\caption{Entity Dochazkaxls a~Dny}
	\label{fig:dochazka}
\end{figure}

Pro poteby generovn dochzky jsou zavedeny entity Dny a~Dochazkaxls \ref{fig:dochazka}. Entita dny obsahuje atributy nazev a~denvtydnu. Dochazkaxls je vyuvna pro ukldn vygenerovan dochzky pro konkrtn msc a~osobu. Obsahuje atributy pro uchovn dne v~msci, zapotanho pchodu a~odchodu s~jeho dvodem. Dle jsou definovny atributy pro uloen zatku a~konce pestvky.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.25\textwidth]{pictures/datamodel/menu}
	\caption{Entita Menu}
	\label{fig:menu}
\end{figure}

Entita Menu obsahuje zznamy s~jednotlivmi odkazy v~menu a~jejich personalizace pro jednotliv skupiny uivatel \ref{fig:menu}. Atributy text, povoleno, poradi, url a~popis definuj vlastnosti jednotlivch poloek menu. Dal atributy administrator, uzivatel, spravce, pritomnost, servis a~neprihlasen uruj, pro kterou skupinu uivatel je dan poloka menu zobrazovna.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.4\textwidth]{pictures/datamodel/audit}
	\caption{Entity Audit a~Auditinfo}
	\label{fig:audit}
\end{figure}

Pro ely logovn akc, kter provedou uivatel prostednictvm webovho managementu jsou zavedeny entity Audit a~Auditinfo \ref{fig:audot}. Auditinfo obsahuje popis jednotlivch typ zznam z~entity Audit. V~tto entit jsou ukldny hodnoty vech nov zavedench, zmnnch nebo smazanch zznam. Logovn je zavedeno kvli zptnmu dohledn akc jedotlivch uivatel. Zznam vdy obsahuje nzev tabulky, nzev a~hodnotu primrnch kl, nzev slupce, jeho pvodn a~novou hodnotu.  

Posledn skupinou entit jsou entity personalizan. Msto entit uzivatel, skupina a~pohled generovanch programem WebRatio je pouita struktura entit, kterou je mon vygenerovat pmo pomoc Microsoft .NET Framework \ref{fig:aspnet}. Pomoc tchto entit jsou definovni uivatel webov aplikace a~udlosti, kter v~aplikaci nastanou. Pomoc vazeb mezi entitou AspnetUsers a~ostatnmi entitami je definovno, kter uivatele, pstupov body a~osoby me dan uivatel upravovat nebo piazovat. 

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.7\textwidth]{pictures/datamodel/aspnet}
	\caption{Personalizan entity}
	\label{fig:aspnet}
\end{figure}

\subsection{Hypertextov model}

Hypertextov model je sloen ze spolen pihlaovac strnky a~z~pohled na systm. Pohledy jsou hierarchicky uspodny podle uivatelskch skupin. lenov kad skupiny se mohou pohybovat pouze v~rmci svho pohledu.

\begin{figure}[hbt]
	\centering
	\subfloat[Pihlaovn do systmu]{
		\label{fig:spolecne}
		\setlength\fboxsep{0pt}	
		\includegraphics[width=0.25\textwidth]{pictures/hypertextmodel/spolecne/Spolecne}}
  	\subfloat[Master page]{
		\label{fig:master}
		\setlength\fboxsep{0pt}
		\includegraphics[width=0.25\textwidth]{pictures/hypertextmodel/spolecne/Master}}
	\label{fig:spolecnemaster}
\end{figure}

Pihlaovac strnka je sloena ze dvou formul, kter lze k~pihlen vyut \ref{fig:spolecne}. Prvn z~nich je pro pihlen pomoc tu, kter je vytvoen pmo ve webovm managementu. Pomoc druhho formule se lze pihlsit pomoc tu windows, kter je dostupn na webovm serveru. V~praxi lze pot pout kterkoliv et windows, pomoc kterho se lze pihlsit na webo server, kter m vytvoen protiet i~ve webovm managementu. Ve vsledku je mon pout pihlaovac jmno a~heslo z~tu windwos. 

Dalm prvkem je oblast MasterPage \ref{fig:master}, kter je spolen pro vechny uivatelsk pohledy. Obsahuje monost odhlen pihlenho uivatele a~seznam obsahujc poloky naviganho menu.  
\\
\\
{\bf Pohled pro uivatele}
\\
\\
Pohled pro uivatele je sloen z~pti oblast nepotaje oblast MasterPage, kter je spolen pro vechny pohledy. Jedn se o~nsledujc zkladn uivatelsk oblasti pro osoby, karty, ptomnost, pehled pstup osob a~nastaven. Tento pohled tvo zklad pro ostatn pohledy, kter jej dle upravuj nebo pidvaj dal oblasti podle funknch poadavk. 

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.65\textwidth]{pictures/hypertextmodel/uzivatel/OsobyKartyPritomnost}
	\caption{Oblasti osoby, karty, ptomnost pro pohled uivatele}
	\label{fig:uzivatelosobykartypritomnost}
\end{figure}

Oblast osoby je tvoena ze t strnek. vodn strnka oblasti zajiuje vyhledvn a~prohlen seznamu vech osob zavedench v~systmu pomoc listovn. Dal strnka zobrazuje detaily konkrtn vybran osoby. Seznam piazench karet a~omezen piazen asov zny. Z~detailu osoby lze na dal strnce zobrazit nastaven pstupov prva k~jednotlivm dvem, skupinm dve a~prostorm.

Oblast karty je sloena pouze ze dvou strnek. Jedna pro zobrazen seznamu vech karet, jejich listovn a~vyhledvn v~nich. Druh strnka slou pouze pro zobrazen detailu karty. Detail karty zobrazuje i~jejho vlastnka a~detail osoby vechny jej piazen karty. Pomoc odkazu se lze dostat z~detailu karty na detail osoby a~obrcen.

Oblast ptomnost je tvoena jednou strnkou pro zobrazen ptomnosti osob a~jednu dal oblast pro zobrazen ptomnosti osob v~mstnostech, kter obsahuje dv dal strnky. V~jedn z~nich  je zobrazen seznam mstnost, ze kterho lze zobrazit detail mstnosti, kter zobrazuje seznam vech osob piazench do dan mstnosti.

Dal oblast je nastaven, kter obsahuje pouze jednu strnku, kter je tvoena formulovmi prvky pro nastaven zobrazovn ptomnosti osob pro aktuln den nebo i~pro vechny dvj dny. Nastaven pro poet zznam, kter se maj zobrazovat ve vech hlavnch seznamech a~monost pro zmenu hesla prve pihlenho uivatele. 

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.38\textwidth]{pictures/hypertextmodel/uzivatel/NastaveniPrehledpristupu}
	\caption{Oblasti nastaven a~pehledu pstup osob pro pohled uivatele}
	\label{fig:uzivatelnastaveniprehledpristupuosoby}
\end{figure}

Oblast pehled pstup pro osoby je tvoena rovn pouze jednou strnkou. kter obsahuje seznam pstup. Konkrtn osobu, mesc a~rok lze vybrat prostednictvm formule, kter zobraz pouze poadovan pstupy.
\\
\\
{\bf Pohled pro sprvce}
\\
\\
Pohled pro sprvce navazuje na pohled pro bn uivatele. Obsahuje stejn oblasti jako pohled pro uivatele. Oblast pro karty a~osoby jsou upraveny a~jsou zde pidny dva nov pohledy pro pehled pstup terminly a~pro uivatele.

Pohled pro uivatele je upraven a~je rozen o~monosti pro pidvn novch osob a~pro pravu osob ji zavedench. Strnka oprvnn je dle rozena o~monost pidn nebo odebrn prva na dvee, skupinu dve nebo prostoru pomoc propojen osoby s~pslunm pstupovm bodem. 

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.45\textwidth]{pictures/hypertextmodel/spravce/Osoby}
	\caption{Oblast osoby pro pohled sprvce}
	\label{fig:spravceosoby}
\end{figure}

Dal upraven oblast je oblast karet. Stejn jako u~osob je pohled pro sprvce obohacen o~monost vytvet nov karty a~upravovat ji zaveden. 

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.45\textwidth]{pictures/hypertextmodel/spravce/KartyPrehledpristuputerminaly}
	\caption{Oblast karty a~pehled pstup terminly pro pohled sprvce}
	\label{fig:spravcekartyprehledpristuputerminaly}
\end{figure}

Oblast pro pehled pstup terminly obsahuje jednu strnku, kter je urena k~zobrazovn pstup k~jednotlivm dvem a~zmeny stav piazench vstup. Pomoc formule lze nastavit zobrazen pstup pouze pro konkrtn vybran den z~dvodu velkho mnostv pstup je toto omezen nezbytn. 

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.45\textwidth]{pictures/hypertextmodel/spravce/Uzivatele}
	\caption{Oblast uivatel pro pohled sprvce}
	\label{fig:spravceuzivatele}
\end{figure}

Dal nov pidan oblast pro pohled sprvce je oblast pro uivatele. Je sloena ze t strnek, kde primrn strnka oblasti zobrazuje seznam vech uivatel webov aplikace, ve kterm lze vyhledvat a~listovat. Dal strnkou oblasti je detail osoby, kter zobrazuje detail vybranho uivatele a~ze kterho lze zobrazit a~upravovat piazen uivatelskch rol a~piazen prv na osoby. Sprvce me v~systmu vytvet nov uivatele, upravovat stvajc a~odebrat uivatele ji vytvoen.  
\\
\\
{\bf Pohled pro administrtora}
\\
\\
V~hierarchii pohled je pohled pro administrtora na nejvy rovni a~pedstavuje pohled pro kompletn sprvu systmu. Narozdl od pohledu pro sprvce jsou pidny funkce do oblast osob a~karet, kter umouj administrtorm mazat karty i~osoby a~tm pdem i~vechny informace, kter se na n vou, jako jsou jejich oprvnn a~proveden pstupy.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.8\textwidth]{pictures/hypertextmodel/administrator/TerminalyProstory}
	\caption{Oblast terminaly a~prostory pro pohled administrtora}
	\label{fig:administratorterminalyprostory}
\end{figure}

Mezi nov pidan oblasti pat oblasti pro zobrazen seznamu pravu jednotlivch terminl a~prostor \ref{fig:administratorterminalyprostory}. Kad oblast obsahuje dv strnky kde prvn tvo zladn strku oblasti a~administrtorovi umouje zobrazit a~listovat seznamem jednotlivch terminl a~prostor. Z~tohoto seznamu lze zobrazut strnku detailu, kter obsahuje detailn informace o~vybranm terminlu nebo prostoru a~je tak mon zde zobrazen informace upravovat.

Oblast pro asov zny zajiuje administrtorovi monost vytvet, upravovat a~odstraovat jednotliv skupiny asovch zn. Domovsk strnka pro tuto oblast zobrazuje seznam zavedench asovch zn, kterm je mon listovat. Z~tto strnky je tak mon zavdt nov skupiny. Z~uvedenho seznamu lze zobrazit detail jednotlivch zn, kde lze znu upravovat a~pejt na strnku, kter zobrazuje nastaven asov zny. Omezen zaveden pro jednotliv dny. Lze je pidvat, odebrat a~mnit.  

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.6\textwidth]{pictures/hypertextmodel/administrator/CasoveZony}
	\caption{Oblast asov zny pro pohled administrtora}
	\label{fig:administratorcasovezony}
\end{figure}

Dal nov pidanou oblast je oblast pro skupiny funkce temrinly. Tato oblast je urena k~vytven skupin dve. Tato monost vrazn sniuje as potebn k~nastaven prv pro jednotliv osoby. Domovsk strnka zobrazuje seznam skupin, kterm lze listovat a~vytvet skupiny nov. V~detailu skupiny lze mnit daje o~skupin a~lze z~nj pejt na strnku, kter zobrazuje terminly piazen do skupiny a~umouje jejich odebrn a~pidvn.   

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.63\textwidth]{pictures/hypertextmodel/administrator/Skupinyfunkceterminaly}
	\caption{Oblast skupiny funkce terminaly pro pohled administrtora}
	\label{fig:administratorskupinyfunkceterminaly}
\end{figure}

Posledn zmna pro pohled administrtora je upraven oblasti uivatel, kter vychz z~pohledu pro sprvce. Strnky zobrazujc seznam a~detail uivatele jsou ponechny beze zmny. Upravena je strnka pro oprvnn, pomoc kter je mon upravovat prva pro jednotliv uivatele. Je pidna monost pro pidvn a~odebrn prv pro terminly, skupiny terminl, prostory a~piazovn ostatnch uivatel, kter pot me dan sprvce upravovat. 

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.8\textwidth]{pictures/hypertextmodel/administrator/Uzivatele}
	\caption{Oblast uivatel pro pohled administrtora}
	\label{fig:administratoruzivatele}
\end{figure}

V~pohledu pro uivatele a~sprvce jsou zobrazovny pouze osoby, na kter m dan uivatel oprvnn. Sprvce, kter me oprvnn k~jednotlivm dvem, skupinm dve a~prostorm piazovat m pouze oprvnn na ty pstupov body, kter mu administrtor piadil. Rovn je administrtor oprvnn pouze k~prav tch uivatel, na kter m pidlena oprvnn od administrtora.

\subsection{Presentan model}

Presentan model nen ve WebML development process pesn definovan a~v~podstat se jedn pouze o~grafickou specifikaci budouc webov aplikace. Pro bli znzornn vzhledu aplikace je pouito schma, kter zobrazuje webovou strnku a~na n mon rozmstn jednotlivch prvk. 

Nvrh presentanho modelu je realizovn pomoc nsledujcho grafickho zobrazen \ref{fig:presentacnimodel}. Schma zobrazuje v~jakm barevnm schmatu je strnka realizovna a~jak jsou jednotliv prvky na strnce rozmstny. Webov aplikace je eena za pouit takzvan MasterPage, kter je stejn pro vechny zobrazovan strnky a~jedin co se mn je hlavn obsah strnky. Navigan menu obsahuje odkazy na jednotliv strnky, jejich obsah je nsledn zobrazovn v~oblasti, kter je oznaen jako hlavn obsah. 

\begin{figure}[hbt]
	\centering
	\setlength\fboxsep{0pt}
	\fbox{\includegraphics[width=0.5\textwidth]{pictures/implementace/presentacnimodel}}
	\caption{Grafick proveden webov aplikace}
	\label{fig:presentacnimodel}
\end{figure}

\section{Implementace}

V~tto kapitole bych rd uvedl, jak byly nkter vci v~systmu implementovny a~pro tomu tak je. Mezi diskutovan oblasti pat implementace v databzov vrstv, implementace webovho managementu, vizualizace nashromdnch pstupovch dat a~vizualizace budovy.

\subsection{Databze}

Jeliko je cel logika pstupovho systmu implementovna v databzov vrstv, je ji mon maximln pizpsobit poadavkm konkrtn instalace. Pokud je provdn pstup k nktermu z terminl, je tento zznam pomoc vytvoench slueb windows uloen do databze a nsledn podle obsahu zznamu zpracovn pomoc nadefinovanch spout (trigger). Spou v databzi definuje innosti, kter se maj provst v ppad definovan udlosti nad databzovou tabulkou. Definovanou udlost me bt vloen, upraven nebo smazn dat. V databzi je definovno celkem pt spout a to Access\_Insert, Update\_Pritomnost, Pristupy\_Insert, ZmnaStavu a Pin.

Spou Access\_Insert zajiuje zpracovn jednotlivch vloench pstup. Nad vemi vkldanmi zznamy je slutna procedura ZpracujRadekLogu. Tato procdura zjist hodnoty Id\_Terminal, Id\_Ctecka, Id\_Karta, Id\_Duvod, Povoleni, PovoleniCas a Id\_Osoba. Podle toho, zda jsou zjitn hotnoty validn je bu vrcena chybov hodnota, nebo se pokrauje dle ve vykonvn procedury. Pokud je ve v podku je vloen zznam do tabuly Pristupy a m-li dojt k oteven dve nebo jin akci, jsou vloeny pslun zznamy do tabulky pkaz, ze kter jsou zznamy periodicky natny slubou pro ovldn vstup vstupnch zazen, kter pkazy dle zpracuje a provede fyzick nastaven vstup.

Dal nsledujc spou Pristupy\_Insert je definovna nad tabulkou Pristupy a je spoutna pi vloen zznamu. Dle zpracovvny jsou pouze pstupy, kter byly provedeny na terminlech, kter jsou oznaeny jako pchodov. Pomoc tto spout dochz k nastaven stavu ptomnosti, budovy a data v tabulce pro osoby.

Posledn spou Update\_Pritomnost je sputna pi zmn zznamu v tabulce Osoby. V prbhu spout jsou zjitny prostory, do kterch m osoba povolen pstup a jsou v budov, do kter osoba prv vstoupila nebo ze kter odela. Pokud je osoba v prostoru prvn nebo naopak posledn jsou do tabulky pro pkazy vloeny pslun zznamy.

Posledn dv spout jsou definovny nad tabulkou Stavy a jsou spoutny pi zmn zznam. Jedn se o spou ZmenaStavu, kter zajiuje vkldn zznam o zmnch stav do tabulky ZmenyStavu. V tto spouti lze nadefinovat u kterch vstup nebo vstup a za jakch stav m bt zznam do ZmenyStavu vloen. Druh spou Pin zjiuje, zda je zabezpeen prostoru ovldno z pstupovho systmu nebo pomoc systmu zabezpeovacho. Pokud je prostor ovldn ze zabezpeovacho systmu pomoc klvesnice zabezpeovacho systmu, je tato udlost detekovna a nsledn je tato informace vloena do tabulky ZmanyStavu.

Dky implementaci logiky pstupovho systmu v databzov vrstv je mon ji upravit pouhm pepsnm spout a nen poteba peprogramovvat jednotliv aplikace. Dal vhodou je monost vzdlen sprvy databze, monost zaveden pstupovho systmu i do objekt, kter jsou od sebe velice vzdleny. Dleit je i monost pravidelnho zlohovn nasbranch dat.

\subsection{Webov aplikace}

Aby byla aplikace spn a~lid si zvykli ji pouvat, je poteba, aby se jim maximln pizpsobila. V~tomto smyslu je teba nahlet i~na vzhled vsledn aplikace. Jeliko je stle rostouc trend implementovat bn aplikace i~v~prosted webovho prohlee, snail jsem se webovou aplikaci implementovat za pomoc oken. Na obrzku \ref{fig:implementaceosoby} je zobrazen detail osoby a~s~n spojen informace. as poslednho pstupu, seznam piazench karet a~asov omezen platn pro tuto osobu. Ve spodn sti okna jsou pot zobrazeny jednotliv akce, pomoc kterch lze zobrazenou osobu upravovat a dle s~n nakldat.

\begin{figure}[hbt]
	\centering
	\setlength\fboxsep{0pt}
	\fbox{\includegraphics[width=0.5\textwidth]{pictures/implementace/osoby}}
	\caption{Ukzka zobrazen detailu osoby}
	\label{fig:implementaceosoby}
\end{figure}

Vechny seznamy a~okna pro zobrazen detailu jsou implementovny za vyuit technologie AJAX, kter je v~dnen dob bnou soust bohatch internetovch aplikac. Dky tomu nen poteba natat a~pekreslovat celou strnku znovu a~k~obnoven jsou vybrny jen potebn oblasti. Tmto se zlepuje z~pohledu uivatele prce se systmem, protoe se jev plynulej a~vce se podob ostatnm bnm stolnm aplikacm.

Vechny formulov prvky jsou kontrolovny kvli konzistenci a validit informac. Jednotliv uivatelsk vstupy jsou kontrolovny jak na stran klienta za vyuit javascriptu, tak na stran serveru. Kontrola pomoc javascriptu nijak nezahlcuje server zbytenm odeslnm nevalidnch formul. Napklad u zavdn novch karet je provdna kontrola na duplicitu sla karty. Uivatel vypln slo karty a pomoc AJAX je volna asynchronn funkce, kter zadan slo porovn s sli ji zavedench karet v databzi.

\begin{figure}[hbt]
	\centering
	\subfloat[Ukzka nastaven asov zny]{
		\label{fig:implementacecasovezony}
		\setlength\fboxsep{0pt}	
		\fbox{\includegraphics[width=0.48\textwidth]{pictures/implementace/casovezony}}}
  	\subfloat[Ukzka piazovn dve do skupiny dve]{
		\label{fig:implementaceskupinydveri}
		\setlength\fboxsep{0pt}
		\fbox{\includegraphics[width=0.48\textwidth]{pictures/implementace/skupinydveri}}}
	\label{fig:implementacecasovezonyskupinydveri}
\end{figure}

Javascript je vyuvn tak pi napomhn uivateli se sprvnm vyplnnm formulovch prvk. Na ukzce \ref{fig:implementacecasovezony} je zobrazen detail asov zny pro nastaven asovch omezen pro jednotliv dny. Pomoc javascriptu je zobrazovn poadovan formt vstupu a zrove je provdna kontrola, aby byl as zadvn pouze v platnm rozmez a aby nebyl dal pro konec povolen dvji nez jeho zatek.

V systmu je asto poteba pidlovat nebo odebrat prva k jednotlivm pstupovm bodm nebo oprvnn pro uivatele. Na ukzce \ref{fig:implementaceskupinydveri} je zobrazen detail skupiny dve. Nalevo je seznam dve, s ktermi me uivatel manipulovat a napravo je zobrazen seznam, kter obsahuje dvee, kter jsou do skupiny piazeny. Jednotliv poloky je mon vechny oznait najednou a pot je pomoc pslunho tlatka pomoc jednoho kliknut piadit nebo odebrat.

\begin{figure}[hbt]
	\centering
	\setlength\fboxsep{0pt}
	\fbox{\includegraphics[width=0.5\textwidth]{pictures/implementace/pristupy}}
	\caption{Ukzka seznamu pstup osob a~zmn stav}
	\label{fig:implementacepristupy}
\end{figure}

Pstupy k jednotlivm dvem a zmny stav vstup jsou zobrazeny na ukzce \ref{fig:implementacepristupy}. daje byly pozmnny, jmna a nzvy odstranny, . Seznam je seazen podle as jednotlivch pstup a udlost. Seznam lze omezit pouze na konkrtn adresu a souasn je mon zobrazit pouze zznamy pro jeden den. Toto omezen je zavedeno z dvodu velkho mnostv zznam, kter by muselo bt pokad natno z databze, co by vrazn snilo vkon serveru i samotn webov aplikace.

Pro zobrazen pstup pro konkrtn osoby za zvolen obdob. Je mon vyut zobrazen pomoc webov strnky, kde je po zvolen obdob a osoby vygenerovna pslun dochzka. Vygenerovan seznam obsahuje zznamy pro vechny dny v msci s pslunmi pchody a odchody. 

\begin{figure}[hbt]
	\centering
	\subfloat[Zobrazen pstup pomoc webovho prohlee]{
		\label{fig:implementacepristupyosobyweb}
		\setlength\fboxsep{0pt}	
		\fbox{\includegraphics[width=0.48\textwidth]{pictures/implementace/pristupyosobyweb2}}}
  	\subfloat[Zobrazen pstup pomoc tabulkovho procesoru Excel]{
		\label{fig:implementacepristupyosobyexcel}
		\setlength\fboxsep{0pt}
		\fbox{\includegraphics[width=0.49\textwidth]{pictures/implementace/pristupyosobyexcel}}}
	\label{fig:implementacepristupyosoby}
\end{figure}

Dal monost pro zobrazen dochzky je vygenerovn XML souboru, kter lze poslze otevt pomoc tabulkovho procesoru Excel. Postup je stejn jako pi zobrazen wevbov strnky. Uivatel zvol obdob, osobu a pomoc tlatka si nech vygenerovat XML soubor, kter si sthne do potae a nsledn zobraz.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.6\textwidth]{pictures/implementace/vizualizace}
	\caption{Vizualizace prostor a~osob}
	\label{fig:implementacevizualizace}
\end{figure}

K vizualizaci stavu zabezpeen jednotlivch prostor jsem vyuil technologie Silverlight, kter tvo pmou konkurenci k technologii Flash. Vzhled takto vytvoen aplikace je definovn v XAML souboru, kter vyuv klasick XML notace. V nm lze definovat jednotliv prvky aplikace. Zklad pro zobrazen budovy tvoil soubor s pponou DWG, kter byl peveden do formtu SVG a nsledn do XAML. Vsledkem je grafick znzornn budovy \ref{fig:implementacevizualizace}, kter zobrazuje stav jednotlivch prostor. Po najet kurzorem na konkrtn prostor je zavolna funkce, kter zjist potebn informace o prostoru a zobraz osoby, kter jsou k danmu prostoru piazeny.

Vizualizace pomoc technologie Silverlight nabz irok monosti zobrazen nasbranch dat a na grafickm stvrnn se neustle pracuje. S pojmem inteligentnch budov je takovto grafick znzorovn dat asto spojovno.  

\chapter{Instalace, nasazen a~provoz systmu}
\label{chap:instalace}

V tto kapitole bude popsna instalace celho systmu a zaveden ukzkovho pristupovho systmu do databze.Instalace a nastaven sluby pro ten ze sriovch linek a ovldn vstup vstupnch zazen. Nastaven konfigurace v databzi, prava a nastaven registr. Dalm bodem je instalace terminlov aplikace, kter je umstna na odchodovch terminlech. Poslednm bodem je nainstalovn a konfigurace webovho managementu, pomoc kterho je cel pstupov systm ovldn. Nsledujc diagram zobrazuje nasazen jednotlivch programovch st pstupovho systmu.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.7\textwidth]{pictures/DeploymentDiagram}
	\caption{Diagram nasazen}
	\label{fig:deploymentdiagram}	
\end{figure}

\section{Databze}

Nejsnam zpsobem zaveden nov databze je sputn piloenho skriptu na clovm sql serveru. Skript je generovn pro verzi Microsoft SQL Server 2008. Po sputn skriptu je na serveru vytvoena databze s nzvem Access. Dle je vytvoena struktura tabulek a pohled, procedury a funkce. Tabulky jsou naplnny nezbytnmi daty a do systmu je zavedena konfigurace, terminaly a prostory.

Do tabulky konfigurace jsou pidny dv zazen. Jedno zazen prvnho typu Adam a jedno zazen druhho typu DataLab. U vstup vstupnho zazen DataLab je konfigurace nastavena pro zazen se sriovm slem 20907615, kter tvo adresu. Celkov DataLab obsahuje jeden vstupn a jeden vstupn modul, ili osm vstup a osm vstup. Porty vstup jsou oznaeny od A1 do A8 a port modulu je 400. Vstupy nesou oznaen B1 a B8 s portem modulu 800. Vechny z nich jsou nastaveny jako zapojen, neinverzn, id sluby, kter je d je nastaveno na hodnotu 1 a vstupy maj nastavenu dlku impulsu na 3000 milisekund. 

Zazen Adam je nastaveno mrn odlinji. Adresu tvo ip adresa 192.168.1.10 a port zazen m fixn hodnotu 502. Vstup je est a jsou oznaeny v rozmez od RL0 a RL5. Vstup je tak est a jsou oznaeny jako RL0 a RL5 s dlkou impulsu tak 3000 milisekund.

Tabulka Stavy obsahuje stavy jednotlivch vstup a vstup. Zda je vstup sepnuty nebo rozepnut a zda na vstup pichz nebo nepichz signl.

Nov dvee jsou do systmu zavdny nsledujcm zpsobem. Prvn je poteba vytvoit zznam v tabulce SkupinyTerminaly. Nsledn je poteba vytvoit jednotliv terminly zadnm hodnot pro nzev, adresu, otevrn, pchodov, skupiny terminalu, budovy a vstupu, pomoc kterho je ovldn zmek dve. V tabulce teek je nutn zavst vechny teky, kter ke dvem pat. Zadvaj se hodnoty pro id terminlu, kte ktermu teka pat, poadov slo teky a zda se jedn o teku pchodovou nebo odchodovou. Poslednm krokem pro zaveden dve do systmu je piazen tlatek. Pokud se jedn o obyejn dvee i tak je poteba vytvoit tlatko s id terminlu s indexem tlatka a id dvodu, kter je s tlatkem spojen. Jednotliv dvody jsou definovny ve vlastn tabulce. Stejn je poteba zadat vechny tlatka pro zaveden terminly s piazenmi dvody. U terminlovch tlatek m smysl zadvat i hodnoty pro barvu poped a pozad, pomoc kterch je lze zvraznit. Pokud je u tlatka vyplnna hodnota pro sql dotaz, dojde pi stistkut tlatka na terminlu k jeho vykonn. Nastavovat tuto hodnotu m smysl u tlatek v servisnm menu, do kterho lze vstoupit pouze pokud na to m dritel karty oprvnn.

Zaveden prostoru do systmu obn pouze zadn poloek do tabulky prostory. Zadvny jsou hodnoty pro nzev prostoru, budovu, do kter prostor pat a hodnoty pro vstup a vstup, pomoc kterch je ovldno zabezpeen a zjiovn stav prostoru.

Posledn co je poteba v databzi provst je upraven spout ZmenaStavu a procedury ZpracujRadekLogu. Ve spouti jsou definovny podmnky, kdy se maj ukldat zmny jednotlivch stav vstup a vstup do tabulky ZmenyStavu. V prcedue ZpracujRadekLogu jsou kontrolovny jednotliv hodnoty, zda jsou validn a pokud ano, dojde podle adresy k oteven pslunch dve. Ve vytvoenm systmu jsou ke kadm dvem piazeny dva vstupy. Jeden pro ovldn elektomagnetickho zmku a jedne pro sputn ppn teky. Nejdve je oteven zmek a pot sputno ppn, aby uivatel vdl, e jsou dvee oteveny.

Dky implementaci pomoc spout je mon snadno upravit logiku otevrn jednotlivch dve. Napklad je mon zamezit oteven dve, pokud bude zjitno, e je prostor, do kterho osoba pomoc dve vstupuje zabezpeen, nezad pkaz pro oteven dve a dvee neoteve. Dal mon prava me zadvat, od kdy do kdy maj bt dvee neustle oteveny. Pokud je pstup ve vymezenm asovm obdob, dojde k zadn pkazu pro sepnut, kter dvee oteve. Pokud napklad potebujeme nechat dvee neustle otven s pchodem prvn osoby a zavt je a s odchodem posledn, je mon toto chovn nadefinovat zde. Ve spouti ZmenaStavu lze krom ukldn zmn jednotlivch stav tak definovat akce, kter se maj provst pi sepnutm nebo rozepnutm stavu. Dky propojen se zabezpeovacm systmem, kter je vybaven GSM komuniktorem, je mon pomoc zasln SMS zprvy sepnout vstup zabezpeovacho systmu, kter pot nastav vstup na zazen DataLab nebo Adam. Tuto zmnu lze ve spouti detekovat a nadefinovat akce, kter se maj provst. Napklad je pot mon pomoc SMS zprvy otevt pjezdovou brnu nebo vrata pro vjezd do gare. Implementace pomoc vstup vstupnch zazen umouje detekovat zmnu zabezpeen jednotlivch prostor a pi odbezpeen rozthnout rolety, zapnout topen nebo klimatizaci. Stejn pi zabezpeen prostoru meme pomoc vstupu rozepnout osvtlen, zathnout rolety a vypnout klimatizaci. Zvlt u klimatizac a osvtlen je jejich vypnut se zabezpeenm prostoru monm zpsobem snen nklad na provoz budovy.   

\section{Sluby windows}

Po vytvoen databze a zaveden vech potebnch informac je poteba nainstalovat sluby pro ten dat ze sriovch linek a pro ovldn vstup vstupnch zazen. Ob sluby lze snadno nainstalovat pomoc vytvoenho instaltoru, kter slubu zaregistruje a do registr zavede potebn hodnoty.

\subsection{Sluba pro ten dat ze srovch linek}

Nastaven sluby pro ten dat ze srovch linek je zobrazeno v tabulce \ref{registry1}. Je zde uloena hodnota etzce pro pipojen k databzi, poet pokus pipojen k databzi po slutn sluby a velikost asovho intervalu mezi jednotlivmi pokusy. etzec pro pipojen k databzi obsahuje nzev serveru a instanci sql serveru, uivatelsk jmno, heslo a nzev databze. V registrech je dle uloeno nastaven logovn a cesta k logovacmu souboru, kter je vytvoena na zklad cesty, kam byla sluba nainstalovna. Hodnota TMakePortAvailableAfter uruje dobu, po kterou nebudou z jednou petenho portu tena data dal. Hodnota 0 uruje, e data budou tena bez omezen. Pokud bychom chteli nastavit dal ten zat a sekundu potom, co byla karta u jednou petena, je poteba nastavit daj na honotu 1000. Poslednm dajem je interval, ve kterm je vypisovna hodnota alokovan pamti, kterou sluba pouv.  

\begin{table}[hbt]
	\centering
	\resizebox{13cm}{!} {
		\begin{tabular}{|r|l|}
			\hline
			{\bf Nzev} & {\bf Hodnota} \\ \hline
			COM1 & COM1|9600-N-1-0|3| \\
			     & insert into access (Adresa,Karta,Ctecka,Tlacitko) values ('Dvere1',\&CARD,1,0) \\ \hline
			CS & Server=localhost\textbackslash sqlexpress;Database=Access;Uid=sa;Pwd=heslo; \\ \hline
			TConnectionCheckBeforeStartCount & 10 \\ \hline
			TConnectionCheckBeforeStartInterval & 20000 \\ \hline
			LogFile & C:\textbackslash Program Files\textbackslash Merit Group a.s\textbackslash ZachytavaniCOM\textbackslash Log.txt \\ \hline
			LogLevel & 1 \\ \hline
			LogFileMaxSize & 10000 \\ \hline
			TMakePortAvailableAfter & 0 \\ \hline
			TMemory & 3600000 \\
			\hline
		\end{tabular}
	}
	\caption{Registry sluby pro ten dat ze sriovch linek}
	\label{registry1}
\end{table}

Nainstalovanou slubu lze zastavovat, spoutt a restartovat pomoc sprvce potae, na kterm je sluba nainstalovna. Sluba je v seznamu zavedena pod jmnem zen pstupu (DataLab,Adam). Hodnoty registr jsou natny pi sputn sluby a pot u na jejich zmnu nen brn zetel. Dky tomu je mon konfiguraci v p