Sei sulla pagina 1di 93

Ing.

Michele Ficicchia Sistemi Informativi Aziendali

Università di Palermo

Facoltà di Ingegneria

Corso di Laurea in Ingegneria Gestionale

Dispense di

Sistemi Informativi Aziendali

Ing. Michele Ficicchia

Anno Accademico 2003-2004

Versione 1.0 (3/5/2004) Pagina 1 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

SOMMARIO

1 Introduzione...............................................................................................................4
1.1 Oggetto della materia........................................................................................4
1.2 Contesto in cui si evolve l’informatica..............................................................5
2 L’Hardware................................................................................................................8
2.1 La scheda madre................................................................................................9
2.2 La schede che si inseriscono sulla scheda madre............................................11
2.3 Le memorie di massa.......................................................................................13
2.4 Le periferiche...................................................................................................17
3 Il Software...............................................................................................................20
3.1 Il software di sistema.......................................................................................20
3.2 Il software applicativo.....................................................................................27
4 Le reti.......................................................................................................................28
4.1 Tipologie di reti...............................................................................................28
4.2 Elementi costituenti una rete...........................................................................31
4.3 La rete Internet................................................................................................35
5 Le applicazioni aziendali.........................................................................................42
5.1 Le applicazioni diffuse in tutti i settori............................................................42
5.2 Le applicazioni nel settore industriale.............................................................45
5.3 Le applicazioni nel settore dei servizi.............................................................46
6 L’integrazione delle applicazioni............................................................................61
6.1 L’integrazione orizzontale...............................................................................61
6.2 L’integrazione verticale...................................................................................63
7 Le basi di dati..........................................................................................................68
7.1 File...................................................................................................................68
7.2 Database..........................................................................................................71
8 Pianificazione e realizzazione di un sistema informativo.......................................79
8.1 L’ingegneria del software................................................................................79
8.2 I paradigmi di programmazione......................................................................84
8.3 La misura del software....................................................................................87
8.4 L’utilizzo dei Sistemi Informativi Aziendali...................................................90

Versione 1.0 (3/5/2004) Pagina 2 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

INDICE DELLE FIGURE


Figura 1 – Architettura hardware di un Personal Computer......................................................9
Figura 2 – Struttura di un Hard Disk.....................................................................................14
Figura 3 – Struttura di un codice a barre..............................................................................18
Figura 4 – Classificazione del software.................................................................................20
Figura 5 – Topologie di reti locali (LAN)................................................................................29
Figura 6 – Lo stack ISO/OSI................................................................................................34
Figura 7 – Posizionamento dei canali di accesso rispetto ai vincoli..........................................50
Figura 8 – La macchina Enigma...........................................................................................54
Figura 9 – Schema di funzionamento di un sistema a chiave simmetrica.................................56
Figura 10 – Schema di funzionamento di un sistema a chiave asimmetrica.............................57
Figura 11 – Esempio di chiave pubblica................................................................................58
Figura 12 – Esempi di analisi multidimensionale OLAP...........................................................66
Figura 13 – La struttura di un file.........................................................................................68
Figura 14 – Confronto tra l’organizzazione dei file piatti e dei Database..................................72
Figura 15 – Esempio di Database gerarchico.........................................................................74
Figura 16 – Relazioni 1:1, 1:m ed m:n.................................................................................75
Figura 17 – Esempi di relazioni 1:1, 1:m ed m:n...................................................................75
Figura 18 – Rappresentazione di una relazione 1:m..............................................................76
Figura 19 – Rappresentazione di una relazione m:n..............................................................77
Figura 20 – Confronto tra modello relazionale e modello ad oggetti.......................................78
Figura 21 – Esempio di un diagramma strutturale di un programma.......................................85
Figura 22 – Esempio di classi ed ereditarietà........................................................................87
Figura 23 – Schema di applicazione del metodo dei Function Point.........................................90

Versione 1.0 (3/5/2004) Pagina 3 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

1 Introduzione

1.1 Oggetto della materia

Sistema Informativo Aziendale


Un Sistema Informativo Aziendale può essere definito come l’insieme di persone,
macchine, reti, applicazioni software e processi che permettono all’azienda di disporre
delle informazioni giuste al momento giusto.

Ciclo di vita di un Sistema Informativo Aziendale


Un Sistema Informativo percorre generalmente un ciclo di vita caratterizzato da alcune
fasi ben precise:
 Fattibilità tecnico-economica: fase in cui vengono stabiliti gli obiettivi, verificata
la fattibilità tecnica e fatta una prima valutazione dei costi e dei benefici;
 Analisi: fase in cui viene effettuata la modellazione dei processi da
informatizzare, la progettazione di dettaglio delle funzionalità e delle banche-dati
del Sistema Informativo;
 Progettazione: fase in cui viene effettuata la progettazione di dettaglio dei
componenti software del Sistema Informativo;
 Realizzazione: fase in cui il sistema viene realizzato, utilizzando due possibili
strategie, in genere combinate:
o make (realizzare), che consiste nel sviluppare appositamente il software;
o buy (comprare), che consiste nell’acquisire software già pronto ed,
eventualmente, personalizzarlo;
 Collaudo: fase durante la quale i singoli componenti software e l’intero sistema
vengono collaudati e, se necessario, modificati;
 Manutenzione: fase continua caratterizzata da piccoli interventi sul software
per:
o rimuovere eventuali anomalie;
o adeguare il software alla mutata normativa;
o adeguare il software a tecnologie più avanzate;
o migliorare le prestazioni del software;
o aggiungere nuove funzionalità o migliorare quelle esistenti;
 Utilizzo: fase continua che costituisce lo scopo finale della implementazione dei
Sistemi Informativi.

Versione 1.0 (3/5/2004) Pagina 4 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Alcune categorie ed esempi di Sistemi Informativi Aziendali


 Sistemi di supporto alla produzione industriale (CAD, CAM, etc…);
 Sistemi di supporto alla gestione aziendale (Personale, Contabilità, Controllo di
Gestione, etc…);
 Sistemi bancari (Sportello, C/C, Borsa Titoli, etc…);
 Sistemi per la PAC (Pubblica Amministrazione Centrale) (Contabilità di Stato,
Finanza, Pubblica Istruzione, Beni Culturali, etc…);
 Sistemi per la PAL (Pubblica Amministrazione Locale) (Anagrafe, Stato Civile,
Tributi, etc…);
 Sistemi per la Sanità (ADT, CUP, Pronto Soccorso, Diagnostica per immagini,
etc…);
 Sistemi per l’e-Commerce (Catalogo elettronico, carrello della spesa, pagamenti,
etc…);
 Sistemi di pianificazione, consuntivazione, controllo (MIS, DSS,
DataWarehouse, cruscotti, etc…).

1.2 Contesto in cui si evolve l’informatica

La Società dell’Informazione (o post-industriale)


L’era industriale, iniziata con l’invenzione delle macchine complesse, è ormai
terminata; siamo nell’era successiva, post-industriale, definita da molti Società
dell’Informazione.
Quale data di transizione (come sempre puramente formale) sono state proposte, tra le
altre:
 l’invenzione del computer (a sua volta oggetto di dibattito, oscilla tra il 1930 e il
1945);
 la creazione di Arpanet/Internet (anni ’60-‘70);
 la caduta del muro di Berlino (novembre 1989);

Ma ne potrebbero esistere molte altre, precedenti e successive: dall’invenzione del


telefono, a quella della radio, dalla messa in orbita del primo satellite per le
telecomunicazioni, alla nascita del World Wide Web.

Caratteristiche della Società Industriale


La Società Industriale era caratterizzata dal seguente profilo:
 Produzione di beni utilizzando grandi quantità di materie prime (carbone,
petrolio, acciaio, etc…);
 Produzione di massa dei beni grazie alla standardizzazione (ad esempio, nel
settore tessile);

Versione 1.0 (3/5/2004) Pagina 5 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

 Sistemi di lavoro alienanti per gli operai, perché basati su piccoli compiti scialbi
ripetitivi (Taylorismo).
 Separazione netta tra prodotto e servizio.

Definizione di prodotto e servizio (Karl Marx – Il Capitale)


Il prodotto viene realizzato e consumato in momenti differenti (Es.: tessuto). Il servizio
viene consumato nello stesso momento in cui viene prodotto (Es.: trasporto in treno).
Attenzione: Alcuni testi riportano definizioni errate di prodotto e servizio. Il più
comune errore è che il prodotto sia materiale ed il servizio immateriale. In realtà ci sono
prodotti immateriali (software, film) e servizi con elevata componente materiale
(ristorante).

Caratteristiche della Società dell’Informazione


La Società dell’Informazione è invece caratterizzata dal seguente profilo:
 Sviluppo autosostenibile (risparmio di materie prime);
 Dematerializzazione del prodotto (es.: software);
 Virtualizzazione del servizio (es.: banca on-line);
 Virtualizzazione del posto di lavoro (Virtual Workplace, es.: consulenza);
 Personalizzazione di massa (grazie a metodologie e tecnologie telematiche);
 Lavoro altamente specializzato ma vario e gratificante.
 Globalizzazione, comunicazione, connessione.

Evoluzione del ruolo del computer nella Società dell’Informazione


Il computer ha subito nel corso dei decenni un’evoluzione del proprio ruolo nella
Società dell’Informazione. Si possono distinguere almeno tre ruoli principali:
 Prima fase (anni ’40-’50): il computer è un calcolatore (da cui il nome inglese);
Es.: Enigma/Colossus, ricerca; previsioni del tempo;
 Seconda fase (anni ’60-’80): il computer è un gestore (da cui il nome francese
ordinateur); Es.: sistemi informativi aziendali classici;
 Terza fase (anni ’90-2000): il computer è un comunicatore; Es.: Internet, E-mail,
etc…

Col passare del tempo i nuovi ruoli si affiancano a quelli vecchi, che permangono,
anche se tendono a rivestire un ruolo di nicchia (ad esempio, supercalcolatori per la
ricerca scientifica).

L’ICT (Information and Communication Technology)


Come conseguenza del terzo ruolo, l’Informatica (fusione dei termini Informazione e
Automatica) dagli anni ’90 diventa ICT (Information and Communication Technology

Versione 1.0 (3/5/2004) Pagina 6 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

= Tecnologia dell’informazione e della comunicazione), a sottolineare la convergenza e


l’integrazione tra gli aspetti di elaborazione e di comunicazione.
Un esempio tipico di questa convergenza ed integrazione è il confine sempre più labile
tra un anello e l’altro nella catena dei PDA (Personal Digital Assistant = Assistente
digitale personale): telefoni cellulari, Smartphone, PC Phone, Palmari, PC laptop, PC
portatili.

Versione 1.0 (3/5/2004) Pagina 7 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

2 L’Hardware

Hardware e Software
L’hardware (in inglese significa roba dura; è un termine da tempo utilizzato con il
significato di ferramenta) è l’insieme di tutte le componenti tangibili di un elaboratore,
cioè la parte fisica, materiale di un computer (circuiti, magneti, cavi, schede, contenitori,
etc…).
Il software (in inglese significa roba molle; è un neologismo inventato per l’informatica,
in contrapposizione ad hardware) è l’insieme di tutte le componenti intangibili di un
elaboratore, cioè i programmi scritti per farlo funzionare e memorizzati nell’hardware.

Il PC (Personal Computer)
I primi computer (anni ’40) erano basati su valvole termoioniche ed erano grandi come
un appartamento di lusso. Col passare degli anni divennero meno imponenti e poi, con
la diffusione dei transistor prima (anni ’50-’60) e dei circuiti integrati dopo (anni
’70-‘80), via via più piccoli: si parlò di midi-computer (grandi come un armadio), mini-
computer (grandi come una lavatrice), micro-computer (grandi come un cassetto).
Nel 1981 IBM operò una svolta storica introducendo il Personal Computer, un micro-
computer il cui cuore era un micro-processore costituito da un unico circuito integrato,
il quale, oltre ad essere piccolo come una macchina da scrivere, era dotato di
un’interfaccia così semplice (Sistema Operativo DOS) da essere utilizzabile da
chiunque quale computer personale.
Il successo fu enorme e tale da rendere l’architettura hardware PC prevalente su tutte le
altre. Pertanto ci limiteremo a trattare l’hardware di un PC.

Componenti dell’architettura di un PC
I componenti di un Personal Computer sono:
 Scheda madre, su cui sono cablati, tra l’altro, il processore, il bus, il clock, la
ROM, le porte di comunicazione con l’esterno e le interfacce;
 Schede di memoria centrale (RAM) e di espansione (video, audio,
comunicazione, etc…);
 Dispositivi di memoria di massa (Floppy Disk, Hard Disk, dispositivi ottici,
memorie USB, etc…);
 Periferiche di input (Tastiera, mouse, lettore ottico, scanner, etc…);
 Periferiche di output (Monitor, stampante, casse, etc…).

Versione 1.0 (3/5/2004) Pagina 8 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Figura 1 – Architettura hardware di un Personal Computer

2.1 La scheda madre


E’ la scheda più grossa che si trovi dentro il case (contenitore) del PC e ne costituisce il
cuore. E’ affollata di componenti elettronici (transistor, resistenze, condensatori,
bobine) tra cui spiccano alcuni grossi circuiti integrati. Il più grosso è la CPU.

La CPU (Central Processing Unit)


La CPU (Central Processing Unit = Unità di elaborazione centrale) è un
microprocessore ad alta integrazione (contiene milioni di transistor), che effettua le
elaborazioni principali del computer. La CPU elabora le istruzioni del programma in
esecuzione sul computer. Le istruzioni sono di due tipi:
 Aritmetiche: consistono in un calcolo (in genere una delle 4 operazioni) che
coinvolge due o più numeri memorizzati in altrettante locazioni di memoria,
producendo un risultato che viene memorizzato in un’altra locazione di memoria;
 Logiche: consistono in un confronto tra due più valori memorizzati in altrettante
locazioni di memoria, che produce un risultato vero o falso (es. A > B);
La CPU è composta da due unità:
 Control Unit (Unità di controllo): scorre sequenzialmente le istruzioni del
programma in esecuzione, le trasmette all’ALU, che le esegue, e ne acquisisce il
risultato; se l’istruzione è aritmetica, deposita il risultato nella locazione di memoria
specificata dall’istruzione; se l’istruzione è logica, esegue o meno un salto ad
un’altra istruzione specificata a seconda che il risultato sia vero o falso;
 ALU (Arithmetic Logic Unit – Unità Logico-Aritmetica): esegue i calcoli ed i
confronti richiesti dalla Control Unit, producendo il risultato numerico (istruzione
aritmetica) o la condizione Vero/Falso (istruzione logica);
In questo modo, la CPU è in grado non solo di eseguire calcoli complessi in tempi
ridottissimi, ma anche di “prendere decisioni” in fase esecutiva sulla base dei valori
delle variabili di programma.

Versione 1.0 (3/5/2004) Pagina 9 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

La CPU è il componente più veloce del computer, in grado di eseguire miliardi di


istruzioni al secondo. La potenza (velocità) di una CPU si misura oggi (aprile 2004) in
GHz (GigaHertz, ossia miliardi di Hertz, cicli al secondo).

Il bus
Il bus (autobus) è l’autostrada di collegamento tra la CPU e le altre componenti del
computer. Consente ai dati di fluire da un componente all’altro con la velocità più adatta
al caso. La velocità del bus è in genere intermedia tra quella della CPU e quella delle
altre componenti.

Il clock
Il clock (orologio) è un oscillatore al quarzo che scandisce i cicli (Hertz) di
funzionamento della CPU e degli altri componenti. Ogni ciclo corrisponde in genere ad
un’istruzione eseguita dalla CPU. Gli altri componenti, più lenti, effettuano
un’operazione ogni n cicli. Le frequenze dei clock odierni si misurano in GHz.

La ROM (Read Only Memory)


La ROM (Read Only Memory = Memoria di sola lettura) è una memoria elettronica di
sola lettura, che viene memorizzata in fabbrica con un software detto di bootstrap
(anello nello stivale, utile per calzarlo). La ROM è una memoria veloce, in grado di
comunicare con efficienza con la CPU, senza costringerla ad attese penalizzanti. Il
software di bootstrap in essa contenuto è in grado di avviare il computer all’accensione
in attesa che si attivi il Sistema Operativo del Computer.
L’esigenza di disporre di una ROM è dovuta al fatto che, come si vedrà, la CPU non
può leggere istruzioni dall’Hard Disk perché questo è troppo lento e, all’accensione, non
può leggere istruzioni dalla RAM perché questa è volatile. In assenza delle istruzioni
non volatili memorizzate sulla veloce ROM (bootstrap) i computer non potrebbero
avviarsi.

Le porte di comunicazione
Sulla scheda madre sono cablate numerose porte di comunicazione con dispositivi
esterni al computer. Le più comuni sono:
 Porta tastiera: serve a connettere la tastiera;
 Porta mouse: serve a connettere il mouse;
 Porte seriali (in genere due): trasmettono i dati serialmente, un bit dopo l’altro;
servono a connettere dispositivi seriali, come lettori di codici a barre, scanner,
modem e molti altri; vanno lentamente in disuso, sostituite dalle porte USB;
 Porta parallela: trasmette i dati 8 bit alla volta; serve a connettere la stampante;
 Porte USB (Universal Serial Bus = Autobus seriale universale; sui computer
moderni ce ne sono almeno 6, di cui due sul frontale): trasmette i dati serialmente,
ma ad alta velocità; serve a connettere praticamente tutte le periferiche; inoltre, a
differenza delle altre porte, può connettere e sconnettere i dispositivi a caldo (senza

Versione 1.0 (3/5/2004) Pagina 10 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

spegnere il computer), può connettere più dispositivi in serie ed è in grado di fornire


anche l’alimentazione; ideale per dispositivi ad alto trasferimento di dati (come
macchine fotografiche e videocamere) ha ormai di fatto rimpiazzato le porte seriali;

Le interfacce
Sulla scheda madre sono cablate anche le interfacce con dispositivi interni al computer
ma fisicamente staccati dalla scheda stessa. Le più comuni sono:
 Interfaccia per il Floppy Disk; sta andando lentamente in disuso;
 Interfacce per le altre memorie di massa (Hard Disk, lettori/masterizzatori
CD/DVD); in genere ci sono due canali, ciascuno dei quali supporta due dispositivi,
per un totale di quattro dispositivi.

2.2 La schede che si inseriscono sulla scheda madre


Sulla scheda madre esistono degli slot (fessure) nei quali è possibile inserire delle
schede aggiuntive. Alcuni slot sono dedicati alle schede di memoria centrale (RAM),
altri sono disponibili per schede di espansione, che incrementano le funzionalità del PC.

La RAM (Random Access Memory)


La RAM (Random Access Memory = Memoria ad accesso casuale) è una memoria
elettronica che può essere letta e scritta. Le sue caratteristiche sono:
 Elevata velocità; è in genere il componente più veloce dopo la CPU;
 Volatilità dei dati; per la persistenza dei dati, occorre l’alimentazione elettrica;
conseguentemente, la RAM perde tutti i dati ad ogni spegnimento del computer;
 Alto costo per dato memorizzato; essendo una memoria elettronica, il costo è
elevato rispetto alle memorie magnetiche (come gli Hard Disk) o ottiche (come i
CD/DVD);
 Limitata capacità di memorizzazione (qualche centinaio di MB) dovuta all’alto
costo.
Per la sua elevata velocità, la RAM è l’unica memoria (oltre alla ROM, che però non è
scrivibile) che può dialogare direttamente con la CPU senza che quest’ultima trascorra
la gran parte del suo tempo in attesa di leggere o scrivere un dato. Tutti i dati e le
istruzioni del computer che devono essere elaborati dalla CPU vengono pertanto
memorizzati temporaneamente sulla RAM, che assume quindi il ruolo di memoria
centrale dell’elaboratore.
Questo è il motivo per il quale tutti i computer utilizzano una RAM, nonostante l’alto
costo.
La caratteristica principale di una RAM è la capienza che si misura oggi (aprile 2004) in
centinaia di MB (MegaByte, cioè milioni di Byte), con tendenza a portarsi sul GB
(GigaByte, cioè miliardi di Byte). I tagli sono sempre potenze di 2 (128MB, 256MB,
512MB, etc…). La potenza di un computer deriva dalla velocità della CPU e, subito
dopo, dalla quantità di RAM istallata.

Versione 1.0 (3/5/2004) Pagina 11 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

La scheda video
Sulla scheda madre esiste uno slot denominato AGP (Accelerated Graphic Port = Porta
grafica accelerata), predisposto per l’inserimento della scheda video. La scheda video è
un piccolo computer fornito di processore grafico, schede di memoria ed altri
componenti che elaborano il software grafico del programmi creando la grafica da
inviare al monitor. La scheda video è dotata di un’uscita (denominata VGA – Video
Graphics Array = Matrice grafica video) che consente la connessione al video ed oggi,
sempre più spesso, di altre uscite, come la DVI (Digital Video Interface = Interfaccia
video digitale) per la connessione a monitor digitali (LCD, Plasma, etc…) o la S-Video
per televisori, etc…
Alcune schede moderne, orientate ai videogiocatori, montano processori grafici che
rivaleggiano in potenza con la CPU del computer. Altre, orientate alla multimedialità,
ospitano sintonizzatori TV o satellitari o hanno capacità di acquisizione video.

La scheda audio
Gli altri slot di espansione della scheda madre possono ospitare schede per gli usi più
disparati. Tra questi vi è la scheda audio, che elabora il software audio dei programmi
creando i segnali audio per le periferiche destinate (casse). La scheda audio ha almeno
un’uscita di tipo jack che permette il collegamento alle casse stereo amplificate, un
ingresso jack per il microfono ed un ingresso dedicato per il Joystick (bastone da
divertimento, una periferica di gioco che, per ragioni storiche, è pilotata dalla scheda
audio).
Nelle schede moderne esistono altre uscite, tra cui una digitale di tipo S/PDIF
(Sony/Philips Digital InterFace = Interfaccia digitale Sony/Philips) che consente il
collegamento digitale ad un amplificatore decodificatore di segnali Dolby Digital e DTS
(Digital Theather Systems, inc.). Inoltre ormai la gran parte delle schede moderne
supporta un sistema surround a 5.1 canali. Le schede audio più sofisticate sono dei veri
e propri sistemi Home Theater.

La scheda di rete
La scheda di rete è una scheda di espansione che consente il collegamento del PC ad
una rete locale. La scheda trasforma i segnali del bus del computer in segnali coerenti
con la rete locale (oggi quasi esclusivamente di tipo Ethernet). La scheda ha un’uscita di
rete oggi esclusivamente di tipo RJ45.
Si vanno lentamente diffondendo schede di rete wireless (senza fili), che utilizzano una
tecnologia ad onde radio secondo lo standard 802.11b (comunemente citato come Wi-
Fi). Queste “schede”, tuttavia, in genere non si inseriscono nella scheda madre, ma si
collegano ad una porta del PC (in genere USB).

La scheda modem
La scheda modem (MODulatore DEModulatore) è una scheda di espansione che
consente il collegamento del PC alla linea telefonica. La scheda trasforma i segnali del
bus del computer in segnali telefonici analogici da inviare sul doppino telefonico. La
scheda ha un’uscita telefonica oggi esclusivamente di tipo RJ11.

Versione 1.0 (3/5/2004) Pagina 12 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Esistono alcune varianti della scheda modem dedicate a connessioni telefoniche


particolari. Tra queste le più diffuse sono la scheda ADSL che consente un
collegamento analogico ad alta velocità sul doppino telefonico e la scheda ISDN
predisposta per le linee telefoniche digitali.

2.3 Le memorie di massa


La memoria RAM è una memoria veloce, ma volatile e molto costosa, quindi
disponibile in tagli relativamente piccoli (alcune centinaia di MB). Per memorizzare
permanentemente grandi quantità di dati (decine di GB) a basso costo i computer
dispongono delle memorie di massa. Le loro caratteristiche sono:
 Persistenza dei dati; grazie alla tecnologia magnetica o ottica i dati si conservano
anche in assenza di alimentazione;
 Basso costo per dato memorizzato;
 Elevata capacità (decine o centinaia di GB per gli Hard Disk), dovuta al basso
costo;
 Bassa velocità; i dati devono essere spostati temporaneamente sulla RAM per
poter essere elaborati dalla CPU.

Il Floppy Disk
Il Floppy Disk (Disco molle, floscio) è la prima tipologia di memoria di massa ad essere
apparsa sui PC. Consiste in un disco di piccole dimensioni a tecnologia magnetica, che
oggi può contenere 1,4 MB, che viene inserito in un drive presente nel case del PC per
la lettura e scrittura.
Contenuto in una custodia rigida da taschino (il termine floppy ha ragioni storiche), è
studiato per consentire comodi trasferimenti di dati tra PC. Oggi è in disuso per la scarsa
capacità, sostituito dalle più comode, più veloci e molto più capienti memorie USB.

L’Hard Disk
L’Hard Disk (Disco rigido) è anch’esso un disco a tecnologia magnetica, ma è istallato
in maniera fissa sul PC ed ha una struttura molto più complessa.
Il disco è in realtà un cilindro costituito da più dischi piani coassiali, la cui superficie ha
un rivestimento magnetico. Un braccio in grado di muoversi radialmente porta le testine
di lettura/scrittura, in modo che il movimento rotatorio dei dischi combinato con quello
radiale del braccio permetta alle testine di raggiungere qualunque punto della superficie
magnetizzata.
Per rispecchiare questa struttura di funzionamento, la superficie magnetizzata di ogni
disco è suddivisa in tracce concentriche, la cui sovrapposizione sui dischi forma un
cilindro, raggiungibile con il posizionamento radiale del braccio portatestine. Ciascuna
traccia è ulteriormente suddivisa in settori.
L’Hard Disk è la principale memoria di massa di un PC. La sua caratteristica più
importante è la capienza, che si misura in decine o, tendenzialmente, centinaia di GB
(GigaByte, miliardi di Byte).

Versione 1.0 (3/5/2004) Pagina 13 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Figura 2 – Struttura di un Hard Disk

Le memorie di massa ottiche (CD e DVD)


Le memorie di massa ottiche sono dischi che, come i Floppy Disk, vengono inseriti in
un drive in grado di leggerli (Lettore) o di leggerli e scriverli (Masterizzatore), ma a
differenza dei Floppy Disk e degli Hard Disk utilizzano una tecnologia ottica.
I dischi ottici sono costituiti da uno strato di policarbonato di 12 cm di diametro, sul
quale viene deposto uno strato fotoriflettente che contiene una traccia a forma di spirale
dall’interno del disco verso l’esterno. La spirale è costituita da una serie di pit (fossi),
scarsamente riflettenti e quindi opachi, e di land (terreno piano), altamente riflettenti e
quindi luminosi. Un raggio laser prodotto dal drive ottico esplora la spirale, viene
riflesso da pit e land in modo diverso e viene letto da un fotorilevatore, distinguendo le
zone ad alta e bassa riflettività. In questo modo sul disco ottico può essere memorizzata
l’informazione.
Esistono fondamentalmente tre tipi di dischi ottici: di sola lettura (identificati con la
sigla ROM – Read Only Memory = Memoria di sola lettura), registrabili (identificati
con la sigla R – Recordable = Registrabile) e riscrivibili (identificati con la sigla RW –
ReWritable = Riscrivibile).
I dischi ottici di sola lettura (ROM) vengono stampati in serie presso stabilimenti
opportunamente attrezzati, in un processo nel quale pit e land vengono creati
meccanicamente, in modo irreversibile.

