CODICE 98460 ANNO ACCADEMICO 2023/2024 CFU 6 cfu anno 1 COMPUTER ENGINEERING 11160 (LM-32) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE ING-INF/05 LINGUA Inglese SEDE GENOVA PERIODO 1° Semestre MATERIALE DIDATTICO AULAWEB PRESENTAZIONE Una Software Platform è un sistema software destinato ad ospitare applicazioni. Usa le tecniche del networking, della programmazione orientata agli oggetti, del cloud e del service oriented computing per ottenere sistemi software scalabili in grado di supportare le applicazioni informatiche distribuite della presente generazione. Il corso di Software Platform fa leva sulle competenze acquisite nel corso della Laurea Triennale per introdurre e formalizzare i fondamenti delle Software Platform, in modo da consentire agli studenti da un lato di capire il funzionamento di quelle oggi rese disponibili dai principali vendor e dall’altro di progettare e realizzare Software Platform ad hoc per domini applicativi specifici. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI Software Platforms is a fundamental module in the software development path. The development of complex software systems does not only require proficency in programming but also the knowledge of advanced models, paradigms and tools. Software Platforms describes the models, the paradigms and the tools which support Web Applications, Web Services and Microservices, and introduces the evolution toward serverless computing. 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 Platforms 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 Annotations Reflection Thread Pools Dynamic Class Loading Paradigms Call/Response Message Passing Publish and Subscribe Web Applications, Web Services e Service Oriented Architecture Web Server (Server Side vs Client Side processing) Web Services (SOAP e REST) 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 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. CARLO CAVAZZONI Commissione d'esame MASSIMO MARESCA (Presidente) MAURO MIGLIARDI GIANNI VIARDO VERCELLI PIERPAOLO BAGLIETTO (Presidente Supplente) LEZIONI INIZIO LEZIONI https://courses.unige.it/11160/p/students-timetable Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME Esame orale alla fine del corso e test al computer sui programmi presentati a lezione Per gli studenti che hanno frequentato, la prova orale potrà essere integrata con lo sviluppo di studi monografici. Agli studenti che hanno disturbi specifici di apprendimento (DSA) sarà consentito di utilizzare modalità e supporti specifici per l'esame, determinati caso per caso in accordo con il delegato dei corsi di Ingegneria nella Commissione per l'inclusione di Studenti con Disabilità. 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 studente abbia inizio durante il corso delle lezioni, attraverso l’esecuzione di esercizi proposti dal docente e l’analisi di Sw Platform esistenti, e termine 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 15/02/2024 09:00 GENOVA Esame su appuntamento 13/09/2024 09:00 GENOVA Esame su appuntamento