Projekt

Obecné

Profil

Architektura » Historie » Verze 12

Marek Lovčí, 2020-04-30 07:03

1 1 Marek Lovčí
h1. Architektura
2 2 Marek Lovčí
3
{{toc}}
4
5
h2. Úvod
6
7
h3. Účel
8
9
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.
10
11
h3. Rozsah
12
13 4 Lucie Tauchenová
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.
14 2 Marek Lovčí
15
h2. Reprezentace
16
17 6 Marek Lovčí
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í.
18 2 Marek Lovčí
19
h2. Architektonické cíle a omezení
20
21
*Cíle*
22
23
* Přehlednost kódu
24
* Možnost rozšiřitelnosti pro aplikace z této aplikace odvozené
25
26
*Omezení*
27
28
Vyvíjíme zcela nový systém, jednoznačná architektonická omezení v našem případě ze zadání nevyplývají.
29
30
h2. Use-Case View
31
32 12 Marek Lovčí
Viz dokument [[Specifikace požadavků]].
33 2 Marek Lovčí
34
h2. Technologie
35
36
h3. Jazyk
37
38
Jelikož se jedná o webovou aplikaci a šlo nám o snadnost nasazení, tak jsme se rozhodli pro jazyk PHP.
39
40
h3. Framework
41
42
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.
43
44
Laravel používá 3 vrstvou architekturu MVC, bez výrazných jazykových nebo frameworkových specifik.
45
46 7 Marek Lovčí
!kaplicky-system-mvc.png!
47
48 2 Marek Lovčí
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.
49
Jedná se o:
50
51
* PHP >= 7.2.5
52
* BCMath PHP Extension
53
* Ctype PHP Extension
54
* Fileinfo PHP extension
55
* JSON PHP Extension
56
* Mbstring PHP Extension
57
* OpenSSL PHP Extension
58
* PDO PHP Extension
59
* Tokenizer PHP Extension
60
* XML PHP Extension
61
62
h3. Databáze
63
64 3 Marek Lovčí
Aplikace na produkčním prostředí využívá databázového systému MySQL ve verzi 8.0.x.
65 1 Marek Lovčí
66 6 Marek Lovčí
h2. Struktura aplikace
67
68
!kaplicky-system-overview.png!
69
70
71
72 2 Marek Lovčí
h2. Deployment
73
74
O specifikaci nasazení systému se jedná. Produkční servery poskytne UPM.
75
76
h2. Velikost a výkon
77
78
Očekávaná zátěž je cca 1000 uživatelů/den a nejvýše 200 uživatelů současně.
79
80
h3. Aplikační server
81
82
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.
83
84
* 2 CPU jádra
85
* 2 GB RAM
86
* HDD 5 GB
87
88
h4. Výpočet velikosti požadovaného diskového místa
89
90
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ě.
91
92
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.
93
94
*Výpočet 1*
95
96
Počet artefaktů: 300
97
Počet metadat na artefakt: 10
98
Velikost obrázku: 8.7 MB
99
100
8.7 MB * 300 + 8.7MB * 300 * 10 = 28.71 GB
101
102
*Výpočet 2*
103
104
Obrázky budeme ukládat ve velikosti o 50 % menší - cca 1150x1700 px
105
106
Počet artefaktů: 300
107
Počet metadat na artefakt: 10
108
Velikost obrázku: 2 MB
109
110
2 MB * 300 + 2 MB * 300 * 10 = 6.6 GB
111
112
*Výpočet 3*
113
114
Náhledová velikost.
115
116
Počet artefaktů: 300
117
Počet metadat na artefakt: 10
118
Velikost obrázku: 500 kB
119
120
500 kB * 300 + 500 kB * 300 * 10 = 1.65 GB
121
122
*Celkový výpočet*
123
124
Originální velikost obrázku: 2 MB
125
Náhledová velikost obrázku: 500 kB
126
127
Velikost aplikace: 500 MB
128
129
6.6 GB + 1.65 GB + 500 MB = 8.75 GB
130
131
Požadovaná velikost diskového místa: 10 GB.
132
133
h3. Další požadavky
134
135
*Předpokládaný IOPS (max):* 200
136
*Počet lan LAN:* 1
137
*Požadovaná latence sítě:* 100 ms
138
*Předpokládaný počet souběžně pracujících uživatelů (max):* 200
139
140
h4. Účel serveru
141
142
PHP webová aplikace pro prezentaci trvalé muzejní expozice.
143
144
h3. Databázový server
145
146
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.
147
148
h4. Minimální požadavky na hardware
149
150
* 2 CPU jádra
151
* 2 GB RAM
152
153
h4. Doporučené požadavky na hardware
154
155
* 4 CPU jádra
156
* 8 GB RAM
157
158 5 Marek Lovčí
Tato konfigurace vzhledem k datové nenáročnosti aplikace nebude potřeba.
159 8 Marek Lovčí
160
h2. Popis uživatelského rozhraní
161
162
Uživatelské rozhraní je dodáno grafikem ze strany zákazníka.
163 9 Marek Lovčí
Jedná se o responzivní webovou prezentaci.
164 8 Marek Lovčí
165
!APLIKACE_UPM_kompletní.png!
166 9 Marek Lovčí
167 10 Marek Lovčí
Obrázek: Návrh mobilní verze uživatelského rozhraní.