You are on page 1of 9

Data – Hodnota schopná přenosu, uchování, interpretace či zpracování (data sama o sobě nemají

sémantiku)

Informace – interpretovaná data – mají sémantiku (např definujeme pojem binární číslo a sémantiku
toho jak jdou po sobě 1/0 a co to znamená)

Znalosti – informace zařazená do souvislostí – shluky informací

Systém – množina prvků a vazeb mezi nimi, které jsou definovány na nějakém nosiči (nosič – množina
prvků systému ve vzájemných vztazích)

Stav systému – Zpětná vazba systému / hodnota zdrojů

Dělení systémů podle nosiče – Fyzické – s nosičem s fyzickými zdroji (obchodní firma) X Informační
(obvykle modeluje nějaký fyzický systém)

Obecný systém Informační systém

Stav informačního systému – hodnoty dat, kde se musíme zabývat jejich persistencí a konzistencí
(splňování jistých pravidel o možných kombinacích hodnot údajů ve stavu)

Informační systém – otevřený systém, jehož nosič používá konceptuální zdroje – informace (nakládá
s nehmotnými zdroji)

Pyramidové schéma

• OLTP – online transaction processing


o Třída IS, které zpracovávají transakčně
orientované aplikace
• MIS – Management Information Systems
o Informační systém pro podporu řízení
o Poskytují informace pro efektivní řízení
organizace
o Obecně užívané pro zpracování informací, které jsou určené pro automatizaci a podporu
rozhodování
Centrální informační systémy – centrální počítač s databází a aplikacemi (aktivace aplikací z terminálů
jednotlivých pracovníc stanic) – Z hlediska architektury není použita síťová komunikace (není klient)

Lokální síť - zavedení lokálního klienta, aplikace jsou na PC a databáze na speciálním serveru v rámci
lokální sítě

Klient server – standartní... známe z ISA – Tloušťka klienta určuje inteligenci

• Na nižší úrovni použta síťová komunikace standardizovaná protokoly internetu TCP/IP


• Ve vyšší vrstvách aplikačních protokolů se nejčastěji komunikuje seializovanými daty, případně
SQL

Třívrstvá architektura (dál 3L)

• Prezentační vrstva – vizualizuje informace pro


uživatele (grafické rozhraní)
• Aplikační vrstva – Jádro aplikace, logika a funkce,
výpočty a zpracování dat
• Datová vrstva – databáze, síťový souborový
systém, webová služba nebo jiná aplikace

Monolitický systém – vyvíjí se a nasazuje jako jeden celek (typické pro 3L), snáze zvládnutelný vývoj,
testování, obtížnější a pomalejší nasazování nových verzí

Distribuované struktury – service oriented architecture, microservices, pokročilé informační systémy

Mikroslužby – aplikace je rozdělena na malé části (vlastní databáze, business logika, aplikační rozhraní
(síťové)) – typicky miniaturní tým pro každou část – nasazují se odděleně

Modelování – prováděno jistým typem systému pro řízení báze dat (relační/objektový model)

Protokol HTTP – aplikační protokol nad TCP/IP – komunikaci začíná klient – HTTP požadavek/odpověď

Metody HTTP – GET – získání dokumentu ; POST – zaslání dat ; PUT – nahrazení dokumentu ; DELETE –
smazání dokumentu; a další HEAD,CONNECT,OPTIONS,TRACE,PATCH

MIME typ – typy jako – text/plain, text/html, text/xml, application/json, application/x-www-form-


urlencoded, image/jpeg

Správa sezení (session) – protokol HTTP je bezstavový, potřebujeme rozlišit požadavky pocházející od
stejných nebo různých klientů

• Nově příchozím uživatelům vygenerujeme ID – SESSION ID (při prvním požadavku od nového


klienta)
• Tímto identifikátorem se klient prokazuje u každého dalšího požadavku

Cookies – malý objem dat, který serverová aplikace může uložit na straně klienta (jméno a hodnota);
každá cookie má také cestu a expiraci – Server posílá v hlaviččce Set-Cookie: X;Y, Klient jen Cookie: X;Y

HTML A PHP JE PŘESKOČENO


Relační SŘDB – databázový server – Formalizovaná struktura na základě analýzy domény; databázový
server umožňuje efektivnější práci s velkým objemem dat; může běžet na jiném serveru než je webový
server – dostupný přes síť

Doménový model – E-R diagram nebo diagram tříd (identifikace entit a vztahů mezi nimi) – je třeba
převést ještě na schéma databáze (normalizace)

