Salta al contenuto principale della pagina

SOFTWARE PLATFORMS

CODE 98460
ACADEMIC YEAR 2020/2021
CREDITS 6 credits during the 1st year of 11160 COMPUTER ENGINEERING (LM-32) GENOVA
SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05
LANGUAGE English
TEACHING LOCATION GENOVA (COMPUTER ENGINEERING )
SEMESTER 1° Semester
TEACHING MATERIALS AULAWEB

OVERVIEW

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.

AIMS AND CONTENT

LEARNING OUTCOMES

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.

AIMS AND LEARNING OUTCOMES

At the end of the course students will be able to:

  1. assess the models, the paradigms and the development tools for Sowftare Platform development, with particular reference to the "service" concept ;
  2. analyze and describe the working principles of Software Platforms using the aforementioned models, paradigms and tools as a reference;
  3. design Software Platforms taking advantage of the appropriate models, paraidgms and tools;
  4. integrate Software Platforms;
  5. compare different Software Platform development and integration methodoloies and tools.

The distinctive characteristics of the Sw Platforms class is the focus on the platform internals. 

PREREQUISITES

  1. Object Oriented Programming in Java
  2. Computer Netwiorks

TEACHING METHODS

  1. Presentation of models, paradigms and tools by instructor;
  2. Presentation of simple programs aimed at demonstrating the way the models, the paradigms and the tools can be used;
  3. Realization of programs by students (students are encouraged to bring their laptop);
  4. Study and analysis of existing Software Platforms proposed by instructor.
  5. Study and analysis of books, manuals and white papers proposed by instructor.

SYLLABUS/CONTENT

  1. Introduction: Architectural Patterns, Paradigms, Frameworks
  2. Java as a Platform to support the implementation of complex SW Platforms
    1. Network Interface
    2. Annotations
    3. Reflection
    4. Thread Pools
    5. Dynamic Class Loading
  3. Paradigms
    1. Call/Response
    2. Message Passing
    3. Publish and Subscribe
  4. Web Application, Web Services and Service Oriented Architecture
    1. Web Server (Server Side vs Client Side processing)
    2. Web Services
  5. Sw Platforms basate su Microservices
    1. Evolution to devops
    2. Introduction to Virtual Machines and Containers
    3. Reference Architectures
    4. Tools for composition and orchestration
  6. Evolution to Serverless computing
  7. Analysis of the principles of some existing Sw platforms (e.g., Spreadsheet Space, Blockchain).

RECOMMENDED READING/BIBLIOGRAPHY

Main Reference manuals and books:

  1. Apache Tomcat Manual, www.tomcat.apache.org
  2. Apache Axis 2 Manual, axis.apache.org/axis2/java/core
  3. I. Nadareishvili, R. Mitra, M. Mc Larty & Mike Amundsen, Microservice Architecture, O' Reilly, 2016
  4. Sam Newman, Building Microservices, O' Reilly, 2015
  5. W. Gjda, Pro Vagrant, www.allitebooks.com
  6. S. Goasguen, Docker in the Cloud, O' Reilly, 2016
  7. D. Rensin, Kubernetes, O' Reilly 2015

TEACHERS AND EXAM BOARD

Exam Board

MASSIMO MARESCA (President)

ALBERTO GIORDANO

PIERPAOLO BAGLIETTO (President Substitute)

LESSONS

TEACHING METHODS

  1. Presentation of models, paradigms and tools by instructor;
  2. Presentation of simple programs aimed at demonstrating the way the models, the paradigms and the tools can be used;
  3. Realization of programs by students (students are encouraged to bring their laptop);
  4. Study and analysis of existing Software Platforms proposed by instructor.
  5. Study and analysis of books, manuals and white papers proposed by instructor.

Class schedule

All class schedules are posted on the EasyAcademy portal.

EXAMS

EXAM DESCRIPTION

 

  1. Oral exam and programming test on the programs presented at the lectures
  2. In addition, the student who have attended the lectures may present lab project ..

ASSESSMENT METHODS

  1. Presence and diligence at lectures ;
  2. Test on knowledge of models and tools;
  3. Devlopment of studies on existing Software Platforms;
  4. Development of simple programs on the topics decribed in class.

The assessment will start during the lectures through the development of exercises and the analysis of Siftware Platforms and will terminate at the end of the lectures through a discussion with the instructor.

Exam schedule

Date Time Location Type Notes
18/02/2021 09:00 GENOVA Esame su appuntamento
17/09/2021 09:00 GENOVA Esame su appuntamento