Title: TENNIS MANAGER Un supporto per la gestione in tempo reale di risultati tennistici.
1TENNIS MANAGERUn supporto per la gestione in
tempo reale di risultati tennistici.
Progetto a cura di Francesco Cantarini
Reti di Calcolatori LS - prof. ing. A. Corradi
Università degli studi di Bologna
2Obiettivi
- Obiettivo realizzare un progetto utilizzando
argomenti a scelta rilevanti per i temi del
Corso. - Idea creare unapplicazione distribuita di
supporto informatico a tornei di tennis.
3Analisi
- 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.
4Scelte
- 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.
5Web 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
6Tecnologie
- 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.
7WSDL (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 - lttypesgt
- ltmessagegt
- ltportTypegt
- ltbindinggt
- Esempio (TestLoginService)
8Persistenza
- 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...)
9Sicurezza
- Autenticazione Aggiornatore tramite username e
password criptate attraverso una funzione Hash
(a160 bit, SHA-1). - Possibile utilizzo della Basic Authentication di
Axis, per laccesso sicuro ai web service. - SSL (Secure Sockets Layer)? Implementabile con la
Server Authentication di Axis ma non
necessario(le informazioni tennistiche non sono
riservate).
10Invocazione 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).
11Pubblicazione 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).
12Load Balancing
- Load Balancing permette ai client, in caso di
bloccaggio di uno o più server, di continuare a
usufruire del sistema ridirigendoli verso
unaltra applicazione distribuita su un altro
container. - Apache HTTP Server mod_jk Tomcat
- Ripartizione del carico in maniera circolare
(Round Robin pesato)
13Sviluppi 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à
dellapplicazione.
14FINE