[elvystrac] r1939 - architecture extended

  • From: elvys@xxxxxxxxxxxxxxxxxxxxxx
  • To: elvystrac@xxxxxxxxxxxxx
  • Date: Sun, 28 Feb 2010 13:09:30 +0100

Author: JirkaH
Date: 2010-02-28 13:09:30 +0100 (Sun, 28 Feb 2010)
New Revision: 1939

Added:
   others/dokumentace/technicalGuide/architecture/imgs/kiosk_munin.png
Modified:
   others/dokumentace/technicalGuide/architecture/0architecture.tex
   others/dokumentace/technicalGuide/architecture/2hardware.tex
   others/dokumentace/technicalGuide/architecture/3management.tex
   others/dokumentace/technicalGuide/architecture/6clientapp.tex
   others/dokumentace/technicalGuide/architecture/9tools.tex
Log:
architecture extended


Modified: others/dokumentace/technicalGuide/architecture/0architecture.tex
===================================================================
--- others/dokumentace/technicalGuide/architecture/0architecture.tex    
2010-02-28 12:08:05 UTC (rev 1938)
+++ others/dokumentace/technicalGuide/architecture/0architecture.tex    
2010-02-28 12:09:30 UTC (rev 1939)
@@ -27,7 +27,7 @@
 %\renewcommand{\chaptermark}[1]{markboth{#1}{}}
 %\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
 \fancyhf{} %delete the current section for header and footer
-
+      
 \fancyhead[LE,RO]{\bfseries\thepage}
 \fancyhead[LO]{\bfseries\rightmark}
 \fancyhead[RE]{\bfseries\leftmark}

Modified: others/dokumentace/technicalGuide/architecture/2hardware.tex
===================================================================
--- others/dokumentace/technicalGuide/architecture/2hardware.tex        
2010-02-28 12:08:05 UTC (rev 1938)
+++ others/dokumentace/technicalGuide/architecture/2hardware.tex        
2010-02-28 12:09:30 UTC (rev 1939)
@@ -11,8 +11,15 @@
   \item \textbf{Cena} - jeden z nejdůležitějších faktorů. Na trhu existuje 
několik průmyslových PC splňující požadavky, jejich cena je však ve srovnaní s 
jinými řešeními až 5x vyšší.
 \end{itemize}
 
-Z důvodu poměrně úzkého prostoru v kiosku pro počítač byl jako formát skříně 
zvolena racková skřín velikosti 1U s minimální hloubkou (TODO foto). To 
umožňuje jednoduchý přístup k celému PC a 
+Z důvodu poměrně úzkého prostoru v kiosku pro počítač byl jako formát skříně 
zvolena skřín velikosti 1U s minimální hloubkou (Obrázek \ref{kiosk_case}). To 
umožňuje jednoduchý přístup k celému PC a 
 jeho rychlou případnou výměnu za jiný kus. 
+ \begin{figure}[!h]
+ \label{kiosk_dbschema}
+  \begin{center} 
+    \includegraphics[width=0.5\textwidth]{imgs/kiosk_case.png}
+    \caption{Počítačová skříň EMKO EM-161}
+ \end{center}
+ \end{figure}
 
 Vzhledem k výše uvedeným požadavkům se jako ideální formát základní desky 
ukázal formát Mini-ITX (rozměry 17x17cm). Tyto základní desky již umí nabídnout 
dostatečně výkonné integrované
 grafické karty s podporou akcelerace HDTV videa a s digitálnímy grafickými 
výstupy (i dvěma). Jistým problémem těchto základních desek je jejich 
dostupnost na trhu, zvláště v České 
@@ -24,22 +31,27 @@
 \ref{cfengine}. V případě nutnosti lze však stále použít klasický pevný disk.
 
 Hlavně kvůli ceně bylo nakonec upuštěno od procesoru VIA, který je jinak 
ideálním procesorem pro toto použití. Místo něj byl použit klasický procesor 
Intel Celeron, který
-v nečinosti není tepelně náročný. 
+v nečinosti není tepelně náročný. To umožňuje v budoucnu použít i např. 
procesory Core 2 Duo (mají stejnou patici), kdyby se ukázalo, že výkon 
zvoleného procesoru nestačí. Otázkou by pak 
+ale bylo chlazení tohoto procesoru.
 
 Dalším důležitým aspektem je také možnost ovládání ventilátorů. Zabrání se tak 
zbytečnému víření prachu v celé skříni. V zimním období jsou ventilátory 
dokonce kontraproduktivní, protože
-víří ledový vzduch a počítač i obrazovku až příliš ochlazují. Z testů 
prototypu v mrazech -20$^\circ$ C byl rozdíl teploty uvnitř skříně mezi 
zapnutými a vypnutými větráky cca 10$^\circ$ C.
+víří ledový vzduch a počítač i obrazovku až příliš ochlazují. Z testů 
prototypu v mrazech -20$^\circ$C byl rozdíl teploty uvnitř skříně mezi 
zapnutými a vypnutými větráky cca 10$^\circ$ C 
+(-5$^\circ$C respektive +5$^\circ$C). Bohužel se ukázalo, že zvolená základní 
deska v Linuxu nepodporuje ovládání ventilátorů pomocí utility 
\verb!lm_sensors!. Připojené ventilátory jsou
+tedy ovládány jen pomocí BIOSu.
 
 Nakonec byla použita následující sestava:
 
 \begin{itemize}
-\item \textbf{Základní deska}
-\item \textbf{Procesor}
-\item \textbf{Paměť}
-\item \textbf{Pevný disk}
-\item \textbf{Zdroj}
+\item \textbf{Základní deska} - Intel Fly Creek DG45FC, chipset Intel G45, 
miniITX
+\item \textbf{Grafická karta} - integrovaná Intel GMA X4500HD
+\item \textbf{Procesor} -  Intel Celeron 430 1,8GHz 800MHz
+\item \textbf{Paměť}  - 1GB RAM DDR2 800MHz
+\item \textbf{Pevný disk} - USB Flash 4GB
+\item \textbf{Zdroj} - Fortron FLEX 180W, 1U
+\item \textbf{Skříň} - EMKO 1U EM-161
 \end{itemize}
 
-Sestava byla také vybrána z důvodu možného rozšíření kiosku na 2 obrazovky. K 
tomu ale zatím ještě nedošlo.\\
+Sestava byla také vybrána z důvodu možného rozšíření kiosku na 2 obrazovky 
pomocí digitálních výstupů. K tomu ale zatím ještě nedošlo.\\
 
 Vývoj počítačů a hardwarů jde samožřejmě velmi rychle kupředu. Proto je téměř 
jisté, že se v další generaci kiosků hardware změní, nejspíše ve prospěch 
platformy Intel Atom s čipsetem
  nVidia ION.

Modified: others/dokumentace/technicalGuide/architecture/3management.tex
===================================================================
--- others/dokumentace/technicalGuide/architecture/3management.tex      
2010-02-28 12:08:05 UTC (rev 1938)
+++ others/dokumentace/technicalGuide/architecture/3management.tex      
2010-02-28 12:09:30 UTC (rev 1939)
@@ -1,4 +1,4 @@
-\chapter{NEsoftware}
+\chapter{Správa a monitorování}
 
 \section{Správa}\label{management}
 Jak vyplývá z požadavků uvedených v \textit{Analýze}, je správa potenciálně 
velkého množství kiosků velmi důležitým aspektem projektu. Bylo nutné vybrat
@@ -19,7 +19,7 @@
   \item \textbf{Cfengine} - je léty ověřený de-facto standard na poli nástrojů 
pro správu konfigurací serverů. Oproti Quattoru se jendá o jednodušší řešení. 
Jedntolivé konfigurace jsou
                            ukládány v textových souborech, nevyžaduje na 
klientech (krom samotného klienta Cfenginu). Nevýhodou může být chybějící 
podpora
                            různých oprávnění uživatelů, V rámci projektu 
\cite{lcg} je používán v největším vědeckém výpočetním 
-                         centru v České republice ve Fyzikálním ústavu 
Akademie Věd\cite{TODO}. Více informací je k dispozici na \cite{cfengine}.
+                         centru v České republice ve Fyzikálním ústavu 
Akademie Věd. Více informací je k dispozici na \cite{cfengine}.
   \item \textbf{Puppet} - je svým zaměřením podobný nástroju Cfengine. Jeho 
výhodou je vyšší míra abstrakce popisovaných nastavení - lze např. říci 
``přidej uživatele Alice'' a není nutno
                          definovat, že je nutné jej zapsat do souboru 
/etc/passwd apod. Více informací je k dispozici na \cite{puppet}.
 \end{itemize}
@@ -54,20 +54,31 @@
                          podpora tvorba grafů monitorovacích metrik v reálnem 
čase.
                          Dále je možné vytvořit poměrně kompletní scénáře 
monitorování služeb, kdy jde např. opravdu ověřit, že se na dané adrese 
zobrazuje daná stránka a lze se například
                          přihlásit do systému.
-                         Nevýhodou je pak nepříliš velká uživatelská 
přívětivost jinak velmi komplexního webového rozhraní. Dále, dle zkušeností s 
pilotním provozem v rámci tohoto projektu,
-                         také poměrně velké výpočetní nároky na server v 
poměru na počet monitorovaných metrik.
+                         Nevýhodou je pak nepříliš velká uživatelská 
přívětivost jinak velmi komplexního webového rozhraní.
   \item \textbf{Cacti} - nástroj určen především k SNMP monitorování síťových 
zařízení, lze však použít i k monitorování serverů. Cacti využívá jako 
skladiště dat databázi RRD, z čehož těží při
                          kreslení grafů jednotlivých metrik. Problémem jsou 
však malé možnosti konfigurace (např. změna monitorovacího intervalu) a špatná 
podpora systému varování při
                          překročení nastavených prahů.
   \item \textbf{Nagios} - jedná se o známé standardní monitorovací řešení s 
dlouhou historií. Naprosto odpovídá všem požadavkům, navíc existuje velké 
množství rozšíření, které ještě vylepšují
-                         jeho funkčnost. Nagios také v základní instalaci 
nekreslí grafy jednotlivých metrik - existuje však celá řada nástaveb, které 
tento problém řeší.
+                         jeho funkčnost. Nagios v základní instalaci nekreslí 
grafy jednotlivých metrik - existuje však celá řada nástaveb, které tento 
problém řeší.
 \end{itemize}
 
-Nejenom vzhledem ke zkušenostem autorů se systémem Nagios, se stal finálním 
řešením pro monitoring. V rámci projektu bylo nasazeno i monitorování pomocí 
Zabbixu, v praxi se však ukázalo jako
-ménně použitelné.
+V rámci projektu bylo nasazeno řešení využívající Zabbix. Ukázalo se, že až na 
neintuitivní uživatelské rozhraní a velké množství monitorovaných služeb v 
základní instalaci je toto
+řešení funkční a použitelné.\\
 
-TODO : popsat jeste nejak co vse se pres nagios kontroluje
+ \begin{figure}[!h]
+ \label{kiosk_dbschema}
+  \begin{center} 
+    \includegraphics[width=0.5\textwidth]{imgs/kiosk_munin.png}
+    \caption{Teplota uvnitř reálného kiosku. Kiosek byl na začátku února 
vypnut.}
+ \end{center}
+ \end{figure}
 
+
+V rámci první fáze projektu bylo nasazeno také monitorování pomocí programu 
Munin \cite{munin}. Jedná se o nástavbu nad utilitou RRDTool, která umožňuje 
velmi jednoduché psaní dalších
+pluginů. Nástroj primárně neslouží k upozorňování na chyby, spíše ke 
grafickému zobrazení měřených metrik. 
+Takto jsou měřeny například reálné teploty uvnitř kiosků. Nevýhodou Muninu je 
nemožnost rozložení zátěže na více serverů - v praxi je možné z 
+jednoho serveru kontrolovat 200-300 stojů. Poté již bude nutné přepsat vlastní 
měření pomocí Zabbixu.
+
 \section{\label{security}Bezpečnost}
 
 Dalším požadavkem na projekt byla bezpečnost komunikace mezi kioskem a 
serverem/ Také vzhledem k požadavku možnosti přímého připojení na daný uzel, 
který 

Modified: others/dokumentace/technicalGuide/architecture/6clientapp.tex
===================================================================
--- others/dokumentace/technicalGuide/architecture/6clientapp.tex       
2010-02-28 12:08:05 UTC (rev 1938)
+++ others/dokumentace/technicalGuide/architecture/6clientapp.tex       
2010-02-28 12:09:30 UTC (rev 1939)
@@ -12,16 +12,18 @@
 OpenGL atd.), perfektní dokumentaci, počtu projektů postavených nad tímto 
frameworkem a možnosti placené podpory. V neposlední řadě je plusem také 
komerční vývoj tohoto produktu.
 
 \section{Podporované formáty}
-  Klientská aplikace podporuje zobrazování následujících typů dat, jednotlivým 
bodlm se pak věnují příslušné podkapitoly.
+  Klientská aplikace podporuje zobrazování následujících typů dat, jednotlivým 
bodům se pak věnují příslušné podkapitoly. 
   \begin{itemize}
     \item \textbf{PDF dokumenty}
+    \item \textbf{PDF prezentace}
     \item \textbf{Video}
     \item \textbf{Statický text}
     \item \textbf{Dynamický text}
   \end{itemize}
 
-  Součástí zadaní a analýzy projektu bylo i zobrazování webových stránek. 
Jejich implementace se bohužel s časových důvodů nestihla. Byla ale alespoň 
rozmyšleno, jakým způsobem a jakou
-  knihovnou bude zobrazování webových stránek implementováno, o čemž pojednává 
kapitola \ref{kiosk_web}.
+  Součástí zadaní a analýzy projektu bylo i zobrazování webových stránek. 
Jejich zobrazovaní však byla věnována nejmenší priorita. I přestože se 
implementace bohužel z časových důvodů
+ nestihla, byla ale alespoň rozmyšleno, jakým způsobem a jakou knihovnou bude 
zobrazování webových stránek implementováno. O důvodech, proč bylo zobrazování 
webových stránek odsunuto pojednává
+sekce \ref{kiosk_web}
   
   \subsection{PDF dokumenty \label{pdf_doc}}
   \subsubsection{Volba knihovny}
@@ -96,7 +98,15 @@
      \subsubsection{Volba knihovny}
      Jedním z požadavkům na knihovnu byla podpora co největšího počtu formátů 
videí. Vzhledem k použítí frameworku Qt byla volba knihovny pro tuto práci 
vcelku jednoduchá. Součástí frameworku je knihovna Phonon, která
      je určena právě pro přehrávání multimedií. Ta naprosto splňuje dané 
požadavky, navíc je také multiplatformní. Na linuxových systémech využívá 
knihovnu \verb!gstreamer! \cite{gstreamer} (s licencí LGPL) a 
-     její pluginy. Po instalaci vhodných balíků tak lze přehrávat vpodstatě 
všechny formáty videí (v nastavení závislostí programu jsou tyto knihovny 
TODO\ref{TODO_ref}).
+     její pluginy. Po instalaci vhodných balíků tak lze přehrávat vpodstatě 
všechny formáty videí. V nastavení závislostí balíčku jsou tyto podporující 
knihovny:
+      \begin{verbatim} gstreamer0.10-ffmpeg
+ gstreamer0.10-pitfdll
+ gstreamer0.10-plugins-base
+ gstreamer0.10-plugins-good
+ gstreamer0.10-plugins-ugly
+ gstreamer0.10-x
+ libgstreamer-plugins-base0.10-0
+ w32codecs\end{verbatim}
 
     Veškeré ovládání přehrávače je vzhledem k jeho vícevláknosti asynchronní. 
To na jednu stranu umožňuje zvýšit výkon a odezvu výsledné aplikace, na druhou 
stranu vyžaduje více pozornosti při implementaci.
     
@@ -116,16 +126,33 @@
     \ref{appendix_documentConfig}).
     To lze využít pro zobrazení daného snímku v náhledu, když se  video 
