cn:ccr:aai:doc:godiva:processi
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
cn:ccr:aai:doc:godiva:processi [2016/11/15 16:36] – immagine Schema processi GODiVA fserafin@infn.it | cn:ccr:aai:doc:godiva:processi [2016/11/16 11:35] (current) – fserafin@infn.it | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== I processi di GODiVA ====== | ||
+ | Per l' | ||
+ | Un BusinessObject è la rappresentazione in classi Java delle tabelle del database e delle relative colonne. | ||
+ | Il DataAccess (o **DAO** - //Data Access Object//) è l' | ||
+ | |||
+ | Prima di permettere all' | ||
+ | |||
+ | Per gestire in maniera automatica le autorizzazioni, | ||
+ | Il processo può essere visto come uno strato intermedio tra l' | ||
+ | * istanziare un connessione fisica con il database | ||
+ | * controllare le autorizzazioni dell' | ||
+ | * eseguire la chiamata verso il metodo del DataAccess desiderato | ||
+ | * (opzionale) lavorare i dati ritornati dal DataAccess | ||
+ | |||
+ | Il suoi metodi sono definiti Action (o azioni). | ||
+ | |||
+ | Le action dei processi possono essere richiamate all' | ||
+ | |||
+ | Ci sono delle azioni che sono in comune con tutti i processi: | ||
+ | * commit - esegue il commit della transazione, | ||
+ | * rollback - annulla tutte le modifiche effettuate durante la transazione | ||
+ | |||
+ | Lo schema è il seguente: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ====== Lista dei Processi e delle Azioni di GODiVA ====== | ||
+ | |||
+ | ===== GestioneAnagrafica ===== | ||
+ | Questo processo permette di operare sulle informazioni anagrafiche degli utenti contenuti nel database di GODiVA. Il BusinessObject di riferimento è **Anagrafica**. | ||
+ | |||
+ | ---- | ||
+ | ==== getAnagraficaById ==== | ||
+ | <code java> | ||
+ | public Anagrafica getAnagraficaById(Integer id) throws Throwable | ||
+ | </ | ||
+ | Ritorna l' | ||
+ | |||
+ | ---- | ||
+ | ==== salvaAnagrafica ==== | ||
+ | <code java> | ||
+ | public Anagrafica salvaAnagrafica(Anagrafica ao) throws Throwable | ||
+ | </ | ||
+ | Salva nel database tutti i dati dell' | ||
+ | |||
+ | ===== GestioneAnagraficaDettaglio ===== | ||
+ | Questo processo permette di recuperare i dettagli relativi ad un' | ||
+ | |||
+ | Attualmente i dettagli gestiti da GODiVA sono i seguenti (elenco non completo, ma questi sono quelli effettivamente utilizzati) | ||
+ | |||
+ | ^ Dettaglio | ||
+ | | Badge | Numero di badge | | ||
+ | | Disciplinare Risorse Informatiche | Indica se l' | ||
+ | | EMail | Indirizzo email. Il campo è read-only e viene generato da uno script di GODiVA in base a delle regole | | ||
+ | | Fax | Numero di fax | | ||
+ | | Grant Referente | ||
+ | | Kerberos Principal | ||
+ | | Level of Assurance | ||
+ | | Mail Alternate Address | ||
+ | | Mail Referente | ||
+ | | Matricola INFN | Numero di matricola | ||
+ | | Telefono | ||
+ | | Titolo Di Studio | ||
+ | | Username | ||
+ | |||
+ | ---- | ||
+ | ==== getDettaglioByDescEIdAnagrafica ==== | ||
+ | <code java> | ||
+ | public Vector< | ||
+ | </ | ||
+ | |||
+ | Ritorna tutti i dettagli di un' | ||
+ | |||
+ | ---- | ||
+ | ==== ritornaTuttiIDettagliPerAnagrafica ==== | ||
+ | <code java> | ||
+ | public Vector< | ||
+ | </ | ||
+ | |||
+ | Ritorna tutti i dettagli di un' | ||
+ | Il valore dell' | ||
+ | * ' | ||
+ | * ' | ||
+ | * ' | ||
+ | |||
+ | ---- | ||
+ | ==== ritornaTipoAnagraficaDettaglioDaDescrizione ==== | ||
+ | <code java> | ||
+ | public TipoAnagraficaDettaglio ritornaTipoAnagraficaDettaglioDaDescrizione(String nome) throws Throwable | ||
+ | </ | ||
+ | |||
+ | Ritorna il **TipoAnagraficaDettaglio** a partire dalla sua descrizione | ||
+ | |||
+ | ---- | ||
+ | ==== ritornaTuttiIDettagliPerAnagraficaETipo ==== | ||
+ | <code java> | ||
+ | public Vector< | ||
+ | public Vector< | ||
+ | </ | ||
+ | |||
+ | Ritorna tutti i dettagli di un anagrafica. Sono passati in input, oltre all' | ||
+ | * ' | ||
+ | * ' | ||
+ | * ' | ||
+ | |||
+ | Se // | ||
+ | |||
+ | ---- | ||
+ | ==== salvaDettaglio ==== | ||
+ | <code java> | ||
+ | public void salvaDettaglio(AnagraficaDettaglio anagraficaDettaglio) throws Throwable | ||
+ | </ | ||
+ | |||
+ | Salva sul database l' | ||
+ | |||
+ | ---- | ||
+ | ==== rimuoviDettaglio ==== | ||
+ | <code java> | ||
+ | public void rimuoviDettaglio(Vector< | ||
+ | </ | ||
+ | |||
+ | Elimina dal database i dettagli passati in input. | ||
+ | |||
+ | ===== GestioneRuoli ===== | ||
+ | Questo processo si occupa della gestione di oggetti di tipo **RuoloAnagrafica**. | ||
+ | |||
+ | ---- | ||
+ | ==== getRuoliPerAnagraficaID ==== | ||
+ | <code java> | ||
+ | public Vector< | ||
+ | public Vector< | ||
+ | </ | ||
+ | |||
+ | Ritorna la lista dei **RuoloAnagrafica** di un' | ||
+ | |||
+ | ---- | ||
+ | ==== getRuoliPerIdAnaEIdRuolo ==== | ||
+ | <code java> | ||
+ | public Vector< | ||
+ | public Vector< | ||
+ | </ | ||
+ | |||
+ | Ritorna la lista dei **RuoloAnagrafica** di un' | ||
+ | |||
+ | ---- | ||
+ | ==== getRuoloByDescrizione ==== | ||
+ | <code java> | ||
+ | public Ruolo getRuoloByDescrizione(String descrizione) throws Throwable | ||
+ | </ | ||
+ | Ritorna il tipo di Ruolo a partire dalla sua descrizione | ||
+ | |||
+ | ===== GestioneDomini ===== | ||
+ | Questo processo si occupa della gestione di oggetti di tipo **NodoDominio**, | ||
+ | * idTipoAlbero | ||
+ | * idNodo | ||
+ | I nodi sono disposti su una struttura ad albero. E' possibile rappresentare tale struttura con un esempio: | ||
+ | INFN | ||
+ | ├── Amministrazione Centrale | ||
+ | │ │ | ||
+ | │ | ||
+ | │ │ | ||
+ | │ | ||
+ | │ | ||
+ | ├── Lecce | ||
+ | │ │ | ||
+ | │ | ||
+ | │ | ||
+ | └── Laboratori Nazionali di Frascati | ||
+ | │ | ||
+ | ├── Divisione Ricerca | ||
+ | │ │ | ||
+ | │ | ||
+ | │ │ | ||
+ | │ | ||
+ | │ | ||
+ | └── Divisione Acceleratori | ||
+ | |||
+ | ---- | ||
+ | ==== ritornaNodoDominioByTipoEID ==== | ||
+ | <code java> | ||
+ | public NodoDominio ritornaNodoDominioByTipoEID(Integer domainTypeID, | ||
+ | </ | ||
+ | |||
+ | Ritorna l' | ||
+ | |||
+ | ---- | ||
+ | ==== ritornaNodoDominioDaIdTipoEDescrizione ==== | ||
+ | <code java> | ||
+ | public NodoDominio ritornaNodoDominioDaIdTipoEDescrizione(Integer idTipo, String descrizione) throws Throwable | ||
+ | </ | ||
+ | |||
+ | Ritorna l' | ||
+ | |||
+ | Esempio < | ||
+ | |||
+ | ---- | ||
+ | ==== ritornaTipoAlberoByDescrizione ==== | ||
+ | <code java> | ||
+ | public TipoDominio ritornaTipoAlberoByDescrizione(String description) throws Throwable | ||
+ | </ | ||
+ | |||
+ | Restituisce l' | ||
+ | |||
+ | ---- | ||
+ | ==== ritornaNodoDiLivelloNNelPathDelNodoDominio ==== | ||
+ | <code java> | ||
+ | public NodoDominio ritornaNodoDiLivelloNNelPathDelNodoDominio(NodoDominio nodePathLeaf, | ||
+ | </ | ||
+ | |||
+ | Come già detto nella sezione GetioneDomini abbiamo un certo numero di nodi disposti su una struttura ad albero. | ||
+ | |||
+ | Questo metodo prende come input un nodo qualsiasi e tale nodo sarà rappresentato in GODiVA da un certo path; il metodo restituisce il nodo di questo path che si trova al livello // | ||
+ | |||
+ | Esempio: supponiamo di avere una variabile //nodo// che è il dominio dell'" | ||
+ | <code java> | ||
+ | NodoDominio nodoLiv2 = ritornaNodoDiLivelloNNelPathDelNodoDominio(nodo, | ||
+ | </ | ||
+ | |||
+ | Al termine della chiamata, la variabile // |