Popište členění softwarových aplikací do tří vrstev, popište účel a odpovědnost jednotlivých vrstev. Zmiňte, jakými technologiemi mohou být tyto vrstvy realizovány.: Porovnání verzí

(Opraveny citace ze slovníčku Adaptic, protože ten se nově přesunul na doménu Strafelda.cz (kterou spravuje majitel Adapticu).)
 
(Není zobrazeno 13 mezilehlých verzí od jednoho dalšího uživatele.)
Řádek 1: Řádek 1:
{{Pracuje se}}
 
 
==Software==
 
==Software==
[[Software]] je v informatice sada všech počítačových programů používaných v [[Počítač|počítačích]], které provádějí nějakou činnost. Je protikladem k [[Hardware|hardwaru]], který zahrnuje všechny fyzické součásti počítače (elektronické obvody, skříň atd.). Jelikož software je zpravidla považován za autorské dílo, koncoví uživatelé ho využívají na základě licencí od jejich autorů.
+
[[Software]] je v [[Informatika|informatice]] sada všech počítačových programů používaných v [[Počítač|počítačích]], které provádějí nějakou činnost. Jedná se o nehmotnou část, která je protikladem k [[Hardware|hardwaru]], který zahrnuje všechny fyzické součásti počítače (elektronické obvody, skříň atd.). Jelikož software je zpravidla považován za [[Autorské dílo|autorské dílo]], koncoví uživatelé ho využívají na základě licencí od jejich autorů.
  
 
Rozdělení softwaru:
 
Rozdělení softwaru:
*'''Systémový software:''' umožňuje efektivní používání počítače (firmware, operační systém, jádro operačního systému, pomocné systémové nástroje);
+
 
*'''Aplikační software:''' umožňuje uživateli vykonávat nějakou užitečnou činnost. Například: kancelářské balíky (označují skupinu kancelářského software prodávaného jako celek, který nabízí určitý stupeň propojení jednotlivých aplikací v balíku - textový editor, tabulkové procesory, prezentační programy), grafické programy, vývojové nástroje (vývojové prostředí, překladač), zábavní software (počítačové hry, přehrávače digitálního zvuku a videa);
+
*'''Systémový software:''' umožňuje efektivní používání počítače ([[Firmware|firmware]], operační systém, jádro [[Operační systém|operačního systému]], pomocné systémové nástroje);
*'''Malware:''' je vytvořen za účelem poškodit a porušit počítač, je spojen s počítačovými zločiny;
+
*'''Aplikační software:''' umožňuje uživateli vykonávat nějakou užitečnou činnost. Například: kancelářské balíky (označují skupinu kancelářského software prodávaného jako celek, který nabízí určitý stupeň propojení jednotlivých aplikací v balíku - [[Charakterizujte textový editor, jeho základní funkce a využití. Vymezte textové editory oproti aplikacím pro počítačovou sazbu. Uveďte příklady textových editorů. Popište možnosti spolupráce více autorů na jednom dokumentu.|textový editor]], [[Charakterizujte tabulkový procesor a jeho základní rysy a funkce. Uveďte typické situace, kdy je vhodné využít tabulkový procesor. Popište použití vzorců v tabulkovém procesoru.|tabulkové procesory]], prezentační programy), grafické programy, vývojové nástroje (vývojové prostředí, překladač), zábavní software (počítačové hry, přehrávače digitálního zvuku a videa);
*'''Další typy (dle finanční dostupnosti):''' freeware, shareware, komerční software. <ref>HASMANOVÁ, Kateřina. Software. SlidePlayer [online]. [cit. 2020-03-14]. Dostupné z: https://slideplayer.cz/slide/11877292/</ref>
+
*'''[[Malware ]] :''' je vytvořen za účelem poškodit a porušit počítač, je spojen s počítačovými zločiny;
 +
*'''Další typy (dle finanční dostupnosti):''' [[Freeware|freeware]], [[Shareware|shareware]] , komerční software. <ref>HASMANOVÁ, Kateřina. Software. SlidePlayer [online]. [cit. 2020-03-14]. Dostupné z: https://slideplayer.cz/slide/11877292/</ref>
  
 
==Členění softwarových aplikací do tří vrstev==
 
==Členění softwarových aplikací do tří vrstev==
  
