La prima parte dell`esercizio prevede la creazione e la

Transcript

La prima parte dell`esercizio prevede la creazione e la
La prima parte dell'esercizio prevede la creazione e la pubblicazione di tre web service:
ShopService, BankService e SystemService, con le interfacce rappresentate nel class diagram.
I metodi dei web service sollevano delle eccezioni, in particolare:
• checkItemAvailability() solleva NotAvailableItemException
• buyItem() solleva BuyItemException
• checkCreditCard() solleva CardNotValidException
• registerTransaction() solleva TransactionException
Successivamente si richiede di creare un processo in BPEL che risponda all'interfaccia di
BuyItemService e che orchestri i servizi web creati precedentemente secondo l'activity diagram qui
rappresentato.
Il processo inizia con l'attività di verifica nome utente
e password, che non solleva eccezioni. E' necessario
utilizzare quindi il costrutto <if> per controllare
l'output di SystemService. Se l'autenticazione ha
avuto successo, allora vengono controllati
parallelamente: la validità della carta di credito e la
presenza in negozio dell'oggetto che si intende
acquistare. In caso di fallimento nel controllo della
carta di credito, il processo deve terminare con un
messaggio d'errore; in caso di fallimento nel
controllo della presenza dell'oggetto in negozio, il
processo deve terminare con un messaggio d'errore,
in caso contrario il servizio comunica il prezzo
dell'oggetto desiderato.
L'ultimo passo consiste nella registrazione della
transazione sulla carta di credito e l'acquisto effettivo
dell'oggetto, attività eseguite ancora una volta
parallelamente. In caso di eccezioni, il processo
termina con un messaggio d'errore, altrimenti con un
messaggio di successo.
In caso di terminazione con errori il messaggio
d'errore restituito dal processo deve essere quello
contenuto nel campo message dell'eccezione.