Diapositiva 1 - Mondadori Education

Eprogram informatica
V anno
Programmare in rete
Client e server
Lo scambio di informazioni nel mondo Internet è basato
fondamentalmente sull’architettura client-server.
In base al tipo di applicazione che si vuole realizzare il client e il server
possono avere un ruolo differente.
Ciascuna delle due componenti può essere:
- statica, cioè non rielaborare le informazioni,
- dinamica, cioè a fronte di una richiesta viene attivato un programma in
grado di effettuare delle operazioni.
Scenari possibili
Possiamo avere i seguenti scenari:
• un client statico che interagisce con un server statico;
• un client statico che interagisce con un server dinamico;
• un client dinamico che interagisce con un server statico;
• un client dinamico che interagisce con un server dinamico.
Client statico e server statico
1. Il client statico invia una richiesta al server statico indicando uno
specifico URL (Uniform Resource Locator).
2. Il server individua la risorsa richiesta e la invia al client.
3. Il client interpreta il codice HTML e visualizza le informazioni o invia
un’altra richiesta al server.
Client statico e server dinamico
1. Il client effettua una richiesta.
2. Il server invia al client un’informazione che varia in funzione di
parametri digitati dall’utente.
Per ottenere l’informazione il server può eseguire direttamente una
query SQL oppure attivare un applicativo, tramite componenti software
che fungono da middleware.
Si dice middleware un software che si interfaccia tra il client e il server.
In ambito Internet, il server su cui vengono eseguite queste applicazioni
prende il nome di application server.
Client dinamico e server statico
Il client svolge una parte dell’elaborazione.
Vi sono due possibilità di rendere dinamico un client:
- In un primo caso, vi è una componente software o un programma
Javascript che risiede sul server ed è automaticamente scaricata sul
client ed eseguita localmente.
- L’altra possibilità è quella di utilizzare i linguaggi di scripting. In questo
caso il codice viene inserito all’interno delle pagine HTML e viene
interpretato al momento dell’esecuzione.
Client dinamico e server dinamico
Unisce le potenzialità viste in precedenza:
- permette di migliorare l’interazione tra utente e sistema, consentendo
un accesso adeguato ai dati e alle applicazioni aziendali.
- è il modello attualmente più adottato per lo sviluppo di applicazioni
aziendali basate sugli standard Internet (intranet ed extranet).
Per realizzare la dinamicità dei client e dei server è necessario scrivere
programmi che si attivino quando necessario.
Per far questo esistono diverse tecniche:
- realizzazione di semplici script interpretabili dai browser,
- creazione di veri e propri programmi compilati.
Alcune di queste tecniche sono utilizzabili solo dal lato server, altre
servono solo per i client, mentre vi sono tecniche che è possibile
utilizzare su entrambi i nodi della comunicazione.
Pagine dinamiche
Per pagina dinamica si intende una pagina il cui contenuto NON è
prefissato, ma viene (parzialmente o interamente) generato in tempo
reale in base alle richieste dell’utente.
L’esempio più chiaro e noto a tutti è quello dei motori di ricerca.
Pagine statiche
Quando invece digitate nella barra degli indirizzi del browser un indirizzo
che finisce per .html quasi sicuramente state vedendo una pagina
statica.
In questo caso il Web server che chiamate si sta comportando
essenzialmente come un hard disk remoto: controlla se la pagina esiste
e ve la fornisce così com’è.
Programmazione lato client
A livello di client vi possono essere dei programmi già compilati, che
vengono scaricati dal server ed eseguiti sul client, oppure programmi
scritti in un linguaggio di script che vengono interpretati dal client.
Applet
Con Applet si indicano particolari programmi Java che vengono inseriti
nelle pagine HTML mediante l’elemento applet (o object) con alcuni
attributi necessari all’esecuzione dell’applet.
All’interno dell’elemento applet (o object) possono inoltre essere
definiti parametri che vengono passati all’applet in esecuzione. Quando
un browser incontra tali tag HTML carica in memoria il programma e lo
esegue.
Plug-in
Si dicono plug-in alcune componenti software che permettono di
estendere le funzionalità del browser in modo da consentirgli di
interpretare dati in formato particolare.
Quando il browser effettua il download di una pagina con dati di un
formato che non è in grado di interpretare, verifica se possiede un plug-in
in grado di gestirlo.
Se necessario, il plug-in può essere scaricato dal server.
Alcune funzionalità tipiche sono: la visualizzazione di formati grafici
(CAD), l’esecuzione di presentazioni interattive (Flash), l’esecuzione di
codice Java (applet).
MS ActiveX
ActiveX della Microsoft è un insieme di tecnologie che permettono di
sviluppare applicazioni software utilizzando il concetto di componente
riusabile.
Gli oggetti ActiveX sono inseriti all’interno di pagine HTML, ma NON
possono essere eseguiti da soli.
Devono essere contenuti all’interno di un altro programma e installati
sull’hard disk locale.
Un oggetto ActiveX deve essere compilato per una piattaforma specifica.
Dopo il caricamento di una pagina che lo referenzia, il browser verifica se
il controllo è già installato sul client, se non è ancora installato o se ne
esiste una versione più aggiornata è scaricato in automatico.
I linguaggi di scripting
I linguaggi di scripting sono pezzi di codice inseriti in pagine HTML.
Introducono estensioni all’interfaccia di una pagina Web o del browser.
In questo modo è possibile aumentare le potenzialità interattive di una
pagina Web SENZA UNA COMPETENZA DA PROGRAMMATORE.
Possono essere eseguiti sia a livello server, sia a livello client.
Quando gli script sono eseguiti a livello client non possono accedere alle
risorse locali (sono quindi sicuri).
I principali linguaggi di scripting sono JavaScript e Visual Basic Script
(VBScript).
JavaScript
Nonostante il nome, il linguaggio JavaScript non ha niente a che fare
con il linguaggio Java.
Il codice viene inserito direttamente nelle pagine HTML preceduto dal tag
<SCRIPT LANGUAGE = “JavaScript”>
Il codice è normalmente composto da una serie di function che vengono
richiamate in corrispondenza a eventi che occorrono nella pagina.
Viene usato principalmente per realizzare form per l’immissione dati,
realizzare calcoli su tabelle e per gestire la navigazione sul Web.
VBScript
Il linguaggio VBScript deriva dal Visual Basic.
Come per JavaScript, il codice è inserito in pagine HTML dopo il tag
<SCRIPT LANGUAGE = “VBScript”>
Le funzionalità offerte sono praticamente le stesse di JavaScript.
La principale differenza sta nella portabilità inferiore a JavaScript, in
quanto utilizzabile solo con Internet Explorer, e nella fase di
apprendimento del linguaggio decisamente più facile di JavaScript.
Programmare lato server
La programmazione di componenti software per Web application lato
server si può basare su diverse tecnologie, le più comuni delle quali sono:
• CGI (Common Gateway Interface);
• Java servlet;
• linguaggi di scripting quali: Active Server Pages (ASP), Java Server
Pages (JSP) e PHP (Hypertext Processor).
Programmi in CGI
I programmi scritti in CGI (Common Gateway Interface) risiedono sul
server e hanno la funzione di middleware.
A ogni richiesta di uso di un programma CGI, viene creato un nuovo
processo che si occuperà di fare da interfaccia tra il client e l’applicazione
richiesta.
Sono programmi scritti normalmente in linguaggio Perl o PRP.
Servelet
Le servlet sono componenti Java che vengono eseguite sulla piattaforma server
(application server) e possono fornire al client contenuti espressi in HTML,
costruiti dinamicamente in fase di esecuzione.
A differenza dei programmi CGI, l’esecuzione di una servlet NON richiede la
creazione di un nuovo processo a livello di sistema operativo, ma solo di un
thread all’interno dell’application server.
La servlet diventa quindi parte integrante dello stesso application server.
Quando la sessione viene chiusa anche il thread legato alla servlet viene chiuso.
JSP
Le Java Server Pages (JSP) sono pagine HTML contenenti codice Java
che viene eseguito sulla piattaforma server.
La prima volta che la pagina è richiamata viene tradotto il codice
sorgente Java, la pagina viene compilata sotto forma di servlet,
memorizzata su disco e quindi mandata in esecuzione.
Ai successivi accessi alla pagina la servlet viene direttamente eseguita
in quanto già compilata e memorizzata.
ASP
Le Active Server Pages (ASP) forniscono un meccanismo con cui è
possibile inserire all’interno di una pagina Web il codice che è eseguito
sul server a ogni accesso alla pagina.
La pagina inviata al browser viene quindi generata dinamicamente in
base a specifici parametri forniti in input.
La tecnologia ASP è disponibile
SOLO sulle piattaforme Microsoft,
ma la pagina generata è
visualizzabile su QUALSIASI
browser.
Il codice è interpretato da una componente (ASP.DLL) che opera
parallelamente al Web server ed è in grado di gestire più richieste
contemporaneamente (multithread).
Pagine PHP
Le pagine PHP, dal punto di vista funzionale, sono simili alle pagine ASP.
Sono pagine HTML che contengono codice scritto in PHP.
Può girare praticamente su qualsiasi server Web, su qualsiasi sistema
operativo e consente di interagire praticamente con qualsiasi tipo di
database.
Può essere agevolmente utilizzato per i più svariati tipi di progetti.
Quando un comando dello script richiede il reperimento di dati da un
database, il server Web preleva i dati dal database e li inserisce nei
comandi HTML all’interno del modulo PHP per produrre un documento
HTML formattato.