TENNIS MANAGER Un supporto per la gestione in tempo reale di risultati tennistici. Progetto a cura di: Reti di Calcolatori LS - prof. ing. A. Corradi Università degli studi di Bologna Francesco Cantarini Obiettivi • Obiettivo: realizzare un progetto utilizzando argomenti a scelta rilevanti per i temi del Corso. • Idea: creare un’applicazione distribuita di supporto informatico a tornei di tennis. Analisi • Attori principali: “Aggiornatore” e “Visualizzatore”. • FUNZIONALITA’: Aggiornatore: Login, Selezione partita, Catalogazione eventi (statistiche), impostazione punteggi e tempi (durata set). Visualizzatore: Selezione partita, visualizzazione risultati e tempi, visualizzazione anagrafica e statistiche dei giocatori. Scelte • Tempi di consegna + costi scelta di implementare solo le applicazioni di aggiornamento e di visualizzazione informazioni “da browser”. • Middlaware Web Services perché: permettono l'interoperabilità tra diverse applicazioni software e su diverse piattaforme hardware/software ; fintanto che l'interfaccia rimane costante, le modifiche effettuate ai servizi rimangono trasparenti; utilizzano un formato dei dati di tipo testuale, quindi più comprensibile e più facile da utilizzare per gli sviluppatori. Web Services • Fase I: creazione delle classi “fornitrici dei servizi”; • Fase II: trasformazioni dele classi in Web Services attraverso il framework Axis. • Creazione di 12 Web Services TestLoginService GetMatchInformation SavePwdService GetMatchPointsService SelectEventService GetPlayerInformationsService SelectMatchTypeService GetPlayersStatisticsService SelectShiftService SavePlayersStatisticsService SelectPlayersService SavePointsService Tecnologie • Apache Axis: si tratta di un framework di programmazione e deployment di Web services (il livello SOAP risulta totalmente trasparente al programmatore). • IDE Eclipse + plugin WTP (Web Tools Platform). • Tomcat: Web Application Server open source. WSDL (Web Service Descriptor Language) • Linguaggio che serve a specificare dove si trovano i servizi e le operazioni esposte dal servizio web. • All'interno del documento esistono quattro elementi principali: <types> <message> <portType> <binding> • Esempio (TestLoginService) Persistenza • Tennis.mdb Database Microsoft Access già esistente. • ODBCDatabase: classe che, caricando il bridge JDBC-ODBC, permette di eseguire le query. • Ipotesi: il DB risiede dove risiedono i WS. • DBManagerService: classe “intermedia” (web service “in potenza”...) Sicurezza • Autenticazione “Aggiornatore” tramite username e password criptate attraverso una funzione Hash (a160 bit, SHA-1). • Possibile utilizzo della Basic Authentication di Axis, per l’accesso sicuro ai web service. • SSL (Secure Sockets Layer) Implementabile con la Server Authentication di Axis ma non necessario(le informazioni tennistiche non sono riservate). Invocazione con JAX-RPC (Java API for XML-Based Remote Procedure Call) • JAX-RPC: insieme di regole e strumenti per nascondere allo sviluppatore i dettagli della comunicazione SOAP tra i diversi nodi. • Fornisce supporto al mapping dei tipi da XML a Java (e viceversa). • Permette 4 modalità di invocazione dei WS: Stub creato da WSDL Dynamic Proxy Dynamic Invocation Interface (DII) Dynamic Discovery and Invocation (DDI) • InvokeWS: classe di invocazione nel progetto (utilizza DII). Pubblicazione dei servizi • È stato possibile pubblicare i web service utilizzando jUDDI e configurando un database (MySQL). • jUDDI: Implementazione,open source, Java delle specifiche di UDDI • Servizio invocabile tramite JAX-RPC in modalità DDI (non testato). Load Balancing • Load Balancing: permette ai client, in caso di bloccaggio di uno o più server, di continuare a usufruire del sistema ridirigendoli verso un’altra applicazione distribuita su un altro container. • Apache HTTP Server + mod_jk + Tomcat • Ripartizione del carico in maniera circolare (Round Robin pesato) Sviluppi Futuri • Ampliare il sistema con interfacce che permettano la visualizzazione anche in ambito broad-cast TV, palmare o TV digitale. • SOA: utilizzo di un Enterprise Service Bus e di BPEL (Business Process Execution Language). • Sistema di Monitoring con le API JMX. • Miglioramento delle funzionalità dell’applicazione. FINE