[elvystrac] r1689 - documentation updated

  • From: elvys@xxxxxxxxxxxxxxxxxxxxxx
  • To: elvystrac@xxxxxxxxxxxxx
  • Date: Tue, 9 Feb 2010 18:01:28 +0100

Author: DavidK
Date: 2010-02-09 18:01:28 +0100 (Tue, 09 Feb 2010)
New Revision: 1689

Modified:
   others/dokumentace/technicalGuide/architecture/
   others/dokumentace/technicalGuide/architecture/0architecture.tex
   others/dokumentace/technicalGuide/architecture/4webapp.tex
   others/dokumentace/technicalGuide/architecture/7communication.tex
Log:
documentation updated


Property changes on: others/dokumentace/technicalGuide/architecture
___________________________________________________________________
Added: svn:ignore
   + out


Modified: others/dokumentace/technicalGuide/architecture/0architecture.tex
===================================================================
--- others/dokumentace/technicalGuide/architecture/0architecture.tex    
2010-02-09 10:31:54 UTC (rev 1688)
+++ others/dokumentace/technicalGuide/architecture/0architecture.tex    
2010-02-09 17:01:28 UTC (rev 1689)
@@ -31,6 +31,7 @@
 %\usepackage[left=2cm]{geometry}
 
 %\usepackage[bookmarks=true]{hyperref}
+\usepackage{url}
 
 \begin{document}
 

Modified: others/dokumentace/technicalGuide/architecture/4webapp.tex
===================================================================
--- others/dokumentace/technicalGuide/architecture/4webapp.tex  2010-02-09 
10:31:54 UTC (rev 1688)
+++ others/dokumentace/technicalGuide/architecture/4webapp.tex  2010-02-09 
17:01:28 UTC (rev 1689)
@@ -19,7 +19,7 @@
   \caption{Schéma projektů řešení ELVYS}
 \end{figure} 
      
-  \subsection{webServer2}
+  \subsection{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}. \\
@@ -29,10 +29,23 @@
     Ukládání session\-state na serveru
         
          
-       \subsection{dispatcher}
+       \subsection{dispatcher}\label{webapp_architecture_dispatcher}
         Tato aplikace umožňuje kioskům získávat od serveru informace o 
