INFORMATICA - nuovescuole.com · von Neumann va il merito di aver approfondito, ... In pratica il...

46
INFORMATICA Indice : - IL COMPUTER - PROTEZIONE, SICUREZZA E AUTENTICAZIONE - DESCRIZIONE DEL SISTEMA OPERATIVO - DATABASE - LA RETE INFORMATICA - MOTORI DI RICERCA - BROWSER - I DRIVER - WEB MARKETING - IL SISTEMA WIRELESS - FOGLIO ELETTRONICO - SISTEMI OPERATIVI - SCANNER - POSTA ELETTRONICA - LA FUNZIONE INFORMATICA

Transcript of INFORMATICA - nuovescuole.com · von Neumann va il merito di aver approfondito, ... In pratica il...

INFORMATICA

Indice :

- IL COMPUTER - PROTEZIONE, SICUREZZA E AUTENTICAZIONE - DESCRIZIONE DEL SISTEMA OPERATIVO - DATABASE - LA RETE INFORMATICA - MOTORI DI RICERCA - BROWSER - I DRIVER - WEB MARKETING - IL SISTEMA WIRELESS - FOGLIO ELETTRONICO - SISTEMI OPERATIVI - SCANNER - POSTA ELETTRONICA - LA FUNZIONE INFORMATICA

COMPUTER