nepřehrává. Dále lze nastavit maximální velikost zvětšeného přehrávače podobně 
jako u PDF dokumentů pomocí hlavičkového souboru.
 
-  \subsection{Webové stránky}
-    Ačkoliv funkcionalita zobrazování webových stránek nebyla 
naimplementována, uvádíme alespoň popis budoucího řešení.
-    \subsubsection{Online/Offline zobrazování}
+  \subsection{Webové stránky\label{kiosk_web}}
+    Ačkoliv funkcionalita zobrazování webových stránek nebyla 
naimplementována, uvádíme alespoň popis budoucího řešení. Důvody minimální 
priority podpory tohoto formáty byly následující.
+    \begin{itemize}
+      \item \textbf{Ovládání} - kiosek neobsahuje dotykovou obrazovku, jen 10 
tlačítek. Navigovat se po stránce bez možnosti použít myš není příliš 
uživatelsky přívětivé.
+      \item \textbf{Připojení k internetu} - předpokládá se, že kiosky nebudou 
připojeny ke stabilnímu přípojení k internetu. Vzhledem k požadavku na 
fungování i bez dočasného připojení
+                                     by bylo nutné periodicky stránky ukládat 
na disk, což může být při použití USB flash disku představovat problém, viz 
detailnější rozbor problému níže.
+    \end{itemize}
 
     \subsubsection{Volba knihovny}
