[elvystrac] r1965 - architecture updated

  • From: elvys@xxxxxxxxxxxxxxxxxxxxxx
  • To: elvystrac@xxxxxxxxxxxxx
  • Date: Mon, 1 Mar 2010 04:20:18 +0100

Author: DavidK
Date: 2010-03-01 04:20:18 +0100 (Mon, 01 Mar 2010)
New Revision: 1965

Modified:
   others/dokumentace/technicalGuide/architecture/4webapp.tex
   others/dokumentace/technicalGuide/architecture/7communication.tex
   others/dokumentace/technicalGuide/architecture/9z10appendix.tex
Log:
architecture updated

Modified: others/dokumentace/technicalGuide/architecture/4webapp.tex
===================================================================
--- others/dokumentace/technicalGuide/architecture/4webapp.tex  2010-02-28 
23:44:52 UTC (rev 1964)
+++ others/dokumentace/technicalGuide/architecture/4webapp.tex  2010-03-01 
03:20:18 UTC (rev 1965)
@@ -9,7 +9,9 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%
                
 \section{Architektura webové části}
-Webová část řešení sestává ze 2 hlavních projektů, které obsahují, či 
využívají další části.\textit{Obrázek \ref{webapp_img_components}} ukazuje 
vztah projektů vyvíjených v rámci řešení Elvys.
+Webová část řešení sestává ze 2 hlavních modulů a jednoho modulu obsahujícího 
sdílený kód aplikační logiky, 
+modulu obsahujícího aplikaci pro návrh rozvržení a pomocných 
utilit.\textit{Obrázek \ref{webapp_img_components}} 
+zachycuje vztah těchto modulů.
 
  \begin{figure}
   \label{webapp_img_components}
@@ -18,81 +20,107 @@
   \end{center}
   \caption{Schéma projektů řešení Elvys}
 \end{figure} 
-     
-  \subsection{Projekt webServer2}\label{webapp_architecture_webServer2}
+      
+  
+  \subsection{Modul webServer2}\label{webapp_architecture_webServer2}
     WebServer2 je stěžejní částí webové strany řešení. Je to webová aplikace 
umožňující
     uživatelům provádět veškeré činnosti spojené s agendou plánování 
dokumentů, 
     správy společností, uživatelů, zobrazování reportů a všech dalších věcí, 
které by měl systém Elvys umět podle \textit{dokumentu analýzy}. \\
     Ke své práci využívá i 