'''Třívrstvá architektura:'''
+
'''Třívrstvá architektura:''' jeden z typů architektury [[Informační systém|informačních systémů]] (resp. aplikací), odděluje jednotlivé vrstvy tak, aby na sobě nebyly závislé. Jejím předchůdcem byla dvouvrstvá architektura. Třívrstvá architektura se využívá především pro tvorbu robustnějších softwarů. Vrsty architektury jsou prezentační, aplikační a datová.
Jeden z typů architektury [[Informační systém|informačních systémů]] (resp. aplikací), odděluje jednotlivé vrstvy tak, aby na sobě nebyly závislé. Jejím předchůdcem byla dvouvrstvá architektura. Využívá se především pro tvorbu robustnějších softwarů. Třívrstvá architektura se využívá především pro tvorbu robustnějších softwarů.  
 
  
 
'''K čemu je třívrstvá architektura v praxi?'''
 
'''K čemu je třívrstvá architektura v praxi?'''
  
Třívrstvou architekturu využívá velké množství aplikací, které pracují s daty. Takto je postavena většina moderních podnikových aplikací, některá portálová řešení a webové stránky. Tří a více vrstvá architektura je v dnešní době trendem a využívá se pro tvorbu robustnějších řešení. Její výhodou je pružnější rozdělení výkonu mezi zařízení uživatele a server, prezentační vrstva může běžet i na velmi levných zařízeních.<ref name=":11">Třívrstvá architektura (Three-tier architecture). Management Mania [online]. [cit. 2020-03-02]. Dostupné z: https://managementmania.com/cs/trivrstva-architektura-three-tier-architecture</ref>
+
Třívrstvou architekturu využívá velké množství aplikací, které pracují s [[Data|daty]]. Takto je postavena většina moderních podnikových aplikací, některá portálová řešení a webové stránky. Tří a více vrstvá architektura je v dnešní době trendem a využívá se pro tvorbu robustnějších řešení. Její výhodou je pružnější rozdělení výkonu mezi zařízení uživatele a server, prezentační vrstva může běžet i na velmi levných zařízeních.<ref name=":11">Třívrstvá architektura (Three-tier architecture). Management Mania [online]. [cit. 2020-03-02]. Dostupné z: https://managementmania.com/cs/trivrstva-architektura-three-tier-architecture</ref>
  
 
'''Výhody'''
 
'''Výhody'''
 +
 
*zatížení systému je úměrně rozděleno mezi servery, konkrétně mezi databázový server, několik aplikačních serverů a velké množství klientů;
 
*zatížení systému je úměrně rozděleno mezi servery, konkrétně mezi databázový server, několik aplikačních serverů a velké množství klientů;
 
*rychlá komunikace mezi databázovými a aplikačními servery. Většinou je propojení aplikačních a databázových serverů řešeno prostřednictvím rychlé páteřní sítě;
 
*rychlá komunikace mezi databázovými a aplikačními servery. Většinou je propojení aplikačních a databázových serverů řešeno prostřednictvím rychlé páteřní sítě;
Řádek 28: Řádek 28:
  
 
'''Nevýhody'''
 
'''Nevýhody'''
*systém využívající třívrstvou architekturu je mnohem těžší správně navrhnout než systém dvojvrstvý. Je velice důležité oddělit jednotlivé vrstvy z pohledu možného budoucího využití;
+
 
 +
*systém využívající třívrstvou architekturu je mnohem složitější správně navrhnout než systém dvojvrstvý. Je velice důležité oddělit jednotlivé vrstvy z pohledu možného budoucího využití;
 
*implementace systému je většinou dost složitá, velmi často se kombinují různé platformy včetně různých operačních systémů. Tím se zvyšují nároky na znalosti administrátorů, čímž se úměrně navyšuje i cena.<ref name=":2">VÍT, Pavel. Databázový interface v prezentační mezivrstvě. [online]. Praha, 2009, 61 s., Bakalářská práce. Bankovní institut vysoká škole Praha, Katedra počítačů. [cit. 2020-03-02].  Dostupné z: https://is.ambis.cz/th/bgequ/_Pavel_Vit_DBInterfacevPrezentacniMezivrtve_BIVS.pdf</ref>
 
*implementace systému je většinou dost složitá, velmi často se kombinují různé platformy včetně různých operačních systémů. Tím se zvyšují nároky na znalosti administrátorů, čímž se úměrně navyšuje i cena.<ref name=":2">VÍT, Pavel. Databázový interface v prezentační mezivrstvě. [online]. Praha, 2009, 61 s., Bakalářská práce. Bankovní institut vysoká škole Praha, Katedra počítačů. [cit. 2020-03-02].  Dostupné z: https://is.ambis.cz/th/bgequ/_Pavel_Vit_DBInterfacevPrezentacniMezivrtve_BIVS.pdf</ref>
  
 
===Datová (databázová) vrstva===
 