-    Vzhledem k použití frameworku Qt byla volba knihovny poměrně jednoznačná. 
Použita byla knihovna QtWebkit založena na knihovně \cite{webkit}, která je 
mimo jiné základem prohlížeče Chrome či
-    Konqueror a umožňuje zobrazování webových stránek včetně javascriptu a 
technologie flash.    
+    Vzhledem k použití frameworku Qt byla volba knihovny poměrně jednoznačná. 
Použita byla knihovna QtWebKit založena na knihovně WebKit\cite{webkit}, která 
je mimo jiné základem prohlížeče Chrome či
+    Konqueror a umožňuje zobrazování webových stránek včetně javascriptu a 
technologie Flash. Knihovna umožňuje renderování obsahu stránky do obrázku, 
dále pak klasické interaktivní
+    zobrazování.
+
+    \subsubsection{Online/Offline zobrazování}
+    Zobrazování všech typů dokumentů je navrženo tak, aby fungovalo i při 
výpadku internetu. V případě webových stránek to znamená periodické stahování 
stránek a jejich ukládání na disk. 
+    V případě, že je internet dostupný, muhou být stránky zobrazeny přímo ze 
zdroje, v opačném případě pak stránku načíst z disku. V žádném případě by 
nemělo dojít k zobrazení chyby
+    nedostupnosti dané stránky. To se může stát jen pokud od naplánovaní dané 
stránky stránka opravdu nebyla dostupná. I tak ale bude zobrazeno vlastní 
upozornění, místo např. chyby 404.
+    
     \subsubsection{Zobrazení v náhledech a zvětšování}
