CODICE 98460 ANNO ACCADEMICO 2018/2019 CFU 6 cfu anno 1 INGEGNERIA INFORMATICA 8733 (LM-32) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE ING-INF/05 SEDE GENOVA PERIODO 1° Semestre MATERIALE DIDATTICO AULAWEB PRESENTAZIONE Il Corso di Sw Platforms si inquadra nel contesto della progettazione e dello sviluppo del Software, attivita’ che richiedono non soltanto la conoscenza dei linguaggi di programmazione ma anche e specialmente la conoscenza di modelli e strumenti di sviluppo in continua evoluzione. A partire dal linguaggio Java descrive i modelli e gli strumenti alla base delle Web Applications, dei Web Services, dei Microservices, e introduce l’evoluzione verso il serverless computing. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI The course aims at introducing the architectural patterns and the paradigms that computer engineers use to build complex software systems. The objective is to describe and analyze the main patterns upon which software platforms are based OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO OBIETTIVI FORMATIVI Lo scopo dell’insegnamento e’ quello di fornire la conoscenza sui modelli e sugli strumenti alla base della progettazione e dello sviluppo di Sw Platforms. E” un corso di tipico di Ingegneria, rivolto non tanto a descrivere le modalita' con cui progettare e sviluppare Sw Platfroms quanto a descrivere i principi alla base del funzionamento delle stesse. Poiche’ le Sw Platform sono basate sul concetto di “servizio” l'insegnamento si concentrera’ su tale concetto e sulle modalita’ con le quali lo stesso e’ stato declinato nel passato e viene oggi declinato. RISULTATI DI APPRENDIMENTO Al termine dell’insegnamento lo studente sara’ in grado di classificare i modelli e gli strumenti per lo sviluppo di Sw Platform, con particolare riferimento al concetto si “servizio” analizzare e descrivere il funzionamento di Sw Platform esistenti facendo riferimento ai modelli ed agli strumenti acquisiti progettare Sw Platform, scegliendo le architetture e gli strumenti per l’integrazione maggiormente appropriati definire le modalita’ di integrazione di Sw Platform confrontare diversi modelli di sviluppo ed integrazione di Sw Platform La capacita’ di analisi del funzionamento delle Sw Platform e’ la caratteristica distintiva di questo corso. A differenza dei “programmatori”, che tipicamente sviluppano sistemi sw complessi semplicemente utilizzando piattafiorme esistenti in modo non sempre critic e consapevole, gli Ingegenri che avranno seguito l’insegnamento di Sw Platform avranno un'elevata sensibilita’ verso la comprensione delle modalita’ di funzionamento delle piattaforme utilizzate. METODI DIDATTICI Presentazione degli aspetti teorici e modellistici in aula da parte del docente; Presentazione di semplici programmi in aula da parte del docente, finalizzati a dimostrare in che modo i modelli presentati vengono utilizzati nella realta'; Realizzazione di semplici programmi da parte degli studenti (si incoraggiano gli studenti a venire a lezione con un laptop), da un lato per favorire un atteggiamento critico verso la materia e dall'altro per favorire l'acquisizione di competenze operative; Studio ed analisi di Sw Platform esistenti proposte dal docente; Studio di testi e di White Papers ed in generale di documentazione proposta dal docente. MODALITA’ DI ACCERTAMENTO Frequenza ed assiduita’ alle lezioni; Test sulla conoscenza dei modelli e degli strumenti presentati a lezione; Sviluppo di documenti di descrizione di Sw Platform esistenti; Analisi della capacita’ di sviluppo di semplici programmi come quelli descritti a lezione L’obiettivo che ci si pone e’ che la valutazione dello student abbia inizio durante il corso delle lezioni, attraverso l’esecuzione di esercizi proposti dal docente e l’analisi di Sw Platform esistenti, e termini alla fine del corso attraverso una discussione con il docente nel quale quanto sviluppato durante il corso viene consolidato. PREREQUISITI Object Oriented Programming in Java Computer Networks MODALITA' DIDATTICHE Presentazione degli aspetti teorici e modellistici in aula da parte del docente; Presentazione di semplici programmi in aula da parte del docente, finalizzati a dimostrare in che modo i modelli presentati vengono utilizzati nella realta'; Realizzazione di semplici programmi da parte degli studenti (si incoraggiano gli studenti a venire a lezione con un laptop), da un lato per favorire un atteggiamento critico verso la materia e dall'altro per favorire l'acquisizione di competenze operative; Studio ed analisi di Sw Platform esistenti proposte dal docente; Studio di testi e di White Papers ed in generale di documentazione proposta dal docente. PROGRAMMA/CONTENUTO Introduzione: Architectural Patterns, Paradigms, Frameworks Java come piattaforma per il supporto all'implmentazione di Software Platform complesse. Network Interface Thread Pools Dynamic Class Loading Paradigms Call/Response Message Passing Publish and Subscribe Web Application, Web Services e Service Oriented Architecture Web Server (Server Side vs Client Side processing) Web Services Sw Platforms basate su Microservices Evoluzione verso devops (Continuous Integration/Continuous Delivery) Introduzione a Virtual Machines e Containers Architecture di riferimento Strumenti per la composizione e per l'orchestrazione Evoluzione verso il Serverless computing Analisi dei principi di alcune piattaforme software (ad es. Spreadsheet Space, Blockchain). TESTI/BIBLIOGRAFIA Main Reference manuals and books: Apache Tomcat Manual, www.tomcat.apache.org Apache Axis 2 Manual, axis.apache.org/axis2/java/core I. Nadareishvili, R. Mitra, M. Mc Larty & Mike Amundsen, Microservice Architecture, O' Reilly, 2016 Sam Newman, Building Microservices, O' Reilly, 2015 W. Gjda, Pro Vagrant, www.allitebooks.com S. Goasguen, Docker in the Cloud, O' Reilly, 2016 D. Rensin, Kubernetes, O' Reilly 2015 DOCENTI E COMMISSIONI MASSIMO MARESCA Ricevimento: In coda alle lezioni durante il periodo delle lezioni. Su appuntamento nellla restante parte dell'anno. Commissione d'esame MASSIMO MARESCA (Presidente) PIERPAOLO BAGLIETTO ALBERTO GIORDANO LEZIONI Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME Compitino e meta' corso Esame scritto alla fine del corso per gli studenti che hanno frequentato Esame orale In alternatiuva sviluppo di studi monografici. MODALITA' DI ACCERTAMENTO Frequenza ed assiduita’ alle lezioni; Test sulla conoscenza dei modelli e degli strumenti presentati a lezione; Sviluppo di documenti di descrizione di Sw Platform esistenti; Analisi della capacita’ di sviluppo di semplici programmi come quelli descritti a lezione L’obiettivo che ci si pone e’ che la valutazione dello student abbia inizio durante il corso delle lezioni, attraverso l’esecuzione di esercizi proposti dal docente e l’analisi di Sw Platform esistenti, e termini alla fine del corso attraverso una discussione con il docente nel quale quanto sviluppato durante il corso viene consolidato. Calendario appelli Data appello Orario Luogo Tipologia Note 21/02/2019 09:00 GENOVA Esame su appuntamento 10/06/2019 09:00 GENOVA Esame su appuntamento