SistemaSJavalin Sprint1

Introduction

Goal: Realizzazione in Java del seguente servizio di valutazione di espressioni matematiche.

Requirements

Il committente fissa i seguenti requisiti:

  1. realizzare un servizio Java che calcoli i valori dell'espressione sin(x) + cos(√3 * x)
  2. utilizzare il javalin server per abilitare la ricezione di messaggi via WebSocket, ma anche HTTP/1 e HTTP2
  3. all'utente verrà presentata una pagina html che gli permetta di specificare la x per cui si vuole ottenere il risulato e la modalità di interazione (WebSocket, Get o Post)
  4. il deployment dell'applicazione deve avvenire mediante Docker

Requirement analysis

Ragionando sui requisiti forniti, risulterà necessario avere:

  1. una funzione eval che prenda in input un numero reale x e restituisca il risultato della valutazione della funzione desiderata
  2. un server javalin per la gestione del flusso di messaggi in arrivo da e verso il componente realizzato

Problem analysis

Come primo passo, si definirà l'architettura del sistema. In accordo ai principi delle Clean Architecture e in modo dunque da evitare che la scelta del framework da utilizzare influenzi il dominio, il sistema verrà strutturato a livelli:

  1. livello di infrastruttura: qui opera javalin, gestendo i protocolli e prelevando dai messaggi le informazioni rilevanti per il livello di dominio;
  2. livello di adattamento: è il livello intermedio che trasforma i dati di basso livello forniti dall'infrastruttura nei dati richiesti dall'applicazione;
  3. livello di dominio: la funzione eval vista prima definisce la business logic del sistema, indipendente da javalin e protocolli vari.

Vi sarà inoltre una pagina html con relativo file di scripting javascript l'interazione con l'utente.

Test plans

Project

Testing

Deployment

Avviene tramite piattaforma Docker grazie ai seguenti file:

Maintenance



By Cesare Tomasi