+    Vzhledem k tomu, že na kiosku nebude možné následovat odkazy na stránkách, 
mohly by být stránky zobrazeny jako obrázky. Toho se bude využívat v náhledech, 
kdy bude stránka typicky
+    omezena šířkou pozice. V náhledu tedy bude zobrazen obrázek stránky, kde 
půjde vidět celá stránka na šířku, na délku však typicky nebude zobrazena celá. 
Po zvětšení se zobrazování 
+    přepne do interaktivního režimu (pokud bude dostupné připojení k 
internetu), kde se již objeví vertikální posuvních a stránka bude zobrazena v 
interaktivním režimu, tj. budou 
+    se například přehrávat reklamy apod.
 
-    \subsubsection{Možnosti nastavení \label{video_settings}}
+    \subsubsection{Možnosti nastavení}
+    Půjde nastavit jak často se má vyrenderovaná stránka ukládat na disk 
(např. každou hodinu), a jak často se má obnovovat (např. každých 5minut).
+
   
 \section{Konfigurační soubory\label{kiosk_conf_files}}
    Klientská aplikace obsahuje několik konfiguračních souborů ve formátu XML 
(formáty dat všech souborů jsou ve formě XSD popsány v \ref{xsd}). Jednotlivé 
soubory jsou detailněji vysvětleny níže. Kromě jedné části 
@@ -137,7 +164,7 @@
    \subsection{appConfig} 
    Jde o konfigurační soubor aplikace, ve kterém je uvedeno ID kiosku a adresy 