-     
-  \subsubsection{rychlost}
-    Ukládání session\-state na serveru
         
          
-       \subsection{Projekt dispatcher}\label{webapp_architecture_dispatcher}
-        Tato aplikace umožňuje kioskům získávat od serveru informace o 
plánování.
-           \subsubsection{XML, XSD, HTTP, JAXB}
-      
-      Tělo většiny zpráv posílaných přes internet je tvořeno XML dokumentem 
nesoucím určitá data. 
-      Všechny komplexnější XML\footnote{Extensible Markup Language (XML), 
\url{http://www.w3.org/XML/}} dokumenty (např. jakýkoliv XXXConfig přenášený ze 
serveru na kiosek) mají
-      definován formát pomocí jazyka XML Schema\footnote{XML Schema language, 
\url{http://www.w3.org/XML/Schema}}
-      
-      \subparagraph{JAXB}
-      JAXB generuje \\
-      
-      Při změně XSD souboru je nutné znovu vygenerovat třídy pomocí ANT 
skriptu [DOPLNIT]
-   
-     \subsubsection{Technologie Java Servlet}
-        K vytváření bodů vzdáleně přístupných přes HTTP protokol je v systému 
Elvys použita technologie Java Servlet. Tato technologie 
-        umožňuje namapování java třídy implementující určité rozhraní na 
nějaké URL. Java třída poté na daném URL poslouchá a zpracovává HTTP 
požadavky.\\
-        Pomocí této technologie jsou vytvořeny všechny přístupové body do 
aplikace \textbf{dispatcher}.
+       \subsection{Modul dispatcher}\label{webapp_architecture_dispatcher}
+       Tento modul umožňuje kioskům a modulu LayoutDesigner komunikaci s 
webovou částí. 
+       
         
         
-       \subsection{Projekt 
elvysCommons}\label{webapp_architecture_elvysCommons}
+       \subsection{Modul elvysCommons}\label{webapp_architecture_elvysCommons}
         V tomto modulu se nachází sdílený kód a sdílené zdroje, které používá 
jak projekt webServer2, tak projekt dispatcher.
   
-  \subsection{Projekt 
LayoutDesigner}\label{webapp_architecture_LayoutDesigner}  
+  \subsection{Modul LayoutDesigner}\label{webapp_architecture_LayoutDesigner}  
    Jedná se o java applet, grafický editor, který je součástí webové
    aplikace (konkrétně tedy aplikace webServer2) a umožňuje uživateli 
navrhovat 
    rozvržení obrazovek pro kiosky. Podobněji se architekturou tohoto editoru 
zabývá \textit{kapitola \ref{LD} (str. \pageref{LD})}.
    Komunikaci mezi webovým serverem a editorem LayoutDesigner potom popisuje 
\textit{kapitola \ref{interface_web_and_LD} (str. 
\pageref{interface_web_and_LD})}.     
 
+   \subsection{Podpůrné utility}\label{4webapp_utilities}
+    Webové rozhaní systému Elvys využívá ke své činnosti také menší 
jednoúčelové utility vytvořené v rámci projektu.
+    V této sekci následují informace o těchto utilitách, způsob volání je 
popsán v \textit{kapitole \ref{interface_web_and_apps}}. 
+       \subsubsection{pageCounter}\label{4webapp_pageCounter}
+       Utilita sloužící pro rychlé počítání stránek PDF dokumentu. Napsána v 
jazyce C++/Qt, použita knihovna XpdfRasterizer a běží pouze v Linuxu.\\
+       Alternativou k tomuto nástroji je použití java knihovny iText. 
Použitelnost této knihovny je však omezena velikostí vstupního PDF souboru. 
Pokud 
+       se jeho velikost vyšplhá nad 50MB, knihovna iText začne spotřebovávat 
enormní množství paměti a výpočetního výkonu (na spočítání stránek v pdf souboru
+       velkém 150MB spotřebovala knihovna odhadem přes 500MB paměti). 
Implementace počítání stránek pomocí knihovny iText je v současné době využita,
+       avšak použije se pouze v případě selhání metody výpočtu pomocí utility 
\textbf{pageCounter} a to jenom pokud velikost vstupního pdf je menší než 
40MB.\\
+          
+       \subsubsection{videoMeter}\label{4webapp_videoMeter}
+       Utilita sloužící pro rychlé počítání délky video souborů. Knihovna pro 
svou práci používá knihovnu Phonon, stejně 
+       jako klientská aplikace. Je tedy zaručeno, že spočítáný údaj bude na 
server ui na klientovi stejný.
+       Tato verze utility funguje pouze v prostředí Linuxu, ačkoliv by 
vzhledem k použití multiplatformní knihovny neměl být 
+       větší problém ji upravit pro OS Windows.
+       
+       \subsubsection{textMeter}\label{4webapp_textMeter}
+       Utilita počítající potřebnou velikost fontu, aby se text mající daný 
font
+        vešel "na šířku" do určité pozice. Napsána v jazyce C++. Běží na 
Linuxu i na Windows.\\
+       Utilita \textit{textMeter} v současné době v projektu Elvys není 
použita, je připravena na možné budoucí využití při
+       plánování textu.
 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%
 %%  DB, ORM
 %%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Databázový model a databáze}  
+\section{Databáze, datový model, připojení k DB}       
+Webová část systému elvys používá ke své činnosti služby databázového stroje. 
Tato kapitola popisuje webovou část projektu
+Elvys po stránce dat.
 
   \subsection{Databáze}
-  Při diskuzi, který databázový stroj pro serverovou část řešení Elvys zvolit, 
rozhodovali se autoři mezi následujícími:
+  Při diskuzi, který databázový stroj pro serverovou část řešení Elvys zvolit, 
se autoři rozhodovali mezi následujícími:
     \begin{itemize}
-      \item textbf{Oracle Database 10g či 11g} \footnote{Oracle Database 11g, 
} TODO   
-      \item textbf{Microsoft SQL Server 2008}\footnote{Microsoft SQL Server 
2008, \url{http://www.microsoft.com/sqlserver/2008/}} TODO
-      \item textbf{PostgreSQL}\footnote{PostgreSQL, 
\url{http://www.postgresql.org/}} TODO
-      \item textbf{MySQL 5.1, community edition}\footnote{MySQL, 
\url{http://dev.mysql.com/doc/refman/5.1/en/}} TODO
+      \item textbf{Oracle Database 10g či 11g} \footnote{Oracle Database 11g, 
} Databáze Oracle v nejnovější verzi 11g je 
+      špičkou ve svém oboru po stánce výkonu, škálovatelnosti, správy i 
podpory. Zkušenosti autorů s tímto databázovým
+      systémem jsou nemalé, avšak žádný z nich nemá praktické zkušenosti s 
hlubší administrací. Hlavní překážkou použití této 
+      databáze pro projekt byla však licence, která je velmi nákladná a 
vzhledem k povaze projetku neakceptovatelná.   
+      \item textbf{Microsoft SQL Server 2008}\footnote{Microsoft SQL Server 
2008, \url{http://www.microsoft.com/sqlserver/2008/}} 
+      Databáze \textit{Microsoft SQL Server 2008} má velmi podobné klady i 
zápory jako databáze \textit{Oracle 11g} a i 
+      v případě této databáze se autoři rozhodli ji nevyužít. Hlavním důvodem 
byla příliš vysoká cena licence.
+      \item textbf{PostgreSQL}\footnote{PostgreSQL, 
\url{http://www.postgresql.org/}} 
+      PostgreSQL je jednou z nejpoužívanějších open-source databází na světě. 
Její výkon i škálovatelnost je na výtečné úrovni,
+      stejnětak nástroje pro správu. Databáze \textbf{PostgreSQL} se tak stala 
zařadila mezi kandidáty na zvolení. 
+      \item textbf{MySQL 5.1, community edition}\footnote{MySQL, 
\url{http://dev.mysql.com/doc/refman/5.1/en/}} 
+      Databáze MySQL verze 5.1 je co do výkonu a škálovatelnosti jednou z 
nejleších open-source databází dneška. V její prospěch
+      také hrálo to, že s ní měli autoři projektu velké zkušenosti, jak po   
     \end{itemize}
-  Jako databázový stroj byl pro serverovou část řešení Elvys zvolen MySQL 
server a to z důvodu, že s ním mají autoři bohaté
-  zkušenosti, je relativně výkonná a spolehlivá. Pro vývoj je tato databáze 
plně postačující a díky použití Hibernate ORM nástroje 
-  (viz. dále) je možné s relativně malým úsilím přejít na jinou databázovou 
technologii v případě potřeby.
+  Po zvážení všech pro a proti se autoři rozhodli zvolit jako databázový stroj 
\textbf{MySQL 5.1}. Hlavně z důvodu kladných 
+  zkušeností a ceně licence(je zadarmo). Autoři si navíc neuzavřeli cestu ke 
změně databázového stroje v případě potřeby. Díky použití Hibernate ORM 
nástroje  
+  (viz. dále) je možné s relativně malým úsilím přejít na používání jiného 
databázového stroje.
 
 
-  \subsection{Popis datového modelu}
-    Detailní datový model je k nalezení v \textit{příloze 
\ref{appendix_DB_model} (str. \pageref{appendix_DB_model})}.
-    Následuje seznam tabulek s vysvětlením jejich smyslu.
-  \begin{description}
-     \item \textbf{TODO}
-  \end{description}
+  \subsection{Datový model aplikace}
+    Databázové tabulky, jejich sloupečky i vztahy mezi tabulkami byly od 
začátku projektu navrhovány pomocí grafického 
+    nástroje \textit{Power designer 12}. Jakákoliv změna databáze v průběhu 
projektu se řídila podle MDA\footnote{Model 
+    Driven Architecture - způsob vývoje SW, kdy modelu hraje důležitou roli ve 
vývoji SW a z něj se odvozují další části systému},
+    tedy vždy došlo k zanesení požadované změny do datového modelu a na 
základě tohoto modelu byl získán sql skript, z nějž bylo
+    ve výsledku odvozeno Hibernate mapování a upraveny hlavní entity systému. 
(více viz \textit{kapitola \ref{hibernate_get_class}}).  
+    
+    Detailní datový model spolu s popisem jednotlivých tabulek je k nalezení v 
\textit{příloze \ref{appendix_DB_model}}. 
+    Na přiloženém disku je potom v adresáři [TODO PATH] umístěn vygenerovaný 
diagram tříd popisující hlavní entity 
+    systému odvozené na základě datového modelu. 
   
-  
   \subsection{Popis 'ORM' frameworku Hibernate}\label{hibernate_popis}
+        Hibernate je knihovna zajišťující objektově-relační mapování mezi 
třídami jazyka Java a tabulkami různými relačními 
+   databázemi. Každému řádku tabulky v databázi potom odpovídá instance třídy 
v jazyce Java a naopak (platí pro entity 
+   spadající do mapování). Toto mapování je popsáno v XML mapovacích souborech.
+   
+   Proces získání tříd jazyka Java odpovídajících tabulkám v databázi je 
popsáno v \textit{kapitole \ref{hibernate_get_class}}. 
        
-       
        \subsection{Konfigurace hibernate}
+       [TODO dopsat]
        Konfigurace hibernate se provádí v hibernate
+       Více o konfiguraci v \textit{sekci \ref{configuration_hibernate}}.
           \subsubsection{C3P0 connection pool}
        
-       \subsection{Získání hibernate tříd}
+       
+       \subsection{Získání hibernate tříd z databáze } 
\label{hibernate_get_class}
         \begin{itemize}
            \item vygenerování .hbm.xml mapování z DB modelu
            \item ruční úprava(přidání dědičnosti, doplnění vlastního kódu)
@@ -115,6 +143,20 @@
     =popsat tady postup 
        
   \subsection{Používání Hibernate Session v kódu}
+  tady nějakým způsobem obhájit, proč používám volání tak jak používám
+  
+  popsat, jak se chova hibernate v tom modu, co pouzivam- tedy vazani session 
na thread
+  
+  obrazky
+  
+  Bean zavola komplexni metodu -smazX()- ta rekurzivne zavola mazani 
obsazenych typu- smazY() a smazZ(), pak smaze X. Otazka je
+   jak se maji chovat metody smazY() a smazZ() 
+  
+  
+  
+  zanorene komitovani, nezanorene komitovan
+  
+  2 aktivity diagramy
        
 
   \subsection{Archivace starých dat na serveru}
@@ -131,82 +173,116 @@
     \end{itemize}  
 
 
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%
-%%  libraries
+%%  MODUL ELVYSCOMMONS
 %%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Použité JAR knihovny}
-Tato sekce obsahuje seznam knihoven (JAR souborů), které jsou použity pro 
vytvoření řešení Elvys.\\
-  \subsection{JAR knihovny sdílené knihovny elvysCommons }
-    projekt elvysCommons používá pouze knihovny pro 
-  \subsection{JAR knihovny aplikace webServer2}
-    \begin{description}
-       \item[DB]
-        \begin{itemize}
-           \item \textbf{c3pO}
-        \end{itemize}
-    
-    \end{description}
-  \subsection{JAR knihovny aplikace dispatcher}
+\section{Modul elvysCommons}
+
+  \subsection{Balíčky v projektu}
   
+  \subsection{Testování aplikační logiky}
   
-  \subsection{JAR knihovny aplikace LayoutDesigner}
-    
- 
+  \subsection{Použité knihovny}
+  
 %%%%%%%%%%%%%%%%%%%%%%%%%%
-%%  packages
+%%  MODUL DISPATCHER
 %%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Rozdělení do balíčků a složek}
-   \subsection{Rozdělení do projektů, sdílená aplikační logika}
-          Odkaz na sekci, kde je popsáno, jak tu aplikacni logiku mame vlastne 
oddelenou...\\
-          Build je prováděn pomocí ANT-skriptů, které jsou popsány v 
\ref{build_ant}\\
-   \subsection{Balíčky v projektech}
-    Nezrušit tuhle sekci a nedat balicky do 4.1 do odpovidajicich podsekci?
+\section{Modul dispatcher}
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%  Security
-%%%%%%%%%%%%%%%%%%%%%%%%%%             
-\section{WebServer2 - bezpečnost}
-       Nemá tohle být v kapitole 7.5?
-       \subsection{Autentizace uživatelů}
-       
-       
-       \subsection{Automatická expirace session}
-       
-       
-       \subsection{Ukládání session na serveru}
-          \subsubsection{WebServer2} - ten SSL zatim nema
-          \subsubsection{Dispatcher} - tenhle taky ne
-       \subsection{Podpora SSL}
-  \subsection{Popis komunikace serveru}
-       \subsubsection{webServer2}
-          FF, IE8, nutnost JRE pro applet
-       \subsubsection{webAPI??}
-          viz. dale
-       \subsubsection{dispatcher}
-          komunikace mezi kiosky a serverem
+  \subsubsection{XML, XSD, HTTP, JAXB}
+    
+    Tělo většiny zpráv posílaných přes internet je tvořeno XML dokumentem 
nesoucím určitá data. 
+    Všechny komplexnější XML\footnote{Extensible Markup Language (XML), 
\url{http://www.w3.org/XML/}} dokumenty (např. jakýkoliv XXXConfig přenášený ze 
serveru na kiosek) mají
+    definován formát pomocí jazyka XML Schema\footnote{XML Schema language, 
\url{http://www.w3.org/XML/Schema}}
+    
+    \subparagraph{JAXB}
+    JAXB generuje \\
+    
+    Při změně XSD souboru je nutné znovu vygenerovat třídy pomocí ANT skriptu 
[DOPLNIT]
+  
+  \subsubsection{Technologie Java Servlet}
+      K vytváření bodů vzdáleně přístupných přes HTTP protokol je v systému 
Elvys použita technologie Java Servlet. Tato technologie 
+      umožňuje namapování java třídy implementující určité rozhraní na nějaké 
URL. Java třída poté na daném URL poslouchá a zpracovává HTTP požadavky.\\
+      Pomocí této technologie jsou vytvořeny všechny přístupové body do 
aplikace \textbf{dispatcher}.
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%  GUI
-%%%%%%%%%%%%%%%%%%%%%%%%%%     
-\section{WebServer2 - GUI}
-   \subsection{JSF}
-   \subsection{Richfaces}
-        \subsection{Vlastní zobrazovací komponenty}
-   \subsection{Lokalizace}
-   Aplikace webServer2 podporuje lokalizaci popisků na webu do mnoha jazyků. 
Tato lokalizace může být užitečná, pokud se systémem pracují lidé mluvící jinou 
řečí.
-   Každý uživatel (ať už o tom ví, či ne), má ve svém internetovém prohlížeči 
nastaven světový jazyk, pomocí kterého se prohlížeč identifikuje webovému 
serveru.
-   Server tak může nabídnout anglické popisky člověku, který má v prohlížeči 
nastaven anglický jazyk komunikace a na druhé straně české popisky člověku, 
který má nastaveno české prostředí prohlížeče.
+
+  \subsection{}
+  \subsection{Zabezpečení, podpora SSL}
+    S modulem dispatcher je možno komunikovat pomocí zabezpečeného HTTPS 
spojení. Tento mód je však vyhraze pouze pro 
+    komunikaci s modulem LayoutDesigner. 
+    
+    Na druhé straně, komunikace kiosků s webovým serverem je zabezpečena jiným 
způsobem. Kiosky a webový server spolu 
+    komunikují pře zabezpečenou virtuální privátní síť (VPN). Více informací 
je k nalezení v kapitole \ref{}[TODO ref]  
    
-   Modul webServer2 podporuje vícejazyčnou komunikaci založenou na výše 
zmíněném principu, nicméně lokalizace webové aplikace byla zatím napsána jenom 
pro český jazyk.
-   Použití se zatím předpokládá v česky hovořícím prostředí, v případě 
požadavku je možné lokalizaci pro jiný jazyk vytvořit.
-   
-   \subsubsection{Lokalizace popisků}
-   Lokalizované popisky jsou umístěny v souboru {\em labels\_xx.properties}, 
kde {\it xx} značí zkratku jazyka, kterým se identifikuje webový prohlížeč 
serveru (cs pro češtinu, en pro angličtinu,..).
-   Systém potom vyhledá požadovaný soubor labels\_xx.properties a použije ho 
pro vypisování popisek.
-   \subsubsection{Lokalizace chybových hlášek}
-   Systém je velice podobný, ... TODO   
 
+
+  \subsection{Balíčky v projektu}
+  
+  Více informací o rozdělení do balíčků je k nalezení v přiložené 
programátorské dokumentaci.
+  
+  \subsection{Použité knihovny}
+    Modul dispatcher používá navíc JAXB
+      
+  
 %%%%%%%%%%%%%%%%%%%%%%%%%%
+%%  MODUL WEBSERVER2
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Modul webServer2}
+      
+    \subsection{GUI}
+       \subsubsection{JSF}
+       \subsubsection{Richfaces}
+        \subsubsection{Vlastní zobrazovací komponenty}
+       \subsubsection{Lokalizace}
+       Aplikace webServer2 podporuje lokalizaci popisků na webu do mnoha 
jazyků. Tato lokalizace může být užitečná, pokud se systémem pracují lidé 
mluvící jinou řečí.
+       Každý uživatel (ať už o tom ví, či ne), má ve svém internetovém 
prohlížeči nastaven světový jazyk, pomocí kterého se prohlížeč identifikuje 
webovému serveru.
+       Server tak může nabídnout anglické popisky člověku, který má v 
prohlížeči nastaven anglický jazyk komunikace a na druhé straně české popisky 
člověku, který má nastaveno české prostředí prohlížeče.
+       
+       Modul webServer2 podporuje vícejazyčnou komunikaci založenou na výše 
zmíněném principu, nicméně lokalizace webové aplikace byla zatím napsána jenom 
pro český jazyk.
+       Použití se zatím předpokládá v česky hovořícím prostředí, v případě 
požadavku je možné lokalizaci pro jiný jazyk vytvořit.
+       
+       \paragraph{Lokalizace popisků}
+       Lokalizované popisky jsou umístěny v souboru {\em 
labels\_xx.properties}, kde {\it xx} značí zkratku jazyka, kterým se 
identifikuje webový prohlížeč serveru (cs pro češtinu, en pro angličtinu,..).
+       Systém potom vyhledá požadovaný soubor labels\_xx.properties a použije 
ho pro vypisování popisek.
+       \paragraph{Lokalizace chybových hlášek}
+       Systém je velice podobný, ... TODO   
+       
+       \subsubsection{Stylování, skinovatelnost}
+        napsat tady informace o moznostech skinovani
+        -css, xcss, skin.properties, upravene .jar soubory (jestli tohle bude 
pravda, tak to urcite take zminit v sekci o knihovnach
+
+    
+
+    \subsection{Upload dokumentů - povolené typy}
+    Vzhledem k naimplementování
+
+    \subsection{Bezpečnost projektu webServer2}
+    
+      \subsection{Ukládání session na serveru}
+     
+       \subsection{Podpora SSL}
+        \subsubsection{WebServer2} - ten SSL zatim nema
+    
+    \subsubsection{Autentizace uživatelů}
+            Uživatelé systému jsou autentizováni pro práci v systému na 
základě úspěšného přihlášení.
+            
+            TODO - doplnit, jak se bude heslo zasílat emailem.
+            Hesla uživatelů jsou uložena v databázi a proti nežádoucímu 
přečtení jsou zabezpečena pomocí
+         metody používající MD5 šifrování v  
+  
+  
+    \subsection{Automatická expirace session}
+  
+    \subsection{Balíčky v projektu}
+      Více informací o rozdělení do balíčků je k nalezení v přiložené 
programátorské dokumentaci.
+  
+    \subsection{Použité knihovny}
+    Tato sekce obsahuje seznam knihoven (JAR souborů), které jsou použity v 
modulu webServer2.\\
+     
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%  Statistiky
 %%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{WebServer2 - Statistiky}
@@ -325,78 +401,190 @@
    umístěna v projektu ElvysCommons, tudíž ji lze převzít a vytvořit nástroj 
pro hromadné nahrávání souborů na server. 
   Více info o této myšlence \textit{viz. kapitola 
\ref{communication_future_FTP} (str. \pageref{communication_future_FTP})}
 
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%  Popis komponent ?????
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Popis komponent}
+  \subsection{Komponenta seznamu souborů}
+  
+  \subsection{Komponenta seznamu kategorií}
+  
+  \subsection{Komponenta náhledu rozvržení obrazovky}
 
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%
 %%  Novy typ souboru
 %%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{Rozšiřitelnost systému o nový typ souboru}
   
   \subsection{Nový záznam v DB}
+   Související sekce databáze je znázorněna na \textit{obrázku 
\ref{img.deployment_plug}}
+   do tabulky dat elvys.server.bl.file.FileStorageManagerVideo napriklad
+   potomek elvys.server.bl.file.FileStorageManager
   \subsection{Nová třída pro správu nového typu souboru}
+  
     \subsubsection{metoda}
     \subsubsection{metoda}
 
+  \subsection{Definice lokalizačního popisku pro nový typ souboru}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%
-%%  Plugovatelnost typů
+%%  Typy plánování a jejich rozšiřitelnost, Plugovatelnost typů
 %%%%%%%%%%%%%%%%%%%%%%%%%%     
-\section{Rozšiřitelnost systému o nový typ plánovaných dat}
-POZNÁMKA - tato kapitola se bude přepisovat, nobsahuje aktuální informace
 
+\section{Typy plánování}
+Systém elvys umožňuje plánovat....... nejenom souborové plánování, ale také 
plánování bez souborů
+V současné době systém podporuje následující typy plánování (uvedeny jména, 
které figurují v databázi a v logice systému):
+\begin{itemize}
+   \item \textbf{document}              pdf dokument
+   \item \textbf{url} webová stránka
+   \item \textbf{static}  statický text
+   \item \textbf{dynamic} dynamický text  
+   \item \textbf{video}   
+      avi, mov, mpeg, mpg, wmv, flv
+   \item \textbf{presentation} prezentace
+\end{itemize}   
+   
+   
+    Při práci s plánovací komponentou uživatel zvolí, která pozice obrazovky 
ho zajímá a v jakém čase a systém uživateli nabídne modální okno,
+        ve kterém bude probíhat konkrétní plánování. 
+   
 
-pred touto kapitolou urcite popsat: planovaci komponenta
+\section{Rozšiřitelnost systému o nový typ plánovaných dat}
 
-        Jelikož bude systém umožňovat plánovat na obrazovku kiosku různé typy 
dat, je kladen důraz na navržení systému tak, aby
-         mohla být podpora pro další typ zobrazovaných dat (např. videa) 
jednoduchou cestou doprogramována.  
-        \subsection{Nový typ plánovaných dat v databázi}
+        Jelikož bude systém umožňovat plánovat na obrazovku kiosku různé typy 
dat, je systém navržen tak, aby
+         mohla být podpora pro další typ zobrazovaných dat (např. videa, 
prezentací, atd.) relativně jednoduchou cestou doprogramována.
+   Stále je ovšem zapotřebí znát webový framework JSF, komponenty Richfaces. 
+   \subsection{Nový typ plánovaných dat v databázi}
+     Nejprve je potřeba vytvořit podporu pro nový typ plánování v databázi
+     Související sekce databáze je znázorněna na \textit{obrázku 
\ref{img.deployment_plug}}
+       \begin{figure}
+          \begin{center} 
+          \includegraphics[width=0.95\textwidth]{imgs/dbschema_plug}
+          \end{center}
+          \caption{Část datového modelu související s typem souborů v systému 
a typem plánovaných dat}
+          \label{img.deployment_plug}
+       \end{figure}
+     
+     
+      
           Úprava databáze je shrnuta v následujících krocích:
      \begin{itemize}
-        \item{} \textbf{content\_type}
-           Přidání nového typu do tabulky \textit{content\_type}.
-        \item{nový potomek frame\_content}
-          Je také potřeba vytvořit tabulku, která bude uchovávat data 
plánování specifická pro nový typ.
-           Tabulka bude 'potomkem' (důvod popsán v kapitole věnované ORM 
frameworku Hibernate - \ref{hibernate}).
-        \item{přidání nového typu společnostem - comp\_permitted\_type}
-          - toto je buď možno udělat ručně, nebo z UC
+        \item \textbf{Nová tabulka obsahující data plánování}
+          První úpravou databáze je vytvoření tabulky, která bude uchovávat 
data plánování specifická pro nový typ.
+          Tuto tabulku je vhodné nazvat <jméno\_typu>\_content a musí být 
potomkem tabulky \textit{frame\_content} respektive
+          tabulky \textit{file\_frame\_content} (to pokud bude instance 
plánování obsahovat nějaký soubor). Být \uv{potomkem} v tomto
+          případě znamená, že dané tabulky jsou svázány stejným id řádku. Tuto 
vlastnost dále využívá v aplikaci ORM knihovna Hibernate (viz. dále).
+        \item \textbf{type\_plug}
+         uprava teto tabulky
+        \item \textbf{content\_type}
+           Přidání záznamu o novém typu plánování do tabulky 
\textit{content\_type}.
+            \begin{description}
+               \item[type] obsahuje textový řetězec reprezentující typ 
plánování. 
+              Pro existující typy plánování je tedy například: \textit{pdf} 
pro pdf dokument, 
+              \textit{static} pro statický text, \textit{dynamic} pro 
dynamický text,...
+              \item[plug] fsaf
+              \item[file\_type] fsda
+            \end{description}
      \end{itemize}
    
-   \subsection{Nový typ dat k uploadu}
-      tohle zpusobuje problemy, nemuze byt asi reseno automaticky
-      Kdyz se pridavalo video, tak muselo byt:
-      \begin{itemize}
-        \item{NEAUTOMATIZOVATELNE-nové tabulky v DB}vytvoren novy typ 
dokumentu v databazi (tabulka Video, VideoContent). Tabulka Video 'podedena' od 
tabulky File, tudiz ma definovane zakladni atributy
-        \item{NEAUTOMATIZOVATELNE-načítání dat z tabulky video v UC, které to 
vyžadují} (zobrazení plánování na plánovací komponentě, generování XML zprávy 
pro JH). Tohle načítání je snad řešeno jenom na jednom místě (PlanningBl asi)
-         - elvys.server.bl.planning.PlanningBLImpl: getTimelinesGeneric   
takhle načítá video a soubory
-           - načítá jednak v projektu webServer2 pro plánování
-           - také v projektu dispatcher pro posílání dat kiosku
-        \item{AUTOMATIZOVATELNE-nahrávání souborů nového typu na server} - 
pokud nemá společnost povoleno plánování daného typu dokumentu, tak např. ani 
nemůže na server nahrávat soubory, které s tímto typem dat souvisí 
(.avi,.mpg,..)
-        \item{mozna AUTOMATIZOVATELNE-vybírání souborů daného typu na serveru} 
- planovani, statistiky, reporty,...
+   \subsection{Nový typ plánovaní a Hibernate}
+      Nově přidaný typ plánování je taky nutné přidat do konfigurace 
objektového mapování mezi aplikací a databází.
+      V předchozí sekci bylo zmíněno, že mezi tabulkou obsahující data nového 
typu plánování a mezi tabulkou \textit{frame\_content}
+      je vztah podobný dědičnosti. Tento vztah ovšem není definován v 
databázi, ale v hibernate mapování. Konkrétně je potřeba upravit soubor
       
-      \end{itemize}  
+     .......   
+      \subsubsection{Vygenerování mapování podle DB}
+   
+      \subsubsection{Začlenění mapování nového typu do hierarchie dědičnosti 
frame\_content}
+      
+      
+     Soubor \textit{frame\_content.hbm.xml} je k nalezení v \textit{příloze 
\ref{appendix.framecontent.hbm.xml}}.
      
-     
-   \subsection{Nový typ dat při plánováni rozvržení obrazovky}
-     V aplikaci LayoutDesigner není potřeba nic měnit, možnost vytváření 
pozic, na kterých bude povoleno plánování 
-     nového typu je dáno pouze informací v datovém modelu webové aplikace 
(comp\_permitted\_type)
+     Více informací o použití hibernate ORM knihovny lze nalézt v sekci 
\ref{webapp_hibernate}.
+  
+  
+  
+   \subsection{Nový typ plánování v LayoutDesigneru}
+     V appletu \textit{LayoutDesigner} není potřeba nic měnit, typy plánování 
+     jsou získávány z databáze webového serveru (tabulka 
\textit{comp\_permitted\_type})
    
-   \subsection{Nový typ dat v plánovací komponentě}
-         
-        
-         Základními typy plánování, které bude možno provádět budou: 
\textit{statický text}, \textit{dynamický text}, \textit{pdf dokument}, 
\textit{webová stránka}.
-        
-        Při práci s plánovací komponentou uživatel zvolí, která pozice 
obrazovky ho zajímá a v jakém čase a systém uživateli nabídne modální okno,
-        ve kterém bude probíhat konkrétní plánování. 
+   
+   \subsection{Nový typ plánování při plánování}
+     Aby mohly být data nového typu plánování zadávány, musí být vytvořen 
formulář, který tyto data bude obsahovat,
+     JSF Bean třída použitá pro sběr dat zadaných na formuláři a vlastní 
implementace třídy, provádějící validace
+     zadaných hodnot plánování.
+         \subsubsection \textbf{Bean třída}
+           Aby mohly být data formuláře Vytvoření a registrace JSF bean třídy 
pro práci se specifickými daty plánování
+          např.: PlanningModalVideoBean.java
+          dědí od: 
\textit{cz.elvys.webServer.beans.planningrel.plug.PlanningModalSpecBean}
+          musí implementovat:
+            \begin{itemize}
+            \item{getFormData()}
+             \item{initPlanningModalSpecBean(String formName, ContentType 
type)}
+                ContentType představuje obsah formuláře plánování - obecný 
předek pro každý typ
+             \item{initPlanningModalSpecBean(String formName, FrameContent 
frc)}
+             \item{validate()}
+            \end{itemize}
+           
+          Registrace se provádí úpravou souboru po vzoru bean-tříd ostatních 
typů v následujícím souboru: 
+           \textit{webServer2/WebContent/WEB-INF/faces-beans-planplug.xml}
+           \begin{verbatim}
+            <managed-bean>
+               <managed-bean-name>planningModalUrlBean</managed-bean-name>
+               
<managed-bean-class>cz.elvys.webServer.beans.planningrel.plug.PlanningModalVideoBean</managed-bean-class>
+               <managed-bean-scope>session</managed-bean-scope>
+            </managed-bean>
+          \end{verbatim}
+           Omezení:  managed-bean-name musí být ve formátu: 
planningModal<Type>Bean, kde <Type> je jméno typu plánovaných dat,
+           které má velké první písmeno - tedy např. 
planningModalDocumentBean, planningModalVideoBean, ..
+                
+          \subsubsection{Formulář pro modální okno plánování}
+          Modální okno plánování je okno, které se uživateli ukáže jako reakce 
na zvolení určité pozice na plánovacím okně.
+         Více popsat v plánování
+                \begin{verbatim}
+                /secured/plug/planningModalDocument.xhtml
+              \end{verbatim}
+          
+          \subsubsection{Formulář pro druhou úroveň okna plánování}
+          Druhou úrovní okna plánování je zde myšleno další okno, které se 
ukáže uživateli jako reakce na
+          akci provedenou v modálním okně plánování. Může to být například 
seznam souborů, který systém
+          uživateli nabídne jako reakci na stisktnutí tlačítka \uv{Zvolit 
soubor} umístěného na modálním okně plánování. 
+                \begin{verbatim}
+                /secured/plug/planningModalDocumentInnerModal.xhtml
+              \end{verbatim}
+       
+   \subsection{Nový typ plánování v tooltipu plánovací komponenty}
+      \begin{verbatim}
+        /secured/plug/planningModalDocumentTooltip.xhtml
+      \end{verbatim}  
+  
+   \subsection{Vytvoření třídy obsahující logiku specifickou pro daný typ}
+          cz.elvys.webServer.toSpring.planning.api.PlanningModalBL
+   
+   \subsection{Registrace vytvořených souborů} 
+   Soubory vytvořené výše je potřeba zaregistrovat, aby je aplikace mohla 
použít.
+   
+   
+   
+   
+   
+   
+   
+   \subsection{Dispatcher - úprava XSD, vygenerování nových tříd pro JAXB}
+  
+   \subsection{Dispatcher - úprava generování documentConfig}
+      generovani mam natvrdo v kodu, presunout do type-spec-BL
+      
     
+   \subsection{Definice lokalizačního popisku pro nový typ} 
     
-         Peklo je krok 2 - tam se musi zobrazit spravne gui a zvolit spravna 
aplikacni logika na zaklade volby jednoho stringu v kroku1.
-         Postup pridani videa:
-        \begin{itemize}
-          \item{Registrace jména nového typu v databázi}     
-     \item{Vytvoření view prvku pro modální okno}
-          \item{Vytvoření obsahu 2. modálního okna}
-     \item{Vytvoření třídy obsahující logiku specifickou pro daný typ}
-          *BLImpl
+   \subsection{starsi info- vyuzit ci smazat}
+        
           
+    
+     
+        \begin{itemize}  
           \item{Registrace view částí a třídy s logikou}
           Pro zaregistrování částí systému souvisejících s nově přidaným typem 
je potřeba upravit konfigurační soubor:\\
           \textit{cz.elvys.webServer.utils.plug.}\textbf{plugins.properties}
@@ -408,29 +596,7 @@
        
planning.business.logic.video=cz.elvys.webServer.toSpring.planning.impl.PlanningModalVideoBLImpl\\
           view.path.video=/secured/plug/planningModalVideo.xhtml\\
        
view.path.video.innermodal=/secured/plug/planningModalVideoInnerModal.xhtml
-          \item{Vytvoření a registrace backing beany pro práci se specifickými 
daty plánování}
-          např.: PlanningModalVideoBean.java
-          dědí od: 
\textit{cz.elvys.webServer.beans.planningrel.plug.PlanningModalSpecBean}
-          musí implementovat:
-            \begin{itemize}
-        \item{getFormData()}
-             \item{initPlanningModalSpecBean(String formName, ContentType 
type)}
-                ContentType představuje obsah formuláře plánování - obecný 
předek pro každý typ
-             \item{initPlanningModalSpecBean(String formName, FrameContent 
frc)}
-             \item{validate()}
-            \end{itemize}
-         
-           Registrace se provádí úpravou souboru po vzoru bean-tříd ostatních 
typů v následujícím souboru: 
-           \textit{webServer2/WebContent/WEB-INF/faces-beans-planplug.xml}
-           \begin{verbatim}
-        <managed-bean>
-           <managed-bean-name>planningModalUrlBean</managed-bean-name>
-           
<managed-bean-class>cz.elvys.webServer.beans.planningrel.plug.PlanningModalUrlBean</managed-bean-class>
-           <managed-bean-scope>session</managed-bean-scope>
-        </managed-bean>
-      \end{verbatim}
-           Omezení:  managed-bean-name musí být ve formátu: 
planningModal<Type>Bean, kde <Type> je jméno typu plánovaných dat,
-           které má velké první písmeno - tedy např. 
planningModalDocumentBean, planningModalVideoBean, ..
+          
            
            \item{tooltipy na planovaci komponente}
               -tooltip je potreba taky upravit
@@ -446,9 +612,16 @@
         
 
 
-     
-%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%  spatne zkusenosti
-%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Špatné zkušenosti z vývoje}
-  \subsubsection{varchar foreign key}
+    \subsection{Nový typ dat k uploadu}
+      tohle zpusobuje problemy, nemuze byt asi reseno automaticky
+      Kdyz se pridavalo video, tak muselo byt:
+      \begin{itemize}
+        \item{NEAUTOMATIZOVATELNE-nové tabulky v DB}vytvoren novy typ 
dokumentu v databazi (tabulka Video, VideoContent). Tabulka Video 'podedena' od 
tabulky File, tudiz ma definovane zakladni atributy
+        \item{NEAUTOMATIZOVATELNE-načítání dat z tabulky video v UC, které to 
vyžadují} (zobrazení plánování na plánovací komponentě, generování XML zprávy 
pro JH). Tohle načítání je snad řešeno jenom na jednom místě (PlanningBl asi)
+         - elvys.server.bl.planning.PlanningBLImpl: getTimelinesGeneric   
takhle načítá video a soubory
+           - načítá jednak v projektu webServer2 pro plánování
+           - také v projektu dispatcher pro posílání dat kiosku
+        \item{AUTOMATIZOVATELNE-nahrávání souborů nového typu na server} - 
pokud nemá společnost povoleno plánování daného typu dokumentu, tak např. ani 
nemůže na server nahrávat soubory, které s tímto typem dat souvisí 
(.avi,.mpg,..)
+        \item{mozna AUTOMATIZOVATELNE-vybírání souborů daného typu na serveru} 
- planovani, statistiky, reporty,...
+      
+      \end{itemize}  

Modified: others/dokumentace/technicalGuide/architecture/7communication.tex
===================================================================
--- others/dokumentace/technicalGuide/architecture/7communication.tex   
2010-02-28 23:44:52 UTC (rev 1964)
+++ others/dokumentace/technicalGuide/architecture/7communication.tex   
2010-03-01 03:20:18 UTC (rev 1965)
@@ -220,30 +220,105 @@
 
   
 \section{Rozhraní mezi webovou aplikací a pomocnými 
aplikacemi}\label{interface_web_and_apps}
- \subsection{pageCounter}
- \subsection{textMeter}
- \subsection{videoMeter}                                              
+Obecné informace o těchto utilitách je možné získat v \textit{kapitole 
\ref{4webapp_utilities}}.
+  \begin{description}
+     \item[] \textbf{pageCounter}
+     
+        \begin{description}             
+           \item[volání] pageCounter $<$path$>$ 
+              \begin{itemize}
+                \item \textbf{path}: cesta k dokumentu 
+              \end{itemize}        
+           \item[]  \textbf{odpověď}
+                  \begin{itemize}
+                    \item kladné číslo znamená počet stránek, pokud bylo 
počítání stránek úspěšné 
+                    \item cokoliv jiného než kladné číslo - chyba zpracování
+                  \end{itemize}
+            \item[]  \textbf{příklad}
+\begin{verbatim}
+  vstup:
+    pdfCounter /home/elvys/11.pdf
+  výstup:
+    62
+\end{verbatim} 
+        \end{description}
+        
+        
+     \item[] \textbf{videoMeter}
+                  
+        \begin{description}             
+           \item[volání] videoMeter $<$path$>$ 
+              \begin{itemize}
+                \item \textbf{path}: cesta k dokumentu 
+              \end{itemize}
+           \item[]  \textbf{odpověď}
+                  \begin{itemize}
+                    \item kladné číslo znamená délku videa v milisekundách, 
pokud bylo počítání délky úspěšné 
+                    \item cokoliv jiného než kladné číslo - chyba zpracování
+                  \end{itemize}
+            \item[] \textbf{příklad}
+\begin{verbatim}
+  vstup:
+    videoMeter /home/elvys/85.avi
+  výstup:
+    132535
+\end{verbatim} 
+        \end{description} 
+      
+         
+         
+              
+     \item[] \textbf{textMeter}
+               
+        \begin{description}             
+           \item[volání] textMeter $<$font-name$>$ $<$position-width$>$ 
$<$position-height$>$ $<$aspect-ratio$>$ $<$text$>$
+                \begin{itemize}
+                    \item \textbf{font-name}: Nazev fontu 
+                    \item \textbf{position-width}: šířka pozice
+                    \item \textbf{position-height}: výška pozice
+                    \item \textbf{aspect-ratio}: aspect-ratio layoutu
+                    \item \textbf{text}: text, pro který má výpočet proběhnout
+                  \end{itemize}      
+           \item[] \textbf{odpověď}
+                  \begin{itemize}
+                    \item kladné číslo: určuje maximální velikost fontu v 
procentech, pro kterou se text mající tento font vejde do pozice.
+                    \item cokoliv jiného: chyba  
+                  \end{itemize}
+           \item[] \textbf{příklad}
+\begin{verbatim}
+  vstup:
+    textMeter Arial 0.8 0.1 1.77778 "TEST HHHHH AAAAA TEST"
+  výstup:
+    62
+\end{verbatim} 
+        \end{description}
+  \end{description}
+  
+  
+  
+                                
 \section{Rozhraní pro ovládání webové aplikace webServer2}\label{interface_web}
- \subsection{SSL?}
+ \subsection{SSL}
+  S modulem webServer2 je možné komunikovat buď přes nezabezpečený HTTP 
protokol, nebo přes zabezpečený HTTPS protokol.
 \section{Rozhraní pro práci s informačními kiosky}\label{interface_kiosk}
  popsána v \textit{kapitole \ref{client_interface} (str. 
\pageref{client_interface})}
 \section{Rozhraní v budoucnosti}\label{interface_kiosk}
 Vzhledem k tomu, že aplikační logika serverové části řešení Elvys je 
znovupoužitelná 
 (obsažena v projektu \textbf{elvysCommons}, který je vložen do projektů 
\textbf{dispatcher} a \textbf{webServer2}),
-je na snadě 
+je na snadě rozšíření systému Elvys o nové funkčnosti.
 Více informací o projektu \textbf{elvysCommons} je možno získat v 
\textit{kapitole \ref{webapp_architecture_elvysCommons} (str. 
\pageref{webapp_architecture_elvysCommons})}
 
-\subsection{WS-API}
-Možnost do budoucnosti, která se přímo nabízí je vytvoření aplikačního 
rozhraní pro přístup k částem aplikace pomocí
-Web Services (zkráceně WS-API). Toto API by mohlo být použito pro spolupráci 
systému Elvys s jinými systémy. 
-Takovýmito systémy by mohly být například internetové stránky městských úřadů 
obsahující zveřejněné dokumenty. Takováto spolupráce
-by mohla jistě umožnit i jednoduché automatické plánování dokumentů. 
-
-Realizace tohoto rozhraní by byla jistě časově náročnou operací a nebyla 
zamýšlena jako součást základní implementace řešení Elvys.
-   
-\subsection{FTP nahrávání dokumentů} \label{communication_future_FTP}
-Další možností, kde lze využít znovupoužitelnou aplikační logiku je nahrávání 
dokumentů pomocí FTP serveru. Tyto soubory by
-na straně serveru mohla automaticky zpracovávat obslužná aplikace. Tím by se 
urychlilo a zpříjemnilo nahrávání většího množství
-dokumentů na server.
-
-Ani toto zlepšení nebylo plánováno do základní verze řešení Elvys.
\ No newline at end of file
+  \subsection{WS-API}
+  Možnost do budoucnosti, která se přímo nabízí je vytvoření aplikačního 
rozhraní pro přístup k částem aplikace pomocí
+  Web Services (zkráceně WS-API). Toto API by mohlo být použito pro spolupráci 
systému ELVYS s jinými systémy. 
+  Takovýmito systémy by mohly být například internetové stránky městských 
úřadů obsahující zveřejněné dokumenty. Takováto spolupráce
+  by mohla jistě umožnit i jednoduché automatické plánování dokumentů. 
+  
+  Realizace tohoto rozhraní by byla jistě časově náročnou operací a nebyla 
zamýšlena jako součást základní implementace řešení ELVYS.
+     
+  \subsection{FTP nahrávání dokumentů} \label{communication_future_FTP}
+  Další možností, kde lze využít znovupoužitelnou aplikační logiku je 
nahrávání dokumentů pomocí FTP serveru. Tyto soubory by
+  na straně serveru mohla automaticky zpracovávat obslužná aplikace. Tím by se 
urychlilo a zpříjemnilo nahrávání většího množství
+  dokumentů na server.
+  
+  Ani toto zlepšení nebylo plánováno do základní verze řešení ELVYS.
\ No newline at end of file

Modified: others/dokumentace/technicalGuide/architecture/9z10appendix.tex
===================================================================
--- others/dokumentace/technicalGuide/architecture/9z10appendix.tex     
2010-02-28 23:44:52 UTC (rev 1964)
+++ others/dokumentace/technicalGuide/architecture/9z10appendix.tex     
2010-03-01 03:20:18 UTC (rev 1965)
@@ -1,9 +1,54 @@
 \appendix
 
 \chapter{Databázový model}\label{appendix_DB_model}
+[TATO PRILOHA PUJDE NA OBOUSTRANNOU A3]
   \begin{center} 
   \includegraphics[width=1\textwidth]{imgs/dbschema.png}
   \end{center}
+  \begin{itemize}
+      \item \textbf{aspect\_ratio}
+      \item \textbf{category}
+      \item \textbf{category\_definition}
+      \item \textbf{category\_planning}
+      \item \textbf{comp\_permitted\_type}
+      \item \textbf{comp\_setting}
+      \item \textbf{company}
+      \item \textbf{content\_type}
+      \item \textbf{db\_info}
+      \item \textbf{document}
+      \item \textbf{document\_content}
+      \item \textbf{dynamic\_content}
+      \item \textbf{elvys}
+      \item \textbf{elvys\_group}
+      \item \textbf{elvys\_setting}
+      \item \textbf{file}
+      \item \textbf{file\_frame\_content}
+      \item \textbf{file\_type}
+      \item \textbf{frame\_content}
+      \item \textbf{label}
+      \item \textbf{label\_ref}
+      \item \textbf{layout}
+      \item \textbf{layout\_position}
+      \item \textbf{panel}
+      \item \textbf{pdf\_pres\_content}
+      \item \textbf{permitted\_scheduling}
+      \item \textbf{resolution}
+      \item \textbf{role}
+      \item \textbf{statistics}
+      \item \textbf{text\_content}
+      \item \textbf{timeline}
+      \item \textbf{type\_plug}
+      \item \textbf{url\_content}
+      \item \textbf{user}
+      \item \textbf{video}
+      \item \textbf{video\_content}
+  \end{itemize}
+ 
+ 
+      
+
+  
+  
 \chapter{XSD pro komunikaci \label{xsd}}
   \section{appConfig.xsd}\label{appendix_appConfig}
   \lstinputlisting[caption=Ukázka souboru 
appConfig.xml]{../../../../others/xsd/version2/appConfig.xsd}


Other related posts:

  • » [elvystrac] r1965 - architecture updated - elvys