===Datová (databázová) vrstva===
Jedná se o nejnižší vrstva modelu, která zajišťuje práci s [[Data|daty]]. Žádný systém bez této databáze nemůže fungovat.<br />  
+
Jedná se o nejnižší vrstva modelu, která zajišťuje práci s [[Data|daty]]. Žádný systém bez této [[Databáze|databáze]] nemůže fungovat.<br />  
'''Základní operace:''' ukládání dat do souboru, nebo databáze, výběr dat, agregace dat, předzpracování dat, integrita dat či audit dat.<br />  
+
'''Základní operace:''' ukládání dat do souboru, nebo databáze, výběr dat, agregace dat, předzpracování dat, integrita dat či audit dat.<br />
  
Ty mohou být opět desktopové nebo serverové. Dále pak agregace, předzpracování, integrita a audit dat. Žádný systém neběží bez databáze.
+
Databázové modely:
  
Databázové modely:
 
 
*'''Hierarchický model dat:''' data jsou organizována do stromové struktury. Každý záznam představuje uzel ve stromové struktuře, vzájemný vztah mezi záznamy je typu rodič/potomek. Největšími nevýhodami hierarchického uspořádání je složitá operace vkládání a rušení záznamů a v některých případech i nepřirozená organizace dat.
 
*'''Hierarchický model dat:''' data jsou organizována do stromové struktury. Každý záznam představuje uzel ve stromové struktuře, vzájemný vztah mezi záznamy je typu rodič/potomek. Největšími nevýhodami hierarchického uspořádání je složitá operace vkládání a rušení záznamů a v některých případech i nepřirozená organizace dat.
 
*'''Síťový model dat:''' síťový model dat je v podstatě zobecněním hierarchického modelu, který doplňuje o mnohonásobné vztahy (sety). Sety propojují záznamy různého či stejného typu, přičemž spojení může být realizováno na jeden nebo více záznamů. Přístup k propojeným záznamům je přímý bez dalšího vyhledávání. Nevýhodou síťové databáze je zejména nepružnost a obtížná změna její struktury.
 
*'''Síťový model dat:''' síťový model dat je v podstatě zobecněním hierarchického modelu, který doplňuje o mnohonásobné vztahy (sety). Sety propojují záznamy různého či stejného typu, přičemž spojení může být realizováno na jeden nebo více záznamů. Přístup k propojeným záznamům je přímý bez dalšího vyhledávání. Nevýhodou síťové databáze je zejména nepružnost a obtížná změna její struktury.
Řádek 46: Řádek 46:
  
 
'''Síťové a aplikační protokoly:'''
 
'''Síťové a aplikační protokoly:'''
 +
 
*'''TCP/''' [[IP adresa|'''IP''']] pro přenos informací
 
*'''TCP/''' [[IP adresa|'''IP''']] pro přenos informací
*[[HTTP]]: je internetový protokol, původně určený k výměně hypertextových dokumentů mezi serverem a prohlížečem (tzv. služba WWW). Současná verze HTTP však již dokáže přenášet jakékoliv soubory a používá se i k mnoha jiným funkcím (např. spouštění vzdálených aplikací). K HTTP existuje také jeho zabezpečená varianta HTTPS.<ref>HTTP. Adaptic [online]. [cit. 2020-03-23]. Dostupné z: https://www.adaptic.cz/znalosti/slovnicek/http/</ref>
+
*[[HTTP]]: je internetový protokol, původně určený k výměně hypertextových dokumentů mezi serverem a prohlížečem (tzv. služba [[World Wide Web|WWW]]). Současná verze HTTP však již dokáže přenášet jakékoliv soubory a používá se i k mnoha jiným funkcím (např. spouštění vzdálených aplikací). K HTTP existuje také jeho zabezpečená varianta HTTPS.<ref>HTTP. Jan Štráfelda [online]. [cit. 2020-12-29]. Dostupné z: https://www.strafelda.cz/http</ref>
*'''HTTPS:''' protokol HTTPS umožňuje chráněný přístup k webovému serveru tím, že veškerou přenášenou komunikaci šifruje algoritmem SSL nebo TSL. <ref>HTTPS. Adaptic [online]. [cit. 2020-03-23]. Dostupné z: https://www.adaptic.cz/znalosti/slovnicek/https/</ref>  
+
*'''HTTPS:''' protokol HTTPS umožňuje chráněný přístup k webovému serveru tím, že veškerou přenášenou komunikaci šifruje algoritmem SSL nebo TSL. <ref>HTTPS. Jan Štráfelda [online]. [cit. 2020-12-29]. Dostupné z: https://www.strafelda.cz/https</ref>
 +
 
 +
