Andrea Giuseppe Vailati Classe Quinta CI Informatica Elaborato della traccia : Pannelli Solari 2. In Questa traccia, è riportato che un’azienda nazionale installatrice e manutentrice di pannelli solari vuole potenziare la sua rete di assistenza ai clienti tramite una serie di accordi con aziende locali presenti in ogni provincia. Per poter supportare questa capillare organizzazione di assistenza, con le relative funzionalità di seguito descritte, ha bisogno di aggiornare la sua struttura informatica. Si vuole poter collegare alla parte di LAN aziendale dedicata all’assistenza (d’ora in poi denominata “LAN_ASSI”, una postazione fissa di ogni azienda locale che è stata individuata per svolgere assistenza nella provincia stessa ed anche dare la possibilità al tecnico che esegue l’intervento di collegarsi alla LAN_ASSI per ottenere informazioni di supporto e compilare poi un rapporto di intervento. Come strumento telematico di organizzazione, gestione e supporto agli interventi di assistenza si vuole creare un portale Web che preveda accessi diversificati a seconda degli utenti. in particolare i clienti devono potersi collegare e autenticare sul portale per richiedere l’intervento, effettuando autonomamente una prenotazione che verrà poi confermata dall’azienda tramite invio di SMS. Occorre che il cliente sia memorizzato sul sistema con i suoi dati anagrafici ed alcune informazioni relative all’impianto fotovoltaico, ossia: • • • • • • • • • • • la posizione dell’impianto la data del collaudo il numero dei pannelli presenti altezza larghezza dei pannelli presenti, la loro tecnologia (silicio monocristallino o policristallino) il tipo e numero di accumulatori il modello ditta produttrice dell’inverter Il portale Web deve disporre anche delle informazioni relative alle ditte locali di assistenza ed in particolare : • denominazione, • indirizzo, • • numero dei tecnici disponibili dati anagrafici di ogni tecnico. Dalla sede centrale dell’azienda degli impiegati provvederanno ad assegnare gli interventi ad ogni tecnico in base alle competenze specifiche tecniche ed al tipo di problema da risolvere. I tecnici sono dotati di un dispositivo elettronico dove riceveranno entro le ore 18 di ogni giorno la lista degli interventi da eseguire il giorno successivo. Una volta eseguito l’intervento il tecnico provvederà a compilare, tramite una web-app, un foglio di lavoro che sarà confermato dal cliente con firma digitalizzata tramite un touchpad integrato sul dispositivo in dotazione al tecnico. L'obiettivo di questo progetto è potenziare la infrastruttura che permette al cliente di chiedere assistenza, bisogna prima analizzare i requisiti necessari e gli strumenti che ci permettono di arrivare all'obiettivo. I requisiti sono : 1. Base dati : La base dati è un sistema software dove si possono memorizzare una grande quantità di dati in modo organizzato, persistente, accessibile, protetto, affidabile e fornisce riservatezza grazie alla gestione dei permessi d'accesso. 2. Sito Web : Il sito permetterà al cliente di accedere ai servizi di assistenza dell'azienda nazionale che, velocemente e comodamente, può richiedere in qualsiasi momento e in qualsiasi posto una richiesta di assistenza. 3. Rete Locale Aziendale (LAN) : I Tecnici, per poter ottenere informazioni di supporto relative alle richieste di assistenza, devono collegarsi alla rete aziendale nella provincia in cui si trova. Per realizzare una base dati, bisogna partire da un modello astratto e grafico che ci consente di creare una rappresentazione in modo concettuale della base dati. Il modello si chiama ER (Entità-Relazione). Una volta creato il modello concettuale, si passa alla del modello logico, si tratta di una rappresentazione della strutturazione dei dati all'interno di una base dati. Clienti : (PK(CF), Nome, Cognome, DataNascita, email, password, Telefono, Indirizzo, Città, Provincia, CAP, fk(numImpianto)) Impianto (pk(numImpianto), Indirizzo, Città, CAP, Provincia, DataCollaudo, numPannelli, Altezza, Larghezza, TipoTecnologia, numAccumulatori, Modello, MarcaInverter, fk(CodiceFiscale)) Prenotazione (numPrenotazione, fk(CodiceFiscale), Telefono, Indirizzo, Città, CAP, Provincia, Data Descrizione) Ditta (pk(P_IVA), Nome, Indirizzo, Città, CAP, Provincia, Telefono, NumImpiegati) Tecnico (pk(ID_Tecnico), Nome, Cognome, email, password, CodiceFiscale, DataNascita, Indirizzo, Telefono, Provincia, Città, CAP, competenzeTecniche, fk(Ditta_Nome)) Impiegato (pk(ID_Impiegato), Nome, Cognome, CodiceFiscale, DataNascita, Indirizzo, Telefono, Provincia, Città, CAP, fk(Sede)) Lista (ID_Lista, fk(numPrenotazione), fk(ID_Tecnico), fk(ID_Impiegato)) Documentazione(numDocumento, DataManutenzione, DescrizioneManutenzione, Costo, fk(numPrenotazione), fk(CF)) Dopo che abbiamo eseguito i primi due passaggi, possiamo passare alla implementazione fisica del database. Per farlo, utilizziamo un software che si chiama “XAMPP”, che si tratta di una multipiattaforma libera costituita da APACHE e MySQL, che ci permetterà di creare pagine web dinamiche generate dalla nostra macchina e ci dispone dei linguaggi di programmazione come PHP e SQL (che in seguito vengono usati) Per scrivere le pagine web, ho utilizzato HTML, CSS, PHP e SQL e un editor di testo (Sublime). Per realizzare il sito web, ho scritto usando l'editor di testo SUBLIME, il codice utilizzando il linguaggio HTML, che serve a creare e dare uno stile alle pagine internet; queste pagine sono complesse, perché hanno al loro interno testi, immagini, suoni, video, link, effetti visivi di vario tipo. Per aggiungere estetica alla pagina, ho utilizzato CSS che sta per Cascading Style Sheets, in italiano fogli di stile. Essenzialmente, il CSS è un linguaggio che gestisce il design e la presentazione delle pagine web, combinato con HTML Una volta costruito il sito web, dobbiamo realizzare la rete locale dove i tecnici si possono connettere per svolgere assistenza nella provincia stessa. Per farlo, esiste una tecnologia che “estende” in ambito geografico la rete locale dell'azienda nazionale LAN privata, realizzando una WAN privata per il proprio business chiamata VPN (Virtual Private Network). Si tratta di una rete privata creata all'interno di un'infrastruttura di rete pubblica, in questo caso internet. All'interno di una stessa VPN l'indirizzamento deve essere univoco. Esistono due tipi di VPN : 1. Remote -access VPN : consente ai singoli utenti di stabilire connessioni sicure con la LAN aziendale remota. 2. Site-to-site VPN : Permette di stabilire connessioni sicure attraverso una rete pubblica, come internet, anche ad aziende con tante sedi fisse, ognuna con la sua lan. In questa LAN utilizzeremo il secondo tipo, perché estende la rete aziendale, rendendo disponibili le risorse della sede principale alle sedi secondarie. Ci sono due tipi di Site-to-site VPN : 1. Intranet-based : Se una società ha una o più sedi remote che desiderano unirsi in un'unica rete privata, possono creare una VPN Intranet per collegare ogni LAN separata di una singola rete WAN 2. Extranet-based : Quando una azienda ha un rapporto stretto con un'altra azienda, è possibile costruire una VPN extranet che collega le LAN di queste imprese.La VPN extranet permette alle aziende di lavorare insieme in un ambiente sicuro, condividendo le risorse e senza l'accesso preventivo alla propria intranet. Ho scelto il primo tipo, perché le aziende locali devono lavorare all'interno della rete dell'azienda nazionale. Domanda : Sistemi e reti : Fatte le opportune ipotesi aggiuntive eventualmente necessarie, specificare le caratteristiche hardware e software del dispositivo in dotazione al tecnico. Esaminare poi le possibili scelte di connettività possibili e sceglierne una con le opportune motivazioni tecniche. Il dispositivo in dotazione al tecnico è un tablet con display touchpad con all'interno una scheda di rete wireless, con all'interno un'Indirizzo fisico chiamato “MAC address” (Medium Access controll). Si tratta di un'indirizzo formato da 6 byte rappresentati da 12 cifre esadecimali raggruppate in sei coppie separate da un trattino. Un'esempio : 08-00-2B-C4-BE-F3 I primi tre ottetti sono detti OUI(Organization Unique Identifier), in quanto identificano l'azienda produttruce della scheda, le altre sei coppie rappresentano il progressivo cronologico della scheda da parte di una determinata azienda. Il dispositivo, per potersi collegare in maniera sicura nella web-app e firmare documenti, ha bisogno di utilizzare un protocollo di trasporto che offre un servizio connection-oriented e affidabile che garantisce la consegna dei dati in modo ordinato. Si tratta del TCP (Transmission Control Protocol), ed è : 1. Full-duplex : posso sulla stessa connessione ricevere e inviare contemporaneamente 2. Point-to-point : c'è un solo mittente e un solo destinatario La prima cosa che fa è instaurare una connessione tra host1 e host2. la fase viene denominata Handshake a tre vie, dove mittente e destinatario si scambiano pacchetti con all'interno i flag che permettono di sincronizzarsi e di confermare la ricezione dei dati. La seconda fase è la trasmissione dei dati, dove host1 e host2 si scambiano i pacchetti e il protocollo gestisce il controllo di flusso con la tecnica sliding-window. La terza fase è quella di chiusura della connessione, dove il mittente imposta il flag di chiusura (FIN) e il destinatario conferma la ricezione e chiude la sessione. Un'altro protocollo che viene utilizzato è l'HTTPS (HyperText Transfer Protocol over Secure Socket Layer)Dove il dispositivo per comunicare utilizza il Web Browser per collegarsi al sito dell'azienda e questo protocollo regola lo scambio di messaggi tra il dispositivo e il Web Server. A differenza dell'HTTP, utilizza la porta 443 al posto della 80 (per porta si intende l'applicazione software a cui indirizzare i pacchetti) e utilizza un protocollo di crittografia asimmetrica, cioè i dati vengono criptati durante lo scambio dei dati. In questo modo si garantisce la sicurezza e la riservatezza dei dati. Domanda Informatica : Si descriva in generale come avviene la gestione degli utenti e dei permessi in una base di dati implementata con linguaggio SQL, quindi si descrivano le diverse tipologie di utenti che sono definite su questa specifica base di dati e si scrivano per ciascuna tipologia le query che consentono la creazione dei profili utente descritti e l’attribuzione dei permessi. Si descrivano infine le viste del sito web che sono accessibili ai diversi tipi di utente con l’elenco delle rispettive funzionalità . La gestione della base dati avviene tramite un software chiamato phpMyAdmin in cui gli impiegati possono avere accesso, mentre i tecnici per accedere ai dati che hanno bisogno per lavorare, devono interagire con la pagina web con la sezione dedicata a loro. I Clienti possono avere accesso ai loro dati nel Database, sempre da sito web, però hanno delle strette limitazioni perché non possono accedere ai dati altrui. Resoconto : 1. Gli Impiegati : i tecnici, che devono accedere alle informazioni della lista delle prenotazioni e alla documentazione relativa agli impianti dei clienti. 2. I Tecnici : Gli impiegati gestiscono le prenotazioni dei clienti e gestiscono le liste dei tecnici 3. I Clienti : I Clienti possono accedere ai dati del loro account, impianto e documentazione relativa ma senza modificare il contenuto. Il Comando per creare l'impiegato e i suoi permessi è: CREATE USER 'Impiegato'@'localhost' IDENTIFIED VIA password USING 'password'; GRANT SELECT, INSERT, UPDATE, DELETE ON SolarPanel.Clienti, SolarPanel.Tecnico, SolarPanel.Lista, SolarPanel.Prenotazioni TO 'Impiegato'@'localhost' L'impiegato all'interno del database può visualizzare, inserire, aggiornare e cancellare dati MA non può modificare la struttura del database e cancellarla. L'Impiegato è colui che ha maggiori permessi nella base dati perché deve gestire gli account dei clienti, dei tecnici, le prenotazioni e le liste di prenotazioni. Il comando per creare il tecnico e dare i permessi è : CREATE USER 'Tecnico'@'localhost' IDENTIFIED VIA password USING 'password' ; GRANT SELECT, INSERT ON SolarPanel.documentazione TO 'Tecnico'@'localhost'; GRANT SELECT ON SolarPanel.Impianto TO 'Tecnico'@'localhost'; I tecnici possono visualizzare i dati dell'impianto dei clienti e inserire dati nella documentazione dell'impianto. Il Comando per creare il cliente e dare i permessi è : CREATE USER 'Clienti'@'localhost' IDENTIFIED VIA password USING 'password' ; GRANT SELECT ON SolarPanel.Impianto, SolarPanel.Clienti TO 'Clienti'@'localhost'; I clienti possono accedere ai dati del loro account e degli impianti MA non possono modificarli. Per farlo, è necessario che intervenga un'impiegato. Il sito web possono vederlo tutti gli utenti, ma ogni utente ha la sezione dedicata, per esempio i tecnici hanno una pagina di accesso dove si fa login con le credenziali pre-impostate dall’azienda e possono vedere la lista delle prenotazioni. Invece gli utenti vedranno : Infine gli impiegati :