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.
La sicurezza è implementata mediante Java Authentication and Authorization Service (JAAS), ad ogni utente è attribuito un ruolo e ad ogni ruolo è associato un insieme di processi che possono essere configurati ed eseguiti.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).
Video su Youtube
Link al video dimostrativo del funzionamento di Web Scheduler
Link al video dimostrativo del funzionamento di Web Scheduler