'''[[Programovací jazyk|Programovací jazyky]]:'''
  
'''Programovací jazyky:'''
+
*'''[[C++]]:''' je víceúčelovým programovacím jazykem se statickou kontrolou typu zaměřený na systémové programování. Podporuje datovou abstrakci, objektově orientované programování, generické programování. Je to jazyk, který umožňuje programování pomocí více forem (paradigmat). Jejich použití závisí na druhu a cíli aplikace. <ref>C++. AbcLinux.cz [online]. [cit. 2020-03-23]. Dostupné z: https://www.abclinuxu.cz/slovnik/cplusplus</ref>
*'''C++:''' je víceúčelovým programovacím jazykem se statickou kontrolou typu zaměřený na systémové programování. Podporuje datovou abstrakci, objektově orientované programování, generické programování. Je to jazyk, který umožňuje programování pomocí více forem (paradigmat). Jejich použití závisí na druhu a cíli aplikace. <ref>C++. AbcLinux.cz [online]. [cit. 2020-03-23]. Dostupné z: https://www.abclinuxu.cz/slovnik/cplusplus</ref>  
+
*'''[[JavaScript]]:''' používá především pro vytváření interaktivních webových stránek. Příkladem použití mohou být nejrůznější kontroly správného vyplnění formulářů, obrázky měnící se po přejetí myší, rozbalovací menu atd.<ref>JavaScript. Jan Štráfelda [online]. [cit. 2020-12-29]. Dostupné z: https://www.strafelda.cz/javascript</ref>
*'''JavaScript:''' používá především pro vytváření interaktivních webových stránek. Příkladem použití mohou být nejrůznější kontroly správného vyplnění formulářů, obrázky měnící se po přejetí myší, rozbalovací menu atd.<ref>JavaScript. Adaptic [online]. [cit. 2020-03-23]. Dostupné z: https://www.adaptic.cz/znalosti/slovnicek/javascript/</ref>
+
*'''[[PHP]]:''' je jedním z nejvíce rozšířených programovacích jazyků používaných k vytváření webových aplikací. Hlavním kladem PHP je jeho nezávislost na platformě. <ref>PHP. Jan Štráfelda [online]. [cit. 2020-12-29]. Dostupné z: https://www.strafelda.cz/php</ref>
*'''PHP:''' je jedním z nejvíce rozšířených programovacích jazyků používaných k vytváření webových aplikací. Hlavním kladem PHP je jeho nezávislost na platformě. <ref>PHP. Adaptic [online]. [cit. 2020-03-23]. Dostupné z: https://www.adaptic.cz/znalosti/slovnicek/php/</ref>
+
*'''[[Perl]]:''' je jazyk velice flexibilní, přizpůsobuje se stylu programátora, jednu věc je možné zapsat více různými způsoby. K dalším výhodám Perlu patří i obrovské množství modulů, které jsou pro něj dostupné. Díky nim Perl podporuje všechna důležitá rozhraní, včetně některých řídce používaných databází. <ref>Perl. Jan Štráfelda [online]. [cit. 2020-12-29]. Dostupné z: https://www.strafelda.cz/perl</ref>
*'''Perl:''' je jazyk velice flexibilní, přizpůsobuje se stylu programátora, jednu věc je možné zapsat více různými způsoby. K dalším výhodám Perlu patří i obrovské množství modulů, které jsou pro něj dostupné. Díky nim Perl podporuje všechna důležitá rozhraní, včetně některých řídce používaných databází. <ref>Perl. Adaptic [online]. [cit. 2020-03-23]. ISBN 978-92-79-64401-6. Dostupné z: https://www.adaptic.cz/znalosti/slovnicek/perl/</ref>
 
  
 
'''Zobrazovací jazyky:'''
 
'''Zobrazovací jazyky:'''
*'''HTML:''' značkovací jazyk, který používá definované značky (tagy) k vytváření a formátování dokumentů pro webové stránky.<ref>Co je to HTML?. Artic Studio [online]. [cit. 2020-03-23]. Dostupné z: https://www.artic-studio.net/slovnicek-pojmu/jazyk-html/</ref>
+
 
