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.
Obsah
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ů.
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 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í;
- 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. Žádný systém neběží bez databáze.
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
- 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
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í.
Tenký a silný klient
- 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.
- 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. [13]
Odkazy
Reference
- ↑ HASMANOVÁ, Kateřina. Software. SlidePlayer [online]. [cit. 2020-03-14]. Dostupné z: https://slideplayer.cz/slide/11877292/
- ↑ Třívrstvá architektura (Three-tier architecture). Management Mania [online]. [cit. 2020-03-02]. Dostupné z: https://managementmania.com/cs/trivrstva-architektura-three-tier-architecture
- ↑ 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
- ↑ Databázové modely. Databáze [online]. [cit. 2020-03-03]. Dostupné z: http://www.databaze.chytrak.cz/modely.htm
- ↑ HTTP. Adaptic [online]. [cit. 2020-03-23]. Dostupné z: https://www.adaptic.cz/znalosti/slovnicek/http/
- ↑ HTTPS. Adaptic [online]. [cit. 2020-03-23]. Dostupné z: https://www.adaptic.cz/znalosti/slovnicek/https/
- ↑ C++. AbcLinux.cz [online]. [cit. 2020-03-23]. Dostupné z: https://www.abclinuxu.cz/slovnik/cplusplus
- ↑ JavaScript. Adaptic [online]. [cit. 2020-03-23]. Dostupné z: https://www.adaptic.cz/znalosti/slovnicek/javascript/
- ↑ PHP. Adaptic [online]. [cit. 2020-03-23]. Dostupné z: https://www.adaptic.cz/znalosti/slovnicek/php/
- ↑ Perl. Adaptic [online]. [cit. 2020-03-23]. ISBN 978-92-79-64401-6. Dostupné z: https://www.adaptic.cz/znalosti/slovnicek/perl/
- ↑ Co je to HTML?. Artic Studio [online]. [cit. 2020-03-23]. Dostupné z: https://www.artic-studio.net/slovnicek-pojmu/jazyk-html/
- ↑ CSS. Adaptic [online]. [cit. 2020-03-23]. Dostupné z: https://www.adaptic.cz/znalosti/slovnicek/css/
- ↑ 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