.. _admin_about:

===========================
Úvodní informace o aplikaci
===========================

Aplikace Elza je aplikace pro zpracování archiválií a přípravu archivních pomůcek.
V této kapitole jsou popsány její základní technické vlastnoti a požadavky
pro její provoz.

Aplikace je k dispozici ve dvou formách:

============================== ================================================
**Připravené binární balíčky** vhodné pro testovací i produkční prostředí
------------------------------ ------------------------------------------------
**Ve formě zdrojového kódu**   vhodné pro další vývoj a případnou customizaci
============================== ================================================

------------------------
Charakteristika aplikace
------------------------

Software Elza je webová aplikace s vícevrstevnou architekturou.
Data jsou ukládána do relační databáze. Server je Java aplikace
vyžadující pro pro provoz Java Servlet kontejner (Apache Tomcat, Jetty).
Uživatelské rozhraní je dostupné formou webové aplikace. Ta je vytvořena
pomocí technologie HTML5 a JavaScript/React. Komunikace mezi uživatelským 
rozhraním a serverovou částí je postavena na principu REST rozhraní
a pro některé části využívá technologii WebSocket.

Aplikace Elza může být integrována s dalšími systémy, jako jsou systémy
pro správu přístupových bodů (CAM), či systémy pro práci s digitalizáty a 
digitálními archivy.

Instalace a komunikace s okolím
---------------------------------

Následující schéma ukazuje příklad instalace aplikace na virtuální server.

.. plantuml::
    :caption: Příklad způsobu instalace
    :scale: 70%
    :align: center
    
    node "Virtuální server" {
      portin "HTTPS/443"
      component HTTPD [
        Apache Httpd nebo NGINX
        ----
        Certifikáty pro HTTPS
        Reverzní proxy
      ]
      "HTTPS/443" --> HTTPD
      component Elza [
        Elza
        ----
        Java 17
      ]
      database Databáze [
         Databáze
         ----
         PostgreSQL 12+
      ]
      HTTPD --> Elza : HTTP/8080
      Elza --> Databáze      
    } 

    cloud CAM [
        Centrální Archivní Modul (CAM)
        ----
        Součást Národního Archivního Portálu
    ]
    Elza -right-> CAM : HTTPS


Poměrně obvyklou variantou k uvedenému příkladu je řešení, 
kdy webový server (Apache HTTPD, NGINX, IIS) je instalován 
na jiném serveru a na virtuálním serveru je nainstalována 
jen aplikace Elza. V takovém případě je server čistě 
aplikační a uživatelé k němu přímo nepřistupují, jen 
prostřednictvím samostatného webového serveru na nějž je 
směrováno URL, např. **https://elza.organizace.cz**.


------
Server
------

Hardwarové požadavky
--------------------

============================== ========= ==========
Požadavky                      Minimální Doporučené
============================== ========= ==========
Velikost RAM                   4GB       8GB
Počet jader CPU                2         4
Dostupné místo na disku        4GB       16GB
Rezervované místo pro databázi 15GB      60GB
============================== ========= ==========

Hardwarové požadavky vycházejí vždy z předpokládané 
a následně reálně zátěže dané instance aplikace. 
Uváděné minimální hodnoty jsou určené pro málo zatížené instance, 
např. pro testování a vývoj. Doporučené hodnoty jsou určeny pro produkční 
prostředí s běžnou zátěží odpovídající specializovanému archivu 
do deseti uživatelů.

Zátěž je dána zejména těmito faktory:
 - počet současně pracujících uživatelů
 - maximální velikost jednoho archivního souboru (počet jednotek popisu)
 - celkové množství archivních souborů
 - množství archivních entit (napojení na CAM)


 .. _admin_about_sw:

Softwarové požadavky
--------------------
============================== ===============
Požadavky                      Verze
============================== ===============
Java                           17       
Databázový server PostgreSQL   12 a vyšší
============================== ===============

Uložení dat
"""""""""""
Doporučeným a podporovaným databázovým serverem je *PostgreSQL* s rozšířením *PostGIS*
pro uložení souřadnic. 

Pro testování je možné používat embedded databázi *H2*.

Je možné uvažovat o použití i jiných databází (např: *Microsoft SQL Server*, *Oracle*), 
musí umožňovat tyto funkce:

 - existence JDBC ovladačů
 - podpora v nástroji LiquiBase
 - podpora Common Table Expression s rekurzivními dotazy
 - podpora datového typu Geometry
 - podpora pro podmíněné indexy

V případě potřeby provozu aplikace na jiné databázové platformě je nutné samostatně aplikaci 
sestavit ze :ref:`zdrojového kódu <install_src>` a provést úpravu DB schématu.


------------------
Klientská aplikace
------------------

Hardwarové požadavky
--------------------

============================ ========== ========================
Požadavky                    Minimální  Doporučené
============================ ========== ========================
Rozlišení                    1024 x 768 1920×1080 nebo 1280x1024
RAM pro prohlížeč s aplikací 1GB
============================ ========== ========================

Podporované prohližeče
----------------------

Prohlížeč musí implementovat standard HTML5, JavaScript 6+

Podporované prohlížeče aktuální verzi aplikace Elza:
 - Google Chrome
 - Mozilla Firefox
 - Internet Explorer 11
 - Microsoft Edge

Částečná podpora:
 - Apple Safari
 
