· Architettura del software: fondamenti
• introduzione e concetti di base
• descrizioni e viste architetturali
• qualità del software e progettazione per le qualità
• processo di definizione dell'architettura software
• Architettura dei sistemi distribuiti
• introduzione ai sistemi distribuiti
• paradigmi di interazione: invocazione remota, comunicazione asincrona
• pattern architetturali per sistemi distribuiti: client-server, peer-to-peer, broker, messaging
e altri
• Architettura a servizi e microservizi
• architettura orientata ai servizi (cenni)
• servizi REST
• architettura a microservizi
• Stream processing and data management
• Introduzione allo straming dei dati e ai Messaging Systems
• Introduzione e scopi di Apache Kafka
• Kafka architettura
• Schema Management in Kafka
• Stream processing con Kafka
• NoSQL DB
• MongoDB: introduzione
• Panoramica sui DB noSQL: pregi e difetti
• Obiettivi e campi applicativi
• ACID vs BASE
• Operazioni CRUD (Create, Read, Update, Delete)
• Documents, collections e formati JSON/BSON
• Big data analysis
• Introduzione ed Ecosistema di Apache Hadoop
• Panoramica sull’architettura e struttura di Hadoop
• Problematiche nei sistemi di grandi dati
• Perchè Hadoop e i suoi vantaggi
· Introduzione ad Hadoop Distribuited File Sistem
• Distrubuzione dei processi in un cluster
• Panoramica di Hive e Data Storage
• Vantaggi e motivi del loro utilizzo
• Introduzione a Spark
• RDDs (Resilient Distributed Datasets)
• Buildare un’ Applicazione Spark con Scala o Java
• Esecuzione dell’Applicazione Spark