6Si definisce “Internet” una rete di reti interconnesse tra loro.
Ognuna delle reti che la costituiscono può essere una :
LAN o Local Area Network ( Rete locale)
WAN o Wide Area Network (Rete geografica)
MAN o Metropolitan area Network (Rete metropolitana , di dimensione intermedia
tra le due).
1.1.1. Caratteristiche delle reti
Tutte queste reti sono a “commutazione di pacchetto”, reti cioè in cui l’informazione
che viene trasmessa e’ suddivisa in pacchetti (detti anche datagrammi) di dimensioni
piuttosto limitate, a cui si unisce una intestazione che contiene le informazioni
necessarie perché raggiungano la loro destinazione finale. Tali pacchetti vengono
inviati singolarmente attraverso la rete e poi successivamente riassemblati nella loro
forma originaria una volta raggiunta la destinazione.
Grazie alla intestazione, su una rete è consentito trasportare nello stesso momento
pacchetti provenienti da punti differenti: ciò fa sì che più utenti possano inviare
informazioni attraverso la rete simultaneamente ed efficacemente. Un pacchetto non
occupa mai un tratto di rete fisica per intero. Inoltre, per giungere a destinazione, i
pacchetti possono prendere percorsi alternativi, mantenendo un’elevata continuità
nella trasmissione dei dati.
1.1.1.1. I nodi
La rete possiede due tipi di nodo, a seconda della connessione:
− singola, se sono agganciati ad una sola rete componente;
− multipla, se sono agganciati a più reti componenti.
Le reti componenti vengono dette contigue.
Un nodo di rete a connessione multipla che effettua anche lo smistamento dei
pacchetti fra le sue reti contigue viene detto router. Lo smistamento, infatti, è uno dei
7problemi più critici per una rete, e viene risolto tramite una serie di protocolli di rete
cooperanti.
1.1.1.2. Protocollo di comunicazione
Un protocollo di comunicazione definisce le regole comuni per manipolare ed inviare
i bits tra computer che utilizzano ambienti operativi diversi ed architetture hardware
diverse.
Se l’”Internet” cui ci si riferisce copre l’intera superficie terrestre, con decine di
milioni di nodi collegati, allora viene detta, per antonomasia, “Internet”. Alla base di
Internet c’è la serie dei protocolli TCP/IP (Transmission Control Protocol / Internet
Protocol ).
1.2. Breve bitgrafia
Internet è il risultato di numerosi progetti di “computer networking “, per la maggior
parte promossi dal governo federale americano, che sono stati portati avanti negli
ultimi quaranta anni. Tali progetti hanno prodotto negli anni:
− i protocolli di comunicazione, che definiscono il formato delle informazioni
trasmesse sulla rete;
− i prototipi di rete;
− programmi applicativi.
Le origini di Internet fanno capo alle idee teoriche degli anni ’60 di sviluppare una
rete nazionale americana basata sulla commutazione di pacchetto che potesse offrire
servizi di utilità ad enti militari e governativi.
1.2.1. Arpanet
Nel 1969 l’agenzia ARPA (Advanced Research Projects Agency ) del Dipartimento
della Difesa americano creò la rete sperimentale ARPANET.
8Figura 2:Mappa di Arpanet 2
Inizialmente, la ARPANET era principalmente un veicolo di sperimentazioni più
che un servizio, perché non erano ancora stati sviluppati adeguatamente i protocolli
di comunicazione tra singoli computer.
Un mito comune circa l’ARPANET la vuole come rete di “comunicazione, comando,
controllo ed informazione” da usarsi in caso di guerra nucleare, proprio per la sua
capacità di continuare a trasmettere dati anche in caso di distruzione parziale da
parte di un nemico.
2
Copyright 2000 Martin Dodge, op.cit.
9Figura 3:Mappa logica di Arpanet 3
La più importante presa di posizione filosofica di Arpanet è il riconoscimento che la
rete è per sua natura non affidabile, in particolare:
− lo smistamento dei dati dal punto di partenza a quello di arrivo non è
garantito, a causa dell’instabilità dei nodi intermedi e dell’instabilità del
percorso;
− i pacchetti dati possono acquisire errori in transito.
Tali problemi dovevano essere tenuti in considerazione nella progettazione dei
protocolli.
3
Copyright 2000 Martin Dodge, op.cit.
10
1.2.2. Il periodo universitario
Durante gli anni ’70 ed ’80 la rete ha continuato a suscitare interesse ed a svilupparsi
in ambito universitario, per vari motivi :
− la cooperazione delle università americane con il dipartimento della Difesa;
− l’effettuazione di ricerche sui protocolli di comunicazione per le quali le
università utilizzavano le dorsali militari.
In questo periodo, oltre agli applicativi Telnet, di collegamento remoto, ed FTP, di
trasferimento file, che sono puri standard militari, sono stati sviluppati numerosi altri
applicativi utili, tra i quali la posta elettronica.
La rete in questi anni promuove la cooperazione e l’interscambio di informazioni,
senza prendere in considerazione i problemi relativi alla sicurezza. Il suo sviluppo è
correlato a quello del sistema operativo Unix, che supporta la cooperazione.
Dai 37 nodi del 1972, nel 1973 ARPANET oltrepassa i confini statunitensi
connettendosi all’Inghilterra ed alla Norvegia .
Nel 1980 alla Berkeley University si formalizzano i protocolli TCP/IP. Fino a quel
momento infatti i protocolli utilizzati nella ARPANET erano di vario tipo e
concezioni. Con l’avvento e l’adozione dei protocolli TCP/IP e la loro facilità di
programmazione lo sviluppo dei servizi in rete accelera, e con esso il numero di nodi
di rete collegati, a tal punto che, per mantenere una separazione tra le attività militari
e quelle accademiche, ARPANET si suddivide in due dorsali: ARPANET e
MILNET.
E’ il periodo della nascita dei primi personal computer, e si hanno i primi “pionieri “
privati che si collegano alla rete.
1.2.3. La National Science Fundation
Nel 1985-86 la NSF connette tra loro i sei supercomputer americani tramite la
dorsale NSFnet, connessa alle altre due dorsali già esistenti. La NSF supporta
finanziariamente lo sviluppo di reti regionali connesse ad NSFnet, per dare ai
ricercatori accreditati l’accesso alle risorse dalle proprie sedi accademiche.
11
Figura 4: Mappa della NSFnet 4
1.2.4. Internet
Il processo innescato è ormai irreversibile, e già nei primi anni ’80 ARPANET viene
sempre più frequentemente chiamata Internet, a simboleggiare la sua identità di Rete
globale.
Presso lo Stanford Institute viene costituito lo IAB (Internet Activities Board) a cui
vengono assegnati i seguenti compiti:
− la registrazione delle reti universitarie e private che si agganciano alla
Internet;
− il mantenimento e l’assegnazione degli indirizzi IP ai partecipanti;
il supporto e la coordinazione delle ricerche sullo sviluppo di Internet.
1.2.5. L’esplosione degli anni ’90
Internet è ormai un fenomeno noto su scala mondiale, e la sua operatività viene in
gran parte trasferita dalla NSF ai providers commerciali.
L ‘accesso pubblico alla Rete si espande rapidamente grazie a:
− la diffusione dei PC;
4
Copyright 2000 Martin Dodge, op.cit.
12
− la nascita di nuovi servizi Internet, in particolare il World Wide Web;
− il riconoscimento da parte dei rivenditori della possibilità di creare un nuovo
mercato per il software e le infrastrutture di rete.
1.3. Un modello di riferimento : lo standard “open” ISO –OSI
Figura 5: Il modello ISO- OSI 5
Una delle principali ragioni del successo di Internet risiede proprio nelle
caratteristiche del suo protocollo di comunicazione:
− TCP/IP è un open standard, cioè le sue specifiche sono liberamente
utilizzabili da chiunque;
− TCP/IP è indipendente dal modo in cui la rete è fisicamente realizzata, anzi:
permette una facile integrazione di differenti tecnologie hardware in una
unica struttura logica di comunicazione.
Il software di comunicazione di ogni stazione comunicante è pensato come formato
da più livelli sovrapposti. Ciò implica due concetti base:
5
“Introduzione ad Internet”, Copyright 1998, A.P. Software Informatica
13
− da un punto di vista verticale (“gerarchico”) il software a livello superiore
effettua richieste al livello sottostante e da questo riceve responsi;
− da un punto di vista orizzontale (“alla pari”) gli strati corrispondenti di
macchine diverse “conversano” tramite lo stesso protocollo.
La International Standards Organization (ISO) ha preparato fin dal 1984 il Modello
di Riferimento Open System Interconnection (OSI), a sette livelli. I sette livelli
possono essere raggruppati in tre strati:
- lo strato della rete fisica e quello di indirizzamento dei computer e dell’invio dei
dati (IP);
- lo strato di controllo e di organizzazione dei dati per la trasmissione (TCP);
- lo strato delle applicazioni e dei servizi di rete per l’utente.
1.4. L’ultimo strato: il livello applicazioni
Al livello applicazioni si trovano le applicazioni che gestiscono le informazioni
prodotte e richieste dall’utente, utilizzando protocolli di comunicazione di alto
livello.
Un server di rete deve avere, a livello di applicazione, uno o più programmi
costantemente in esecuzione (detti “demoni”), ognuno dei quali si occupa della
gestione del servizio relativo ad un dato protocollo.
Il client, invece, quando necessita di un servizio che fa uso di un determinato
protocollo, manda in esecuzione la applicazione relativa che contatta il server e funge
da interfaccia tra l’utente finale ed il protocollo.
14
1.1.1 Principali protocolli Internet e relative applicazioni
Il funzionamento di tutte le applicazioni su Internet si fonda quindi sull’utilizzo di
un limitato numero di protocolli di base.
1.4.1.1 Il trasferimento di file ed il protocollo FTP
Il trasferimento di file tra macchine remote è stato, insieme alla posta elettronica, uno
dei primi servizi utilizzabili in rete.
Tutte le applicazioni che permettono di trasferire files utilizzano il protocollo FTP
(“File Transfer Protocol “) per comunicare con il server.
1.4.1.2 La posta elettronica ed i protocolli SMTP e POP3
Il trasferimento dei messaggi di posta elettronica è regolato dal protocollo SMTP
(Simple Mail Transfer Protocol) che definisce i comandi utilizzati per recapitare i
messaggi al destinatario.
Il programma utilizzato dall’utente per comporre o leggere un messaggio (ad
esempio: Eudora, Outlook Express o Elm) viene detto Mail User Agent (MUA).
1.4.1.3 Il World Wide Web ed il protocollo HTTP
Anche l’“ottava meraviglia“ di Internet, il Web, è basato su un protocollo simile a
quelli sinora esaminati: il protocollo HTTP (Hyper Text Transfer Protocol). Una
volta effettuata la trasmissione (su richiesta del browser, la applicazione client), il
demone chiude la connessione: la richiesta di altri documenti necessiterà di una
nuova connessione da aprire da parte del client.
I documenti gestiti dallo HTTP sono ipertesti, con il loro header che ne descrive la
composizione ed il contenuto.
E’ stata senza dubbio la invenzione del Web a dare ad Internet la planetaria
popolarità di cui oggi gode .
L’idea alla base del Web è molto semplice: fornire un formato comune a dei
documenti immagazzinati su dei server, e dare ad ogni documento un nome unico (lo
URL,“Universal Resource Locator”), che può essere utilizzato da un browser per
15
localizzarlo e reperirne il contenuto. A causa dell’eccessiva lunghezza di questi
“nomi”, gli URL vengono rappresentati come link ipertestuali (molto più brevi) in
altri documenti.
Questa idea è stata implementata nei primi anni Ottanta da Timothy Berners- Lee e
da Robert Caillau al Cern in Svizzera: essi proposero di sviluppare un sistema di link
tra differenti fonti di informazione. Inoltre, idearono l’HTML, un formato standard
per i documenti.
L‘ampia diffusione del Web si è avuta principalmente a partire dal 1993, quando fu
sviluppato il primo browser grafico, che per primo permetteva il link a fonti di natura
differente e che presentava una vera e propria interfaccia utente.
Dal 1993 ad oggi è “storia dei nostri giorni”: le pagine Web sono diventate non solo
una vetrina ma soprattutto un punto di incontro per imprese, enti pubblici e privati, in
cui ognuno può costruirsi il suo “sito” e da lì guardare il mondo e da esso venire
guardato.
1.4.1.4 Le Network News ed il protocollo NNTP
Il protocollo NNTP (Network News Transfer Protocol) è utilizzato per la
distribuzione dei messaggi dei vari newsgroup. I newsgroup sono forum di
discussione basati sui messaggi di posta elettronica.Tali messaggi possono essere
letti dagli altri utenti iscritti, che potranno decidere se rispondere pubblicamente sul
newsgroup o se inviare una email privata all’autore del messaggio.
Per limitare quanto più possibile la circolazione di messaggi duplicati e la
occupazione dello spazio su disco in tutti gli host, i newsgroups vengono
solitamente mantenuti su una unica macchina che funge da server (o, meglio, da
“newsfeed”) per un grande numero di utenti: tipicamente un newsfeed è condiviso da
interi dipartimenti, o da tutti gli utenti di uno stesso ISP (Internet Service Provider).I
newsfeed raccolgono tutti i messaggi inviati dagli host client, e forniscono loro
l’accesso ai messaggi archiviati.
Periodicamente, di solito nelle ore notturne, i diversi newsfeed si contattano e ,
tramite il protocollo NNTP, si scambiano i nuovi messaggi, ricevuti sia dagli host
16
client che da altri newsfeed. NNTP è usato anche dai client per inviare e chiedere i
messaggi ai newsfeed.
1.4.2 La nuova frontiera: le applicazioni Web – based
Le applicazioni Web–based operano un’altra fondamentale rivoluzione nel Web,
perché da collezione virtualmente illimitata di pagine “statiche” lo rendono in grado
di fornire risultati e creare pagine in modo “dinamico”, a seconda delle richieste del
singolo utente: tali applicazioni si propongono quindi come sostitutive delle
tradizionali applicazioni “client - server”. Esse presentano molti punti a loro favore:
− la facilità di distribuzione ed aggiornamento: le applicazioni Web si trovano
direttamente sul server, e quindi la loro pubblicazione su di esso coincide con
la distribuzione (l’aggiornamento viene effettuato solo sul server);
− l’accesso è indipendente dalla piattaforma;
− la riduzione dei costi di gestione: Internet come infrastruttura riduce sia i
costi di connettività che di gestione dei client;
− scalabilità: una applicazione Web opportunamente progettata è in grado di
evolvere insieme alle necessità degli utenti senza particolari ostacoli.
1.4.2.1 Architettura di una applicazione Web
I componenti fondamentali di una applicazione Web sono analoghi a quelli di una
tradizionale applicazione “client – server”: essa è costituita infatti da un client, che
implementa una interfaccia utente con alcune funzionalità di elaborazione e di
comunicazione, e da un server, che fornisce una serie di servizi quali, ad esempio, la
gestione e l’accesso ai dati di un database.
In ambiente Web tale interazione tra client e server è più complicata in quanto deve
permettere la integrazione di componenti di differente natura. Una applicazione Web
si basa su elementi software standard indipendenti dalle caratteristiche della
particolare applicazione e dalla piattaforma su cui viene eseguita.
17
Figura 6: I tre livelli logico- funzionali di una applicazione Web 6
Generalmente una applicazione Web si sviluppa su tre livelli logico - funzionali
(infatti viene detta “applicazione three- tier”) che possono essere distribuiti anche su
più di tre livelli (in questo caso viene detta “applicazione multi- tier”). Questi tre
livelli sono:
− il livello di presentazione: è l’interfaccia utente della applicazione e si occupa
di acquisire dati e visualizzare i risultati;
− il livello intermedio: è il livello in cui si elaborano i dati secondo la “business
logic”, cioè l’insieme delle regole per cui i dati vengono ritenuti significativi
e le loro relazioni consistenti; le elaborazioni del livello intermedio generano
i risultati richiesti dall’utente;
− il livello dati: è costituito dall’insieme dei servizi offerti da applicazioni non
dipendenti dal Web, come ad esempio un server di dati (database), un server
di mail o un server di documentazione elettronica; tale livello si interfaccia a
quello intermedio tramite opportuni software connettori.
Tali livelli possono risiedere o sulla stessa macchina o su macchine diverse.
6
Salvatore Giordano, “Architettura applicazioni Web- based”
(www.prometheo.it/a_applicazione_web.html)
18
1.4.2.2 Il livello intermedio: il più critico
Il livello intermedio di una applicazione Web contiene pertanto la logica elaborativa
della applicazione, soddisfando le richieste di dati e di elaborazione del client. La
funzionalità fondamentale del server Web su cui si basa l’intera applicazione è
comunque il supporto di elaborazioni.
Il livello intermedio risulta quindi costituito da un insieme di script, componenti e
programmi di tipo “server- side”.
La programmazione server-side permette di scrivere programmi universali: il
programma gira sul server e produce un output in formato HTML.
Inoltre, con tale programmazione si può proteggere il codice sorgente e si possono
utilizzare risorse specializzate che sono sul server (ad esempio, funzioni particolari
scritte in altri linguaggi di programmazione), che vengono invocate dal programma
stesso.
Lo svantaggio è invece dovuto al fatto che, essendo richiesti più accessi al server,
aumenta il suo carico di lavoro.
Tra le prime tecniche di sviluppo di applicazione server-side ricordiamo:è la
Common Gateway Interface (CGI); la Internet Server Application Programming
Interface (ISAPI) e la NSAPI; le Active Server Pages (ASP); le Java Server Pages
(JSP); il PHP.
1.4.2.3 Problematiche delle applicazioni Web based
Le problematiche delle applicazioni Web based sono sconosciute alle applicazioni
tradizionali e derivano dalla natura stessa del Web, che è stato concepito
originariamente non come supporto per delle applicazioni, ma come “distributore di
documenti”. La commutazione di circuito di Internet è per definizione
“connectionless” per cui l’esecuzione di una applicazione Web consiste in una serie
di interazioni disconnesse.
Lo sviluppatore deve quindi utilizzare informazioni codificate nella richiesta HTTP e
nelle risorse condivise durante la sequenza di interazioni per stabilire la continuità
della applicazione. Si deve inoltre tenere conto anche della ampiezza di banda di
trasmissione disponibile e del carico di lavoro stimato per il server.
19
Ciò implica una determinata scelta della quantità di dati da inviare ad un client in
risposta ad una richiesta; anche l’interfaccia utente dell’applicazione stessa potrebbe
essere resa meno accattivante da un punto di vista grafico in modo da fornire tempi
di risposta accettabili.
Pertanto, l’efficienza delle applicazioni Web based dipende in gran parte dalla
ripartizione del carico di elaborazione tra client e server.
Inoltre, la presenza di applicazioni esterne particolarmente complesse sulla stessa
macchina del server Web può diminuire l’efficienza della applicazione sottraendole
risorse preziose. In questi casi è opportuno distribuire il carico di lavoro su macchine
diverse.
In mancanza di modelli di riferimento consolidati, è l’esperienza ad assumere un
ruolo rilevante per quanto riguarda le scelte progettuali relative alle applicazioni Web
based.
1.5. I paradigmi della rete : i linguaggi
1.5.1 Linguaggi a marcatori e linguaggi di programmazione
La principale differenza tra linguaggi a marcatori e linguaggi di programmazione è
che i primi sono statici, mentre i secondi sono dinamici.
I linguaggi a marcatori, infatti, non processano, non permettono l’elaborazione della
informazione. Un documento scritto con tale linguaggio non può fare nulla da solo.
Come può venire processata allora l’informazione in esso contenuta?
La caratteristica fondamentale di un linguaggio a marcatori è la possibilità di
identificarvi unità di informazione simili. Ciò permette di dare al documento una
struttura intelligibile e successivamente processabile da una applicazione.
Una applicazione invece è scritta per mezzo di linguaggi di programmazione: il suo
input sono delle informazioni tramite la cui elaborazione l’applicazione produce dei
risultati utilizzabili dall’utente.