Versione 1.0 (3/5/2004) Pagina 14 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

I dischi ottici registrabili (R), invece, vengono scritti da un dispositivo ottico con un
laser di potenza più elevata rispetto a quella del semplice lettore, chiamato
masterizzatore. Questi dischi possiedono uno strato di pigmenti organici che, quando
colpiti da una luce laser di opportuna potenza, diventano opachi, creando i pit. Le parti
della spirale non colpite dal laser, rimangono land.
I dischi ottici riscrivibili (RW) vengono anch’essi scritti da un masterizzatore, ma il
meccanismo è più complesso. Questi dischi possiedono uno strato di un composto
chimico in grado di cambiare fase quando colpito dalla luce del laser. Il composto è
inizialmente in uno stato policristallino, ad alta riflettività. Quando viene colpito dal
laser, tramite un riscaldamento e repentino raffreddamento, passa ad uno stato amorfo,
opaco, che realizza i pit. Per ritrasformare i pit in land, il masterizzatore deve applicare
una potenza bassa e costante per riportare il composto allo stato cristallino. La maggiore
complessità del processo spiega perché i tempi di masterizzazione dei supporti
riscrivibili sono maggiori di quelli dei supporti registrabili.
I dischi ottici esistono in due principali formati, che differiscono per la densità di pit e
land sulla spirale e, conseguentemente per la capacità: CD e DVD.

I CD (Compact Disk)
I CD (Compact Disk = Disco compatto) sono dischi a tecnologia ottica che utilizzano
un raggio laser di lunghezza d’onda di 780 nanometri (infrarosso) per la lettura e la
scrittura. La loro capacità è di 650 MB, che, con vari accorgimenti, può essere portata a
700 MB o anche oltre.
Ne esistono tre tipi: CD-ROM di sola lettura, CD-R registrabili e CD-RW riscrivibili.
Sono ancora diffusamente utilizzati per la distribuzione del software e per la
registrazione di musica, ma, data la loro relativa bassa capienza, tendono ad essere
sostituiti dai DVD come sistemi di archiviazione di massa.

I DVD (La sigla è ufficialmente priva di significato)


I DVD sono dischi a tecnologia ottica che utilizzano un raggio laser di lunghezza
d’onda di 650 nanometri (rosso) per la lettura e la scrittura. Ne esistono numerosi tipi,
che utilizzano standard differenti e capacità differenti.
 DVD-ROM, di sola lettura; ne esistono 4 formati, a seconda che utilizzino una
sola o entrambe le facce e che ciascuna faccia contenga un singolo strato riflettente
o un doppio strato (leggibili entrambi cambiando la messa a fuoco del laser):
Formato Strato Faccia Capacità
DVD-5 Singolo Singola 4,7 GB
DVD-9 Doppio Singola 8,5 GB
DVD-10 Singolo Doppia 9,4 GB
DVD-18 Doppio Doppia 17 GB
Nota: i formati DVD-5 e soprattutto DVD-9 sono molto diffusi per la distribuzione
di film. I formati DVD-10 e DVD-18 sono praticamente inutilizzati.

Versione 1.0 (3/5/2004) Pagina 15 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

 DVD registrabili e riscrivibili, esistono tre standard:


Formato Tipo Capacità Sponsor DVD Forum
DVD-R Registrabile 4,3 GB Pioneer Standard
DVD-RW Riscrivibile 4,3 GB Pioneer Standard
DVD+R Registrabile 4,3 GB Sony, Philips Respinto
DVD+RW Riscrivibile 4,3 GB Sony, Philips Respinto
DVD RAM Riscrivibile 4,7/9,4 GB Panasonic Standard
Nota: esiste una forte competizione tra gli standard –R e +R, nonostante
quest’ultimo non sia stato approvato dal DVD Forum. Il formato RAM è poco
utilizzato e relegato ad usi informatici, anche perché richiede che il disco sia
sigillato in una cartuccia.

Nota sulle capacità di memoria


L’unità di misura minima della memoria è il bit (binary digit = cifra binaria, ma bit
significa anche pezzettino), che può assumere valore 0 e 1 (si o no, acceso o spento,
etc…). I bit sono raggruppati in gruppi di 8, chiamati Byte, che costituiscono l’unità
base per la capacità di memoria, perché rappresentano il gruppo di bit ideale per
rappresentare un carattere (lettera, numero, etc...).
Poiché i computer basano la loro logica di funzionamento sulla numerazione binaria, i
multipli del Byte sono potenze di 2 e non di 10. Per motivi di praticità, si continuano ad
usare i multipli decimali classici delle altre branche dell’ingegneria (Kilo per mille,
Mega per un milione, Giga per un miliardo, etc…), associandoli alla potenza di due più
vicina al multiplo decimale.
Si ha pertanto la seguente situazione:
Unità Pari a Considerato comunemente
KB (KiloByte) 210 = 1.024 Byte Un migliaio di Byte
MB (MegaByte) 220 = 1.048.576 Byte Un milione di Byte
30
GB (GigaByte) 2 = 1.073.741.824 Byte Un miliardo di Byte
40
TB (TeraByte) 2 = 1.099.511.627.776 Byte Mille miliardi di Byte

Conseguentemente, 4,7 miliardi di Byte non corrispondono a 4,7 GB, ma a:

4.700.000.000 / 1.073.741.824 ≈= 4,38 GB

I produttori di DVD registrabili e riscrivibili, giocando su tale equivoco, vendono dischi


da 4,7 miliardi di Byte, illudendo gli utenti ingenui che si tratti di 4,7 GB, mentre in
realtà sono poco più di 4,3 GB.

Nota sul futuro dei dischi ottici


Nel corso del 2004 stanno per essere progressivamente introdotti DVD registrabili e
riscrivibili a doppio strato, sia nello standard +R che –R, con capacità finalmente eguale
a quella dei DVD-ROM (9,4 GB come i DVD-9).

Versione 1.0 (3/5/2004) Pagina 16 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Entro il 2005 dovrebbero diffondersi i DVD ad alta definizione (HD DVD) che
utilizzano un laser di lunghezza d’onda di 480 nanometri (laser blu) e che dovrebbero
avere una capienza oscillante tra i 25 ed i 50 GB.

Le memorie USB (Universal Serial Bus)


Le memorie USB (Universal Serial Bus = Autobus seriale universale) sono memorie di
tipo elettronico e sono rimovibili come i Floppy Disk. Si tratta di piccoli oggetti, delle
dimensioni massime di un evidenziatore (da cui il nome volgare Pen Drive =
Dispositivo a penna), che si inseriscono nella porta USB del PC, tramite la quale
ricevono sia il collegamento che l’alimentazione. La tecnologia utilizzata consente la
persistenza dei dati, ma non il loro utilizzo, anche in assenza di alimentazione.
Sono dotate di capacità di memoria molto più elevate di un Floppy Disk (in genere da
32 MB a 2 GB), in continua ascesa ed a costi sempre inferiori, per cui stanno
definitivamente sostituendo il Floppy Disk per le esigenze di trasferimento e trasporto
di dati.

2.4 Le periferiche

La tastiera
La tastiera è una periferica di input che consente l’immissione di testo. Ne esistono
versioni personalizzate per i diversi paesi, che si adattano alle diverse frequenze di
utilizzo delle lettere e comprendono i caratteri speciali del paese (ad esempio, le lettere
accentate per l’Italia.).
Si diffondono sempre più le tastiere wireless, che si collegano all’unità centrale tramite
onde radio, senza l’utilizzo di un cavo.

Il mouse
Il mouse è una periferica di input che costituisce il dispositivo di puntamento del PC. Il
mouse permette di puntare un oggetto grafico mostrato a video e, “cliccando” il tasto
sinistro, di attivare la funzionalità ad esso associato. Il mouse è dotato anche di un tasto
destro, che attiva funzionalità accessorie, come un menu di pop-up (apparizione), e
spesso di un terzo tasto. E’ inoltre dotato di una rotellina, che consente lo scorrimento
verticale della finestra in uso.
I tradizionali mouse con sfera vengono sempre di più sostituiti da mouse ottici che
rilevano il movimento tramite una fotocellula. Si diffondono inoltre sempre più i mouse
wireless che si collegano all’unità centrale tramite onde radio, senza l’utilizzo di un
cavo.

Il lettore ottico
Il lettore ottico è una periferica di input che legge i codici a barre ed il testo. E’
utilizzato per l’acquisizione veloce di etichette con codice a barre o di testo a
stampatello, in quest’ultimo caso associato a software di riconoscimento che garantisce

Versione 1.0 (3/5/2004) Pagina 17 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

una percentuale di riconoscimento dipendente dai caratteri utilizzati e dalla chiarezza


del testo.

Figura 3 – Struttura di un codice a barre

Lo scanner
Lo scanner è una periferica di input che acquisisce immagini. E’ dotato di una finestra
in formato A4 o A3 che fotografa l’immagine e, attraverso il software associato, lo
trasforma in uno dei formati digitali utilizzati in informatica. E’ utilizzato anche per
acquisire documenti di testo cartacei che vengono riconosciuti con appositi software.

Il monitor
Il monitor è una periferica di output che mostra la grafica generata dalla scheda video,
alla quale viene collegato. I monitor tradizionali utilizzano una tecnologia analogica
CRT (Cathode Ray Tube = Tubo a raggi catodici) ed hanno dimensioni che vanno dai
17” ai 21” (pollici, equivalenti a 2,54 cm.)
Si vanno diffondendo, a costi superiori ma in continuo calo, i monitor digitali LCD
(Liquid Crystal Display = Schermo a cristalli liquidi) che hanno il vantaggio della
profondità estremamente ridotta, per la mancanza di tubo catodico, e del consumo
ridotto, ma possiedono ancora una qualità dell’immagine inferiore ai CRT, soprattutto
per l’incapacità di riprodurre i neri profondi e l’effetto scia nelle immagini in rapido
cambiamento. Un ulteriore vantaggio dei monitor LCD è la presenza di una connessione
DVI (Digital Video Interface = Interfaccia video digitale), che consente di evitare
(purché anche la scheda video ne sia dotata) la conversione digitale/analogica dei
monitor CRT.

La stampante
La stampante è una periferica di output che stampa documenti multimediali. Esistono
diverse tecnologie; le più diffuse sono:
 Ad aghi, che utilizza una matrice di aghi per la stampa; monocromatica, lenta e
di bassa qualità, è oggi caduta in disuso e viene utilizzata solo per la stampa di
moduli continui;

Versione 1.0 (3/5/2004) Pagina 18 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

 Laser, che forma l’immagine mediante un raggio laser e la fissa sulla carta
utilizzando un toner; esistono versioni A4 ed A3, monocromatiche (molto diffuse)
ed a colori (molto costose); è veloce e di alta qualità ed è molto diffusa per la
stampa di documenti;
 A getto d’inchiostro, dotata di una testina che nebulizza goccioline d’inchiostro
sulla carta; è in genere a colori, con cartucce d’inchiostro per il nero ed i tre colori
principali (giallo, magenta e ciano); esistono anche versioni per stampa fotografica a
sei colori; produce stampe di alta qualità, ma è molto lenta e supporta solo il formato
A4; è in genere utilizzata per usi amatoriali, anche per il ridotto costo iniziale,
spesso vanificato però dall’alto costo delle cartucce (che a volte superano il costo
della stampante).

Le casse
Le casse sono periferiche di output che riproducono l’audio prodotto dalla scheda audio
alla quale si collegano. Sono in genere amplificate e riproducono un suono stereo.
Si vanno sempre più diffondendo sistemi di casse a più vie, in genere 5.1 per utilizzi
Home Theater, con due casse anteriori per la musica, un canale centrale per i dialoghi,
due casse posteriori per gli effetti ed un subwoofer per le basse frequenze.

Versione 1.0 (3/5/2004) Pagina 19 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

3 Il Software
Il software è l’insieme di tutte le componenti intangibili di un elaboratore, cioè i
programmi scritti per farlo funzionare e memorizzati nell’hardware. Senza il software
l’hardware non può svolgere alcuna funzione.

Classificazione del software


Il software si può distinguere in due grandi categorie:
 Software di base o di sistema: permette al computer di avviarsi, gestisce le
risorse del sistema, gestisce il file system, effettua il monitoraggio del sistema,
costituisce l’interfaccia con gli utenti ed il software applicativo, svolge diverse
funzioni di utilità;
 Software applicativo: svolge le funzionalità richieste dagli utenti; si distingue in
software standard e dedicato in base alla specializzazione;

Figura 4 – Classificazione del software

3.1 Il software di sistema


Il software di sistema comprende:
 Sistema operativo;
 Traduttori;
 Programmi di utilità.

Versione 1.0 (3/5/2004) Pagina 20 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Il Sistema Operativo
Il sistema operativo (d’ora in poi S.O.) permette al computer di avviarsi, gestisce le
risorse del sistema, gestisce il file system, effettua il monitoraggio del sistema,
costituisce l’interfaccia con gli utenti ed il software applicativo.
L’esigenza di un S.O. discende dalla complessità e ricchezza dell’hardware che un
computer mette a disposizione al software applicativo. I diversi programmi applicativi
che vengono eseguiti in un computer hanno il fine di offrire ai propri utenti le
funzionalità richieste, utilizzando le risorse hardware a disposizione. In assenza di un
intermediario che filtri le richieste, assegni le priorità e “regoli il traffico” dei dati,
ciascun programma applicativo tenderebbe ad appropriarsi e a detenere le risorse
hardware di cui ha bisogno; si genererebbe così una congestione che porterebbe
all’arresto dei processi (deadlock = punto morto).
Il S.O. è l’unico programma autorizzato ad accedere alle risorse hardware, mediando tra
le richieste dei programmi applicativi. In presenza di un conflitto di esigenze, il S.O.
ripartisce le risorse tra i programmi, assegnandole a ciascuno per finestre temporali
(time slicing = affettamento del tempo), secondo priorità che sono stabilite dagli
amministratori del sistema. In tal modo, tutti i processi applicativi percepiscono un
accesso continuo alle risorse hardware, come se ne avessero la disponibilità esclusiva.
In sintesi, i compiti di un S.O. sono:
 Avviamento del computer, caricando in memoria centrale (RAM) tutte le
informazioni necessarie alla gestione e portando a regime tutti i processi necessari
alla gestione delle risorse del sistema;
 Gestione delle risorse hardware del sistema; il S.O. suddivide il tempo in fette
sottili (time slicing), assegnando le risorse contese ad ogni processo per quella fetta
di tempo; in tal modo si realizza il multitasking (multicompito), ossia è come se più
processi venissero elaborati “contemporaneamente”;
 Gestione di una risorsa molto importante: lo spazio su disco, tramite
un’organizzazione che si chiama file system (vedi sotto);
 Monitoraggio della corretta esecuzione dei processi e dell’utilizzo delle risorse;
 Interfaccia ai programmi applicativi ed agli utenti direttamente connessi
(Amministratori, operatori) per accedere alle risorse hardware ed al file system.

I S.O. sono composti da un blocco più “interno”, denominato kernel (nocciolo, gheriglio
della noce), che gestisce direttamente le risorse hardware e da una shell (guscio) che
costituisce l’interfaccia dei programmi e degli utenti con il kernel.

Il S.O. risiede normalmente sull’Hard Disk del computer.

Il BIOS (Basic Input/Output System) e il Bootstrap


All’accensione del computer si ha la seguente situazione di stallo:
 la memoria centrale (RAM) non contiene alcun programma e alcun dato perché
è volatile;

Versione 1.0 (3/5/2004) Pagina 21 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

 i programmi necessari ad avviare il computer (che sono parti del sistema


operativo) risiedono sull’Hard Disk;
 il processore (CPU) non può eseguire i programmi sull’Hard Disk perché
quest’ultimo è troppo lento per lui; può dialogare solo con la RAM, ma questa è
vuota;
 il sistema non può partire.
Per superare questa impasse, è stato ideato il BIOS (Basic Input/Output System =
Sistema di input/output di base). Il BIOS è un programma che risiede sulla ROM, al
quale il microprocessore cede il controllo all’accensione del computer. Il BIOS
dapprima effettua il test di tutti i componenti hardware, quindi carica in memoria
centrale le parti del S.O. indispensabili ad avviare il computer.
L’operazione di avviamento tramite BIOS si chiama Bootstrap (è un anello attaccato
alla parte superiore di uno stivale, utile per tirarlo verso l’alto e calzarlo), perché risolve
l’impasse descritta sopra, ricordando l’inverosimile capacità del mitico Barone di
Munchhausen di sollevarsi dalle acque del mare tirandosi per gli anelli degli stivali.
Il BIOS costituisce inoltre l’interfaccia di basso livello tra il S.O. e i singoli componneti
hardware. E’ il BIOS che si occupa dei dettagli del colloquio con i dispositivi hardware
e che si adatta ai cambiamenti di questi ultimi.
Il BIOS è una parte integrante del computer, come l’hardware, perchè risiede sulla
ROM ed è quindi preistallato sulla scheda madre. Per questo motivo il BIOS viene
chiamato firmware (roba salda, stabile).

Il File System
Lo spazio su disco è una delle più importanti risorse hardware che il S.O. deve gestire e
far condividere ai processi. Ciascuna applicazione ha necessità di memorizzare sul disco
i programmi che dovrà eseguire quando viene attivata ed i dati utilizzati. Inoltre, gli
utenti hanno la necessità di memorizzare i propri dati (ad esempio, documenti).
Il S.O. organizza lo spazio su disco secondo una struttura gerarchica ad albero composta
da una directory (Cartella) root (radice) e da directory che via via si ramificano da
questa, le quali contengono i singoli file corrispondenti ai singoli programmi esecutivi o
ai singoli documenti. Questa organizzazione si chiama File System (sistema di file).
E’ compito del S.O. gestire l’aggiornamento delle directory e dei file nel File System,
consentendo di creare, modificare e cancellare file ed intere directory secondo le
richieste dei programmi applicativi e degli utenti, facilitate tramite un’interfaccia.

Sistemi Operativi ed Architetture


I S.O. svolgono ruoli diversi in dipendenza delle diverse architetture dei sistemi
informatici.
Inizialmente, esisteva una sola architettura, detta Mainframe, la cui caratteristica
fondamentale è la monoliticità. In questa architettura, un grosso elaboratore centrale,
detto appunto Mainframe, effettua tutte le elaborazioni, mentre i terminali di accesso
periferici sono definiti “stupidi”, in quanto non sono in grado di effettuare elaborazioni

Versione 1.0 (3/5/2004) Pagina 22 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

in proprio, ma si limitano a dialogare con l’unità centrale, inviando gli input digitati da
tastiera e riversando gli output ricevuti su video o su stampante.
In questa architettura monolitica, il S.O. del Mainframe gestisce tutto, mentre i terminali
stupidi non hanno bisogno di un S.O. perché privi di risorse proprie.
Negli anni ’80 si è diffusa una nuova architettura, oggi dominante, denominata
Client/Server. In questa architettura sia l’elaboratore centrale (Server), che quelli
periferici (Client) sono dotati di proprie risorse e svolgono proprie elaborazioni. Ciò che
cambia è il ruolo. Il Server in genere detiene la basi-dati e le logiche applicative, che
sono comuni a tutto il sistema. Il Client effettua localmente le elaborazioni di interfaccia
e di logica locale, sgravando le linee di comunicazione da un traffico pesante e
ripetitivo.
In questa architettura, sia il Server che il Client hanno la necessità di un S.O., perché
entrambi detengono risorse e svolgono processi, ma il ruolo è diverso. I S.O. Server
sono più complessi, supportano hardware più potenti (multiprocessore) e gestiscono la
concorrenza di molti utenti. I S.O. Client sono più semplici ed orientati prevalentemente
al singolo utente.

Sistemi Operativi Client


Il S.O. Client di gran lunga più diffuso al mondo e Microsoft Windows, giunto alla
versione XP. Il suo vantaggio principale sta nella semplicità d’uso, dovuta anche
all’ottima interfaccia grafica. Il punto debole principale dei sistemi Windows è sempre
stata la stabilità, ossia la capacità di funzionare a lungo senza bloccarsi anche sotto un
utilizzo gravoso. L’attuale versione XP sembra comunque molto migliorata sotto questo
aspetto.
I sistemi Windows sono eredi del S.O. montato sul primo PC IBM, e cioè Microsoft
DOS (Disk Operating System = Sistema operativo a dischi). Questo sistema, che
utilizza un’interfaccia a caratteri, ha sempre posto problemi di difficoltà d’uso per i
neofiti.
Tra gli altri S.O. Client è opportuno citare il sistema Linux, di cui si parlerà più avanti,
anche se la sua diffusione nel settore dei Client è improbabile per la sua maggiore
complessità e la minore disponibilità di software rispetto a Windows.

Sistemi Operativi Server


Nel campo dei S.O. Server la situazione è più complessa. Microsoft Windows Server,
oggi giunto alla versione 2003, è uno tra i più diffusi, ma esistono numerosi competitor.
Una famiglia di S.O. Server che da sempre fa concorrenza a Windows è quella dei
sistemi UNIX. Lo UNIX originario nacque nei Bell Laboratories nel 1969, per offrire al
mercato, come suggerisce il nome, un S.O. unico e definitivo. In realtà, gli eventi
successivi hanno visto il disgregarsi di UNIX in numerosi S.O. proprietari, imparentati
ma incompatibili, che girano su hardware differenti, sponsorizzati dai relativi produttori
(Sun, IBM, HP, Digital, Sco/Intel, etc…).
Rispetto a Windows i sistemi UNIX sono più robusti, ma richiedono personale più
specializzato per l’utilizzo. Inoltre, l’alto costo dell’hardware necessario (almeno per
alcuni) e la frammentazione di versioni e standard ne limitano la diffusione.

Versione 1.0 (3/5/2004) Pagina 23 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Un S.O. che invece sta vivendo da alcuni anni un vero e proprio boom di diffusione
nell’ambito Server, costituendo una seria minaccia allo strapotere di Microsoft, è Linux,
che, per la sua natura di fenomeno travolgente, che va al di là degli stessi confini
informatici, merita una trattazione a parte.

Linux e l’Open Source


Il 25/8/1991 uno studente universitario di Helsinki di nome Linus Torvalds pubblicò
uno storico messaggio su un forum dedicato agli utenti del S.O. Minix (un S.O. tipo
UNIX sviluppato per fini didattici per il processore Intel 8086, lo stesso su cui era
basato il primo PC IBM). Il messaggio diceva:

Hello everybody out there using minix -


I'm doing a (free) operating system
(just a hobby, won't be big and professional
like gnu) for 386(486) AT clones.

La dichiarazione dai toni in sordina (just a hobby, won’t be big and professional like
gnu = solo un hobby, non sarà grosso e professionale come gnu) era destinata in realtà a
cambiare la storia dell’informatica. I motivi fondamentali erano:
 Torvalds si apprestava a realizzare un S.O. di tipo UNIX per un processore (Intel
80386) che era in quel momento il processore più avanzato per PC e quindi anche il
più diffuso;
 Torvalds utilizzò per il suo S.O. componenti del progetto GNU e ne adottò la
filosofia.

GNU (Gnu is Not Unix) è un progetto, avviato nel 1983 da Richard Stallman, un
professore del MIT, per lo sviluppo di un S.O. di tipo UNIX il cui codice, a differenza
degli altri S.O., non era tenuto gelosamente segreto, ma reso pubblico, con libertà per
ciascuno di copiarlo, modificarlo e ridistribuirlo. Il S.O. viene infatti distribuito con
licenza GPL (General Public License = Licenza pubblica generale), che consente agli
utenti non solo di leggere in chiaro il codice del software, ma addirittura di modificarlo,
se questi ritengono di essere in grado di migliorarlo. L’unica condizione imposta dalla
licenza GPL è che le eventuali modifiche siano anch’esse distribuite con licenza GPL,
in modo che altri possano modificarle e ridistribuirle e così via in modo ricorsivo (anche
la sigla GNU è ricorsiva).

Torvalds adottò la filosofia del progetto GNU e, con l’aiuto di un numero sempre
crescente di appassionati connessi da Internet in un unico gruppo di sviluppo mondiale,
sviluppò il kernel del nuovo S.O. che chiamò, dalla sintesi del suo nome di battesimo e
di UNIX, Linux. Linux, oltre ad essere di dominio pubblico e modificabile è anche
gratuito (condizione non implicita nella licenza GPL), anche se le sue distribuzioni
(kernel + shell + accessori) da parte di aziende specializzate (come Red Hat) hanno un
costo, se pur molto limitato (giustificato da extra e utility aggiunte). Il kernel è
scaricabile gratuitamente da Internet.
Ben presto l’idea di un software gratuito e di dominio pubblico si estese oltre i confini
dei S.O., abbracciando praticamente tutti i tipi di software e prendendo la
denominazione di Open Source (letteralmente sorgente aperto).

Versione 1.0 (3/5/2004) Pagina 24 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Il fenomeno dell’Open Source si è abbattuto come un maglio sullo “statu quo”


dell’industria informatica. Basti pensare a come Microsoft venda a caro prezzo le
proprie licenze software e conservi gelosamente in cassaforte i propri codici sorgente,
che ovviamente non sono modificabili, pena l’incorrere nelle sanzioni di legge. Inoltre,
la diffusione mondiale del software Open Source e l’entusiasmo degli sviluppatori che,
spesso solo per la soddisfazione personale di risolvere un “bug” o di migliorare una
funzionalità, si prestano gratuitamente ad intervenire sul software, ha creato una
situazione apparentemente paradossale. La risoluzione delle problematiche sui software
Open Source è più semplice e rapida di quella relativa ai software a pagamento, dove
spesso capita che il produttore non sia interessato a risolvere la problematica, perché gli
utenti coinvolti sono troppo pochi, perché riguarda una versione non più in commercio,
etc…
Di fronte a tale fenomeno, le grandi aziende informatiche hanno reagito con strategie
diverse. Microsoft è rimasta acerrima nemica dell’Open Source, considerandolo una
minaccia alla propria esistenza e sostenendo che comunque i suoi costi sono superiori a
quelli dei prodotti Microsoft, a causa della minore facilità d’uso che richiede maggiori
costi di formazione del personale. I concorrenti, come IBM, HP, etc… hanno invece,
dopo un periodo di incertezza, abbracciato il S.O. Linux, creandone distribuzioni
personalizzate per i propri Server ed usandolo come arma per limitare lo strapotere di
Microsoft. SCO, produttrice di un S.O. di tipo UNIX per processori Intel e quindi
fortemente danneggiata dal fenomeno Linux, ha invece avviato una causa contro lo
stesso concetto di GPL, che secondo questa azienda viola i diritti di copyright.
Oggi il S.O. Linux si diffonde sempre di più sui Server di tutte le aziende ed ha anche
ottenuto importanti riconoscimenti presso la Pubblica Amministrazione europea, che, in
un numero sempre maggiore di casi, lo ha adottato come standard di preferenza.

