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 // | ||