*'''CSS:''' moderní jazyk popisující způsob zobrazení dokumentů psaných ve strukturálních jazycích HTML, XHTML a XML . Znamená to, že právě CSS nese informace, jako jsou barva, písmo, umístění prvku a jeho další vizuální (formátovací) vlastnosti. <ref>CSS. Adaptic [online]. [cit. 2020-03-23]. Dostupné z: https://www.adaptic.cz/znalosti/slovnicek/css/</ref>
+
*'''[[HTML]]:''' značkovací jazyk, který používá definované značky (tagy) k vytváření a formátování dokumentů pro webové stránky.<ref>Co je to HTML?. Artic Studio [online]. [cit. 2020-03-23]. Dostupné z: https://www.artic-studio.net/slovnicek-pojmu/jazyk-html/</ref>
 +
*'''[[CSS]]:''' moderní jazyk popisující způsob zobrazení dokumentů psaných ve strukturálních jazycích HTML, XHTML a XML . Znamená to, že právě CSS nese informace, jako jsou barva, písmo, umístění prvku a jeho další vizuální (formátovací) vlastnosti. <ref>CSS. Jan Štráfelda [online]. [cit. 2020-12-29]. Dostupné z: https://www.strafelda.cz/kaskadove-styly</ref>
 
*'''JavaScript'''
 
*'''JavaScript'''
  
 
'''[[Hardware]]:'''  
 
'''[[Hardware]]:'''  
 +
 
*'''server''' (operační systém, databáze)
 
*'''server''' (operační systém, databáze)
 
*'''sítové prostředí''' (kabely  pro připojení, routery)
 
*'''sítové prostředí''' (kabely  pro připojení, routery)
  
 
'''Dotazovací jazyky:'''
 
'''Dotazovací jazyky:'''
 +
 
*[[SQL|SQL:]] je databázový programovací jazyk, který umožňuje definovat data, dotazovat se na ně a manipulovat s nimi.
 
*[[SQL|SQL:]] je databázový programovací jazyk, který umožňuje definovat data, dotazovat se na ně a manipulovat s nimi.
*'''CQL:''' je formální jazyk, který slouží k vyhledávání v korpusu.
+
*'''[[CQL]]:''' je formální jazyk, který slouží k vyhledávání v korpusu.
  
 
===Prezenční vrstva===
 
===Prezenční vrstva===
Jde o to, co jde vidět a s čím uživatel interaguje. Zajišťuje vstup požadavků a prezentaci výsledků, je závislá na platformě, může být tedy různá pro různá zařízení či platformy. Může mít podoby pro uživatele a služební.  
+
V prezenční vrstvě nebo také vrstvě uživatelského rozhraní jde o to, co lze vidět a s čím uživatel interaguje. Zajišťuje vstup požadavků a prezentaci výsledků, je závislá na platformě, může být tedy různá pro různá zařízení či platformy. Může mít podoby pro uživatele a služební.  
 +
 
 +
====Tenký a silný klient====
 +
 
 +
*'''Tenký klient (Thin client):''' důsledně oddělená aplikační logika od uživatelského rozhraní, typicky HTML prohlížeč bez rozšíření. Realizace tenkého klienta je řešená trochu jinak. Nad prezentační vrstvou je vrstva webového prohlížeče realizovaná skrze HTML.
 +
*'''Silný klient (Thick client):''' část aplikační logiky je na klientské straně. Většinou z důvodů rychlejších odezev systému, s tím související menší přenos dat po síti a rozložení potřebné výpočetní kapacity mezi více procesorů (mezi jednotlivé klienty). Př. Jump, ArcExplorer, HTML s podporou JavaScriptu atd. <ref>KAREL, Jedlička. Architektura GIS KMA/AGI. Fakulta aplikovaných věd [online]. [cit. 2020-03-03]</ref>
  
Tenký a silný klient
+
==Odkazy==
*'''Tenký klient:''' důsledně oddělená aplikační logika od uživatelského rozhraní, typicky HTML prohlížeč bez rozšíření. Realizace tenkého klienta je řešená trochu jinak. Nad prezentační vrstvou je vrstva webového prohlížeče realizovaná skrze HTML.
+
===Reference===
*'''Silný klient:''' část aplikační logiky je na klientské straně. Většinou z důvodů rychlejších odezev systému, s tím související menší přenos dat po síti a rozložení potřebné výpočetní kapacity mezi více procesorů (mezi jednotlivé klienty). Př. Jump, ArcExplorer, HTML s podporou JavaScriptu atd. <ref>KAREL, Jedlička. Architektura GIS KMA/AGI. Fakulta aplikovaných věd [online]. [cit. 2020-03-03]</ref>
+
<references />  
  
