+ All Categories
Home > Documents > Corso di Laurea in Ingegneria Informatica anno accademico 2004-05 Gestione di un Sistema di Talk...

Corso di Laurea in Ingegneria Informatica anno accademico 2004-05 Gestione di un Sistema di Talk...

Date post: 01-May-2015
Category:
Upload: simona-morini
View: 212 times
Download: 1 times
Share this document with a friend
13
Corso di Laurea in Ingegneria Informatica anno accademico 2004-05 Gestione di un Sistema di Talk multiutente Candidato Bruno Aleandri 798026 Facoltà di Ingegneria Università degli Studi di Roma “La Sapienza”
Transcript
Page 1: Corso di Laurea in Ingegneria Informatica anno accademico 2004-05 Gestione di un Sistema di Talk multiutente Candidato Bruno Aleandri 798026 Facoltà di.

Corso di Laurea in Ingegneria Informaticaanno accademico 2004-05

Gestione di un Sistema di Talk multiutente

CandidatoBruno Aleandri798026

Facoltà di Ingegneria

Università degli Studi di Roma

“La Sapienza”

Page 2: Corso di Laurea in Ingegneria Informatica anno accademico 2004-05 Gestione di un Sistema di Talk multiutente Candidato Bruno Aleandri 798026 Facoltà di.

Registrazione dei client presso il server in fase di connessione

Creazione di stanze pubbliche con moderatore

Possibilità di richiedere una chat privata ad un utente

Chat private possono essere accettate, rifiutate o messe in coda

Lavagna grafica presente in chat pubbliche e private, con possibilità di caricare immagini di sfondo

Applicazione di chat client-server in tecnologia multithread, che prevede:

Page 3: Corso di Laurea in Ingegneria Informatica anno accademico 2004-05 Gestione di un Sistema di Talk multiutente Candidato Bruno Aleandri 798026 Facoltà di.

MainThread del server accetta le connessioni dei client che arrivano sul suo ServerSocket

Un nuovo thread denominato ClientHandler viene istanziato per ciascun client che si connette

Ogni client viene gestito dal proprio ClientHandler fino alla sua disconnessione dal server

Server tiene memoria degli utenti connessi e dei talk attivi tramite le proprie strutture dati ConnectionVector e TalkVector

Oggetti Connection e Talk rappresentano rispettivamente utenti connessi e talk attivi

SERVER

Page 4: Corso di Laurea in Ingegneria Informatica anno accademico 2004-05 Gestione di un Sistema di Talk multiutente Candidato Bruno Aleandri 798026 Facoltà di.

SERVER

Connection Vector Talk Vector

Bruno

Bruno ClientHandler di Bruno

CLIENT

username:

Bruno

Talk Vector

formula1

formula1

Connection Vector

identificativo:

formula1

moderatore:

Bruno

Bruno

Page 5: Corso di Laurea in Ingegneria Informatica anno accademico 2004-05 Gestione di un Sistema di Talk multiutente Candidato Bruno Aleandri 798026 Facoltà di.

CLIENT

Le classi dell’interfaccia grafica utilizzano i metodi della classe ChatClient per inviare comandi al server a seguito di azioni dell’utente (disaccoppiamento)

Classe ChatClient implementa anche un listening thread, che riceve i messaggi dal server

ChatClient istanzia un ServiceThread per ogni messaggio ricevuto dal server

Un’istanza di ServiceThread processa uno e un solo messaggio

ServiceThread aggiorna l’interfaccia grafica tramite i metodi pubblici delle classi di quest’ultima

Page 6: Corso di Laurea in Ingegneria Informatica anno accademico 2004-05 Gestione di un Sistema di Talk multiutente Candidato Bruno Aleandri 798026 Facoltà di.

SERVER

CLIENT

ChatClient

ServiceThread

GUI del client

Page 7: Corso di Laurea in Ingegneria Informatica anno accademico 2004-05 Gestione di un Sistema di Talk multiutente Candidato Bruno Aleandri 798026 Facoltà di.

PROTOCOLLO DI COMUNICAZIONE

Ogni messaggio è costituito da:

un codice identificativo con cui distinguere i comandi inviati dal client e le risposte del server

un elenco di parametri eventualmente necessari per il processamento della richiesta/risposta

Client e Server seguono le regole di un protocollo di comunicazione per lo scambio di messaggi.

Esempio: messaggio di chat inviato nel talk “formula1”:

200 formula1 <testo del messaggio>

Page 8: Corso di Laurea in Ingegneria Informatica anno accademico 2004-05 Gestione di un Sistema di Talk multiutente Candidato Bruno Aleandri 798026 Facoltà di.

STREAM DI OGGETTI

I comandi relativi al disegno devono quindi incapsulare tali oggetti:la classe Message rappresenta il generico comando inviato.Essa è provvista di:

un campo stringa, contente il codice identificativo e i parametri di tipo testoun campo LittlePoint, contente l’eventuale pixel

Un pixel disegnato sulla lavagna grafica è rappresentato tramite un oggetto della classe LittlePoint.

ObjectInputStream ed ObjectOutputStream utilizzati per veicolare oggetti Message.

Page 9: Corso di Laurea in Ingegneria Informatica anno accademico 2004-05 Gestione di un Sistema di Talk multiutente Candidato Bruno Aleandri 798026 Facoltà di.

LAVAGNA GRAFICA (1/2)

Consente agli utenti partecipanti a talk pubblici e privati di tracciare disegni, anche contemporaneamente.

Oltre al tracciamento di punti e linee, è possibile:

utilizzare una gomma per cancellare i disegni

selezionare colore e spessore del tratto, e la dimensione della gomma

caricare un’immagine (JPEG o GIF) come sfondo condiviso della lavagna

salvare su file, in formato JPEG, il contenuto della lavagna

L’utente può aprire o chiudere la lavagna nell’ambito di ciascun talk.

Page 10: Corso di Laurea in Ingegneria Informatica anno accademico 2004-05 Gestione di un Sistema di Talk multiutente Candidato Bruno Aleandri 798026 Facoltà di.

LAVAGNA GRAFICA (2/2)

I pixel disegnati sulla lavagna sono rappresentati dagli oggetti della classe LittlePoint.Oltre alla posizione, alla dimensione e al colore del punto, tali oggetti memorizzano anche l’eventuale immagine che si vuole condividere come sfondo della lavagna.

Un campo status è utilizzato per distinguere tra oggetti rappresentanti pixel e quelli contenenti immagini, e per specificare particolari operazioni da effettuare sulla lavagna.

Per permettere il refresh della lavagna, ogni utente che disegna è associato ad un vettore di LittlePoint rappresentante la sequenza di punti da lui tracciata.

Un ulteriore vettore denominato timeIndex tiene memoria della sequenza con cui gli utenti hanno disegnato.

Page 11: Corso di Laurea in Ingegneria Informatica anno accademico 2004-05 Gestione di un Sistema di Talk multiutente Candidato Bruno Aleandri 798026 Facoltà di.
Page 12: Corso di Laurea in Ingegneria Informatica anno accademico 2004-05 Gestione di un Sistema di Talk multiutente Candidato Bruno Aleandri 798026 Facoltà di.
Page 13: Corso di Laurea in Ingegneria Informatica anno accademico 2004-05 Gestione di un Sistema di Talk multiutente Candidato Bruno Aleandri 798026 Facoltà di.

Recommended