Vývoj webových aplikací 2 [A4M39WA2]
Cvičení
Test 2 - 2014
On premise (nasazeni SW na vlastnim PC)
2 cloud sluzby od MS (Office 365, Skype, Azure, Hotmail…)
rizika cloud sluzeb (Cloud computing sebou nese dvě hlavní kategorie rizik. První z nich je riziko ztráty nebo poškození, respektive znehodnocení dat. Druhým rizikem je jejich odcizení, respektive expozice dat nežádoucím subjektům.)
2 moznosti trvaleho ulozeni Azure (Tables, Blobs)
3 DB funkce, co nejsou v Cloudu (konzistence, pevné schéma, transakce)
Jak se propojuje objekt v JPA (EntityManagerem)
Derefered binding (vlastnost Google Web Toolkit pri konverzi Javy do JavaScriptu, „dynamic class-loading that occurs at compile time instead of execution time“. Ruznym prohlizecum se dostanou ruzne varianty skriptu.)
Kde ukladat video v Azure (BLOB)
Validace v JSF (pomocí implementace rozhraní javax.faces.validator.Validator)
Testy jsou na 10 bodů, každá otázka za 1 bod, cca 20 minut.
Test 1
Co je to REST
Rozdíl mezi Javou SE a EE
Jaké vrstvy má J2EE aplikace
Co je to anotace v Javě
Co je to PaaS, IaaS a SaaS
Jaké jsou metody RESTu a k čemu slouží
Jak lze realizovat dědičnost entit v databázi
Kdo je vlastníkem ve vztahu 1:N, M:N v ORM a v relační databázi
Nakreslete schéma MVC při využití JSP
Test 2
Typy úložišť (DB) v Cloudu od Google - High Replication a Master/slave
Typy úložišť (DB) v Cloudu od Microsoftu - Table, BLOBS, Drivers, Queue
Jaká jsou omezení pro SQL v Cloudových databázích - omezená podpora transakcí, eventual consistence
Jak zajistíme, aby aplikace poslouchala na portu 1427 v Google a jak v Microsoft Azure - Google: –port=1427 nebo do dev_appserver.xml <dev_appserver war=„war“ port=“desired-port-number”/> Azure:?
Jaké jsou typy rolí v Microsoft Azure - work a web
Jaké vlastnosti musí mít RESTful aplikace - Uniformní interface - definován
URI; client-server; stateless; cache; layered system; code on demand (optional)
Co to je nasazení aplikace „on premise“ - software na desktopu
Co je to škálovatelnost, elasticita a redundance a jaký je mezi tím rozdíl. -
Test 2 - 2013
Test 1 - 2013
Co musí splňovat rest? [2 body]
Jaké jsou požadavky, aby se použil cloud místo on premise? [1 bod]
Co se rozumí pojmem 'container' v souvislosti se servlety? [1 bod]
Jak se obecně chovají servlety ve vícevláknovém prostředí a jak se chovají v google app engine? [2 body]
Jaké jsou tři typy cloudu? [1 bod]
Popište funkci anotací v jave a uveďte příklad. [1 bod]
Jakou funkci má v MVC v ee javě jsp, servlet, java bean, nakreslete obrázek. [asi 1 bod]
Co je to deffered binding v GWT?
Zkouška
Zkouška 5.6.2015
Asi 8 otázek (4 teorie, 4 praktické), 1 hodina času na vypracování, minimum 15 bodů z 35, u ustní lze získat maximálně 15 bodů.
Napíše se test, pak jdete popořadě ke Klímovi, kde s ním test projdete a opravíte, většinou se zeptá ještě na nějakou otázku aby věděl že tomu opravdu rozumíte anebo když vám tam něco chybí.
Pak jdete k Mudrovi na ústní zkoušku, vybere asi 2 otázky podobné jako byly v semestru u písemky (Frotny v Azure=typy a popis, Lamportovy hodiny,…).
Každý je tam dohromady asi 20 minut (oprava + ústní), takže se to pak docela protáhne až do odpoledne.
High replication - Popis, zápis, čtení, může být i obrázek [2 body]
Hadoop, Map a Reduce - Map =, Reduce =, může být i obrázek Hadoop architektury [3 body]
GWT Deferred binding [2 body]
Tu 4. teoretickou už si napamatuji…
Architektura systému podle zadání: Máme databázi elektrických spotřebičů a podle příchozích informací (logo, čárový kód, QR kód,…) máme poznávat o jaký se jedná. - Ideální je nakreslit obrázek Klienti, Webrole, Fronta, Workerrole - musí jich být více, Blob úložiště, Relační DB a popsat co se v jednotlivých uzlech dělá. [14 bodů]
Které operace systému lze paralelizovat [2 body]
Rest rozhraní (které metody (GET, POST, PUT, DELETE) +
URL + popis hlavičky když je potřeba) [8 bodů]
Zápis, čtení, smazání a úprava spotřebiče
Zápis, čtení, smazání a úprava vlastností spotřebiče
Dlouho jsem nevěděl co je tím vlastně myšleno, nakonec mu stačilo něco jako:
POST …/Spotrebic {„nazev“ : “…“} –header 'Content-Type: application/json' a co to vrátí?
GET …/Spotrebic/{id} atd…
Zkouška 19.5.2014
- Zde
Byla zadaná úloha, docela jednoduchý IS a k němu pak hromada otázek
jak udělat REST rozhraní, když chceme, aby to umělo …
zvolte platformu a úložiště pro realizaci a zdůvodněte
ukázka kódu pro uložení entity do DB
nějaký složitý use-case a máme navrhnout řešení (třeba výpočet složitých statistik)
udělat ekonomický model
popsat jak bychom to škálovali
navrhnout distribuovaný algoritmus pro daný výpočet (stačí popsat jak řídit instance, co budou dělat a tak)
ústní zkouška je na dlouho, každý tam stráví tak 10-15 minut
dá se s ním o tom dobře diskutovat, občas se stane, že každý tu otázku pochopí jinak, ale to není problém
chce vidět, že tomu člověk rozumí a umí přemýšlet, pak vezme i řešení, která se mu nelíbí. Hodně záleží na zdůvodnění
20.5.2013
Popište architekturu Hadoop
Popište algoritmy Map a Reduce na Hadoop
V jakých stavech se může nacházet entita JPA?
Co je to Content negotiation?
Co je to Deferred binding v GWT?
V druhé části byl zadaný systém, něco jako: Navrhněte systém pro zpracování dat s kvalitních kamer. Sys. bude mít REST API pro vložení i získání videa. Sys. bude upravovat formát videa pro mobilní zařízení (iPad, iPhone, tablet, …). Navrhněte pro platformu MS Azure.
Navrhněte architekturu
Popište sekvenčním dia., jak bude probíhat zpracování videa
Udělejte cenovou kalkulaci (nechtěl konkrétní ceny, ale jak byste postupovali)
Co budete dělat v případě, že se zvýší počet producers (ti co posílají videa z kamer) a consumers (ti co si pouští videa)
Jaká datová uložiště použijete a proč
-
Poznámky
Dá se s ním docela dobře diskutovat, pokud nejste úplně dutý. Bacha na ústní se docela dost ptá podrobně na věci z GWT (komunikace klient-server) či Hadoop (high replication). Občas položí fakt divnou otázku: „Jaký je rozdíl mezi Web service a REST?“ Trvalo 10 min než jsem z něj dostal, že chce slyšet toto: „Výsledkem volání Web service je nějaká hodnota (když sčítám: 1+1) třeba 2. U RESTu je výsledkem něco jako: {„result“: „2“}“. Rozdíl je tedy v tom, že WS vrací hodnotu té funkce (integer), ale REST vrací celou odpověď (objekt).
Literatura
Nahoru