Introduzione al linguaggio PHP UnitĂ 1 - I paradigmi di Internet
I paradigmi Esistono diversi paradigmi preposti all'elaborazione, alla trasmissione e alla memorizzazione delle informazioni attraverso elaboratori connessi attraverso la rete. Al momento due soli paradigmi di comunicazione sono utilizzati diffusamente: • il paradigma client-server • il paradigma peer to peer (P2P)
Entrambi i paradigmi si occupano di definire, all'interno di una comunicazione tra due computer, chi deve conservare ed elaborare le informazioni. Questi paradigmi non si occupano di definire che cosa può essere scambiato, ma solo i ruoli degli interlocutori.
Il paradigma Client-Server
Tale paradigma specifico, come già sappiamo, può essere schematizzato attraverso i seguenti passaggi e rappresentato graficamente come segue.
1. L’utente usa il client per esprimere le sue richieste 2. Il client si collega al server e trasmette la richiesta 3. Il server risponde al client 4. Il client presenta la risposta all’utente
Azione del Client Quindi il client svolge le seguenti funzioni e attività: • Si preoccupa di dialogare con l’utente. • Sfrutta tutte le possibilità fornite dal calcolatore su cui viene eseguito (audio, video, ...). • Fornisce all’utente un’interfaccia intuitiva. • Elabora le richieste dell’utente e le risposte dei server - la comunicazione avviene secondo un formato standard detto protocollo.
Ruolo del Server Il Server invece gestirà le seguenti operazioni: • Rende disponibili delle risorse. • Accetta richieste e risponde automaticamente - non considera la provenienza della richiesta dal momento che il client può trovarsi in qualsiasi punto della rete. • Si può organizzare un insieme di server in modo che questi siano collegati tra loro. • Un ruolo di tipo Server può essere eseguito dallo stesso calcolatore che esegue un processo Client.
Classificazione dei Client
La potenza di calcolo necessaria per fornire le informazioni richieste e un determinato output all'utente risiede principalmente nel Server. Alcuni esempi di servizi Client-Server:
• la posta elettronica • la navigazione ipertestuale attraverso siti web • le chat
• il download di contenuti dalla rete • il collegamento ad un computer da remoto • la condivisione di risorse remote
Il paradigma Peer to Peer • Il cosiddetto paradigma peer to peer (lett. da pari a pari) considera i due interlocutori come equivalenti; pertanto non esiste una struttura gerarchica come per il modello di comunicazione clientserver.
• I protocolli che utilizzano il paradigma peer to peer sono rivolti ad applicazioni in cui i due interlocutori sono simili, per quanto concerne le risorse disponibili, ma diversi per le informazioni possedute. • Le informazioni possedute da un computer potrebbero non essere sempre disponibili (se il computer non è connesso alla rete), mentre è ragionevole immaginare che un server sia sempre connesso alla rete.
Il World Wide Web • Il World Wide Web è concepito come un ampio sistema, organizzato proprio sul modello di comunicazione client-server, in cui il client è il browser in uso dall’utente e il server è un Web Server. • In questo modello l’utente si connette alla rete, avviando esecuzione il browser • Una volta avviato il browser sarà possibile, ad esempio, scrivere nella barra dell’indirizzo il link diretto al documento cercato.
• Il browser quindi genera automaticamente un messaggio e lo invia al Server che possiede il sito e/o il documento richiesto. • Ricevendo la richiesta, il Web Server ricercherà il file richiesto e, una volta trovato, lo invierà in risposta al browser da cui aveva ricevuto la richiesta. • Infine il browser mostrerà il contenuto del file all’utente.
I vantaggi del modello Client-Server
• I software per l'interrogazione, la memorizzazione ed il trattamento dei dati sono concentrati su un solo elaboratore rappresentato dal server. • I computer degli utenti (client) non hanno mezzi e potenza paragonabili a quella invece necessaria all'elaborazione dei dati. • I dati grezzi (vale a dire “ancora oggetto di elaborazione”) hanno una dimensione maggiore dei dati elaborati. Elaborando i dati sul
server e trasmettendo quest'ultimi al client si riducono le esigenze in termini di tempo e quantità di banda in uso. • I dati richiesti sono spesso aggiornati in tempo reale, per cui solo il server deve ricevere in tempo reale i dati grezzi aggiornati. • I computer degli utenti non sono collegati alla rete in maniera permanente, per cui non sono sempre disponibili alla ricezione dei dati.
Accesso alle risorse • Come già sappiamo (ma è importante ricordare anche durante l’analisi del linguaggio PHP), ogni risorsa disponibile in rete (ad es. una pagina web, un immagine, etc.), per poter essere raggiunta deve avere un identificativo univoco, che consenta al client di accedervi. • Tale mezzo identificativo è denominato URL e costituisce un codice di riferimento unico per ogni file presente nella rete.
• Inoltre nella comunicazione tra client e server non è sufficiente che richiesta e risposta giungano correttamente al destinatario, ma occorre che i due programmi siano in grado di comprendere le rispettive comunicazioni: questo avviene solo attraverso la condivisione di uno stesso protocollo applicativo. • Nel caso del Web il protocollo applicativo, che specifica il formato dell’intestazione sia della richiesta del browser sia della risposta del Web Server, è l’HyperText Transfer Protocol (HTTP).
URL: il Protocollo • La prima informazione presente in un URL è il protocollo. • Per ogni risorsa è infatti necessario indicare al client con quale protocollo comunicare con il server. • Leggendo il valore del protocollo, il client invierà al server la richiesta secondo il formato previsto dal protocollo. Una pagina web, ad esempio, verrà trasmessa utilizzando il protocollo HTTP (HyperText Transfert Protocol)
un file di grosse dimensioni verrà invece trasmesso utilizzando il protocollo FTP (File Transfer Protocol) i messaggi di posta, infine, verranno trasmessi attraverso il protocollo SMTP (Simple Mail Transfer Protocol)
URL: il dominio Il nome di dominio è l'indirizzo mnemonico del Server che contiene la risorsa a cui vogliamo accedere.
• Tale nome non corrisponde all'indirizzo del server nella rete (l’indirizzo IP), ma solo ad un nome, più facile da ricordare, che è stato scelto per favorire gli utenti. • Per trasformare il nome del dominio nel relativo indirizzo IP, il client si deve collegare ad un apposito server che trasforma i nomi di dominio nei relativi indirizzi IP (il DNS).
URL: le porte
• Un singolo computer può eseguire in contemporanea più programmi di tipo server e quindi utilizzare ad esempio un Web Server ed uno per la posta elettronica; per far questo dovrà quindi poter ricevere in parallelo richieste indirizzate ai due (o più) applicativi che gestisce. • È necessario che le richieste ricevute siano comunicate dal sistema operativo al corretto applicativo server.
• Per farlo, ad ogni applicativo vengono associate una o più porte di accesso virtuali, rappresentate mediante numeri. • Esistono delle porte normalmente assegnate ad un protocollo. Quando si fa riferimento a queste porte standard il loro valore può essere omesso nell’URL.
URL: Directory e File Una volta stabiliti l’applicativo server a cui l'utente intende inviare la propria richiesta (definito dal nome del dominio e dalla porta) e il protocollo di trasmissione, sarà necessario determinare quale file si desidera acquisire. Per far questo si utilizza la stessa struttura ad albero dei dispositivi di memorizzazione di massa.
È quindi necessario definire la directory nella quale il file è presente, ovviamente insieme al nome del file. • Così come nella gestione normale di file e cartelle, anche nel nostro caso non è possibile avere più file con uno stesso nome all'interno di una stessa directory. Per questo motivo, una risorsa definita con un dato URL è unica in tutta la rete.
Schematizzazione della richiesta di una pagina web
FINE LEZIONE