Course Details

Design and implementation of networked software systems

MF0243

Course
Design and implementation of networked software systems
Code
MF0243
Academic Year
2023/2024
Curriculum Year
2021/2022
Degree Programme
BIOLOGY
Curriculum
000 - CORSO GENERICO
Course coordinator
-
Lecturers
Credits
9
Lecture Hours
72
Scientific Disciplinary Sector (SSD)
INF/01 - Computer Science
Course Type
Single-subject learning activity
Course Delivery
OBB - Obbligatoria
Year
3
Teaching period
Annuale
Campus
ALESSANDRIA
Teaching language
Italian
Course Contents
- Local Area Network architectures - Architecture and Design of Event-Driven Applications - Fog-computing, Internet of Things - Design and implementation of a network application based on an Event-Driven architecture
Reference Texts
Author: James F. Kurose, Keith W. Ross Title: RETI DI CALCOLATORI E INTERNET - Un approccio top-down Publisher: Addison Wesley (2005), ISBN 88-7192-225-5. Author: Chris Richardson Title: MICROSERVICES PATTERS, wth examples in Java. Publisher: Manning, Shelter Island.
Learning Outcomes
To develop the capability of designing a network application based on the concept of distribuited micro-services.
Prerequisites
The course assumes that the student have the fundamental notions in software engineering and in computer networks, thought in the courses of software engineering, object programming, Web Programming and Computer networks-I.
Teaching Methods
The course includes: Lectures (48 hours) Activity assisted by the teacher (24 hours). Individual activity self-organized by the student.
Assessment Methods
The assessment of the concepts and skills acquired by the student includes two
steps:
- A written test on the theory part of the program, including questions and exercises.
- A demonstration of the working prototype developed by the teams, including an individual evaluation of the acquired skills.
The final grade is established by taking into account the results reached in both verification steps. It is required a sufficient level of knowledge and skills on both aspects: theory and project work.
Detailed Syllabus
The program is structured into two methodological modules plus a laboratory module. Module 1: Datalink, Ethernet, ARP, switches. Wireless Networks: signial transmission techniques, wifi, Bluetooth, ZigBee. Multi-media communication on IP networks. Distributed application architecture: Communication through private and public networks, Message Brokers. Mosquitto, RabbitMQ. API-rest: principles, URI discovery, version handling. Authentication and Security: a. Mosquitto. b. RabbitMQ. c. OAuth2.0: Authentication, token generation and handling.Module 2: Micro-service architectures: Stateless servers, RPC based communication, Message broker based communication. IoT+Microservice architectures. Design Patterns: a. Domain driven design. b. Event Sourcing Design. server access from clients via REST Gatway. Distribuited synchronization in microservies. Architecture examples for Gateway, microservice. Project: Students are required to develop a network application following the design patterns provided in the examples provided by the the teacher.
Expected Learning Outcomes
We expect that the student will acquire the capability of designing and implementing a distributed architecture following the stet of the art paradigms.
Last update:09-09-2026 00:14:31