Lezione 9 – Caratterizzazione di servizi web validi
Transcript
Lezione 9 – Caratterizzazione di servizi web validi
Lezione 9 – Caratterizzazione di servizi web validi Ingegneria dei Processi Aziendali Modulo 1 – Servizi Web Unità didattica 1 – Protocolli Web Ernesto Damiani Università di Milano Caso di studio: servizio web di convertitori di valuta • Si crei un servizio web che converta un valore in una valuta nel valore equivalente in un‟altra valuta usando i tassi di una particolare data – Ad esempio, il 2 Novembre 2010, alla chiusura delle contrattazioni 100 € equivalevano a 140,33 $ Supponiamo che il nome dell‟host per questo servizio sia: www.cambiavalute.com Step 1: identificazione delle risorse • La risorsa è un form di conversione valute Si noti che l‟URL è un URL logico Step 2 • Il client GETs (“prende”) il form immettendo l‟URL Step 3 • Il client riempie il form e poi lo invia (POST) allo stesso URL (quindi “aggiornando” il form) Attenzione! Direzione errata! • Stiamo andando nella direzione sbagliata! • Il nome “convertitore valute” avrebbe dovuto immediatamente avvertirci di un problema: è un processo! – Il “form” del convertitore valute nasconde l‟intenzione di fare qualcosa. È il paradigma di programmazione RPC che si insinua furtivamente nel Web • Il paradigma REST non riguarda l‟invocazione di processi, bensì lo scambio di informazioni • Un convertitore di valute non è un servizio web appropriato secondo il paradigma REST Analogie con un servizio web di conversione documenti • Sarebbe ragionevole creare un servizio web che converte i formati di documenti? Attenzione! Direzione errata! L’approccio corretto Analogie con un servizio web di conversione immagini • Sarebbe ragionevole creare un servizio web che converte i formati delle immagini? Attenzione! Direzione errata! L’approccio corretto FAQ • “Supponiamo che abbia ottenuto un file .bmp di un‟immagine importante e voglia renderla disponibile ai client attraverso un servizio web. Attualmente non ci sono disponibili altri formati dell‟immagine (.jpg, .gif). Questo non è un esempio di situazione in cui sarebbe utile un servizio web che converte il formato delle immagini?” Risposta alla FAQ • “No! Ovviamente la conversione è necessaria, ma questo non significa che dovrebbe essere creato un servizio web separato. Esistono già molti pacchetti open-source che convertono le immagini e il servizio web dovrebbe usare uno di questi (attraverso una composizione) Analogie con un servizio web di ordinamento • Sarebbe ragionevole creare un servizio web di ordinamento? Attenzione! Direzione errata! L’approccio corretto Servizio web di convertitori di valute • Sarebbe ragionevole creare un servizio web che converte le valute? Attenzione! Direzione errata! L’approccio corretto Dal paradigma dei processi al paradigma delle informazioni • Si noti come abbiamo riformulato i problemi, dal “fare qualcosa” allo “scambiare informazioni” (in un formato appropriato) – Invece di un convertitore dei formati dei documenti, il servizio notizie offre notizie in formati diversi – Invece di un convertitore dei formati delle immagini, il servizio cartine offre cartine in formati diversi – Invece di un servizio ordinamento, il servizio personale offre l‟elenco del personale ordinato secondo vari criteri – Invece di un servizio cambia valute, il servizio di conto corrente bancario offre il saldo nella valuta appropriata Gusti precisi • Se si vuole una pizza con pomodoro, aglio e origano non se ne ordina una con pomodoro, mozzarella e acciughe chiedendo poi al cameriere di togliere mozzarella, acciughe e aggiungere l‟aglio, si chiede fin dall‟inizio una pizza alla marinara! Soddisfare le aspettative dei clienti (1) • [anni „20] Henry Ford disse: “"Ognuno può avere una Modello T del colore che preferisce purché sia nero“ • [1923] Alfred Sloan capì il problema (cioè che Ford non rispettava le richieste dei clienti) e consentì ai clienti di ordinare le automobili nel colore preferito • [1927] Chevrolet mise Ford quasi fuori mercato Soddisfare le aspettative dei clienti (2) • Esaudire le richieste dei clienti non vuol dire altro che fornire più tipi di contenuto Tipo di contenuto inesistente (1) • Non esiste il tipo di contenuto EUR, THB! Tipo di contenuto inesistente (2) • Non esiste nemmeno il tipo di contenuto “ordinato in base al cognome”! Analogie con l’esempio di priorità di prenotazione aerea (1) • Approccio 1: indicare nel payload la valuta desiderata Analogie con l’esempio di priorità di prenotazione aerea (2) • Approccio 2: inserire nell‟URL la valuta desiderata Riformulare il problema • Se non si sa come creare un servizio di conversione valuta si deve riformulare il problema e affrontarlo in termini di scambio di informazioni – Riformulare il problema in un problema di informazioni porta a una diversa soluzione – L‟elemento chiave nel riformulare il problema della valuta è vedere che la risorsa è il valore ed è rappresentato in diverse valute La giusta valuta nel posto giusto (1) • Un aspetto interessante del Web è che i client possono vedere i valori espressi nel loro “linguaggio” nativo quando sono nei loro “ambienti” nativi – Questo è vero se si sta parlando di ottenere le immagini o i documenti nel giusto formato, le notizie nel modo in cui si desidera averle oppure il valore nella giusta valuta La giusta valuta nel posto giusto (2) • Un servizio web dovrebbe eseguire (tramite composizione) la conversione nella valuta appropriata per il client – Se si è in patria (Italia) e si deve prenotare l‟Hilton di Parigi con la carta di credito, l‟Hilton dovrebbe dare la tariffa della camera in Euro – Se si è a Bangkok e si preleva del denaro per pagare un pranzo, la banca dovrebbe mostrare il saldo del proprio conto in Thai Baht Implementazione del servizio web per il conto di Dusi • Giovanni Dusi ottiene (GET) il suo estratto conto in Euro Valuta ricevuta • La valuta che si ottiene è quella appropriata al Paese in cui ci si trova – (la conversione è invisibile) Giovanni Dusi ottiene (GET) il suo estratto conto in Thai Baht • Cos’è un servizio web? • Un servizio web è un‟implementazione software per una risorsa, identificata da un URL e raggiunta usando protocolli internet • Il software converte la risorsa in un tipo di contenuto appropriato • Se non fosse richiesta alcuna conversione, tutto potrebbe essere statico; non sarebbe richiesto alcun software o servizio web • Il motivo per cui abbiamo il software è per convertire le informazioni FINE