analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

22
UNIVERSITÀ DEGLI STUDI DI FIRENZE Facoltà di Ingegneria Tesi di laurea Relatori: Prof. Vito Cappellini Dr. Roberto Caldelli Ing. Francesco Filippini Ing. Rudy Becarelli Ing. Riccardo Giorgetti Corso di Laurea in Ingegneria Informatica Candidato: Mirko Manetti Anno Accademico 2009/2010 Analisi e trasferimento di un’applicazione web di servizio su piattaforma MHP

Upload: icl-image-communication-laboratory

Post on 28-Jan-2015

106 views

Category:

Technology


2 download

DESCRIPTION

Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp - Mirko Manetti - AA 2009-2010 Relatori: Prof. Vito Cappellini, Dr. Roberto Caldelli, Ing. Rudy Becarelli, Ing. Francesco Filippini, Ing. Riccardo Giorgetti

TRANSCRIPT

Page 1: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

UNIVERSITÀ DEGLI STUDI DI FIRENZE Facoltà di Ingegneria

Tesi di laurea

Relatori:Prof. Vito CappelliniDr. Roberto CaldelliIng. Francesco FilippiniIng. Rudy BecarelliIng. Riccardo Giorgetti

Corso di Laurea in Ingegneria Informatica

Candidato:Mirko Manetti

Anno Accademico 2009/2010

Analisi e trasferimento di un’applicazione web di servizio

su piattaforma MHP

Page 2: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

Sommario

• Obiettivo• Scenario di riferimento: la TV digitale terrestre• Il porting di applicazioni web su piattaforma MHP• Sviluppo dell’applicazione MHP Trenitalia• Dimostrazione dell’applicazione realizzata• Conclusioni e sviluppi futuri

Page 3: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

Obiettivo

Sviluppo di un’applicazione MHP che consenta il porting di servizi e contenuti finora disponibili solo su Web, sulla televisione digitale terrestre

TV & Set Top Box

Broadcaster

Segnale digitale terrestre

Canale di ritorno

Page 4: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

Lo standard DVBLo standard DVB fa riferimento alle specifiche rilasciate dall’ETSI al fine di regolare la trasmissione televisiva digitale.

MPEG-2

Page 5: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

Lo standard MHPMHP è uno standard aperto per la televisione digitale interattiva nato come estensione degli standard esistenti DVB e MPEG.

Page 6: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

Applicazioni MHP: le XletMHP si basa su un set di API Java che forniscono classi e interfacce per lo sviluppo di servizi interattivi per la televisione digitale

XletXletApplication

Manager

Page 7: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

Dal Web al DTTIl porting di applicazioni web in applicazioni MHP consiste nel trasporto di servizi, contenuti e funzionalità presenti su Web Server sulla Tv digitale interattiva

L’attività di parsing risulta particolarmente impegnativa laddove i contenuti resi disponibili dal content provider non hanno un formato compatibile con la piattaforma MHP

Page 8: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

Strategie di progettazioneRealizzazione di un proxy-server con la funzione di gateway applicativo tra Trenitalia e la piattaforma DVB-MHP

MHP Client

PROXYSERVER

Java Servlet

Web Server

Trenitali a

Richieste HTTP

Richieste HTTP

HTML+

JavaScript

XML

Page 9: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

Strategie di progettazioneRealizzazione di un micro-browser di contenuti XHTML

MHP Web Server

Trenitali a

Logica Client

3

Canale di ritorno

Richieste HTTP

HTML + Javascript

Page 10: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

L’ambiente di sviluppo

Page 11: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

Iter di sviluppoFase 1

• Studio dell’architettura della piattaforma Web• Scelta dei metodi di estrapolazione contenuti

• Studio delle possibili tecniche di porting (JavaBean)(Parser XML)

Page 12: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

Funzionamento dell’applicazione

System

Utente

Sistema di pagamento

Acquista biglietto

Servizio di acquisto biglietti ferroviari su Digitale Terrestre

Consulta treniScegli tariffa viaggio

Scegli opzioni viaggio

Scegli preferenze viaggio

Scegli modalità consegna biglietto

Verifica disponiblità

Scegli modalità pagamentoConferma pagamento

Compila intestazione biglietto

Inserisci dati autenticazione

<<include>>

<<include>>

<<include>>

<<include>>

<<include>>

<<include>>

Inserisci dati consegna domicilio

<<include>>

<<include>>

<<include>>

<<include>>

<<extend>>

<<include>>

Inserisci dati pagamento

<<include>>Conferma acquisto

<<include>>

<<include>>

Page 13: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

Iter di sviluppoFase 2

• Progettazione architettura lato client MHP

Natura modulare Separazione tra i componenti Facile riusabilità e manutenibilità

Page 14: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

Welcome

-init()+getGraphicComponent()+setGraphicComponent()+componentFocusGained()+componentFocusLost()+componentAtionPerformed()+attivaRitorno()

TravelChoice

-init()+displayData()+getGraphicComponent()+setGraphicComponent()+componentFocusGained()+componentFocusLost()

RateChoice

