Presentazione Tesi di Laurea in Ingegneria Informatica N.O. Triennale/Presentazione...

Post on 15-Feb-2019

232 views 0 download

Transcript of Presentazione Tesi di Laurea in Ingegneria Informatica N.O. Triennale/Presentazione...

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