Projekt

Obecné

Profil

Architektura systému » Historie » Revize 24

Revize 23 (Ondřej Váně, 2020-03-24 11:03) → Revize 24/41 (Ondřej Váně, 2020-03-28 11:55)

h1. Architektura systému 

 * Systému bude rozdělen do třech základních částí, které mezi sebou budou komunikovat pomocí REST API (JSON). 
 ** Frontend - Angular, TypeScript 
 ** Backend - Spring, Java 
 ** Souborová databáze - Apache Solr 
 * Každá jednotlivá část bude spuštěna v dockeru kontejneru.  
 * Architektura systému je znázorněna na obrázku níže. 

 !architecture.png! 

 h1. Komunikační protokol v.1 

 * Jednotlivé zprávy budou zasílány ve fromátu JSON 
 * Komunikace bude probíhat pomocí HTTP protokolu 
 * Budou využívány návratové HTTP kódy stavů (200, 400, 500, atd.) - později bude upřesněno 
 * Návrh komunikace na obrázku níže, 

 !kom_protokol.png! 

 * Struktura jednotlivých zpráv 
 ** Query message: 
 <pre><code class="json"> 
 {  
	 "query": "hledaný výraz",  
	 "date": "čas odeslání dotazu"  
	
 } 
 </code></pre> 
 ** Query to Solr message: 
 <pre><code class="json"> 
 {  
	 "query": "Pole pro vyhledávání : hledaný výraz" 
	
 } 
 </code></pre> 
 ** Query result from Solr: 
 <pre><code class="json"> 
 { 
    "IdDocument":"id dokumentu", 
    "TextRegion":{ 
       "PlainText":"text region", 
       "Coords":"koordináty regionu", 
       "TextLine":[ 
          { 
             "PlainText":"text line", 
             "Coords":"koordináty řádky", 
             "TextWord":[ 
                { 
                   "PlainText":"text word", 
                   "Coords":"koordináty slova" 
                } 
             ] 
          } 
       ] 
    } 
 } 
 </code></pre> 

 ** Query response: 
 <pre><code class="json"> 
 { 
    "IdDocument":"id dokumentu", 
    "DocumentImage":"Obrázek v Base64", 
    "TextRegion":{ 
       "PlainText":"text region", 
       "Coords":"koordináty regionu", 
       "TextLine":[ 
          { 
             "PlainText":"text line 1", 
             "Coords":"koordináty řádky", 
             "TextWord":[ 
                { 
                   "PlainText":"text word 1", 
                   "Coords":"koordináty slova" 
                } 
             ] 
          } 
       ] 
    } 
 } 
 </code></pre> 

 h1. UI návrh