Data la natura complessa di Crypthat i primi giorni di produzione del progetto sono stati dedicati alla definizione di una struttura precisa del progetto, utile a dividere il lavoro in parti più piccole e "stagne" permettendo così una maggiora collaborazione all'interno del team di sviluppo.
Il concetto di sviluppo per "Punti di Incontro" è stato adottato basandosi sul funzionamento della pila ISO/OSI dove ogni strato comunica con quelli adiacenti tramite dei SAP(Service Access Point) che permettono la libertà totale all'interno di ogni livello di astrazione ma allo stesso tempo garantiscono la funzionalità definendo, nel caso di Crypthat, metodi o eventi di accesso tra diversi livelli.
Crypthat sfrutterà inoltre il modello client/server per le connessioni.
Si è deciso quindi di creare 3 progetti distinti:
La struttura di Crypthat adoperata è visibile nella seguente immagine:
Come è possibile notare dalle immagini, il progetto è composto da 4 parti principali:
Il gestore logico è il cuore del progetto. In questa classe sono inseriti i metodi che mettono in comunicazione l'interfaccia con la parte di connettività, formulando messaggi strutturati che possono essere interpretati dai vari Gestori Logici degli utenti connessi alla chat.
Il gestore logico, inoltre, si occupa di attribuire un messaggio ad una Identity registrata nella lista degli utenti connessi e di verificarne l'identità.
Dovendo svolgere lavori diversi tra Client e Server, gestore logico è derivato in GestoreLogicoServer e GestoreLogicoClient.
Nel seguente codice è possibile vedere come un messaggio in arrivo dallo strato di connessione è interpretato dal GestoreLogico.
Le classi di Cifratura, invece, contengono una serie di algoritmi comuni di cifratura che vengono utlizzati dal GestoreLogico, come RSA, AES e ASCII Art.
In RSAManager è inoltre presente un servizio che si occupa del rinnovo delle chiavi pubbliche ogni N secondi.
L'interfaccia grafica utilizza gli eventi del GestoreLogicoClient per mostrare all'utente lo stato della chat e per interagire con il GestoreLogico (ad esempio per l'invio di Messaggi).
Il programma server non presenta alcuna interfaccia dato che deve essere performante e si occupa solamente di smistare i messaggi e gestire gli utenti connessi.
Il livello più basso di Crypthat è composto dalle classi di gestione della connessione che grazie ad un livello astratto (ConnectionManager) permettono al progetto di comunicare con praticamente ogni tipologia di rete. Queste classi, inoltre, si occupano solo del trasferimento dei dati e non verificano identità o semantica dei messaggi.
Sottoscriviti a questo Blog via RSS.
Sito 1
Programmazione (2) Organizzazione (1) Connessioni (2) Interfaccia (1) Crittografia (3) Sito (1)