a periody pro stažení dalších konfiguračních souborů. Je zřejmé, že pro 
správnou funkci aplikace musí být alespoň část
     udájů staticky uložena (jinak by program nevěděl, kde má poptávat další 
konfiguraci). Proto je tento soubor částečně duplikován. Soubor 
\verb!appconfig.xml.static! může obsahovat všechny
-    informace povolené v appConfigu, musí však minimálně obsahovat informaci o 
ID kiosku a adrese pro stažení kompletního AppConfigu. Do souboru 
\verb!appconfig.xml! se pak ukládá kompletní
+    informace povolené v \verb!appConfigu!, musí však minimálně obsahovat 
informaci o ID kiosku a adrese pro stažení kompletního \verb!appConfigu!. Do 
souboru \verb!appconfig.xml! se pak ukládá kompletní
     stažená konfigurace.
    \subsection{categoryConfig}
       Tento soubor obsahuje informace o počtu, názvu kategorií, jejím pořadí a 
definovaném počtu a rozložení pozic. Stahování probíhá do souboru 
\verb!category.xml!.
@@ -159,7 +186,7 @@
                \item zvětšení dokumentu a jeho zmenšení na původní rozměr 
(\verb!detail!)              
                \end{itemize}
 
-             Tyto události jsou zaznamenávány jen pro typy dokumentů \verb!PDF 
dokument!,  \verb!video! a \ref{TODO_warning}: další dokumenty.
+             Tyto události jsou zaznamenávány jen pro typy dokumentů \verb!PDF 
dokument!,  \verb!PDF prezentace! a \verb!video!.
                
        \subsubsection{Uchovávání statistik}
                Z požadavků na robustnost uchovávání statistik na kiosku 