Primární klíč – U všech tabulek, které figurují ve vztazích nebo je nutné řádky jednoznačně identifikovat

• Přirozený – např rodné číslo, ale je zase problém co se týče legislativy nebo GDPR
• Umělý – je nutné zajistit unikátnost, většinou counter nebo nějaký UUID algoritmus

Indexy – Pomocná datová struktura usnadňující vyhledávání podle hodnoty – B+ strom nad jedním nebo
více sloupci (automaticky nad primárními klíči)

Práce s databází

1. Připojení k databázovému serveru – autentizace !aplikace!


2. Připojení ke konkrétní databázi – DB server ověří práva
3. Zaslání SQL dotazu – získáme výsledek dotazu O.o kdo by to byl čekal
4. Převzetí a zpracování výsledku
5. Ukončení spojení

PHP Data objects – Abstrakce nad databázovým systémem, poskytuje standartní rozhraní pro základní
aplikace – toto rozhraní implementují ovladače pro jednotlivé konkrétní systémy (MS SQL, IBM, MySQL)

Připojení k databázi

Zaslání dotaz – dá se udělat jednorázový dotaz nebo opakovaný (připravení dotazu a pak execute)

Zpracování výsledků – pomocí fetch (načítá postupně řádky) nebo fetchAll který vezme všechno
Aplikační frameworky – rámcová řešení pro implementaci serverových aplikací; poskytují API (třídy a
metody) pro běžné úlohy a situace; vynucují pevnou strukturu aplikace; Tvůrce se může tak soustředit
pouze na tvorbu vlastního řešení – aplikační logika

• Úlohy frameworku: Zpracování HTTP požadavků, Tvorba GUI na serveru, komunikace s DB


• PHP frameworky – Laravel, Symfony, Nette

Bootstraping – aktivace funkcionality při příchodu HTTP požadavku – typicky se všechny požadavky
směřují do jednoho souboru – v tom je potom takový rozcestník, který jednotlivé požadavky posílá na
příslušnou aplikační logiku

Model-View-Contoller

• Model – třídy implementující business logiku


• View – Generované HTML, šablona naplněné daty
• Controller – přiřazený k HTTP požadavku (routing), volá metody modelu, na základě vytváří
VIEW

Dependency injection – framework zabezpečuje vytváření objektů; každá část specifikuje požadované
služby; Framework vytvoří a dodá instanci

Composer – většina frameworků ho používá pro vytvoření a správu projektu a instalaci závislostí
Strukturovaný datový typ = datová struktura = metadata

Struktura - dvojice jméno, hodnota obecně různých typů (prostě struct v céčku)

Kolekce – předem neomezený počet hodnot stejných datových typů (prostě pole v céčku); operace –
add, item, count, remove

Agregáty – takový popis nebo obecné informace/vlastnosti kolekce (pčoet prvků, max, min, sum,
průměr)

Objekt – Struktura s identifikací (OID) – každý objekt má tedy unikátní identifikaci; obvykle první
vlastností je právě OID

Data – konkrétní hodnota Metadata – jak vypadají data (formální popis struktury dat)

Meta-Metadata - jak vypadají metadata – relační: relace je kolekce struktur, SQL jako prostředek
definice metadat

Meta^3data – jak se popisuje databázový model – kolekce, struktura

Pak jsou tam věci jako – Databázové a konceptuální modely, ER diagram a objektový model – prostě
základy IDS

Objektově relační mapování (ORM) – databázová vrstva zajišťující automatické mapování objektů na
relace a zpět - program pracuje s objekty, ORM vrstva vytváří SQL dotazy, transofrmuje data; zajišťuje
konzistenci aplikace a schématu databáze
Serializace – proces konvertování datových struktur nebo stavů do formátu, který může být buď uložen
nebo přenášen síťovým přenosem

Deserializace – rekonstrukce hodnoty na tentýž nebo jiný použitelný netextový formát

Pak projít JSON a XML

application/x-www-form-urlencoded – serializace struktury s položkami textového a booleovského


typu – mezery se převádějí na + a nealfanumerické znaky na %hh, kde hh je hexadecimální kód znaku;
hodnoty položek jsou odděleny &

multipart/form-data – serializace struktury s položkami textového a booleovského typu – pouze pro


mětodu POST. Každé odeslané pole zde má svůj vlastní oddíl, oddělený oddělovačem (boundary string)
zvoleným tak, aby nekolidoval s odesílanými daty
XML-RPC – standard webových API – využívá HTTP POST požadavky a přenáší XML; definuje jednoduchý
formát dokumentů pro popis volání a odpovědí

