Post on 15-Feb-2019
1
Chat HELP DESK su HTTP
Presentazione Tesi di Laurea in Ingegneria Informatica N.O.
Relatore: Tutor:Luca Iocchi Andrea Vitaletti
Antonello Supino
2
Obbiettivi
Gestire un dialogo multimediale tra più utenti via reteProgettazione che tiene conto degli “ostacoli” alla comunicazione in rete (firewall, ip privati, proxy)Compatibilità e facilità di istallazioneInterfaccia grafica amichevole e intuitiva
3
Materiale Realizzato
Le applicazioni Client e ServerFiles batch per un avvio più facile e intuitivoDiagrammi delle classiAPI (Application Program Interface) in formato JavadocLa relazione finale
4
Scenario d’uso
Server
Client 2(Tony)
Client 1(Peter)
ciao come va?
heyTony ☺
tutto ok!
Client n(nomeutente)
1) Registrazione (Username e Password)
2) Login
3) Conversazione
5
Tecnologie utilizzate 1/3
Architettura Client-Server
La programmazione di Rete
6
Tecnologie utilizzate 2/3
I Thread Il modello di vita a quattro statiAdozione del Multithread e Sincronizzazione
Java: linguaggio OO con meccanismo per la gestione delle eccezioni
7
Tecnologie utilizzate 3/3
Utilizzo di un DBMS
Utilizzare i suoni in Java
L’interfaccia grafica(applet, swing e awt)
8
IP privato / messaggi
Client a Ip Pubblico Client a Ip Privato
Server
messaggio
header bodyClient Server
01110011101101027013
9
Dialogo tra Client e Server
MainConnection
10
Descrizione del Client 1/3
Login
Opzioni connessione
Lista utenti connessi(contattare un utente)
11
Descrizione del Client 2/3
Conversazione privataConversazione multiutente
Disegno e cancellazione delle lavagne
12
Descrizione del Client 3/3
Selettore di Files
Indicatore di avanzamento
Selettore di Slides
La banca dati audio in memoria
13
Descrizione del Server 1/2
Interfaccia grafica
Lo ShutDown del Server
Pinging e disconnessione automatica per timeout
Il Database su HDDati di sessione su vettori
14
Descrizione del Server 2/2
Smistamento delle connessioni entranti:Registrazione e DeregistrazioneLogin e LogoutMessaggi delle conversazioni privateMessaggi delle conversazioni multiutente
Disegno e cancellazione delle lavagne Ricezione e inoltro dei files Ricezione e inoltro delle slides
15
Problemi e Soluzioni
Riorganizzazione del codice in Packages per rendere comprensibile un’applicazione complessa
Client e Server possono ascoltare solo sulla porta 80
IP privato: non si accettano connessioni entranti
Memorizzare le linee disegnate sulla lavagnaper evitare la loro cancellazione dopo il repaint
Mascherare l’architettura di rete sottostante e i vari tipi di connessione, sfruttando la modularità del Java, per costruire un’unica architettura di chat ad un più alto livello
Reinplementazione della funzione readline per leggere dall’outputstream linee in formato byte senza utilizzare un buffer di sistema che tronchi i file successivamente inviati sullo stesso canale
16
Conclusioni e lavori futuri
Statistiche: 72 classi Java, 12905 LOC, 23 MbytesMessa in pratica delle conoscenze acquisite durante il corso di laurea
Miglioramenti:introduzione di tools grafici sulla lavagna(riempimento, retta, rettangolo, tavolozza colori ecc.) miglioramento della lavagna nella chat multiutente.
Utilizzare l’applicazione in un corso universitario per il ricevimento online degli studenti