informatica.pdf
Document Details
Uploaded by CompactFreeVerse361
Tags
Full Transcript
INFORMATICA Modulo C CALCOLATORE: sistema di elaborazione dati, nato in forma meccanica, poi analogica e, infine, digitale. La storia: - 4000 anni fa in Cina: nascita abaco - 1702, Leibnitz: elabora scritti sul sistema numerico binario → ripreso nel 1854 da Boole - 1804, Jacquard: automatizza la tes...
INFORMATICA Modulo C CALCOLATORE: sistema di elaborazione dati, nato in forma meccanica, poi analogica e, infine, digitale. La storia: - 4000 anni fa in Cina: nascita abaco - 1702, Leibnitz: elabora scritti sul sistema numerico binario → ripreso nel 1854 da Boole - 1804, Jacquard: automatizza la tessitura - Ada Lovelace: prima programmatrice della storia, introduce la possibilità di programmare la macchina di Babbage per altri fini - Hollerith crea la macchina tabulatrice per automatizzare le operazioni del censimento e fonda la Tabulating Machine Company (1896) che diventerà la IBM MEMEX: idea di un sistema di archiviazione dati a scopi personali (primo supporto per ipertesto) MACCHINA DI TURNING: idea di un calcolatore universale, composta da una macchina fisica e dati, su cui calcolare ogni funzione I TUBI A VUOTO - 1939, Atanosoff e Berry: fondano A e B computer (ABC) → primo calcolatore digitale completamente elettronico - 1945, Neuman: crea un’architettura per calcolatori digitali in cui i vari programmi hanno stessa memoria - 946, ENIAC: crea un calcolatore su tecnologia a valvole senza dispositivi meccanici e in grado di fare operazioni molto complesse, occupando però spazio I TRANSITOR 1954, IBM: crea un calcolatore commerciale con memoria su nastro magnetico, senza tubi ma con transitori. Nel 1959 viene lanciato IBM705: troppo costoso e grande. I CIRCUITI INTEGRATI 1964, Olivetti: crea il primo PC → programma 101: - come i grandi calcolatori ma stava in una scrivania - non aveva schermi ma trasmetteva su carta stampata Sempre la Olivetti crea il primo minicomputer con schermo multimediale: PDP-8 IL MICROPROCESSORE Anni ’70, Intel Corporation: primo microprocessore → circuito capace di contenere le unità di calcolo del calcolatore 1981: Apple II, Apple Dos vs IBM: MS – Dos (Microsoft) ALGORITMO: metodo per risolvere in modo efficace, univo, universale, formalmente preciso e finito un problema. - Finezza delle operazioni - Non ambiguità nel linguaggio: codificato e formale - Universalità della procedura - Completezza delle operazioni Non esiste un unico algoritmo per risolvere un problema. L’efficacia e la complessità de pendono anche dall’organizzazione dei dati a disposizione dell’algoritmo. PROGRAMMA: algoritmo scritto in un linguaggio comprensibile al calcolatore, che utilizza dati organizzati secondo strategia ed è vincolato da risorse e condizioni disponibili. INFORMAZIONE: insieme di dati espressi mediante rappresentazione simbolica ed inseriti in un contesto rappresentativo. La codifica dell’informazione è la corrispondenza tra questa e il simbolo, mentre, un codice è l’insieme di simboli e regole. Le regole definisco l’uso e il significato de simboli. Da una sola informazione si possono trarre diverse codifiche, o decodifiche, del messaggio. Ogni codice è composto da dei simboli, i quali equivalgono rispettivamente a un’informazione. Si può ridurre il numero dei simboli senza ridurre le informazioni attraverso la combinazione (lettura più lunga). La rappresentazione dell’informazione numerica può essere una numerazione decimale posizionale (potenza di 10) o, una numerazione binaria (potenza di 2). In quest’ultima, due cifre (0 e 1) sono associabili a due fatti fisici del calcolatore. Il BIT (binary digit) è l’unita di misura di informazione, con valore 0 e 1. Il bite è formato da una sequenza di 8 bit contigui, quindi può rappresentare 256 informazioni diverse. Sistema internazionale vs commissione elettronica. La codificazione binaria può essere utilizzata anche per rappresentare caratteri alfanumerici: carretti alfabetici, numeri e altri simboli usati nella scrittura. Ogni carattere deve avere rappresentazione binaria univoca. I codici più utilizzati per rappresentare digitalmente i testi sono: - ASCII ESTESO: 8 bit → inizialmente da 7 bit, senza lettere accentate (ASCII) → prima codificazione alfabeto anglosassone - UNICODE: 8,16 o 32 bit → codifica caratteri di lingue vive e morte Suoni e immagini sono SEGNALI: variazioni di una certa grandezza fisica lungo una o più dimensioni. Pressione, luce e posizione (animazioni) variano nel tempo. I segnali sono continui e la transizione non può essere immediata. Per poter rappresentare immagini e suoni in un calcolatore, è necessario passare da dominio analogico (continuo) a quello digitale (discreto, con un numero finito di punto: campioni) attraverso il processo detto CAMPIONAMENTO. Ogni campione deve essere rappresentabile da un numero finito di bit, l’arrotondamento è detto quantizzazione e non è reversibile. Frequenza campionamento: n Quantizzazione cambi di pressione Suoni Suoni acuti Volume minimo Immagini Risoluzione Quantità colori Filmato N fotogrammi IMMAGINI Unità minima di informazione: PIXEL → celle in griglia (più griglie, più pixel, più risoluzione). Ogni pixel è un punto da colare, la cui tonalità è descritta da una sequenza di bit (uno per bianco e uno per nero) Il modello di colore è il sistema che permette la rappresentazione digitale a colori: RDB (red, green, blue: ognuno 1 byte → 256 sfumature) SUONI Unità minima di informazione: CAMPIONE DI AMPLIEZZA → valore di ampiezza dell’onda sonora in un istante. Il suono è un’oscillazione periodica dell’aria sul timpano. Si campiona il segnale 4000 mila volte al secondo e ogni campione è di 16 bit, moltiplicati per i due canali (orecchie). VIDEO Unità minima informazione: FOTOGRAMMA composto da pixel → circa 25, 30, 50 o 60 immagini al secondo. Con la tecnica di slow motion la frequenza di foto per secondo è pià alta mentre, invece, con lo stop motion accade il contrario. I video devono essere stereoscopici perché gli occhi sono due. Il modo in cui viene rappresentato nativamente un dato non corrisponde al modo in cui viene archiviato. Esistono diversi modi di memorizzare: - NON COMPRESSO: viene occupata la memoria e si può manipolate il materiale direttamente - COMPRESSO SENZA PERDITA INFO (lossless): elimina il ridondante, che viene reintrodotta per manipolare. Si risparmia il 50% della memoria - COMPRESSO CON PERDITA (lossy): elimina l’irrilevante, ovvero le informazioni non recepite (circa il 90%). Sconsigliato per la manipolazione. HARDWARE: parte fisica del calcolatore, composta da componenti materiali. - Unità di controllo (CPU): elabora i dati, formata da uno o più microprocessori. Esegue i programmi scritti in lingua dalla macchina. o Unità di controllo (CU): esegue, ordina, controlla in modo ciclico o Registri di memoria: unità di memoria veloci con capacità ridotta (16/64 bit) → si occupano di istruzioni e dati che stanno o sono appena stati processati o Unità logico aritmetica (ALU): nucleo esecuzione calcoli che prende gli operandi dai registri, fa le operazioni e mette i risultati sulla memoria in modo ciclico o Bus: canali di comunicazione che trasferiscono i dati tra le componenti - Memoria centrale o di lavoro (RAM): memoria primaria si occupa dei dati e dei programmi in esecuzione. L’accesso è casule (random) e la velocità del processore è essenziale. Se il calcolatore si spegne il contenuto delle celle, in cui sono raggruppati i bit in successione, viene cancellato (volatilità) - Memoria di massa: memoria secondaria che memorizza dati e programmi quando non in uso, i tempi di accesso sono elevati e le informazioni permanenti, infatti, è anche detta memoria dei dischi e delle unità di memorizzazione permanenti. o Dischi fissi: all’interno del calcolatore (a volte anche esterni collegabili con USB) o Dischi ottici (CD – DVD – Blu Ray): distribuzione software e grossi archivi di dati multimediali, solitamente memorizzano dati di sola lettura e necessitano dispositivi dedicati (masterizzatori) per eseguire operazioni di scrittura. o Memorie flash (USB, memori card): sono più veloci, hanno accesso casuale e consumi ridotti. - Periferiche input/ output: permettono la comunicazione tra calcolatore e utente. Si collegano con interfacce di comunicazione (porte) e possono variare in velocità. Il controller è la scheda collegata alla scheda madre che gestisce la periferica. o Input: comunicano al calcolatore info esterne: tastiera, mouse (tuchpad), scanner, microfoni o Output: il calcolatore comunica con l’esterno: stampante, schermo, casse Queste componenti sono combinate grazie all’architettura di Von Neunman: programmi in un'unica memoria di lavoro e componenti tutte collegate da bus. Le varie parti si trovano all’interno della scheda madre, a loro volta nelle case: custodie di metallo. Ogni microprocessore ha un clock che scandisce la sequenza delle operazioni da esguire. Attraverso questo clock si calcola la velocità del processore. L’unità di misura della frequenza di clock è l’HEIRTZ. SOFTWARE: componente immateriale del calcolatore, anche detta materia morbida. Consiste dall’ insieme di programmi che possono essere eseguiti dal calcolatore. Un singolo programma software è un insieme di istruzioni che un calcolatore deve eseguire per compire un task. Il software di sistema è un insieme di programmi che gestiscono le risorse e il comportamento del programmatore. Il software più importante in questa categoria è il SISTEMA OPERATIVO che controlla tutto e gestisce le componenti fisiche del calcolatore: UPO e RAM, memoria secondaria con modulo file system, periferiche con driver (permettono il funzionamento di un dispositivo e consentono al calcolatore di usarlo). - Windows (Microsoft): SO disponibile per molte piattaforme, cioè installabile (pagando e con licenza) su diversi calcolatori - Linux (1991): SO gratuito, installabile su diverse piattaforme oggi disponibile in svariate distribuzioni - Mac OS X (Apple): solo su dispositivi di questo produttore, inspirato da UNIX (Linux) - Android (Google): inspirato da UNIX, soprattutto su smartphone e tablet I SOFTWARE APPLICATIVI comprendono diversi programmi e non sono pre-istallati, l’utente può scegliere e essi posso coesistere (tranne Antivirus). La scelta va in base al costo (licenza): esistono freeware (gratis) e open source (contributo). Una volta istallato il software occupa uno spazio sulla memoria secondaria e ognuno è costruito per funzionare con un dato sistema operativo. I dati vengono memorizzati su FILE, ovvero una zona di memoria non volatile localizzata con un file system, cioè un modo usato dal SO per suddividere e organizzare la memoria di massa. Esistono diversi tipi di file system e non tutti sono compatibili. I più diffusi sono dotati di organizzazione in cartelle (struttura ad alberi) e memorizzano i dati satellite relativi ai file. - Software video scrittura o word process: Blocco Note, Microsoft Word - Figli di calcolo e papersheet: Excel - Software per la gestione di base dati: Access - Software per presentazioni: PP - Software intrattenimento - Software grafica: disegno, fotoritocco, progettazione - Software riproduzione audio e video - Software navigazione web: Safari - Software sviluppatore software - Software gestionali: ospedali, uffici (commissionabili) Ogni SO ha una strategia diversa èper riconoscere una tipologia di file: - ESTENSIONE: (dopo il.): a ogni estensione è associata un’applicazione predefinita che può essere modificata - METADATI SPECIFICI: ogni file ha un altro file nascosto con lo stesso nome che memorizza l’ultima applicazione che ha elaborato il file per interpretarlo - MAGIC NUMBER: dati addizionali salvati in testa al file (header) Rischi dell’informatica: dipendere da sistemi così complessi senza nemmeno conoscerli, sovraccarico delle informazioni, sia per quanto riguarda la mal progettazione dei siti che non ci permettono di recepire le giuste info, sia relativamente alla navigazione compulsiva degli utenti. Nei servizi gratuiti il pagamento avviene con la profilazione, ovvero l’inserimento dei dati, i quali possono essere: - Utilizzati per la scelta dei contenuti personalizzati: creazione si una bolla e alterazione della realtà - Venduti a terze parti di servizi basate sui dati: si vendono a terze parti spazi pubblicitari personalizzati, cioè dedicati a una categoria - Vendita a terze parti per scopo d’indagine, senza sapere l’uso che ne verrà fatto La Cambridge Analitica, attraverso la pubblicità, ha influenzato il voto politico di alcuni indecisi. L’UE ha quindi obbligato a esplicitare l’uso dei dati. Per difendersi dal tracciamento si può: rendersi anonimi, adottare determinati comportamenti implementare le normative. Le fake news possono essere ideologiche: nel Myanmar nel 2016 attraverso le fake news è stata indetta una propaganda da parte dell’esercito per causare della violenza su una minoranza mussulmana. Le fake news sono anche economiche. Esistono, infatti, aziende che le diffondono per poi gestire siti per smentirle. In questo modo i siti di debuking perdono credibilità. Le fake news possono essere smascherate solo con il fact checking. Esistono anche fornitori di servizi illegali a cui si appoggiano coloro che vogliono diffondere contenuti malevoli, chiamati click farm. I servizi forniti sono i click account e i fake account (influenzano l’opinione politica con commenti e provocazioni) SPAM: pubblicità non richieste SCAM: tentativi di truffa in visa telematica PHISHING: furto di credenziali per mezzo di false comunicazioni ufficiali La sicurezza online si basa su: - Garantire confidenzialità dei dati: segreto industriale, privacy → per difenderla esiste la cifratura dei dati (OTP: one time pass, ricevuti come codici) - Garantire integrità dei dati: no modifiche accidentali o malevole → per difenderla si usano copie di sicurezza (backup) e l’hashing, un codice che cambi al cambiare dei dati. - Garantire disponibilità dei dati La violazione di questa sicurezza avviene attraverso HACHER (non nuocciono intenzionalmente) e CRAKER (pirati informatici). Questi ultimi vogliono danneggiare il sistema e, agiscono da posizione remota usando software malevoli (virus), facendo leva sulla vulnerabilità del sistema, difetti software o hardware. I prodotti commerciali, per combattere questi attacchi, segretano il codice sorgente (pubblico negli open source) Modulo F FOGLIO DI CALCOLO (faglio elettronico, spreadsheet): programma applicativo di produttività personale → Microsoft Excel, Open Office Calcolator Esiste la funzione automatica di riempimento delle celle: inserimento di dati predefiniti (giorni, mesi) dopo che si è inserito il primo. È anche possibile modificare altezza e larghezza delle celle (non singole) Funzionalità foglio di calcolo: finanziarie (tassi e interessi), data e ora, matematiche e trigonometriche, statistiche, testo, logiche Funzioni matematiche: - SOMMA: = (B5:B9) (B5+B9) (B5;B9) Trascinando si può ottenere lo stesso calcolo in un'altra colonna, con aggiornamento automatico dei calcoli. Quando si vuole mantenere fisso il riferimento a una o più celle quando si trascina, si usa il riferimento assoluto, inserendo $ prima della coordinata della cella. - SE è una funzione logica che consente di variare il contenuto di una cella in base al verificarsi o meno di una condizione prefissata. SE (test; se_vero; se_falso) Il test è una condizione da verificare: B11> 50 e F2 = D7 Funzioni statistiche: - MAX e MIN dei valori nelle celle considerate - MEDIA: aritmetica, ma che geometrica e armonica (media.armonica) - CONTA.NUMERI: esegue il conteggio delle celle che contengono un valore numerico considerando un insieme di celle specificato - CONTA.VALORI (val1; val2): al contrario delle altre, non considerano solo valori numerici, ma anche quelli logici e testuali (scritte, celle vuote) - CONTA.VUOTE (val1; val2): lo spazio, essendo un valore, non viene contato - CONTA.SE (intervallo; criterio): conteggia le celle in un intervallo specifico, che soddisfino una determinata condizione. La concatenazione delle parti che insieme costituiscono il criterio viene effettuata attraverso il carattere ampersand (&). GRAFICI: permettono una visualizzazione complessiva dei dati. Una serie di dati (insieme di valori relativi a un fenomeno) memorizzata in un intervallo di celle di un foglio di calcolo, ognuna delle quali ha un valore che verrà visualizzato nel grafico. È anche possibile confrontare una serie di dati, ognuno dei quali può essere associato a una categoria che ne descrive la natura. 1. Scelta del TIPO DI GRAFICO: - Istogramma: confronta i valori relativi a una serie di dati (y) rispetto a una serie di categorie (x): colonne raggruppate o colonne in pila - Grafico a barre: istogramma invertito: barre raggruppate o barre in pila - Grafico a linee: confronta i valori di serie di dati diversi a intervalli predefiniti - Grafico ad area: confronta i valori di una serie di dati rappresentando i valori corrispondenti mediante aree d dimensione variabile - Grafico a torta: mostra le proporzioni dei vari elementi di una serie di dati (una sola serie rappresentabile): torta o torta nella torta - Grafico ad anello: come quello a torta ma con più dati, rappresentati mediante anelli concentrici - Grafico a dispersione: → grafico a bolle: 2. Indicare l’intervallo di celle (intervallo dati), in cui sono memorizzati i valori da rappresentare e, come disporre nell’intervallo la serie di dati e le categorie: righe o colonne 3. Modificare: titoli, assi, griglia, legenda, etichette dati (info che possono facilitare la lettura dei valori), tabella dati (contiene dati e categorie che generano il grafico) 4. Decidere se mettere il grafico nello stesso foglio dei dati o in un altro. Modulo I GESTIONE INFORMAZIONI Il DATO è la descrizione di una caratteristica della realtà costituita da simboli che ne garantiscono la comprensione registrata su un supporto che la conservi. Un’INFORMAZIONE è l’interpretazione di un dato, in grado di arricchire la nostra conoscenza Limite organizzazione dati: - Validità dei dati: non si fanno controlli - Ridondanza dati: ripetuti se necessario - Propagazione modifiche - Compromissione della correttezza in caso di soggetti omonimi che vengono confusi Fogli di calcolo: memorizzazione dati in un una griglia di celle, sena distinzione tra schema e istanza. L’utente organizza i dati come vuole, la scelta di avere una serie di dati omogenei per riga e colonna non è obbligatoria, la funzionalità di comparazione è esistente ma non utilizzata. BASE DATI: organizzazione dati in tabella e confronto obbligatori. Migliore organizzazione e meno ridondanza. La base dati o database è una collezione di dati coerenti, creata allo scopo specifico di rappresentare e memorizzare le informazioni di una realtà di interesse. Il sistema di gestione base dati (DBMS) è un software che supporta la definizione e manipolazione della base dati, da esperti e non. Infatti, ognuno con i diritti può accedere alla base dati. - Fornisce una visione di alto livello dei dati - Garantisce la sicurezza dei dati - Fornisce supporto per la condivisione della base - Definisce la possibilità di creare una versione personalizzata dei dati - Integra delle funzionalità di salvataggio e recupero dati MODELLO DEI DATI: descrizione della struttura dei dati che caratterizzano la realtà di interesse a cui si riferisce la base di dati. Un modello dei dati comprende - Un insieme di costrutti, attraverso i quali si annotano i dati - Un insieme di operazioni per esprimere le interrogazioni e le modifiche da eseguire sui dati organizzati secondo quel modello Un modello di dati deve permettere la rappresentazione degli (insieme di) oggetti del mondo reale, dei legami (associazioni) tra tali oggetti e delle caratteristiche (attributi) degli oggetti e/o delle loro associazioni. MODELLO RELAZIONALE (1970): modello dati sul quale si basa la maggior parte dei DBMS. I dati si trovano in tabelle, dette RELAZIONI; composte da un numero di colonne, dette ATTRIBUTI, e righe, dette TUPLE. I valori possono appartenere allo stesso tipo di dato o DOMINIO. La base dati relazionale è una collezione di tabelle che rappresentano gli oggetti e le loro associazioni che caratterizzano la realtà di interesse. Lo schema relazionale è composto dal nome r e dalla relazione di attributi che costituiscono la relazione. I dati che compongono una relazione di base dati ne costituiscono l’istanza, ovvero l’insieme delle tuple definite sugli attributi della relazione r. L’istanza della base dati è, quindi, l’insieme delle istanze di relazione di ciascuna relazione della base dati. Vincoli che si possono inserire negli attributi di una base dati: - Not null: richiede di inserire un valore per l’attributo sul quale è impostato il vincolo. Non sarà possibile memorizzare una tupla nella relazione qualora essa sia priva di valore sull’attributo cognome. - Default: inserimento di un valore predefinito nel caso in cui non sia stato specificato alcun valore per l’attributo in fase di inserimento o modifica → valore di default “nazione”: “USA” - Unique: inserire un valore univoco per l’attributo sul quale è impostato il vincolo → non si potranno avere due tuple con il medesimo valore per l’attributo unique CHIAVE PRIMARIA: utilizzata per identificare in modo univoco ogni tupla di una tabella. Non possono esserci tuple distinte con il medesimo valore. La chiave primaria può essere costituita da un singolo attributo o più, solitamente indicati da una sottolineatura. Una base dati DBMS può essere vista su tre livelli ai quali corrisponde uno schema: - Schema logico: descrizione dell’intera base dati per mezzo del modello dei dati del DBMS utilizzato (per noi è quello razionale) Visione dati di livello basso, si considerano direttamente i valori delle tuple → livello nascosto all’utente - Schema fisico: organizzazione fisica dei dati Visione dati di alto livello, presentati sottoforma di tabella - Schema esterno o vista: descrive una porzione della base Dati vengono presentati agli utenti secondo schemi esterni diversi, detti viste, che contengono un sottoinsieme di tutti i dati Creare una base dati relazionale (db) con l’uso di Libreoffice Base: non un vero DBMS ma strumento valido e efficace per un’esperienza pratica di lavoro con basi dati relazionali (software libero e opensource) Dopo aver definito gli attributi, le chiavi primarie e il nome della tabella, creare le altre tabelli minori. Stabilire poi le associazioni che intercorrono tra di loro: dopo aver scelto le tabelle da collegare, trascinare l’attributo dalla prima alla seconda tabella. I dati vanno inseriti prima nelle tabelle in cui non ci sono chiavi esterne. QUERY-BY-EXAMPLE: strumento visual offerto da Libreoffice per formulare interrogazioni, scrivendo le caratteristiche che le tuple del risultato dovranno presentare. Sarà necessario selezionare le tabelle e gli attributi che dovranno essere utilizzati nell’interrogazione. Un attributo può essere coinvolto perché incluso nel risultato o perché necessario per esprimere la condizione di selezione sui dati delle tabelle. SQL è il comando relativo all’interrogazione: - Select: specificazione degli attributi che vogliamo ottenere nel risultato, se inseriamo * vogliamo comprenderli tutti → es. nome, cognome - From: esprime la tabella / le tabelle da cui prendere i dati → es. attore - Where: specifica eventuali condizioni di selezione. Le tuple di FROM vengono inserite solo se rispettano and, or e not→ es. anno-nascita > 1950 AND nazione = USA Quando ci sono più tabelle: - Select: regista.nome, regista.cognome, film. titolo - From Film join Regista on film.id_regista (chiave esterna) = regista.id_regista (chiave primaria) Ai suoi albori (anni ’90) il WEB era formato da PAGINE STATICHE: documenti HTML che erano mostrati identici a tutti. Poco dopo nascono le PAGINE DINAMICHE in cui i contenuti vengono personalizzati in base a una o più interrogazioni che dipendono dall’utente. Una pagina dinamica è realizzata combinando codice in linguaggio HTML (come per le pagine statiche) con istruzioni espresse mediante un linguaggio di programmazione → PHP PHP nasce nel 1994 da Lerdorf, come una sequenza di comandi finalizzati a facilitare il compito dei programmatori nella personalizzazione delle pagine web. Oggi conosciuto come PHP (Hypertext Preprocessor), ed è un linguaggio di programmazione completo, sofisticato e flessibile. Esso offre la possibilità di interagire con la quasi totalità dei DBMS relazionali oggi disponibili. Modulo I RETE DI CALCOLATORI: due o più dispositivi connessi tra loro, attraverso infrastrutture fisiche (cavo o onde radio) in grado di scambiarsi informazioni. La rete è rappresentabile da un insieme di punti V (nodi), i quali rappresentano i calcolatori, collegati attraverso linee E (archi) → rete = (V;E) Nella rete domestica i router connettono i vari dispositivi mentre, nella rete condominiale ogni appartatamente è un singolo nodo, quindi una sottorete della rete condominiale. La comunicazione tra nodi può essere sincrona, i nodi si connettono nello stesso momento o asincrona, un nodo invia un messaggio sapendo che i destinatari potrebbero non essere connessi e riceveranno il messaggio dopo. Destinatari: - POINT-TO-POINT (unicast): unico destinatario (e-mail) → nodi fanno uso di algoritmi di instradamento (routing) per individuare il miglior percorso per far arrivare il messaggio - MULTICAST: insieme predefinito di nodi destinatari (contenuti streaming) → il mittente incapsula gli indirizzi dei destinatari nel contenuto di ciascun pacchetto da trasmettere. Ogni nodo poi lo esamina per vedere se ne è il destinatario e, se così non fosse, lo ignora - BROADCAST: diretto a tutti i nodi di una rete (radio) Le reti di calcolatori si classificano in base all’area geografica che interessano: - Local area network (LAN): rete locale → appartamento, sede aziendale Attraverso cavi o radio - Metropolitan Area Network (MAN): rete metropolitana che collega LAN distanti → due sedi cittadine della stessa azienda. Attraverso ethernet (cavi) o fibra ottica - Wide Area Network (WAN): rete geografica che collega una vasta area con fibra ottica - Global Area Network (GAN): rete globale che collega i WAN Attraverso dorsali sottomarine, satelliti INTERNET: generica rete di calcolatori ottenuta mediante interconnessione di reti e sottoreti, le quali costituiscono un sistema autonomo (AS) dotato di apparato gateway che manda e riceve pacchetti (due nodi appartenenti a AS diversi possono comunicare con una VPN). Questo internet si distingue da Internet, il quale consiste nella rete GAN. PROTOCOLLO: definisce il formato e l’ordine dei messaggi Protocollo ISO / OSI (open scambiati tra due o più entità di comunicazione, così come le system interconnection) azioni intraprese in fase di trasmissione e/o ricezione di un messaggio. La comunicazione in rete coinvolge diversi protocolli, ognuno con un compito specifico. I protocolli sono organizzati in livelli che man mano friniscono servizi superiori. (Per incapsulamento si intende spedizione mentre, per estrazione ricezione) Nodi di internet. - HOST (calcolatori): offrono servizi - Apparati di comunicazione: costituiti da linee di trasmissione (via cavo / radio) ed elementi di comunicazione, detti ROUTER. Il router è un elaboratore dedicato a funzioni di instradamento dei messaggi di due reti alle quali appartiene contemporaneamente. Nella rete domestica esso permette di instradare i messaggi verso quella esterna e viceversa. Il router si distingue dal gateway perché non traduce il protocollo quando due dispositivi di reti diverse devono comunicare ma, semplicemente permette lo scambio tra due reti adiacenti. È bene: - Evitare intrusioni nella propria rete (installare Software Firewall) - Assicurare che il messaggio sia letto solo dal destinatario (messaggi cifrati) - Permettere a un nodo di accertare che il messaggio ricevuto sia stato inviato da uno specifico mittente RETE INTERNET: la più grande rete telematica mondiale che connette centinaia di milioni di elaboratori. Si avvale di apparati e collegamenti di vario tipo per connettere dispositivi (nodi/host) di varia natura e di sottoreti diverse. La storia: - 1957: lancio Sputnix, satellite URSS - 1958: fondazione ARPA, agenzia sviluppo tecnologico → ARPANET (1966): si impegna a sviluppare una rete di calcolatori, non con un’unità centrale che sarebbe stata un punto debole ma, con percorsi alternativi. - 1969: prima trasmissione - 1972: vengono connesse 40 macchine lungo tutti gli USA - Anni ’80: ISO (international standard organization) definisce uno standard per la connessione di sistemi aperti in grado di colloquiare gli uni con gli altri. - 1982: sviluppo protocolli TCP e IP, che pongono la base per Internet - 1984: negli UK sviluppano JANET, rete che collegava università e organizzazioni scientifiche, a loro volta collegate a ARPANET - 1990: decesso ARPANET e affermazione Internet, ovvero collezioni di reti che comunicano con protocolli TCP/IP - Incremento PC e introduzione www (World Wide Web) Per usufruire dei servizi di internet i vari host devono comunicare tra di loro, attraverso due approcci: - SISTEMI CLIENT- SERVER: evoluzione dei sistemi basati sulla condivisione delle informazioni tra due calcolatori. Il client (software – hardware) usufruisce e il server offre. Entrami possono essere calcolatori dotati delle stesse capacità di calcolo e comunicazione. Un esempio di client software è un programma di posta elettronica installata sul dispositivo che si connette a un servizio centralizzato per scaricare i messaggi. Molti software hanno una componente client (app utente) e un server (app su elaboratore server). Il lookup viene svolto dai motori di ricerca mediante parole chiave. - RETE PEER-TO-PEER (P2P): due o può host (peer: server e client) interagiscono mediante comunicazione alla pari. Il suo beneficio è la scalabilità, ovvero una determinata risorsa può essere a disposizione di più nodi allo stesso tempo a chi ne fa richiesta ha maggior possibilità di averla in breve tempo. Il limite, invece, è il fatto che i meccanismi di ricerca delle risorse sono più complessi: è necessario fare un’interrogazione a due o più nodi (lookup) per capire chi ha le informazioni, per poi downloadarle. I protocolli Internet (TCP/IP o UDP/IP) hanno quattro livelli: applicazione, trasporto, rete e accesso alla rete. Nel modello TCP/IP il livello di applicazione è responsabile di fornire servizi di livello urgente (servizio web o posta) e riassume gli ultimi tre livelli del modello OSI. Il livello trasporto viene realizzato con il protocollo TCP o UDP: la scelta dipende dal servizio di applicazione vincolato. Il livello rete equivale al livello Internet, con l’utilizzo del protocollo IP. Invece, il livello di accesso alla rete corrisponde ai primi due livelli OSI. Il protocollo di trasporto TCP consente lo scambio di messaggi tra due nodi (host), che si connettono tramite handshake e comunicano a livello applicativo, basato su una connessione affidabile. Questo protocollo è dotato di meccanismi di ri-trasmissione e verifica di consegna sei pacchetti: - Sequence number e acknowledgment number: numero progressivo di invio e numero di conferma di ricezione di un pacchetto → verifica della non compromissione delle info - Receive window: stima del tempo di trasmissione del pacchetto Il protocollo di trasporto UDP consente lo scambio ma, su una connessione non affidabile (no handshake). Il vantaggio è che la comunicazione è più semplice e snella. Questo protocollo viene utilizzato dove l’affidabilità non è un aspetto cruciale (telefonia su internet, stream) Trasmissione pacchetti: - INOLTRO (forwarding): trasmissione pacchetto ricevuto da un altro nodo della rete in base a regole prestabilite - INSTRADAMENTO (routing): impiego algoritmi di instradamento per selezionare il nodo a cui inoltrare il pacchetto ricevuto. Ogni nodo ha un indirizzo IP univoco assegnato al gestore della sottorete. Il livello di applicazione eroga servizi che comunicano con il livello di trasporto mediante un’interfaccia (socket) la quale si occupa dei messaggi dal livello di applicazione a quello di trasporto, e viceversa. Il SOCKET smista le comunicazioni che i vari servizi hanno con i diversi interlocutori: ciascun servizio è associato a un numero di porta univoco che gli permette di gestire diverse comunicazioni contemporaneamente. Tra i servizi di Internet il può noto è il WWW o Web, ideato dal CERN nel 1989: fornisce un modo standard per condivider informazioni su internet (unione testo, audio, immagini), utilizza link, introduce i browser web: software che con un’interfaccia permettono all’utente di passare da un sito all’altro e visualizzare le pagine. I servizi più famosi sono: posta e file sharing (condivisione tra più nodi di un determinato numero di contenuti, peer-to-peer o client/server). HTTP è il protocollo attraverso il quale il client richiede l’accesso e la visualizzazione i una pagina web memorizzata presso un server web e, allo stesso tempo, è il protocollo von il quale il serevr invia la pagina web richiesta dal dispositivo client. I protocolli si utilizzano digitando un indirizzo web o cliccando su un link: il browser compone la richiesta http e la invia al server dove è memorizzata la pagina richiesta, il server risponde con un messaggio http (formato da header e body) contente la pagina richiesta. Http è un protocollo privo di stato: le connessioni client-server vengono stabilite e rilasciate per ciascuna richiesta e riposta corrispondente tra i due dispositivi. Una volta fornita la risorsa al client, il server chiude la connessione. I vantaggi sono: la facilità nel passaggio fa una pagina all’altra del server e la riduzione del carico di lavoro al server. Però, le informazioni fornite dall’utente in richiesta http non vengono memorizzate, ad esempio bisogna ripetere le credenziali per il login (cookie: meccanismi mantenimento informazioni), HTTPS è un protocollo basato su http che dispone di un meccanismo di autenticazione e cifratura per evitare la lettura da parte di soggetti non autorizzati. NOME DI DOMINIO: nome associato a un indirizzo IP di un dispositivo in rete. Ogni indirizzo IP è formato da 32 bit, divisi in quattro blocchi di numeri decimali: 78.987.356.937. Un esempio di dominio è it.wikipedia.org: non sono ammessi spazi, trattini bassi, segni di interpunzione. I sottodomini sono divisi tra loro dal punto e sono organizzati gerarchicamente da sinistra a destra. - Domini di primo livello (org): insieme finito ma in espansione o Nazionali: elaboratori di uno specifico paese: it, fr o Generici: elaboratori con precisa finalità: com, edu, org - Domini di secondo livello (wikipedia): insieme virtualmente infinito → soggetto ne fa richiesta - Domini di terzo livello (it); gestito dal soggetto, ha lo scopo di fornire più informazioni URI (uniform resource identifier): standard per rappresentare l’indirizzo univoco e completo di una risorsa su internet. Un’URI è composta dal nome del dominio del server presso il quale la risorsa è ospitata e dal percorso sul disco del server che permette di raggiungere la risposta. URL (uniform resource locator): tipo di Uri che descrive anche il protocollo da usare per reperire la risorsa http:// ww.di.unimi.it /ecm/home protocollo Nome del dominio del Percorso sul server per server che ospita la risorsa accedere alla risorsa HTTP offre due meccanismi per consentire all’utente di inviare parametri di un messaggio di richiesta http: - Get: inserimento parametri in coda all’URL - Post: inserimento nel corpo dell’URL DNS (domain name system): servizio a livello applicativo che permette la conversione di nomi di dominio nei corrispondenti indirizzi IP, attraverso la comunicazione tra i vari server. Un AS accede a Internet con un Internet Service Provider (ISP): residenziali (telecome, vodafone), aziendali, per attività specifiche (uni, aeroporto). Tramite ISP si definisce la tecnologia di trasferimento dati (ADLS, fibra) e la banda massima di trasferimento dati concessa a richiedente per download e upload. Ogni IPS utilizza un protocollo IP, che fornisce ogni volta che un host si collega a Internet, usando un protocollo DHCP, il quale, quindi, consente di fornire in maniera automatica un indirizzo IP di un host che fa richiesta di accesso alla rete. Una volta che il dispositivo viene scollegato, l’indirizzo IP può essere riassegnato, perciò non possono richiedere l’indirizzo più utenti nello stesso momento. HTML utilizza dei tag (marcatori) per definire le regole di formattazione che il browser deve interpretare per comporre la pagina web. Ad ogni tag di apertura è associato il corrispettivo tag di chiusura usualmente identificato dal simbolo /. Essi possono essere scambiati quando è necessario applicare più stili di formattazione al medesimo testo: a tutto il testo tra i due tag è applicato lo stile di formattazione indicato da tag. Struttura base pagina web: - : informa il browser del fatto che si tratta di un documento html - : inizio codice vero e proprio, tutto ciò che racchiude è la struttura del codice - : tag che impartiscono direttive al browser - : dati, testi, tabelle, link … NB: quello che noi andremo a visualizzare è solo ciò che è contenuto trai tag. : immagine → j se nella stessa directory della pagina html, jpg se nella sottodirectory Con la banda larga sono subentrati anche audio e video: nel 2007 nasce HTML5 che aggiunge e CSS (cascading style sheet): strumento per arricchire l’aspetto visuale ed estetico di una pagina web e, allo stesso tempo, separare l’informazione relativa allo stile grafico degli elementi HTML dal ruolo strutturale che tali elementi hanno. È possibile usare lo stesso foglio di stile per diverse pagine di un sito per avere una visione uniforme. Esistono tre modi per usare CCS: - Direttamente in linea → si usa quando si ha la necessità di apportare delle modifiche relative solo a blocco di codice che stiamo trattando e non all’interno del documento. L’introduzione avviene attraverso STYLE - Ad inizio pagina a stile incorporato → nei casi in cui elementi diversi usano lo stesso stile. Le istruzioni vengono inserite a inizio pagine: STYLE all’interno dell’intestazione (Questo e quello prima possono essere combinati ma il primo ha priorità) - Utilizzando un foglio di stile esterno: si definisce un file esterno a quello html a cui tutte le pagine che lo desiderano possono fare riferimento. È comodo quando si vuole usare lo stesso stile su pagine diverse. WEB STATICI: contenuti si sola lettura, necessario un programmatore che modifichi il codice della pagina html e che lo carichi sul server per aggiornare, numero finito di pagine. Se si vuole creare un sito web non sempre da modificare e con il quale gli utenti non interagiscono è ottimale: meno tempo di caricamento per visualizzare la pagina, meno costoso da ospitare e mantenere, meno complesso da configurare e più sicuro. WEB DINAMICI: applicazione scritta in linguaggio server-drive che genera e pubblica le pagine del sito al momento della loro richiesta, variando il contenuto in base alle scelte dell’utente. Attraverso un sistema di gestione contenuti è possibile aggiungere o rimuovere pagine, immagini e contenuti autonomamente. La scelta dei web dinamici è più diffusa: modifica contenuti senza dover mettere mano al codice sorgente, dati elaborati dall’utente, facilità nella modifica dell’aspetto grafico. BROWSER WEB: software usati dai client per accedere alle informazioni del WWW residenti sul server web. I browser cono programmi capaci di generare una richiesta http quando l’utente ricerca una pagina web e, interpretare il codice html della pagina ottenuta in risposta, visualizzando i contenuti. Questa definizione è riduttiva con l’avvento delle Web Applications, fruibili grazie all’uso dei Browser Web. MOTORI DI RICERCA: se non si conosce l’URL per reperire la risorsa desiderata è possibile avvalersi di uno di questi (Google, Yahoo!, Bing) per torvare il sito desiderato. I motori di ricerca utilizzano i web crawler (spiders-robots), i quali si occupano di visitare- gli URI registrati nel database del motore e seguire tutti gli indirizzi contenuti nei documenti analizzati conservandone una copia. Per escludere una parola dalla ricerca si inserisce – preceduto da uno spazio bianco. Inoltre, è anche possibile svolgere una ricerca avanzata: - Cinque campi per inserire termini a seconda delle parole che si vogliono escludere o trovare, o intervalli numerici, che diventano date o unità di misura. - Selezionare lingua - Selezionare formato - Individuare in quale parte della pagina si devono trovare le informazioni Per stabilire la rilevanza di un sito ogni motore usa dei propri algoritmi di classificazione e, a volte favorendo risultati sponsorizzati, che appaiono primi grazie a delle key words. Il lavoro del motore può essere diviso in due fasi: gli spider trovano le pagine e ne memorizzano una copia, la pagina viene prelevata dal database per essere analizzata e scomposta nelle diverse parole che la compongono → INDICIZZAZIONE Per ogni diversa parola viene creato un registro che risposta varie informazioni, tra cui le occorrenze (numero di ripetizioni della pagina), il quale viene salvato nella moria di uno specifico server. Quando una persona fa un’interrogazione, vengono ricercate le parole che sono contenute nel server. Alle pagine viene attribuito un punteggio (ranking), dipendente dai criteri che il motore utilizza per valutare: diversi motori, diversi risultati. Un parametro importante da tenere in considerazione nelle tecnologie adottate dai motori di ricerca sono i link da e verso una pagina → INBOUND, OUTBOND link PAGE RANK: tecnologia che permette a Google di cerare, con un’equazione di 500 milioni di variabili e due miliardi di termini, una struttura dei link della rete che poi utilizza come strumento di organizzazione e valutazione delle pagine web. Non è solo importante il link verso o nel sito ma, anche la qualità del link. Aggiornamenti algoritmi: - PANDA, Febbraio 2011: impedisce a siti web con bassa qualità di posizionarsi in alto nel motore di ricerca attraverso paid ads. - PENGUIN, April 2012: limita l’uso scorretto dei link in entrata e in uscita → link spam e kay words surfing per migliorare il ranking. - HUMMINGBIRD, Agosto 2013: maggiore concentrazione sul contesto e sull’intento della query per fornire migliori risultati → geolocalizzazione SEO (search engine optimization): processo che aumenta la qualità e la quantità del traffico web, ottimizzano la visibilità di un sito → miglioramento dei risultati non pagati, attraverso modifiche al design e al contenuto del sito per renderlo più attraente Prima: per ottimizzare un sito bisognava ottimizzare l’algoritmo e i robot di ricerca, processo complesso che ha introdotto i tentativi di modifica (spammy). Oggi: ottimizzare un sito vuol dire ottimizzare per gli utenti che si desidera trovino il sito. WEB 2.0: termine ombrello che raggruppa riferimenti sia sul piano dello sviluppo della tecnologia e degli standard, sia sul piano dello sviluppo dei modelli di business e dell’user experience applicati al web. Il web 2.0 inizia dalla nascita dei blog (1994), a Wiki (2001) a YouTube (2005). La differenza con il web 1.0 sta nell’approccio con il quale gli utenti si rivolgono al web: non più solo per consultare ma anche per contribuire. Al suo sviluppo hanno contribuito: - WEB DEVICE: software in grado di comunicare con altre componenti connesse in rete tramite lo scambio di dati in formato standard. - API: insieme di procedure rese disponibili da un software per accedere alle sue risorse e servizi. - PROTOCOLLI REST: protocolli di interscambio dei dati che si basano sui soli metodi resi disponibili dal protocollo http. WEB 3.0: consente alle applicazioni e a siti di web di ricevere informazioni sul web, elaborarle e fornire nuove informazioni agli utenti → WEB SEMANTICO La semantica è lo studio del significato delle parole: relaziona parole, frasi e simboli con ciò che rappresentano, ovvero con il loro significato. Il web semantico tratta di relazioni tra concetti e cose: nella ricerca semantica le regole della logica possono essere applicate alle informazioni. Se un motore di ricerca trova un'affermazione logica sul sito Web di Barack che dice "Barack è amico di Michelle" e qualcuno fa una ricerca di "amici di Michelle", allora, anche se il sito Web di Michelle non menziona Barack, il motore di ricerca semantico ci farà sapere che Barack si considera amico di Michelle. I motori di ricerca possono derivare nuove conoscenze dai dati, detti DATI SIGNIFICATIVI O STRUTTURALI, dotati di un vocabolario e una grammatica. Google, Yahoo!, Yandex e Microsoft, nel 2011, hanno adottato come vocabolario lo schema.org. Per la grammatica, invece, ci sono tre diversi attori: - Rdfa: consente di utilizzare i dati html visibili, si estende a html5 e viene usato nel corpo e nell’intestazione - Microdata: specificata html open-community usata per annidare i dati strutturali all’interno del contenuto html, usato generalmente nel corpo - Json-ld: al contrario degli altri duplica i radi per utenti e motori di ricerca inserendoli in e di una pagina come INTERNETE OF THINGS (ioT): gran numero di ‘cose’ che sono connesse a internet in modo che possano condividere dati con altre ‘cose’: applicazioni, dispositivi, macchine. Il termine è stato coniato da Kevin Ashton, uno dei fondatori dell’Auto -D Center, a cui si deve la scoperta di come collegare un oggetto a internet con tag RFID. L’architettura del sistema ioT è formata da: - Primo livello: dispositivo - Secondo livello: Edge Gateway - Terzo livello: Cloud