plánování.
+           \subsection{XML, XSD, HTTP, JAXB}
+      [DO KAP.4 mozna]
+      
+      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}}
+   
+   \subsection{Technologie Java Servlet}
+      [DO KAP.4 mozna]
+      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{elvysCommons}
+        
+       \subsection{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{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 

Modified: others/dokumentace/technicalGuide/architecture/7communication.tex
===================================================================
--- others/dokumentace/technicalGuide/architecture/7communication.tex   
2010-02-09 10:31:54 UTC (rev 1688)
+++ others/dokumentace/technicalGuide/architecture/7communication.tex   
2010-02-09 17:01:28 UTC (rev 1689)
@@ -13,33 +13,100 @@
 \end{description}
 
 \section{Technologie použité pro komunikaci přes síť}
-   \subsection{Komunikační protokol a způsob komunikace}
+   
+   \subsection{Volba komunikačního protokolu a způsobu komunikace}
     Při návrhu komunikace mezi kiosky a webovou aplikací stáli autoři před 
rozhodnutím, 
     jaký komunikační middleware či protokol použít. Zvažovali několik aspektů 
komunikace:
     \begin{itemize}
-      \item{Jednoduchý scénář komunikace}   
-      \item{Server Java, klient c++} Vzhledem k tomu, že server je napsán v 
jiném programovacím jazyce, než
-      klient, musí být komunikace platformě nezávislá.
-      \item{messaging} 
-      \item{Web Services}
-         \footnote{http://www.w3.org/2002/ws/}
+      \item \textbf{Jednoduchý scénář komunikace} Požadavkem je vytvoření 
jednoduché komunikační infrastruktury. Předpokládá
+      se podpora jenom několika málo různých typů předávaných informací, 
nejlépe ve formě zpráv.
+      Podpora transakčního zpracování komunikace není potřebná.  
+      \item \textbf{Server Java, klient c++} Vzhledem k tomu, že server je 
napsán v jiném programovacím jazyce, než
+      klient a tyto komunikační uzly můžou být provozovány na různých 
systémech, musí být komunikace nezávislá na jazyce i na platformě.
+      \item \textbf{Skryté rozhraní komunikace} Navrhované komunikační 
rozhraní bude skryté uvnitř systému ELVYS- nebude tedy 
+      přístupné pro uživatele systému. Není tedy ani nutné toto rozhraní 
standardizovat.
+      \item \textbf{Snadná, rozšiřitelná implementace} 
+      V neposlední řadě musí být komunikace rychle naimplementována a 
rozšíření komunikačního rozhraní nesmí být příliš pracné.         
     \end{itemize}
-    Z důvodu jednoduchého schématu 
-    Kandidátem číslo jedna měly být Web Services. WebServices jsou ale pro 
tento styl komunikace  
-   \subsection{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), 
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, 
http://www.w3.org/XML/Schema}
-
+    Zvažovány byly tyto protokoly a middleware:
+    \begin{itemize}
+      \item \textbf{CORBA} \footnote{Common Object Request Broker Architecture 
(CORBA), \url{http://www.omg.org/technology/documents/corba_spec_catalog.htm}}\\
+        Middleware CORBA poskytuje platformní nezávislost, robustnost řešení, 
spolehlivost a má spoustu dalších
+        výhod. Jeho způsob komunikace (vzdálené volání procedur) ovšem není 
vzhledem k požadavkům uvedeným výše příliš vhodný a 
+        jeho použití pro tak jednoduchou komunikaci je příliš složité a 
robustní.
+      \item \textbf{Message-oriented middleware} \\
+        Použití middlewaru pracujícího na principu přenosu zpráv (např. 
ActiveMQ\footnote{ActiveMQ, \url{http://activemq.apache.org/}}) by bylo pro 
systém ELVYS vhodnější,
+        bohužel složitost realizace takového řešení by byla příliš složitá. 
+      \item \textbf{Proprietární řešení pomocí TCP/UDP}\\                      
 
+        Implementace vlastního komunikačního protokolu postaveného na TCP/UDP 
zcela neodpovídá požadavkům kladeným na 
+        komunikační infrastrukturu.
+      \item \textbf{Web Services} \footnote{Web Services (WS), 
\url{http://www.w3.org/2002/ws/}}\\
+        Použití webových služeb je takřka ideální volbou pro implementaci 
požadované komunikaci 
+        (jak z hlediska shody s požadavkami, tak z hlediska zkušeností autorů 
s touto technologií). 
+        Pro pohodlnou práci s webovými službami (svázání kódu aplikace s 
WSDL\footnote{wsdl} popisným souborem,
+         zpracování SOAP\footnote{SOAP} protokolu) je zapotřebí používat na 
straně serveru i klienta speciální knihovny.
+        Implementace webových služeb nemusí být založena na protokolu 
SOAP(který 
+        používá pro svou práci nejčastěji HTTP protokolu), lze využít i 
zjednodušenou variantu 
+        využívající k přenosu přímo HTTP protokol (tato varianta se často 
nazývá Web Services over HTTP; WSDL popis zůstává). 
+      \item \textbf{REST services}\footnote{Representational State Transfer 
(REST), 
\url{http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm}}
+        TODO 
+           
+      \item \textbf{Proprietární řešení inspirující se Web Services a REST }   
  
+      Vzhledem k požadavku na jednoduchost rozhraní a chybějícímu požadavku na 
nutnost publikovat a standardizovat rozhraní
+        bylo možné využít zjednodušeného přístupu k Webovým službám . Autoři 
se rozhodli implementovat rozhraní používající komunikaci
+        přes HTTP protokol bez definování WSDL popisných souborů. Komunikace 
je založená na posílání XML dat přes HTTP POST request/response.
+        Na rozdíl od REST služeb používá řešení komunikace autorů pouze HTTP 
POST metodu a
+         vstupní parametry (identifikace zdroje, např. číslo kiosku, ke 
kterému se dotaz vztahuje) 
+        jsou službám předávány pro jednoduchost přes User-Agent atribut HTTP 
POST hlavičky. Tělo požadavku/odpovědi potom obsahuje
+        přenášená data (XML data či jednoduché řetězcové hodnoty či 
+        Base64\footnote{Base64} zakódovaný obsah přenášených 
MIME\footnote{MIME} typů).   
+    \end{itemize}
+  
+    
+    Více o architektuře aplikace dispatcher je k nalezení v \textit{kapitole 
\ref{webapp_dispatcher}, str. \pageref{webapp_dispatcher}}.    
+    
+   
+   
 \section{Rozhraní mezi webovou aplikací a 
kiosky}\label{interface_web_and_kiosk}
+  Serverová aplikace \textbf{dispatcher} možňuje vzdálené připojení k aplikaci 
   \subsection{Posílání XML dat přes HTTP}
   
   \subsection{VPN}
-    Serverová část i kiosky jsou propojeny pomocí VPN\footnote{virtual private 
network (VPN), http://www.vpnc.org/}
-     a tudíž spolu komunikují pře 
-  
+    Serverová část i kiosky jsou propojeny pomocí VPN\footnote{virtual private 
network (VPN), \url{http://www.vpnc.org/}}
+     a v rámci této virtuální sítě spolu komunikují pomocí zabezpečeného SSL 
spojení. 
     Více informací o použití VPN v řešení ELVYS je možno nalézt v 
\textit{kapitole \ref{deployment_VPN} (\pageref{deployment_VPN})}  
   
+  \subsection{Komunikační metody}
+    V této části textu je uveden seznam metod, neboli HTTP přístupových bodů, 
které je možno na straně serveru kontaktovat. Všechny přijímají 
+    pouze HTTP POST požadavky, HTTP GET přístupová metoda pro žádný není 
naimplemnetována.
+    
+    TODO tato sekce
+     
+     \begin{description}
+        \item[Upload obrázku obrazovky kiosku]
+          Tato metoda slouží k uplaodu obrázku obrazovky kiosku na server. 
Obrázek je poslán....
+          \begin{description}
+             \item[parametry] -
+             \item[useragent] screenshot<elvysID>
+             \item[odpověď] -
+          \end{description}
+        \item[Generování categoryConfig]
+          Tato metoda slouží k vygenerování categoryConfig konfiguračního 
souboru pro klienta...
+          \textbf{Detailní popis vygenerované zprávy:}\\
+          categoryConfig obsahuje informace o ..\\
+          odpovídající XSD popis \textbf{categoryConfig.xsd} lze nalézt v 
příloze\ref{appendix_categoryConfig.xsd}
+        
+        \item[Generování appConfig]
+        
+        
+        \item[Generování documentConfig]
+        
+        \item[Generování]
+     
+     
+     
+     
+     \end{description}
   
 \section{Rozhraní mezi webovou aplikací a 
LayoutDesignerem}\label{interface_web_and_LD} 
     \textbf{Komunikace mezi webovým serverem a appletem}
@@ -107,8 +174,26 @@
  \subsection{textMeter}
  \subsection{videoMeter}                                              
 \section{Rozhraní pro ovládání webové aplikace webServer2}\label{interface_web}
+ \subsection{SSL?}
 \section{Rozhraní pro práci s informačními kiosky}\label{interface_kiosk}
-\section{budoucnost: WS-API}\label{interface_kiosk}
-\subsection{Rozhraní přes WebServices}
-K systému v současné době není možno přistupovat přes webservices, ale... mame 
oddělenou BL od prezentacni vrstvy, takže je to ready..
- Vzhledem k tomu, že business logika je uložena v 
\ No newline at end of file
+ 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ě 
+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ů}
+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 tohle zlepšení nebylo plánováno do základní verze řešení ELVYS.
\ No newline at end of file


Other related posts:

  • » [elvystrac] r1689 - documentation updated - elvys