CERCA SITEMAP FEED RSS 1280
Ultimo aggiornamento: 30 Agosto 2009

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.
schema web scheduler 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.
Per aggiungere nuovi processi configurabili ed eseguibili dall’utente da remoto, è sufficiente:
  • 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).