I traduttori
Il software di sistema comprende altre tipologie di programmi, che si affiancano e
completano i S.O. Tra questi vi sono i programmi traduttori.
Tutti i programmi che girano su un computer sono una lista di istruzioni che vengono
eseguite dal processore. Affinché il processore sia in grado di comprendere le istruzioni,
queste devono essere codificate nel linguaggio del processore, detto linguaggio
macchina. La lista di istruzioni scritte in linguaggio macchina si chiama codice
eseguibile, perché è immediatamente eseguibile dal processore.
Il linguaggio macchina consiste di una serie di istruzioni espresse come codici
esadecimali. E’ estremamente difficile per un essere umano programmare nell’astruso
linguaggio macchina e, se questa fosse l’unica possibilità, solo un ristretto numero di
tecnici altamente specializzati sarebbe in grado di scrivere programmi (come avveniva
agli albori dell’informatica).
Per facilitare il compito dei programmatori sono stati inventati linguaggi più vicini
all’uomo, che in genere fanno uso di parole inglesi e di costrutti logico-matematici
(come if-then-else). Tramite questi linguaggi, detti evoluti (ne esistono moltissimi, tra i
più diffusi possiamo citare Cobol, Basic, C, Java), i programmatori scrivono un codice,
detto sorgente, che non è direttamente comprensibile dal processore. Programmi

Versione 1.0 (3/5/2004) Pagina 25 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

specializzati, detti traduttori, convertono il codice sorgente scritto nel linguaggio


evoluto in linguaggio macchina, producendo il codice eseguibile.
Esistono due strategie di traduzione e due categorie di traduttori:
 I compilatori: agiscono prima dell’esecuzione del programma, in una fase che si
chiama compilazione; essi traducono il codice sorgente di un intero programma in
codice eseguibile (detto compilato) e lo ottimizzano tenendo conto delle eventuali
ricorrenze di istruzioni, ridondanze, ingenuità del programmatore; il codice
eseguibile viene poi eseguito come se fosse stato scritto all’origine in linguaggio
macchina;
 Gli interpreti: agiscono direttamente durante l’esecuzione del programma,
traducendo un’istruzione alla volta dal linguaggio evoluto al linguaggio macchina;
quindi l’istruzione tradotta viene passata al processore per l’esecuzione.

Ciascuna strategia ha vantaggi e svantaggi. I compilatori sono in grado di ottimizzare la


traduzione perché hanno la visibilità contemporanea di tutto il programma, ma
richiedono una fase aggiuntiva di compilazione ogni volta che il programma viene
modificato anche in una sola istruzione.

Gli interpreti non richiedono la fase di compilazione, ma non sono in grado di


ottimizzare il programma perché ne vedono un’istruzione alla volta.

I programmi di utilità
Il software di sistema comprende anche una serie (sempre più articolata e complessa
con l’evolversi dei S.O.) di programmi che svolgono funzioni accessorie, detti
programmi di utilità.
Ne esistono moltissimi, per gli scopi più vari. Tra i più importanti si citano:
 Le utilità di back-up (appoggio, sostegno), che permettono di salvare il
contenuto dei dischi su supporti rimovibili (dischi ottici) o su altri computer addetti
allo scopo e di ripristinarli (restore = ripristino) in caso di necessità (ad esempio
guasto irreparabile del disco fisso);
 Manutenzione del disco fisso: controllo dello stato di frammentazione,
deframmentazione, settori danneggiati, etc…
 Impostazione delle caratteristiche di rete del computer: indirizzi, protocolli,
connessioni, etc…
 Monitoraggio dei processi in corso e loro amministrazione;
 Gestione delle periferiche, soprattutto stampanti;
 Esecuzione di file multimediali;
 Guida on-line del sistema operativo.

Versione 1.0 (3/5/2004) Pagina 26 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

3.2 Il software applicativo


Il software applicativo è deputato a realizzare le funzionalità richieste dagli utenti. E’ il
software che fa qualcosa di utile dal punto di vista dell’utente.
Può essere classificato in due grandi categorie:
 Software applicativo standard;
 Software applicativo dedicato.

Il software applicativo standard


Il software applicativo standard copre esigenze diffuse e comuni a vaste categorie di
utenti. Esso viene quindi realizzato sulla base di specifiche ricavate dalla conoscenza
generale della problematica, fornita da esperti del settore, o da indagini di mercato.
Viene in genere offerto in vendita in configurazioni standard, dette pacchetti applicativi,
che sono valide per la grande maggioranza degli utenti e che sono spesso
personalizzabili dall’utente stesso per coprire eventuali esigenze residue.
In base all’ampiezza della categoria di utenti a cui il software standard si rivolge, esso
può essere ulteriormente suddiviso in tre sottocategorie:
 Il software standard generico si rivolge praticamente a tutti gli utenti, coprendo
esigenze di base di quasi tutte le categorie lavorative; comprende i cosiddetti
software di produttività individuale, che supportano il lavoro di ufficio del singolo
impiegato, (elaboratori di testo, fogli elettronici, etc…, come ad esempio la suite
Microsoft Office), i software di elaborazione grafica (come Adobe Photoshop), i
database (come Access, Oracle, etc…);
 Il software standard specifico si rivolge a categorie di utenti specializzate, ma
comunque diffuse pressoché in tutte le aziende; comprende le applicazioni per la
gestione della contabilità, per il CAD (Computer Aided Design), per la
pianificazione della produzione, etc…;
 Il software di settore si rivolge a categorie specializzate che si trovano solo in
specifici settori aziendali; comprende, ad esempio, i sistemi per la gestione dei
trasporti, quelli per la gestione ospedaliera, etc…

Il software applicativo dedicato


Il software applicativo dedicato copre esigenze specifiche di un particolare cliente. Esso
viene quindi sviluppato su misura, in base alle specifiche ricavate dalle interviste
effettuate con i futuri utenti. Conseguentemente il suo costo è molto superiore a quello
del software standard e viene prodotto solo quando non è possibile o non è accettato dal
cliente l’utilizzo di un software standard, magari personalizzato.
Esempi di software dedicato sono i grandi sistemi di automazione degli aeroporti, quelli
di Help Desk e Call Center, etc…

Versione 1.0 (3/5/2004) Pagina 27 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

4 Le reti
Le reti sono il complesso di apparecchiature informatiche e di telecomunicazione
(computer compresi) interconnesse tra loro tramite mezzi di comunicazione.
Generalmente, tuttavia, quando si parla di rete, si fa comunemente riferimento alla parte
della rete che garantisce il collegamento tra i computer (escludendo questi ultimi).
Le reti consentono ai computer di scambiarsi messaggi e dati.

4.1 Tipologie di reti


La principale classificazione delle reti è la differenziazione tra reti locali e reti
geografiche.

Reti locali – LAN (Local Area Network)


Le reti locali (LAN) collegano i computer all’interno di uno stesso edificio o tra edifici
vicini appartenenti alla stessa area, ma comunque senza mai attraversare il suolo
pubblico.
Le reti locali possono avere diverse topologie:
 ad anello, nelle quali i computer sono collegati da un anello chiuso; i computer
adiacenti si scambiano messaggi direttamente, gli altri indirettamente tramite quelli
intermedi;
 a bus, nelle quali i computer sono collegati ad un cavo principale detto bus; i
messaggi veicolati dal bus vengono raccolti e scaricati solo dai dispositivi interessati
a quei messaggi, mentre gli altri dispositivi li ignorano; il nome deriva dall’analogia
con il comportamento degli autobus, che caricano e scaricano ad ogni fermata solo i
passeggeri interessati a quella fermata;
 a stella, nelle quali i tutti computer sono collegati ad un’apparecchiatura centrale
che comunica singolarmente con tutti, facendo da tramite tra i computer;
 a maglia, nelle quali tutti i computer sono collegati a due a due tra di loro,
offrendo una grande ridondanza di collegamenti.
Ciascuna tipologia ha vantaggi e svantaggi: per esempio a maggiore ridondanza e quindi
affidabilità corrispondono maggiori costi e complessità. Inoltre, alcune reti sono più
adatte di altre a particolari edifici e collegamenti.

Versione 1.0 (3/5/2004) Pagina 28 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Figura 5 – Topologie di reti locali (LAN)

Inoltre le reti locali possono utilizzare diversi standard tecnologici, sui quali si basa la
trasmissione fisica del segnale. I più importanti sono:
 Token Ring (anello a gettone), utilizzato nelle reti ad anello; i computer che
vogliono trasmettere un messaggio lo inseriscono nell’anello insieme ad un
“gettone” (una stringa di bit); quando il computer destinatario preleva il messaggio,
rimuove il gettone comunicando così l’avvenuto recapito del messaggio;
 Ethernet (da ether = etere, la sostanza che si riteneva pervadesse l’universo e
consentisse la trasmissione della luce prima che Einstein formulasse la relatività
ristretta; secondo gli inventori, la trasmissione dei segnali via cavo era analoga alla
trasmissione della luce nell’etere); la rete Ethernet trasmette i segnali a 10 Mbps
(Mega bit per secondo), utilizzando cavi coassiali o il doppino telefonico.
Oggi le reti locali più utilizzate sono a stella (con eventuali sotto stelle) basate su
standard Ethernet.

Versione 1.0 (3/5/2004) Pagina 29 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Si vanno lentamente diffondendo le reti locali WLAN (Wireless LAN = LAN senza
fili), dove il mezzo di trasmissione sono le onde elettromagnetiche trasmesse secondo
uno standard della famiglia 802.11x, detto comunemente Wi-Fi (Wireless Fidelity =
Fedeltà senza fili). Queste reti permettono il collegamento dei computer all’interno di
un’area delle dimensioni di un edificio, senza bisogno di collegamenti fisici e
consentendo lo spostamento anche continuo dei computer.
Le reti Wi-Fi sono ideali per gli edifici a tutela storica ed artistica, dove non è
consentito praticare fori o lasciare canalette in vista. Sono inoltre ideali per utenti dotati
di PC portatili, che hanno la possibilità di connettersi semplicemente entrando nell’area
servita dal Wi-Fi. Tra gli svantaggi, si segnala la maggiore difficoltà di garantire la
sicurezza della rete, visto che i dati viaggiano per etere e l’inevitabile “inquinamento
elettromagnetico”, visto che è molto difficile adattare la portata della rete alla geometria
dell’edificio o del locale servito. Molti locali pubblici (aeroporti, hotel, fast food,
supermercati) soprattutto negli Stati Uniti offrono un servizio Wi-Fi per la connessione
ad Internet, gratuito o a pagamento, ai propri clienti. Questi siti sono noti come “Hot
Spot” (Punti Caldi).
Un’altra tipologia di rete wireless ad onde elettromagnetiche, è quella basata sulla
tecnologia Bluetooth. Questa tecnologia supporta piccole reti locali a corto raggio (max.
10 metri) ed è oggi utilizzata principalmente per la connessione wireless di dispositivi
diversi che si trovano nella stessa stanza o in stanze adiacenti, come PC, stampanti,
palmari, telefoni cellulari, etc…
Infine, esiste un’altra tecnologia wireless basata sui raggi infrarossi, la quale supporta
piccolissime reti locali tra dispositivi allineati a vista, come PC e stampante, PC e
palmare, etc…

Reti geografiche – WAN (Wide Area Network)


Le reti geografiche (WAN) connettono gli elaboratori su vaste aree geografiche e sono
in genere integrate con le reti di fonia, o comunque messe a disposizione dagli stessi
gestori (ad esempio Telecom).
Dal punto di vista dell’esclusività, si distinguono reti condivise, che utilizzano la stessa
rete telefonica dove transita il traffico di fonia e reti dedicate, che utilizzano linee
riservate all’utente che usufruisce del collegamento (oggi poco usate).
Dal punto di vista della tecnologia, si distinguono linee analogiche e digitali. Le più
diffuse sono:
 la classica linea telefonica analogica presente comunemente nelle case, costituita
dal doppino telefonico intrecciato con presa telefonica (tripolare, in disuso, o
l’attuale RJ-11); queste linee vengono utilizzate con un MODEM (MODulatore
DEModulatore), un apparecchio che converte i segnali digitali del computer in
segnali analogici per la linea telefonica e viceversa; il MODEM fornisce velocità di
trasmissione basse, fino a 56 Kbps (Kilo bit per secondo);
 la linea digitale ISDN (Integrated Services Digital Network = Rete digitale di
servizi integrati), utilizzata da aziende e uffici, che trasmette voce e dati in formato
digitale sul doppino telefonico tramite un ISDN Adapter (Adattatore, detto
volgarmente “modem” ISDN); affinché due utenti possano comunicare occorre che

Versione 1.0 (3/5/2004) Pagina 30 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

entrambi abbiano una linea ISDN; la velocità supportata sale ad un massimo di 128
Kbps; oggi la diffusione di linee ISDN è in calo a favore delle linee xDSL;
 la famiglia di connessioni digitali xDSL (Digital Subscriber Line = Linea
Abbonato Digitale); questa tecnologia innovativa consente trasmissioni di voce e
dati ad alta velocità sul doppino telefonico, purché l’utente si trovi vicino alla
centrale telefonica (last mile = ultimo miglio); inoltre la connessione dei dati è
sempre attiva, indipendentemente dall’utilizzo della comunicazione vocale
(telefonata); il principio della tecnologia DSL è quello di superare il collo di
bottiglia della trasmissione analogica che, essendo stata ideata per trasmettere la
voce, utilizza solo una ristretta banda dello spettro di frequenze supportate dal
doppino telefonico; DSL invece trasmette le informazioni digitalmente sfruttando
tutta la banda del doppino telefonico e separandola tra parte dati (di gran lunga
prevalente) e la parte voce; DSL può raggiungere una velocità massima di 6,1 Mbps
(Mega bit per secondo); richiede che l’utente istalli un DSL Adapter (volgarmente
chiamato “modem” DSL); esistono numerosi standard della famiglia xDSL; tra i più
diffusi citiamo:
o ADSL (Asymmetric DSL) è una tecnologia asimmetrica, che riserva una
banda molto più ampia al downstream (flusso da centrale a utente) rispetto che
all’upstream (flusso da utente a centrale); è ideale per la navigazione casalinga
su Internet, dove la mole dei dati in ricezione è molto più alta di quella dei dati
inviati; ADSL consente una velocità massima di 6,1 Mbps in downstream e 640
Kbps in upstream;
o HDSL (High bit rate DSL = DSL ad alto tasso di bit) è una tecnologia
simmetrica, che garantisce velocità fino a 2,048 Mbps in entrambe le direzioni a
costi relativamente bassi ed è sempre più diffusa presso le aziende.
Esistono inoltre altre tecnologie di rete geografica, che utilizzano mezzi diversi dal cavo
elettrico/telefonico: collegamenti via fibra ottica (il mezzo è la luce); collegamenti via
satellite (il mezzo sono le onde elettromagnetiche); collegamenti via ponti radio (il
mezzo sono ancora le onde elettromagnetiche), etc…

4.2 Elementi costituenti una rete


Indipendentemente dalla tipologia, gli elementi che costituiscono una rete sono sempre:
 I nodi della rete;
 Il mezzo di trasmissione della rete;
 Le apparecchiature di rete;
 I protocolli di comunicazione.

I nodi della rete


I nodi della rete sono i punti di connessione tra le tratte. Un nodo può essere:
 terminale, nel qual caso si tratta di uno dei computer collegati;

Versione 1.0 (3/5/2004) Pagina 31 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

 intermedio o di ridistribuzione, la cui funzione è quella di ricevere un


messaggio, riconoscere il destinatario e reinstradarlo verso quest’ultimo; in genere, è
un’apparecchiatura di rete (vedi sotto).
Perché un computer possa collegarsi in rete, costituendo un nodo terminale, deve
possedere un dispositivo di collegamento ed il relativo software.
La tipologia del dispositivo di collegamento dipende dalla tipologia di rete. Per il
collegamento ad una LAN, il computer deve disporre di una scheda di rete; se la LAN è
Wi-Fi, il computer deve disporre di una scheda 802.11b.
Per il collegamento ad una WAN esistono molte più possibilità. Il collegamento
potrebbe avvenire tramite una LAN intermediaria (come avviene nelle aziende), per cui
serve la classica scheda di rete. In caso di collegamento diretto alla rete telefonica, serve
un MODEM tradizionale se si utilizza la fonia tradizionale, un adattatore ADSL se si
utilizza questa tecnologia, uno ISDN per questi tipo di connessioni, etc…

Il mezzo di trasmissione della rete


Esistono numerosi mezzi di trasmissione fisici per le reti. Si citano:
 Il cavo coassiale (come quello dell’antenna TV), utilizzato per le LAN Ethernet,
oggi in disuso;
 Il doppino telefonico, utilizzato per le LAN e per le WAN basate sulla rete di
fonia;
 La fibra ottica, utilizzata per LAN e WAN a larga banda (alta velocità);
 I raggi infrarossi, utilizzati per piccole e piccolissime LAN senza fili ma a vista;
 Le onde elettromagnetiche, utilizzate per LAN medie (Wi-Fi) e piccole
(Bluetooth) e WAN (satellite, ponti radio) senza fili (wireless);

Le apparecchiature di rete
Le apparecchiature di rete realizzano i nodi intermedi della rete, consentendo il
collegamento dei vari tronconi, l’instradamento dei dati, la regolamentazione degli
accessi di una rete interna da e verso l’esterno, etc…
I più diffusi sono:
 Gli Hub (letteralmente mozzo di ruota) di una rete locale, dove convergono i
cavi provenienti dai computer (da cui il nome) e che provvedono a regolare il
traffico dei messaggi garantendo che essi giungano dal mittente ai destinatari;
 Gli Switch (interruttore), che istradano i messaggi in transito in base agli
indirizzi fisici di destinazione; la loro funzione si sovrappone in gran parte a quella
degli Hub, ma possiedono un maggiore livello di “intelligenza”;
 I Router (instradatore), ubicati al confine tra due reti, che ricevono i messaggi,
determinano l’indirizzo del prossimo nodo in base alle condizioni della rete e
reindirizzano i messaggi verso di essi; i messaggi rimbalzano da un Router all’altro
fino ad arrivare a destinazione;

Versione 1.0 (3/5/2004) Pagina 32 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

 I Gateway (porta), che rappresentano i punti di ingresso in un’altra rete; un


Gateway può essere un computer, un Router, uno Switch, etc...
 I Firewall (porta tagliafuoco), che proteggono le reti interne dai possibili attacchi
provenienti dall’esterno;
 I Proxi (computer prossimale) che regolano l’accesso degli utenti di un rete
interna al mondo esterno.

I protocolli di comunicazione
Quando due entità vogliono comunicare devono prima stabilire le modalità con cui
avverrà il colloquio. Queste comprendono, ad esempio, il modo con cui la
conversazione viene avviata, le modalità con cui la parola viene passata da un
interlocutore all’altro, la distinzione tra una richiesta, una risposta e un’affermazione, le
modalità di chiusura temporanea o definitiva della conversazione, etc…
Perché due computer possano dialogare occorre stabilire tutti questi e molti altri dettagli
relativi alle modalità di dialogo: occorre cioè concordare un insieme di regole, ossia un
protocollo di comunicazione (dal greco protocollon, un foglietto accluso ai manoscritti
per descriverne il suo contenuto).
I protocolli di comunicazione coprono diversi aspetti della comunicazione, da quelli più
strettamente legati al mezzo fisico, a quelli concernenti gli aspetti logici della
trasmissione dei dati fino agli aspetti applicativi che riguardano gli standard di
trasmissione dei dati. A questi diversi aspetti, chiamati livelli di comunicazione,
corrispondono protocolli diversi, che stabiliscono lo standard di comunicazione per
quello livello.
Gli istituti di standardizzazione internazionale hanno disegnato uno stack (pila) di 7
livelli di protocolli di comunicazione, chiamato lo stack ISO/OSI (International
Standard Organization/Open System Interconnection), che costituisce un modello di
riferimento a 7 livelli dove collocare i protocolli realmente esistenti.

Versione 1.0 (3/5/2004) Pagina 33 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Figura 6 – Lo stack ISO/OSI

Lo stack ISO/OSI prevede 7 livelli che vanno dagli standard fisici (livello 1) a quelli
applicativi (livello 7). Ogni livello acquisisce gli standard del livello inferiore, aggiunge
i propri e li trasmette al livello superiore. I livelli sono divisi in due gruppi. Il gruppo di
3 livelli inferiori specifica gli standard di rete, cioè gli standard utilizzati dai messaggi
per circolare sulla rete. Il gruppo di 4 livelli superiori specifica gli standard utente, cioè
quelli utilizzati in fase di consegna del messaggio allo specifico utente. Quando un
messaggio che circola sulla rete trova il suo destinatario, accede ai livelli superiori per
le modalità di consegna.
I livelli stabiliscono i seguenti standard:
 Livello 1 - il livello fisico: stabilisce gli standard di trasmissione del flusso di bit
nel mezzo di rete a livello meccanico ed elettrico (ad esempio, potenziale elettrico);
 Livello 2 – il livello data-link: stabilisce gli standard di sincronizzazione per il
livello fisico e regola le stringhe di bit (ad esempio, che fare se una stringa contiene
molti 1 consecutivi ?);
 Livello 3 – il livello di rete: gestisce l’instradamento dei dati in entrata ed uscita,
identificando i nodi della rete con un indirizzo univoco (ad esempio indirizzo IP);

Versione 1.0 (3/5/2004) Pagina 34 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

 Livello 4 – il livello di trasporto: garantisce la partenza (suddivisione) e l’arrivo


(ricombinazione) dei pacchetti, segnalando gli eventuali errori (ad esempio,
pacchetto danneggiato, si prega rinviarlo);
 Livello 5 – il livello di sessione: stabilisce gli standard di avviamento,
coordinamento e termine di una conversazione o di uno scambio di dati tra
applicazioni (ad esempio, tiene traccia del punto al quale è arrivata la
conversazione).
 Livello 6 – il livello di presentazione: converte i dati in ingresso ed in uscita da
un formato di presentazione ad un altro (ad esempio, da un flusso di testo ad una
finestra di pop-up);
 Livello 7 – il livello applicativo: identifica i partner della comunicazione (ad
esempio identificazione e privilegi degli utenti), stabilisce gli standard di scambio
dei dati applicativi (ad esempio, formato dei campi, etc...).

Per ciascun livello, esistono numerosi protocolli di comunicazione concorrenti. Nel


passato ogni produttore di hardware o di sistemi operativi creava il suo protocollo di
comunicazione proprietario, che copriva generalmente i primi 4 livelli. Un esempio è il
protocollo NetBEUI di Microsoft Windows. Questa pluralità di protocolli generava un
contesto di enorme difficoltà di integrazione tra sistemi di vendor diversi.
L’avvento di Internet ha cambiato tutto. Infatti, il protocollo standard di Internet
TCP/IP, che verrà illustrato in seguito, è in breve diventato il protocollo standard
dell’ICT, relegando a ruoli marginali tutti gli altri protocolli.

4.3 La rete Internet


La rete Internet è la rete di gran lunga più importante che esista al mondo, la rete di tutte
le reti, tanto da essere spesso chiamata semplicemente la Rete.

Cenni storici

Le origini di Internet risalgono al 1973 (al 1969 se si considera la rete ARPANET un


precursore di Internet), quando, nel clima della Guerra Fredda, nel contesto della ricerca
di un sistema di comunicazione che potesse sopravvivere ad un attacco nucleare
strategico, l’agenzia statunitense DARPA (Defence Advanced Research Projects
Agency) avviò un programma di ricerca per sviluppare tecnologie di rete geografica in
grado di assicurare la connessione anche se una o più tratte di collegamento fossero
state distrutte da ordigni atomici.

I risultati del progetto portarono a sviluppare una rete a “commutazione di pacchetto”.


In questo tipo di rete, l’informazione da trasmettere viene scomposta in tronconi, detti
pacchetti (packet), che vengono spediti su una rete dalla tipologia a maglia, dove ogni
pacchetto può seguire un percorso differente per arrivare a destinazione, scegliendo ad
ogni nodo il successivo lato della maglia più conveniente da seguire. Al nodo di
destinazione, i pacchetti vengono ricomposti nell’ordine giusto. In tal modo, se uno o

Versione 1.0 (3/5/2004) Pagina 35 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

più tratti della maglia vengono distrutti, i pacchetti trovano comunque una via, per
quanto lunga e articolata, per giungere a destinazione.

Il progetto divenne presto noto come “the internetting project (il progetto che
interconnette le reti)” ed il sistema di reti che ne risultò fu chiamato “Internet”. Per
assicurare la commutazione di pacchetto, il progetto sviluppò appositi protocolli: il
protocollo IP (Internet Protocol) per stabilire gli standard di nomenclatura dei nodi (PC
compresi) ed il protocollo TCP (Transmission Control Protocol), per la suddivisione in
pacchetti, il loro instradamento e la ricomposizione dei pacchetti. I due protocolli,
insieme a molti altri utilizzati da Internet (circa 100), costituiscono la suite di protocolli
TCP/IP.

Negli anni successivi, grazie ai fondi messi a disposizione dagli istituti scientifici e
tecnologici del governo americano prima, dalle grandi aziende private poi, vennero
sviluppate le grandi infrastrutture di Internet, cioè le dorsali (backbone) in grado di
trasmette decine di Megabyte al secondo, rendendo possibili i grandi trasferimenti di
dati. Le dorsali e gli altri elementi infrastrutturali si svilupparono prima negli Stati Uniti
e poi, lentamente nel resto del mondo. Negli anni ’80, grazie alla diffusione di
applicazioni di grande successo basate su Internet, come la posta elettronica (e-mail) e
le reti civiche (BBS – Bulletin Board System = Sistema di bacheca per comunicati), la
Rete contava già milioni di utenti.

Ma il grande sviluppo di Internet avvenne dopo che, nel 1989, Tim Berners-Lee, un
ricercatore al CERN di Ginevra, propose un sistema di pubblicazione di informazioni su
Internet di tipo ipertestuale. L’idea era quella di consentire ad utenti della Rete in tutto il
mondo di lavorare insieme alla costruzione di una base di conoscenza, combinando i
contributi (documenti) di ciascuno in una sorta di rete.

Il meccanismo è basato sull’inclusione nei documenti di link (legami) ad altri


documenti, che fisicamente si possono trovare su altri computer della Rete, in una serie
senza fine di rimandi, anche circolari, che realizzano di fatto un’unica immensa rete
mondiale di conoscenza: il World Wide Web (WWW – Tela di ampiezza mondiale).
Nel Web, ciascun ente che vuole contribuire alla rete mondiale di conoscenza collega ad
Internet un proprio Server che contiene i documenti da condividere. Ciascun server di
Internet che ospita documenti si chiama host (ospite) e i documenti che mette a
disposizione, noti come pagine Web, si dicono pubblicati su Internet.

