LLD Server - Challengers-Software-Team/RegistroElettronico GitHub Wiki
Low Level Design Server Side
Il server side è composto da :
Servlet Base di Dati
Servlet
La nostra Servlet si occuperà della gestione di tutto il flusso di richieste in entrata, che verranno gestite tramite la creazione Thread leggeri che permetteranno lo smistamento delle richieste. Una volta ricevuta la richiesta la nostra Servlet accederà alla base di dati e renderà disponibile il file richiesto presentandolo tramite una pagina JSP che sarebbe una pagina html scritta tramite Java.
Funzionamento : La Servlet ad ogni richiesta di accesso contatterà la base di dati per verificare i dati. Se l’utente è autorizzato si crea un nuovo utente attivo, e di conseguenza si crea un nuovo thread TCP che rimane in ascolto del Client. Ricevuta la sua richiesta il thread utilizzerà il metodo della classe desiderato dal Client. La Servlet avrà a disposizione queste funzioni :
- Logout (Che termina la connessione con il server)
- Aggiunta dati nel database (Solo se dotati dei permessi necessari)
- Richiesta valutazioni (Invia le valutazioni al client)
- Richiesta dati personali (Invia dati personali al client)
- Aggiunta valutazioni (Solo da parte degli insegnanti)
Le richieste e l'aggiunta delle valutazioni verranno facilitate tramite l'utilizzo di un interfaccia JSP. Questo permetterà all'utente medio di eseguire le operazioni senza problemi di comprensione.
Base di Dati
La nostra base sarà composta due database e diverse tabelle :
In Grassetto sono indicate le chiavi primarie, in corsivo le chiavi esterne.
Database Banca Dati (Contiene i dati di tutta la scuola)
Utenti(Nome,Cognome,Sesso,DataNascita,LuogoNascita,CodiceFiscale,LuogoResidenza,IndirizzoResidenza)
Studenti(Matricola, CodiceFiscale, CodiceCorso)
Professori(Matricola, CodiceFiscale, Materia)
Valutazioni (Voto, Data, ID, MatricolaStudente, MatricolaProfessore)
Classi (CodiceCorso, Specializzazione)
DistribuzioneInsegnanti(Professore,CodiceCorso)
Presidi (Matricola, CodiceFiscale)
Database Password(Contiene i dati per il login degli utenti)
Utenti(Username, Password, Matricola)
Questa tabella serve per memorizzare le password e permettere di fare un login per gli utenti. Grazie alla matricola possiamo inoltre ricondurci ai dati dell'utente dell'altro database "BancaDati".
Utilizzeremo il protocollo TCP per garantire l’invio sicuro e corretto dei nostri dati. Saranno inoltre protetti tramite algoritmi di crittografia.