1. introduzione - BMF - Fondazione Toscana Gabriele Monasterio

Transcript

1. introduzione - BMF - Fondazione Toscana Gabriele Monasterio
UNIVERSITA’ DI PISA - FACOLTA’ DI INGEGNERIA
Corso di Laurea in Ingegneria Biomedica
Informatica Medica – Strumenti informatici per la medicina
Maurizio Mangione
Il framework BMF
per lo sviluppo di applicazioni ICT in Life Science
con esercitazioni e progetto pilota
Informatica Medica - Parte II – il framework BMF
5
5
PREFAZIONE
Questo libro è dedicato a coloro che vogliono imparare a realizzare
un’applicazione web in ambito ICT - Life Science mediante l’uso del framework
BMF.
Il Bio Medical Framework (in seguito BMF) nasce da un’esperienza
ventennale di sviluppo di software in vari ambiti di applicazione. I miei primi
esperimenti per la realizzazione di framework in grado di sviluppare in
automatico programmi per l’utente finale, furono eseguiti per lo sviluppo di
applicazioni desktop, a cavallo tra gli anni ‘80 e ’90. Poi dalla metà degli anni
‘90 il WWW prese l’avvento anche nel mondo del lavoro (nel mondo
universitario già si usava da alcuni anni) e iniziai così a realizzare applicativi con
interfacce client web. Nel 2003, approdato nuovamente al CNR, come
ricercatore presso l’Istituto di Fisiologia Clinica, pensai di progettare e
realizzare un framework java che, grazie all’ingegneria del software ed
all’open source, ci consentisse di abbattere alcuni costi di sviluppo e che
agevolasse quei programmatori che fossero grandi conoscitori e gestori di
base di dati ma che non conoscessero la programmazione ad oggetti. L’idea di
base fu quella di: creare un sistema composto di moduli e livelli, ad interfacce,
che mettano lo sviluppatore finale dinanzi alla possibilità di realizzare pagine
web con la sola conoscenza approfondita del SQL, ed un minimo di HTML. Con
la release 1 del BMF realizzammo il sistema di governo dell’ASL12 di Viareggio
e dell’Istituto di Fisiologia Clinica del CNR di Pisa. Da allora la lista di progetti
realizzati con successo si è ampliata enormemente ed ancora ad oggi
scopriamo nuovi ambiti in cui la sua applicazione risulta vincente.
Il framework BM (così come lo chiamavamo all’inizio) è dunque uno
strumento che facilita la vita dello sviluppatore nel non dover riscrivere e
testare grosse parti di codice per ottenere funzionalità che per lo più si
equivalgono nel 30%-40% degli sviluppi di qualsiasi applicazione web in ambito
ICT – Life Science (in alcuni casi la percentuale arriva anche al 100%). Il perché
di questa statistica è strettamente legato al fatto che non esiste un framework
che sia la panacea dello sviluppo software e che ci saranno sempre delle
interfacce che necessitano di personalizzazioni soprattutto nella loro
ergonomia d’uso.
AG
Informatica Medica - Parte II – il framework BMF
6
6
Il BMF è un software open source con licenza di distribuzione GNU Lesser
General Public License – LGPL (che è una licenza di software libero creata dalla
Free Software Foundation).
Potrete
accedere
all’ambiente
di
sviluppo
dal
portale
http://www.ftgm.it/bmf e, previa registrazione, potrete disporre sia del codice
sorgente che di una macchina virtuale (immagine di virtual box) configurata
per l’esecuzione di un’applicazione BMF completa di manuale ed esempi online.
Il team.
La realizzazione del BMF è stata possibile grazie alla collaborazione con
Gianna Alberini, Cristina Salvatori e Giuseppe Augiero, primi attori
rispettivamente sullo sviluppo del software, dei test-stress dell’interfaccia
utente e della piattaforma sistemistica (2004), e Giuseppe Di Guglielmo,
Crocifisso Muscio, Gavino Marras, Donatella Danti, Loredana Fortunato,
analisti, progettisti e sviluppatori anch’essi di alcuni moduli del BMF, esperti
conoscitori della tecnologia utilizzata.
Ringrazio anche coloro che nel tempo si sono aggregati al gruppo di lavoro,
e che durante l’uso del BMF hanno generato nuove necessità funzionali, poi
testate ed utilizzate nella realizzazione di progetti di ricerca e/o prototipi sw
per applicazione di protocolli di cura.
Grazie quindi, anche a Gianni Maglione, Giuseppe Andrea L’Abbate, Anna
Paola Pala, Mauro Micalizzi, Roberta Diciotti, Marco Paterni, Stefano Dalmiani,
Mario Cossu, Andrea Trabucco, Federica Pieroni, Stefano Puzzuoli, Giancarlo
Panichi, Paolo Marcheschi, Stefania Pieroni, Alessio Ciregia, Alessandro
Mazzarisi, Andrea Boni, Gabriele Trivellini, Michele De Nes, Fabio De Petrillo,
Alessandro Taddei, Tiziano Carducci, Emiliano Rocca, Andrea Gori, Giacomo
Piccini, Fabrizio Conforti e Luc Zyw, colleghi anch’essi del CNR di Pisa e/o della
Fondazione Toscana Gabriele Monasterio (Regione Toscana- CNR-Università
toscane).
Considerando che l’ innovazione tecnologica e funzionale è inarrestabile,
concludo prefazione e ringraziamenti anticipandovi che ho pronto sul tavolo il
progetto BMF “next generation”, la cui realizzazione conta su una vostra
imminente partecipazione.
AG
Informatica Medica - Parte II – il framework BMF
7
7
INDICE
1. INTRODUZIONE..............................................................................11
1.1 Requisiti HW/SW.................................................................... 12
1.2 Le esigenze funzionali............................................................. 13
1.3 Oggetti astratti e template.................................................... 15
1.4 Login e sessione...................................................................... 19
2. GESTIONE DELLA SICUREZZA NEL BMF...........................................21
1.1 Transizioni sicure dei dati ...................................................... 21
1.2 Gestione delle Login/Password .............................................21
1.3 Cancellazione logica dei dati ................................................. 22
1.4 Gestione Utenti locali ............................................................ 23
1.5 Gestione Profili ...................................................................... 23
3. IL DATABASE DEL BMF ..................................................................24
1.1 Creazione e naming di una generica tabella..........................24
1.2 Naming degli altri oggetti del DB.......................................... 25
1.3 Tabelle del BMF...................................................................... 26
1.4 Tabelle per dataentry ............................................................ 34
1.5 Organizzazione tabelle BMF................................................... 35
1.6 Struttura Elenco Campi ......................................................... 37
1.7 Creazione jar per webapplication .......................................... 38
1.8 Uso della Session ................................................................... 40
1.9 Uso parametri in memoria .................................................... 43
1.10 Connessione a più database ................................................ 45
4. GESTIONE SITO..............................................................................47
1.1 Gestione (elenco)................................................................... 47
1.2 Ricerca e Gestione.................................................................. 50
1.3 Oggetti per profilo (ruolo)...................................................... 51
1.4 Duplica Profilo (ruolo)............................................................ 52
1.5 Navigazione........................................................................... 53
1.6 Log......................................................................................... 55
1.7 Reload.................................................................................... 57
AG
Informatica Medica - Parte II – il framework BMF
8
8
1.8 File di configurazione............................................................. 58
1.9 Web XML................................................................................ 62
5. DATA ENTRY..................................................................................63
1.1 Data entry semplice .............................................................. 63
1.2 I campi obbligatori sono:........................................................ 63
1.3 I campi facoltativi sono:......................................................... 64
1.4 Data Entry Paginato - sottomenù e order by..........................71
1.5 Data Entry Paginato Semplice................................................ 74
1.6 Gestione Data Entry x Riga..................................................... 76
1.7 Gestione Data Entry con Sottomenù (pulsanti interni)...........79
6. RICERCA E VISUALIZZA...................................................................81
1.1 Help – Export Excel................................................................. 81
1.2 Help - Trucchi e altro.............................................................. 81
1.3 Report di dettaglio di un padre ............................................. 82
1.4 Colorare in modo differente dati di una vista.........................83
1.5 Inserire immagini al posto di dati in una vista .......................84
1.6 Ricerca di base....................................................................... 85
1.7 Ricerca e Modifica.................................................................. 88
1.8 Filtro Dinamico....................................................................... 89
1.9 Filtro confronto...................................................................... 91
1.10 Filtro confronto albero ........................................................ 94
1.11 Filtro base albero................................................................. 98
1.12 Visualizzazione per colonna............................................... 101
1.13 Visualizzazione per mese.................................................... 102
1.14 visualizzazione complessa.................................................. 104
7. GESTIONE QUESTIONARI.............................................................109
1.1 Tabelle.................................................................................. 109
1.2 Le servlet ............................................................................. 110
1.3 Visualizzazione Pagina Tabellone colorato ..........................112
8. ALBERI.........................................................................................118
1.1 Gestione (elenco) e Ricerca & Gestione................................118
1.2 Definizione Radici................................................................. 119
AG
Informatica Medica - Parte II – il framework BMF
9
9
1.3 Strutture Radici.................................................................... 119
1.4 Tipi....................................................................................... 120
1.5 Duplica Tipo......................................................................... 120
1.6 Navigazione Gerarchie......................................................... 121
1.7 Navigazione Gerarchie (New)............................................... 124
1.8 Associa Link a Struttura........................................................ 124
1.9 Associa Link a Struttura (new)..............................................127
1.10 Clona abilitazione utente................................................... 128
1.11 Strutture e Link................................................................... 128
1.12 Conteggi per tipo................................................................ 129
1.13 Nodi senza padre................................................................ 129
1.14 Nodi senza figli................................................................... 130
1.15 Sicurezza: Abilita Utente-Struttura.....................................130
1.16 Sicurezza: Abilita Utente-Struttura (new)...........................133
1.17 Sicurezza: Abilita Struttura-Utente.....................................134
1.18 Database: Viste V_ALBERO_*............................................135
9. UTILITY.........................................................................................136
1.1 Chiamata di store procedure................................................136
1.2 Upload file ........................................................................... 137
1.3 Download file....................................................................... 138
1.4 Upload file multi folder........................................................ 138
1.5 Download file multi folder.................................................... 139
1.6 Salta sito.............................................................................. 139
1.7 Proxy.................................................................................... 139
10. GESTIONE DOCUMENTALE.........................................................143
1.1
1.2
1.3
1.4
Profili utente per la gestione documentale........................143
Oggetto tabella T_Documenti........................................... 144
BMServletGestioneDocumentale.......................................145
BMServletDocumentDownload......................................... 148
11. BMF ED IL MOTORE DI RICERCA NUTCH (*)................................150
1.1 Autenticazione, sessione e protocollo https.........................150
1.2 Download pagine dinamiche................................................151
1.3 Analisi integrazione indexer................................................. 151
AG
Informatica Medica - Parte II – il framework BMF
10
10
1.4 Analisi integrazione searcher............................................... 152
1.5 Sviluppo integrazione crawler.............................................. 154
1.6 Files di configurazione.......................................................... 154
1.7 Httpclient plugin e libreria.................................................... 156
1.8 Sviluppo integrazione indexer..............................................157
1.9 Sviluppo integrazione searcher............................................ 158
1.10 BMFQueryFilter plugin..................................................... 158
1.11 BMSecurityLogin servlet.................................................. 159
1.12 Interfaccia Web............................................................... 160
1.13 BMF – Guida pratica all’uso del motore di ricerca .............162
12. QUICK START PER PRINCIPIANTI ...............................................165
1.1 Creazione di un Jar di progetto ............................................ 165
1.2 Gestione del TOMCAT .......................................................... 165
1.3 Accesso alla base di dati....................................................... 166
1.4 Generazione della LICENZA.................................................. 166
13. PROGETTO: “L’OSPEDALE CER”..................................................167
1.1 testo..................................................................................... 167
1.2 Soluzione.............................................................................. 172
14. DDL E DML ORACLE PER LA CREAZIONE E GESTIONE DEL BMF...203
1.1 TABELLE............................................................................... 203
1.2 indici e primary key.............................................................. 214
1.3 constraint............................................................................. 217
1.4 VIste..................................................................................... 224
1.5 funzioni................................................................................ 236
1.6 procedure............................................................................ 239
1.7 package................................................................................ 262
1.8 trigger................................................................................. 263
15. BIBLIOGRAFIA............................................................................273
1.1 Casi di Studio........................................................................ 273
1.2 Sitografia.............................................................................. 274
AG
Informatica Medica - Parte II – il framework BMF
1.
11
11
INTRODUZIONE
BMFramework (BMF) è un tool di sviluppo software che permette di
realizzare applicazioni web dinamiche, ossia applicazioni costruite su uno o più
database relazionali per la memorizzazione e la gestione dei dati di interesse.
Attraverso le pagine web di tali applicazioni sarà possibile effettuare
operazioni di: ricerca, visualizzazione e data entry sulle tabelle del database,
per una completa gestione dei dati da parte dell’utente finale.
Queste operazioni vengono eseguite tramite interfaccia web utilizzando un
comune browser (Chrome, Safari, Internet Explorer, Mozilla Firefox, ecc.).
BMF è un tool di sviluppo nato per facilitare il lavoro dello sviluppatore di
software perché, per creare un nuovo applicativo, non è necessario saper
programmare con uno specifico linguaggio ad oggetti (Java, C++, ecc.) ma è
sufficiente conoscere in maniera approfondita il linguaggio SQL e le
funzionalità del tool per poter ottenere rapidamente le maschere di gestione
e visualizzazione dei dati, i pulsanti associati, eventuali rappresentazioni
grafiche dei dati, e gli altri oggetti tipici di un sito web dinamico.
Anche i controlli di integrità sui dati inseriti sono demandati al BMF, che li
implementa lato client: utilizzando codice Javascript standard; lato server:
utilizzando il naming richiesto e il linguaggio DDL del database.
Nel seguito del libro troverete spesso la parola servlet; agli esperti di
programmazione Java risulterà una parola nota, ma per tutti gli altri, si dovrà e
si potrà considerare come se ci si riferisse alla parola template. Ad ogni servlet
corrisponderà un template o GUI (Graphical User Interface), quindi noi
potremo assumere che ogni volta che si parlerà di servlet del BMF, si starà
facendo riferimento non solo alle funzionalità da essa implementate, lato
server, ma anche all’interfaccia grafica (template) ad essa associata.
Per chi volesse saperne di più, in rete ci sono decine di articoli che spiegano
cosa sia un servlet (o una servlet come preferiscono alcuni autori), oltre
ovviamente ai libri di testo Java. Basterà scrivere “servlet primi passi” in un
qualunque motore di ricerca.
In questo capitolo introdurremo le regole che gli elementi di un database BMF
devono rispettare, relative in particolare alle convenzioni sui nomi (naming) di
tabelle, campi, relazioni, viste, ecc. Pertanto, partiremo dall’ipotesi di un
database relazionale correttamente progettato dal punto di vista delle entità e
delle relazioni che rispetti tali regole, e seguiremo un esempio completo di
implementazione di un sito con il BMF. Tra le varie funzionalità implementate
che andremo ad analizzare, studiare e provare merita un’introduzione
AG
Informatica Medica - Parte II – il framework BMF
12
12
particolare la gestione delle utenze. Questo perché in ambito e-health le
utenze hanno molti vincoli dettati dalla normativa vigente. Il BMF prevede un
meccanismo di autenticazione che comprende la gestione classica a profili;
permette quindi di assegnare a ciascun utente un profilo costituito da un
insieme di attributi quali, ad esempio, funzione, ruolo, posizione, sede, ecc.
all’interno di un’organizzazione aziendale. Ad ogni profilo è assegnato un
livello di visibilità sui dati, per cui è possibile implementare un controllo
completo sulle operazioni realizzabili da ciascun utente finale. Inoltre, per le
applicazioni che gestiscono dati sensibili si può configurare l’accesso ai dati
anche per singola login (ad esempio i medici che hanno ottenuto il consenso
informato dai pazienti in cura presso la struttura in cui esercitano).
1.1
Requisiti HW/SW
Per creare applicazioni attraverso l’utilizzo del BMF è necessario predisporre
una piattaforma a tre livelli (Web-Application-Database Server) in grado di
eseguire codice Java. (in stage va bene anche a 2 livelli: Appl. e Db)
Figura 1 Esempio di architettura 3 livelli con web,application e db server
Una possibile configurazione della piattaforma è data dalla combinazione dei
seguenti elementi, a seconda della loro compatibilità:
• Sistemi operativi:Unix, Linux, Windows, OSX, etc.
• Web server: Apache, IIS, etc.
• Application server: Tomcat, Jrun, etc.
• Basi di dati: Oracle, DB2, MySQL, MS–SQLserver, Access
AG
Informatica Medica - Parte II – il framework BMF
13
13
•
Client-Browser: Internet Explorer, Mozilla FireFox, Google Crome,
etc.
Relativamente ai browser è stata osservata una maggiore affidabilità
utilizzando firefox. Se necessario si può disporre anche di una licenza BMF per
ogni server installato, indipendentemente dal numero delle postazioni utente
(PC in cui si utilizzerà l’applicativo finale per effettuare operazioni di
interrogazione e data entry). Esiste una versione del BMF, adeguatamente
configurata per le applicazioni didattiche universitarie (per gli studenti).
BMF è un software Open Source con licenza LGPL.
1.2
Le esigenze funzionali
Di seguito analizzeremo alcune classiche funzionalità offerte dai sistemi web
su database, che soddisfano le esigenze di diverse tipologie di utenti:
inserimento dei dati, visualizzazione e stampa, interrogazioni mediante filtri di
ricerca, ecc; spiegheremo, quindi, come tali esigenze vengono interpretate e
realizzate da BMF. In qualunque ambiente applicativo si operi, è solitamente
richiesta una diversificazione degli accessi alla stessa risorsa fisica, in base alle
varie tipologie di utenti interessati; una rappresentazione schematica è
mostrata nella figura seguente:
Figura 2– Accessi differenziati alla tabella T_ANAG, mediante la maschera ANAGRAFE.
AG
Informatica Medica - Parte II – il framework BMF
14
14
Nel database di esempio è definita la tabella T_ANAG, che raccoglie un certo
numero di informazioni di tipo anagrafico; a livello di applicativo web, si vuole
mostrare questa risorsa attraverso un oggetto astratto, la maschera
ANAGRAFE, che verrà visualizzata con caratteristiche differenti a seconda
dell’utente loggato e del profilo associato (Visitatore 1, Ammin Base, ecc.)
Ciascun utente, infatti, viene riconosciuto dal sistema mediante la propria
login e password ed il relativo profilo associato.
Gli utenti a cui viene attribuito il profilo Visitatore 1 e Visitatore 2 hanno
possibilità di lettura dei dati (tutti i campi o alcuni campi di T_ANAG); Ammin
Base è il profilo che consente solo alcune funzionalità di lettura e scrittura;
Ammin Super può leggere e scrivere tutti i campi della tabella T_ANAG. La
tabella che segue, schematizza questa ipotesi di accessi diversificati alla
T_ANAG:
Utente Login / Password
Profilo
Funzioni
A
VISIT_1/XXX
Visitatore 1
B
AMM_B/YYY
Amministratore
Base
C
VISIT_2/ZZZ
Visitatore 2
D
AMM_S/KKK
Amministratore
Super
Accede a tutti i campi della
tabella T_ANAG in sola lettura
(R)
Accede ad alcuni campi della
tabella T_ANAG in
lettura/scrittura (R/W)
Accede ad alcuni campi della
tabella T_ANAG in sola lettura
(R)
Accede a tutti i campi della
tabella T_ANAG
lettura/scrittura (R/W)
AG
Informatica Medica - Parte II – il framework BMF
1.3
15
15
Oggetti astratti e template
Per rappresentare quanto necessario alla realizzazione delle quattro diverse
funzionalità secondo la logica di BMF, ci serviremo di alcuni oggetti astratti:
1.
2.
3.
Un oggetto astratto di tipo PULSANTE
P_ANAG
Un oggetto astratto di tipo DATA ENTRY
T_ANAG
Un oggetto astratto di tipo VISUALIZZAZIONE V_ANAG
In particolare:
- Tutti gli utenti avranno a disposizione un pulsante P_ANAG attraverso il
quale richiamare la visualizzazione della maschera ANAGRAFE;
- L’Utente A e l’Utente C avranno a disposizione un oggetto V_ANAG per la
visualizzazione dei dati;
- L’Utente B e l’utente D avranno a disposizione un oggetto T_ANAG per la
visualizzazione e l’aggiornamento dei dati.
Poiché in due casi (Utente A e Utente C) è prevista la sola visualizzazione dei
dati, utilizzeremo lo stesso template ovvero lo stesso modello di
presentazione dei dati all’utente. Negli altri due casi (Utente B e Utente D)
useremo un template diverso, per la visualizzazione/modifica dei dati.
L’azione associata all’oggetto astratto P_ANAG (pulsante) degli utenti A e C
sarà, dunque, diversa da quella impostata per gli utenti D e B, proprio per
questa diversità dei template.
Di seguito, una rappresentazione dei template utilizzati per presentare i dati
della tabella T_ANAG alle quattro tipologie di utenti, e la corrispondente
codifica degli oggetti astratti utilizzati dal BMF(Figura 2).
AG
Informatica Medica - Parte II – il framework BMF
16
16
100
100
Figura 3 - Template, oggetti astratti e codifica in BMF
Analizziamo la parte sinistra della Figura 3.
Gli utenti A e C, che possono visualizzare i dati di T_ANAG (R=Read) avranno a
disposizione lo stesso template, cioè l’oggetto astratto ANAGRAFE verrà
mostrato con il template di visualizzazione; la sola differenza riguarda i dati
visualizzati: per l’Utente A tutti i campi, per l’Utente C solo alcuni campi di
T_ANAG.
Invece, gli utenti amministratori B e D, che possono visualizzare/modificare i
dati di T_ANAG (R/W=Read/Write), avranno a disposizione un template di
data entry (nella parte superiore visualizzazione dei dati, nella parte inferiore
possibilità di inserimento dei dati); la maschera ANAGRAFE si differenzierà per
AG
Informatica Medica - Parte II – il framework BMF
17
17
il numero di campi mostrati: per l’Utente B tutti i campi in
visualizzazione/modifica, per l’Utente D solo alcuni campi in
visualizzazione/modifica di T_ANAG. Nella parte destra di Figura 2 viene
rappresentata la codifica di queste associazioni in ambiente BMF.
UTENTE A
Avrà associato un oggetto P_ANAG di tipo pulsante, per attivare la
visualizzazione dei dati; inoltre, avrà associato V_ANAG oggetto di tipo
visualizzazione di tutti i campi della tabella in questione.
UTENTE C
Avrà associato un oggetto P_ANAG di tipo pulsante, per attivare la
visualizzazione dei dati; inoltre, V_ANAG oggetto di tipo visualizzazione di
alcuni campi della tabella in questione. Si osservi che il codice dell’oggetto
pulsante P_ANAG è lo stesso per i due utenti A e C (Codice 100) poiché
utilizziamo lo stesso template (di visualizzazione). I due oggetti V_ANAG
avranno un codice diverso, poiché l’Utente A è abilitato alla visualizzazione di
tutti i campi della T_ANAG, mentre l’Utente C solo di alcuni.
UTENTE B
Avrà associato un oggetto P_ANAG di tipo pulsante, per attivare la gestione in
R/W dei dati; inoltre, avrà associato T_ANAG oggetto di tipo data entry di tutti
i campi della tabella in questione.
UTENTE D
Avrà associato un oggetto P_ANAG di tipo pulsante, per attivare la gestione in
R/W dei dati; inoltre, T_ANAG oggetto di tipo data entry di alcuni campi della
tabella in questione. Anche in questo caso, si osservi che il codice dell’oggetto
pulsante P_ANAG è lo stesso per i due utenti B e D (Codice 400) poiché viene
utilizzato lo stesso template (di data entry). I due oggetti T_ANAG avranno un
codice diverso, poiché l’Utente B è abilitato alla lettura/scrittura di tutti i
campi della T_ANAG, mentre l’Utente D solo di alcuni campi.
Il BMF memorizza queste informazioni per tutti gli utenti del sistema nella
tabella T_OGGETTO ed in altre tabelle ad essa correlate, come spiegheremo
più avanti.
Al login dell’Utente A, solo le informazioni riguardanti A vengono memorizzate
nella SESSIONE, area di memoria dell’application server che contiene tutte le
AG
Informatica Medica - Parte II – il framework BMF
18
18
informazioni relative allo stato dell'utente nella sessione corrente; tale area,
che nasce al login, viene ripulita con il logout dall’applicazione, con la chiusura
del browser, oppure in seguito al time-out sulla connessione.
Figura 4 – Login: memorizzazione degli oggetti associati all’Utente A nella SESSIONE
BMF utilizza la SESSIONE per visualizzare e rendere disponibili tutti e soli gli
oggetti di pertinenza dell’utente autenticato, in base al suo profilo.
AG
Informatica Medica - Parte II – il framework BMF
1.4
19
19
Login e sessione
La figura che segue mostra più in dettaglio la logica funzionale che interviene
quando un generico Utente U1 si collega ad un sistema web realizzato con
BMF.
Figura 5 - Login dell'utente U1 e memorizzazione dei dati relativi in Sessione U1
Il client a cui è collegato U1 ha attivo un browser (ad esempio Internet
Explorer, I.E.). Dopo aver digitato l’indirizzo del sito web desiderato, ed aver
impostato login e password, la richiesta passa attraverso la rete e raggiunge il
server che immaginiamo, per semplicità, essere un’unica macchina su cui
risiedono i tre livelli: Web, Application e DB Server.
La parte Web del server accoglie la richiesta del client e la trasferisce
all’Application Server. A questo punto la parte Application chiede al DB se
l’utente è abilitato ad accedere al sistema, ovvero se è codificato come utente,
mediante il controllo sulla login e password immesse.
In caso affermativo, la parte DB passa all’Application l’intera configurazione
dell’utente, che verrà memorizzata in SESSIONE.
In particolare, in questa area di memoria verranno memorizzate le seguenti
informazioni (reperite da alcune tabelle del BMF, indicate fra parentesi):
• Gli oggetti astratti associati all’utente U1 ed il loro tipo (tabelle
T_OGGETTO, T_OGGETTO_LABEL, T_TIPO_OGGETTO);
• Gli attributi quali: ruolo, funzione, categoria, ed altre caratteristiche
che
riguardano
l’utente
come
personale
(V_UTENTE,
V_UTENTE_PERSONE);
• Il suo profilo (REL_UTENTE_PROFILO);
AG
Informatica Medica - Parte II – il framework BMF
•
20
20
Le relazioni esistenti fra gli oggetti ed il profilo utente
(REL_OGGETTO_PROFILO)
AG