2. Problem statement: chi
Gli attori coinvolti sono operatori oppure altre applicazioni;
possono:
Inserire/modificare job con relative info di triggering (data/ora
di esecuzione)
Interrogare lo stato di un job attivo (in esecuzione, terminato,
fallito)
Recuperare il prodotto dell’esecuzione di un job
3. Problem statement: cosa
L’esecuzione di job in batch (rapporti, stampe, stored)
La concatenazione di job (1..n)
Un’interfaccia unificata per inserimento, modifica, richiesta sullo
stato dei job e raggruppamento dei risultati delle esecuzioni
Applicazione architetturalmente scalabile, affidabile, tollerante
ai guasti
4. Problem statement: come
Utilizziamo Quartz Enterprise Scheduler come infrastruttura
Ne sfruttiamo i trigger (info sul momento di esecuzione) e i
listener (callback eseguite programmaticamente a job
schedulato/iniziato/terminato/fallito), costruiamo su questi i
nostri metodi per l’interrogazione di stato, la compensazione
degli errori, etc..
Aumentiamo le potenzialità in cluster di Quartz costruendo una
rete di “workers”, istanze Quartz collegate via RMI e registrate
presso un modulo di service discovery tramite unicasting/
multicasting
5. General overview
Lo scopo di questo software è quello di implementare una serie di servizi che permettano l’esecuzione di job in batch, i.e. la
generazione di rapporti, stampe, esecuzione di stored
Data la natura dei componenti che andremo a descrivere, definiremo i casi d’uso a partire dalle funzionalità messe a
disposizione dei client, partendo dal presupposto che questi possano essere sia operatori che altre applicazioni
6. Tecnologie utilizzate
JVM 1.5
Quartz Scheduler (versione di riferimento 1.6.6):
! Infrastruttura di scheduling
Apache Shiro (Ki / jSecurity):
! Strato Authn/Authz
Apache River (Jini):
! Service discovery via multicasting
8. Deploy overview
Architettura three tiered
Presentation layer
Web service asincrono
Interfaccia esposta tramite web application (RIA, AJAX powered - TBD)
BL layer
L’Orchestratore
La federazione di Quartz workers
DA layer
DB server (SQLServer / Oracle - TBD)
9. Deploy specs overview
Lo strato di presentazione web comprende sia un’interfaccia
esposta tramite web application che web service asincroni
L’Orchestratore contiene un proxy Quartz, un servizio di lookup
e una serie di metodi che permettano l’implementazione di un
ActivationJob il cui compito sarà quello di schedulare un job
remotamente su un’istanza di Quartz worker scelta
opportunamente
Un Quartz worker federato si può descrivere semplicemente
come istanza di Quartz configurata in una macchina virtuale