Per utilizzare gli ipertesti ed attivare gli iperlink, Tim Berners-Lee realizzò il primo
browser, un programma che visualizza i documenti ipertestuali e, tramite click sui link,
naviga da un ipertesto all’altro e da un sito all’altro.

I protocolli di Internet (la suite TCP/IP)


La suite TCP/IP è in realtà un insieme di un centinaio di protocolli che soddisfano tutte
le esigenze di Internet. I più importanti sono:
 IP (Internet Protocol = Protocollo di Internet): gestisce l’instradamento dei
pacchetti tramite l’identificazione univoca dei nodi della rete (PC ed apparecchiature
di rete), con un indirizzo composto da 4 numeri decimali (ciascuno compreso tra 0 e

Versione 1.0 (3/5/2004) Pagina 36 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

255) separati da un punto; ad esempio 168.64.26.108; si colloca sul livello 3 (Rete)


dello stack ISO/OSI;
 TCP (Transmission Control Protocol = Protocollo di controllo della
trasmissione): gestisce la suddivisione in pacchetti del messaggio, la loro
distribuzione sulla rete e la ricomposizione a destinazione; si colloca sul livello 4
(Trasporto) dello stack ISO/OSI;
 HTTP (HyperText Transfer Protocol = Protocollo di trasferimento di ipertesti):
gestisce il trasferimento dei file multimediali (testo, grafica, immagini, suono, video,
etc...) al fine di consentirne la riproduzione sul dispositivo pertinente (monitor,
casse, etc...); viene utilizzato dai browser ed implementa la navigazione ipertestuale
tramite la gestione dei link; si colloca sul livello 6 (Presentazione) dello stack
ISO/OSI;
 FTP (File Transfer Protocol = Protocollo di trasferimento di file): gestisce lo
scambio di file tra computer, limitandosi al loro trasferimento da una memoria di
massa all’altra; a differenza di HTTP, i file non vengono riprodotti dal browser, ma
immagazzinati in memoria; è quindi lo strumento ideale per fare il download
(scarico) di grossi file che non interessa riprodurre immediatamente; può essere
utilizzato anche tramite browser; si colloca sul livello 6 (Presentazione) dello stack
ISO/OSI;
 SMTP (Simple Mail Transfer Protocol = Protocollo di trasferimento di posta
semplice): gestisce lo scambio di e-mail (electronic mail = posta elettronica);
tuttavia, poiché è capace solo di accodare le e-mail presso il destinatario, viene
comunemente utilizzato solo per l’invio delle e-mail, mentre per la ricezione viene
utilizzato POP3; si colloca sul livello 6 (Presentazione) dello stack ISO/OSI;
 POP3 (Post Office Protocol 3 = Protocollo di ufficio postale 3): gestisce la
ricezione di e-mail; conserva i messaggi ricevuti da un utente in una mail-box
(cassetta postale) residente su un Server e consente all’utente lo scarico dei singoli
messaggi sul proprio computer su richiesta; si colloca sul livello 6 (Presentazione)
dello stack ISO/OSI;

Il Browser, il protocollo HTTP ed il linguaggio HTML


Il browser (browse = curiosare, sfogliare) è un programma in grado di visualizzare
documenti ipertestuali, cioè documenti che contengono dei link (legami) ad altri
documenti residenti in altri siti Internet che vengono collegati al documento principale
in modo multidimensionale, creando una enorme base di conoscenza mondiale (il World
Wide Web). I documenti visualizzati si chiamano pagine Web. Esempi di browser sono
Microsoft Internet Explorer, Netscape Navigator, Opera.
Il browser utilizza il protocollo HTTP per inviare su Internet le richieste di
visualizzazione di una pagina Web e per acquisire le relative risposte (tra cui la pagina
stessa). Quando l’utente clicca un link, il browser attiva HTTP per inviare la richiesta
della pagina al sito che la pubblica; questo riceve la richiesta ed invia il file
multimediale tramite HTTP. I documenti acquisiti vengono immediatamente riprodotti
dal browser.

Versione 1.0 (3/5/2004) Pagina 37 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Le pagine Web acquisite tramite browser sono composte da numerosi file (testo,
immagini, video, audio, etc...) organizzati secondo un certo layout (impaginazione). Le
specifiche del layout sono codificate nel documento Web con un apposito linguaggio:
HTML (HyperText Mark-up Language = Linguaggio di contrassegni ipertestuale).
HTML è un linguaggio basato su coppie di contrassegni (Mark-up), che contengono
istruzioni (tag = etichette) che specificano il layout (come deve apparire) il testo ed i file
contenuti entro i contrassegni. Il browser legge i tag HTML ed effettua il display delle
informazioni contenute tra i simboli di mark-up secondo le istruzioni del tag.
Il browser è quindi in sintesi un programma in grado di reperire su Internet documenti
ipertestuali e visualizzarli in maniera multimediale.

I domini Internet ed il DNS (Domain Name System)


L’utente del browser può accedere direttamente ad una pagina Web di cui conosce
l’indirizzo digitandolo nell’apposito campo del browser. Per le pagine Web, l’indirizzo
che comincia sempre con http://, è composto dall’indirizzo IP dell’host che pubblica i
documenti, seguito dalla catena gerarchica delle directory del file system dell’host, fino
ad arrivare al documento che costituisce la pagina Web.
La prima parte dell’indirizzo da digitare è quindi l’indirizzo IP dell’host, un numero
come, ad esempio, 168.142.67.211, difficile da ricordare e da digitare senza errori. Per
agevolare gli utenti di Internet, sono stati creati degli alias mnemonici degli indirizzi IP,
chiamati “nomi di dominio” Internet.
Un nome di dominio Internet è organizzato in livelli, separati da un punto (dot), come,
ad esempio, www.unipa.it.
Il livello più elevato (dominio di primo livello), che è il primo da destra (it
nell’esempio), identifica la categoria dell’organizzazione o la nazione ospitante. Il
motivo del doppio significato è legato alla storia della diffusione di Internet. Quando la
Rete era diffusa solo negli Stati Uniti, apparve sensato assegnare i domini alle categorie
di organizzazioni. Le più diffuse sono:
 com = commercial (aziende private);
 org = organization (organizzazioni costituite da numerosi membri);
 gov = government (istituzioni governative U.S.A.);
 edu = education (Università e simili);
 net = network (reti di siti).

Quando Internet si diffuse alle altre nazioni del mondo, sorse l’esigenza di creare
domini nazionali ai quali associare appositi organismi che vigilassero sul corretto uso
della Rete in ogni nazione. Nacquero così i domini di primo livello nazionali come it
(Italia), uk (United Kingdom), fr (Francia), etc... Tutte le nazioni del mondo, ad
eccezione degli U.S.A. hanno avuto assegnato un dominio di primo livello.

La situazione attuale nell’utilizzo dei domini di primo livello è perciò confusa. I siti
statunitensi utilizzano solo i domini organizzativi, mentre le altre nazioni usano sia
quelli organizzativi che quelli nazionali. Inoltre, per aumentare la confusione, la

Versione 1.0 (3/5/2004) Pagina 38 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

maggior parte delle nazioni ha deciso di utilizzare come dominio di primo livello la
combinazione del dominio nazionale con quello organizzativo (ad esempio com.uk),
mentre altre nazioni, tra cui l’Italia, utilizzano solo il dominio nazionale.
Il livello immediatamente sottostante è il dominio di secondo livello (nell’esempio
unipa). Questo dominio corrisponde all’organizzazione che ha deciso di aprire il sito
Internet (generalmente è il nome dell’azienda o dell’ente) ed è assegnato, dietro
richiesta di quest’ultima, dall’organismo che gestisce il dominio di primo livello
nell’ambito del quale si inserisce.
Il livello ancora successivo (quello di sinistra) identifica infine l’host (il Server) che
contiene le pagine Web. Viene scelto dall’organizzazione che detiene il sito ed è invalso
l’uso di chiamarlo www (World Wide Web, come nell’esempio), ma lo si può chiamare
come si vuole. Ve ne possono essere più di uno, corrispondenti a più Server che sono
ospitati nello stesso dominio di secondo livello. Ad esempio, www.ingegneria.unipa.it,
dove www.ingegneria (si sarebbe potuto chiamare anche solo ingegneria: www è una
moda) è il nome del Server della Facoltà di Ingegneria all’interno del dominio di
secondo livello unipa all’interno del dominio di primo livello it. Analogamente, in
www.lettere.unipa.it, www.lettere è il nome del Server della Facoltà di Lettere e
Filosofia all’interno dello stesso dominio.
L’indirizzo simbolico completo (dominio di primo e secondo livello + host) corrisponde
univocamente all’indirizzo IP del Server. Per consentire agli utenti del browser di
digitare l’indirizzo simbolico (il nome di dominio) anziché l’indirizzo IP, è stato creato
il DNS (Domain Name System = Sistema dei nomi di dominio). Il DNS è un sistema
che traduce il nome di dominio completo in un indirizzo IP, grazie ad una lista di
corrispondenze disponibile su Internet. Poiché la detenzione di un’unica lista aggiornata
di tutti i domini mondiali sarebbe impraticabile, il sistema si basa su un numero molto
alto di liste parziali distribuite su Internet secondo una gerarchia, ubicate su Server
dedicati chiamati Server DNS. La risoluzione del nome simbolico avviene per gradi,
cominciando dal Server DNS più vicino al richiedente e proseguendo, in base ai livelli
di dominio, verso Server DNS più vicini alla destinazione.

I siti Web e gli URL (Uniform Resource Locator)


Un sito Web è un insieme organico di documenti multimediali (pagine Web) che
include una pagina introduttiva detta home page (pagina base). Generalmente, gli utenti
accedono al sito digitando l’indirizzo della home page (ad esempio, www.unipa.it) e poi
navigando al suo interno tramite i link ipertestuali che puntano alle altre pagine del sito.
Tuttavia, è possibile anche digitare l’indirizzo di una specifica pagina del sito,
accedendo direttamente a questa.
Un sito Web non è la stessa cosa di un host (Server che ospita i documenti). Un host
può ospitare più siti Web ed un sito Web può essere ospitato presso diversi host.
In ogni caso l’indirizzo completo che consente di accedere ad una pagina si chiama
URL (Uniform Resource Locator = Localizzatore di risorse uniforme). L’URL
completo è costituito da:
 il nome del protocollo (in genere http:\\);
 il nome del dominio e dell’host, equivalente all’indirizzo IP;

Versione 1.0 (3/5/2004) Pagina 39 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

 il percorso gerarchico nel file system dell’host fino al documento richiesto.

I motori di ricerca ed i portali


L’immensità del Web è tale che, in assenza di strumenti per trovare le informazioni che
si cercano, questa grande risorsa dell’umanità potrebbe rivelarsi pressoché inutile. Se
fosse possibile accedere solo alle informazioni per le quali qualcuno ci ha comunicato
l’URL, il Web sarebbe rimasto una risorsa per specialisti e ricercatori universitari (come
sostanzialmente era agli albori della sua storia).
Esistono invece potenti strumenti per la ricerca sistematica in tutto il Web delle
informazioni che si cercano: sono i motori di ricerca. Un motore di ricerca è un insieme
coordinato di programmi che utilizza un processo in due fasi:
 un programma chiamato spider (ragno) esplora incessantemente il Web (la tela)
leggendo tutte le pagine rappresentative con i relativi link; le parole lette in queste
pagine alimentano un enorme banca-dati che associa ogni parola agli URL delle
pagine dove è stata riscontrata;
 quando un utente cerca una o più parole sul Web tramite il motore di ricerca,
questi cerca la/e parola/e nella banca-dati e restituisce tutti gli URL che la/e
contengono secondo un ordine di aderenza alla richiesta.
I motori di ricerca attuali sono molto sofisticati e permettono di cercare combinazioni
booleane di parole (parole combinate con gli operatori dell’algebra di Boole: and, or,
not), condizioni particolari, come quella che le parole cercate siano “vicine” nella
pagina Web, criteri di esclusione, etc...
I motori di ricerca più usati sono Yahoo, Google, AltaVista. Spesso ad un motore di
ricerca è associato un Portale, cioè un sito Internet che accoglie gli utenti su Internet e fa
da guida per la ricerca di risorse sulla Rete. I portali, oltre al motore di ricerca “bruta”,
offrono anche un approccio alternativo, che consiste nel seguire una struttura gerarchica
di categorie di contenuti che porta progressivamente a restringere il campo di ricerca.
Esempi di portali sono Yahoo e, in Italia, Virgilio, il cui nome ben esplicita il suo ruolo
di guida.

Intranet ed Extranet
Intranet è una rete privata che utilizza gli stessi standard di Internet (suite TCP/IP,
browser, linguaggio HTML, etc...), ma limitata all’interno di un’azienda.
Una Intranet può essere contenuta all’interno di una LAN, connettere più LAN e
comprendere anche tratti di WAN, tutti però interni all’azienda. Generalmente è
connessa ad Internet tramite un Gateway.
Lo scopo di una Intranet è quello di consentire ai dipendenti dell’azienda la
condivisione delle informazioni e delle risorse informatiche, la collaborazione ed il
lavoro di gruppo in modo semplice ed economico, grazie all’utilizzo dei medesimi
standard di Internet.
Extranet è una rete privata che utilizza gli stessi standard di Internet, ma limitata ad
un’azienda e ai suoi fornitori, partner, clienti ed altre aziende con le quali condivide
rapporti di affari.

Versione 1.0 (3/5/2004) Pagina 40 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Una Extranet generalmente connette più LAN attraverso tratti di WAN, sui quali deve
essere garantita la sicurezza e la privacy. Questo risultato viene raggiunto tramite
l’istituzione di VPN (Virtual Private Network = Rete privata virtuale). Una VPN è un
modo per utilizzare l’infrastruttura di comunicazione pubblica (come Internet) per
realizzare una rete privata nella quale i dati viaggiano sicuri. Utilizza tecniche di
crittazione dei dati, i quali all’ingresso nella rete pubblica vengono criptati, entrando in
una sorta di tunnel, dal quale escono, tramite decrittazione, quando giungono a
destinazione. Per questo motivo le tecnologie alla base delle VPN sono chiamate anche
tecniche di tunneling.
Lo scopo di una Extranet è quello di consentire ad organizzazioni diverse, ma legate da
rapporti di affari, di scambiarsi grandi volumi di dati, condividere informazioni (come
cataloghi), collaborare a progetti comuni, condividere servizi informatici, etc...

Firewall e Proxi
Le reti Intranet ed Extranet devono essere collegate ad Internet per consentire lo
scambio di informazioni con il resto del mondo. Tuttavia, data la natura riservata di
queste reti, questo accesso deve essere protetto dagli attacchi provenienti dall’esterno.
Inoltre, anche l’accesso ad Internet dei dipendenti delle aziende coinvolte deve essere
regolamentato per evitare usi impropri delle risorse della Rete.
Per il primo scopo (protezione dall’esterno) vengono utilizzati i Firewall (porta
tagliafuoco). Il Firewall è un insieme di programmi su un Server (talvolta è un hardware
dedicato) che protegge le risorse della rete privata dagli attacchi che possono provenire
dall’esterno: accessi non autorizzati, errori non intenzionali, attacchi di hacker (to hack
= prendere a fendenti), etc...
Il Firewall, posto al confine tra rete privata e pubblica, esamina tutti i pacchetti in
transito e decide, in base alle regole di sicurezza stabilite dagli amministratori di
sistema, quali possano essere inoltrati e quali bloccati. Provvede anche a generare
statistiche sui tentativi di accesso e ad emettere allarmi in situazioni di attacco.
Per il secondo scopo (regolamentazione degli accessi all’esterno) vengono utilizzati i
Proxi (computer prossimale). Il Proxi è un Server che agisce da intermediario tra
l’utente aziendale e Internet. Quando un utente fa una richiesta di accesso ad Internet, il
Proxi lo identifica (tramite utente e password), verifica che si autorizzato ad accedere al
sito richiesto, effettua la richiesta su Internet per suo conto, acquisisce il risultato e lo
invia all’utente, registrando contestualmente la storia dei suoi accessi.
Dal punto di vista dell’utente, il Proxi è trasparente ed egli ha l’impressione di navigare
direttamente su Internet. Dal punto di vista del sito Internet visitato, la richiesta
proviene non dall’indirizzo IP dell’utente, ma da quello del Proxi, uguale per tutta la
rete aziendale.
Il Proxi assicura anche funzioni accessorie, come la cache (deposito segreto), una
memoria dove vengono immagazzinate tutte le pagine visitate alla prima richiesta, in
modo che se ulteriori utenti richiedono la stessa pagina non ci sia più bisogno di
acquisirla da Internet, velocizzando la navigazione aziendale.

Versione 1.0 (3/5/2004) Pagina 41 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

5 Le applicazioni aziendali
Abbiamo definito un Sistema Informativo Aziendale come:
 Insieme di persone, macchine, reti, applicazioni software e processi che
permettono all’azienda di disporre delle informazioni giuste al momento giusto.
Utilizzando alcuni dei termini tecnici che abbiamo trattato nei capitoli precedenti,
possiamo dire, con un linguaggio più tecnico, che un Sistema Informativo Aziendale è:
 Insieme di hardware, software di sistema, software applicativo, reti, persone e
processi che permettono all’azienda di disporre delle informazioni giuste al
momento giusto.
Abbiamo trattato in dettaglio i componenti hardware, software di sistema e reti. Adesso
iniziamo a trattare il componente più complesso e articolato: il software applicativo, del
quale le applicazioni aziendali costituiscono i mattoni costituenti. Continueremo
trattando i sistemi di integrazione, le banche-dati e infine parleremo di persone e
processi.
Tratteremo le applicazioni aziendali per i settori industriale e dei servizi, anteponendo la
descrizione di alcune delle applicazioni comuni ad entrambi.

5.1 Le applicazioni diffuse in tutti i settori


Alcune applicazioni sono di utilizzo così generale, da essere utilizzate in tutti i settori di
attività, pubblici e privati. Si citano le più significative.

Automazione d’ufficio
E’ un insieme piuttosto lasco di strumenti e prodotti che supportano il lavoro del singolo
in un ufficio. Vengono chiamati anche sistemi di produttività individuale. In genere
comprendono i seguenti componenti:
 un Word Processor (processore di testi), che supporta la redazione di documenti,
anche lunghi ed articolati, composti da testo ed immagini; un esempio è Microsoft
Word;
 uno Spreadsheet (Foglio elettronico), che supporta la redazione di prospetti di
calcolo, anche molto complessi, con una serie di automatismi di calcolo; un esempio
è Microsoft Excel;
 uno strumento per creare presentazioni multimediali, di livello professionale,
che possono essere proiettate su schermo e stampate; un esempio è Microsoft
PowerPoint;
 un client di posta elettronica; un esempio è Microsoft Outlook;
 un ambiente con gli strumenti del lavoro quotidiano (agenda, contatti, lista delle
cose da fare, etc...); un esempio è Microsoft Outlook;
 un database per uso personale con limitate capacità di programmazione; un
esempio è Microsoft Access.

Versione 1.0 (3/5/2004) Pagina 42 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Nonostante esistano diversi prodotti che supportano l’automazione d’ufficio, anche


Open Source, la suite Microsoft Office, che comprende tutti i prodotti citati sopra ed
altri, risulta di gran lunga la più diffusa e conosciuta.

Gestione del personale


La gestione del personale supporta le attività contrattuali, normative, disciplinari ed
economiche relative al personale di un’azienda. Comprende la gestione anagrafica del
dipendente, la storia del suo rapporto con l’azienda, la sua posizione contrattuale e
normativa e supporta il calcolo degli stipendi e delle paghe.
Spesso alla gestione del personale è associata la rilevazione delle presenze/assenze del
personale, che fa uso di strumenti dedicati, come ad esempio i terminali-orologio, i
lettori di badge, etc... La gestione delle presenze/assenze consente di introdurre in
azienda sistemi anche complessi di orario flessibile, necessari per adattare gli impegni
di lavoro alla vita sociale moderna.

Contabilità
La gestione della contabilità supporta la raccolta delle informazioni contabili (fatture
attive e passive, note di spese, spese del personale, etc...) e la catalogazione delle stesse
in un contesto organico secondo i principi contabili, con la produzione automatica dei
documenti contabili. Alla gestione della contabilità è in genere associata anche la
produzione del bilancio aziendale.

Controllo di gestione
E’ uno strumento di analisi costi-benefici dell’andamento economico dell’azienda. Il
controllo di gestione suddivide la contabilità dell’azienda per commesse (linee di
vendita, contratti, progetti, introiti in generale), che rappresentano i ricavi dell’azienda e
per centri di costo, ossia settori organizzativi dell’azienda (linee di produzione, uffici,
strutture di supporto, team progettuali, etc...), che rappresentano i costi dell’azienda.
I dati contabili vengono quindi organizzati secondo una matrice che riporta nelle righe
le commesse e nelle colonne i centri di costo. La cella della matrice rappresenta il costo
sopportato da un dato centro di costo per contribuire ad una specifica commessa. Tale
analisi consente di evidenziare i contributi dei centri di costo alle commesse e di
valutare se i benefici derivanti da un’attività o struttura siano maggiori o minori dei
costi sostenuti per mantenerla.
Il controllo di gestione è in grado di produrre un insieme molto vasto di analisi
incrociate di questo tipo, secondo le specifiche esigenze dell’azienda, ed è quindi
un’applicazione che richiede complesse fasi di personalizzazione, effettuate in genere
da personale altamente specializzato.

Workflow
Il Workflow (Flusso di lavoro) è un sistema di supporto ai processi strutturati di
un’azienda. I processi strutturati sono procedure per stadi, che prevedono un insieme di
percorsi prestabiliti e di scelte da effettuare in base a regole codificate, al fine di portare
a termine un certo compito.

Versione 1.0 (3/5/2004) Pagina 43 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Esempi di Workflow sono:


 la diagnosi e riparazione di un componente tecnologico;
 la pratica di rimborso di un’assicurazione;
 l’assistenza di Help Desk;
 lo sviluppo metodico di un progetto software.

Un sistema di Workflow consente all’analista del procedimento di disegnare un grafo


che lo rappresenta. Nel grafo, i nodi rappresentano gli stadi del procedimento ed i
relativi prodotti, mentre le linee rappresentano i percorsi di avanzamento e le relative
attività. Al grafo è associato un insieme di regole che specificano la scelta dei percorsi e
le condizioni di avanzamento.

Un componente del sistema di Workflow, il motore di Workflow, regola l’avanzamento


degli utenti sul grafo, consentendo di accedere solo ai percorsi consentiti dalle regole e
solo se si sono verificate le condizioni previste (produzione di un documento,
raggiungimento di una scadenza, etc...).

I sistemi di Workflow sono ideali quando un processo può essere rappresentato come un
grafo, le regole devono essere rispettate rigorosamente e le eccezioni sono rare. Negli
altri casi (regole lasche, molte eccezioni), il sistema è in genere troppo rigido. Inoltre è
molto difficile gestire i cambiamenti delle regole a procedimento già avviato.

Workgroup
Il Workgroup (Gruppo di lavoro) è un sistema di supporto ai processi non strutturati di
un’azienda. I processi non strutturati sono attività, compiti e progetti portati avanti da
gruppi di persone appartenenti a strutture organizzative diverse e non soggetti a regole
categoriche. Esempi sono:
 ricerca e sviluppo di nuovi prodotti;
 marketing;
 progetti di riorganizzazione;
 task force interdisciplinari su specifici obiettivi;
 progetti internazionali.

Un sistema di Workgroup supporta la comunicazione, la collaborazione, la condivisione


delle informazioni ed il coordinamento di un gruppo di lavoro, superando i vincoli di
spazio e di tempo. E’ costituito da un insieme lasco di strumenti che supportano la
delocalizzazione della sede di lavoro del gruppo (i componenti possono lavorare in sedi
geograficamente diverse) e l’asincronicità del lavoro (i componenti possono interagire
sullo stesso tema in momenti diversi). Gli strumenti tipici del Workgroup sono:
 l’e-mail (posta elettronica) che supporta la delocalizzazione e l’asincronicità;
 la videoconferenza, che supporta la delocalizzazione;

Versione 1.0 (3/5/2004) Pagina 44 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

 il desktop (scrivania) virtuale, che offre agli utenti un ambiente con gli strumenti
del lavoro quotidiano (agenda, contatti, lista delle cose da fare, etc...), disponibile da
qualunque postazione Internet (supporta la delocalizzazione);
 l’agenda condivisa, che permette di sincronizzare gli impegni del gruppo di
lavoro (supporta la delocalizzazione);
 i forum di discussione che supportano la delocalizzazione e l’asincronicità;
 la bacheca digitale, che permette di pubblicare avvisi di interesse per il gruppo di
lavoro (supporta la delocalizzazione e l’asincronicità).

I sistemi di Workgroup, insieme alle tecnologie Wireless, supportano il Virtual


Workplace (Posto di lavoro virtuale), cioè la possibilità di svolgere il proprio lavoro
indipendentemente dalla disponibilità di un ambiente fisico di lavoro.

DMS (Document Management System)


I DMS (Document Management System = Sistema di gestione dei documenti)
supportano l’archiviazione digitale dei documenti ed il loro recupero. I documenti
vengono acquisiti sia in formato testo che in formato immagine, in quest’ultimo caso
con l’utilizzo di scanner. Il sistema permette di ridurre enormemente la quantità di carta
da conservare o, comunque, da tenere a portata di mano.

IRS (Information Retrieval System)


Gli IRS (Information Retrieval System = Sistema di recupero delle informazioni) sono
strumenti di interrogazione e ricerca di banche dati destrutturate, dove cioè i dati non
sono organizzati ed ordinati in campi specifici, ma sono ammassati senza alcuna vera
struttura (testi, libri, articoli, etc...). Vengono in genere utilizzati in associazione con i
DMS. I motori di ricerca disponibili su Internet sono degli immensi sistemi di
Information Retrieval, associati ad uno sconfinato DMS chiamato World Wide Web.

5.2 Le applicazioni nel settore industriale


Le applicazioni del settore industriale supportano i processi produttivi:
 ricerca e sviluppo prodotti;
 progettazione;
 produzione;
 approvvigionamento;
 gestione magazzino;
 spedizione;
 marketing;
 assistenza ai clienti, etc…

Versione 1.0 (3/5/2004) Pagina 45 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Nel seguito vengono citate alcune delle applicazioni più significative, appartenenti alla
famiglia delle applicazioni CAx (Computer Aided x – x assistito dal computer).

CAD (Computer Aided Design)


Il CAD (Computer Aided Design = Progetto assistito dal computer) supporta la
progettazione del prodotto automatizzando il disegno complessivo e dei componenti. Un
prodotto CAD mette a disposizione un tavolo da disegno virtuale con una ricca serie di
strumenti di disegno di vario livello di automazione, che consentono al progettista di
affrancarsi dalla fatica del disegno manuale e ripetitivo per concentrarsi sulla
progettazione.

