SOFTWARE PLATFORMS

SOFTWARE PLATFORMS

_
iten
Code
98460
ACADEMIC YEAR
2018/2019
CREDITS
6 credits during the 1st year of 8733 Computer Engineering (LM-32) GENOVA
SCIENTIFIC DISCIPLINARY SECTOR
ING-INF/05
TEACHING LOCATION
GENOVA (Computer Engineering)
semester
1° Semester
Teaching materials

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

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

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 Sowftare 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. Thread Pools
    3. 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

Ricevimento: At the end of the lectures in the first semester Upon appointment in the rest of the year

Exam Board

MASSIMO MARESCA (President)

ALBERTO GIORDANO

PIERPAOLO BAGLIETTO

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.

EXAMS

Exam description

  1. Midterm exam
  2. Written exam at the end of the lectures for the students who attended the class
  3. Oral exam 
  4. Alternatively the instructor may propose specific research projects.

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.