== Odkazy ==
+
===Doporučená literatura===
=== Reference ===
 
<references/>
 
  
=== Doporučená literatura ===
 
 
*DVOŘÁK, Radek. Databáze v prostředí webu. In Sborník konference Tvorba software 2004. Ostrava: Tanger s.r.o., 2004, s.38.43.
 
*DVOŘÁK, Radek. Databáze v prostředí webu. In Sborník konference Tvorba software 2004. Ostrava: Tanger s.r.o., 2004, s.38.43.
 
*BOLLINGER, David a Bharathi NATARAJAN. JSP - Java Server Pages: podrobný průvodce začínajícího tvůrce. Praha: Grada, 2003. Moderní programování. ISBN 80-247-0340-8
 
*BOLLINGER, David a Bharathi NATARAJAN. JSP - Java Server Pages: podrobný průvodce začínajícího tvůrce. Praha: Grada, 2003. Moderní programování. ISBN 80-247-0340-8
  
=== Související články ===
+
===Související články===
[[Software ]]
+
[[Software]]
 
<br />
 
<br />
 
[[Programovací jazyk]]
 
[[Programovací jazyk]]
Řádek 93: Řádek 100:
 
[[Informační architektura]]
 
[[Informační architektura]]
  
=== Klíčová slova ===
+
===Klíčová slova===
 
členění softwarových aplikací, technologie, software, třívrstvá architektura  
 
členění softwarových aplikací, technologie, software, třívrstvá architektura  
 
[[Kategorie:Státnicové otázky UISK]]
 
[[Kategorie:Státnicové otázky UISK]]

Aktuální verze z 30. 12. 2020, 20:46

Software

Software je v informatice sada všech počítačových programů používaných v počítačích, které provádějí nějakou činnost. Jedná se o nehmotnou část, která je protikladem k hardwaru, který zahrnuje všechny fyzické součásti počítače (elektronické obvody, skříň atd.). Jelikož software je zpravidla považován za autorské dílo, koncoví uživatelé ho využívají na základě licencí od jejich autorů.

Rozdělení softwaru:

  • Systémový software: umožňuje efektivní používání počítače (firmware, operační systém, jádro operačního systému, pomocné systémové nástroje);
  • Aplikační software: umožňuje uživateli vykonávat nějakou užitečnou činnost. Například: kancelářské balíky (označují skupinu kancelářského software prodávaného jako celek, který nabízí určitý stupeň propojení jednotlivých aplikací v balíku - textový editor, tabulkové procesory, prezentační programy), grafické programy, vývojové nástroje (vývojové prostředí, překladač), zábavní software (počítačové hry, přehrávače digitálního zvuku a videa);
  • Malware  : je vytvořen za účelem poškodit a porušit počítač, je spojen s počítačovými zločiny;
  • Další typy (dle finanční dostupnosti): freeware, shareware , komerční software. [1]

Členění softwarových aplikací do tří vrstev

Třívrstvá architektura: jeden z typů architektury informačních systémů (resp. aplikací), odděluje jednotlivé vrstvy tak, aby na sobě nebyly závislé. Jejím předchůdcem byla dvouvrstvá architektura. Třívrstvá architektura se využívá především pro tvorbu robustnějších softwarů. Vrsty architektury jsou prezentační, aplikační a datová.

K čemu je třívrstvá architektura v praxi?

Třívrstvou architekturu využívá velké množství aplikací, které pracují s daty. Takto je postavena většina moderních podnikových aplikací, některá portálová řešení a webové stránky. Tří a více vrstvá architektura je v dnešní době trendem a využívá se pro tvorbu robustnějších řešení. Její výhodou je pružnější rozdělení výkonu mezi zařízení uživatele a server, prezentační vrstva může běžet i na velmi levných zařízeních.[2]

Výhody

  • zatížení systému je úměrně rozděleno mezi servery, konkrétně mezi databázový server, několik aplikačních serverů a velké množství klientů;
  • rychlá komunikace mezi databázovými a aplikačními servery. Většinou je propojení aplikačních a databázových serverů řešeno prostřednictvím rychlé páteřní sítě;
  • u větších systémů je většinou implementovaná funkcionalita pro dynamické přesměrování zátěže, tím se docílí optimální využití strojového času aplikačních serverů a usnadní se zálohování;
  • v případě havárie aplikačního serveru, je zastoupen ostatními servery;
  • snadná implementace různých klientů v rámci jednoho aplikačního serveru. Tímto krokem získávám možnost přizpůsobení klienta různým cílovým skupinám;
  • klient může běžet na nezávislém prostředí a stroji, což v praxi znamená, že aplikační server dokáže obsloužit různé typy počítačů s různými operačními systémy;
  • architekturu lze uplatnit jak na jednom počítači, tak ve velkých multiplatformních systémech.