SOAP - standard webových API – Simple Object Access Protocol – rozšíření formátu zpráv; WSDL – web
service description language – umožňuje popsat a sdílet rozhraní služby v XML

REST – XML-RPC a SOAP jsou teoreticky nezávislé na HTTP; REST je navržen pro HTTP; zjednodušeuje
přenášená data; REST = Representational state transfer

GraphQL – má jediný endpoint URL

Endpoint – URL, na které lze zaslat požadavek, reprezentuje zdroj, který má nějaký stav

• Endpointy pro operace se zdroji


• Endpointy pro volání funkcí

Stavové kódy HTTP – odpovídá výsledku nějaké operace

• 200 – OK, 201 – Created, 400 – Bad request, 403 – Forbidden, 404 – Not found, 500 – Internal
server error

XML JE PŘESKOČENO (naučit se převod JSON na XML a zpět)


Tenký klient – prohlížeč – zobrazuje HTML, odesílá GET a POST, prezentační logika je na serverové
straně

Tlustý klient – aplikace (webová, mobilní, ... ), volá funkce aplikačního rozhraní a prezentační logika je na
klientské straně

Pak je tam Javascript a popis odesílání/příjmání požadavků v něm aaaaaa Jquery

Same-origin policy – bezpečnostní omezení v prohlížečích; Skript může posílat požadavky jen na zdroje
se stejným origin (schéma, hostname a port) jako má URL skriptu; je možné rozvolnit toto omezení na
cílovém serveru (V HTTP hlaviččce: Access-Control-Allow-Origin: *)

JWT Json web token – Řetězec je složen ze tří částí xxxxx.yyyyy.zzzzz – toto se kóduje pomocí base64

1. Header – účel, použité algoritmy (JSON)


2. Payload – JSON data, obsahující ID uživatele, jeho práva a expiraci
3. Signature – pro ověření, že token nebyl podvržen nebo změněn cestou

Postup autentizace s JWT

1. Klient kontaktuje autentizační server a dodá autentizační údaje – stejný server, jaký poskytuje
API nebo klidně úplně jiný
2. Autentizační server vygeneruje podepsaný JWT a vrátí klientovi
3. Klient předá JWT při každém volání API (Nejčastěji v HTTP hlaviččce Authorization)

Oauth – uživatel má účet na nějaké službe a chce nějaké aplikaci povolit přístup ke službě přes API, ale
nechce své přístupové údaje sdílet s aplikací – Dvě verze protokolu 1.0 (složitější, nezávislý na protokolu)
a 2.0 (Zjednodušeno, používá HTTPs)

Oauth postup autentizace

1. Aplikace musí být předem registrována u Služby (např. Google)


2. Aplikace přesměruje prohlížeč uživatele na autorizační stránku Služby
a. uživatel se logne a služba ho přesměruje zpět na aplikace a předá autorizační kód
3. Aplikace pošle POST požadavek obsahující kód na API služby – služba vrátí přístupový TOKEN –
to může být buď JWT nebo nějaký jiný tajný kód – aplikace používá tento token s každým
požadavkem

Oauth Password Grant – Pokud uživatel může dát přístupové údaje aplikaci – ta je přímo klient dané
služby, mají stejného poskytovatele, Aplikace pošle POST požadavek na API obsahující přilašovací údaje
(API zase vrací Token)
Databázová integrita - databáze musí vyhovovat zadaným pravidlům – integritním omezením. Tato
omezení jsou nejčastěji součástí definice databáze a za jejich splnění odpovídá SŘDB

Referenční integrita – Prostě odkaz na primární klíč nějakého jiného prvku databáze

Konzistence - DB musí splňovat všechna integritní omezení

Data-centrické modely – několik procesů, jedna skupina dat

Klient-centrické modely – jeden model, několik skupin dat

Databázová transakce - představuje jednotku práce vykonávanou v databázovém systému nad databází
a zpracovávanou souvislým a bezpečným způsobem nezávisle na jiných transakcích.

ACID - Atomičnost (každá transkace je dokončena celá nebo vůbec), Konzistence (správná reflexe stavu
reálného světa a dodržování omezujících pravidel), Izolovanost (souběžné provádění má totožný efekt
jako sekvenční), Trvanlivost (odolnost proti ztrátě již dokončených změn)

Programátor je zodpovědný za vytváření konzistentních transakcí a TPS (Transactional processing


system) zaopatřuje atomičnost, izolovanost a trvanlivost

OLTP – Online transaction processing – aplikace, ve které jsou spouštěny transakce

TPS - Transactional processing system – systém podporující provádění transakcí

You might also like