CAE (Computer Aided Engineering)


Il CAE (Computer Aided Engineering = Ingegnerizzazione assistita dal computer)
supporta l’ingegnerizzazione del prodotto. Quando il settore di ricerca e sviluppo ha
messo a punto il prototipo di un nuovo prodotto che l’azienda ha deciso di proporre sul
mercato, occorre una nuova fase di progettazione che definisca le differenze del
prodotto di mercato dal prototipo, le modalità di realizzazione sulla linea di produzione,
di imballaggio, trasporto, assistenza tecnica, etc… Questa fase si chiama
ingegnerizzazione del prodotto.
Il CAE supporta questa fase grazie alla possibilità di generare dei modelli di processo
produttivo, che, grazie a delle simulazioni, ne analizzano pregi e difetti senza dover
realizzare modelli reali.

CAM (Computer Aided Manufacturing)


Il CAM (Computer Aided Manufacturing = Produzione assistita dal computer) supporta
la realizzazione del prodotto automatizzando le linee di produzione, trasporto,
immagazzinaggio, verifica, imballaggio. I sistemi CAM pilotano macchine di
produzione, come ad esempio scaffali a scorrimento, macchine a controllo numerico per
lavorazioni meccaniche di precisione, robot di assemblaggio, strumenti di misura per il
controllo di qualità, bilance per l’imballaggio, etc… Essi controllano anche la sequenza
delle operazioni di produzione.

5.3 Le applicazioni nel settore dei servizi


Le applicazioni del settore dei servizi supportano la realizzazione ed erogazione del
servizio nei confronti dell’utente: progettazione del servizio, preparazione e
manutenzione del servizio, erogazione, misurazione dei livelli di servizio, assistenza ai
clienti, Help Desk, etc…
I principali servizi della Società dell’Informazione sono:
 Credito;
 Assicurazioni;
 Turismo;
 Informazione;

Versione 1.0 (3/5/2004) Pagina 46 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

 Consulenza (finanziaria, organizzativa, medica, tecnica);


 Assistenza (quale servizio accessorio nell’erogazione di un servizio);
 Commercio;
 Pubblica Amministrazione (servizi statali, regionali, comunali, SSN).

Front-Office e Back-Office
Abbiamo visto che il servizio viene consumato nello stesso momento in cui viene
erogato (Es.: trasporto in treno), a differenza del prodotto, che viene realizzato e
consumato in momenti differenti (Es.: tessuto).
Tuttavia, esiste una fase del ciclo produttivo del servizio che avviene in un momento
precedente a quello dell’erogazione e, soprattutto, in un contesto differente: si tratta
della preparazione e manutenzione del servizio. In questa fase vengono prodotti e/o
messi a punto gli strumenti dell’erogazione del servizio, tra cui le infrastrutture,
l’ambiente di erogazione, le procedure, le banche-dati, i moduli cartacei,
l’addestramento del personale erogante, i macchinari coinvolti, i materiali di consumo,
etc… e tutti questi mezzi vengono sottoposti a manutenzione continua per mantenerli in
grado di erogare il servizio.
Nel caso del trasporto in treno, un servizio tipico della Società Industriale, la
preparazione del servizio comprende la realizzazione dell’infrastruttura ferroviaria
(linee), delle stazioni, delle motrici e dei vagoni, del personale di stazione e viaggiante,
delle procedure di prenotazione e acquisto dei biglietti, dei servizi accessori (pulizia,
ristorante, vagoni letto).
Nel caso dei servizi della Società dell’Informazione, sempre più dematerializzati e
virtuali, la fase di preparazione/manutenzione del servizio assume un ruolo sempre più
importante, perché è in essa che vengono realizzati i contenuti del servizio. Nei servizi
virtuali, addirittura, la fase di erogazione è una conseguenza automatica di quella di
preparazione/manutenzione, che non necessità né di ambienti né di personale dedicato
(perché, ad esempio, avviene tramite Internet).
Si distinguono pertanto due ambienti di produzione del servizio:
 Front-Office (Sportello): è l’ambiente di erogazione del servizio, dove si realizza
il contatto tra il soggetto erogante e l’utente; nei servizi tradizionali (non ancora
virtualizzati) è costituito da sportelli presidiati, cioè punti di contatto tra erogatore e
utente dove personale specializzato media l’erogazione del servizio; i contenuti del
servizio sono stati predisposti dal Back-Office (Retrosportello) e sono fruibili dagli
operatori di sportello sotto forma di applicazioni e banche-dati informatiche (ad
esempio, sportello bancario che effettua velocemente la transazione con procedure,
software e banche-dati predisposte);
 Back-Office (Retrosportello): è l’ambiente di preparazione e manutenzione del
servizio, dove personale con una specializzazione ancora maggiore di quello del
Front-Office predispone i contenuti del servizio (banche-dati, procedure
organizzative), supervisiona le modalità ed i limiti di erogazione del servizio (orari,
funzioni disponibili, autorizzazioni), sovrintende alle elaborazioni di massa, gestisce
i rapporti asincroni con i clienti (produzione di rendiconti, messaggi, avvisi, etc…);

Versione 1.0 (3/5/2004) Pagina 47 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

nell’esempio bancario il Back-office gestisce, tra l’altro, l’andamento temporale dei


tassi, la disponibilità dei prodotti bancari, le autorizzazioni di sportello, le procedure
di elaborazione di massa come il calcolo delle cedole, l’invio degli estratti conto alla
clientela, etc…

Le transazioni
L’erogazione del servizio al Front-Office è in genere caratterizzata da procedure
formali, strutturate e con alta frequenza di esecuzione (prenotazione aerea, certificato
anagrafico, pagamento allo sportello, etc...). Queste caratteristiche richiedono uno
strumento guidato e di rapida compilazione, l’analogo elettronico del modulo cartaceo.
Questo strumento è la transazione, un programma realizzato per effettuare una singola
operazione strutturata, che offre all’operatore di sportello un’interfaccia guidata per
l’accesso e la modifica delle banche-dati che sono alla base del servizio e per
l’eventuale rilascio di documenti attestanti la modifica effettuata. Per esempio, una
transazione di sportello bancario, effettuata a seguito di un prelievo di contante dal c/c,
modifica la situazione del c/c in archivio e produce una ricevuta del prelievo.
Una transazione è l’unità minima di modifica dell’informazione all’interno di una
banca dati. Al fine di operare correttamente, le transazioni devono possedere alcune
caratteristiche che vengono riassunte nel termine ACID (acido), acronimo delle seguenti
proprietà:
 Atomic (atomico): la transazione deve compiere tutta la variazione prevista nella
base-dati o non compierla del tutto;
 Coherent (coerente): la transazione deve mantenere la coerenza dei dati nella
base-dati;
 Isolated (isolata): la transazione deve essere indipendente da tutte le altre
transazioni che vengono eseguite nel sistema nello stesso momento;
 Duration (durata): la transazione deve avere una durata limitata; non deve essere
never ending (senza fine).

Evoluzione del Front-Office: i canali di distribuzione (Delivery Channel)


Lo sportello presidiato è tipico del Front-Office tradizionale, quello dei servizi non
ancora virtualizzati. I suoi limiti risiedono nei suoi vincoli spaziali (l’utente deve recarsi
in un luogo ben preciso) e temporali (ad un orario ben preciso), oltre che nella necessità
di disporre di personale dedicato.
Una delle tendenze della Società dell’Informatizzazione è la virtualizzazione del
servizio, cioè la smaterializzazione del Front-Office, che viene sostituito da canali di
accesso virtuali, detti Delivery Channel (letteralmente canale di consegna, generalmente
tradotto con canale di distribuzione o canale di accesso).
La virtualizzazione dei canali di accesso avviene per gradi, procedendo dai canali più
“materiali”, a quelli più “immateriali”. Il processo tende via via a rimuovere i vincoli
spaziali e temporali del Front-Office e ad abolire il personale dedicato. I principali stadi
di questa evoluzione sono:

Versione 1.0 (3/5/2004) Pagina 48 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

 Sportello semi-presidiato: è ancora uno sportello fisico, mediato da personale, il


quale però non è più specializzato nell’erogazione di quel servizio, ma grazie ad un
veloce addestramento, è in grado di erogarlo insieme ad altri servizi diversi; è in
genere ospitato presso strutture che hanno una diversa finalità principale; grazie alla
distribuzione variegata degli sportelli semipresidiati, il vincolo temporale è meno
stringente; un esempio sono le tabaccherie che consentono il pagamento del bollo
auto, gli sportelli bancari che distribuiscono certificati anagrafici, le farmacie che
erogano servizi di prenotazione di prestazioni sanitarie, etc… A volte questo
personale è assistito, per le operazioni più difficili, da servizi di Help Desk, un
“servizio di un servizio”;
 Help Desk: sono ancora sportelli fisici mediati da personale, ma è stato abolito il
contatto fisico con l’utente, il quale invece telefona ad un numero (eventualmente
verde, cioè gratuito) per ottenere l’erogazione del servizio; consentono la
concentrazione di un numero molto elevato di sportelli in un unico luogo, che può
risiedere nel luogo più conveniente, anche economicamente, anche in un’altra
nazione; sono utilizzati per prenotazioni, consulenze, assistenza, etc…; possono
fornire un servizio di primo livello (direttamente agli utenti fruitori del servizio) o di
secondo livello (a personale erogante di specializzazione più bassa); il vincolo
spaziale è molto basso o assente (disponibilità di un telefono);
 Call Center: concettualmente sono simili agli Help Desk, ma sono dotati di
strumenti informatici (risponditori automatici) che permettono (teoricamente) di
risolvere la maggior parte delle chiamate senza coinvolgere personale, riducendone
drasticamente l’impiego; sono molto bassi sia il vincolo spaziale che temporale;
 Totem (o chioschi): sono ancora sportelli fisici, ma è stata abolita la mediazione
del personale; sono macchine ubicate in punti di grande affollamento (piazze, uffici
pubblici, supermercati), che, grazie ad interfacce semplificate (in genere touch
screen = schermo a contatto), consentono agli utenti di accedere direttamente al
servizio erogato in modalità 24x7x365 (questa sigla significa 24 ore al giorno, 7
giorni la settimana, 365 giorni all’anno); il vincolo temporale è perciò scomparso;
sono tipici dei servizi pubblici;
 Internet: questo canale abolisce anche lo sportello fisico; chiunque abbia un
collegamento ad Internet può accedere al servizio tramite un sistema di
riconoscimento e autenticazione ed ottenerne l’erogazione in modalità 24x7x365; il
vincolo temporale è assente e quello spaziale è ridottissimo (PC collegato ad
Internet); un esempio è l’Home Banking (Servizi bancari a casa);
 Wireless: è l’ultima frontiera dei canali di accesso; questo canale abolisce anche
la fisicità del luogo ed è quindi il più virtuale, privo sia di vincolo spaziale che
temporale; l’accesso al servizio avviene tramite terminale mobile (Cellulare,
Smartphone, Palmare, PC portatile), con sistemi di riconoscimento e autenticazione
simili a quelli di Internet, ma con un collegamento attraverso la rete GSM/GPRS o
reti locali wireless (Wi-Fi); un esempio sono i servizi di news (notizie)
personalizzate.
La figura che segue riporta la classificazione dei canali di accesso nei confronti dei
vincoli spaziale e temporale.

Versione 1.0 (3/5/2004) Pagina 49 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Basso Totem Internet Wireless

Call Center

Vincolo
Temporale

Sportello semipresidiato
Help Desk

Alto Sportello presidiato


Alto Vincolo spaziale Basso
Figura 7 – Posizionamento dei canali di accesso rispetto ai vincoli

Esempio 1: l’Home Banking


L’Home Banking (Servizi bancari a casa) è un servizio virtuale (detto anche banca
virtuale) che consente di disporre di (quasi) tutti i servizi bancari da casa propria o da un
qualunque punto collegato ad Internet (anche wireless). Come quasi tutti i servizi
virtuali, il funzionamento è basato sull’esistenza di meccanismi di identificazione certa
dell’utente che si collega e di protezione (riservatezza) dei dati scambiati. La fattibilità
dei servizi di Home Banking è agevolata dall’utilizzo del Conto Corrente bancario
associato all’utente per tutti gli spostamenti di denaro, rendendo non necessari sistemi di
pagamento on-line. Naturalmente, non è possibile effettuare operazioni di versamento e
prelievo di denaro contante.

Esempio 2: prenotazione/biglietteria on-line


E’ un servizio virtuale che consente di effettuare una prenotazione e/o acquistare il
relativo biglietto (teatri, evento sportivi o musicali, mezzi di trasporto, alberghi, viaggi
organizzati, etc…) tramite Internet e/o terminale mobile (wireless). In questo caso (in
generale) non è necessaria un’identificazione certa, che può avvenire al momento in cui
ci si presenta per usufruire della prenotazione o del biglietto acquistato. E’ invece
indispensabile, se si procede all’acquisto del biglietto, ma anche per la prenotazione di
alberghi, un sistema di pagamento on-line.

Esempio 3: e-Commerce (Commercio elettronico)


L’e-Commerce (Commercio elettronico) è un servizio virtuale che consente di effettuare
acquisti su Internet. Il servizio si compone in genere di tre elementi:
 Un catalogo elettronico della merce in vendita, composto da schede con
immagine, descrizione e prezzo del prodotto; l’utente sceglie il prodotto desiderato e
la quantità;

Versione 1.0 (3/5/2004) Pagina 50 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

 Un carrello della spesa (virtuale), dove vengono riposte le merci scelte


dall’utente e riportato il totale da pagare;
 Un sistema di pagamento on-line che consente di pagare il totale delle merci, le
eventuali spese di spedizione e gli altri oneri.
Le merci acquistate vengono recapitate a casa dell’utente, in genere tramite vettori
privati, veloci e affidabili, che consentono di minimizzare il disagio della non
immediata disponibilità del bene. In questo servizio l’identificazione sicura dell’utente
non è in genere necessaria, anche se, per prevenire frodi, in caso di grossi acquisti
vengono richieste conferme telefoniche o pagamenti in contrassegno.
Con il progredire delle tecnologie Wireless, l’e-Commerce sta lentamente evolvendo
verso l’m-Commerce (mobile Commerce = Commercio mobile), che utilizza per
l’accesso i terminali mobili (PDA, etc...).

Esempio 4: e-Government
L’e-Government (Pubblica Amministrazione elettronica ?) non è un singolo servizio,
ma piuttosto l’applicazione delle tecnologie dell’ICT al rapporto tra cittadini e Pubblica
Amministrazione (d’ora in poi P.A.). I servizi tradizionali erogati dalla P. A. Centrale e
Locale e dalle Aziende Sanitarie vengono informatizzati e resi disponibili ai cittadini
tramite diversi canali di accesso, tradizionali e virtuali.
Lo scopo dell’e-Government è quello di cambiare il tradizionale, burocratico ed
assolutistico rapporto tra cittadini e P.A. (dove il cittadino ha un ruolo di suddito) in un
nuovo tipo di rapporto, dove le esigenze del cittadino sono al centro del sistema. A tal
fine l’e-Government non si limita ad informatizzare i servizi, ma effettua un BPR
(Business Process Reengineering = Riorganizzazione dei processi d’affari) dei processi,
il cui fine è la transizione:
 da un modello a “silos verticali”, dove i processi sono forgiati sulla struttura
organizzativa dell’Ente Pubblico (esempio: un imprenditore che vuole avviare una
sola nuova attività deve richiedere permessi ed autorizzazioni fino a 40 uffici ed
Enti diversi);
 ad un modello ad “eventi della vita” orientato al punto di vista del cittadino, che
percepisce il proprio rapporto con la P.A. in termini di eventi della propria vita:
nascita, titolo di studio, impiego o avviamento attività, matrimonio, nascita figli,
malattia, morte (esempio: un imprenditore che vuole avviare una sola nuova attività
richiede un solo permesso ad un solo Ente).

L’obiettivo dell’ e-Government è quindi estremamente ambizioso, perché passa per la


ristrutturazione profonda dei processi intra ed inter Ente e richiede un grosso
commitment (impegno) del livello politico e di direzione degli Enti pubblici. Per lo
stesso motivo, per l’erogazione dei servizi di e-Government occorre far ricorso alle più
sofisticate tecnologie ICT (identificazione, pagamento, etc…) e, nonostante il settore
pubblico sia tradizionalmente un settore di retroguardia, oggi i servizi di e-Government
sono i servizi virtuali più avanzati e si collocano sulla frontiera tecnologica dell’ICT.

Versione 1.0 (3/5/2004) Pagina 51 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

La crittografia
I servizi virtuali, cioè quelli che fanno uso di canali di distribuzione innovativi (come
Internet) e quindi non sono mediati da personale dedicato pongono seri problemi di
sicurezza.
La mancanza di personale intermediario pone il problema dell’accertamento
dell’identità dell’utente, indispensabile in molti servizi (ad esempio Home Banking), ma
anche di quello dell’erogatore del servizio, che potrebbe aprire un sito con offerte
allettanti e scomparire nel nulla dopo aver raccolto una cifra ingente. Ma anche dando
per scontata la buona fede di entrambi gli attori del servizio, si pongono i seguenti
problemi:
 i messaggi inviati possono essere intercettati e letti da malintenzionati;
 i messaggi inviati possono essere intercettati ed alterati da malintenzionati ad
insaputa degli attori del servizio;
 l’identità degli attori può essere identificata da malintenzionati e utilizzata per
scopi illeciti;
 l’identità degli attori può essere alterata da malintenzionati.

Per prevenire queste attività illecite, i servizi erogati tramite Internet utilizzano tecniche
di crittografia (dal greco: scrittura segreta). La crittografia è una tecnica che permette di
mantenere segrete ed integre le informazioni scambiate. La crittografia assicura:
 Riservatezza: preclude la visione non autorizzata dell’informazione;
 Integrità: preclude l’alterazione non rilevata dell’informazione;
 Autenticazione: previene la dissimulazione del mittente e del destinatario.
 Non ripudio: previene il diniego della paternità del messaggio da parte del
mittente.

In linea di principio, i sistemi di crittografia seguono il seguente schema:


 Il mittente cripta (ossia trasforma in un codice incomprensibile e senza senso
apparente) le informazioni in chiaro, tramite un algoritmo matematico che utilizza
una chiave; lo stesso algoritmo produce codici criptati completamente diversi a
seconda della chiave utilizzata;
 Il destinatario decripta (ossia ritrasforma in informazioni in chiaro) il codice
ricevuto tramite un algoritmo matematico inverso a quello di criptazione, che
utilizza la stessa chiave o una chiave ad essa matematicamente collegata.

La crittografia è una tecnica molto antica, già utilizzata dagli Egizi con i geroglifici
2.000 anni prima di Cristo. I primi esempi ben documentati risalgono a Giulio Cesare
che, durante la guerra contro i Galli, utilizzava una tecnica molto semplice per
comunicare con i propri ufficiali in maniera che i nemici, anche intercettando il
messaggio, non lo potessero comprendere. L’algoritmo matematico consisteva nel
traslare in avanti ogni lettera dell’alfabeto di un numero fisso (la chiave), producendo un
testo incomprensibile, che il destinatario rimetteva in chiaro traslando le lettere
all’indietro. Naturalmente la tecnica era efficace grazie al primitivo livello culturale dei

Versione 1.0 (3/5/2004) Pagina 52 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Galli. Per decrittare il messaggio sarebbe bastato provare tutte le possibili 20 chiavi
(anzi, in media, la metà).

Questo tipo di attacco ad un sistema di crittografia, che consiste nel provare


sistematicamente tutte le combinazioni, era troppo evoluto per i Galli, ma risulta oggi
ideale per un computer ed è l’attacco più comune: è noto come attacco per forza bruta.

Per difendersi sia dagli attacchi per forza bruta che da quelli più avanzati (ad esempio,
ricerca di configurazioni di lettere che hanno la stessa frequenza delle parole più comuni
nella lingua in cui è scritto il messaggio), i sistemi di crittografia divennero sempre più
sofisticati. Alcuni prevedevano chiavi sempre diverse e lunghe quanto il messaggio.
Quando nel 1967 Che Guevara fu ucciso in Colombia, si scoprì che portava sotto la
camicia una lunga benda con una stringa di lettere senza senso. Si trattava della chiave
che utilizzava per criptare i messaggi che inviava a Fidel Castro. Ogni volta che inviava
un messaggio, consumava un pezzo della benda-chiave avente lo stesso numero di
lettere del messaggio. Fidel Castro conservava a Cuba una stringa eguale.

Il sistema Enigma, utilizzato dai tedeschi durante la Seconda Guerra Mondiale per
comunicare con i propri sottomarini e poi violato dagli Alleati grazie all’invenzione del
computer, era costituito da una macchina da scrivere con tre rotori e un pannello di
connessioni (la cui configurazione iniziale rappresentava la chiave), in grado di generare
milioni di milioni di combinazioni. I rotori giravano (come un contachilometri) ogni
volta che il mittente batteva un tasto, quindi l’algoritmo generava una lettera criptata
sempre diversa, anche battendo la stessa lettera in chiaro. Il destinatario decrittava il
messaggio configurando la propria macchina con la chiave iniziale con la quale era stato
criptato.

Versione 1.0 (3/5/2004) Pagina 53 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Figura 8 – La macchina Enigma

Da Enigma in poi, la sicurezza dei sistemi di crittografia è strettamente legata alla


potenza dei computer. In linea di principio, qualunque sia l’algoritmo, il sistema può

Versione 1.0 (3/5/2004) Pagina 54 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

essere violato da un computer (se non altro per forza bruta), se questo dispone del tempo
necessario. Questo tempo è tanto maggiore quanto più lunga è la chiave. Oggi si tende a
trovare un compromesso tra sicurezza e usabilità dei sistemi di crittografia. Il sistema di
Che Guevara è teoricamente inespugnabile (la chiave è lunga quanto il messaggio e
sempre diversa), ma praticamente inusabile. Enigma è semplice da usare ma vulnerabile
persino al più primitivo dei computer.

Il compromesso oggi accettato è che la lunghezza della chiave sia tale che un computer
contemporaneo impieghi, per violarlo, tempi paragonabili alla vita dell’universo (10-15
miliardi di anni). Questa strategia porta al continuo allungamento delle chiavi di
crittografia man mano che aumenta la potenza dei computer.

I sistemi a chiave simmetrica (o segreta)


I sistemi a chiave simmetrica utilizzano la stessa chiave sia in fase di crittazione che di
decrittazione (da cui il nome). La chiave consente quindi a chiunque ne venga in
possesso decriptare il messaggio e deve pertanto essere mantenuta segreta (da cui il
nome alternativo del sistema). Questi sistemi presuppongono perciò l’esistenza di un
canale sicuro per l’interscambio della chiave tra mittente e destinatario.
Lo schema in figura mostra il funzionamento tipico di un sistema a chiave simmetrica (o
segreta). Per prima cosa, il mittente ed il destinatario concordano una chiave e se la
scambiano tramite un canale sicuro (mediante un altro sistema di crittografia o, al
limite, vedendosi di persona). Quindi il mittente utilizza l’algoritmo matematico e la
chiave concordata per criptare il messaggio, che viene recapitato al destinatario tramite
un canale non sicuro (ad esempio Internet). Il destinatario decripta quindi il messaggio
usando lo stesso algoritmo e la stessa chiave del mittente.

I sistemi a chiave simmetrica consentono di garantire riservatezza e integrità del


messaggio, ma non l’autenticazione ed il non ripudio. Esempi di questi algoritmi sono il
DES (Data Encryption Standard = Standard di crittazione dei dati), che utilizza una
chiave lunga 56 bit, 3DES (Triplo DES), che applica il DES tre volte in successione,
IDEA (International Data Encryption Algorithm = Algoritmo di crittazione dei dati
internazionale), che utilizza una chiave lunga 128 bit, RC4, RC5 ed RC6, che utilizzano
chiavi a lunghezza variabile, etc...

Versione 1.0 (3/5/2004) Pagina 55 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Figura 9 – Schema di funzionamento di un sistema a chiave simmetrica

I sistemi a chiave asimmetrica (o pubblica)


Nei sistemi a chiave asimmetrica, ideati negli anni ’70, ciascun utente utilizza una
coppia di chiavi distinte, a lui/lei assegnate, che hanno scopi differenti. Una delle due
chiavi, detta privata, viene conservata dall’utente in un luogo sicuro e deve
categoricamente rimanere nota solo a lui/lei. L’altra chiave della coppia, detta pubblica,
viene invece resa pubblica in associazione con l’identità del possessore. Le due chiavi
sono legate da una relazione matematica, frutto dei progressi della Teoria dei Numeri,
tale che è molto facile (per un computer) derivare la chiave pubblica da quella privata,
ma è difficilissimo (quasi impossibile) derivare la chiave privata da quella pubblica.
I sistemi a chiave asimmetrica non richiedono l’esistenza di un canale sicuro per
l’interscambio della chiave, perché l’unica chiave che occorre scambiare è quella
pubblica. Inoltre, oltre alla riservatezza ed integrità del messaggio, supportano anche
l’autenticazione ed il non ripudio.
Lo schema in figura mostra il funzionamento di un sistema a chiave asimmetrica (o
pubblica) per ottenere la riservatezza ed integrità del messaggio. Per ottenere queste
funzionalità, il solo destinatario deve generare (tramite l’algoritmo) una coppia di chiavi
pubblica-privata, conservare la propria chiave privata in un luogo sicuro e pubblicare la
chiave pubblica in associazione alla propria identità.
Il mittente, che per queste funzioni non necessità di proprie chiavi, utilizza l’algoritmo
matematico e la chiave pubblica del destinatario per criptare il messaggio, che viene

Versione 1.0 (3/5/2004) Pagina 56 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

recapitato al destinatario tramite un canale non sicuro (ad esempio Internet). Il


destinatario decripta il messaggio usando la propria chiave privata.
Chiunque può inviare un messaggio criptato al destinatario usando la chiave pubblica,
ma solo quest’ultimo può decrittarlo con la sua chiave privata.

Figura 10 – Schema di funzionamento di un sistema a chiave asimmetrica

L’algoritmo a chiave asimmetrica fu ideato nel 1977 da Ron Rivest, Adi Shamir e
Leonard Adleman, tre matematici esperti di Teoria dei Numeri, dalle cui iniziali prende
il nome di RSA. L’algoritmo RSA sfrutta le proprietà dei numeri primi per generare una
coppia di numeri molto grandi (le chiavi pubblica e privata) legate da una relazione che
consente di generare facilmente la chiave pubblica da quella privata, mentre
l’operazione inversa richiede tempi lunghissimi. Il tempo che occorre per ricavare la
chiave privata da quella pubblica (e quindi violare il sistema) dipende dalla lunghezza
della chiave pubblica. Oggi, una lunghezza della chiave pubblica di 1024 bit viene
generalmente considerata sufficiente per garantire la non violabilità del sistema (tempi
di calcolo paragonabili alla vita dell’universo).

