Projekt

Obecné

Profil

Akce

Architektura

Úvod

Úč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.

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.

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í.

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í.

Use-Case View

Viz dokument Specifikace požadavků.

Technologie

Jazyk

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

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.

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

Databáze

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

Struktura aplikace

Deployment

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

Velikost a výkon

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

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

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.

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

Účel serveru

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

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.

Minimální požadavky na hardware

  • 2 CPU jádra
  • 2 GB RAM

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.

Popis uživatelského rozhraní

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

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

Aktualizováno uživatelem Marek Lovčí před asi 4 roky(ů) · 13 revizí