Impianti informatici: tecnologie e applicazioni
Fabrizio Amarilli Danilo Ardagna Mariagrazia Fugini Roberto tedesco Impianti informatici: tecnologie e applicazioni McGraw-Hill Milano New York San Francisco Washington D.C. Auckland Bogotá Lisboa London Madrid Mexico City Montreal New Delhi San Juan Singapore Sydney Tokyo Toronto
Copyright 2007 The McGraw-Hill Companies, S.r.l. Publishing Group Italia Via Ripamonti, 89 20139 Milano McGraw-Hill A Division of the McGraw-Hill Companies I diritti di traduzione, di riproduzione, di memorizzazione elettronica e di adattamento totale e parziale con qualsiasi mezzo (compresi i microfilm e le copie fotostatiche) sono riservati per tutti i Paesi. Date le caratteristiche intrinseche di Internet, l Editore non è responsabile per eventuali variazioni negli indirizzi e nei contenuti dei siti Internet riportati. Nomi e marchi citati nel testo sono generalmente depositati o registrati dalle rispettive case produttrici. Editor: Paolo Roncoroni Produzione: Donatella Giuliani Realizzazione print on demand: Ilovebooks, Fara Gera d Adda (BG) Stampa: Prontostampa, Fara Gera d Adda (BG) ISBN 978-88-386-6407-6 Printed in Italy
Ai miei genitori, che mi hanno sempre sostenuto. Roberto Ai carissimi Alberto, Alessandra, Anna e Maurizio. Mariagrazia
Indice Prefazione xiii Parte Prima Le architetture informatiche e le basi di dati 1 1 Introduzione 3 1.1 Evoluzionedellearchitettureinformatiche... 4 1.2 Architettureavanzate... 12 1.3 Uncasodistudio:Italsun... 16 2 Le basi di dati e il modello relazionale 21 2.1 Lebasididati... 21 2.2 DBMS... 22 2.3 Modelli, schemi e istanze... 25 2.4 Architetturaatrelivelli... 26 2.5 Transazioni... 27 2.6 Ilmodellorelazionale... 29 2.6.1 Larelazione... 29 2.6.2 Chiavi... 31 2.6.3 Vincoli... 32 2.7 Algebrarelazionale... 32 2.8 Il linguaggio SQL...... 35 2.9 Il processo di raccolta ordini in Italsun: requisiti... 46 2.10Esercizi... 48 3 Progettazione delle basi di dati 53 3.1 Ilprocessodiprogettazione... 53 3.2 Progettazioneconcettuale:ilmodelloE-R... 54 3.2.1 Gli elementi fondamentali... 55 3.2.2 Associazioni e cardinalità... 57 3.2.3 Autoassociazionieassociazioniternarie... 60 3.2.4 Attributi composti e cardinalità... 61 3.2.5 Identificatori e entità deboli... 61 3.2.6 Gerarchie di generalizzazione...... 64 3.2.7 Strategiediprogettodelloschemaconcettuale... 65 3.2.8 Qualità diunoschemaconcettuale... 67
viii Indice 3.3 Progettazione logica: traduzione verso il modello relazionale... 70 3.3.1 Trasformazione delle generalizzazioni... 70 3.3.2 Trasformazionedichiavieattributi... 73 3.3.3 Traduzionestandard... 76 3.3.4 Traduzione di associazioni uno-molti... 77 3.3.5 Traduzione di associazioni uno-uno... 77 3.3.6 Traduzionediautoassociazioni... 78 3.4 Il processo di raccolta ordini in Italsun: progettazione.... 79 3.4.1 Progettazioneconcettuale... 81 3.4.2 Ilprocessoditraduzioneelaprogettazionelogica... 82 3.5 Esercizi... 86 Parte Seconda Le reti 93 4 Le reti di comunicazione 95 4.1 Proprietà di una rete di comunicazione...... 95 4.2 Classificazione delle reti... 96 4.2.1 Classificazione basata sulla modalità di comunicazione.. 96 4.2.2 Classificazione basata sulla topologia... 97 4.2.3 Classificazione basata sulla tecnica di instradamento dei dati...101 4.2.4 Classificazione basata sull estensione della rete...103 4.3 Dalle reti personali alle reti geografiche.....104 4.3.1 Retipersonali(PAN)elocali(LAN)...104 4.3.2 Reti metropolitane (MAN)...106 4.3.3 Il problema dell ultimo miglio...... 109 4.3.4 Reti Geografiche (WAN)...111 4.4 Le organizzazione per la standardizzazione...111 4.5 Architetturadirete...112 4.5.1 Gliindirizzi...112 4.5.2 Iprotocollidirete...114 4.5.3 Imessaggi...115 4.6 LostackISO/OSI...116 4.6.1 Livello 7: applicazione....118 4.6.2 Livello6:presentazione...118 4.6.3 Livello5:sessione...119 4.6.4 Livello4:trasporto...119 4.6.5 Livello3:rete...121 4.6.6 Livello3:letecnichediinstradamento...123 4.6.7 Livello 3: la congestione...125 4.6.8 Livello3:laframmentazione...127 4.6.9 Livello2:collegamentodati...127 4.6.10 Livello1:fisico...129
Indice ix 5 Mezzi fisici di comunicazione 131 5.1 Latrasmissionedeisegnali...131 5.1.1 Learmoniche...131 5.1.2 La modulazione...133 5.1.3 Capacità trasmissivadiuncanale...136 5.1.4 Multiplexing....138 5.1.5 Ilcampionamento...139 5.1.6 Glierroriditrasmissione...141 5.2 Mezzi di trasmissione....144 5.2.1 Trasmissionielettriche...144 5.2.2 Trasmissioni ottiche..... 147 5.2.3 Trasmissioniradio...148 5.3 Dispositivi di interconnessione....151 5.3.1 Hub...151 5.3.2 Switch...152 5.3.3 Router, firewall e gateway...153 6 I protocolli Internet 157 6.1 StoriaestrutturadiInternet...157 6.2 LostackInternet...159 6.2.1 LivelloApplication(ISO/OSI7,6,5)...159 6.2.2 LivelloTransport(ISO/OSI4)...161 6.2.3 LivelloInternet(ISO/OSI3)...167 6.2.4 LivelloInternet(ISO/OSI3):l instradamento...171 6.2.5 LivelloInternet(ISO/OSI3):laframentazione...172 6.2.6 LivelloNetworkInterface(ISO/OSI2e1)...172 6.2.7 LivelloHardware(ISO/OSI1)...174 6.3 AssegnamentoetraduzionedegliindirizziIP...174 6.3.1 DHCP...174 6.3.2 ARP...176 6.3.3 NAT...178 6.3.4 URLeDNS...180 6.4 LaretediItalsun...185 6.5 Esercizi...190 7 Introduzione alle tecnologie Wireless 197 7.1 Benefici e ambiti di applicazione...197 7.2 Principi fisici della trasmissione senza fili....198 7.3 Architetturadelleretiwireless...201 7.4 Tecnologiedelleretiwireless...203 7.5 IEEE 802.11x...205 7.6 HiperLAN...206 7.7 Zigbee...206 7.8 Bluetooth...208 7.9 UltraWideBand...208 7.10WiMAX...209
x Indice 7.11 Convergenza fra tecnologie di comunicazione: reti wireless Mesh 210 7.12Esercizi...212 Parte Terza Applicazioni, progettazione di impianto e sicurezza 217 8 Applicazioni 219 8.1 IlWorldWideWeb...219 8.2 Lapostaelettronica...223 8.3 Lachateisistemidiinstantmessaging...225 8.4 Extensible Markup Language..... 226 8.5 WebService...229 8.5.1 Architetturaorientataaiservizi...232 8.5.2 Linguaggi per i Web Service: Web Services Description Language (WSDL)......234 8.5.3 Il Registry: Universal Description Discovery and Integration (UDDI).....235 8.5.4 Ulterioriconsiderazioni...236 8.6 VoiceoverIP...238 8.7 GeographicalInformationSystem...242 8.8 L informatizzazione del flusso passivo in Italsun...245 9 Progettazione architetturale degli Impianti Informatici 251 9.1 Affidabilità scalabilità e prestazioni degli Impiantiinformatici...253 9.2 AnalisidicostodegliImpiantiinformatici...254 9.3 Progettazionearchitetturaleorientataaicosti...256 9.4 Analisi delle prestazioni degli Impianti informatici...257 9.4.1 Modelliaretidicode...258 9.4.2 Metricheprestazionali...262 9.4.3 Metodi di risoluzione analitici per modelli aperti...266 9.4.4 Metodi di risoluzione analitici per modelli chiusi...268 9.5 Progettazionearchitetturaleorientataalleprestazioni...272 9.6 Analisi di costo e dimensionamento del sito Web di Italsun.... 276 9.7 Esercizi...278 10 Sicurezza 283 10.1 Introduzione...283 10.2 Sistemi distribuiti e sicurezza..... 285 10.3 Crittografia: principi e applicazioni... 288 10.3.1 Tecniche...288 10.3.2 Crittografia a chiave segreta...290 10.3.3 Crittografia a chiave pubblica...... 292 10.3.4 Firmaelettronicaegestionedellechiavi...294 10.4 Sicurezza dell hardware e del Sistema Operativo...... 298
Indice xi 10.5 Identità...300 10.5.1 Autenticazione...301 10.6 Sicurezza in ambiente Internet/Intranet...... 305 10.6.1 Politiche di sicurezza in Internet..... 307 10.6.2 Estensioni per la sicurezza dei protocolli Internet...311 10.7 Sicurezza in ambiente Web...... 318 10.8 Sicurezza dei dati...... 320 10.8.1 Sicurezza delle basi di dati...321 10.9 Componenti architetturali per la sicurezza....326 10.9.1 Firewall...326 10.9.2 IntrusionDetectionSystems(IDS)...329 10.10Rischi e policy di sicurezza......331 10.11Esercizi...337 Appendici 339 A Introduzione al linguaggio HTML 341 A.1 Formattazionelogica...342 A.2 Formattazione fisica..... 343 A.3 Elenchietabelle...345 A.4 Ilink...347 A.5 Immagini...349 A.6 Caratterispeciali...350 A.7 CascadingStyleSheets...351 B Introduzione al linguaggio XML 353 B.1 XMLwellformed...353 B.2 DefinizionedellastrutturadiundocumentoXML...355 B.2.1 Data Type Definition.....355 B.2.2 XML Schema Definition...356 B.3 Namespace...356
Prefazione Gli Impianti Informatici di Elaborazione (d ora in poi anche semplicemente Impianti, o sistemi informatici) sono sistemi basati sulle tecnologie dell Informazione e della Comunicazione (Information and Communication Technology - ICT), utilizzati per automatizzare le funzionalità aziendali, quali l amministrazione, la finanza, la produzione, il magazzino, la distribuzione, che sempre più spesso attualmente avvengono in modo coordinato su vari nodi aziendali geograficamente distribuiti. Per supportare tali attività, gli Impianti forniscono strumenti per la gestione di grandi quantità di informazioni in rete e per la collaborazione applicativa tra i vari siti distribuiti delle organizzazioni. Scopo di questo volume è illustrare i principi, i modelli e le tecniche riguardanti la struttura, il progetto e le tecnologie che costituiscono un Impianto. Il volume fornisce gli strumenti per comprendere le caratteristiche degli Impianti, gli scenari d uso tipici di tali sistemi, le soluzioni tecnologiche e metodologiche che ne sono alla base e i benefici che si possono ottenere usando tali sistemi. In particolare, il volume tratta gli aspetti e i problemi che si presentano nel fornire informazione e servizi attraverso reti ed applicazioni distribuite con riferimento alla infrastruttura tecnologica, alle applicazioni, alla gestione dei dati e alla sicurezza degli Impianti. Il volume affronta anche aspetti organizzativi e gestionali legati alla progettazione e manutenzione di un Impianto aziendale, con riferimento alle tipologie di utenti che vi sono coinvolti (progettisti, amministratori di sistema e di rete, utenti finali). Per concretizzare gli argomenti trattati, il volume si basa su un caso di studio tratto da una realtà aziendale effettiva. Illustrando come questa realtà si è evoluta dal punto di vista strutturale ed organizzativo per competere nel mercato globale, il volume illustra l evoluzione degli Impianti da strutture centralizzate (con un nodo di elaborazione unico) a sistemi distribuiti, in grado di archiviare e gestire vari tipi di informazioni aziendali (per esempio, dati testuali, documenti, dati statistici o multimediali), di eseguire applicazioni distribuite e cooperative basate sul concetto di servizio e di rendere le applicazioni e i dati fruibili in rete secondo criteri di ottimizzazione delle risorse dell Impianto (per esempio, velocità e affidabilità delle connessioni) e i modi di presentarli all utente secondo personalizzazioni nell accesso e sicurezza e privacy.
xiv Prefazione Contenuti Il volume descrive le tecnologie alla base degli Impianti: le basi di dati, le reti di telecomunicazione e i relativi protocolli d uso, le tipologie delle applicazioni software distribuite e i metodi per la progettazione e la realizzazione di tali applicazioni, le attuali tecnologie basate su Internet e il World Wide Web (Web per semplicità d ora in poi) e gli aspetti legati alla sicurezza informatica. Il volume presenta inoltre le linee guida e le strategie per usare le infrastrutture tecnologiche nel progetto e nello sviluppo di sistemi informatici complessi, a partire dai requisiti utente e tenendo conto di vincoli di progetto quali l efficienza nell uso della tecnologia, la minimizzazione dei costi, l ottimizzazione della qualità dei servizi offerti o la semplicità di accesso e la manutenibilità delle applicazioni, che vanno continuamente aggiornate per far fronte alle evoluzioni tecnologiche e di mercato. Il volume è organizzato in tre Parti. La Parte Prima è dedicata alle architetture informatiche e alle dasi di dati. In particolare, il Capitolo 1 definisce le caratteristiche fondamentali di un Impianto Informatico dal punto di vista architetturale, discute le opportunità e i problemi legati allo sviluppo e all utilizzo di tali sistemi in azienda e illustra l evoluzione storica delle architetture informatiche. Il capitolo presenta il caso aziendale di riferimento. Il Capitolo 2 fornisce una panoramica dei modelli e dei componenti architetturali legati all archiviazione e alla gestione dei dati. Questo capitolo, dedicato alle basi di dati e al software per la loro gestione (Data Base Management System - DBMS), presenta il principale modello dei dati nelle basi dati, il modello relazionale, descrive l architettura di un sistema di basi di dati, fornendo le motivazioni per l uso di tali tecnologie negli Impianti. Il capitolo dettaglia poi le modalità di accesso a una base di dati per estrarne dati e informazioni, presentando il linguaggio di interrogazione Structured Query Language - SQL. Infine, il capitolo discute i requisiti per il trattamento dei dati per il caso di studio. Il Capitolo 3 illustra i concetti fondamentali legati al processo di progettazione di una base di dati, soffermandosi in particolare sulle modalità della progettazione concettuale di una base di dati, attraverso il modello E-R. Descrive inoltre il processo di trasformazione dal modello concettuale al modello logico relazionale. Infine, presenta il processo di progettazione della base relativa al caso di studio. La Parte Seconda è dedicata alle reti di comunicazione. In particolare, il Capitolo 4 illustra la componente di comunicazione degli Impianti, ovvero l infrastruttura di telecomunicazione che permette lo scambio di dati in rete, la comunicazione fra applicazioni e la comunicazione fra utenti. Partendo dalle principali tipologie e topologie delle reti, il capitolo illustra il protocollo di rete ISO/OSI. Il Capitolo 5 descrive i mezzi fisici e le metodologie utilizzate per la trasmissione di segnali digitali. Inoltre, il capitolo presenta i dispositivi utilizzati per interconnettere le reti. Il Capitolo 6 presenta brevemente la struttura di Internet e la sua evoluzione storica, illustra lo stack di protocolli per il funzionamento delle reti Internet. infine, il capitolo illustra il processo di ristrutturazione della rete locale relativa al caso di studio.
Prefazione xv Il Capitolo 7 introduce i benefici e gli ambiti di applicazione delle reti wireless, illustra i principi fisici su cui si basa la comunicazione senza fili, presenta le architetture tipiche delle reti wireless e approfondisce le principali tecnologie oggi in uso per la realizzazione delle reti wireless. Infine, il capitolo illustra il fenomeno della integrazione di differenti tecnologie per la realizzazione di ampie reti senza fili. La Parte Terza descrive le applicazioni, gli aspetti di progettazione di Impianto e la sicurezza. In particolare, il Capitolo 8 è dedicato alle applicazioni informatiche, ovvero al software che viene eseguito nell ambito dell Impianto Informatico per rispondere alle esigenze di automazione degli utenti aziendali. Tali applicazioni sono classificate per tipologie, a seconda del compito che esse automatizzano e a seconda del grado di complessità (per esempio, con accesso a dati distribuiti o con utilizzo di tecnologie nuove quali i servizi basati su Web). Le applicazioni sono poi caratterizzate in base alla tecnologie su cui si basano (logica di esecuzione per esempio basata su oggetti o su uso del Web, ecc.). Vengono presentate anche alcune applicazioni innovative, per esempio le applicazioni peerto-peer basate su Web Service, quelle basate su Voice over IP (VoIP) e i sistemi informativi territoriali (Geographical Information System). Il capitolo fornisce esempi di applicazioni nell ambito del caso aziendale di riferimento, discutendo vantaggi e svantaggi di alcune scelte applicative, quali la scelta di rendere interoperabili le applicazioni su siti distribuiti. Il Capitolo 9 illustra la progettazione architetturale di un impianto: metodi quantitativi e statistici per la distribuzione del carico applicativo, per l ottimizzazione dell uso delle risorse quali tempo di elaborazione, memoria o comunicazione, per il dimensionamento dei componenti hardware e software e metodi per la realizzazione di impianti affidabili tramite introduzione di elementi duplicati o ridondanti. Il Capitolo 10 presenta gli aspetti di sicurezza di un Impianto, dalla protezione dei dati nelle basi di dati, tramite autenticazione degli utenti e regole di controllo degli accessi, alla sicurezza delle reti, per esempio tramite la crittografia, alla sicurezza delle applicazioni in Internet e in ambiente Web. Il capitolo illustra le tecniche di protezione delle architetture e dei componenti fisici, tramite firewall e Intrusion Detection System e discute come la sicurezza vada pianificata mediante un piano di sicurezza che specifichi i rischi e le policy aziendali in materia di protezione dei dati. Infine, nelle Appendici sono riportate brevemente le specifiche relative ai linguaggi HTML e XML. Utilizzo didattico Il volume si rivolge a progettisti applicativi, a utenti, ad amministratori di applicazioni, a utenti aziendali, a studenti di materie tecniche ad indirizzo gestionale, a consulenti e pianificatori di sistema.
xvi Prefazione Ringraziamenti Gli autori desiderano ringraziare i colleghi Jonatha Anselmi, Paolo Borghese, Cinzia Cappiello, Raffaela Mirandola e Barbara Pernici, per i loro commenti alla prima stesura del libro. Un particolare ringraziamento va anche a Filippo Ramoni, che ha contribuito con idee, discussioni e suggerimenti. Un sentito ringraziamento va agli studenti del corso di Impianti di Elaborazione del Politecnico di Milano, in particolare Mattia Manzoni, Giacomo Mazzacano, Davide Palmiero, Valentina Petracca, Guia Ricci, Chiara Rivela e Maria Tomasello, per i numerosi commenti e suggerimenti alle bozze del testo. Gli autori Fabrizio Amarilli, laureato in Ingegneria Gestionale presso il Politecnico di Milano, svolge attività di ricerca su differenti temi legati all innovazione basata sulle ICT nell area Innovazione Digitale di Politecnico Innovazione. Insegna Impianti Informatici presso il Politecnico di Milano. Danilo Ardagna è Ricercatore presso il Politecnico di Milano. I suoi interessi di ricerca riguardano i sistemi informativi, i sistemi di autonomic computing e grid, gli aspetti di progettazione architetturale dei sistemi informatici e la progettazione di Servizi Web composti e flessibili in ambiente multicanale. È co-autore di Sistemi Informativi Basati su Web (Angeli 2006). Mariagrazia Fugini è Professore Associato presso il Politecnico di Milano. I suoi interessi di ricerca riguardano la sicurezza dei sistemi informatici, lo sviluppo di sistemi informativi per l E-Government e di sistemi informativi basati su Web. Si occupa anche di ambienti Web based per esperimenti scientifici distribuiti, e di sistemi per la diagnostica di guasti in sistemi informativ. Collabora a vari progetti nazionali ed europei ed ha partecipato allo sviluppo di Borsa Lavoro Lombardia per i Servizi all Impiego. È co-autore di Database Security (Addison Wesley 1995), Sicurezza dei Sistemi Informatici (Apogeo 2001) e Sistemi Informativi Basati su Web (Angeli 2006). Roberto Tedesco ha conseguito il Dottorato di Ricerca presso il Dipartimento di Elettronica del Politecnico di Milano. È Collaboratore alla Ricerca e si occupa di E-Learning, sistemi di tutoring automatico, Natural Language Processing e computazione autonomica. Collabora alla didattica dei corsi di Informatica per allievi Gestionali e Impianti Informatici, presso la sede del Politecnico di Como.