Salta al contenuto principale della pagina

SOFTWARE PLATFORMS

CODE 98460
ACADEMIC YEAR 2022/2023
CREDITS
  • 6 cfu during the 1st year of 11160 COMPUTER ENGINEERING (LM-32) - GENOVA
  • 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)

    MAURO MIGLIARDI

    GIANNI VIARDO VERCELLI

    PIERPAOLO BAGLIETTO (President Substitute)

    LESSONS

    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
    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

    Date Time Location Type Notes
    16/02/2023 09:00 GENOVA Esame su appuntamento
    15/09/2023 09:00 GENOVA Esame su appuntamento