Skip to main content
CODE 98460
ACADEMIC YEAR 2024/2025
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05
LANGUAGE English
TEACHING LOCATION
  • GENOVA
SEMESTER 1° Semester
TEACHING MATERIALS AULAWEB

OVERVIEW

A Software Platform is a software system aimed at hosting applications. Software Platforms leverage networking technology, object oriented programming, cloud computing, and service oriented computing to obtain scalable software systems able to support distributed software applications.

The Software Platform class builds upon the competences acquired during the undergraduate courses in Information Engineering to enable the attendees on the one hand to understand, configure and tune the available Software Platforms and on the other hand to design and implement ad-hoc Software Platform tailored to specifica application domains. 

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)

GIANNI VIARDO VERCELLI

PIERPAOLO BAGLIETTO (President Substitute)

CARLO ANDREOTTI (Substitute)

CARLO CAVAZZONI (Substitute)

LUCA GAGGERO (Substitute)

MAURO MIGLIARDI (Substitute)

LESSONS

Class schedule

The timetable for this course is available here: Portale EasyAcademy

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
  3. Students with learning disorders will be allowed to use specific modalities andsupports that will be determined on a case-by-case basis in agreement with the delegate of the Engineering courses in the Committee for the inclusion of Students with Disabilities.

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

Data appello Orario Luogo Degree type Note
13/02/2025 09:00 GENOVA Esame su appuntamento
12/09/2025 09:00 GENOVA Esame su appuntamento