RSA è normalmente incluso nei browser e in moltissimi altri programmi che


trasmettono dati attraverso canali non sicuri.

Versione 1.0 (3/5/2004) Pagina 57 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Figura 11 – Esempio di chiave pubblica

La firma digitale
I sistemi a chiave asimmetrica supportano anche l’autenticazione ed il non ripudio del
mittente. Per ottenere queste funzionalità, le chiavi pubbliche e private vengono usate in
maniera duale rispetto al caso della riservatezza ed integrità del messaggio, con una
procedura che è nota come firma digitale.
Per ottenere queste funzionalità, il solo mittente deve generare (tramite l’algoritmo) una
coppia di chiavi pubblica-privata, conservare la propria chiave privata in un luogo
sicuro e pubblicare la chiave pubblica in associazione alla propria identità. Il mittente
utilizza quindi l’algoritmo matematico e la propria chiave privata per criptare il
messaggio, che viene recapitato al destinatario tramite un canale non sicuro (ad esempio
Internet). Il destinatario, che per queste funzioni non necessità di proprie chiavi,
decripta il messaggio usando la chiave pubblica del mittente.
Chiunque può verificare l’identità del mittente usando la sua chiave pubblica, ma solo
quest’ultimo può firmarlo con la sua chiave privata.
Nella pratica, il mittente cripta il messaggio sia con la sua chiave privata (per firmarlo)
che con la chiave pubblica del destinatario (per garantire che solo lui possa leggerlo). Il
destinatario, a sua volta, utilizza sia la propria chiave privata (per riprodurre il
messaggio in chiaro) che la chiave pubblica del mittente (per accertarne l’autenticità).

Versione 1.0 (3/5/2004) Pagina 58 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Il certificato digitale e la PKI (Public Key Infrastructure)


I sistemi a chiave asimmetrica necessitano di un prerequisito fondamentale: la
certificazione dell’accoppiamento tra chiave pubblica e identità dell’utente. In assenza
di tale certificazione, un malintenzionato potrebbe pubblicare la sua chiave pubblica
associandola con i dati anagrafici di un altro, con la conseguenza di poter leggere i
messaggi inviati a questi e di poter addirittura firmare per suo conto, “rubandogli” di
fatto l’identità.
Per prevenire tali comportamenti illeciti, sono stati istituiti gli enti certificatori,
organismi autorizzati ad emettere un documento che associa la chiave pubblica
all’identità dell’utente, detto certificato digitale. L’utente si reca presso l’ente
certificatore, dimostra la propria identità e chiede la generazione di una coppia di chiavi
pubblica e privata. L’utente conserva la chiave privata in un luogo sicuro, mentre l’ente
certificatore emette un certificato digitale. Il certificato digitale contiene i dati anagrafici
dell’utente, un numero di serie, una data di scadenza, la chiave pubblica e la firma
digitale dell’ente certificatore.
L’ente certificatore svolge anche altre funzioni indispensabili: oltre all’emissione dei
certificati digitali, è prevista la revoca e la sospensione, il rinnovo alla scadenza, la
pubblicazione di black list (liste nere) di certificati associati a comportamenti illeciti,
etc...
L’insieme dei soggetti, delle procedure, dell’hardware, del software, dei materiali (ad
esempio smart card), delle directory di certificati necessari a garantire il funzionamento
di questo sistema è noto come PKI (Public Key Infrastructure = Infrastruttura a chiave
pubblica).

Sistemi di pagamento
L’erogazione di servizi virtuali necessità di un sistema di pagamento su Internet.
L’evoluzione di questi ha visto l’utilizzo di diversi mezzi, tra cui la carta di debito
(Bancomat), la carta di credito ed il denaro elettronico. Per l’e-Commerce è spesso
utilizzato anche il pagamento alla consegna, che però non può essere considerato un
sistema di pagamento on-line.
Oggi sono utilizzati quasi esclusivamente due sistemi di pagamento on-line:
 Carta di Credito: l’utente digita i dati identificativi della propria carta di credito
(tipo, numero, intestazione, date di emissione e scadenza) attraverso un canale reso
sicuro da un sistema di crittografia; l’erogatore del servizio verifica con l’istituto
emittente la copertura della carta ed accetta il pagamento;
 denaro elettronico (electronic cash): è uno strumento che consente di pagare
attraverso una convenzione con uno o più Istituti di Credito, immettendo i necessari
dati identificativi attraverso un canale reso sicuro da un sistema di crittografia; è un
sistema che ha grande diffusione negli Stati Uniti, ma scarsissima in Europa.

I sistemi di pagamento on-line sono resi possibili dall’utilizzo di sistemi di crittografia


per la trasmissione sicura dei dati identificativi necessari. In assenza di tali sistemi un
utente malintenzionato potrebbe impossessarsi dei dati identificativi del sistema di
pagamento di un utente (ad esempio gli estremi della carta credito) ed utilizzarli per
compiere acquisti a sue spese.

Versione 1.0 (3/5/2004) Pagina 59 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Il sistema di crittografia di gran lunga più utilizzato è SSL (Secure Sockets Layer =
Strato di prese sicure). SSL è un protocollo che gestisce la sicurezza nella trasmissione
di un messaggio su Internet, garantendo riservatezza, integrità ed autenticazione. E’
basato sull’algoritmo RSA e include l’utilizzo di certificati digitali. SSL è incluso nei
browser ed in molti dei programmi utilizzati su Internet.

Quando il browser accede ad una pagina che supporta SSL, il protocollo di


presentazione cambia da HTTP ad HTTPS (Hypertext Transfer Protocol over Secure
Socket Layer, ossia HTTP su SSL). La transizione è segnalata da diversi messaggi
grafici (su Microsoft Internet Explorer):
 compare un avviso di protezione che recita: “Si stanno per visualizzare delle
pagine su una connessione protetta. Le informazioni scambiate con questo sito non
possono essere visualizzate da altri utenti del Web”;
 compare un catenaccio chiuso nella barra di stato del browser (la barra
orizzontale in basso);
 il primo elemento dell’URL cambia da http ad https.

Il protocollo HTTPS decripta le pagine a cui si accede e cripta i messaggi inviati,


appoggiandosi al protocollo SSL. Tramite HTTPS gli estremi del pagamento viaggiano
criptati, garantendo la sicurezza degli utenti.

Versione 1.0 (3/5/2004) Pagina 60 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

6 L’integrazione delle applicazioni


Le applicazioni trattate nel capitolo precedente gestiscono singoli aspetti del bisogno
informativo di un’azienda. Spesso queste applicazioni suddividono l’informazione
aziendale in compartimenti stagni, con fenomeni di ridondanza, sovrapposizione e
incongruenza dei dati, nonché di difficoltà a coglierne gli aspetti di sintesi.

Per superare i limiti di questa frammentazione, esistono numerose tecniche ed


applicazioni di integrazione, suddivise in orizzontali e verticali in base alle finalità
dell’integrazione stessa.

6.1 L’integrazione orizzontale


Le applicazioni trattate nel capitolo precedente vengono definite “verticali”, in quanto
mirate a svolgere compiti specialistici o a risolvere specifiche problematiche (ad
esclusioni di alcuni casi, come il Workgroup, la cui natura è più di supporto orizzontale
che di specializzazione verticale).

Le applicazioni verticali gestiscono le informazioni aziendali con punti di vista,


approcci e standard diversi, legati alle specifiche esigenze funzionali dell’applicazione.
Molti dati sono comuni a più applicazioni verticali, ma sono gestiti in maniera differente
e, comunque, la ridondanza porta inevitabilmente ad incongruenze (lo stesso dato in
applicazioni diverse assume valori differenti). Inoltre, a causa del sovrapporsi storico di
acquisizioni di applicativi in periodi successivi, le applicazioni verticali rappresentano
di solito una stratificazione di tecnologie molto diverse e spesso incompatibili.

Per superare i limiti della frammentazione di standard e tecnologie tra le applicazioni


verticali, si sono sviluppate diverse tecniche di integrazione orizzontale.

EAI (Enterprise Application Integration)


L’EAI (Enterprise Application Integration = Integrazione di applicazioni d’impresa) è
l’insieme dei progetti, metodologie e strumenti per collegare e coordinare le
applicazioni di un azienda ed i loro dati in modo da ottenerne un sistema integrato,
consolidato e moderno.
L’EAI prende in carico le applicazioni esistenti, comprese quelle che sono state
“ereditate” da periodi aziendali e tecnologici precedenti (dette applicazioni legacy =
eredità, retaggio) e le relative banche-dati e, grazie a metodologie e strumenti, le fa
comunicare tra di loro e con le interfacce moderne (Web) superando le barriere dovute
ai diversi approcci, formati e standard tecnologici. In questo modo, l’azienda può
continuare ad usare applicazioni verticali su piattaforme tecnologiche differenti (ad
esempio, Mainframe, Client/Server e Web), pur non rinunziando ad una visione
integrata e moderna del proprio sistema informativo.
L’EAI ha avuto un grande sviluppo dopo la diffusione del Web, perché le aziende, che
avevano fatto grossi investimenti su applicazioni ormai legacy, si sono trovate di fronte
alla necessità di aprire i loro dati e le loro funzioni al Web (e-Commerce, Extranet,

Versione 1.0 (3/5/2004) Pagina 61 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

servizi virtuali, etc...). L’EAI permette di evitare o rimandare gli enormi investimenti
che sono necessari per sostituire queste applicazioni.
L’EAI fa uso di numerose tecnologie per raggiungere il suo scopo. Il software utilizzato
dai sistemi EAI prende generalmente il nome di middleware (letteralmente, roba di
mezzo) ed è basato su servizi di messaging (scambio di messaggi) tra applicazioni e
banche-dati.

XML (Extensible Mark-up Language)


XML (Extensible Mark-up Language = Linguaggio di contrassegno estensibile) è uno
strumento per l’integrazione dei dati, che consente di creare formati standard e di
scambiarli tra applicazioni attraverso sistemi Web.
XML, come HTML, è un linguaggio di Mark-up, basato quindi su coppie di
contrassegni che contengono istruzioni (tag) che specificano le informazioni. Ma mentre
nel linguaggio HTML le istruzioni sono predefinite e servono a specificare come
devono essere mostrate le informazioni contenute nel tag (layout), in XML le istruzioni
vengono create dall’utente (da cui il nome estensibile) e servono a descrivere i dati
contenuti nel tag. Dato che le istruzioni sono definite dall’utente, occorre associare al
file XML un altro documento che descrive il significato di queste istruzioni, denominato
DTD (Document Type Definition = definizione del tipo di documento).
XML può essere considerato un’estensione di HTML ed HTML un caso particolare di
XML, dove il DTD descrive le specifiche di layout associate ad ogni tag.

ERP (Enterprise Resource Planning)


Gli ERP (Enterprise Resource Planning = Pianificazione delle risorse d’impresa) sono
macro-applicazioni composte da numerosi moduli, che sono in grado di supportare le
attività più importanti di un’azienda: pianificazione, approvvigionamenti e fornitori,
magazzino, ordini, fatturazione, assistenza al cliente, contabilità, personale, etc...
Gli ERP risolvono alla radice il problema dell’integrazione orizzontale. Infatti, la base-
dati è unica per tutti i moduli e quindi ciascun dato viene memorizzato una volta sola in
un unico formato. Gli ERP consentono un approccio di crescita modulare. L’azienda
può avviare un sistema ERP ridotto, con i moduli ritenuti più urgenti ed aggiungere nel
tempo altri moduli che si integrano automaticamente con quelli esistenti. Inoltre, negli
ERP attuali, la base-dati è i moduli sono progettati per l’integrazione con il Web.
La realizzazione di un sistema ERP richiede generalmente un investimento molto grosso
da parte dell’azienda, soprattutto per la fase di personalizzazione dei moduli, che
essendo progettati per la generalità delle aziende, richiedono una lunga e complessa fase
di adattamento in base all’analisi dei processi aziendali, con l’utilizzo di costose risorse
specializzate. Occorre inoltre addestrare adeguatamente il personale al loro utilizzo.
Sono perciò in genere utilizzati dalle grosse aziende, come le multinazionali (anche se il
trend è verso il downsizing = ridimensionamento).
Il sistema ERP più famoso e diffuso è il tedesco SAP. Data la crescente diffusione dei
sistemi ERP, molti altri produttori di software (tra cui Oracle, PeopleSoft, Baan, etc...)
hanno proposto sistemi analoghi.

Versione 1.0 (3/5/2004) Pagina 62 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

6.2 L’integrazione verticale


Oltre all’esigenza di disporre di un sistema informativo integrato, consolidato e
moderno, l’azienda, ed in particolare il suo management, ha la necessità di monitorare
continuamente l’andamento del business aziendale, ricavando dal sistema informativo le
opportune informazioni di sintesi atte a fornire il quadro di insieme.

Per ricavare queste informazioni di sintesi dalle grandi moli di dati gestiti dal sistema
informativo occorrono strumenti appositi, in grado di estrarre, sintetizzare, riepilogare,
illustrare, ma anche scovare le informazioni nascoste tra i dati.

L’integrazione verticale è l’insieme degli strumenti software e di riorganizzazione dei


dati che permettono di estrarre le informazioni dai dati e di fornirle quando e dove
servono e nel giusto formato.

Dati e informazioni
I dati sono fatti grezzi che descrivono un particolare fenomeno (ad esempio, l’ordine di
un prodotto).
Le informazioni sono dati che assumono un particolare significato in un dato contesto,
spesso grazie al fatto che risultano dalla elaborazione e sintesi di grosse moli di dati (ad
esempio, l’andamento degli ordini in un dato periodo). Le informazioni raccontano di
andamenti, tendenze, fenomeni che non appaiono guardando i dati.
Le informazioni hanno tre “dimensioni”:
 tempo: l’informazione deve essere accessibile quando serve e deve riguardare il
giusto periodo di tempo;
 luogo: l’informazione deve essere accessibile dove serve, dovunque l’utente sia;
 formato: l’informazione deve essere accessibile nel formato corretto (testo,
audio, video, etc...).

MIS (Management Information System)


I MIS (Management Information System = Sistema di informazione della direzione)
sono sistemi hardware e software dedicati a produrre informazioni di sintesi per il
management aziendale, ricavandole dai dati presenti nei database aziendali e/o in
banche dati esterne all’azienda.
Nell’accezione odierna, i MIS comprendono spesso anche gli applicativi di Contabilità e
Controllo di Gestione, gli EIS (Executive Information System = Sistema di
informazione dell’alta direzione), che sono orientati ad estrarre dai database aziendali
informazioni rilevanti per l’alta direzione, i DSS, il Project Management (strumenti che
supportano la direzione dei progetti) e gli IRS (Information Retrieval System).

DSS (Decision Support System)


I DSS (Decision Support System = Sistema di supporto alle decisioni) sono sistemi
interattivi che supportano il management aziendale nel prendere decisioni, soprattutto in
situazioni complesse o di difficile interpretazione. I DSS analizzano i dati presenti nei
data-base aziendali e, sulla base di questi, permettono di costruire dei modelli della

Versione 1.0 (3/5/2004) Pagina 63 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

realtà con i quali il manager può interagire mediante interfacce grafiche amichevoli, per
effettuare delle simulazioni (analisi what-if = cosa-se).
Tipicamente, i dati e le informazioni che un DSS analizza e modella sono, ad esempio:
 dati delle vendite confrontate su settimane successive;
 dati dei ricavi presunti per vendite di nuovi prodotti;
 conseguenze di differenti decisioni alternative, sulla base dell’esperienza passata
nel contesto assunto.
Un DSS può includere un Sistema Esperto (o sistema basato sulla conoscenza), cioè un
software tipico dell’Intelligenza Artificiale, in grado di eseguire ragionamenti
inferenziali (cioè non basati su algoritmi, ma più simili al modo di ragionare del
cervello umano), basandosi su set di regole preimpostate, che nei sistemi più sofisticati
possono anche evolvere sulla base dell’esperienza maturata dal Sistema Esperto stesso.

Cruscotti
Sono strumenti di tipo EIS (Executive Information System = Sistema di informazione
dell’alta direzione), orientati al top management aziendale, che effettuano un’estrema
sintesi dell’andamento dell’azienda, visualizzandolo graficamente mediante pochi
parametri.
Il nome deriva dalla somiglianza (come aspetto e come principio) degli strumenti di
questo tipo ad un cruscotto automobilistico, che, con pochi indicatori, permette il
monitoraggio complessivo dell’autovettura.

Datawarehouse
I Datawarehouse (Magazzino di dati) sono immense banche-dati centralizzate che
contengono le serie storiche dei dati aziendali, organizzati secondo logiche
completamente diverse da quelle dei database di produzione.

Le applicazioni verticali, e soprattutto le loro basi-dati, hanno un’impostazione che non


è la più adatta a fornire informazioni di sintesi. Le basi-dati delle applicazioni verticali,
infatti, sono strutturate in maniera da agevolare il compito delle transazioni, che in
genere prendono in considerazione un gruppetto di dati relativi ad una singola
occorrenza (un ordine, una fattura, un versamento in conto corrente, etc...), e lo
inseriscono o modificano per svolgere la funzione assegnata (inserire un ordine,
registrare una fattura, accreditare il versamento in conto corrente, etc...). Le basi-dati
delle applicazioni verticali sono quindi organizzate per occorrenze.

Il manager che vuole esaminare l’andamento del business aziendale (andamento degli
ordini, della fatturazione, dei conti correnti) non è interessato alle singole occorrenze,
ma al comportamento complessivo delle transazioni rispetto ad un parametro di
riferimento (il periodo temporale, il settore aziendale, la regione geografica, etc...), che
viene chiamato dimensione.

Per consentire tali analisi, occorre riorganizzare i dati, astraendo dalle occorrenze e
“ammassandoli” per dimensione. Occorrono quindi basi-dati specializzate per questo
compito: sono i Datawarehouse.

Versione 1.0 (3/5/2004) Pagina 64 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

In un Datawarehouse vengono alimentati periodicamente dai database aziendali,


estraendo le informazioni dalle singole occorrenze e riorganizzandole secondo le
dimensioni previste dal progetto di quel particolare Datwarehouse. Dimensioni tipiche
sono:
 il periodo temporale: la settimana, il mese, l’anno;
 la categoria di prodotto: per un frigorifero potrebbe essere la classe di volume o
la classe energetica;
 l’area di vendita: nazione, regione, provincia;
 la tipologia di clienti: ad esempio, privati, professionisti, aziende, etc...
Ciascuna dimensione, inoltre, può essere organizzata su più livelli. Ad esempio la
dimensione temporale potrebbe prevedere il livello annuale, mensile e settimanale.
Per la loro organizzazione, i Datawarehouse sono chiamati anche banche-dati
multidimensionali.

OLAP (On-Line Analytical Processing)


Gli OLAP (On-Line Analytical Processing = Elaborazione analitica in linea) sono
strumenti software che eseguono analisi multidimensionali sui dati contenuti nei
Datawarehouse.
Gli OLAP sfruttano l’organizzazione multidimensionale dei Datawarehouse per
presentare le informazioni secondo molteplici punti di vista, incrociando tra loro
dimensioni. Ad esempio, l’analisi OLAP può evidenziare tutti i prodotti venduti in una
regione in un dato periodo di tempo.
L’analisi multidimensionale può essere pensata come la manipolazione di un ipercubo
n-dimensionale, dove n è il numero di dimensioni supportate dal Datawarehouse. Le
operazioni di manipolazione comprendono di solito:
 sezionamento dell’ipercubo con un iperpiano (un “piano” avente n-1
dimensioni) per fissare una dimensione ad un certo valore ed analizzare il fenomeno
al variare delle altre (ad esempio, l’andamento delle vendite in una certa regione al
variare del tempo e del tipo di prodotto);
 rotazione dell’ipercubo, per scambiare la dimensione fissata ad un certo valore
con un’altra (ad esempio, l’andamento delle vendite in un certo mese nelle varie
regioni al variare del tipo di prodotto);
 delimitazione dell’ipercubo con un ipercubo più piccolo, per limitare il range
delle dimensioni ad una casistica più ridotta (ad esempio, l’andamento delle vendite
in alcune regioni, in certi periodo di tempo per certi prodotti);
 drill-down (trapanazione verso il basso): consiste nel suddividere una
dimensione in sottodimensioni per approfondire l’analisi di un fenomeno che al
livello superiore non appare risolto (ad esempio, passaggio dall’analisi per regione a
quella per provincia per individuare l’area precisa dove le vendite hanno subito un
andamento negativo).

Versione 1.0 (3/5/2004) Pagina 65 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Figura 12 – Esempi di analisi multidimensionale OLAP

Gli strumenti OLAP offrono interfacce grafiche amichevoli per effettuare le operazioni
citate, consentendone l’uso al management aziendale.
Il temine OLAP si contrappone al termine OLTP (On-Line Transaction Processing =
Elaborazione transazionale in linea), che identifica gli strumenti software che
supportano elaborazioni orientate alle transazioni.

Data Mining
Il Data Mining (estrazione di dati) è una tecnica, supportata da appositi strumenti
software, che consente di rovistare sistematicamente tra i dati per individuare
informazioni nascoste.
Il principio alla base del Data Mining è che nella massa di dati detenuti dai database
aziendali siano nascosti legami, associazioni, configurazioni, tendenze e altre regole che
consentono di dedurre informazioni su fenomeni che non sono apparenti nei dati stessi.
Esempi di regole ricercate dai sistemi di Data Mining sono:
 Configurazioni in cui un evento è sistematicamente connesso ad un altro evento
(Associazione);
 Configurazioni in cui un evento conduce sistematicamente ad un altro evento
successivo (Path Analysis = Analisi di percorso o di sequenza);
 Configurazioni di tipo nuovo (Classificazione);
 Raggruppamenti sistematici di fatti (Clustering = Raggruppamenti)
 Configurazioni di dati che portano a previsioni ragionevolmente affidabili sui
comportamenti futuri (Previsioni).

Versione 1.0 (3/5/2004) Pagina 66 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

L’esempio classico di analisi effettuata con uno strumento di Data Mining è la Basket
Analysis (Analisi del carrello della spesa). Questa analisi permette di scovare relazioni
non apparenti tra gli acquisti di prodotti effettuati dai clienti di un supermercato. La
scoperta che, ad esempio, i clienti che acquistano un dato prodotto ne acquistano sempre
un altro, può aiutare la direzione del supermercato a disporre più razionalmente i due
beni sui banconi o ad associarli in un’offerta speciale.

Versione 1.0 (3/5/2004) Pagina 67 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

7 Le basi di dati
Una componente fondamentale dei Sistemi Informativi Aziendali sono i dati. Le
applicazioni possono esser pensate come l’insieme delle funzionalità e dei dati sui quali
queste funzionalità agiscono. Le applicazioni si appoggiano perciò su strutture che
immagazzinano i dati, chiamate basi di dati.

Le basi di dati o banche-dati sono una raccolta strutturata dei dati che servono alle
applicazioni, cioè una raccolta organizzata in modo che possa essere facilmente
acceduta, gestita e aggiornata. La strutturazione dei dati consiste nella loro
catalogazione ed etichettatura e nella memorizzazione secondo formati standard.

Con l’evoluzione dell’informatica, le basi di dati sono diventate sempre più sofisticate,
associando a strutturazioni sempre più complesse anche capacità autonome di lettura,
scrittura, controllo dei dati, ricerca, produzione di resoconti, etc... Questa evoluzione ha
portato al diffondersi di software specializzati nella gestione di basi di dati, che si
collocano in posizione intermedia tra il software di sistema e quello applicativo, detti
Database (base di dati).

7.1 File
Le basi di dati più semplici sono costituite da un insieme di file che vengono gestiti ed
integrati dai programmi applicativi.

Figura 13 – La struttura di un file

File
E’ un insieme di registrazioni omogenee (cioè tutte dello stesso tipo) di dati, detti
record. Il termine deriva dal nome inglese del cassetto dello schedario, in genere un
cassetto lungo e scorrevole che contiene numerose schede cartacee dello stesso tipo,
ciascuna riportante i dati di un’entità (ad esempio un articolo).
La strutturazione nei file consiste nell’organizzazione delle singole registrazioni
(record), che è la stessa per ciascuno, permettendo di associare ad uno spazio di
memoria sempre lo stesso significato (campo).

Versione 1.0 (3/5/2004) Pagina 68 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Record
Il record (registrazione) è la singola registrazione di un file, corrispondente ad una
scheda dell’archivio cartaceo (ad esempio, un cliente).
Il record costituisce la singola occorrenza di un file ed è suddiviso in aree di memoria
che contengono le singole informazioni, dette campi.

Campo
Il campo è la più piccola componente dei dati ed è costituito da un insieme predefinito
di Byte in un area di memoria (ad esempio il cognome, la data di nascita, l’importo della
fattura, etc...).
Al campo sono in genere associate alcune caratteristiche:
 una posizione all’interno del record, espressa come numero del Byte dove il
campo ha inizio;
 una lunghezza espressa in Byte;
 un formato, che prescrive la tipologia di dati che può contenere (ad esempio, dati
alfabetici per un cognome, numerici per un importo);
 talvolta un dominio, cioè un intervallo o una lista di valori ammissibili (ad
esempio, un valore minimo e massimo per un importo, “M” o “F” per il campo
sesso, etc...).
Ciascun record di un file è suddiviso in un certo numero di campi, sempre nello stesso
modo in tutto il file. Quindi un dato campo ha sempre le stesse caratteristiche in tutti i
record di un file. Questa strutturazione rende i file facilmente gestibili dai computer.

Chiave primaria
Una chiave primaria è un campo o un insieme di campi che contengono l’insieme
minimo di dati necessari ad identificare univocamente il record (ad esempio, per un
record cliente la chiave potrebbe essere il codice fiscale, per una fattura l’insieme del
campo anno e del campo numero fattura). La chiave primaria deve essere
obbligatoriamente valorizzata in tutti i record.
La chiave primaria è uno strumento di accesso diretto ai record del file. La sua unicità,
infatti, permette di leggere direttamente il record corrispondente senza bisogno di
scorrere tutto il file.

Chiave secondaria
Alcuni campi o gruppi di campi possono costituire un mezzo di accesso diretto ai record
di un file alternativo alla chiave primaria. Sono i campi (o gruppi) che permettono
anch’essi di individuare univocamente il record o, comunque, di restringere la ricerca a
pochissimi record. Questi campi (o gruppi) prendono il nome di chiave secondaria.
Ci possono essere più chiavi secondarie in un record e possono essere univoche o non
univoche (cioè ci sono più record, in genere pochi, che condividono quella chiave
secondaria). Inoltre la chiave secondaria non deve necessariamente essere valorizzata in
tutti i record.

Versione 1.0 (3/5/2004) Pagina 69 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Un esempio di chiave secondaria univoca è il codice fiscale in un record cliente in cui la


