Projekt

Obecné

Profil

Architektura systému » Historie » Revize 22

Revize 21 (Ondřej Váně, 2020-03-24 10:51) → Revize 22/41 (Ondřej Váně, 2020-03-24 11:01)

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":{ 
       
 "IdDocument": "id dokumentu" 
 "TextRegion":  
     { 
     "PlainText":"text region", 
       "Coords":"koordináty regionu", 
       "TextLine":[ 
          line 1", 
     "Coords": "koordináty" 
     }, 
 "TextLine": [  
     { 
         "PlainText":"text line 1", 
         "Coords": "koordináty" 
     }, 
     { 
         "PlainText":"text line 1", 
         "Coords": "koordináty" 
     } 
     ], 
 "TextWord":[ 
      { 
             "PlainText":"text line", word 1", 
             "Coords":"koordináty řádky", "Coords": "koordináty" 
       }, 
       { 
             "TextWord":[ 
                { 
                   "PlainText":"text word", 
                   "Coords":"koordináty slova" 
                } word 2", 
             ] 
          } "Coords": "koordináty" 
       ] 
    } 
 } 
  ]} 
 </code></pre> 

 ** Query response: 
 <pre><code class="json"> 
 {  
	 "query": "hledaný výraz",  
	 "date": "čas odeslání dotazu"  
	
 } 
 </code></pre>