Un computer (in italiano calcolatore o elaboratore, talvolta nell'italiano svizzero ordinatore) è una macchina automatizzata in grado di eseguire calcoli matematici complessi e, eventualmente, altri tipi di elaborazioni di dati. Nato infatti come macchina calcolatrice evoluta, a partire dalla seconda metà del XX secolo il computer si evolve in macchina in grado di eseguire le più svariate elaborazioni, restituendo cioè un certo output a partire da istruzioni impartite in input dall'esterno.

Nel corso della storia, l'implementazione tecnologica di questa macchina si è modificata profondamente sia nei meccanismi di funzionamento (meccanici, elettromeccanici ed elettronici), che nelle modalità di rappresentazione dell'informazione (analogica e digitale) che in altre caratteristiche (architettura interna, programmabilità, ecc.). Al giorno d'oggi, ci si riferisce comunemente al computer come ad un dispositivo elettronico e digitale, programmabile a scopo generico costruito secondo la cosiddetta architettura di von Neumann ed il modello teorico-computazionale della cosiddetta macchina di Turing. Sebbene i computer programmabili a scopo generico siano oggi i più diffusi esistono in specifici ambiti di applicazione modelli di computer dedicati (automazione industriale, domotica, ecc.).

In questa forma e al pari della televisione, esso rappresenta il mezzo tecnologico simbolo che più ha modificato le abitudini umane dal secondo dopoguerra ad oggi: la sua invenzione ha contribuito alla nascita e allo sviluppo dell'informatica moderna, che ha segnato l'avvento della cosiddetta terza rivoluzione industriale e della società dell'informazione.

Struttura logica

La struttura logica del computer attuale può ricondursi alla presenza di almeno cinque elementi fondamentali o sottosistemi:

• Unità centrale di elaborazione (o CPU); • Memoria; • Schede elettroniche di espansione; • Dispositivi di input/output; • Canale di comunicazione dei dati (o Bus).

Questo schema venne proposto per la prima volta dal matematico John von Neumann all'interno di uno scritto informale del 1945 noto come First draft of a report on the EDVAC . L'opera nasce dalla partecipazione di von Neumann al progetto ENIAC e raccoglie le idee provenienti da vari membri del team di sviluppo su come migliorare la funzionalità del computer nascituro.

Va inoltre ricordato che von Neumann era stato profondamente influenzato da Alan Turing , il quale aveva proposto nel 1937 un modello di calcolo - passato alla storia come Macchina di Turing - che ben si prestava a descrivere le operazioni eseguite da un computer, pur non essendo stato concepito per quello scopo (Turing si stava occupando in quella sede del problema della computabilità, non della realizzazione di un calcolatore). Il funzionamento della Macchina di Turing suggerì a von Neumann l'idea che la memoria dovesse contenere non solo i risultati delle operazioni svolte dal computer, ma anche le istruzioni di programmazione.

Premesso il contributo degli altri progettisti dell'ENIAC e quello di Alan Turing, a von Neumann va il merito di aver approfondito, arricchito e messo a sistema gli spunti raccolti: motivo per il quale la struttura logica sopra indicata è oggi nota come architettura di von Neumann.

Applicazioni pratiche

In sostanza un computer è in grado di eseguire operazioni logiche come ad esempio calcoli numerici e storicamente è stato proprio il calcolo la prima forma di applicazione del computer ovvero il problema che ha spinto all'invenzione e alla realizzazione del computer stesso. Dalla nascita della struttura più elementare in seguito si sono sviluppati e succeduti molti tipi di computer, costruiti per svariati compiti, professionali e non, che, pur affinando sempre più il calcolo numerico fino ad arrivare al moderno calcolo scientifico ad elevate prestazioni grazie ai supercalcolatori, vanno ben oltre offrendo applicazioni diffusissime all'utente comune come la videoscrittura in sostituzione delle vecchie macchine da scrivere e in generale applicazioni di office automation, creazione e gestione di database, la progettazione assistita al calcolatore, la computer grafica, la simulazione, sistemi elettronici di controllo, applicazioni di diagnostica medica, i videogiochi ecc.

Hardware, software, programmazione

A differenza della mente umana, intesa come attività del cervello, che è in grado di affrontare e risolvere problemi nuovi a mezzo di facoltà cognitive come intuizione e ragionamento, il computer, in quanto macchina, pur partendo ugualmente da dei dati in input, è invece un semplice esecutore di ordini, compiti o istruzioni impartite dall'esterno per risolvere determinati problemi d'interesse attraverso un algoritmo di risoluzione del problema stesso in modo tale che a partire da determinati input produca determinati output attraverso elaborazione degli stessi. Esso nasce dunque per eseguire programmi o applicazioni: un computer senza un programma da eseguire è inutile.

Il computer, in quanto esecutore, ha dunque bisogno di essere istruito o programmato dall'esterno per mano competente di un programmatore: questi comunica/interagisce con la macchina attraverso i linguaggi di programmazione ad alto, medio o basso

livello di astrazione (linguaggio macchina), che si differenziano tra loro secondo vari paradigmi di programmazione.

Queste parti immateriali che consentono l'utilizzo di programmi vengono comunemente chiamate software in contrapposizione all'hardware che è invece la parte fisica (elettronica), nel senso di materiale e tangibile, degli elaboratori e che consente l'esecuzione dei programmi stessi. Tutto ciò che si può ottenere con l'utilizzo accoppiato di strumenti informatici o risorse hardware e software costituisce un'applicazione informatica. Tutto il resto, oltre ad hardware e software, sono i dati presenti nella memoria del computer, compresi all'interno di file e directory ed utilizzati in input dai programmi stessi per l'espletamento in output del particolare servizio richiesto dall'utente.

Ovviamente quando si lavora su un computer scompare agli occhi dell'utilizzatore il funzionamento hardware interno della macchina interfacciandosi con essa unicamente tramite il linguaggio di programmazione ad alto livello oppure grazie all'interfaccia utente del software stesso garantendo così quella grande flessibilità di utilizzo anche a chi non ne conosce i principi fisico-elettronici di funzionamento e che costituisce, assieme alla potenza di elaborazione, a quella di memorizzazione e alla riprogrammabilità, la chiave di successo dei computer stessi. Questo processo di astrazione a partire dal livello fisico è comune a tutta l'informatica.

Il programma o software di base di gran lunga più importante per un computer (se previsto nell'architettura generale) senza il quale la macchina non potrebbe funzionare è il sistema operativo, che si occupa di gestire la macchina, le sue risorse hardware e le altre applicazioni che vi sono eseguite. Fornisce così all'utente un'interfaccia (grafica o testuale) con la macchina gestendo o coordinando in maniera efficiente le operazioni di Input/Output comandando le rispettive periferiche di sistema, gestendo le operazioni di esecuzione dei programmi applicativi assegnandovi di volta in volta le risorse hardware necessarie al processamento (scheduling) ed infine gestendo l'archiviazione e l'accesso ai dati memorizzati attraverso il cosiddetto file system.

Dal punto di vista hardware il computer inoltre è un sistema elettronico digitale (programmabile) che elabora cioè tutti i dati in formato digitale o numerico ovvero come sequenze di 0 e 1 corrispondenti a due livelli di tensione (alto e basso) corrispondenti a loro volta ai due stati fisici di interruttore aperto e chiuso. La logica elettronica interna di funzionamento è dunque basata sull'Algebra di Boole. Il linguaggio dell'hardware è propriamente un linguaggio macchina ovvero sequenze di bit cui si associano per semplice codifica i linguaggi a più alto livello. Ovviamente l'immissione dei dati in input alla macchina elaboratrice è di tipo alfa-numerico decimale per cui è necessaria un'operazione di traduzione o codifica delle informazioni in binario; viceversa per ottenere una visualizzazione in output dei risultati dell'elaborazione è necessaria una traduzione o codifica inversa da binario ad alfa-numerico decimale. Tale codice è generalmente il codice ASCII.

A larghe linee la progettazione di sistemi di elaborazione a livello hardware ricade in massima parte nel campo dell'ingegneria informatica (la quale a sua volta afferisce conoscenze dall'ingegneria elettronica), mentre lo sviluppo software è affidato in massima parte al campo dell'informatica pura. Pur tuttavia i confini tra le due discipline non sono rigidi bensì spesso assai sfumati.

Tipi di computer

Il termine computer, nel senso moderno-elettronico, ha ormai assunto un significato sempre più vasto comprendendo la semplice calcolatrice fino ai grandi sistemi di calcolo e venendo dunque ad assumere il significato più generale di sistemi di elaborazione dati. Tuttavia i computer possono essere idealmente divisi in alcune categorie molto generali, a seconda delle loro caratteristiche salienti, dell'uso che in generale se ne fa, del software e dei sistemi operativi che fanno girare e dell'epoca in cui sono comparsi. Le definizioni nel tempo sono molto cambiate e i confini non sono mai così netti.

Una prima classificazione in base all'uso distingue tra computer general purpose ovvero riprogrammabili per svariate applicazioni dall'utente e computer special purpose ovvero sistemi embedded dedicati ad una sola applicazione specifica come ad esempio i microcontrollori.

Un'altra classificazione è basata sull'accesso condiviso o meno alle risorse hardware: un computer general purpose può essere monoutente oppure multiutente sfruttando il cosiddetto timesharing delle risorse e con diversi sistemi operativi. Un computer monoutente può essere monotasking oppure multitasking ovvero può eseguire più processi in contemporanea (in pratica tutti i computer moderni). Ovviamente un computer multiutente è anche multitasking.

IL CONCETTO DI FILE

“Un file ("archivio") è un insieme di informazioni codificate organizzate come una sequenza (di byte), immagazzinate come un singolo elemento su una memoria di massa, all'interno del File System esistente su quella particolare memoria di massa.”

Un file è quindi uno spazio logico continuo per la memorizzazione dei dati.

Se dal punto di vista dell'utente un file è solitamente un singolo elemento, può succedere che, invece, fisicamente sia scritto su più zone diverse del supporto che lo ospita: questo fenomeno è molto comune se il supporto di memorizzazione è un disco, mentre è molto raro su nastri magnetici. Uno dei compiti del Sistema operativo è rendere trasparente alle applicazioni la reale suddivisione fisica del file e occuparsi di gestire la scrittura e il recupero delle informazioni dai vari blocchi fisici.

Un file può memorizzare vari tipi di dati:

- Codice eseguibile

- Dati generici

- numeri

- caratteri

- dati binari

- ...

I file sono risorse di memoria utilizzabili dai processi ma separate dai propri spazi di indirizzi. I processi possono usarli in toto o in parte, spostando le informazioni nelle proprie aree di indirizzi. Si potrebbe pensare che la gestione dei file possa essere fatta direttamente dai processi, ma ciò comporterebbe una serie di problemi dovuti alla loro condivisione e protezione. Perciò è il S.O. che si interessa della loro gestione.

FILE SYSTEM

Il File System è quella parte del S.O. che si occupa della gestione delle informazioni e fornisce la struttura delle cartelle che conserveranno il sistema operativo, le applicazioni, i file di configurazione e i dati dell'utente.

Il File system:

- identifica e cataloga i file

- gestisce le operazioni sui file cioè fornisce primitive e utility per assegnare l’uso dei file ai processi che ne fanno richiesta

- alloca su disco lo spazio per la creazione dei file

In pratica il File System fa corrispondere a un modello logico dei file una struttura fisica sul supporto di memorizzazione, e stabilisce i metodi di memorizzazione e accesso.

Il File system è usato in due accezioni:

- File System Logico (visione dell’UTENTE): Come organizzo i file all’interno del mio disco ?

- File System Fisico (visione del DISPOSITIVO di archiviazione): Come scrivo fisicamente i dati sul disco ?

PROTEZIONE

Un aspetto sempre più importante nella gestione dei sistemi operativi è quello relativo alla protezione e alla sicurezza, soprattutto in relazione all’ uso di un calcolatore facente parte di un sistema distribuito. Se un sistema di calcolo ha più utenti e consente che i processi siano eseguiti in modo concorrente, i diversi processi devono essere protetti dalle attività degli altri processi. Per tale ragione, CPU, memoria e altre risorse devono essere controllate .

Un Sistema di Calcolo è un insieme di processi e oggetti, cioè elementi hardware come CPU, memoria, stampanti, dischi ed oggetti logici come file, semafori e programmi. Questi oggetti devono essere protetti contro tutti gli abusi.

Il ruolo della protezione è quello di fornire un meccanismo per imporre dei criteri che controllino l’uso delle risorse.

In altri termini, a un processo deve essere consentito l’accesso alle sole risorse di cui ha l’autorizzazione e deve usare solo le risorse di cui ha bisogno per svolgere il proprio compito. Un diritto di accesso è un permesso per eseguire una operazione su un oggetto.

Il processo opera all’interno di un Dominio di Protezione che specifica a quali risorse il processo può accedere. Un dominio è, perciò, un insieme di diritti di accesso ed è costituito dalla coppia ordinata: nome dell’oggetto, insieme dei diritti di accesso, cioè quali operazioni possono essere compiute su quell’oggetto. Un dominio si può realizzare in vari modi, ad esempio in Linux il dominio è associato all’utente: in questo caso l’insieme degli oggetti a cui si può accedere, e il modo, dipende dall’identità dell’utente.

Spesso i sistemi reali sono limitati e consentono limitazione solo per i file: Linux fornisce, per ogni file, le protezioni per lettura, scrittura ed esecuzione distinte per proprietario, gruppo o chiunque. La JVM di Java fornisce un controllo più selettivo e personalizzato dei processi, rispetto al sistema operativo.

SICUREZZA

Le informazioni presenti in un sistema di calcolo (codici e dati), così come tutte le altre risorse, devono essere protette da accessi non autorizzati, distruzioni, alterazioni, modifiche accidentali. Si dice che un sistema è Sicuro se alle sue risorse si accede solo nei modi previsti. Le alterazioni alla sicurezza possono essere dolose o accidentali. Per proteggere il sistema occorre agire su alcuni fattori:

- fisico: protezione fisica contro i furti

- umano: porre attenzione a fornire accesso ad utenti che forniscono l’accesso ad intrusi

- rete: cercare di ridurre la possibilità di intercettazione dei dati che transitano in rete

- sistema operativo: il sistema deve proteggere se stesso dalle violazioni accidentali o intenzionali.

AUTENTICAZIONE

(controllo dell’accesso) degli utenti

Per i S.O. il principale problema relativo alla sicurezza riguarda l’autenticazione: si tratta di stabilire se un utente o un sistema siano effettivamente coloro che dichiarano di essere. Dati di sicurezza rubati o persi possono consentire più attacchi e necessitano di più schemi di autenticazione. Nessuna tecnica offre completa sicurezza di autenticazione, neanche quelle Biometriche (impronte digitali, impronte vocali, mappatura della retina). Ci sono molti tipi di meccanismi di autenticazione, ma i più usati sono:

- conoscenza dell’utente (cosa sai) : parola d’ordine (password), ID, PIN

- oggetti posseduti (cosa hai): una chiave, una SmartCard

- attributo dell’utente (cosa sei): : impronta digitale o di retina (tecniche biometriche), firma.

Riferiamoci al metodo più diffuso: la password, che si possono considerare come casi particolari di chiavi. La password può essere vulnerabile. Due modi consueti di individuare la parola d’ordine si basano sulla conoscenza dell’utente o sulla forza bruta, cioè provare tutte le possibili combinazioni di lettere, finchè si scopre la password. Il SO può anche cifrare le parole d’ordine, ma poi non ha più il controllo. Si possono usare parole d’ordine accoppiate o monouso. La login o la password sono considerate generalmente autenticazioni deboli.

Forti autenticazioni si ottengono combinando tra loro due diversi tipi di autenticazione. L'effettivo livello di sicurezza dipende ovviamente dal contesto, perché un SmartCard può essere rubata, e le credenziali di login possono non essere difficili da individuare.

DESCRIZIONE DEL SISTEMA OPERATIVO

Affinché un computer sia in grado di far funzionare un programma informatico (detto talvolta applicazione o software), il terminale deve essere capace di effettuare un certo numero di operazioni preparatorie per assicurare gli scambi tra il processore, la memoria, e le risorse hardware (periferiche).

Il Sistema operativo (sigl SO o OS , abbreviazione del temine inglese Operating System), è incaricato di assicurare il collegamento tra le risorse software, l'utente e le applicazioni (trattamento di testi, giochi video,...). Così, quando un programma vuole accedere ad una risorsa hardware, non è necessario che invii delle informazioni specifiche alla periferica, ma gli basterà inviare le informazioni al sistema operativo, che si occuperà di trasmetterle alla periferica interessata attraverso il suo driver. Il sistema operativo permette quindi di "dissociare" i programmi e l'hardware, soprattutto per semplificare la gestione delle risorse e offrire all'utente un'interfaccia uomo-terminale semplificata per permettergli di liberarsi della complessità del terminale hardware.

Ruoli del sistema operativo

I ruoli del sistema operativo sono diversi :

• Gestione del processore : il sistema operativo è incaricato di gestire la distribuzione del processore tra i diversi programmi mediante un algoritmo di comando. Il tipo di comando dipende totalmente dal sistema operativo, secondo l'obiettivo desiderato.

• Gestione della memoria viva : il sistema operativo è incaricato di gestire lo spazio di memoria distribuito ad ogni applicazione e, se necessario, ad ogni utente. In caso di memoria hardware insufficiente, il sistema operativo può creare una zona di memoria sul disco rigido, detta «memoria virtuale». La memoria virtuale permette di far funzionare delle applicazioni che necessitano di più memoria di quanta non sia disponibile nella memoria viva del sistema. Dall'altro lato, questa memoria è molto più lenta.

• Gestione delle entrate/uscite : il sistema operativo permette di unificare e di controllare l'accesso dei programmi alle risorse hardware attraverso dei driver (detti anche gestionari di periferiche o gestionari di entrata/uscita).

• Gestione degli eseguibili delle applicazioni : il sistema operativo è incaricato della corretta esecuzione delle applicazioni attribuendo loro le risorse necessarie al buon funzionamento. A questo titolo, esso permette di «eliminare» un'applicazione che non risponde più correttamente.

• Gestione dei diritti : il sistema operativo è incaricato della sicurezza legata all'esecuzione dei programmi garantendo che le risorse sono utilizzate solo dai programmi e che utenti hanno i diritti appropriati.

• Gestione dei file : il sistema operativo gestisce la lettura e la scrittura nel sistema dei file e i diritti di accesso ai file per gli utenti e le applicazioni.

• Gestione delle informazioni : il sistema operativo fornisce un certo numero di indicatori che permettono di diagnosticare il corretto funzionamento del terminale.

Componenti del sistema operativo

Il sistema operativo è composto da un insieme di software che permettono di gestire le interazioni con l'hardware. In questo gruppo si distinguono generalmente i seguenti elementi :

• Il nucleo (in inglese kernel) che rappresenta le funzioni fondamentali del sistema operativo come la gestione della memoria, dei processi, dei file, delle entrate/uscite principali e delle funzionalità di comunicazione.

• L'interprete di comando (in inglese shell, tradotto «conchiglia» in opposizione a nucleo) che permette la comunicazione con il sistema operativo mediante un liguaggio di comandi, affinché l'utente possa pilotare le periferiche ignorando tutta una serie di caratteristiche hardware che utilizza, dalla gestione degli indirizzi hardware, ecc.

• Il sistema di file (in inglese «file system», sigla FS), che permette di salvare i file in un'arborescenza.

Sistemi multitask

Un sistema operativo è detto «multitask» (in inglese multithreaded) quando più «operazioni» (detti anche processi) possono essere eseguiti simultaneamente.

Le applicazioni sono composte come una sequenza di istruzioni detta «processi leggeri» (in inglese «threads»). Questi threads saranno attivi a turno, in attesa, sospesi o distrutti, secondo la priorità che è loro associata oppure eseguiti progressivamente.

Un sistema è detto preemptive quando ha un comandante (detto anche pianificatore) che ripartisce, seguendo dei criteri di priorità, il tempo terminale tra i diversi processi che lo richiedono.

Il sistema è detto a tempo condiviso quando una quota di tempo è destinata ad ogni processo dal comandante. E' esattamente il caso dei sistemi multiutenti che permettono a più utenti di usare simultaneamente su uno stesso terminale delle applicazioni differenti oppure simili: il sistema è allora detto «sistema transazionale». Il sistema quindi assegna ad ogni utente un intervallo di tempo.

Sistemi multiprocessore

Il multiprocessing è una tecnica che consiste nel far funzionare più processori in parallelo per ottenere una maggiore potenza di calcolo rispetto a quella ottenibile con un processore d'alta qualità oppure per aumentare la disponibilità del sistema (in caso di guasto di un processore).

Viene detto SMP (Symmetric Multiprocessing o Symmetric Multiprocessor) un'architettura in cui tutti i processori accedono ad uno spazio memoria condiviso.

Un sistema multiprocessore deve quindi essere capace di gestire la condivisione della memoria tra più processore ma anche distribuire il carico di lavoro.

Sistemi imbarcati

I Sistemi imbarcati sono dei sistemi operativi previsti per funzionare su terminali di piccole dimensioni, come i PDA (personal digital assistants ou en français assistants numériques personnels) o delle apparecchiature elettroniche autonome (sonde spaziali, robot, computer di bordo di veicoli, ecc.), con un autonomia ridotta. Caratteristica essenziale dei sistemi imbarcati è la loro gestione avanzata dell'energia e la loro capacità di funzionare con delle risorse limitate.

I principali sistemi imbarcati «grande distribuzione» per PDA sono :

• PalmOS • Windows CE / Windows Mobile / Window Smartphone

Sistemi in tempo reale

I sistemi in tempo reale (real time systems), essenzialmente usati nell'industria, sono dei sistemi il cui obiettivo è di funzionare in un ambiente con limiti temporali. Un sistema in tempo reale deve quindi funzionare in modo affidabile secondo limiti temporali specifici, cioè deve essere in grado i consegnare un corretto trattamento delle informazioni ricevute ad intervalli di tempo definiti (regolari o meno).

Ecco alcuni esempi di sistemi operativi in tempo reale :

• OS-9 ; • RTLinux (RealTime Linux) ; • QNX ; • VxWorks.

DATABASE Con il termine basi di dati (in inglese database), si indicano in informatica gli archivi di dati, organizzati in modo integrato attraverso tecniche di modellazione dei dati. Quindi si può dire che: il database è una collezione di archivi di dati ben organizzati e ben strutturati, in modo da poter costruire una base di dati. Da non dimenticare che deve essere garantita la consistenza degli archivi, cioè i dati contenuti nell’archivio devono essere significativi ed essere effettivamente utilizzabili. In oltre si può dire che per sicurezza s’intende l’impedimento del danneggiamento del database da interventi non autorizzati o accidentali e poi per integrità s’intende che le operazioni effettuate sul database da utenti autorizzati non provochino la perdita consistenza dei dati stessi. Il software che gestiscono i database vengono indicati con il termine: DBMS. Per incongruenza s’intende: che un dato venga aggiornato in un archivio e non in un altro oppure siano presenti per lo stesso dato valori diversi fra loro. L’incongruenza porta all’inconsistenza cioè che i dati a disposizione non siano più affidabile perché non si sa quale dei diversi valori sia quello corretto. Questi sono gli inconvenienti in cui si potrebbe andare in contro lavorando su classici archivi di dati :

• Dipendenza dai dati: I programmi sono dipendenti dagli archivi che essi gestiscono poichè l'accesso ai dati è determinato dal tipo di organizzazione degli archivi, dalle chiavi stabilite per i record e dall'ordine con cui i campi compaiono nella struttura del record.

• Interrogazioni predefinite e difficoltà nell'accesso dei dati: E' possibile accedere ai dati solo tramite le applicazioni specifiche cioè tramite le interrogazioni predefinite.

• Isolamento dei dati e file di diverso formato: I dati sono dispersi in molti file e in differenti formati, poichè si possono usare diversi linguaggi nello sviluppo di diverse parti dell'applicazione.

• Ridondanza e inconsistenza: la ridondanza è uno spreco di memoria occupata. • Difficoltà nel gestire l'integrità dei dati: I vincoli per l'integrità sono esprimibili

soltanto "scrivendo" un apposito codice nel programma. Un DBMS deve essere in grado di:

• Permettere la creazione di una nuova base di dati tramite il linguaggio DDL (data definition language)

• Facilitare gli utenti all’inserimento di dati tramite il linguaggio DML (data manipulation language)

• Rendere possibile l’estrazione di informazioni tramite il linguaggio QL (query language)

Un DBMS deve risolvere i problemi che si avrebbero con un approccio tradizionale e la gestione degli archivi deve avere le seguenti caratteristiche fondamentali :

• Facilità di accesso e di ritrovamento dei dati. • Indipendenza dalla struttura logica dei dati. • Indipendenza dalla struttura fisica dei dati. • Eliminazione della ridondanza e della inconsistenza. • Utilizzo da parte di più utenti. • Controllo della concorrenza e sicurezza dei dati.

La descrizione dei dati è data dai metadati, ovvero dati che descrivono altri dati. Tra i numerosi modelli esistenti per la progettazione concettuale quello più utilizzato perché maggiormente rispecchia la realtà è quello Entità/Associazione indicato come modello E/R (entity / relationship). Gli oggetti che lo compongono vengono chiamati entità, gli attributi ne rappresentano le caratteristiche ed infine le associazioni individuano le correlazioni logiche tra entità. Oltre al modello E/R esiste quello gerarchico poco preso in considerazione ma si usa per indicare entità che sono in alto ed entità che sono in basso (tipo padre-figlio), poi c’è quello reticolare che rappresenta le entità tutte su uno stesso livello, infine c’è quello relazionale che rappresenta il database come insieme di tabelle, questo viene anche considerato il più semplice ed efficace. Sono queste le funzioni che il DBMS attraverso i suoi moduli software è in grado di offrire agli utenti:

• Implementazione del livello logico sul sistema di elaborazione; • Manipolazione interrogazione sulla base di dati; • Controllo dell'integrità dei dati; • Sicurezza e protezione; • Supporto alle transazioni.

L'architettura a tre livelli dei sistemi per database è l'impostazione sulla quale si sviluppano i moderni DBMS, questi livelli si dividono in livello concettuale che rappresenta la visione del database da parte dell'utente, livello logico che rappresenta la visione complessiva del database, livello fisico che coincide con la rappresentazione fisica del database nel computer. Esistono tre tipi di utenti:

• Il D.B.A.: (dall’inglese database administrator), a cui spetta l’implementazione del modello logico, gestione e trattamento dei dati,

autorizzazione degli accessi, definizione delle viste a seconda del tipo di utente, controllo dei programmi applicativi, manutenzione del database nel tempo, controllo delle disponibilità degli spazi sulla memoria

• I programmatori: che possono utilizzare per le loro applicazioni i dati organizzati in un database.

• Gli utenti finali: che sono coloro che accedono al database attraverso un linguaggio di interrogazione (query language).

Per transazione si intende: un insieme di operazioni, di interrogazioni o di modifiche

al database che devono essere eseguite come se fossero un unica operazione. Roolback : Annulla tutte le modifiche effettuate sul database, avvenute dall'inizio

della transazione. Commit: Indica la conferma di tutto il lavoro fatto e termina la transazione.

LA RETE INFORMATICA Per rete informatica s’intende un insieme di computer o elaboratori e di altri dispositivi collegati tra loro da archi di collegamento. Sono molti i criteri in base ai quali si possono classificare le reti.

1. TECNOLOGIE DEL MEZZO TRASMISSIVO (doppino telefonico, cavo coassiale, fibra ottica, onde radio, misto);

2. TECNICHE DI COMMUTAZIONE (circuito, messaggio, pacchetto) 3. TOPOLOGIA DELLE CONNESSIONI (maglia, bus, anello, stella,ecc) 4. TIPO DI GESTIONE (privata, pubblica) 5. RELAZIONE ESISTENTE TRA I CALCOLATORI COLLEGATI

(client/server, sistemi distribuiti)

Le reti in base alla loro dimensione geografica sono: Ø LAN: sono reti di superficie ridotta caratterizzate da alte prestazioni e mezzi

trasmessivi molto veloci. Ø WAN: si parla di wan quando l’estensione della rete supera qualche km e

l’unione avviene tramite il suolo pubblico. Ø MAN: si ha quando la rete copre un’intera area urbana ed è la fibra ottica. I computer collegati in una LAN comunicano inviandosi dei pacchetti che contengono gli indirizzi del mittente, e del ricevente, e l’insieme di dati scambiati. Gli elaboratori sono collegati tra loro tramite HUB e SWITCH. Hub: è un ripetitore in pratica trasmette tutti i pacchetti che riceve su tutte le porte. I pacchetti generano una quantità elevata di traffico (per l'invio dei pacchetti su tutte le porte). Per questo motivo può essere utilizzato solo all'interno di reti di piccole dimensioni. In alcuni hub possiamo trovare un led che segnala il traffico di rete. Switch: permette di dirigere il traffico sulle porte interessate dalla comunicazione perché le informazioni vengono trasmesse solo alle porte interessate. Gli HUB e SWITCH sono usati spesso nella stessa rete in quanto il primo amplifica la rete fornendo un numero maggiore di porte, la seconda divide la rete in sezioni più piccole e meno congestionate. VARI TIPI DI RETE LAN

1. ETHERNET 2. FAST ETHERNET

3. GIGABIT ETHERNET La differenza è solo nella velocità. Dovete sapere che le Reti Ethernet (10 Mbps), e Fast Ethernet (100 Mbps) utilizzano il protocollo di comunicazione CSMA/CD che permette ai dispositivi presenti in una Rete di parlare uno per volta. Ciò significa, che se due dispositivi tentano di colloquiare contemporaneamente può verificarsi una collisione, e quindi essi interrompono l’invio dei pacchetti tentando un po’ più avanti la comunicazione. I COMPONENTI DI UNA RETE

1. SCHEDE DI RETE: servono ad un pc per utilizzare la rete. Importante per la scelta di una scheda di rete se non installata è la velocità di connessione.

2. HUB E SWITCH (già visti sopra)

SWITCH

HUB

3. MODEM E RUTER

Modem: MODulatore/DEModulatore. È in grado di trasformare un segnale in formato digitale in un segnale analogico e viceversa. La velocità è misurata in kilobit al secondo.

Router: possiede uno Switch o un Hub incorporato e una linea di connessione alla Rete esterna (ISDN, ADSL, analogica 56K). In tal modo, tutti i PC collegati al Router (in una Rete locale) possono usufruire della connessione al Web.

MOTORI DI RICERCA

In informatica, con particolare riferimento alla rete Internet, programma accessibile da opportuni siti che permette di individuare informazioni di particolare interesse per l’utente.

Modalità di accesso

I motori di ricerca possono agire secondo varie modalità di accesso. Una prima modalità permette di selezionare la categoria di interesse e ottenere una lista di siti che contengono informazioni utili al riguardo (i m. di ricerca che agiscono in tal modo sono detti directories). In questo caso le categorie sono tipicamente organizzate in maniera gerarchica su 2 o 3 livelli: per es., la categoria ‘scienza e tecnologia’ può comprendere, tra le altre, le sottocategorie ‘astronomia’, ‘chimica’, ‘fisica’ e ‘matematica’; a sua volta quest’ultima può comprendere le sottocategorie ‘algebra’, ‘geometria’ e ‘probabilità’. Percorrendo i vari livelli gerarchici fino all’ultimo si ottiene la lista dei siti che riguardano l’argomento prescelto. In alternativa a questa modalità, si può interrogare il m. di ricerca fornendo una o più parole chiave che definiscono l’argomento di interesse. Queste parole chiave possono essere collegate con operatori booleani, i più diffusi dei quali sono AND (intersezione logica), OR (unione logica) e AND NOT (esclusione logica). Esistono inoltre tecniche avanzate di ricerca che utilizzano operazioni logiche a più livelli e operatori di prossimità (come NEAR).

Selezione e preselezione

In realtà, la ricerca non si svolge su tutti i siti presenti nel mondo, ma solamente su un insieme di siti preselezionati dal m. di ricerca stesso. L’attività di ogni motore di ricerca si compone delle fasi di preselezione dei siti e di creazione di un indice (detta fase di indicizzazione o indexing) e di ordinamento delle pagine in base alla loro rilevanza rispetto alla richiesta fatta dall’utente (detta fase di ordinamento o ranking). Per la selezione, il motore di ricerca parte da un insieme di siti ed esplora tutti i collegamenti che si diramano da questi siti di partenza.

Questa esplorazione viene detta crawling e viene effettuata mediante opportuni programmi detti crawler (o spider o robot o softbot), i quali estraggono opportune porzioni di testo da ogni pagina e le rimandano a un altro programma che passa in scansione tutte le parole contenute in questo testo per creare un indice (che mette in corrispondenza le parole chiave con le pagine che le contengono). Parallelamente, altri programmi esplorano i siti precedentemente visitati dai crawler per verificare che siano ancora attivi, provvedendo a eliminarli dall’indice in caso contrario. Un m. di ricerca di grosse dimensioni può visitare decine di milioni di pagine al giorno. Questo processo di ricerca è agevolato dal fatto che il proprietario di un sito può indicarlo al m. di ricerca e farlo così inserire nella lista dei siti da visitare. Non tutti i

siti entrano però a far parte dell’indice, e ciò per diversi motivi: per es., le pagine che contengono richieste di password o di registrazione non possono essere visitate dal crawler, il quale quindi si blocca e non include le pagine nell’indice. Inoltre, vengono in genere preferite le pagine che contengono un elevato numero di collegamenti ad altri siti o che appartengono a categorie poco numerose.

Oltre ai m. di ricerca singoli esistono dei metamotori di ricerca che utilizzano contemporaneamente più m. di ricerca e presentano in maniera unificata i risultati finali del processo integrando le ricerche parziali compiute dai singoli motori interrogati.

Criterio di ordinamento

Poiché ogni ricerca restituisce in genere un gran numero di pagine, queste vengono visualizzate in gruppi di 10 o 15, secondo l’ordinamento effettuato dal m. di ricerca. Il criterio di ordinamento varia da m. a m. e a volte non è reso noto (altre volte è definibile dall’utente). Un criterio molto diffuso è il TFIDF (term frequency inverse document frequency): compaiono ai primi posti quelle pagine che contengono la parola chiave con maggior frequenza e nel caso di espressioni contenenti più parole chiave vengono preferite quelle pagine che contengono le parole chiave meno frequenti; in altri termini, meno frequente è una parola chiave, più selettiva è la ricerca. È assodato che l’utente difficilmente va oltre il primo gruppo, per cui ai fini commerciali è preferibile che il sito venga incluso tra i primi, affinché venga visitato dal maggior numero di utenti. I progettisti di siti web tengono quindi in notevole considerazione i criteri di ordinamento dei m. di ricerca, operando a volte con mezzi poco leciti (pratiche dette di spamming). Per es., le tecniche di spamming possono incrementare artificialmente la frequenza di alcune parole chiave (per ovviare a questo stratagemma alcuni m. di ricerca contano una parola chiave non più di due volte) oppure introdurre parole chiave che non hanno nulla a che vedere con l’effettivo contenuto del sito, ma sono spesso presenti nelle ricerche effettuate dagli utenti.

BROWSER

Un web browser o navigatore, in informatica, è un programma che consente di

usufruire dei servizi di connettività in internet, o di una rete di computer, e di

navigare sul World Wide Web.

Il primo browser fu sviluppato da Tim Berners-Lee (tra i primi precursori del concetto di WWW e fondatore del W3C), e venne chiamato WorldWideWeb. Serviva a scopi dimostrativi, era disponibile solo per sistema operativo NeXT e perciò in seguito fu chiamato Nexus.

Il primo browser a raggiungere un'apprezzabile popolarità internazionale fu Mosaic, sviluppato da NCSA, seguito poi da Netscape Navigator, che crebbe in fretta e fu la piattaforma su cui vennero messe a punto alcune innovazioni diffusesi a larga scala col passare del tempo (come ad esempio JavaScript). La netta prevalenza di Netscape presso l'utenza, a metà degli anni novanta, fu incrinata dalla cosiddetta guerra dei browser, una competizione inizialmente commerciale e poi di immagine cominciata da Microsoft quando le innovazioni introdotte da Netscape divennero così sofisticate da costituire una minaccia potenziale per i propri interessi. Per vincere la concorrenza, Microsoft incluse Internet Explorer nel proprio sistema operativo Windows (il più diffuso al mondo), stroncando sul nascere i possibili concorrenti. Questa mossa fu motivo di numerose cause legali per la difesa della libera concorrenza e contro la nascita di monopoli informatici.

Netscape reagì rilasciando nel 1998 il proprio codice con una licenza open source. Il progetto Mozilla che ne derivò fornisce il codice che è alla base di diversi browser, fra i quali Netscape, Mozilla Suite, Galeon, Firefox e uno dei programmi di accesso della AOL.

La presenza di browser diversi con funzioni differenti, ha portato alcuni webmaster a realizzare siti web destinati a essere visitati con un browser preferenziale, talvolta impedendo l'accesso a utenti che utilizzassero un browser differente da quello scelto. Questa consuetudine, oltre a essere contro la filosofia portante del World Wide Web, che vede l'accessibilità come uno dei pilastri portanti e aver quindi suscitato forti critiche e campagne di protesta e sensibilizzazione (come Campaign for a Non-Browser Specific WWW), ha costretto browser molto comuni (tra i quali Opera) a "fingersi" un altro browser (modificando il proprio user agent), per poter aver accesso a un maggior numero di documenti.

Il browser più diffuso a livello mondiale era Internet Explorer, prodotto da Microsoft, che viene fornito gratuitamente e "di serie" con ogni sistema operativo Windows (dati al 2006). Il secondo browser in ordine di utilizzo era Mozilla nelle sue varianti (e in particolare Firefox), prodotto e distribuito gratuitamente dalla Mozilla Foundation; il

terzo era Safari di Apple[1], distribuito assieme al sistema operativo Mac OS X (di cui più recentemente è stata messa a disposizione una versione gratuita anche per Windows). Altri browser molto diffusi sono Opera (terzo in Italia nel 2006) e il già citato Netscape Navigator, il cui sviluppo è ormai sospeso.

Fra le principali funzionalità dei browser disponibili, si possono ricordare: navigazione a schede (Tabbed browsing), supporto alla navigazione off-line tramite la memoria cache e plugin dedicati per mantenere i link tra le pagine salvate, funzione di download manager con arresto/ripresa sempre tramite la memoria cache, anteprima delle pagine da scaricare, sintesi vocale, integrazione dei feed RSS e di client di posta elettronica.

La diversa diffusione dei vari browser, con tecnologie compatibili tra loro, ma con alcune peculiarità uniche, ha portato in passato con Internet Explorer 6 e attualmente con i sistemi basati sul WebKit a progettare le pagine web tenendo conto di un solo browser causando in alcuni casi il funzionamento solo su specifici browser, il che può portare a creare uno standard ancora prima che venga approvato dagli organi competenti.

Caratteristiche e funzionamento

Tali programmi fanno utilizzo di protocolli di rete forniti dal sistema operativo (a partire da quelli di livello applicativo come HTTP, FTP ecc.) attraverso opportune API, permettendo di visualizzare i contenuti delle pagine dei siti web, specificandone l'URL, e interagendo con essi. Quest'ultime funzionalità sono supportate dalla capacità del browser di interpretare l'HTML — il codice con il quale sono scritte la maggior parte delle pagine web — e di visualizzarlo in forma di ipertesto grazie al motore di rendering.

Nell'architettura di rete client-server di Internet il browser rappresenta dunque il client che fa richieste di risorse web ai vari web server e application server ospitanti rispettivamente siti web e applicazioni web.

Esso rappresenta dunque il sistema software di interfacciamento dell'utente con la rete che rende la navigazione dell'utente tipicamente user-friendly, sebbene ai primordi della rete siano esistiti anche browser testuali da riga di comando su shell. I browser vengono principalmente utilizzati su personal computer, ma anche su altri dispositivi che consentono la navigazione in Internet, come i palmari e gli smartphone. Quelli più noti e diffusi sono Internet Explorer, Mozilla Firefox, Google Chrome, Safari e Opera.

Attualmente, Google Chrome è il browser più usato al mondo .

Non esiste un unico metodo per verificare l'uso di un determinato tipo di browser rispetto agli altri, per questo i risultati dei diversi contatori possono differire anche di diversi punti percentuali.

I DRIVER

Nel gergo informatico si tende spesso a fare confusione fra drive e driver, termini che si riferiscono in realtà a due cose molto diverse. I drive (hardware) sono i lettori in cui si inseriscono i vari dischi del computer (floppy, cd, zip...); i driver (software) sono invece dei file accessori al sistema operativo che consentono la comunicazione fra il computer e le varie periferiche, servono cioè da "interpreti" fra l' hardware e il sistema operativo. Per poter funzionare correttamente, ogni dispositivo deve avere il suo particolare driver registrato dal sistema operativo. Esistono perciò i driver di stampante, modem, masterizzatore, lettore CD, scheda madre, scheda video, scheda audio, scheda di rete, ecc. Talvolta hanno i loro driver anche il mouse e il monitor, mentre non li hanno mai la RAM, la tastiera, le casse audio e il drive del floppy. Quando si acquista una scheda o una periferica, nella confezione si trova sempre un floppy o un CD con i driver relativi (generalmente una periferica, se compatibile con più sistemi operativi, avrà un driver diverso per ognuno di essi). Se per qualche motivo il disco non fosse disponibile (perché magari si tratta di un componente usato e il disco è andato perduto) dovrebbe essere possibile scaricare una copia del driver direttamente dal sito Internet del produttore, anche se non è sempre facile riuscire a capire dove si trovi (e quale sia esattamente) il file di cui si ha bisogno. L' installazione dei driver sul computer avviene come per gli applicativi, attraverso un software di installazione automatica che viene fornito assieme ai driver stessi. A volte però alcuni componenti molto economici non possiedono quest' installazione guidata, ma richiedono invece una procedura manuale un po' più complessa; comunque dovrebbe essere sempre presente un foglio di istruzioni allegato. Windows 95 e 98 possiedono una funzione detta Plug and Play (inserimento e avvio) che all' accensione del computer verifica la presenza di nuovi componenti hardware, ricercando automaticamente il driver adatto. Una copia dei driver per tutti i dispositivi più comuni è contenuta negli stessi dischi di installazione di Windows 95/98 (naturalmente vi si trovano solo i modelli di periferiche che erano già in commercio al momento della pubblicazione di Windows). Prima di acquistare una nuova periferica, è importante anche controllare se ci sono dei "requisiti minimi" o dei "requisiti consigliati" che questa richiede al sistema, soprattutto se il computer è già un po' vecchiotto (il che significa un paio d' anni o più). Molte periferiche infatti non funzionano se il sistema non possiede risorse sufficienti. Tipicamente, vengono richiesti: una certa quantità di RAM, un certo spazio libero su hard disk, un modello di processore superiore ad un dato tipo, una versione abbastanza recente del sistema operativo, ecc. Se anche uno solo di questi parametri è al di sotto dei requisiti minimi, di sicuro la periferica non funzionerà; ma per essere veramente certi del buon funzionamento è meglio rispettare anche i requisiti "consigliati". Normalmente tali parametri si trovano riportati già sulla confezione (e, ovviamente, nel manuale).

A volte può succedere che un nuovo componente interno (una scheda d' espansione, un hard disk, un drive) collegato alla scheda madre non venga in nessun modo riconosciuto. Si tratta di un problema abbastanza frequente con i computer assemblati e le cause possono essere molteplici: spesso si riconducono a generiche incompatibilità strutturali (più o meno dichiarate) fra i vari componenti hardware, ma talvolta potrebbero anche dipendere dal BIOS della scheda madre. Si è detto, infatti, che nella ROM del BIOS si trovano le istruzioni di boot, che servono per attivare i componenti hardware all' avvio della macchina; se però la scheda madre è un modello un po' superato, queste istruzioni potrebbero non funzionare con alcuni componenti di nuova concezione. Per questo motivo, nella maggior parte delle schede madri la ROM del BIOS è in realtà una EPROM (Electric Programmable ROM – realizzate secondo una tecnologia che consente, in particolari condizioni, la cancellazione e riscrittura del contenuto), il che consente il periodico aggiornamento del boot (nel caso si rendesse necessario). I file per l'aggiornamento, ammesso che esistano e che siano disponibili, si possono scaricare dal sito del produttore della scheda, proprio come avviene per i driver. L' operazione di aggiornamento non è tuttavia priva di rischi, perché se rimane interrotta a metà (per es. se salta la corrente) il computer non potrà più avviarsi e sarà necessario sostituire la scheda madre. Si ricorda infine che non si dovrebbero mai collegare o scollegare i dispositivi quando il computer è acceso (eccezion fatta per i dispositivi USB -Universal Serial Bus). Alcune periferiche esterne non sono neppure riconosciute, se non vengono accese prima del computer. Succede per esempio con certi modelli di scanner o col drive zip.

WEB MARKETING

Il web marketing è la branca delle attività di marketing dell’azienda che sfrutta il canale online per studiare il mercato e sviluppare i rapporti commerciali (promozione/pubblicità, distribuzione, vendita, assistenza alla clientela, etc.) tramite il Web. Solitamente le attività di web marketing si traducono in primis con la pubblicazione di un progetto, poi nella realizzazione di un sito internet e la sua promozione, in questo modo l'azienda presidia il canale web attirando visitatori interessati ai prodotti/servizi in assortimento.

Il web marketing si affianca quindi alle strategie di promozione/vendita tradizionali e alle analisi di mercato offline, permettendo di avviare una relazione con il pubblico di questo canale; un esempio comune di questo approccio è il cosiddetto negozio virtuale (o negozio in linea, negozio online, online shop, online store).

Attività e strategie

La strategia alla base di un progetto di web marketing NON è far ottenere al sito la massima visibilità, come erroneamente spesso si pensa. Invece è fondamentale valutare l'indice di redditività dell'investimento (ROI).

Per ottenere visibilità per il sito, una delle azioni più importanti è l'«Ottimizzazione per i motori di ricerca» (Search Engine Optimization, SEO). Essa consiste nell'ottimizzare il sito web allo scopo di apparire ai primi posti nelle pagine dei risultati di un motore di ricerca, così da renderli più visibili di quelli dei concorrenti.

Ovviamente è fondamentale prima verificare la coerenza tra la parola chiave usata dall'utente nelle ricerce e il contenuto e tema corrispondenti alla pagina del sito web dove l'utente atterrerà dopo aver cliccato.

Fino agli anni Novanta si è occupato di web marketing il webmaster del sito, oppure, nei siti più grandi, una persona specializzata. Negli ultimi anni si è assistito alla nascita e all’affermazione di agenzie di consulenza specializzate, denominate "agenzie per l'ottimizzazione sui motori di ricerca" (SEO agencies); inoltre sono attivi consulenti provenienti dal mondo dell'informatica. Le attività che oggi caratterizzano il web marketing sono le seguenti:

• Ottimizzazione • Posizionamento • Marketing dei motori di ricerca (SEM) • Pay per click, o Pagamento per clic • Campagna Banner • Programma di affiliazione • Mentioning

Rientra tra le competenze del web marketing ogni azione a pianificazione che abbia come finalità il ritorno sull'investimento (ROI) di un progetto online. L’azione si sviluppa attraverso l’ideazione di un progetto, il coordinamento della sua realizzazione, l'analisi dei risultati, la gestione di ciò che segue la messa in opera, la sua promozione e la gestione della reazione del pubblico (feedback). Appartiene al piano di web marketing anche l'attività di modifica della percezione di una marca o di un servizio grazie a strategie di interazione con utenti e il mercato. Ogni progetto (con obiettivi) pensato per la rete deve essere coordinato da un piano di web marketing.

Spesso si confondono il web marketing con la semplice promozione online o pubblicità di un sito sul web. In realtà così come la pubblicità tradizionale è uno strumento gestito dal piano di marketing, la campagna promozionale tramite banner e link pay per click è organizzata e gestita all’interno del piano di web marketing.

Marketing promozionale online

Le azioni di questa tipologia di marketing web contribuiscono a incrementare la conoscenza di marca e permettono di soddisfare differenti bisogni di comunicazione come: attirare l’utente, segnalare offerte ai navigatori o pubblicizzare il proprio sito web.

Tra gli strumenti di marketing promozionale in linea figurano le tecniche classiche come i banner e i cosiddetti rich media, ma anche modelli di advertising evoluti come: interstiziali, banner pop-up, pop-under e le sponsorizzazioni

Web marketing virale

Il web marketing virale consiste nel riprodurre i benefici del passaparola tramite internet.

Per generare buzz o "viralizzare" una campagna promozionale il Web marketing virale utilizza prodotti e strategie unicamente legate alle tecnologie web come: e-mail, video-virali, programmi tell-a-friend, web 2.0, blog.

Lontano dal contrapporsi alle tradizionali regole del marketing, il Web marketing virale si integra perfettamente nelle campagne pubblicitarie quando viene utilizzato per lanciare un nuovo prodotto o per testare il bacino d'utenza potenziale di un nuovo servizio.

Il Web marketing virale è molto indicato per la rapida creazione di mailing-list non targhettizzate che in seguito, con le tecniche del web marketing classico, potranno essere raffinate per realizzare nicchie di mercato utili.

Il Piano di marketing in rete

È la struttura portante dell’intero progetto di web marketing. Stendendo il piano, bisogna descrivere chiaramente:

• Quali sono gli obiettivi da raggiungere. • Qual è il target da colpire. • Come e con quali tempi s’intende sviluppare l’intera strategia. • Quali strumenti utilizzare per la promozione del sito e per il suo monitoraggio. • La definizione di un budget. • A quali rischi e opportunità si può andare incontro.

Analisi della concorrenza su internet (e off-line)

L'analisi della concorrenza (benchmarking competitivo) su internet è una fase fondamentale in un progetto di web marketing.

Fornisce indicazioni precise circa punti di forza e debolezza del progetto web in relazione ai competitors presenti nel mercato virtuale e ai processi funzionali del sito stesso.

Attraverso le analisi di benchmarking competitivo, o strategico, si possono evidenziare i punti di forza di siti simili o identici al proprio.

In particolare, l'analisi di benchmarking di un sito può:

- evidenziare punti deboli e critici al fine di correggerli ed aumentare il tasso di conversione degli utenti (es: sito di commercio elettronico, portali tematici);

- evidenziare le aree tematiche, per siti multitema (es: portali geografici, portali informativi, siti di commercio elettronico) in cui vi è un'evidente carenza di visibilità nei motori di ricerca;

- identificare i concorrenti più visibili su internet ed analizzarne i loro punti di forza;

L'analisi della concorrenza è fondamentale per molti aspetti, due su tutti:

- permette di conoscere i reali competitori del mercato;

- permette di prendere decisioni in merito alle modifiche da apportare al sito per migliorarne le prestazioni in termini di ranking (visibilità nei motori di ricerca) e nelle modalità operative dell'utente semplificando o diminuendo le azioni che questi eseguirà per raggiungere determinati obiettivi (es: un acquisto, l'iscrizione ad una newsletter).

IL SISTEMA WIRELESS Una Wireless LAN (WLAN) è un sistema flessibile di comunicazione da inquadrare come estensione di una LAN cablata (o come una sua alternativa). Poiché tale tecnologia usa frequenze radio, le WLAN trasmettono e ricevono dati via etere, minimizzando il bisogno di collegamenti cablati, combinando così la connettività con la mobilità dell'utente.

Perché wireless? Il vasto sviluppo del networking nel mondo degli affari e la crescita enorme dei servizi Internet e online sono testimonianze forti dei benefici portati dalla condivisione dei dati e delle risorse. Con le WLAN, gli utenti possono accedere ad informazioni condivise senza cercare un luogo per collegarsi in rete, e gli amministratori di rete possono implementare o ingrandire una rete senza installare o trasportare fili. Le WLAN offrono i seguenti vantaggi di produttività, convenienza e costi rispetto alle reti cablate tradizionali:

• mobilità: le WLAN possono fornire agli utenti un modo per accedere dovunque, nella loro organizzazione, alle informazioni. Queste opportunità di mobilità e di servizio non sono possibili con reti cablate;

• velocità di installazione e semplicità: installare una WLAN può essere veloce e facile e può eliminare (o, nella peggiore delle ipotesi, limitare) la necessità di stendere cavi attraverso pareti e soffitti;

• costi di gestione ridotti: mentre l'investimento iniziale richiesto per l’hardware delle WLAN può essere più alto del costo dell’hardware delle LAN cablate, le spese di gestione complessive e le spese nel ciclo di vita della rete possono essere significativamente più basse. I benefici del costo a lungo termine sono maggiori in ambienti dinamici, che richiedono, cioè, spostamenti e cambiamenti frequenti della topologia della rete;

• scalabilità: le WLAN possono essere configurate in una grande varietà di topologie per soddisfare alle necessità di applicazioni specifiche e di particolari installazioni. Le configurazioni possono essere cambiate facilmente e variano da reti peer to peer, appropriate per un numero piccolo di utenti, a reti di migliaia di utenti che possono operare su vaste aree grazie al roaming.

Applicazioni pratiche delle WLAN

Come detto in precedenza, le WLAN servono per estendere o sostituire le LAN cablate. L'elenco seguente descrive alcune delle molte applicazioni possibili

realizzabili grazie alla versatilità delle WLAN: • medici ed infermieri negli ospedali possono cooperare in maniera più

produttiva perché mediante computers palmari o notebooks collegati mediante WLAN possono scambiare informazioni sui pazienti in tempo reale;

• studenti possono accedere ad Internet o all’Intranet della facoltà per consultare i cataloghi delle biblioteche da qualsiasi punto nella scuola;

• gli amministratori di rete in ambienti dinamici minimizzano i tempi di gestione causati da spostamenti, estensioni di rete e da cambiamenti in generale; inoltre possono installare reti di computer in vecchi edifici senza il bisogno di creare infrastrutture costose.

Tecnologia delle WLAN

I produttori di WLAN dispongono di una serie di tecnologie per scegliere la soluzione ottimale per progettare una rete. Ciascuna di queste tecnologie ha una serie di vantaggi e di limitazioni:

• tecnologia Narrowband (banda stretta): un sistema radio narrowband trasmette e riceve informazioni su una frequenza radio specifica. Tali dispositivi cercano di mantenere la banda del segnale radio quanto più stretta possibile, occupando solo le frequenze strettamente necessarie per l’interscambio di informazioni. I crosstalk tra canali di comunicazione sono evitati coordinando attentamente gli utenti su frequenze diverse. Una linea telefonica privata è molto simile ad una frequenza radio: poiché ogni appartamento ha la sua linea telefonica privata, gli abitanti di un appartamento non possono ascoltare le chiamate relative agli altri appartamenti. In un sistema radio, privacy e affidabilità sono permessi dall'uso di frequenze radio separate. Un ricevitore filtra tutti i segnali radio trasmessi su frequenze diverse da quella assegnatagli. Un inconveniente della tecnologia narrowband è che l’utente deve ottenere una licenza (e quindi l’assegnazione di una frequenza) per ogni luogo da cui prevede di collegarsi in rete;

• tecnologia Spread Spectrum: molte WLAN usano la tecnologia Spread Spectrum, che è una tecnica di trasmissione radio sviluppata dal Ministero della Difesa USA per consentire comunicazioni affidabili e sicure. Lo Spread Spectrum utilizza una porzione di banda maggiore rispetto a trasmissioni narrowband; ciò implica che il segnale trasmesso sia più forte e, quindi, di più facile ricezione, purché il ricevitore conosca i parametri del segnale trasmesso. Se un ricevitore non è sincronizzato alla frequenza giusta, il segnale Spread Spectrum viene visto come un rumore di fondo.

Confronto di costi e prestazioni tra tecnologie wired e wireless Eecco, alcune caratteristiche che sintetizzano gli aspetti positivi e negativi della tecnologia wireless facente uso delle onde radio.

Throughput Le tecnologie attuali permettono di raggiungere gli 11 Mbps reali mentre la velocità sulla rete locale rimane di 10 Mbps nominali, non prendendo in considerazione realizzazioni come Fast Ethernet o Gigabit Ethernet. Per valutare le performance di un collegamento wireless di 2 Mbps, basta ricordare che il protocollo Ethernet collassa oltre il 40% di utilizzo. Test effettuati, su prodotti commercializzati, tramite 2 nodi collegati, sia con una LAN Ethernet standard a 10 Mbps, sia con un collegamento wireless a 2 Mbps, evidenziano come i tempi effettivi di trasferimento dei file nel caso wireless siano di 5 volte superiori rispetto al collegamento LAN; non bisogna tuttavia dimenticare che le velocità di trasferimento dei files sono condizionate dal numero di stazioni contemporaneamente presenti sulla LAN. Copertura Le limitazioni tecniche sono relative al tipo di tecnologia utilizzata: una buona connessione wireless necessita della vista ottica per effettuare un collegamento tra 2 o più punti. E' comunque chiaro che, in ambito locale, le pareti, pur costituendo uno schermo contro la trasmissione radio, possono permettere la trasmissione stessa, riducendone però la portata in termini di distanza. La distanza massima raggiungibile da apparecchiature wireless dipende sostanzialmente dall'antenna utilizzata: si parte dai 100 m fino a distanze teoriche dell’ordine dei 30 Km. I limiti attuali vigenti in termini di potenza trasmessa (max. 100 mW) permettono con antenne standard omologate di arrivare fino a distanze di 10 Km. La trasmissione radio, inoltre, non è influenzata dai fenomeni atmosferici, a differenza di altre tecnologie wireless (laser, infrarosso). Sicurezza Gli apparati wireless derivano da tecnologie militari e quindi hanno caratteristiche di sicurezza superiori a molti sistemi wired. Il software di gestione prevede vari identificatori per permettere il colloquio solo tra unità ben definite. Le ultime versioni, inoltre, permettono il criptaggio dei dati via radio: risulta quantomeno impossibile quindi intercettare pacchetti dati trasmessi. Coesistenza Possono esistere più apparati radio che utilizzano tale tecnologia sulle stesse frequenze. Le trasmissioni in tecnologia DSSS, ad esempio, irradiano in un range di frequenze tra i 2400 e 2485 Mhz suddiviso in vari canali, rendendo possibile la

trasmissione di una stazione in un qualsiasi canale disponibile. Se più apparecchi appartenenti a gruppi diversi trasmettono sulla stessa frequenza ciò non impedisce la contemporaneità. Test effettuati da alcune aziende produttrici hanno evidenziato che la velocità relativa nel caso di 2 coppie adiacenti, che trasmettono in continuo sulle stesse frequenze, ha un decadimento delle prestazioni che, nel peggiore dei casi, è del 15/20 %. Ingombri L'antenna standard da 2 dB che permette un collegamento di 1 Km è grande quanto un pacchetto di sigarette. Le altre antenne sono poco più grandi. Esiste la possibilità anche di utilizzo sia di parabole sia di antenne Yagi. Scalabilità È possibile collegare unità wireless in serie per aumentarne la distanza di trasmissione: nel caso di 3 punti da collegare, ad esempio, è possibile utilizzare o 3 o 4 dispositivi da 2 Mbps. Nel caso di 3 apparecchi il punto centrale funzionerà da smistatore e potrà trasmettere al massimo alla velocità di 1 Mbps (la trasmissione radio è half-duplex). Nel caso di 4 apparecchi, con i 2 centrali collegati mediante un cavo, la velocità effettiva sarà di 2 Mbps. È possibile, inoltre, raddoppiare la potenza di trasmissione mettendo le unità in parallelo: la trasmissione può essere raddoppiata impostando dei percorsi statici cosi da separare i traffici di rete.

FOGLIO ELETTRONICO

In informatica un foglio elettronico (chiamato anche foglio di calcolo, in lingua inglese spreadsheet) è un software di produttività personale.

L'invenzione del foglio elettronico si deve a Dan Bricklin. L'idea gli venne vedendo un suo professore universitario che disegnava una tabella di risultati di calcoli su una lavagna. Quando il professore rilevò un errore, dovette cancellare e riscrivere un'intera sequenza di valori nella tabella, facendo venire in mente a Bricklin che si poteva replicare il procedimento in un computer.

La sua idea divenne VisiCalc (Visual e Calculator o, secondo altri, Visible Calculus) , il primo foglio elettronico, anche chiamata “killer application” che trasformò il personal computer da hobby per appassionati di computer in strumento di lavoro. L'applicazione infatti è stata inventata quale strumento per computer, non essendo affatto un miglioramento tecnologico di altri strumenti (come lo furono il wordprocessor rispetto alla macchina da scrivere, o il dataBase manager rispetto allo schedario).

Uno dei più popolari fogli elettronici fu Lotus 1-2-3, che ai tempi del sistema operativo DOS fu una delle applicazioni più utilizzate negli uffici. Il ritardo da parte di Lotus Software nel produrre una versione per Windows giocò a favore di Microsoft Excel, che è oggi il foglio elettronico più diffuso.

Caratteristiche

È un programma che permette di effettuare calcoli, elaborare dati e tracciare efficaci rappresentazioni grafiche. Il principio su cui si basa il foglio di calcolo è semplice: fornire una tabella, detta anche foglio di lavoro, formata da celle in cui si possono inserire dati, numeri o formule. Le formule possono essere definite a mano dall'utilizzatore oppure facendo uso di librerie di funzioni predefinite e rese disponibili all'utente. Le celle, come detto in precedenza, sono la base fondamentale del foglio di calcolo. Esse, per essere riconoscibili, sono costituite da una lettera e un numero. Le colonne sono indicate dalle lettere, le righe dai numeri. Es: la prima cella in alto a sinistra sarà A1, quella accanto a destra B1, e così via. Quelle invece sotto alla cella A1 saranno A2, A3, A4, ecc.

Funzionamento

Ogni cella è identificata da una coordinata che ne indica la posizione. Ad esempio C12 (il numero indica la riga; la lettera indica la colonna).

Per ogni cella può essere scelta una determinata formattazione del testo: carattere, dimensione e colore del carattere, grassetto e/o corsivo, eventualmente sottolineato o ombreggiato, colore ed elementi dello sfondo.

Una cella può contenere un numero o del testo, o eseguire una formula e una funzione utilizzando i valori (o le formule) di altre celle. Per eseguire una formula o una funzione, la prima cosa da scrivere nella cella è il simbolo "=".

Se vogliamo avere il risultato nella casella C1, cliccheremo su quest'ultima, per poi ritornare sulla barra delle formule: A1 + B1. Appena premuto il tasto "invio", nella casella prestabilita (in questo caso C1) sarà visualizzato automaticamente il risultato. Se la cella A1 contiene il numero 3, e la cella B1 contiene il numero 2, per poter sommare il tutto si deve scrivere il simbolo "=" nella barra delle formule.

La formula può essere propagata ad altre righe e/o colonne, trascinando la cella. Per ripetere una formula, bisogna selezionare la cella in basso a destra, premendo il tasto sinistro del mouse, e spostare il simbolo sempre tenendo premuto. Trascinando la formula, il foglio di calcolo cambia i riferimenti di riga e/o colonna, i riferimenti di una formula sono quindi impostati come riferimenti relativi.

Per bloccare uno o più riferimenti di riga o colonna, ossia per avere un riferimento assoluto, la lettera o il numero che lo indicano nella formula devono essere preceduti dal carattere dollaro (il carattere "$").

SISTEMI OPERATIVI Il sistema operativo (abbreviato in SO, o all'inglese OS, operating system) è il programma responsabile del diretto controllo e gestione dell'hardware che costituisce un computer e delle operazioni di base. Si occupa dei processi che vengono eseguiti e della gestione degli accessi degli utenti. Compito del sistema operativo è inoltre quello di virtualizzare le risorse hardware e software nei confronti dei programmi applicativi. Tipi di sistema operativo Un generico sistema operativo moderno si compone di alcune parti ben definite: un gestore di file system che si occupa di esaudire le richieste di accesso alle memorie di massa, un gestore di memoria virtuale che alloca pagine di memoria a richiesta e si assicura che questa sia presente nella memoria fisica al momento giusto, uno scheduler che assicura ai vari processi in esecuzione una ben definita quantità di tempo di elaborazione, uno spooler che accumula i dati da stampare e li stampa in successione, una interfaccia utente (shell o GUI) che permette agli esseri umani di interagire con la macchina ed un kernel, fulcro del sistema, che gestisce il tutto. A seconda dei casi, un particolare sistema operativo può avere tutti questi componenti o solo alcuni. Vediamo ora una serie di sistemi operativi possibili, dal più semplice al più complesso. DOS (Disk Operating Systems) Un computer diventa molto più utile se dotato di una memoria di massa: per gestirla serve un gestore di file system, cioè un insieme di funzioni che permetta di organizzare i dati sulla superficie dei mezzi di memorizzazione secondo una struttura ben precisa. I sistemi operativi che risiedono su disco (inizialmente floppy poi hard disk e altre più evolute unità di massa) capaci di gestire un file system sono detti genericamente Disk Operating Systems, cioè DOS appunto. L'esemplare più famoso è senz'altro il MS-DOS della Microsoft. Esiste anche una versione libera del dos, denominata: FreeDOS Sistema multitask Alcuni programmi non hanno sempre realmente bisogno della CPU: a volte, invece di

eseguire istruzioni stanno aspettando che arrivino dei dati da un file, o che l'utente prema un tasto alla tastiera. Quindi si può, in linea di principio, usare questi tempi "morti" per far girare un altro programma. Questa idea, sorta fin dai primi anni cinquanta, si concretizzò nei sistemi operativi multitasking, cioè dotati di uno scheduler che manda in esecuzione più processi (esecuzioni di programmi), assegnando a turno la CPU ad ognuno e sospendendo l'esecuzione dei programmi in attesa di un evento esterno (lettura sulla/dalla memoria di massa, stampa, input utente ecc.) finché questo non si verifica. Dovendo ospitare in memoria centrale più programmi nello stesso tempo, i sistemi multitask hanno bisogno di più memoria rispetto a quelli monotask: perciò questo tipo di sistemi operativi è quasi sempre dotato di un gestore di memoria virtuale. Sistema multiutente Se un computer può far girare più programmi contemporaneamente, allora può anche accettare comandi da più utenti contemporaneamente: in effetti dal multitasking alla multiutenza il passo è molto breve tecnicamente, ma fa sorgere una serie di nuovi problemi dal punto di vista della sicurezza del sistema: come distinguere i vari utenti tra loro, come accertarsi che nessun utente possa causare danni agli altri o alla macchina che sta usando ecc. Al giorno d'oggi, i diversi sistemi operativi, come ad esempio il nuovo Windows CE 6 [1], sono progettati in modo che questo tipo di operazioni avvengano nel più breve tempo possibile, valorizzando, ad esempio, software come i middleware, i driver, le interfaccia utente, e molti altri. Questi problemi si risolvono assegnando un account univoco per ogni utente, assegnando un proprietario ai file ed ai programmi e gestendo un sistema di permessi per l'accesso ad essi, e prevedendo una gerarchia di utenti (cioè di account) per cui il sistema rifiuterà tutti i comandi potenzialmente "pericolosi" e li accetterà soltanto se impartiti da un utente in cima alla gerarchia, che è l'amministratore del sistema (generalmente l'account root nei sistemi Unix, Administrator nei sistemi Windows). Sistema operativo real-time Un sistema operativo real-time è un sistema operativo utilizzato tipicamente in un ambito industriale o comunque dove sia necessario ottenere una risposta dal sistema in un tempo massimo prefissato. I sistemi operativi realtime si possono dividere in due categorie: hard e soft, a seconda dei tempi di risposta.

Parti del sistema operativo Kernel Il kernel è il cuore di un sistema operativo. Si tratta di un software che ha il compito di fornire ai moduli che compongono il sistema operativo e ai programmi in esecuzione sul computer le funzioni fondamentali ed un accesso controllato all'hardware, sollevandoli dai dettagli della sua gestione. Quali funzioni sia opportuno che il kernel debba fornire e quali possano essere demandate a moduli esterni è oggetto di opinioni divergenti: se il kernel di un sistema operativo implementa soltanto un numero molto ristretto di funzioni, delegando il resto ad altre parti, si parla di microkernel. Il vantaggio di un sistema operativo microkernel è la semplicità del suo kernel; lo svantaggio è l'interazione più complessa fra il kernel e le altre componenti del S.O. stesso, che rallenta il sistema. Di solito il kernel di un sistema operativo microkernel è molto piccolo e fornisce solo poche funzioni di base per l' astrazione dall'hardware e la comunicazione fra i vari moduli, che sono esterni ad esso. Un kernel tradizionale, monolitico, integra invece dentro di sé la gestione della memoria virtuale, lo scheduler e i gestori di file system, nonché i driver necessari per il controllo di tutte le periferiche collegate. Questo tipo di kernel è più complesso da progettare, mantenere ed aggiornare, ma è anche più veloce ed efficiente. Una sua evoluzione è costituita dai kernel "modulari", che mantengono al loro interno lo scheduler e i gestori di file system e memoria virtuale ma separano alcune funzioni non essenziali in moduli a sé stanti, da caricare in memoria solo in caso di effettivo uso della funzione o periferica di loro competenza. Sulla distinzione fra microkernel e kernel monolitico di notevole interesse è il famigerato dibattito fra Torvalds e Tanembaum "LINUX is obsolete" che potete trovare su comp.os.minix al seguente collegamento. File system Il file system è il modo in cui i file sono immagazzinati e organizzati su un dispositivo di archiviazione, come un hard disk o un CD-ROM. Esistono molti tipi di file system, creati per diversi sistemi operativi, per diverse unità di memorizzazione e per diversi usi. Si possono identificare due grandi classi di file system: quelli per unità locali, destinate ad organizzare fisicamente i dati su un disco, e i file system distribuiti, nati per condividere i dati fra più computer collegati attraverso una rete, superando le differenze fra sistemi operativi e filesystem locali delle varie macchine.

Scheduler Lo scheduler è il componente fondamentale dei sistemi operativi multitasking, cioè quelli in grado di eseguire più processi (task) contemporaneamente. Lo scheduler si occupa di fare avanzare un processo interrompendone temporaneamente un altro, realizzando così un cambiamento di contesto (context switch). Generalmente computer con un processore sono in grado di eseguire un programma per volta, quindi per poter far convivere più task è necessario usare lo scheduler. Esistono vari algoritmi di scheduling che permettono di scegliere nella maniera più efficiente possibile quale task far proseguire. Allo stato dell'arte, esistono scheduler O(1).

SCANNER

Lo scanner o scansionatore d'immagine (termine mutuato dall'inglese image scanner), è una periferica in grado di acquisire in modalità ottica una superficie piana (fogli stampati, pagine di libri e riviste, fotografie, diapositive, ecc.), di interpretarla come un insieme di pixel, e quindi di restituirne la copia fotografica sotto forma di immagine digitale.

Successivamente l'utente potrà modificarla mediante appositi programmi di fotoritocco o, nel caso di una scansione di un testo, convertirla in un file di testo mediante riconoscimento ottico dei caratteri (OCR), alcuni modelli di fascia medioalta hanno già in dotazione un loro programma di fotoritocco comprese alcune funzioni implementate nel software, attivabili durante l'acquisizione dell'immagine, come la rimozione della polvere sulla pellicola e il ritocco su eventuali piccoli difetti presenti sull'immagine.

In pratica, lo scanner svolge una funzione esattamente opposta a quella della stampante e, allo stesso tempo, analoga a quella di una fotocopiatrice con la sola differenza che la copia, in questo caso, non è su carta ma digitalizzata.

Funzionamento

Per digitalizzare un oggetto, gli scanner utilizzano un sensore ottico (un occhio, in senso figurativo) sensibile alla luce. Generalmente, vengono adottati due tipi di sensori:

• CCD (charged-coupled devices), costituito da una matrice lineare o quadrata di fotodiodi;

• PMT (photomultiplier tubes), costituito da tre fotomoltiplicatori sensibili alle luci rossa, verde e blu (RGB).

Inoltre, il sensore è sempre accoppiato ad un convertitore analogico-digitale dedicato a trasformare l’informazione acquisita in dato digitale.

Scanner di tipo CCD

Il sensore ottico di tipo CCD è adottato principalmente dagli scanner a letto piano, da quelli alimentati a foglio, dai modelli manuali e da quelli per le diapositive.

Un CCD è un elemento elettronico composto da minuscoli sensori che genera una differenza elettrica analogica proporzionale all'intensità di luce che lo colpisce. Negli scansionatori a letto piano, i sensori sono disposti su una matrice lineare (che richiede tre passaggi di rilevazione, uno per ciascuno dei tre colori RGB della luce) o su tre matrici lineari su un chip (che permettono la scansione a un solo passaggio).

Durante la scansione dell'immagine, una luce bianca viene proiettata verso l'oggetto da digitalizzare e la matrice:

• riceve il riflesso della luce; • campiona l'intera larghezza dell'oggetto; • la registra come una linea completa; • rileva le differenze di tensione (rappresentate dai vari livelli di luce analogici); • le invia ai convertitori A/D, che le trasformano in dati binari.

Questo processo richiede solo una frazione di secondo e viene eseguito per tutta la lunghezza dell'oggetto (per questo motivo, il sensore ottico viene spostato da un meccanismo di trascinamento interno allo scansionatore).

La qualità del risultato finale dipende da tre fattori principali:

• qualità dei componenti elettronici di acquisizione (che influenza anche il costo dell'apparecchio);

• gamma e profondità dei colori riconoscibili (gamma dinamica e gamma di densità);

• risoluzione reale di scansione.

Scanner di tipo PMT Il sistema di scansione con tubi fotomoltiplicatori PMT (photomultipliers tubes) è

adottato dagli scanner a tamburo. Nonostante la tecnologia sia più datata rispetto a quella dei CCD e abbia costi di

manutenzione più elevati, i fotomoltiplicatori hanno ottime caratteristiche di qualità e affidabilità e, spesso, la qualità dell'immagine acquisita è superiore a quella fornita dagli altri tipi di scanner.

Generalmente, negli scanner a tamburo sono presenti tre fotomoltiplicatori: uno per il rosso, uno per il verde e uno per il blu. La sorgente luminosa emessa è una luce alogena al tungsteno, il cui fascio viene concentrato con lenti e fibre ottiche in modo da illuminare una porzione molto piccola dell’oggetto.

La luce riflessa dall’oggetto viene raccolta da piccoli specchi semitrasparenti, inclinati, che rimandano una piccola quantità di luce ad altri specchi. Quindi, la luce passa attraverso un appropriato filtro colorato e diretto al corrispondente fotomoltiplicatore, dove avviene il processo di amplificazione ottica. Gli elettroni emessi quando la luce colpisce il catodo del fotomoltiplicatore viaggiano attraverso strati di dinodi, che a loro volta emettono ulteriori elettroni, amplificandoli fino al punto che la luce può essere convertita in segnali elettrici. L’anodo del fotomoltiplicatore misura le variazioni di questi segnali, che vanno ai convertitori A/D per essere registrati in segnali digitali.

Rispetto a un sistema CCD di medio livello, la tecnologia dei fotomoltiplicatori consente di catturare tonalità ad alta definizione più fedeli e precise. Infatti, gli scansionatori CCD più diffusi in commercio sono, generalmente, inferiori agli scansionatori a tamburo in termini di qualità dell'immagine. Tuttavia, alcuni

esperti assicurano che, grazie ai continui miglioramenti della tecnologia CCD e dei convertitori A/D, gli scansionatori di fascia alta possono riprodurre le immagini con una fedeltà molto simile a quelli a tamburo.

Utilizzi Gli scanner sono strumenti fondamentali per una corretta gestione elettronica dei

documenti (GED). Esistono scanner in grado di elaborare anche centinaia di pagine al minuto,

richiamando automaticamente le pagine da un apposito contenitore, così come avviene usualmente per una stampante.

Si sta diffondendo, fra i professionisti, l'utilizzo di scanner portatili o scanner a tutta pagina, con o senza fili, delle dimensioni di una penna, a colori o monocromatici. In ambito forense (avvocati, notai) lo strumento è utilizzato per acquisire fuori dall'ufficio documenti d'interesse professionale (verbali d'udienza, sentenze) senza necessità di code agli sportelli e senza pagamento di diritti di copia.

POSTA ELETTRONICA

La posta elettronica (e-mail o email, dall'inglese «electronic mail») è un servizio Internet grazie al quale ogni utente abilitato può inviare e ricevere dei messaggi utilizzando un computer o altro dispositivo elettronico (es. palmare, cellulare ecc.) connesso in rete attraverso un proprio account di posta registrato presso un provider del servizio. È una delle applicazioni Internet più conosciute e utilizzate assieme al web. La sua nascita risale al 1971, quando Ray Tomlinson installò su ARPANET un sistema in grado di scambiare messaggi fra le varie università, ma chi ne ha realmente definito il funzionamento fu Jon Postel.

Rappresenta la controparte digitale ed elettronica della posta ordinaria e cartacea. A differenza di quest'ultima, il ritardo con cui arriva dal mittente al destinatario è normalmente di pochi secondi/minuti, anche se vi sono delle eccezioni che ritardano il servizio fino a qualche ora. Per questo in generale di fatto ha rappresentato una rivoluzione nel modo di inviare e ricevere posta con la possibilità di allegare qualsiasi tipo di documento e immagini digitali entro certi limiti di dimensioni in byte.

Modello di servizio

Scopo del servizio di posta elettronica è il trasferimento di messaggi da un utente ad un altro attraverso un sistema di comunicazione dati che coinvolge i client agli estremi e dei server di posta attivi presso i rispettivi provider del servizio come nodi di raccolta/smistamento dei messaggi interni alla Rete.

Ciascun utente può possedere una o più caselle di posta elettronica, sulle quali riceve messaggi che vengono conservati. Quando lo desidera, l'utente può consultare il contenuto della sua casella, organizzarlo, inviare messaggi a uno o più utenti.

L'accesso alla casella di posta elettronica è normalmente controllato da una password o da altre forme di autenticazione. La modalità di accesso al servizio è quindi asincrona, ovvero per la trasmissione di un messaggio non è necessario che mittente e destinatario siano contemporaneamente attivi o collegati.

La consegna al destinatario dei messaggi inviati non è garantita. Nel caso un server SMTP non riesca a consegnare un messaggio ricevuto, tenta normalmente di inviare una notifica al mittente per avvisarlo della mancata consegna, ma anche questa notifica è a sua volta un messaggio di posta elettronica (generato automaticamente dal server), e quindi la sua consegna non è garantita.

Il mittente può anche richiedere una conferma di consegna o di lettura dei messaggi inviati, ma il destinatario è normalmente in grado di decidere se vuole inviare o meno tale conferma. Il significato della conferma di lettura può essere ambiguo, in quanto

aver visualizzato un messaggio per pochi secondi in un client non significa averlo letto, compreso o averne condiviso il contenuto.

Indirizzi di posta elettronica

A ciascuna casella sono associati uno o più indirizzi di posta elettronica necessari per identificare il destinatario. Questi hanno la forma nomeutente@dominio, dove nomeutente è un nome scelto dall'utente o dall'amministratore del server, che identifica in maniera univoca un utente (o un gruppo di utenti), e dominio è un nome DNS.

L'indirizzo di posta elettronica può contenere qualsiasi carattere alfabetico e numerico (escluse le accentate) e alcuni simboli come il trattino basso (_) ed il punto (.). Molto spesso può tornare utile agli utenti usufruire dei servizi di reindirizzamento, utilizzati per inoltrare automaticamente tutti i messaggi che arrivano sulla casella di posta elettronica, verso un'altra di loro scelta, in modo che al momento della consultazione non debba accedere a tutte le caselle di posta elettronica di cui dispone, ma sia sufficiente controllarne una.

Esempio di indirizzo mail: [email protected]

La chiocciola (la "a" commerciale) che separa il nome utente dal dominio.

Architettura del sistema di posta elettronica

Schema di funzionamento del servizio di posta elettronica

I componenti fondamentali del sistema di posta elettronica sono:

• i client (detti in gergo MUA, Mail User Agent), utilizzati per accedere ad una casella di posta elettronica e per inviare messaggi

• i server, che svolgono due funzioni fondamentali: o immagazzinare i messaggi per uno o più utenti nella rispettiva casella di

posta o mailbox (detti in gergo MS, Message Store) o ricevere i messaggi in arrivo ed in partenza e smistarli (detti in gergo

MTA, Mail Transfer Agent).

I protocolli tipicamente impiegati per lo scambio di messaggi di posta elettronica sono il SMTP, usato per l'invio, la ricezione e l'inoltro dei messaggi tra server, il POP e l'IMAP, usati per la ricezione e consultazione dei messaggi da parte degli utenti. I client richiedono la configurazione dei server da contattare, e sono quindi adatti principalmente a computer usati regolarmente. È anche molto diffusa la possibilità di consultare una casella di posta elettronica attraverso il web (Webmail).

Messaggi di posta elettronica

Un messaggio di posta elettronica è costituito da:

• una busta (envelope) • una sezione di intestazioni (header)

un corpo del messaggio (body)

LA FUNZIONE INFORMATICA

In informatica, nell'ambito della programmazione, una funzione (detta anche subroutine, routine, procedura, sottoprogramma o metodo) è un particolare costrutto sintattico, in qualche linguaggio di programmazione, che permette di raggruppare, all'interno di programma, una sequenza di istruzioni in un unico blocco di istruzioni espletando così una determinata e in generale più complessa operazione, azione o elaborazione sui dati del programma stesso (a partire da determinati input restituisce determinati output).

L'importanza, la praticità e i vantaggi di una funzione stanno nel fatto che può essere "chiamata" ("richiamata", "invocata" o "attivata") in diversi punti del programma di cui fa parte ogni volta in cui si ha la necessità di farlo come se fosse una singola istruzione senza la necessità di doverne riscrivere ogni volta il relativo codice implementando dunque il cosiddetto riuso di codice, cui si aggiunge una più facile manutenibilità del codice all'interno del programma ed una più facile progettazione del software secondo la classica filosofia del divide et impera.

Le funzioni sono tipicamente anche le modalità con cui si costruiscono le API di un certo linguaggio di programmazione.

Una funzione dovrebbe eseguire una determinata operazione o risolvere un determinato problema (o al limite tutto il problema) all'interno dell'algoritmo risolutivo, contribuendo così alla fattorizzazione del software. Ad esempio, una subroutine progettata per disporre in ordine crescente un insieme di numeri interi può essere richiamata in tutti i contesti in cui questa operazione sia utile o necessaria, e supplisce alla mancanza di una vera e propria "istruzione" dedicata allo scopo, consentendo al contempo di descrivere il corrispondente algoritmo di ordinamento in un unico punto del programma.

Le subroutine che implementano funzionalità di base spesso richiamate nel codice sorgente dal programmatore sono raccolte all'interno delle cosiddette librerie.

Nei diversi linguaggi di programmazione, le funzioni vengono realizzate in modi e con terminologie parzialmente differenti.

• il termine subroutine è stato usato fino dagli albori della programmazione per riferirsi a sezioni di codice assembly o in linguaggio macchina (e viene usato per estensione in altri contesti ad esempio nelle prime versioni del Basic);

• i termini procedura e funzione vengono generalmente usati nel contesto dei linguaggi di programmazione ad alto livello; laddove non siano considerati sinonimi per funzione si intende un sottoprogramma il cui scopo principale sia quello di produrre un valore in output a partire da determinati dati in ingresso (cosa che stabilisce un'analogia con l'omonimo concetto di funzione

matematica), senza modificare lo stato; mentre una procedura è un sottoprogramma che non "produce" alcun particolare valore in output ma modifica lo stato. Alcuni linguaggi (per esempio il C) adottano come modello "standard" quello della funzione, e considerano le procedure come caso particolare di funzione che restituisce un valore appartenente all'insieme vuoto.

• il termine sottoprogramma è anch'esso tipico dei linguaggi di programmazione ad alto livello, ed è talvolta usato come termine generale per riferirsi sia a procedure che a funzioni nel senso descritto sopra.

• il termine metodo è usato invece nell'ambito della programmazione orientata agli oggetti in luogo di quello di funzione.

Funzionamento

Quasi tutti i linguaggi di programmazione supportano le funzioni, fornendo una propria sintassi per definire una funzione, ovvero scriverne il codice, ed una per richiederne l'esecuzione (invocazione o chiamata della funzione).

In generale la sintassi comune della definizione di una funzione prevede:

• un identificativo o nome; • per linguaggi tipizzati un tipo di ritorno ovvero una specifica sul tipo di dato

che essa ritornerà in output all'utente o ad altre funzioni che la invocano; quando una funzione non ritorna nulla (es. ritorno di tipo void) la funzione avrà svolto altre elaborazioni agendo ad esempio sullo stato delle variabili del programma o visualizzando a video qualcosa senza restituire nulla. In linguaggi non tipizzati o a tipizzazione debole invece non è presente il tipo di ritorno.

• la specifica (non sempre necessaria) dei cosiddetti parametri o operandi i cui valori saranno poi passati in fase di invocazione e su cui la funzione opererà in fase di elaborazione; anche in assenza di parametri il corpo della funzione potrà svolgere la sua elaborazione con altre istruzioni ad esempio agendo sullo stato delle variabili del programma o visualizzando a video qualcosa.

• il corpo della funzione ovvero il nucleo dell'elaborazione costituita dal blocco, opportunamente delimitato, di una o più istruzioni, ciascuna terminata dal comando di terminazione, cicli iterativi, strutture condizionali ecc..., il tutto concluso con la variabile eventualmente ritornata in output. Variabili instanziate o definite nel blocco saranno necessariamente variabili locali cioè con visibilità solo all'interno del blocco stesso.

Una funzione è una porzione di codice che può essere invocata da qualsiasi punto di un programma.. Per l'invocazione occorre tipicamente richiamarne almeno il nome passando i valori degli eventuali parametri, cui si aggiungono eventualmente altri dettagli dipendenti dal particolare linguaggio di programmazione in uso (es. notazione punto nei linguaggi ad oggetti).

Un funzione può a sua volta richiamare un'altra funzione, restando in attesa che questa termini. Si parla in questo caso di funzione invocante e funzione invocata, o funzione chiamante e funzione chiamata. È anche possibile che una funzione richiami direttamente o indirettamente sé stessa. In questo caso, si dice che in un dato momento sono in esecuzione più istanze di una stessa funzione. Questa possibilità è essenziale per la programmazione ricorsiva.

L'esecuzione di quella parte di programma si interrompe fino a quando l'esecuzione di una funzione non è terminata e prosegue dall'istruzione successiva a quella di invocazione.

Un altro strumento, che talvolta può essere usato al posto di una funzione, anche se con grosse limitazioni è la macro.