chiave primaria è il codice cliente assegnato dall’azienda. Possono esserci clienti di cui
non è noto il codice fiscale (la chiave secondaria non è valorizzata), ma in tutti i record
il codice cliente deve essere valorizzato. Un esempio di chiave secondaria non univoca è
il reparto di appartenenza di un dipendente, che è comune a un gruppo di dipendenti.

Basi di dati costituite da file piatti


Le basi di dati più semplici e primitive sono costituite da un insieme, anche molto
grande, di file. Ciascun file contiene i dati relativi ad una particolare entità rilevante per
l’applicazione: l’anagrafica del cliente, le caratteristiche di un prodotto, i dati di un
ordine, quelli di una fattura, etc...
In queste basi di dati, il file è in realtà un’allocazione di memoria di massa che il
Sistema Operativo mette a disposizione e gestisce come un corpo unico. La descrizione
della struttura interna del file, cioè la sua suddivisione in record e campi e le
caratteristiche dei singoli campi (posizione, lunghezza, formato, dominio), è contenuta
all’interno dei programmi applicativi. Inoltre, anche le relazioni che esistono tra file
differenti (per esempio, la relazione che dice che una data fattura è correlata ad un dato
prodotto e ad un dato cliente) sono gestite dai programmi applicativi, i quali
costruiscono i collegamenti basandosi sul valore dei campi (ad esempio, nel record della
fattura ci sarà un campo prodotto ed uno cliente che correlano la fattura al relativo
prodotto e cliente).
Questa organizzazione è denominata a file piatti, perché i file sono costituiti dalle due
dimensioni record e campo, ma mancano della terza dimensione, quella del
collegamento tra file, che deve essere creata dai programmi in fase esecutiva.
L’organizzazione a file piatti, pur potendo funzionare egregiamente, ha diversi
svantaggi. E’ a carico del programma applicativo, e quindi del programmatore, la
corretta suddivisione dei file in record e di questi in campi, nonché il rispetto delle
caratteristiche del singolo campo. Ciò non costituisce solo un aggravio del carico di
lavoro dei programmatori, ma favorisce la possibilità di errori, specialmente sotto forma
di incongruenze tra programmi scritti da programmatori diversi che accedono allo stesso
file.
Per limitare la possibilità di questi errori, i programmatori hanno sviluppato vari sistemi
per mettere a fattor comune le strutture dei file, con meccanismi di incorporo
automatico nei programmi, senza tuttavia risolvere completamente il problema.
Un’altra tipologia di errori possibili da parte dei programmatori è il non rispetto del
formato dei campi, che può portare a registrare lettere in campi numerici, valori non
previsti dal dominio, date inesistenti (ad esempio 30 febbraio), etc...
Ma la difficoltà più grande incontrata dai programmatori che utilizzano file piatti è la
gestione a programma della corretta correlazione tra file diversi e della conseguente
congruenza dei dati. Comportamenti anche solo leggermente diversi tra programmi
diversi possono portare facilmente a disallineamenti, ridondanze e incongruenze.
Infine, l’inclusione della struttura dei dati all’interno dei programmi fa sì che una
modifica alla prima comporti la corrispondente modifica di tutti i programmi che vi
accedono.

Versione 1.0 (3/5/2004) Pagina 70 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

7.2 Database
I Database (Basi di dati) sono sistemi composti da una raccolta organizzata di file e da
un DBMS (Data Base Management System = Sistema di gestione della base dati), un
software in grado di gestire la raccolta di file e permetterne l’accesso agli utenti.
I Database sono stati ideati per superare i problemi causati dalle strutture a file piatti. Il
principio alla base dei Database è quello di incorporare sia la struttura interna,
caratteristiche dei campi compresi, che le relazioni tra file in una struttura unica,
associata ad un motore software con capacità autonome di controllo e di elaborazione
dei dati.
Il Database si fa carico della struttura interna dei file, delle caratteristiche dei campi e
dei relativi controlli, della lettura e scrittura dei file, della ricerca dei dati e della
generazione di report (rendiconti) anche complessi. Il Database comunica con i
programmi applicativi e gli utenti con un’interfaccia che nasconde completamente i
particolari della struttura, sgravando i programmatori dal compito di gestirla, limitando
drasticamente la possibilità di errori e consentendo anche l’accesso diretto agli utenti
finali.

Struttura logica e fisica


I Database conseguono la separazione tra accesso ai dati e dettagli della loro
organizzazione tramite la separazione tra struttura logica e struttura fisica.
I programmi applicativi accedono a file logici, strutturati secondo le esigenze
dell’applicazione, quindi privi delle complessità generate dalla necessità di
memorizzarli fisicamente, ma orientati al punto di vista applicativo. I dati vengono in
realtà mappati sulla memoria di massa come tradizionali file fisici, ma il DBMS
nasconde tale struttura fisica, traducendola in quella logica.
Il DBMS può quindi considerarsi un’interfaccia tra il mondo applicativo e quello
tecnico nel settore dei dati.

Versione 1.0 (3/5/2004) Pagina 71 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Figura 14 – Confronto tra l’organizzazione dei file piatti e dei Database

Entità e relazioni
La struttura logica dei dati, o modello logico, è organizzata per rispecchiare il punto di
vista applicativo, il quale tende a descrivere la realtà che vuole informatizzare in termini
di entità e relazioni. Le entità sono i soggetti e gli oggetti che popolano il mondo che si
sta rappresentando nell’applicazione: clienti, prodotti, ordini, fatture sono esempi di
entità.
Le relazioni sono i collegamenti funzionali (espressi in genere sotto forma di predicati)
tra le entità: cliente emette ordine, ordine comprende prodotti, fattura viene emessa a
cliente per ordine sono esempi di relazioni.
Le entità rappresentano l’evoluzione in senso logico dei file fisici, mentre le relazioni
rappresentano la “terza dimensione” che manca nei file piatti.

Occorrenze
Nel modello logico, le entità, e in alcuni Database, le relazioni si ripetono in molteplici
occorrenze, che rappresentano le singole valorizzazioni concrete: il cliente di codice
xxxx, l’ordine n. yyy, la fattura n. zz del 2004.
Le occorrenze rappresentano l’evoluzione in senso logico dei record dei file fisici.

Attributi
Nel modello logico, le entità e, in alcuni Database, le relazioni sono composte da
attributi, che rappresentano i dati associati ad entità e relazioni. Nei Database gli

Versione 1.0 (3/5/2004) Pagina 72 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

attributi incorporano le caratteristiche fisiche (lunghezza, formato). Nei Database più


avanzati, gli attributi incorporano anche le caratteristiche formali (dominio di valori,
correttezza formale di una data) o addirittura i comportamenti (ad esempio, la data
incorpora il calcolo dei giorni lavorativi dall’inizio dell’anno).
Gli attributi rappresentano l’evoluzione in senso logico dei campi dei file fisici.

Attributi identificativi
Un insieme di uno o più attributi che definiscono in maniera univoca l’occorrenza viene
chiamato attributo (o insieme) identificativo.
Gli attributi identificativi rappresentano l’evoluzione in senso logico delle chiavi dei file
fisici.

Proprietà dei Database


Grazie a questa separazione tra modello logico e fisico e alle capacità del DBMS, i
Database garantiscono:
 indipendenza dei dati dai programmi: a differenza dei file piatti, nei Database la
struttura dei dati può essere modificata senza la necessità di modificare di
conseguenza tutti i programmi (ma solo quelli che accedono ai dati variati);
 controllo della ridondanza dei dati: solo le ridondanze previste dal progettista del
dello specifico Database vengono consentite;
 integrità dei dati: il Database previene all’origine le incongruenze dei dati;
 sicurezza dei dati: il Database controlla il rispetto degli accessi ai dati secondo le
abilitazioni previste dall’amministratore del sistema.

Interrogazione dei Database


L’interfaccia gestita da un Database astrae così tanto dalla struttura fisica dei dati che
non solo i programmi applicativi, ma anche gli utenti con un minimo di addestramento
possono accedervi direttamente.
Gli utenti accedono al Database tramite linguaggi di interrogazione semplificati. A
dispetto del nome, questi linguaggi permettono non solo di effettuare ricerche molto
complesse e di leggere tutti i dati, ma anche di modificarli (se si ha l’autorizzazione). Le
due categorie di linguaggi più diffuse sono:
 SQL (Structured Query Language = Linguaggio di interrogazione strutturato): è
un linguaggio interattivo che consente di ricercare, inserire, modificare i dati;
 QbE (Query by Example = Interrogazione per esempi): è un linguaggio più
intuitivo e semplice da utilizzare, ma meno potente, che formula le richieste tramite
esempi; è stato ideato per diffonderne l’utilizzo presso gli utenti finali.

Database gerarchici
I Database gerarchici sono i primi tipi di Database apparsi, quindi i più semplici e
primitivi, oggi utilizzati solo nelle applicazioni legacy.

Versione 1.0 (3/5/2004) Pagina 73 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Nel modello gerarchico le entità sono dei file con chiave, organizzati secondo una
struttura gerarchica ad albero. L’albero è costituito da un’entità radice (detta padre)
dalla quale si ramificano altre entità figlie, dalle quali a loro volta si ramificano altre
entità figlie, etc... Esiste quindi un solo tipo di relazione, quella padre-figlio (una
relazione 1-m, cioè una a molti) che è priva di attributi.

Figura 15 – Esempio di Database gerarchico

Il modello gerarchico è rigido e limitato, perché implementa un solo tipo di relazione,


del genere più semplice (1-m), mentre per descrivere la maggior parte delle realtà è in
genere necessario prendere in considerazione relazioni più complesse, come le relazioni
m-n (cioè relazioni uno a molti bidirezionali) o le relazioni tra più di due entità (ad
esempio cliente emette un ordine che contiene più prodotti).
Inoltre i database gerarchici in genere non incorporano controlli formali negli attributi,
lasciando l’onere di assicurarli ai programmi applicativi.

Database relazionali
I Database relazionali supportano un modello di relazioni definito dall’analista e quindi
in grado di rappresentare virtualmente qualunque realtà, per quanto complessa. I
Database relazionali sono i Database di gran lunga più utilizzati oggi.
La caratteristica distintiva dei Database relazionali è quindi la possibilità data
all’analista di progettare e definire un Modello Entità-Relazioni (noto anche come ER o
ERM = Entity Relationship Model).
Il Modello Entità-Relazioni è un elaborato grafico che descrive entità, relazioni, le loro
strutture e i loro rapporti. Le entità sono rappresentate graficamente da rettangoli e le
relazioni da rombi. L’analista può definire tutte le relazioni che ritiene utile per
descrivere la realtà che sta informatizzando. Le relazioni possono coinvolgere due o più
entità, possono essere di tipo 1-1 (uno-a-uno) 1-m (uno-a-molti) o m-n (molti-a-molti).
Nelle relazioni 1-1, ad ogni occorrenza della prima entità corrisponde una ed una sola
occorrenza della seconda. Ad esempio, Impiegato Ha Matricola è una relazione di tipo
1-1, perché ad ogni impiegato corrisponde un sola matricola e viceversa.
Nelle relazioni 1-m, ad un’occorrenza della prima entità possono corrispondere zero,
una o più occorrenze della seconda, mentre ad una della seconda può corrispondere solo
una della prima. Ad esempio, Categoria Comprende Articolo è una relazione di tipo 1-

Versione 1.0 (3/5/2004) Pagina 74 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

m, perché una categoria contiene m articoli ed un articolo appartiene ad una sola


categoria.
Nelle relazioni m-n ad una occorrenza della prima entità possono corrispondere zero,
una o più occorrenze della seconda e ad un occorrenza della seconda possono
corrispondere zero, una o più occorrenze della prima. Ad esempio, Cliente Ordina
Articolo è una relazione di tipo m-n, perché un cliente può acquistare n articoli ed un
articolo può essere acquistato da m clienti diversi.

Figura 16 – Relazioni 1:1, 1:m ed m:n

Matricola

Figura 17 – Esempi di relazioni 1:1, 1:m ed m:n

Versione 1.0 (3/5/2004) Pagina 75 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Tabelle
Nel modello relazionale entità e relazioni sono rappresentate come tabelle. In ciascuna
tabella le righe rappresentano le occorrenze di entità e relazioni, mentre le colonne
rappresentano gli attributi. Ciascuna cella contiene il valore di un dato attributo per una
data occorrenza.

Chiave esterna
In una tabella l’attributo identificativo della tabella rappresenta la chiave primaria
dell’entità o relazione. Per rappresentare le relazioni semplici tra due entità (quelle di
tipo 1-m, come Categoria Comprende Articolo), la chiave primaria dell’entità più
generale viene riportata come attributo dell’entità più specifica, con il nome di chiave
esterna. Nell’esempio assunto, l’entità Articolo avrà tra i suoi attributi, come chiave
esterna, la categoria dell’articolo, che è chiave primaria dell’entità Categoria.

Tabella Articolo Tabella Categoria

Figura 18 – Rappresentazione di una relazione 1:m

Per rappresentare le relazioni più complesse tra due entità (quelle di tipo m-n, che hanno
a loro volta occorrenze, come Cliente Ordina Articolo), le chiavi primarie delle due
entità relazionate, insieme ad eventuali altri attributi necessari a identificare
univocamente l’occorrenza della relazione, si concatenano a formare la chiave primaria
della relazione. Nell’esempio assunto, nel caso in cui il cliente possa ordinare l’articolo
una volta sola (ad esempio, biglietto aereo per un dato volo), la chiave primaria della
relazione Ordina sarà data dalla concatenazione delle chiavi primarie delle due entità
Cliente e Articolo. Nel caso in cui il cliente possa ordinare l’articolo più volte (ad
esempio, bullone), nella chiave primaria della relazione Ordina, oltre alle chiavi
primarie delle due entità Cliente e Articolo, sarà necessario concatenare un attributo che
identifica univocamente l’ordine (ad esempio data o numero o entrambi).

Versione 1.0 (3/5/2004) Pagina 76 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Tabella Cliente Tabella Articolo

Figura 19 – Rappresentazione di una relazione m:n

Database ad oggetti
I Database ad oggetti costituiscono un’ulteriore progresso nell’evoluzione dei Database.
In questi Database entità e relazioni, definibili dall’analista, sono degli oggetti.
Il modello a oggetti è un paradigma di programmazione che cerca di rappresentare la
realtà da informatizzare in modo più naturale, descrivendola come un insieme di oggetti,
che si relazionano tra loro.
Un oggetto è un modulo software avente le seguenti caratteristiche:
 è una scatola nera (black box), che comunica con l’esterno attraverso
un’interfaccia;
 è dotato di uno stato, che ha un valore iniziale e può essere modificato durante
l’elaborazione tramite l’interfaccia;
 è dotato di comportamenti, detti metodi, che possono essere invocati (attivati),
tramite l’interfaccia;
 interagisce con gli altri oggetti che compongono il software tramite lo scambio
di messaggi, che contengono anche dati.

Nei Database ad oggetti, le entità e le relazioni sono oggetti con un loro stato iniziale e
modificabile (grossolanamente corrispondente ai dati) e diversi comportamenti
associati. Ad esempio, una data può essere associata ad un metodo che calcola i giorni
lavorativi dall’inizio dell’anno (utile in ambito bancario), oppure l’articolo può essere
associato ad un metodo che gestisce il suo prelievo dal magazzino, etc…

Versione 1.0 (3/5/2004) Pagina 77 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Figura 20 – Confronto tra modello relazionale e modello ad oggetti

I Database ad oggetti non hanno avuto la diffusione che ci si poteva aspettare dal
parallelo grande sviluppo dei linguaggi di programmazione ad oggetti. Le motivazioni
sono diverse, dalla grande affidabilità e dalla diffusa conoscenza dei Database
relazionali, alla complessità di utilizzo dei Database ad oggetti.
Oggi, comunque, tutti i produttori di Database relazionali hanno incorporato nei loro
prodotti alcune delle caratteristiche dei Database ad oggetti, come la gestione di
contenuti multimediali, l’estensione dei controlli formali a veri e propri comportamenti
degli attributi, etc…

Versione 1.0 (3/5/2004) Pagina 78 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

8 Pianificazione e realizzazione di un sistema


informativo
Tutti i componenti illustrati fino ad ora (Hardware, software , reti, etc...) costituiscono la
materia prima o i semilavorati di un sistema informativo. Perché esso svolga i compiti
per i quali è stato ideato occorre il contributo della componente umana, che è costituita
da due elementi strettamente connessi: persone e processi.

Le persone contribuiscono al Sistema Informativo in termini di know-how


(competenza) sulle tecnologie, sui processi aziendali supportati e sulla progettazione del
Sistema Informativo. I processi guidano le persone in possesso del necessario know-
how nell’utilizzarlo al meglio e con sistematicità.

Le persone ed i loro ruoli


Nel ciclo di vita di un Sistema Informativo (Fattibilità tecnico-economica, Analisi,
Progettazione, Realizzazione, Collaudo, Manutenzione e Utilizzo, vedi Cap. 1) le
persone coinvolte svolgono ruoli differenti:
 Utenti: sono in genere dipendenti dell’azienda, che apportano il know-how
sull’azienda e sui suoi processi produttivi ed organizzativi; vengono intervistati
dagli analisti per determinare le caratteristiche dei processi da supportare con l’ICT;
 Analisti: sono professionisti dell’ICT, con particolare competenza ed attitudine
nel costruire modelli dei processi aziendali, basandosi sulle informazioni acquisite
dagli utenti tramite interviste; nel processo di analisi, utilizzano le metodologie
come guida di riferimento e strumento operativo;
 Progettisti: a partire dai risultati dell’analisi, effettuano la progettazione tecnica
degli ambienti, dei singoli componenti, dei moduli software e delle basi dati
necessari a supportare i processi modellati dagli analisti; anch’essi utilizzano le
metodologie come guida di riferimento e strumento operativo;
 Programmatori: codificano (scrivono) il codice sorgente dei moduli software a
partire dalle specifiche dei progettisti;
 Specialisti: si tratta di una categoria vasta e composita di professionisti
altamente specializzati in specifiche tematiche, prodotti, tecnologie; ad esempio, si
hanno specialisti di Database, di reti, di progettazione ad oggetti, di
personalizzazione di sistemi ERP, etc....;
 Amministratori: si tratta in genere di personale di fiducia dell’azienda, che
governa gli accessi e gli utilizzi del Sistema Informativo, dispensando e
monitorando codici di accesso, password, abilitazioni, etc.. a tutti gli utenti del
sistema.

8.1 L’ingegneria del software


All’inizio dell’epoca dei computer la scrittura di programmi era riservata a tecnici
esperti dei componenti elettronici o a matematici esperti di algoritmi. Con la diffusione

Versione 1.0 (3/5/2004) Pagina 79 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

del computer per utilizzi gestionali, la figura del programmatore diventò sempre più
multidisciplinare, comprendendo conoscenze di informatica insieme a competenze dei
processi da informatizzare.
Il lavoro di questi primi programmatori era di tipo artigianale, cioè basato sulle capacità
personali piuttosto che su metodi e processi produttivi. L’aumento delle dimensioni dei
progetti, però, comportò l’aumento del numero di persone che vi lavoravano e la loro
suddivisione specialistica: nacque così la distinzione tra analista, progettista,
programmatore, etc... La crescita ed articolazione dei gruppi di sviluppo software
comportò difficoltà di comunicazione tra i componenti, difformità di nomenclatura e
standard, carenze di pianificazione e coordinamento. Inoltre, e ciò era anche peggio, la
maggiore complessità dei progetti rendeva sempre più difficile interpretare
correttamente le richieste degli utenti, che non sempre riuscivano ad esporre
chiaramente le esigenze di processi sempre più articolati, e tradurle in funzionalità e
basi-dati informatiche.
La conseguenza di un approccio artigianale ad un problema sempre più ingegneristico
fu, verso la metà degli anni ’60, il raggiungimento di percentuali preoccupanti di
fallimenti nei progetti di Sistemi Informativi. Spesso il fallimento era di tipo budgetario:
la mancata comprensione tra utenti e sviluppatori e la conduzione caotica del progetto
portava in media a scrivere una singola linea di codice due volte, con conseguente
lievitazione incontrollata dei costi. A volte, il progetto non riusciva nemmeno ad
arrivare a conclusione e veniva abbandonato.
La svolta avvenne nell’ottobre 1968, quando il problema dello sviluppo software era
diventato così imponente che il Comitato Scientifico della NATO organizzò una
conferenza a Garmisch, in Germania, per discutere l’argomento e trovare una soluzione.
Fu in quell’occasione che venne coniato il nome di Ingegneria del Software, inteso
come:
 l’insieme di discipline, metodi, tecniche e strumenti per applicare allo sviluppo
del software lo stesso approccio industriale applicato alle altre branche
dell’Ingegneria.

Le metodologie
L’Ingegneria del Software si trovò subito ad affrontare le problematiche connesse con la
produzione di un bene immateriale, come il software, nel quale, a differenza che nella
produzione industriale tradizionale, sulle leggi della fisica, chimica, etc... e sulla loro
corretta applicazione è prevalente la capacità, il know-how, l’esperienza e persino
l’estro del singolo “lavoratore”. L’Ingegneria del Software, quindi, doveva agire
innanzitutto sulla componente umana, regolamentandola senza tuttavia penalizzarne le
qualità.
Gli addetti ai lavori si concentrarono quindi sullo sviluppo di metodologie informatiche,
modelli di riferimento in grado di guidare, coordinare ed uniformare il lavoro di un
gruppo, stabilendo principi per decidere:
 chi deve fare qualcosa (ruoli nel progetto);
 quando la deve fare (fasi del progetto);
 come la deve fare (tecniche e standard del progetto);

Versione 1.0 (3/5/2004) Pagina 80 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

 cosa deve utilizzare (input delle fasi del progetto);


 cosa deve produrre (output delle fasi del progetto);
 come deve esprimere i risultati raggiunti (formalismi delle fasi del progetto);
 come deve interagire con gli utenti (metodi di intervista agli utenti);
 come deve rappresentare il mondo descritto dagli utenti (tecniche di
modellazione).

Per raggiungere questi obiettivi le metodologie fanno uso di:


 metodi di pianificazione (Gantt, PERT, etc...);
 tecniche di modellazione dei processi (Diagrammi di flusso, pallogrammi, Use
Case, etc...);
 formalismi grafici per esprimere i risultati raggiunti (Diagramma ER, etc...);
 tecniche di programmazione (strutturata, ad oggetti, etc...);
 standard di nomenclatura e di programmazione;
 tecniche di test (Unit Test, System Test, etc...);
 best practice (pratiche migliori), collezioni di esperienze di successo da
riutilizzare in nuovi progetti.

Un importante vantaggio delle metodologie, quasi un sottoprodotto, è l’ampia mole di


documentazione che viene prodotta durante il processo di sviluppo, che riporta i passi
eseguiti, le scelte fatte e le loro motivazioni, i dettagli di ogni singolo componente, etc...
Questa documentazione è preziosa per la successiva fase di manutenzione. Prima del
diffondersi delle metodologie, la manutenzione di ogni singolo componente software
veniva curata in modo quasi inderogabile dallo stesso sviluppatore che aveva realizzato
il componente. La cessazione della disponibilità di quest’ultimo per qualunque motivo
(passaggio ad altro incarico, dimissioni, etc...) poneva seri problemi di usabilità futura
del componente.

Gli strumenti CASE (Computer Aided Software Engineering)


La complessità di fasi e tecniche utilizzate dalle metodologie, insieme alla necessità di
produrre formalismi grafici onerosi da realizzare a mano, stimolò, a partire dagli anni
’70, il nascere di strumenti CASE (Computer Aided Software Engineering = Ingegneria
del Software assistita da computer). Questi strumenti assistono i componenti di un
gruppo di sviluppo software nell’utilizzo corretto di una metodologia, supportando la
generazione automatica o semi-automatica dei formalismi previsti e, nei CASE più
evoluti, persino del codice sorgente del software.
Gli strumenti CASE comprendono:
 una base dati comune a tutti i membri del progetto per assicurare la condivisione
di informazioni corrette, aggiornate e congruenti;
 un motore di Workflow che guidi i membri del progetto lungo le fasi previste,
controllando il rispetto delle regole;

Versione 1.0 (3/5/2004) Pagina 81 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

 un insieme di strumenti atti a generare i formalismi grafici di una fase in maniera


automatica o semi-automatica a partire da quelli della fase precedente.

Le metodologie a cascata
Uno dei principali problemi che le metodologie cercano di evitare è l’incomprensione
tra utenti ed analisti durante le interviste, che porta ad evidenziare l’inadeguatezza del
software sviluppato solo al termine dello sviluppo. Così le prime metodologie cercarono
di superare il problema suddividendo il processo di sviluppo software in numerose fasi,
al termine delle quali vi è un momento di verifica con gli utenti. L’obiettivo è quello di
intercettare errori ed inadeguatezze nella fase più precoce possibile, quando è ancora
possibile rimediare con costi limitati.
Questo approccio ha portato alla definizione di una classe di metodologie dette a cascata
(Waterfall), caratterizzate da:
 suddivisione del processo di sviluppo in fasi sequenziali, che ha dato luogo al
cosiddetto “Ciclo di vita del software” (vedi Ciclo di vita un Sistema Informativo
Aziendale, Cap. 1);
 concatenamento delle fasi, per cui l’output di una fase costituisce l’input della
fase precedente;
 verifica con l’utente al termine di ogni fase per validare i risultati raggiunti
(facendo uso dei formalismi prodotti).
L’approccio a cascata permette in molti di casi di anticipare notevolmente
l’individuazione degli errori commessi durante il processo di sviluppo software,
riducendo le conseguenze economiche. Inoltre, produce un’ampia e chiara
documentazione delle fasi eseguite, in quanto la documentazione è l’unico strumento di
dialogo tra analista ed utente.
Tuttavia l’approccio a cascata richiede che l’utente abbia una chiara visione di quello
che vuole sia realizzato, non sia troppo incline ai ripensamenti e, soprattutto, che sia in
grado di capire i formalismi che l’analista gli propone per la verifica al termine di ogni
fase.

Le metodologie iterative
L’esperienza fatta durante i decenni di utilizzo delle metodologie a cascata (anni
’70-’80) ha evidenziato però un loro grave limite: l’utente spesso non riesce a farsi
un’idea del software che verrà sviluppato dai formalismi che l’analista gli propone.
Accade spesso che l’utente approvi il formalismo dando lo sta bene alla prosecuzione
del processo di sviluppo, salvo poi a rendersi conto di aver approvato la soluzione
sbagliata solo quando è di fronte al software realizzato. Tale problema è aggravato dalla
frequenza dei ripensamenti dell’utente che solo di fronte ad un sistema funzionante
riesce a mettere a fuoco le sue reali esigenze.
Per superare questi problemi, sono state ideate le metodologie iterative, caratterizzate
da:
 suddivisione del processo di sviluppo in iterazioni successive, la prima delle
quali realizza un Sistema Informativo molto semplificato, e le successive lo

Versione 1.0 (3/5/2004) Pagina 82 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