-init()+setDefaultPageContent()+dataUpdate()+getGraphicComponent()+setGraphicComponent()+componentFocusGained()+componentFocusLost()

Delivery

-init()+getGraphicComponent()+setGraphicComponent()+componentFocusLost()+componentFocusGained()+setPageContent()+checkDeliveryForm()+setVisibleForm()

Payment

-init()+getGraphicComponent()+setGraphicComponent()+componentFocusGained()+componentFocusLost()+saveForm()

ManagerDispatcher<<Singleton>>

+init()+getScene()+getContext()+getWelcome()+getTravelChoice()+getTravelDetailsPopUp()+getRateChoice()+getRateInfoPopUp()+getOptionPopUp()+getPreferencesPopUp()+getDelivery()+getPaySummary()+getPostoclick()+getPayment()+getPayConfirm()+getMessagesPopUp()

SystemEventsManager<<Singleton>>

-repository

+registerKeys()+unregisterKeys()+userEventReceived()+handleExit()+handleRed()+handleYellow()+handleBlue()+handleGreen()+handleOk()+handleDown()+handleUp()+handleLeft()+handleRight()+handleBack()

ActionPage1

+actionPerformed()

ActionPage2

+actionPerformed()

ActionPage6

+actionPerformed()

ActionPage7

+actionPerformed()

MyConnectionManager

#createHTTPConnection()#createHTTPSConnection()

Page1Adapter

+parse()-dataPreProcessing()-getData()

Page2Adapter

+parse()-dataPreProcessing()-noRegionalParsing()-regionalParsing()-recuperaDatiTariffe()-recuperaPreferenze()-popolaDettaglioTariffe()

Page6Adapter

+parse()-dataPreProcessing()-payDataProcess()

Page7Adapter

+parse()-dataProcessing()

JTidyCleaner

+createWellFormedDOM()+editDOM()

HTMLAdapter

+streamToStringConverter()+removeSpecialChar()+removeComments()

Dettaglio<<Singleton>>

-rateList: Vector-ratePrice: Vector-rateAvail: Vector-preferences: Vector-rateSelected: String-selectedChoice: int-car: String-isRegional: boolean-totalPrice: String-stazin: String-stazout: String-datag: String-datam: String-dataa: String-timesh: String-okForm: boolean-det: String-urlOption: String+urlTrenoposti: String-urlPref: String-postoclick: boolean-ordnum: String-cartnum: String-codicePNR: String-codiceMaster: String-tipoPagamento: String-importo: String-valuta: String-numOrd: String-idNegozio: String-emaileserc: String-userid: String-email: String-token: String-cardType: String-cardNumber: String-monthExpired: String-yearExpired: String-cvv2: String-firstName: String-lastName: String-PaReq: String-PaRes: String-termUrl: String-MD: String

+setAttribute()+getAttribute()

HTTPSConnection

+connect_noCert()+handshake()+handshakeCompleted()+fireErrorEvent()+fireContentEvent()+addHTTPSConnectionListener()+removeHTTPSConnectionListener()

Page 15: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

Funzionamento dell’applicazione

: Utente

: TravelChoice : RateChoice : SystemEventsManager : JTidyCleaner : HTMLAdapter : Page2Adapter : ActionPage2 : Dettaglio

1 : keyPressed()2 : handleEvent()

3 : actionPerformed()4 : createHTTPConnection()

5 : streamToStringConverter()

6 : removeSpecialChar()

7 : removeComments()

8

9 : createWeelFormedDOM()

10 11 : parse()

12 : getData()

13 : updateData()

14

1516

17 : setVisible()

Page 16: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

Iter di sviluppoFase 3

• Analisi dei contenuti HTML e scelta delle librerie J-Tidy nanoXML HAVi/AWT

Fase 4• Scrittura del codice• Testing

Page 17: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

Elaborazione dei contenuti<tr class="odd">

<td>09:10<br>FI.SMN</td>

<td>10:45<br>ROMA TE</td>

<td>01:35</td>

<td>9505 FRECCIAROSSA</td>

<td><img alt="ES Italia AV" src="http://static.trenitalia.com/it/......."></td>

<td>62,00 &euro;</td>

<td>44,00 &euro;</td>

</tr>

Page 18: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

Elaborazione dei contenuti

Page 19: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

La fase di pagamento

Client MHPServer del sistema di pagamento Sanpaolo

HTTPS

• HttpsUrlConnection non implementata nella JVM 1.3

• Programmazione a livello trasporto sfruttando i metodi della classe SSLSocket

• Implementazione della classe MyHttpsConnection

Page 20: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

Dimostrazione

Page 21: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

Conclusioni e sviluppi futuri• Trasferimento di un servizio web su piattaforma MHP• Rappresentazione fedele dei contenuti unita a semplicità d’uso

Sviluppi futuri:• Suggeritore automatico per inserimento dati• Modulo per il recupero dati carta di credito• Modulo universale per il pagamento su DTT

Page 22: Analisi e trasferimento di un’applicazione web di servizio su piattaforma mhp

Grazie per l’attenzione