Projekt

Obecné

Profil

Architektura » Historie » Revize 11

Revize 10 (Marek Lovčí, 2020-04-30 07:01) → Revize 11/13 (Marek Lovčí, 2020-04-30 07:02)

h1. Architektura 

 {{toc}} 

 h2. Úvod 

 h3. Účel 

 Tento dokument poskytuje komplexní architektonický přehled o systému a pomocí řady různých architektonických pohledů zobrazuje různé aspekty systému. Jeho cílem je zachytit a předat významná architektonická rozhodnutí, která byla v systému učiněna. 

 h3. Rozsah 

 Tento dokument softwarové architektury poskytuje architektonický přehled o webové aplikaci pro Uměleckoprůmyslové museum v Praze (UPM). Webová aplikace je vyvýjena týmem MERLOT na předmětu KIV/ASWI na KIV FAV ZČU za účelem zatraktivnění a zpřístupnění knižního fondu z pozůstalosti architekta Jana Kaplického. 

 h2. Reprezentace 

 V tomto dokumentu není popsána žádná konkrétní implementace. Jedná se převážně o soubor pohledů na architektonické řešení; "Use case", logický model, datový model a model nasazení. 

 h2. Architektonické cíle a omezení 

 *Cíle* 

 * Přehlednost kódu 
 * Možnost rozšiřitelnosti pro aplikace z této aplikace odvozené 

 *Omezení* 

 Vyvíjíme zcela nový systém, jednoznačná architektonická omezení v našem případě ze zadání nevyplývají. 

 h2. Use-Case View 

 Viz dokument [[Model užití]] 

 h2. Technologie 

 h3. Jazyk 

 Jelikož se jedná o webovou aplikaci a šlo nám o snadnost nasazení, tak jsme se rozhodli pro jazyk PHP. 

 h3. Framework 

 Dále jsme se rozhodli pro standard v oblasti vývoje webových aplikací - framework Laravel ve verzi 7.x, dokumentace je dostupná na adrese https://laravel.com/docs/7.x. 

 Laravel používá 3 vrstvou architekturu MVC, bez výrazných jazykových nebo frameworkových specifik. 

 !kaplicky-system-mvc.png! 

 Použitím frameworku vznikají kriteriální omezení na PHP server. Jejich výčet je dostupný na adrese https://laravel.com/docs/7.x#server-requirements. 
 Jedná se o: 

 * PHP >= 7.2.5 
 * BCMath PHP Extension 
 * Ctype PHP Extension 
 * Fileinfo PHP extension 
 * JSON PHP Extension 
 * Mbstring PHP Extension 
 * OpenSSL PHP Extension 
 * PDO PHP Extension 
 * Tokenizer PHP Extension 
 * XML PHP Extension 

 h3. Databáze 

 Aplikace na produkčním prostředí využívá databázového systému MySQL ve verzi 8.0.x. 

 h2. Struktura aplikace 

 !kaplicky-system-overview.png! 



 h2. Deployment 

 O specifikaci nasazení systému se jedná. Produkční servery poskytne UPM. 

 

 h2. Velikost a výkon 

 Očekávaná zátěž je cca 1000 uživatelů/den a nejvýše 200 uživatelů současně. 

 h3. Aplikační server 

 Vycházíme z Quora odpovědi na minimální požadavky frameworku Laravel https://www.quora.com/What-is-the-minimum-memory-to-host-Laravel-Project. 

 * 2 CPU jádra 
 * 2 GB RAM 
 * HDD 5 GB 

 h4. Výpočet velikosti požadovaného diskového místa 

 Nedílnou součástí aplikace je veliké množství obrázků, které je nutné držet na aplikačním serveru. Ty budou komprimované, musíme však počítat s tím, že je bude nutné uchovávat ve vysoké kvalitě. 

 Jako ukázkovou sadu jsme dostali 14 obrázků v celkové velikosti 123 MB. Tedy přibližně 8.7 MB na obrázek ve velikosti 2300x3400 px. 

 *Výpočet 1* 

 Počet artefaktů: 300 
 Počet metadat na artefakt: 10 
 Velikost obrázku: 8.7 MB 

 8.7 MB * 300 + 8.7MB * 300 * 10 = 28.71 GB 

 *Výpočet 2* 

 Obrázky budeme ukládat ve velikosti o 50 % menší - cca 1150x1700 px 

 Počet artefaktů: 300 
 Počet metadat na artefakt: 10 
 Velikost obrázku: 2 MB 

 2 MB * 300 + 2 MB * 300 * 10 = 6.6 GB 

 *Výpočet 3* 

 Náhledová velikost. 

 Počet artefaktů: 300 
 Počet metadat na artefakt: 10 
 Velikost obrázku: 500 kB 

 500 kB * 300 + 500 kB * 300 * 10 = 1.65 GB 

 *Celkový výpočet* 

 Originální velikost obrázku: 2 MB 
 Náhledová velikost obrázku: 500 kB 

 Velikost aplikace: 500 MB 

 6.6 GB + 1.65 GB + 500 MB = 8.75 GB 

 Požadovaná velikost diskového místa: 10 GB. 

 h3. Další požadavky 

 *Předpokládaný IOPS (max):* 200 
 *Počet lan LAN:* 1 
 *Požadovaná latence sítě:* 100 ms 
 *Předpokládaný počet souběžně pracujících uživatelů (max):* 200 

 h4. Účel serveru 

 PHP webová aplikace pro prezentaci trvalé muzejní expozice. 

 h3. Databázový server 

 Vycházíme z minimálních požadavků databáze MySQL dostupných na adrese https://dev.mysql.com/doc/mysql-monitor/4.0/en/system-prereqs-reference.html. 

 h4. Minimální požadavky na hardware 

 * 2 CPU jádra 
 * 2 GB RAM 

 h4. Doporučené požadavky na hardware 

 * 4 CPU jádra 
 * 8 GB RAM 

 Tato konfigurace vzhledem k datové nenáročnosti aplikace nebude potřeba. 

 h2. Popis uživatelského rozhraní 

 Uživatelské rozhraní je dodáno grafikem ze strany zákazníka. 
 Jedná se o responzivní webovou prezentaci. 

 !APLIKACE_UPM_kompletní.png! 

 Obrázek: Návrh mobilní verze uživatelského rozhraní.