ÚVOD / Studijní obory / Sylaby / Analýza dat a jejich vizualizace

Softwarová architektura

Cílem předmětu je popsat softwarovou architekturu systémů zpracovávající velký objem dat a představit specifické problémy, které je potřeba v těchto systémech řešit. V předmětu se zaměříme na popis komponent moderních informačních systémů a souvisejících procesů, které umožňují získávat velký objem dat ať již z klasických zdrojů či ze zdrojů Internetu věcí. Kromě předvádění architektury na reaálných příkladech v rámci jedné sady seminářů budou studenti také v dalších seminářích realizovat pod vedením vyučujícího větší projekt i spolu s návrhem a realizací architektury a návrhem a implementací datové vrstvy. 
K tomuto účelu budou v rámci předmětu využívány i některé technologie související s tvorbou frontendu a backendu informačních systémů. Studenti budou seznámeni také s problematikou velkých databází a to včetně postupů a pravidel jejich návrhu a správy. Předmět předpokládá u studentů schopnost realizace softwarového backendu a frontendu, které jsou podmínkami celého magisterského programu a jsou zopakovány ve volitelném předmětu Základy softwarového vývoje. Přesto v rámci předmětu budou existovat role konzultantů pomáhající studentům projekty v dané technologii realizovat.

Sylabus předmětu

Témata probíraná v předmětu
  1. Relační databáze - přehled relačních  databází, nasazení, nastavení, vytvoření a dotazování, přehled nejznámějších databází
  2. Optimalizace relačních databází - metody optimalizace dotazů v relačních databázích, vytváření indexů
  3. Škálovatelnost databází - partitioning databází, typy partitioningu a jeho použití, database sharding, virtualizace databází, in memory processing
  4. Datawarehouse - úvod do datawarehouse v souvislosti s business inteligence, návrh konkrétního datawarehouse, ETL process
  5. Datawarehouse - SQL analytické funkce, Multidimensional Expressions (MDX)
  6. NoSQL databáze - úvod do NoSQL přístupu, přehled jednotlivých řešení
  7. MongoDB - základy databáze MongoDB a její vlastnosti
  8. MongoDB - práce s databází a konkrétní dotazování
  9. MongoDB - škálování MongoDB, vytváření clusterů a práce
  10. Využití MongoDB - představení případové studie
  11. Hadoop - části ekosystému Hadoop včetně MapReduce, HDFS, YARN, Spark a dalších, škálování pomocí Hadoop a Spark
  12. Představení Teradata - řešení problematiky uložení dat pomocí Teradata
  13. Úvod do archtektury systémů souvisejících se zpracováním velkého množství dat
  14. Vlastnosti architektury pracující s Big Data - distribuovanost, škálovatelnost, vysoká dostupnost a další.
  15. Představení případové studie informačního systému pracující s Big Data
  16. Architektura zpracovávající velká data - popis komponent zpracovávající velká data jako jsou vstup dat, ukládání, zpracování a analýza s následnou prezentací výsledků.
  17. Role IoT v systémech zpracovávající Big Data - IoT jako producenti dat, IoT jako aktivní prvky, zapojení IoT zařízení do celé architektury. 
  18. Zpracování dat - datová integrace, ETL proces a jeho rozšíření o úložiště typu Hadoop, vyhledávání v datech včetně dynamického indexování či fultextového vyhledávání pomocí Solr
  19. Cloud computing - charakteristiky systémů využívající cloudové řešení, vlastnosti cloudového řešení z pohledu zpracování velkého množství dat
  20. Analytické komponenty - role analytiky, možné dotazy nad daty, využívané postupy analytiky, požadavky Business Inteligence
  21. Příklad architektury informačních systémů - Unicorn Application Framework
  22. Architektura systémů zpracování dat pro Azure - Azure Analytics Pipeline, zasílání dat do Azure, ukládání dat v Azure a real-time zpracování
  23. Zpracování dat v Azure - dávkové zpracování dat - Map Reduce, Spark, Data Lake Analytics v HDinsight a jeho řízení pomocí Azure Data Factory, zapojení Machine Learning.
  24. Detailní rozbor komponent případové studie z pohledu architektury systému pracující s Big Data
Témata pro realizaci projektu
  1. Technologie  tvorby softwarového frontendu - HTML5, nativní mobilní aplikace, webové aplikace, responzivní design, Univerzální aplikace
  2. Technologie pro tvorbu backendu - SOA, REST API, Cloud computing, realizace aplikační vrstvy, technologie tvorby datové vrsty založené na Big Data

Organizace výuky

Prezenční forma

Výuka probíhá ve 12 přednáškách po 1,5 hodině a 12 seminářích po 3 hodinách.

Doporučená literatura

Základní:
  • Kazman, R. and Cervantes, H. Designing Software Architectures: A Practical Approach. Addison-Wesley Professional, 2016, ISBN: 0134390784. 
  • Tejada, Z. Mastering Azure Analytics: Architecting in the Cloud with Azure Data Lake, HDInsight, and Spark. O'Reilly Media; 1 edition, 2017, ISBN: 1491956658.
  • Stackowiak, R., Licht, A., Mantha, V., Nagode, L. Big Data and The Internet of Things: Enterprise Information Architecture for A New Age. Apress, 2015, ISBN: 1484209877. 
  • Marz, N., Warren, J. Big Data: Principles and best practices of scalable realtime data systems. Manning Publications, 2015, ISBN:1617290343 
  • Marr, B. Big Data in Practice: How 45 Successful Companies Used Big Data Analytics to Deliver Extraordinary Results. Wiley, 2016, ISBN:1119231388. 
  • Parsian, M. Data Algorithms: Recipes for Scaling Up with Hadoop and Spark. O'Reilly Media, 2015, ISBN:1491906189
  • Chodorow, K. Scaling MongoDB: Sharding, Cluster Setup, and Administration. O'Reilly Media, 2011, ISBN:1449303218.
  • Inmon, W.H., Linstedt, D. Data Architecture: A Primer for the Data Scientist: Big Data, Data Warehouse and Data Vault. Morgan Kaufmann, 2014, ISBN:012802044X.
Doporučená:
  • Hendricksen, D. 12 Essential Skills for Software Architects. Addison-Wesley Professional, 2011. ISBN:0321717295.
  • Bass, L., Clements, P.,Kazman, R. Software Architecture in Practice (3rd Edition). Addison-Wesley Professional, 2012, ISBN: 0321815734.
  • Plunkett, T., Macdonald, B., Nelson, B., Hornick, M., Sun, H., Mohiuddin, K., Harding, D., Mishra, G., Stackowiak, R., Laker, K., Segleau, D. Oracle Big Data Handbook. McGraw-Hill Education, 2013, ISBN:0071827269.
  • Redmond , E., Wilson, J. Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement. Pragmatic Bookshelf, 2012, ISBN:1934356921.