Capitolo 2 Progettazione del terminale SIFA
Capitolo 2 Progettazione del terminale SIFA
Capitolo 2 Progettazione del terminale SIFA
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Capitolo</strong> 2<br />
<strong>Progettazione</strong> <strong>del</strong> <strong>terminale</strong> <strong>SIFA</strong><br />
Il <strong>terminale</strong> <strong>SIFA</strong> è un sistema polifunzionale e molto complesso. Per tale motivo la<br />
consegna <strong>del</strong> progetto prevedeva l’implementazione di un processo BPEL contenente solo<br />
alcune procedure che il <strong>terminale</strong> <strong>SIFA</strong> reale implementa.<br />
Tra queste abbiamo scelto le procedure di iscrizione all’esame e di cancellazione <strong>del</strong>l’iscrizione<br />
ad un esame. Nel dettaglio il workflow di funzionamento <strong>del</strong> nostro <strong>terminale</strong> <strong>SIFA</strong><br />
è il seguente:<br />
Un utente si collega fornendo la matricola, a questo punto può scegliere se iscriversi ad<br />
un esame o cancellarsi da un esame a cui risultava precedentemente iscritto. In caso di<br />
scelta <strong>del</strong>la prima operazione, l’iscrizione, all’utente viene mostrata la lista degli esami<br />
disponibili. L’utente a questo punto sceglie a quale esame iscriversi e conferma la scelta.<br />
Il sistema effettuerà l’iscrizione all’esame ed invierà una mail di conferma all’indirizzo<br />
email <strong>del</strong>l’utente stesso.<br />
Se alla prima scelta l’utente decidesse invece di cancellarsi da un esame a cui risultava<br />
precedentemente iscritto, il workflow sarebbe leggermente diverso. La scelta verrebbe<br />
eseguita sulla lista esami a cui l’utente risulta già iscritto, mentre alla conferma il sistema<br />
procederebbe nella cancellazione avvisando sempre l’utente con una mail.<br />
Definito questo workflow, che non è altro che la rappresentazione discorsiva <strong>del</strong> futuro<br />
BPEL, è stato necessario capire come progettare i servizi che il processo BPEL andrà poi<br />
a chiamare. Abbiamo optato per creare due web services, uno dedicato alle operazioni<br />
di iscrizione, cancellazione e di ricezione <strong>del</strong>le liste esami, l’altro dedicato all’invio mail.<br />
Questa tipologia di architettura ci è sembrata molto conveniente e segue un’approccio<br />
DRY nell’affrontare il problema, poichè adibire all’invio mail un web service dedicato permette<br />
essere meno ripetitivi nella definizione <strong>del</strong> web service gestore esami. Ciò significa<br />
che il web service mailer si occupa solo di spedire le mail:<br />
• Invia mail: riceve in input il tipo di messaggio, il codice esame e la matricola<br />
Il web service gestore esami invece è stato definito con le seguenti operazioni:<br />
• Iscrizione: riceve in input il codice esame e la matricola<br />
• Cancellazione: riceve in input il codice esame e la matricola<br />
3
4 <strong>Capitolo</strong> 2. <strong>Progettazione</strong> <strong>del</strong> <strong>terminale</strong> <strong>SIFA</strong><br />
• Ricezione <strong>del</strong>la lista esami disponibili: riceve in input la matricola<br />
• Ricezione <strong>del</strong>la lista esami a cui l’utente è iscritto: riceve in input la matricola<br />
Ovviamente questi web service effettuano alcune operazioni in modo intrinseco, ad esempio<br />
il web service mailer cerca automaticamente l’indirizzo email associato ad una tale<br />
matricola.<br />
Progettare il flusso BPEL una volta definiti i web services e definita la sequenza <strong>del</strong>le<br />
operazioni è risultato decisamente banale. Vedremo in pratica nel capitolo seguente come<br />
è stato implementato il progetto secondo i costrutti BPEL, associando le chiamate ai web<br />
service in modo coerente con ciò che è stato descritto nella fase di progettazione.