Nevýhody

  • systém využívající třívrstvou architekturu je mnohem složitější správně navrhnout než systém dvojvrstvý. Je velice důležité oddělit jednotlivé vrstvy z pohledu možného budoucího využití;
  • implementace systému je většinou dost složitá, velmi často se kombinují různé platformy včetně různých operačních systémů. Tím se zvyšují nároky na znalosti administrátorů, čímž se úměrně navyšuje i cena.[3]

Datová (databázová) vrstva

Jedná se o nejnižší vrstva modelu, která zajišťuje práci s daty. Žádný systém bez této databáze nemůže fungovat.
Základní operace: ukládání dat do souboru, nebo databáze, výběr dat, agregace dat, předzpracování dat, integrita dat či audit dat.

Databázové modely:

  • Hierarchický model dat: data jsou organizována do stromové struktury. Každý záznam představuje uzel ve stromové struktuře, vzájemný vztah mezi záznamy je typu rodič/potomek. Největšími nevýhodami hierarchického uspořádání je složitá operace vkládání a rušení záznamů a v některých případech i nepřirozená organizace dat.
  • Síťový model dat: síťový model dat je v podstatě zobecněním hierarchického modelu, který doplňuje o mnohonásobné vztahy (sety). Sety propojují záznamy různého či stejného typu, přičemž spojení může být realizováno na jeden nebo více záznamů. Přístup k propojeným záznamům je přímý bez dalšího vyhledávání. Nevýhodou síťové databáze je zejména nepružnost a obtížná změna její struktury.
  • Relační model dat: relační databázový model je z uvedených nejmladší a zároveň nejpoužívanější. Model má jednoduchou strukturu, data jsou organizována v tabulkách, které se skládají z řádků a sloupců. V těchto tabulkách jsou prováděny všechny databázové operace. Mezi vlastnosti patří to, že je databáze uživatelem chápána jako množina relací a nic jiného. Jsou k dispozici minimálně operace selekce, projekce a spojení. Všechna data jsou přístupná kombinací jména tabulky s hodnotami primárního klíče a jménem sloupce. [4]

Aplikační vrstva

Prostřední vrstva modelu, prezentuje data uživateli a promítá požadavky uživatele do datové vrstvy. Zajišťuje výpočty a operace prováděné mezi vstupně-výstupními požadavky a daty.

Síťové a aplikační protokoly:

  • TCP/ IP pro přenos informací
  • HTTP: je internetový protokol, původně určený k výměně hypertextových dokumentů mezi serverem a prohlížečem (tzv. služba WWW). Současná verze HTTP však již dokáže přenášet jakékoliv soubory a používá se i k mnoha jiným funkcím (např. spouštění vzdálených aplikací). K HTTP existuje také jeho zabezpečená varianta HTTPS.[5]
  • HTTPS: protokol HTTPS umožňuje chráněný přístup k webovému serveru tím, že veškerou přenášenou komunikaci šifruje algoritmem SSL nebo TSL. [6]

Programovací jazyky:

  • C++: je víceúčelovým programovacím jazykem se statickou kontrolou typu zaměřený na systémové programování. Podporuje datovou abstrakci, objektově orientované programování, generické programování. Je to jazyk, který umožňuje programování pomocí více forem (paradigmat). Jejich použití závisí na druhu a cíli aplikace. [7]
  • JavaScript: používá především pro vytváření interaktivních webových stránek. Příkladem použití mohou být nejrůznější kontroly správného vyplnění formulářů, obrázky měnící se po přejetí myší, rozbalovací menu atd.[8]
  • PHP: je jedním z nejvíce rozšířených programovacích jazyků používaných k vytváření webových aplikací. Hlavním kladem PHP je jeho nezávislost na platformě. [9]
  • Perl: je jazyk velice flexibilní, přizpůsobuje se stylu programátora, jednu věc je možné zapsat více různými způsoby. K dalším výhodám Perlu patří i obrovské množství modulů, které jsou pro něj dostupné. Díky nim Perl podporuje všechna důležitá rozhraní, včetně některých řídce používaných databází. [10]

