Softwarová architektura. Architektura klient-server. Monolitická, dvouvrstvá, třívrstvá architektura. Single-tenant/multi-tenant architecture. | Softwarová architektura
Systém =~ SW aplikace
Komponenta =~ SW modul
• určuje, z jakých softwarových komponent bude informační systém postaven a jaké vazby budou existovat mezi těmito komponentami |
Klient/server | • V architektuře klient/server je aplikace rozdělena na dva nebo více kooperujících programů.
• Klientem je ten program, který vyžaduje provedení určité služby, zatímco serverem je ten, který danou službu na požádání poskytuje. Jeden a tentýž program přitom jednou může vystupovat jako klient, jindy jako server
• Klient i server mohou být umístěny buď na tomtéž počítači, nebo mohou pracovat na různých počítačích počítačové sítě. |
Výhody | • nižší nároky na server oproti centralizovanému zpracování (část zátěže nese klient)
• snadnější inkrementální růst kapacit, které jsou pro zpracování aplikaci potřebné - této
• výhody se využívá zejména u víceuživatelských aplikací, kde klient řeší zpracování
• uživatelského rozhraní; s růstem počtu uživatelů takových aplikací roste počet koncových
• stanic, na kterých je zpracovávána klientská část aplikace, ale nároky na server rostou jen
• minimálně;
• lze volit vhodnou platformu (hardware a základní software) pro jednotlivé části aplikace;
• snadnější ochrana dat pomocí specializovaného datového serveru. |
Nevýhody | • vyšší počáteční investice nutné pro zprovoznění aplikací (komunikační infrastruktura,
• výkonnější stanice používané v roli klientů);
• problémy s integrací různých platforem
• vyšší nároky na kvalifikaci řešitelů |
Monolitická | • Typická pro centralizované zpracování
• Jednotlivé skupiny funkcí jsou v programu vzájemně propleteny a program sám běží na jednom centrálním počítači |
Výhody | • Snadné zajištění ochrany funkcí a dat aplikace před neautorizovaným použitím
• Snadné zajištění aplikace proti výpadkům |
Nevýhody | • Obtížná údržba
• Tím, že jednotlivé skupiny funkcí nejsou v aplikaci separovány, znamená například přechod na jinou formu komunikace nebo přechod na jiný systém řízení báze dat zásah do mnoha míst programu, což zvyšuje jak časové nároky na údržbu, tak riziko chybných nebo neúplných oprav.
• Obtížná přenositelnost aplikace mezi různými platformami Velmi často jsou aplikace s monolitickou architekturou spojeny s jednou platformou jako pupeční šňůrou. Když se na trhu objeví lacinější a výkonnější hardware a/nebo základní software, je velmi nesnadné přenést aplikaci do tohoto nového prostředí.
• Obtížné inkrementální zvyšování výpočetních kapacit podle růstu počtu uživatelů a jejich nároků, protože zvyšování kapacit centrálního počítače je možné pouze v určitých skocích. |
Dvouvrstvá | • Jedna ze skupin funkcí je oddělena od ostatních
• Typická pro jednoútvarové aplikace do několika desítek uživatelů
• Jsou možné 2 varianty řešení aplikace:
o Tzv. lehký klient nebo tzv. těžký klient |
Dvouvrstvá
Výhody | • V aplikace se snadněji zajišťují různé formy komunikace s různými koncovými stanicemi a s různými uživateli, čímž roste uživatelský komfort aplikace a usnadňuje se údržba aplikace
• Zvyšuje se přenositelnost aplikace
• Lze snadněji plánovat a doplňovat výpočetní kapacity |
Dvouvrstvá
Nevýhody | • Přetrvává problém přílišného propojení věcně orientovaných funkcí s jednou z dalších skupin funkcí |
Třívrstvá | • Všechny tři skupiny funkcí jsou odděleny do samostatných programů a ty mezi sebou komunikují jako klient/server
• Ideální pro tvorbu otevřených, distribuovaných a flexibilních informačních systémů, které lze pružně přizpůsobovat změnám
• Typická pro celopodnikové rozlehlé aplikace dynamického charakteru |
Třívrstvá
Výhody | • Lze pružně přizpůsobovat:
• Změnám na trhu s HW a základním softwarem – pro jednotlivé části aplikací je možné vybrat
• tu platformu, která má nejvýhodnější poměr cena/výkon
• Změnám v uživatelských požadavcích na funkce a uživatelské rozhraní aplikací
• Změnám v počtu uživatelů a změnám v intenzitě práce uživatelů |
Multitenant vs. Singletenant architercture | Jednouživatelská aplikace navržena pro situaci, kdy s aplikací zachází pouze jeden uživatel i když ji využívá více organizací. Např. textový editor. Má nižší náklady tvorby, ale vyšší náklady provozu. Víceuživatelská aplikace je například Google Maps. Tutéž jednu aplikaci navrhujeme aby ji mohli využívat tisíce lidí po celém světě. Všichni sdílejí jednu datovou základnu. Dost často se používá pro SaaS. |