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
Scarica

Obiettivo