\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{booktabs}
\usepackage{amsmath}
%\usepackage{indentfirst}
\hypersetup{colorlinks=true, citecolor=black, urlcolor =black, linkcolor=black} 


\thesistitle{Pstupov informan systm}
\thesissubtitle{Diplomov prce}
\thesisstudent{Bc. Tom Jelnek}
\thesiswoman{false}
\thesisfaculty{fi}
\thesisyear{jaro 2011}
\thesisadvisor{Mgr. Ji Slab}
\def\universityname{Masarykova univerzita}

\begin{document}

\hyphenation{}

\FrontMatter
\ThesisTitlePage

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

\begin{ThesisThanks}
Tmto bych chtl podkovat Mgr. Jimu Slabmu za veden a~pomoc pi tvorb 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 samotnho 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~generovnm zkladnch tiskovch sestav.
\end{ThesisAbstract}

\begin{ThesisKeyWords}
Systm fyzick kontroly pstupu, Informan systm, Datov modelovn, .NET, ASP.NET, C\#, Microsoft Visual Basic, Microsoft SQL 2008, 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 mel odstranit problm s~nezabezpeenmi prostory ve kterch u nikdo nen a~tm zstavaj po zbytek dne a~noc 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 zabezpecovacho 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 automatizovn pomoc pota, me 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\footnote{technick vybaven, fyzick reprezenkace potae, potaov ste, apod.}, softwaru\footnote{programov vybaven, programy pouvan uritm hardwarem}, komunikanch zazen, tmi 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, jako jsou potae a~produkuje 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\footnote{uspodan data vyuvan uritm softwarem}, kter jsou schopn ukldat a~zprcovvat informace mnohem efektivnj a~snz, 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 s~svm okolm  
	\item {\bf deterministick x stochastick} - jednoznan nebo nhosn chovn systmu  
	\item {\bf statick x dynamick} - linern nebo diferenciln, systm si pamatuje vnitn stav   
	\item {\bf spojit x disktn} - 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 je 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{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~dnesn 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~fyzicl 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, ze 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 otevny jinak ne kartou nebo dreny oteven po pli dlouhou dobu. 

\section{Oprace kontroly pstupu}

Klasick pstupov systm po peten tekou odesl informace, vtinou slo, kontrolnmu panelu. Kontroln panel porovn slo s~sli 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 sygnalizace. 

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 pohybu zaznamen pohyb jsou 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 leze 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~vyhnotu 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~vetiny elektronickch zmk jako pojistka a~je zraniteln vi takzvan bumping metod, zejmna u~starch cylindrickch vloek.

\chapter{Specifikace poadavk}

V~tto kapitole 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 infomarman 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~posle 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 zpetnou 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 proti ruen je informace 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{15cm}{!} {
		\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 pspupovho 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{Systmov 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{Systmov 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 t kter 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 vkladani editace a~mazani zaznamu
	\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~ten tak rozit 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 standartn 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~veliksti 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=15cm]{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, ktre ovld a~na vstupo 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. Vechan 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 aplikac v~prosted windows a~za vyuit programovacch jazyk C\# a~Visual Basic .NET 

\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 rnch 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.

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 stolnch 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 primre 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 Winsows 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 opranho 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 protednictvm 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 nekter 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 a~to 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 jee 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~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 napiklad 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 astavovat 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 obnveny 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 le vstupy ovldat. Je mon jejich sepnut, rozepnut nebo vykonn impuls. 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 kd vstup zvlṻ a~je natna z~tabulky konfigurace uloen v~databzi.

DataLab
par soubor
dll

Adam
dll

nastaveni konfigurace v~db

\section{Aplikace pro odchodov terminl}

\chapter{Webov management}

\section{Modelovn 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 rzch systm, mimo jin i webovch aplikac.

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. Vytvoren 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. 

\subsection{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.

Historie UML

\subsection{Diagramy UML}

V tto kapitole jsou strun popsny jednotliv typy nejpouvanjch diagram. Cel proces vvoje je rozdlen na st vnovanou analze a st zabvajc se nvrhem. 

\subsubsection{Analza}

Ve fzi analzy je kladen draz na funkn poadavky systmu. 

{\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 analzi, tak ve fzi nvrhu systmu. 

{\bf Konceptuln model}

Konceptuln model ilustruje koncepty dan problmov oblasti a je tm nejdleitjm modelem v analze. It emphasizes on domain concepts and not entities in software. It shows concepts, associations between the concepts and attributes of concepts [Larman98].

{\bf Systmov sekvenn diagramy}

A system sequence diagram is a picture that shows a specific scenario of a use case. It shows a particular course of events within a use case, the actors interaction with the system and the systems events generated by the actor.

{\bf Kontrakty}

Contracts help us to define a systems behaviour without explaining how it does it. A contract can be seen as a document which describes what an operation is obliged to achieve. It points out what rather than how it will be achieved [L98].

\subsubsection{Design}

During the design phase a logical solution is developed with the creation of interaction diagrams. Interaction diagrams illustrate sequences of messages that are exchanged among instances in the class model. The interaction diagrams are defined into two diagrams, which focus on different aspects, collaboration, and sequence diagrams [BJR99].

{\bf Diagramy spoluprce}

A collaboration diagrams focus is on objects and links that are important within an interaction. They are used to show an implementation of an operation.

{\bf Sekvenn diagramy}

Sequence diagrams show a set of messages and are arranged in time sequence. The difference from collaboration diagrams is that the relationships are implicit and in collaboration diagrams time sequences are less clear.

{\bf Diagramy td}

Class diagrams show details in a static structure. They are dependent upon the interaction diagrams where the classes are identified and the methods of classes and the conceptual model where you add details to classes.

A class diagram shows the specifications for software classes and interfaces [L98]. A class can be seen as a description of a concept. Class diagrams include classes, associations and attributes.

{\bf Stavov diagramy}

The statechart diagram shows the different events and states of objects. Events are significant occurrences and states are an objects condition at a specific moment. A statechart diagram shows an object life cycle, its events, transitions and the different states between the events.
Statechart diagrams are recommended to be used with external system events.

\subsection{WebML} 

Many companies that work with building web applications need to have design methods, languages and tools that cover all the aspects of a design process. In response to this need, the W3I3 project (funded by the European Community under the Fourth Framework Program) is focusing on Intelligent Information Infrastructure for data-intensive web applications [CFB00]. The W3I3 project is driven by requirements from two major web application developers, Otto-Versand from Germany and PTT from the Netherlands, has come up with a new modelling language for the web, WebML. WebML stands for Web Modelling Language; it is a notation for specifying complex web sites at the conceptual level. WebML is targeted to web sites that requires multiple platforms like PC and WAP and to web sites that work with personalised content for each user. WebML has a support for XML syntax, which means that you can use a software generator to automatically create the web application [CFB00].

To specify a web site WebML uses four models:

Structural model
Hypertext model
Presentation model
Personalisation model

Structural model

WebML structural model is compatible with classical notations like the E/R model and the UML class diagram. The structural model consists of entities and relationships. Entities have attributes with associated types like integer and string. The relationships show how the entities are associated with each other. Cardinality constraints for relationships and role names are also available in the structural model. An example of a structural model is shown in the result chapter [BCFM00].

Hypertext model

A hypertext model describes one or more hypertexts; a hypertext defines a site view, which consists of two sub models. They are called composition and navigation models. The composition model consists of a set of pages; each page has one or a set of content units, which make up the page. There are six types of data units:

Data units
Index units
Multi-data units
Filter units
Scroller units
Direct units [BCFM00]

Data units

Data units are used to present a set of attributes of a single object (for example information about a single CD) [CF01].



Index units

Index units are used to work as a list of objects. Only a few attributes are shown of each object (for example in a list of CD: s only the name of the CD is shown). The index unit is usually connected to a data unit where the details of the selected object are shown.



Multi-data units

Multi-data units show multiple objects at the same time, presenting several data units (for example all CD: s made by a specific artist).


Many companies that work with building web applications need to have design methods, languages and tools that cover all the aspects of a design process. 