vyplynul požadavek statistiky nejprve
@@ -239,6 +266,7 @@
   \subsection{Stahování souborů}
   Stahování souborů probíhá do zvolené adresáře definovém v 
\textit{appconfigu}. Stahování probíhá nejdříve do dočasného souboru, který je 
po korektním stažení přejmenován. Ke stahování
   souboru může dojít dvěma způsoby. Dopředným stahováním a stahováním na výzvu 
při žádosti o zobrazení dokumentu, který není ještě stažen.
+  Při načítání souborů je kontrolován jejich kontrolní součet pomocí algoritmu 
MD5. Pokud je součet jiný, než tvrdí server, soubor je stažen znovu.
 
   \subsubsection{Dopředné stahování}
   Aplikace si dle nastavení v \textit{fileCacheConfigu} stáhne seznam všech 
souborů, které bude potřebovat zobrazit v následujících 24 hodinách. Tyto 
soubory pak postupně stahuje (respektive

Modified: others/dokumentace/technicalGuide/architecture/9tools.tex
===================================================================
--- others/dokumentace/technicalGuide/architecture/9tools.tex   2010-02-28 
12:08:05 UTC (rev 1938)
+++ others/dokumentace/technicalGuide/architecture/9tools.tex   2010-02-28 
12:09:30 UTC (rev 1939)
@@ -33,6 +33,7 @@
   \bibitem{puppet} \textbf{Puppet, configuration management tool} 
\url{http://reductivelabs.com/products/puppet/}
   \bibitem{cfengine} \textbf{Cfengine, configuration management tool} 
\url{http://www.cfengine.org/}
   \bibitem{quattor} \textbf{Quattor, configuration management tool} 
\url{http://sourceforge.net/apps/mediawiki/quattor/}
+  \bibitem{munin} \textbf{Munin} \url{http://munin.projects.linpro.no/}        
        
   \bibitem{openvpn} \textbf{OpenVPN} \url{http://openvpn.net/}
   \bibitem{xpdf} \textbf{Xpdf} \url{http://www.foolabs.com/xpdf/}
   \bibitem{poppler} \textbf{Poppler} \url{http://poppler.freedesktop.org/}

Added: others/dokumentace/technicalGuide/architecture/imgs/kiosk_munin.png
===================================================================
(Binary files differ)


Property changes on: 
others/dokumentace/technicalGuide/architecture/imgs/kiosk_munin.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream


Other related posts:

  • » [elvystrac] r1939 - architecture extended - elvys