integrano via via di funzionalità e dati aggiuntivi fino al termine dell’intero sviluppo
previsto;
 ciascuna iterazione è suddivisa nelle stesse fasi dell’approccio a cascata, ma
quelle successive alla prima devono tenere conto di quanto già realizzato;
 verifica con l’utente al termine di ogni iterazione (invece che di ogni fase), in un
conteso in cui l’utente deve giudicare un software funzionante, se pur limitato, e non
un formalismo eventualmente astruso.
L’approccio iterativo supera il problema della verifica sui formalismi, sostituendola con
quella su software funzionante. Tuttavia, i benefici derivanti da una più probabile
intercettazione degli errori in una fase precoce sono parzialmente vanificati nei casi in
cui, per le caratteristiche del sistema in via di sviluppo, le iterazioni successive non
possano aggiungere funzionalità senza cambiare profondamente quelle già realizzate.
Questo approccio è quindi ideale per lo sviluppo di Sistemi Informativi che siano
facilmente articolabili in segmenti sufficientemente indipendenti.

Le metodologie evolutive o prototipali


Per superare i limiti delle metodologie iterative, sono state sviluppate le metodologie
evolutive o prototipali, che costituiscono una variante di quelle iterative, nelle quali il
prodotto di ciascuna iterazione non è un Sistema Informativo finito ma limitato, ma
piuttosto un prototipo dell’intero Sistema Informativo che costituisce l’obiettivo finale.
Il primo prototipo, prodotto con la prima iterazione, contiene già tutte le funzionalità
principali del Sistema Informativo definitivo, con i relativi dati, ma in una forma molto
semplificata, senza gli algoritmi più complessi, la gestione delle eccezioni, le funzioni
accessorie, etc... Spesso si tratta di software che implementa soprattutto l’interfaccia e la
navigazione tra le funzionalità.
La verifica con l’utente avviene sul prototipo. L’utente può valutare la validità della
strada intrapresa operando direttamente su un software, come farà a sviluppo terminato,
senza doversi addentrare nella comprensione di difficili formalismi.
Una volta avuta l’approvazione dell’utente, il prototipo subisce una seconda iterazione
che modifica le funzionalità già inserite, sofisticandole e ne aggiunge di nuove. Si ha
quindi una nuova sessione di verifica pratica con l’utente e così via. Il software quindi
evolve da un prototipo rozzo e semplificato verso il prodotto finale.
Queste metodologie superano così sia i limiti dell’approccio a cascata (verifica su
formalismi) che quelli dell’approccio iterativo (onerosa modifica delle funzionalità già
realizzate nelle iterazioni precedenti).
Il secondo obiettivo viene raggiunto grazie alla disponibilità, a partire dagli anni ’90, di
ambienti di sviluppo prototipali, che permettono di sviluppare rapidamente
un’interfaccia con un minimo di logica sottostante e di modificarla ed integrarla
successivamente senza necessità di stravolgerla. Questi ambienti, detti di
“programmazione visuale”, mettono a disposizione una serie di componenti software
precostituite, che realizzano le funzioni più comuni in maniera semplificata. Il
programmatore assembla queste componenti visuali come oggetti grafici sul video,
ottenendo in breve tempo un prototipo funzionante.

Versione 1.0 (3/5/2004) Pagina 83 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Successivamente, quando occorre rendere tali funzionalità primitive più sofisticate,


l’ambiente consente di aggiungere alle componenti visuali dei piccoli programmi, detti
script (breve scritto) che implementano tutta la complessità richiesta.
Pertanto, il concetto di prototipo software è diverso da quello di prototipo industriale, in
quanto quest’ultimo serve a sperimentare la fattibilità del prodotto finale e, terminato
tale scopo, può essere distrutto (o conservato in un museo), mentre il prototipo software
è riusabile per la confezione del prodotto finito. Questa differenza è una conseguenza
della dematerializzazione del prodotto, tipica della Società dell’Informazione.

8.2 I paradigmi di programmazione


Indipendentemente dalla metodologia utilizzata nel ciclo di vita del software, il
progettista ed il programmatore si trovano di fronte al problema di tradurre un modello
della realtà definito dall’analista, comprensivo di funzionalità e dati, in un insieme di
moduli software e di banche-dati che devono essere codificati in un linguaggio
comprensibile al computer, eventualmente dopo un fase di traduzione in linguaggio
macchina effettuata da un compilatore o da un interprete.
Per supportare progettisti e programmatori in queste fasi, sono stati sviluppati paradigmi
di programmazione che rappresentano la realtà secondo modelli differenti e utilizzano
tecnologie di programmazione differenti.

Il paradigma procedurale
Il primo paradigma utilizzato dai programmatori è molto vicino al modo di funzionare
dei processori, che sono progettati per scorrere sequenzialmente una lista di istruzioni
(detta programma), eseguirle ed eventualmente saltare ad un’istruzione diversa da
quella che segue nell’ordine, qualora si verifichi una certa condizione.
Il paradigma procedurale cerca di descrivere la realtà da informatizzare in termini di
procedure, cioè di sequenza di brevi comandi che manipolano ed elaborano i dati
contenuti nei file. Le procedure sono in genere indipendenti tra loro e non interagiscono.
Tipici esempi di programmi procedurali sono le grandi elaborazioni bancarie periodiche
(calcolo degli interessi, calcolo delle cedole, etc...).
Il vantaggio principale di questo approccio è la sua facilità di apprendimento da parte di
progettisti e programmatori, dovuta alla semplicità concettuale. Molti processi aziendali,
peraltro, sono normati da procedure definite dall’azienda per standardizzare metodi,
comportamenti, esiti, etc...
Tuttavia, l’approccio procedurale risulta fortemente penalizzante quando i processi e le
procedure informatizzate non sono rigide e sequenziali, ma si basano piuttosto
sull’interazione dell’utente con strumenti indipendenti, che vengono utilizzati con un
ordine e delle modalità differenti a seconda delle esigenze (come nel Front-Office o nel
lavoro di ufficio).

Il paradigma strutturato
Il paradigma strutturato è un’evoluzione di quello procedurale, del quale mantiene
l’approccio sequenziale. Nel modello strutturato, però, le procedure sono strutturate in

Versione 1.0 (3/5/2004) Pagina 84 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

moduli software che svolgono ciascuno una specifica funzione e che vengono
assemblati per formare una procedura.
I moduli software vengono organizzati secondo una gerarchia, in cima alla quale vi sono
le funzionalità principali, sotto quelle via via più di dettaglio ed in fondo i moduli che
svolgono le funzioni più comuni (detti routine), come le verifiche formali (date, codici
fiscali, etc...) o i calcoli e gli algoritmi più frequenti (calcolo interesse, determinazione
di un rateo, etc...).
Ciascun modulo software, al suo interno, è a sua volta strutturato in blocchi sequenziali.
Attraverso costrutti logici (del tipo if-then-else = se-allora-altrimenti), il programma
seleziona il blocco da eseguire e attraverso altri costrutti (del tipo repeat-until = ripeti-
finché), il programma ripete l’esecuzione di un blocco finché non si verifica una
determinata condizione.

Figura 21 – Esempio di un diagramma strutturale di un programma

Il vantaggio del paradigma strutturato rispetto a quello procedurale tradizionale è la


notevole riduzione della ridondanza sulle funzionalità più comuni, il riuso di moduli che
assemblati diversamente possono dar vita a nuove funzionalità, la semplicità di
manutenzione dovuta alla strutturazione (la modifica di una funzione comune comporta
solo la modifica della routine utilizzata da tutti i programmi).
I vantaggi sono quindi relativi ad una maggiore razionalizzazione del processo di
progettazione e programmazione, ma i limiti relativi alla difficoltà di supportare modelli
interattivi permangono pressoché identici al paradigma procedurale. In entrambi i casi,
il software si compone di procedure (programmi) non comunicanti che operano con
sequenze predeterminate sui dati, visti come un’entità a se stante.

Versione 1.0 (3/5/2004) Pagina 85 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Il paradigma ad oggetti
Il paradigma ad oggetti è radicalmente diverso. In questo modello, il software si
compone di oggetti, ciascuno dei quali ha le seguenti caratteristiche:
 contiene una parte di programma che svolge uno o più semplici compiti e un
insieme di dati;
 incapsula programmi e dati in una black box (scatola nera), non visibile dagli
altri programmi, che comunica con l’esterno attraverso un’interfaccia;
 è dotato di uno stato, che ha un valore iniziale e può essere modificato durante
l’elaborazione tramite l’interfaccia;
 è dotato di comportamenti, detti metodi, che possono essere invocati (attivati),
tramite l’interfaccia;
 interagisce con gli altri oggetti che compongono il software tramite lo scambio
di messaggi, che contengono anche dati.
Nel modello ad oggetti il software è un insieme di moduli interagenti che si scambiano
messaggi e di conseguenza cambiano il loro stato ed eseguono dei compiti (metodi).
L’utente interagisce con il software attivando gli oggetti, i quali, a seguito di questo
evento, emettono dei messaggi che, a loro volta attivano altri oggetti. In questo modo la
sequenza di avvenimenti non è predeterminata come nel modello procedurale, ma viene
guidata dagli eventi di interazione con l’utente o con altri software. Questo modello di
interazione tipico del paradigma ad oggetti viene chiamato modello guidato dagli eventi.
Il modello ad oggetti è dotato di una serie di caratteristiche che ne incrementano
notevolmente la potenza dal punto di vista dei programmatori. I più importanti sono:
 l’organizzazione degli oggetti in classi: una classe è la generalizzazione
dell’oggetto e comprende tutti gli oggetti che hanno in comune certe caratteristiche
(appartengono alla stessa categoria); un oggetto viene creato da una classe, come
sua istanza, acquisendo lo stato iniziale da quello della classe;
 l’ereditarietà delle classi: il programmatore può creare classi derivate da altre
classi; queste ereditano tutti i metodi della classe di provenienza, che però possono
essere modificati ed integrati; in questo modo il programmatore lavora per
differenza;
 il polimorfismo, che ha due facce: lo stesso oggetto può comportarsi
diversamente a seconda del contesto in cui è inserito ed oggetti diversi possono
comportarsi alla stessa maniera in un dato contesto; questa caratteristica consente
adattare gli oggetti a contesti diversi senza modificarli o riscriverli;

Versione 1.0 (3/5/2004) Pagina 86 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

Figura 22 – Esempio di classi ed ereditarietà

Il modello ad oggetti è molto più adatto di quello procedurale a supportare processi


interattivi tra utente e software o tra diversi software. Inoltre, le caratteristiche tecniche
sopra descritte permettono ai programmatori il riuso dei componenti prodotti, con un
notevole risparmio di impegno nello sviluppo e, soprattutto, nella manutenzione. Ad
esempio, la modifica di un metodo in una classe comporta automaticamente la modifica
del metodo ereditato nelle classi che discendono da questa e in quelle che discendono da
quest’ultima, etc...

Grazie a queste caratteristiche il paradigma ad oggetti si è ampiamente diffuso ed oggi


la gran parte del software di nuova produzione viene realizzato in ambiente ad oggetti.

Lo svantaggio principale di questo ambiente è la maggiore complessità concettuale, che


richiede un periodo di addestramento di progettisti e programmatori molto più lungo
rispetto agli ambienti tradizionali.

8.3 La misura del software


Un processo estremamente delicato è quello della stima dei costi associati alla
realizzazione di un Sistema Informativi Aziendale. Tale stima è necessaria in varie fasi
del ciclo di vita del sistema: al momento dello studio di fattibilità, per prevedere i costi
da sostenere; al momento dell’acquisto di componenti esterne (metodologia buy), per

Versione 1.0 (3/5/2004) Pagina 87 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

conoscerne il giusto valore; nella fase di manutenzione, che in genere viene valutata
come percentuale del valore del software manutenuto, etc...
Mentre per le parti fisiche del Sistema Informativo (Hardware, reti, etc...) esistono
listini e stime precise e per le persone coinvolte in genere sono noti i costi, il problema
della valutazione dei costi di sviluppo del software è sempre stato molto arduo da
affrontare.
Il motivo è legato all’immaterialità del prodotto software, che ne rende difficile persino
la stima della quantità, prima ancora del valore. E’ nota l’espressione un pò interessata
dei produttori di hardware: “il software non pesa”. In realtà, oggi il valore del software,
che prolunga la sua vita utile anche per decenni, è molto superiore a quello
dell’hardware, che spesso è obsoleto dopo un paio d’anni. Ciò rende ancora più
pressante il problema della sua valutazione.
Come è possibile valutare qualcosa che non può neanche essere stimato in quantità (kili,
litri, Ampere, Watt, etc...) ?

Il metodo delle LOC (Line Of Code)


I primi sistemi di stima del software cercavano di stabilire dapprima un’unità di misura
della quantità di software, per poi associarvi un costo unitario. Un’unità di misura della
quantità di software utilizzata per decenni è la LOC (Line Of Code = Linea di codice).
La LOC è la singola linea di codice sorgente scritta dal programmatore, con esclusione
delle linee di commento (linee contrassegnate da un marker che le fa ignorare ai
programmi che traducono in linguaggio macchina; servono a documentare il
programma). In pratica corrisponde ad una riga del programma.
Il metodo di stima associa quindi ad una LOC (più spesso ad una KLOC = Kilo LOC =
1.000 LOC) un costo, che dipende dal linguaggio di programmazione utilizzato: più il
linguaggio è evoluto, e quindi più sono le istruzioni di linguaggio macchina
corrispondenti alla linea di codice, più alto è il costo.
I vantaggi del metodo delle LOC sono la semplicità, la praticità di calcolo (il numero di
KLOC di un insieme di programmi può essere calcolato automaticamente da un
programma apposito) e la sensazione psicologica di dare al software una stima in
qualche modo proporzionale alla “quantità” di software.
Lo svantaggio, che ne ha determinato l’abbandono, è l’estrema soggettività del metodo,
per una serie di ragioni:
 i linguaggi permettono di scrivere un’istruzione su un numero estremamente
variabile di righe, in modo che ciascun programmatore possa incolonnare le
istruzioni secondo l’impaginazione che più preferisce; ciò consente impaginazioni
“interessate” che, con la scusa dell’ordine visivo, moltiplicano inutilmente il numero
di LOC;
 indipendentemente dall’impaginazione, il numero di istruzioni in un programma,
e quindi di LOC, necessarie a svolgere un certo compito dipendono fortemente dalla
bravura del programmatore; la struttura a blocchi di un programma consente ad un
programmatore esperto di riutilizzare massicciamente blocchi di istruzioni per
svolgere più microfunzioni; il metodo delle KLOC tende quindi a premiare i
programmi scritti da programmatori inesperti, e quindi di peggiore qualità;

Versione 1.0 (3/5/2004) Pagina 88 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

 il numero di LOC non è necessariamente in corrispondenza biunivoca con il


valore del software percepito dall’utente; la progettazione o la programmazione di
un software potrebbero richiedere la codifica di grandi quantità di LOC per svolgere
funzioni non visibili all’utente, a causa di scelte di metodo fatte dagli sviluppatori; il
metodo delle LOC rischia di far pagare agli utenti le scelte fatte dai produttori.

Con l’evolversi dei linguaggi di programmazione, inoltre lo stesso concetto di LOC è


entrato in crisi. Infatti, negli ambienti di sviluppo prototipali le funzionalità principali
vengono realizzate con la programmazione visuale, assemblando oggetti grafici, senza
scrivere alcuna linea di codice, mentre queste vengono aggiunte per realizzare
funzionalità particolari. Diventa molto difficile, pertanto, valutare il costo dell’intero
software basandosi sulla misura dei soli script.

Il metodo dei Function Point


Per superare tutti questi limiti del metodo delle LOC, è stato sviluppato il metodo dei
Function Point (Punti Funzione).
Il metodo dei Function Point rinuncia a misurare la quantità di software, un parametro
giudicato evanescente e comunque non utile alla sua valutazione economica, e si basa
sulla misura dell’utilità che il software ha per l’utente. Il principio su cui si basa il
metodo è che questo parametro, a differenza delle LOC, sia obiettivo, perché coerente
con la percezione che l’utente ha dell’utilità del software.
Perché questa misura sia veramente obiettiva, il metodo dei Function Point regola
minuziosamente la procedura di stima. I passi sono i seguenti:
 il software viene suddiviso in funzionalità tipo, chiaramente percepibili
dall’utente, appartenenti a cinque categorie:
o Input esterni;
o Output esterni;
o Interrogazioni esterne;
o File logici interni;
o File esterni di interfaccia;
 ad ogni funzionalità viene assegnato un punteggio (da cui il nome di punti
funzione), in relazione alla tipologia di appartenenza ed alla complessità della
funzionalità, basata sul numero di dati elementari gestiti;
 viene eseguita la somma per tutte le funzionalità, ottenendo i punti funzione
grezzi;
 i punti funzione grezzi vengono corretti con un peso che dipende dalle
caratteristiche non funzionali dell’applicazione (performance, complessità, ambiente
tecnologico, etc...), ottenendo i punti funzione netti;
 i punti funzione netti vengono moltiplicati per un fattore di impegno (espresso in
mesi.persona per function point), che dipende dall’ambiente di sviluppo e dagli skill
(abilità) delle risorse del gruppo di sviluppo;

Versione 1.0 (3/5/2004) Pagina 89 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

 l’impegno in mesi.persona viene valorizzato in termini economici in base al


costo delle risorse.

Figura 23 – Schema di applicazione del metodo dei Function Point

I principali vantaggi del metodo dei Function Point, che ne hanno determinato l’odierna
ampia diffusione, sono l’oggettività e la meccanicità di applicazione, che si basa su
regole e tabelle di pesi pubblicate da un organismo autorevole, l’IFPUG (International
Function Point User Group = Gruppo internazionale degli utenti dei punti funzione).
Lo svantaggio tuttora avvertito, di natura soprattutto psicologica, è la rinuncia al
tentativo di misurare la quantità di software, che spesso disorienta amministratori e
manager abituati a valutare i beni anche in base alla quantità di bene fornito.

8.4 L’utilizzo dei Sistemi Informativi Aziendali


L’utilizzo dei Sistemi Informativi Aziendali pone alcune problematiche che sono tipiche
della tecnologia utilizzata. Tra queste si citano quelle di sicurezza, quelle di privacy e
quelle derivanti dalle conseguenze generate dagli errori operativi.

La sicurezza nei Sistemi Informativi Aziendali


I Sistemi Informativi Aziendali pongono seri problemi di sicurezza. I problemi sono
generati dalla concomitanza delle esigenze di protezione dei dati gestiti dal sistema da
accessi non autorizzati con quelle di connessione del sistema con i sistemi di altre
aziende, con i clienti, i fornitori, i cittadini, Internet in generale.
La connessione ad Internet ed i servizi ad essa correlati, come la posta elettronica, sono
pericolosissimi canali di accesso al sistema per i malintenzionati e per i prodotti da essi
escogitati. Mentre la protezione da accessi diretti di hacker è oggi in genere garantita dai
sistemi di firewall, la diffusione dei virus e delle loro varianti è molto più difficile da
intercettare, perché essi si diffondono attraverso canali che devono comunque restare
aperti (come la posta elettronica), facendo spesso leva sull’ingenuità degli utenti.
Un virus è un pezzo di codice, generalmente nascosto tra altro codice, progettato per
diffondersi da un computer all’altro, attaccarsi ai programmi del computer ospite e
causare qualche risultato inaspettato, buffo o dannoso. In genere un virus contiene

Versione 1.0 (3/5/2004) Pagina 90 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

troppo poco codice per potersi replicare autonomamente e sfrutta a questo scopo i
programmi residenti sul computer ospite. Questo comportamento, analogo a quello dei
virus biologici, incapaci di riprodursi autonomamente, ma in grado di farlo infettando
una cellula ospite e sfruttandone, prendendone il controllo, il sistema di riproduzione, ne
ha originato la denominazione.
Oggi i virus si trasmettono principalmente attraverso la posta elettronica, nascosti negli
allegati, sfruttando l’ingenuità o la sprovvedutezza degli utenti che spesso aprono un
allegato senza accertarsi dell’affidabilità dell’origine del messaggio.
Vi sono diverse varianti dei virus. Oggi le più importanti sono:
 Macro virus: sono virus che si nascondono nelle macro dei documenti di tipo
Microsoft Word o similari, facendo eseguire al programma azioni strane, come
l’inserimento automatico ed improvviso di testo comico all’interno del documento
che si sta scrivendo; si diffondono negli allegati della posta elettronica, sono i più
comuni, ma in genere i meno pericolosi;
 Vermi: sono virus che non modificano i programmi, ma si istallano nella
memoria centrale, utilizzando parti del Sistema Operativo, che generalmente
l’utente non percepisce, per replicarsi a dismisura, fino a saturare tutta la memoria
del sistema, centrale e/o di massa, provocando il blocco del sistema; sono pericolosi
perché in grado di bloccare grandi quantità di computer in poco tempo; il nome
deriva dal fatto che, come alcuni vermi parassiti, attaccano la loro testa al corpo
dell’ospite e replicano la coda in grandi quantità;
 Cavalli di Troia: sono virus che si nascondono all’interno di un programma o di
dati apparentemente amici o innocui e quindi accettati dall’utente; il virus prende
poi il controllo dell’ospite in cui si cela, distruggendo file, tabelle di sistema, etc...;
sono i virus più pericolosi e più difficili da individuare a causa del loro
travestimento, ma per fortuna sono i più rari; il nome deriva dall’analogia con la
celebre storia di Ulisse e del cavallo di Troia;
 Virus hoax (virus burla): sono virus nascosti in falsi messaggi di avviso sulla
presenza e pericolosità di qualche nuovo virus, distribuiti per posta elettronica; si
basano sull’ingenuità dell’utente che, aprendo il messaggio per leggerlo, attiva il
virus; spesso il messaggio consiglia l’inoltro ad amici e colleghi, favorendo così la
sua diffusione.

Per difendersi dai virus, sono stati ideati e prodotti degli specifici programmi detti anti-
virus. Questi programmi scansionano i messaggi di posta elettronica, i file e persino
l’intero disco rigido, se richiesto, alla ricerca di specifiche corte sequenze di codice che
identificano univocamente un virus (il DNA del virus). Quando il virus viene
riconosciuto , l’antivirus chiede all’utente quali azioni intraprendere: distruzione del file
che lo contiene, bonifica, ovvero rimozione del solo virus (quando possibile), messa in
quarantena, ossia spostamento del programma che contiene un virus in un area di
memoria dove non può nuocere, etc...

Gli anti-virus basano il loro funzionamento sulla disponibilità di una banca-dati delle
sequenze di codice che identificano tutti i virus esistenti. Poiché vengono continuamente
creati nuovi virus, questa banca dati deve essere aggiornata frequentemente, pena il

Versione 1.0 (3/5/2004) Pagina 91 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

decadere dell’efficacia dell’anti-virus. L’aggiornamento in genere avviene tramite


Internet, collegandosi al sito del produttore dell’anti-virus.

La privacy nei Sistemi Informativi Aziendali


I Sistemi Informativi Aziendali pongono seri problemi di privacy (riservatezza). I
problemi sono generati dalla necessità di gestire e mettere a disposizione degli utenti,
spesso in sedi geograficamente distanti, enormi banche-dati contenenti informazioni
riservate su persone (dati anagrafici, bancari, sanitari, etc...).
I diversi Paesi hanno varato negli anni legislazioni sulla privacy sempre più stringenti. I
gestori delle banche-dati e gli amministratori di sistema, che governano gli accessi e le
abilitazioni, sono ritenuti penalmente responsabili di eventuali accessi, o, peggio rilascio
di dati, a soggetti non autorizzati. Le norme individuano particolari categorie di dati,
detti sensibili, che, per la loro delicatezza e le conseguenze della loro eventuale
diffusione non autorizzata, sono soggetti a regole ancora più restrittive rispetto agli altri
dati. Tra questi ci sono ad esempio i dati sanitari, che riportano, tra l’altro, la casistica di
malattie ad alto impatto sociale, come quelle infettive più gravi.
Per garantire la privacy dei dati, le aziende utilizzano tecnologie sempre più avanzate,
come il controllo degli accessi tramite riconoscimento biometrico (impronta digitale,
retina dell’occhio, voce, etc...), la crittografia, etc...
Il problema però è anche di natura organizzativa. Per gestire la privacy occorre creare
una gerarchia di personale di fiducia, addetto al rilascio degli accessi e delle
autorizzazioni. Occorre inoltre varare delle politiche di privacy aziendale, che
regolamentino anche l’eventuale rilascio a terzi di porzioni o di intere banche-dati,
evento considerato dalle legislazioni sulla materia in assoluto il più delicato, perché
consente a soggetti con pochi scrupoli l’utilizzo delle informazioni di massa per scopi di
lucro.
Il problema della privacy è destinato a diventare sempre più complesso a causa
dell’interazione sempre più spinta tra le banche-dati mondiali. L’intrusione di
malintenzionati in una banca-dati grazie a numerosi e fuorvianti passaggi intermedi
attraverso altre banche-dati e sistemi è sempre più frequente.

Gli errori umani nei Sistemi Informativi Aziendali


Una delle caratteristiche negative più importanti dei Sistemi Informativi Aziendali è
l’amplificazione dell’errore umano. Un Sistema Informativo può essere pensato come
una grande macchina. Le macchine sono degli strumenti di amplificazione delle
capacità umane: esempio tipico è la leva di Archimede. Un Sistema Informativo è uno
strumento di amplificazione del lavoro intellettuale umano, basato sulla ripetizione
automatica di attività e comportamenti sulla base di limitati input umani.
Si generano quindi situazioni nelle quali un errore piccolo e marginale commesso da un
soggetto del Sistema Informativo, che in un contesto di attività manuali avrebbe avuto
conseguenze piccole e marginali, inserito in un canale di input del sistema (ad esempio,
transazione) viene da questo amplificato enormemente, generando anomalie di grande
portata o errori sistematici.
Per contrastare questo fenomeno, le organizzazioni aziendali che utilizzano Sistemi
Informativi devono predisporre sistemi di controllo più organici e meticolosi rispetto a

Versione 1.0 (3/5/2004) Pagina 92 di 93


Ing. Michele Ficicchia Sistemi Informativi Aziendali

quelli utilizzati quando il lavoro era manuale. Anche per approntare tali sistemi di
controllo, sono state sviluppate metodologie di controllo di qualità come la ISO 9000 –
Vision 2000.
I sistemi di qualità si basano sul principio del controllo di processo piuttosto che su
quello del controllo di prodotto. Il controllo non avviene quindi solo alla fine del
processo, quando è spesso troppo tardi, ma è presente durante tutte le fasi del lavoro,
normandole e tracciandole. Per ottenere questo scopo i sistemi di qualità impongono la
stesura di procedure lavorative ed il loro rispetto, con la produzione di registrazioni di
qualità che attestano il rispetto delle norme e/o giustificano la loro eventuale deroga.

Versione 1.0 (3/5/2004) Pagina 93 di 93

Potrebbero piacerti anche