Zobrazovací jazyky:

  • HTML: značkovací jazyk, který používá definované značky (tagy) k vytváření a formátování dokumentů pro webové stránky.[11]
  • CSS: moderní jazyk popisující způsob zobrazení dokumentů psaných ve strukturálních jazycích HTML, XHTML a XML . Znamená to, že právě CSS nese informace, jako jsou barva, písmo, umístění prvku a jeho další vizuální (formátovací) vlastnosti. [12]
  • JavaScript

Hardware:

  • server (operační systém, databáze)
  • sítové prostředí (kabely pro připojení, routery)

Dotazovací jazyky:

  • SQL: je databázový programovací jazyk, který umožňuje definovat data, dotazovat se na ně a manipulovat s nimi.
  • CQL: je formální jazyk, který slouží k vyhledávání v korpusu.

Prezenční vrstva

V prezenční vrstvě nebo také vrstvě uživatelského rozhraní jde o to, co lze vidět a s čím uživatel interaguje. Zajišťuje vstup požadavků a prezentaci výsledků, je závislá na platformě, může být tedy různá pro různá zařízení či platformy. Může mít podoby pro uživatele a služební.

Tenký a silný klient

  • Tenký klient (Thin client): důsledně oddělená aplikační logika od uživatelského rozhraní, typicky HTML prohlížeč bez rozšíření. Realizace tenkého klienta je řešená trochu jinak. Nad prezentační vrstvou je vrstva webového prohlížeče realizovaná skrze HTML.
  • Silný klient (Thick client): část aplikační logiky je na klientské straně. Většinou z důvodů rychlejších odezev systému, s tím související menší přenos dat po síti a rozložení potřebné výpočetní kapacity mezi více procesorů (mezi jednotlivé klienty). Př. Jump, ArcExplorer, HTML s podporou JavaScriptu atd. [13]

Odkazy

Reference

  1. HASMANOVÁ, Kateřina. Software. SlidePlayer [online]. [cit. 2020-03-14]. Dostupné z: https://slideplayer.cz/slide/11877292/
  2. Třívrstvá architektura (Three-tier architecture). Management Mania [online]. [cit. 2020-03-02]. Dostupné z: https://managementmania.com/cs/trivrstva-architektura-three-tier-architecture
  3. VÍT, Pavel. Databázový interface v prezentační mezivrstvě. [online]. Praha, 2009, 61 s., Bakalářská práce. Bankovní institut vysoká škole Praha, Katedra počítačů. [cit. 2020-03-02]. Dostupné z: https://is.ambis.cz/th/bgequ/_Pavel_Vit_DBInterfacevPrezentacniMezivrtve_BIVS.pdf
  4. Databázové modely. Databáze [online]. [cit. 2020-03-03]. Dostupné z: http://www.databaze.chytrak.cz/modely.htm
  5. HTTP. Jan Štráfelda [online]. [cit. 2020-12-29]. Dostupné z: https://www.strafelda.cz/http
  6. HTTPS. Jan Štráfelda [online]. [cit. 2020-12-29]. Dostupné z: https://www.strafelda.cz/https
  7. C++. AbcLinux.cz [online]. [cit. 2020-03-23]. Dostupné z: https://www.abclinuxu.cz/slovnik/cplusplus
  8. JavaScript. Jan Štráfelda [online]. [cit. 2020-12-29]. Dostupné z: https://www.strafelda.cz/javascript
  9. PHP. Jan Štráfelda [online]. [cit. 2020-12-29]. Dostupné z: https://www.strafelda.cz/php
  10. Perl. Jan Štráfelda [online]. [cit. 2020-12-29]. Dostupné z: https://www.strafelda.cz/perl
  11. Co je to HTML?. Artic Studio [online]. [cit. 2020-03-23]. Dostupné z: https://www.artic-studio.net/slovnicek-pojmu/jazyk-html/
  12. CSS. Jan Štráfelda [online]. [cit. 2020-12-29]. Dostupné z: https://www.strafelda.cz/kaskadove-styly
  13. KAREL, Jedlička. Architektura GIS KMA/AGI. Fakulta aplikovaných věd [online]. [cit. 2020-03-03]

Doporučená literatura

  • DVOŘÁK, Radek. Databáze v prostředí webu. In Sborník konference Tvorba software 2004. Ostrava: Tanger s.r.o., 2004, s.38.43.
  • BOLLINGER, David a Bharathi NATARAJAN. JSP - Java Server Pages: podrobný průvodce začínajícího tvůrce. Praha: Grada, 2003. Moderní programování. ISBN 80-247-0340-8

Související články

Software
Programovací jazyk
Počítačová síť - internet
Informační architektura

Klíčová slova

členění softwarových aplikací, technologie, software, třívrstvá architektura