10/10/2013 Prodotti software per l'innovazione e la semplificazione (BIT) Benzinai in Toscana Architettura del Software Compilato : Tommaso Anzidei (Almaviva) Rivisto : Silvana Ciampi (Almaviva) Autorizzato : Simone Secci (RT) Versione : 1.0
Benzinai in Toscana PAG. 2 DATI GENERALI Compendio: Il documento riporta l'analisi dei requisiti e l'architettura di realizzazione del software relativa al progetto in oggetto. Data di emissione: 10/10/2013 N. Pagine: 13 Sommario delle Versioni: Non Applicabile Documenti correlati: Non Applicabile
Benzinai in Toscana PAG. 3 Sommario DATI GENERALI... 2 1. INTRODUZIONE... 4 1.1. GENERALITÀ... 4 1.2. SCOPO... 4 1.3. ABBREVIAZIONI... 4 2. FUNZIONALITA' DISPONIBILI... 5 3. ANALISI DEI REQUISITI DEL SOFTWARE... 6 3.1. REQUISITI FUNZIONALI... 6 3.2. REQUISITI NON FUNZIONALI... 7 4. DEFINIZIONE DELL ARCHITETTURA DEL SOFTWARE... 8 4.1. DATI INTERNI... 8 4.2. FONTI DATI ESTERNE... 9 4.3. ARTICOLAZIONE DEL SISTEMA IN FUNZIONI SOFTWARE... 10 4.3.1 Autenticazione ed accesso alla procedura... 11 5. ARCHITETTURA... 12 5.1. COMPONENTI... 12 5.2. ARCHITETTURA... 13
Benzinai in Toscana PAG. 4 1. INTRODUZIONE 1.1. Generalità Nell'ambito dell'appalto relativo alla progettazione, realizzazione e manutenzione di prodotti software per l innovazione e la semplificazione nella Pubblica Amministrazione, è stato sviluppata un'applicazione multicanale, denominata Benzinai in Toscana, per il reperimento, da parte di cittadini, dei migliori prezzi dei carburanti in dipendenza dalla propria posizione e dal prodotto ricercato. 1.2. Scopo Il presente documento ha lo scopo di definire l architettura del software sotto forma di elenco e descrizione dei componenti che costituiscono l'applicazione. 1.3. Abbreviazioni Nel seguito del documento faremo uso delle seguenti abbreviazioni: Almaviva RT BiT Almaviva Regione Toscana Benzinai in Toscana
Benzinai in Toscana PAG. 5 2. FUNZIONALITA' DISPONIBILI Benzinai in Toscana è un'applicazione che permette al cittadino di visualizzare i distributori più vicini ad un certo indirizzo (localizzabile via gps) ordinati per convenienza del prezzo del prodotto desiderato e ai distributori di inserire e mantenere aggiornati detti prezzi.
Benzinai in Toscana PAG. 6 3. ANALISI DEI REQUISITI DEL SOFTWARE Nel presente capitolo sono riportati i requisiti funzionali e non, che la procedura software soddisfa. 3.1. Requisiti Funzionali REQ01 Amministratore Descrizione L'amministratore dell'applicazione può invocare le transazioni login, gestione distributore (operazioni CRUD sul singolo distributore), generazione automatica della lista prezzi (valorizzata a 0.0 ) del distributore al momento della creazione di quest'ultimo, gestione marca carburante (operazioni CRUD sulla marca del distributore carburante), gestione utenti applicazione (gestione di una tabella di utenti abilitati a modificare i prezzi di un singolo distributore), gestione provincia (operazioni CRUD sulla provincia) e gestione comune (operazioni CRUD sul comune) REQ02 Distributore Descrizione L'utente abilitato all'aggiornamento prezzi di un distributore può invocare le transazioni di visualizzazione prezzi, loro aggiornamento ed aggiornamento dati anagrafici del distributore REQ03 Utente Descrizione L'utente non autenticato può visualizzare l'elenco dei distributori a lui più vicini in linea d'aria (ordinati secondo una opportuna funzione obiettivo: f(distanza, prezzo) = H*distanza + K*prezzo dove H e K sono due costanti opportunamente scelte la La funzione dipende dalla distanza del distributore e dal prezzo del carburante erogato
Benzinai in Toscana PAG. 7 3.2. Requisiti non Funzionali Nei requisiti non funzionali sono riportate le esigenze non riconducibili a specifiche funzionalità, ma il cui soddisfacimento risulta necessario per il corretto inserimento della procedura nel contesto del sistema informativo attualmente in vigore presso Regione Toscana. REQNF01 Descrizione L'applicazione è disponibile nelle seguenti piattaforme: Browser web su PC generico App ios per smartphone Apple App ios per smartphone Applicazione HTML5 per altri dispositivi mobili REQNF02 Descrizione Rif. Adesione agli standard architetturali presenti in regione Toscana. Sono usati gli standard architetturali secondo quanto riportato nel documento Documento illustrativo Ambienti di sviluppo e produzione Standard Tecnologici ver.3.0 del 21.03.2011 emesso da Regione Toscana.
Benzinai in Toscana PAG. 8 4. DEFINIZIONE DELL ARCHITETTURA DEL SOFTWARE Nei paragrafi seguenti saranno descritte le informazioni gestite e/o utilizzate dalla procedura e le specifiche di realizzazione che saranno adottate per il soddisfacimento dei requisiti funzionali e non riportati nel precedente capitolo. 4.1. Dati interni In questo paragrafo è descritto lo schema logico delle entità principali gestite dalla procedura: ACCOUNT_PENDING ID, VERSION, CELLULARE, DOMAIN, LIST_ALIAS, TESTO_RISPOSTA, DATA_INSERIMENTO, SENT, SMC ACCOUNT_REFUSED ID, VERSION, CELLULARE, TESTO_RICHIESTA, DATA_INVIO_RICHIESTA_REGISTRAZIONE, DATA_INSERIMENTO ACCOUNT_TASK ID, VERSION, ULTIMO_AVVIO, ULTIMO_ID_MESSAGGIO COMUNE ID, VERSION, NAME, PROVINCIA_ID CONFIGURATION_URL ID, VERSION, ENDURL CREDITS ID, VERSION, DESCRIZIONE DISTRIBUTORE ID, VERSION, COMUNE_ID, DOMEAM, DOMEAP, DOME_DAM, DOME_DAP, EMAIL, FLAG_AUTOLAVAGGIO, FLAG_BAGNO, FLAG_BANCOMAT, FLAG_BAR, FLAG_GIORNALI, FLAG_GOMMISTA, FLAG_MARKET, FLAG_OFFICINA, FLAG_SELF_SERVICE, GIOVAM, GIOVAP, GIOV_DAM, GIOV_DAP, INDIRIZZO, LATITUDINE, LONGITUDINE, LUNEAM, LUNEAP, LUNE_DAM, LUNE_DAP, MARCA_CARBURANTE_ID, MARTAM, MARTAP, MART_DAM, MART_DAP, MERCAM, MERCAP, MERC_DAM, MERC_DAP, NOME_DISTRIBUTORE, SABAAM, SABAAP, SABA_DAM, SABA_DAP, UTENTE_DISTRIBUTORE_ID, VENEAM, VENEAP,
Benzinai in Toscana PAG. 9 VENE_DAM, VENE_DAP, CELLULARE, LICENZAUTF MARCA_CARBURANTE ID, VERSION, DESCRIZIONE_MARCA PREZZI ID, VERSION, BENZINA, BENZINA_PLUS, BENZINA_PLUSSS_A DOUBLE, BENZINA_PLUSSS_C DOUBLE, BENZINASS_A, BENZINASS_C, DIESEL, DIESEL_PLUS, DIESEL_PLUSSS_A, DIESEL_PLUSSS_C, DIESELSS_A, DIESELSS_C, DISTRIBUTORE_ID, GPL, LAST_UPDATED, METANO PROVINCIA ID, VERSION, ABBR, NAME UTENTE_APPLICAZIONE ID, VERSION, CODICE_ISTAT, PASS, ROLE Il db utilizzato è DB2. 4.2. Fonti dati esterne Non applicabile
Benzinai in Toscana PAG. 10 4.3. Articolazione del sistema in funzioni Software In questo paragrafo sarà data l articolazione funzionale del sistema. Gli attori interessati all utilizzo del sistema o ai dati da esso gestiti sono: Amministratore: L'amministratore dell'applicazione può invocare le transazioni login, gestione distributore (operazioni CRUD sul singolo distributore), generazione automatica della lista prezzi (valorizzata a 0.0 ) del distributore al momento della creazione di quest'ultimo, gestione marca carburante (operazioni CRUD sulla marca del distributore carburante), gestione utenti applicazione (gestione di una tabella di utenti abilitati a modificare i prezzi di un singolo distributore), gestione provincia (operazioni CRUD sulla provincia) e gestione comune (operazioni CRUD sul comune). L'attore deve eseguire il login. L'amministratore ha a disposizione le seguenti funzionalità: 1. Gestione Comune: funzione per l'inserimento, modifica e cancellazione di un comune. 2. Gestione Credits: funzione per gestire il testo di Credits dell'applicazione. 3. Gestione Distributore: funzione per l'inserimento, modifica e cancellazione di un distributore. 4. Gestione Marca Carburante: funzione per l'inserimento, modifica e cancellazione delle marche dei prodotti petroliferi associate ad un distributore. 5. Gestione Provincia: funzione per l'inserimento, modifica e cancellazione di una provincia 6. Gestione Utente Applicazione: funzione per l'inserimento, modifica e cancellazione di un utente. Servizio SMS: il distributore che ancora non possiede credenziali per accedere al sistema (cfr. paragrafo 4.3.1 per i dettagli) invia un sms ad un numero comunicatogli dal sistema. La gestione del colloquio sms è a carico di un thread che ascolta gli sms in arrivo, li controlla ed invia sms ai distributori.
Benzinai in Toscana PAG. 11 Distributore: L'utente abilitato all'aggiornamento prezzi di un distributore può invocare le transazioni di visualizzazione prezzi, loro aggiornamento ed aggiornamento dati anagrafici del distributore. L'attore deve eseguire il login (vedi paragrafo 4.3.1). Il distributore ha a disposizione le seguenti funzionalità: 1. Gestione Proprio Distributore: funzione per l'aggiornamento dei dati del proprio impianto (marca, servizi effettuati, orario). 2. Gestione Prezzi Carburanti: modifica dei prezzi giornalieri per tipo carburante e modalità di erogazione. 3. Gestione Utente: modifica della propria password. Utente: L'utente non autenticato può visualizzare l'elenco dei distributori a lui più vicini in linea d'aria (ordinati secondo una opportuna funzione obiettivo: f(distanza, prezzo) = H*distanza + K*prezzo dove H e K sono due costanti opportunamente scelte. La funzione dipende dalla distanza del distributore e dal prezzo del carburante erogato. L'attore non deve eseguire il login. L'utente ha a disposizione la seguente funzionalità: 1. Ricerca prezzi carburanti: l'utente, se non connesso con dispositivo GPS, digita e ricerca sulla mappa il proprio indirizzo, sceglie il tipo di carburante desiderato e visualizza l'elenco dei distributori vicini più convenienti; se connesso con dispositivo GPS, sceglie il tipo di carburante desiderato e visualizza l'elenco dei distributori vicini più convenienti. 4.3.1 Autenticazione ed accesso alla procedura L accesso alla procedura, previsto solo per amministratori e distributori, è effettuato tramite form username/password. I distributori possono ottenere le proprie credenziali attraverso una pagina nella quale selezionano da una tendina il proprio distributore e digitano il proprio codice UTF ed il proprio numero di cellulare. Se la coppia distributore codice UTF è correttamente validata le credenziali l'utente visualizza un numero di telefono al quale inviare via sms un testo (anch'esso visualizzato). Subito dopo l'invio di tale sms l'utente riceve, sempre via sms, le credenziali.
Benzinai in Toscana PAG. 12 5. ARCHITETTURA In questo capitolo si illustra l'architettura dell'applicazione in termini di componenti che la costituiscono, le loro interazioni e la loro posizione nel repository Oscat del progetto. 5.1. Componenti I componenti costituenti l'applicazione sono di seguito elencati con la relativa posizione nel repository Oscat: Componente Descrizione Oscat Web Application HTML5 Application App Android App ios Servizio generazione account Web Application J2EE che consente ai browser desktop l'utilizzo delle funzionalità dell'applicazione Web Application J2EE che consente ai browser mobile HTML5-compatibili l'utilizzo delle funzionalità dell'applicazione App nativa Android per l'utilizzo dell'applicazione da terminali Android App nativa ios per l'utilizzo dell'applicazione da terminali Apple Servizio per la ricezione di SMS inviati dai distributori al fine di ricevere le credenziali. http://oscat.rete.toscana.it/scm/vie wvc.php/trunk/distributori/trunk/di stributori2/?root=carburanti http://oscat.rete.toscana.it/scm/vie wvc.php/trunk/distributori/trunk/di stributori2/?root=carburanti http://oscat.rete.toscana.it/frs/?gro up_id=358 http://oscat.rete.toscana.it/frs/?gro up_id=358 http://oscat.rete.toscana.it/scm/vie wvc.php/trunk/distributoriaccount Manager/trunk/DistributoriAccount Manager/?root=carburanti
Benzinai in Toscana PAG. 13 5.2. Architettura Il cuore dell'applicazione è una web application J2EE sviluppata con il framework Spring/Grails. L'applicazione espone l'interfaccia utente dei dispositivi desktop ed HTML5, l'intera business logic, il colloquio con il database attraverso il pattern MVC ed i servizi REST utilizzati dalle app Android e ios. Un'altra web application J2EE, sempre sviluppata con Spring/Grails, gestisce la ricezione di SMS da parte dei distributori per l'attribuzione delle credenziali. Browser Desktop View HTML Browser View Servizi di HTML5 HTML5 Business Logic DB App Android App ios Device SMS Servizi Ricezione SMS