Skip to content

Alessandro-Mosconi/nsds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Networked Software for Distributed Systems

Project Overview

This project was developed as part of the "Networked Software for Distributed Systems" course at Politecnico di Milano, taught by Prof. Luca Mottola and Prof. Alessandro Margara during the academic year 2023–2024.

🎓 Final Grade: 30/30

The objective was to gain hands-on experience with modern middleware technologies and frameworks used in building scalable, distributed systems and network applications.The project covers a wide range of technologies, each selected to highlight different aspects of distributed computing, from messaging systems to stream processing and IoT.

Technologies Used

  • Akka
    A toolkit for building highly concurrent, distributed, and fault-tolerant applications using the actor model and asynchronous message passing.

  • Kafka
    A distributed event streaming platform designed for high-throughput, low-latency real-time data pipelines and stream processing.

  • Spark
    A powerful engine for large-scale data analytics with support for batch processing, streaming, machine learning, and graph computation.

  • Node-RED
    A flow-based development tool for visual programming, commonly used to integrate APIs, hardware, and online services.

  • MPI
    The Message Passing Interface, a standard for parallel programming in distributed-memory systems.

  • IoT (Contiki)
    An open-source operating system for the Internet of Things, optimized for resource-constrained devices and wireless communication.

Topics Covered

  • Distributed communication models (message passing, pub/sub)

  • Actor-based concurrency with Akka

  • Event streaming and data pipelines with Kafka

  • Scalable data analytics using Apache Spark

  • Visual flow-based programming with Node-RED

  • Parallel computing with MPI

  • IoT systems and embedded networking using Contiki OS

  • Evaluation of scalability, fault-tolerance, and responsiveness across platforms

Repository Structure

The repository is organized into subfolders, each dedicated to a specific technology. Inside each folder, you will find:

  • Evaluation Labs: These labs were graded and contributed to the final course score.

  • Exercise Labs: Labs where exercises were assigned to explore and implement key concepts hands-on.

Team Members

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •