Hattrick Stadium Corso di Reti di Calcolatori LS Anno Accademico 2005/2006 Dolif Emilano matr. 0000196349 Sommario Introduzione Hattrick Stadium Client Server CORBA Conclusioni & Sviluppi futuri Manuale d’uso Introduzione Un nuovo tipo di videogames Una volta i videogames erano utopia, una volta i videogames erano solo in sala giochi, recentemente i videogames erano "la playstation", oggi, grazie ad internet e all' ADSL, si può giocare on-line a costo zero con tutto il mondo. Il più conosciuto al mondo è Hattrick. Che cos’è Hattrick ? Hattrick è un gioco manageriale di calcio on-line che permette agli utenti registrati di gestire una squadra di calcio. L’utente ha la possibilità di controllare lo stato della squadra, impartire gli ordini per l’allenamento, intervenire sul mercato per vendere o comprare giocatori, o per fare una semplice chiacchierata con altri utenti conosciuti all’interno del gioco. Hattrick Stadium Che cos’è ? Hattrick Stadium vuole essere un programma integrativo di Hattrick che offre l’opportunità ai giocatori di seguire più partite in contemporanea, fino ad un numero massimo di 10. Servizi disponibili Load/Unload partite; Segnalazione aggiornamento : Video; Audio (disattivabile); Internazionalità L’applicazione è disponibile in tre lingue : italiano, inglese e tedesco. Architettura IDL Interface STUB SKELETON ORB Client Trd nec t Op tio n Con s Interface Options Lo ad Dele Load te Delete TrdAgg GestoreXml Client .form .java Il comportamento dell’applicazione può essere suddiviso in tre fasi : Fase di organizzazione ; Fase di connessione a server e ricezione dei dati ; Fase di gestione dei dati ; Client Interface Load/Delete offre all’utente una panoramica di tutte le partite selezionate. raggiungibili dal menu “Strumenti” permettono il caricamento e l’eliminazione delle partite. Options consente di selezionare la lingua con cui si desidera utilizzare l’applicazione, ricevere le cronache e abilitare/ disabilitare i segnali audio. Client Trd estende la classe Thread; si occupa dell’attivazione della classe TrdAgg ogni 60 secondi, dello stato dell’aggiornamento e di visualizzare il countdown del prossimo; TrdAgg si occupa dell’aggiornamento vero e proprio dell’applicazione: crea l’ oggetto Client; recupera le informazioni richieste; aggiunge alle cronache le azioni salienti avvisando l’utente con un segnale sonoro e visualizzando un’icona grafica accanto alla partita corrispondente; GestoreXml Client si occupa del recupero delle informazioni salvate su un documento xml utilizzato come database. Per la realizzazione è stata importata la libreria JDom che offre ottime soluzioni java-based per l’accesso, la manipolazione e la produzione di file xml. gestisce la vera e propria connessione con il Server, si occupa della inizializzazione dell’ORB, della determinazione del contesto, della creazione dello Stub , dell’invocazione dei metodi ed infine del recupero dei risultati. Server Interfaccia ar St to t, S p, s Re et St ar .form t, St op ,R .java es et Trd Server GestoreXml MessageImpl Il compito del Server è quello di fornire le informazioni richieste dal Client: Una richiesta di aggiornamento semplice (singolo minuto) ; Una richiesta di aggiornamento dal minuto iniziale al minuto attuale ; Server Interfaccia Trd Server gestisce la connessione con il Client compiendo le seguenti azioni: visualizza il minuto corrente delle partite e mette a disposizione tre comandi : Start, Stop, Reset. estende la classe Thread e si occupa del cronometro e della sua visualizzazione sull’interfaccia. inizializza l’ORB; risolve il naming context; ottiene un riferimento al POA; crea l’oggetto servant e lo registra presso il POA; attiva il POA; attiva i servizi; ImplMessage implementa i metodi richiesti dal Client al Server. GestoreXml si occupa della gestione dei file xml. CORBA Middleware : Infrastruttura per l’interazione tra Client e Server. Indipendenza tra Client e Server : L'ORB intercetta la chiamata e si prende l'incarico di cercare un oggetto che possa realizzare la richiesta, gli passa i parametri, ne invoca i metodi e restituisce il risultato. Il Client non deve essere al corrente di dove sia posto l'oggetto, del suo linguaggio di programmazione, sistema operativo o di ogni altro aspetto di sistema che non sia parte dell'interfaccia di un oggetto. Conclusioni & Sviluppi futuri Conclusioni : L’applicazione sopra descritta presenta e risolve le problematiche consuete che nascono tra due unità indipendenti che interagiscono tra di loro per fornire/ottenere informazioni. Il progetto è stato testato più volte sia in locale che su diverse macchine ( 5 nello specifico) e l’esito è sempre stato positivo. Sviluppi futuri : Un primo passo per il miglioramento dell’applicazione sarebbe quello di provvedere alla replicazione del server per consentire di far fronte ai guasti e per ottimizzare i tempi di risposta. Un ulteriore sviluppo futuro riguarda l’aspetto manageriale dell’applicazione: la possibilità di implementare la gestione delle partite di coppa e quindi dei tempi supplementari e dei rigori. Manuale d’uso Avviamento del servizio di nomi: Salvataggio dell’ IOR : All’avvio viene richiesto di indicare il file contenente l’IOR. Cronache : Copiare l’IOR del tnameserv su un file di testo; Avvio del Client e del Server : Digitare da shell il comando “tnameserv”; Sono momentaneamente disponibili le cronache di 5 partite. L’ID delle partite sono contenuti all’interno del file “ID-Match.txt” presente all’interno della cartella Client. Durata delle partite : La durata reale di una partita di Hattrick è di 90 minuti più ulteriori 15 minuti di intervallo tra primo e secondo tempo Per velocizzare la simulazione un minuto reale è stato ridotto a soli 12 secondi, quindi la durata totale di una partita in Hattrick Stadium è di 21 minuti. Bibliografia e Riferimenti [1] http://www.cinidisicilia.it/dblog/articolo.asp?articolo=153 [2] http://www.hattrick.org [3] http://www.it.gnome.org/gnomefaq/1-0/corba.html [4] http://www.jdom.org