Programmazione su Reti 17 Settembre 2005 Mac Robert Prova di

Transcript

Programmazione su Reti 17 Settembre 2005 Mac Robert Prova di
Programmazione su Reti
17 Settembre 2005
Mac Robert
Prova di esame
Mac Robert è una catena di fast food che da lungo tempo ha attivato un servizio di consegna a
domicilio delle sue pizze. I clienti possono ordinare telefonicamente quello che vogliono consumare
e ricevere il sacchetto a casa con consegna pony express.
Visto il grande successo del servizio i proprietari della catena hanno deciso di estendere la propria
offerta accettando prenotazioni anche via web. Il suo consulente gli ha proposto di implementare il
servizio tramite web services. L’applicazione progettata prevede i seguenti servizi:
1. menu: prende in input una categoria di prodotti e restituisce l’elenco delle offerte per quel
tipo di prodotti disponibili in menù Il risultato restituito dal servizio è un array di oggetti
Prodotto. Per ogni prodotto viene specificato il nome, un codice identificativo ed il prezzo.
Il servizio ammette una lista di tipologie di prodotti; se la richiesta specifica un tipo di
prodotti non ammesso deve essere restituito un oggetto Prodotto con codice identificativo 0
e nome “categoria di prodotti non esistente”.
2. ingredienti: prende in input il codice di un prodotto e restituisce gli ingredienti principali
come un array di stringhe.
3. ordine: prende in input un array di oggetti Ordine ed un oggetto Cliente e restituisce il
costo totale dell’ordinazione ed un parametro out con il numero dell’ordine. Inoltre registra
l’ordine ricevuto ed il costo. Ogni oggetto Ordine contiene il codice del prodotto ordinato
ed il numero di pezzi richiesti. L’oggetto Cliente contiene il nome del cliente, l’indirizzo ed
il numero di telefono.
Implementare l’applicazione in Java utilizzando Axis come motore SOAP e scrivere il file di
deploy. Le informazioni relative ai prodotti sono mantenute nel file menu.xml. I dettagli relativi
all’ordine ricevuto vengono registrati nel file XYZ.xml, dove XYZ è il numero dell’ordine. Per ogni
ordine viene memorizzato nome, indirizzo e numero di telefono del cliente, l’elenco dei prodotti
ordinati ed il costo complessivo.
Implementare un client in Java che utilizza Axis Client per interagire con il web service. Il cliente
deve fornire un menù che consenta all’utente di scegliere l’operazione da utilizzare.
Programmazione su Reti
17 Settembre 2005
Es. file manu.xml
<menu>
<categorie>
<categoria>pizza</categoria>
<categoria>panino</categoria>
<categoria>piatto</categoria>
<categoria>bibita</categoria>
<categoria>dessert</categoria>
</categorie>
<prodotti>
<prodotto tipo=”pizza” cod=”1”>
<nome> Margherita </nome>
<ingrediente> pomodoro </ingrediente>
<ingrediente>mozzarella </ingrediente>
<prezzo> 4.50 </prezzo>
<prodotto>
<prodotto tipo=”panino” cod=”2”>
<nome> Bomba </nome>
<ingrediente> hamburger </ingrediente>
<ingrediente>mozzarella </ingrediente>
<ingrediente> prosciutto cotto </ingrediente>
<ingrediente>funghi </ingrediente>
<ingrediente>insalata<//ingrediente>
<prezzo> 6.00 </prezzo>
<prodotto>
<prodotto tipo=”bibita” cod=”3”>
<nome> Birraa spina piccola </nome>
<prezzo> 3.00 </prezzo>
<prodotto>
</prodotti>
</menu>
Es. file XYZ.xml
<ordine cod=”XYZ”>
<cliente>
<nome>Vasco</nome>
<indirizzo>Via Napoli 17</indirizzo>
<telefono>089123456</telefono>
</cliente>
<ordinazione>
<prodotto cod=”1”>
<numero>3</numero>
</prodotto>
<prodotto cod=”2”>
<numero>1>/numero>
</prodotto>
</ordinazione>
<costo>19.50</costo>
</ordine>