Web Scheduler
Web Scheduler è una web application realizzata in Java 2 Enterprise Edition che consente di configurare ed eseguire dei processi su un server remoto.Il livello presentazione è realizzato mediante JavaServer Faces (JSF) con l’utilizzo di Facelets, la logica di business è implementata in Enterprise JavaBeans e il livello persistenza mediante le Java Persistence API e gli entity bean.

Quando l’utente sceglie di creare un nuovo processo e configura tutti i parametri di esecuzione, il session bean stateless che viene invocato crea un entity bean OperazioneSchedulata contenente tutti i parametri di configurazione del processo e dopo averlo reso persistente (mediante l’uso dell’interfaccia EntityManager e delle JPA) invia un messaggio contenente l’id del processo alla coda (queue) CodaProcessi nell’ottica di una comunicazione asincrona.
Un message-driven bean (MDB) riceve quindi i messaggi dalla coda, estrae l’id del processo e mediante l’interfaccia EntityManager recupera l’istanza dell’oggetto OperazioneSchedulata dal database che viene utilizzata per configurare l’istanza della classe java che deve essere eseguita per portare a compimento l’operazione.
Ogni processo si può trovare in quattro possibili stati:
- in coda: quando è stato inviato un messaggio alla CodaProcessi ma il Message-driven bean (MDB) non l’ha ancora ricevuto; quando il processo si trova in questo stato può ancora essere annullato dall’utente.
- in esecuzione: quando il Message-driven bean (MDB) ha ricevuto il messaggio, ha configurato la classe java che deve essere eseguita con i parametri inseriti dall’utente e ne ha invocato il metodo run().
- completato: quando il metodo run() si è concluso con successo e l’operazione è stata completata.
- annullato: quando l’utente ha provveduto ad annullare il processo prima della sua esecuzione.
- definire una classe che implementi l’interfaccia Processo del package webscheduler.standard e implementare nel metodo run() la logica del processo
- aggiungere nel database una nuova tipologia di operazione il cui campo javaclass punti alla definizione della classe implementata (tabella Operazioni).
- aggiungere nel database i corrispondenti parametri dell’operazione (tabella Parametri), specificando per ciascuno nome e tipo.
- associare l’operazione ai ruoli utente ai quali si vuole garantire l’accesso (tabella RuoliOperazioni).
Link al video dimostrativo del funzionamento di Web Scheduler