Questo repository contiene il codice per un sistema di storage distribuito nell'edge-cloud continuum. Il caso d'uso per cui è stato pensato il sistema è quello di un'organizzazione che possiede diversi dispositivi (e.g. IoT) che fanno upload e download di file dal cloud.
I casi d'uso considerati per il sistema sono:
- Upload
- Download
- Delete
Il sistema è formato dalle seguenti componenti:
- LoadBalancer, con codice in /load_balancer
- Registry, con codice in /registry
- Edge, con codice in /edge
- Client, con codice in /client
Il progetto usa Docker e Docker Compose per istanziare le diverse componenti
Per fare il deployment nel docker engine locale è stato preparato uno script nella directory /test che permette di mandare in esecuzione il sistema nella sua interezza:
./system_start.sh <numeroEdgeDesiderati>
Si esegua il comando dalla directory /test
Per eseguire le operazioni, eseguire il comando
docker exec -ti sdcc_project-client-1 ./client_run.sh
Ed inserire le credenziali:
- Username: test
- Password: test
Per testare il sistem,a i file da usare possono essere inseriti (per upload) o essere trovati (per download) nella directory /docker/client_files.
Per eseguire i casi d'uso si procede come segue:
- download & fileName
- upload & fileName
- delete & fileName Il file viene cercato in automatico nella directory /files del container client.
Usando gli script :
- /test/sequential_test.sh
- /test/parallel_test.sh Si possono testare le funzionalità del sistema, prendendo i tempi di esecuzione e salvandoli in file CSV della directory "/test/Results".
/test/sequential_test.sh <useCase> <edgeNum> <preliminarUpload>
Dove:
- useCase può essere "up", "down_cache", "down_no_cache"
- preliminarUpload può essere "prp_up" oppure nulla, per fare upload preliminare dei file sul cloud in caso di test di download
/test/parallel_test.sh <useCase> <edgeNum> <preliminarUpload>
Dove:
- useCase può essere "up_all", "down_all", "mixed"
- preliminarUpload può essere "prp_up" oppure nulla, per fare upload preliminare dei file sul cloud in caso di test di download