CAPITOLO QUINTO internet: appLicazioni e servizi Web

Capitolo Quinto
Internet: applicazioni e servizi web
Sommario: 1. Le componenti tecnologiche (browser, web/application server). - 2. Realizzazione di pagine
statiche e dinamiche. - 3. Linguaggi di marcatura e tecniche per lo sviluppo di interfacce web (HTML, XML,
scripting, applet, servlet, JSP). - 4. Servizi e portali web. - 5. Web 2.0.
1. Le componenti tecnologiche (browser, web/application
server)
Internet ha gradualmente modificato, tanto in ambiente lavorativo quanto in ambiente
privato, il rapporto uomo - macchina.
Partita inizialmente come rete puramente informativa, Internet oggi rappresenta la rete
globale più grande esistente.
Il suo scopo originario era quello di garantire comunicazioni stabili ed efficienti tra le
sedi delle forze armate statunitensi oltre che tra le università e i centri di ricerca che lavoravano a progetti di natura militare.
La prima rudimentale apparizione di questa forma d’interconnessione risale al 1969 quando il Ministero della Difesa Statunitense creò un’agenzia, «Arpa», preposta allo sviluppo
di una rete che potesse reggere al bombardamento nucleare, garantendo la continuità di comunicazione tra località diverse.
Per capire la rapidità e l’elevata tecnologia con cui si è sviluppata la rete Internet basti
pensare che non più di trenta anni fa, Internet era concepito in maniera completamente diversa, ad esempio non esisteva, e soprattutto non si immaginava, la parola «Social» al più
si cominciava a creare qualche gruppo collegato attraverso le newsletter o le mailing list.
Siamo partiti con il web 1.0 le cui caratteristiche erano:
—Struttura informativa gerarchica. Esistevano due utilizzatori della Rete: quelli che
fornivano notizie e quelli che ne fruivano.
—Pagine web statiche. Le pagine che si adattavano al tipo di schermo o al tipo di device
erano ancora inesistenti. I siti si programmavano in HTML puro e non si conoscevano i
CMS.
—Basso rischio. Il rischio era quasi inesistente in quanto mancava un canale di ritorno che
poteva scombinare ciò che era stato pianificato.
—Comunicazione monodirezionale. Essendo le community limitatissime e non esistendo i social network, la comunicazione andava dall’alto verso il basso.
—Reattivo. Nel Web 1.0 la produttività non era necessaria e le correzioni del caso erano
di tipo reattivo.
Nel breve lasso di tempo di un decennio l’evoluzione del mondo Internet è stata notevolmente veloce e strutturata, inizialmente siamo passati dal Web 1.0 al Web 1.5, momento dove si è provveduto a creare l’integrazione dei database, dei primi forum e blog molto
elementari, ma che subito hanno trovato ampia diffusione.
60
Libro Primo - Informatica di base
Il Web 2.0 cambia il modo di vedere Internet e nello specifico ci si riferisce alle tecnologie che permettono ai dati di diventare indipendenti dalla persona che li produce. Con il Web
2.0 i dati, l’informazione, ma anche l’idea stessa che si vuole trasmettere viaggiano liberamente da un sito all’altro, spesso in modi che il produttore non aveva previsto o gestito.
Per capire le potenzialità del Web 2.0, e come queste sono state recepite dal mercato, basti pensare all’avvento in rete dei siti commerciali, come il portale e-Bay.
Le componenti tecnologiche che costellano il mondo Internet sono tantissime e forse
senza accorgercene le utilizziamo comunemente.
Ad esempio i browser web sono quei programmi (Chrome, Microsoft Internet Explorer, Firefox) che ci permettono di navigare in Internet.
I browser più moderni, oltre che visualizzare le pagine web, consentono anche di tenersi aggiornati con le ultime notizie dei vari siti web con i feed RSS, di vedere video ed ascoltare file audio senza doverli scaricare grazie alla tecnologia Flash oppure HTML5.
I browser sono programmi «client»; programmi che leggono il comando e poi richiedono e raggiungono informazioni e servizi inviando richieste a programmi «server».
Anche i browser hanno una storia tecnologica e quindi di crescita, che di solito va di pari
passo con l’evoluzione del mondo Web. Infatti i browser sono distinti in due gruppi di base:
—orientati al testo - sono più veloci e utilizzabili;
—grafici, utilizzando una GUI (Graphical User Interface) sono spesso più semplici da imparare e più veloci da controllare.
I compiti principali dei browser sono sostanzialmente due:
—interpretare e visualizzare il codice HTML che viene inviato dai siti web;
—relazionarsi con i siti, inviando i dati relativi alla richiesta e mettendo a disposizione la
risposta.
Le Web-application (applicazioni Web) sono le applicazioni distribuite web-based. Questa espressione è impiegata nell’ambito del software engineering, dove con il termine web
app si descrive un’applicazione accessibile via web.
Per web application intendiamo, quindi, un software accessibile tramite Internet, cioè un programma che non è installato sulla macchina dell’utente, ma bensì su un server spesso remoto.
Di conseguenza la principale caratteristica ed il principale vantaggio delle web application è proprio la possibilità di accedere alle funzionalità del software che vogliamo utilizzare attraverso qualsiasi dispositivo collegato al web, ciò garantisce quindi la possibilità di
interagire sempre con il software.
I vantaggi di una web application sono:
—sono affrontate in dettaglio le esigenze di chi crea;
—automatizzazione dei processi chiave che genera maggiore capacità lavoro;
—possibilità di lavorare in remoto;
—maggiore certezza dell’esattezza dei dati inseriti;
—risparmio sui costi misurabili nel tempo (maggiore ROI - Ritorno degli investimenti).
Queste applicazioni devono essere sottoposte a test per garantire la massima compatibilità con gli standard web e i browser web utilizzati dagli utenti.
Capitolo Quinto - Internet: applicazioni e servizi web
61
Un server web è un servizio installato su un computer server (detto anche host) che si
attiva se chiamato, attraverso una connessione, per restituire una serie di informazioni codificate secondo uno specifico protocollo o linguaggio.
Un server web può rispondere a molti client e da molti client riceve input per attivarsi,
esattamente come mostrato in figura.
Le due macchine hardware, server web e client, comunicano con il browser Internet installato sul client attraverso il protocollo http. Nello specifico questo protocollo standardizza il processo di invio e di ricezione dei dati cosicché qualsiasi client possa agevolmente
comunicare con qualunque tipo di server web, senza problemi di compatibilità.
2. Realizzazione di pagine statiche e dinamiche
Spesso quando si parla di realizzazione di siti internet può capitare di imbatterci in due
diversi tipi di pagine: le statiche e le dinamiche.
Inizialmente il web altro non era che un insieme di pagine di testo, informazioni che raramente, se non quasi mai, subivano modifiche, anche perché alla modifica di un testo corrispondeva il dover riscrivere la pagina.
La restrizione di questi siti era appunto la forte staticità della pagina, per cui l’eventuale modifica doveva essere apportata «solo» dal programmatore, ed il più delle volte solo dal
62
Libro Primo - Informatica di base
programmatore che aveva sviluppato il sito, perché necessitava delle giuste conoscenze rispetto ai linguaggi di codice utilizzato.
Questo limite rendeva il lavoro troppo farraginoso e costoso, ma soprattutto lo rallentava rispetto alla richiesta del mercato.
Nel tempo, quindi, l’esigenza ha portato a sviluppare il concetto di pagine dinamiche.
Si sono sviluppati linguaggi di programmazione in grado di lavorare lato host permettendo l’elaborazione dei dati presenti sui server, gli stessi server che contenevano i siti web.
La caratteristica vincente delle pagine dinamiche è quella di avere un contenuto variabile che può dipendere da più fattori. Solitamente dipende dal contenuto di un data base popolato dall’utente tramite altre pagine dinamiche, un esempio classico può essere un sito
contenente una lista di prodotti in vendita con relative caratteristiche, oppure un elenco di
news.
Quindi la differenza principale tra i due tipi è che le pagine statiche non possono essere
aggiornate dall’utente, le dinamiche sì.
Alla luce di questa differenza viene da sé che per la realizzazione di un sito la questione fondamentale attiene alla quantità ed alla complessità delle informazioni (dati) da esporre a video, naturalmente le esigenze temporali in termini di aggiornamento più o meno frequente sono fondamentali nella scelta.
Un sito web con pagine statiche è caratterizzato dall’utilizzo di linguaggi di markup
(html) che permettono la formazione di pagine web performanti in termini di caricamento
(in questo caso si valuta il tempo) perché le informazioni che devono essere trasmesse sono
contenute all’interno della pagina stessa, e non vi è quindi la necessità di interrogare un data
base per prelevare l’informazione. Quindi, in questo caso, si creerà una singola pagina web
per ogni unità di informazione, rendendo poco flessibile la gestione.
La caratteristica, invece, delle pagine dinamiche è l’interazione della pagina con una
base di dati che contiene le informazioni da presentare. Per effettuare questa interazione è
necessario utilizzare un linguaggio che permetta il colloquio con una base di dati, ASP.NET,
PHP, JSP, o un Content Managment System CMS come, ad esempio, Joomla, Drupal o WordPress.
Inquadriamo subito la vera differenza: le informazioni nelle pagine dinamiche non sono
contenute all’interno della pagina web, ma vengono lette dalla base di dati in tempo reale
in seguito ad una richiesta.
Al problema tempo (ma stiamo comunque parlando di frazioni di secondo) dovuto all’invio della richiesta e all’attesa della risposta, si contrappone la facilità degli aggiornamenti
e della manutenzione, oltre al fatto non da poco che l’utente fruitore del sito vedrà sempre
un sito aggiornato e quindi dinamico rispetto all’esigenza.
3. Linguaggi di marcatura e tecniche per lo sviluppo di interfacce web (HTML, XML, scripting, applet, servlet, JSP)
Il linguaggio di marcatura è quello che con istruzioni definite (tag), segnala le caratteristiche logiche di un documento e delle sue parti: ad esempio, la funzione di titolo svolta da
una determinata porzione di testo.
Capitolo Quinto - Internet: applicazioni e servizi web
63
I diversi linguaggi di marcatura sono:
• di tipo procedurale, che indicano, cioè le procedure di trattamento del testo prevedendo
i comandi che devono essere eseguiti per la visualizzazione nei Browser (ed es. HTML)
• di tipo descrittivo detto anche marcatura che, a differenza del tipo procedurale, lasciano
la scelta del tipo di rappresentazione, da applicare al testo, al software che lo riprodurrà
di conseguenza (ad es. XML).
Relativamente ai linguaggi procedurali approfondiamo alcuni aspetti dell’esempio già
citato dell’HTML.
Nello specifico questo linguaggio è formato da una serie di comandi definiti TAG che
si costruiscono con il nome del comando, racchiuso tra i simboli “<” (minore) e “>” (maggiore), e con il TAG di chiusura uguale al comando di apertura con in più un simbolo di
slash «/».
Nella Tabella seguente sono evidenziati i tag definiti in HTML e come reagisce il computer a questi.
Linguaggio con tag
Evidenzia la parola con il
<strong>grassetto</strong>
Risultato a video
Evidenzia la parola con il grassetto
La parola grassetto tra i simboli di minimo e massimo (< >) è la marcatura del testo di
cui abbiamo parlato. Il TAG grassetto è in realtà un comando, perché dichiara come deve
essere messo a video questo contenuto.
I TAG si definiscono TAG di apertura e TAG di chiusura, quest’ultimo come si nota è
preceduto dallo slash.
Esistono vari tipi di TAG e di seguito se ne mostra uno fra i più classici, quello per la
definizione delle intestazioni.
Linguaggio con tag
<h1>Titolo</h1>
<p>testo</p>
Risultato a video
Titolo
Testo
In questo caso h1 oltre ad essere un TAG rappresenta l’Intestazione del titolo.
Nello specifico questo TAG ci dice che la parola titolo deve:
—essere stampata grande ed in neretto;
—che è un titolo (in un eventuale sommario).
Gli script, invece, non sono altro che piccoli programmi con la funzione di svolgere speciali compiti generalmente caratterizzati da un elevato grado di interazione con l’utente, dinamismo e flessibilità.
Esistono due tipologie di script:
—client-side;
—server-side.
64
Libro Primo - Informatica di base
Negli script lato client (client-side), la loro esecuzione avviene a livello del client del visitatore e non sono pertanto dipendenti dal server ospitante e dalle sue caratteristiche tecnologiche.
Una peculiarità degli script lato client è che non tutti sono «cross browser» (cioè che non
funzionano su ogni browser) alcuni funzioneranno solo per gli utenti che usano un browser
determinato, l’esempio classico per gli script client-side è Javascript.
Diverso è il funzionamento degli script lato server (server-side) che sono eseguiti dallo stesso server che li interpreta, traducendone le informazioni in semplici pagine html visibili su tutti
i browser. Non tutti i server però sono «capaci» di tradurre gli script. È necessario che il server
disponga del giusto «interprete» che gli consenta di tradurre il linguaggio utilizzato dallo script.
4. Servizi e portali web
I servizi web, tecnicamente chiamati web Service sono servizi offerti e li definiremo
come dei componenti applicativi di un qualsiasi portale web. Sono un insieme di protocolli e linguaggi di intercomunicazione che permettono di offrire un servizio aperto a tutti.
I web service hanno una caratteristica specifica per il loro scopo, sono auto-contenuti ed
auto-descrittivi.
Volendo schematizzare i web service sono:
—componenti applicativi;
—comunicano attraverso protocolli aperti e liberi;
—sono ricercabili attraverso UDDI (Universal Description, Discovery and Integration);
—possono essere utilizzati da altre applicazioni;
—la base consiste nel linguaggio XML.
La funzionalità è molto semplice.
In realtà da un qualsiasi portale che utilizza un Web Service parte una richiesta tramite
un opportuno protocollo (SOAP - Simple Object Access Protocol) al link in cui risiede il
web service. Il server riceve la richiesta, la elabora e quindi ne analizza i parametri, processa le informazioni e invia la risposta contenente la soluzione a quanto richiesto o in alternativa effettua delle operazioni e ne dichiara l’esito.
Per comprendere bene cosa sia un portale web si deve pensare alla differenza che c’è fra
un sito web e un portale.
Mentre il classico sito web rappresenta sostanzialmente una vetrina ed è semplicemente un insieme di pagine web, il portale web raccoglie un insieme di servizi e li rende disponibili in un’unica struttura, visivamente simile al sito web, ma con contenuti diversi.
Il portale, quindi, è un sito strutturato per generare interesse e catturare l’attenzione dei
visitatori, naturalmente lo scopo, per i portali che afferiscono ad aziende commerciali è quello di attirare il maggior numero possibile di persone.
Ad oggi i portali si dividono in:
1. Orizzontali che offrono una serie di servizi che sono piuttosto simili da un sito all’altro.
Su questi portali troveremo sicuramente il motore di ricerca, i canali tematici (come possono essere lavoro, news, finanza, musica, sport e tempo libero, viaggi), a cui si aggiun-
Capitolo Quinto - Internet: applicazioni e servizi web
65
gono tutti quei servizi creati appositamente per trattenere a lungo il visitatore come ad
esempio:
—chat;
—SMS;
—cartoline virtuali;
—oroscopo;
—rassegna stampa;
—giochi.
La combinazione tra un gran numero di visitatori e un gran numero di servizi attira sicuramente soldi. L’esempio classico di questo binomio è dato dai siti di e-commerce.
2. Verticali che sono nati e si sono affermati nella convinzione che nel tempo genera maggiore beneficio poter contare su un’utenza sicuramente minore, ma segmentata nelle caratteristiche e nei desideri. Ovvero un tipo di utenza più fedele al tipo di iniziativa. I portali verticali sono uno strumento per attuare questa strategia. Si tratta di siti web che forniscono servizi ed informazioni, ma che non si propongono come onnicomprensivi. Sono,
al contrario, molto specializzati su singole aree di interesse o settori del mercato. Le persone che si interessano di marketing sono convinte che i portali verticali possono generare il vantaggio di curare maggiormente i contenuti trasmessi e quindi i desideri dell’utente fruitore del sito.
5. Web 2.0
Come già si è avuto modo di sottolineare, negli ultimi dieci anni il web si è fortemente
evoluto a seguito del progresso tecnologico e delle nuove richieste che arrivavano dal mercato e dai settori del marketing che sempre più si sono appoggiati al web per sviluppare le
proprie attività.
Questa evoluzione è quindi figlia di diversi temi, sia in ambito tecnologico che in ambito sociale.
Il nuovo web, o almeno quello che si è evoluto dopo il web 1.0, è da molti definito come
«The social Web», accezione molto chiara e forte di come il web 2.0 veda la socialità come
uno dei punti più importanti.
O’Reilly è forse tra i primi a dare una definizione di web 2.0 intendendolo come «un set
di tendenze economiche, sociali e tecnologiche che insieme costituiscono la base per la nuova generazione di Internet: un mezzo più maturo e distintivo caratterizzato dalla partecipazione dell’utente, dall’apertura e dagli effetti di rete».
Il web 2.0 come framework concettuale si articola su tre assi strategici:
—posizionamento strategico: da questo punto di vista il web è visto come un portale;
—posizionamento dell’utente. I dati sono controllati dall’utente;
—competenze richieste:
—i sistemi si devono strutturare sotto forma di servizi;
—i costi devono essere scalabili;
—i sistemi devono utilizzare i web services;
66
Libro Primo - Informatica di base
—l’architettura deve essere «partecipativa»;
—il sistema deve essere indipendente dal device (multi-canalità).
Per il web 2.0 possiamo identificare alcune regole fondamentali come:
—Programmazione trasparente: il software deve risultare trasparente nei confronti degli utenti e deve consentire sistemi di abbinamento liberi.
—Centralità dei dati: i dati guidano le applicazioni e per esse i siti o portali. L’unicità delle informazioni è un requisito fondamentale da garantire.
—Utente come valore aggiunto: l’architettura deve essere partecipativa e quindi deve andare oltre lo sviluppo del software al fine di permettere un maggiore coinvolgimento implicito ed esplicito degli utenti nell’aggiunta di valore all’applicazione.
L’applicazione che più di tutte ha caratterizzato e fatto sentire l’avvento dell’approccio
basato sul web 2.0 è rappresentata dai blog, perché come detto prima, rendono possibile
l’espressione di contenuti personali e si sono diffusi grazie alla facilità con cui è possibile
gestirli e consultarli.
Naturalmente anche il web 2.0 si appoggia a determinate tecnologie, alcune delle quali
sono:
—Rich Internet Applications: applicazioni web con caratteristiche a volte tradizionali,
ma che trasferiscono sui Web client i processi necessari per la gestione dell’interfaccia,
pur mantenendo la maggior parte dei dati sull’application server. Questo sistema potrebbe dire poco al profano dell’informatica, ma è tenuto molto in considerazione dai tecnici perché rende le pagine più leggere.
—XHTML: linguaggio di markup, esattamente uno di quelli già visti in precedenza, che
mantiene il potere espressivo di HTML, ma rispettando le regole di sintassi dei documenti XML validi e ben formati.
—CSS: rappresenta l’ideale per gli sviluppatori perché separa il codice relativo al contenuto da quello relativo alla presentazione delle pagine.
—AJAX: acronimo di Asynchronous Javascript and XML. Scambia pacchetti di dati in
background con il server e in modo asincrono. L’intera pagina non deve essere ricaricata ad ogni modifica effettuata dall’utente.
—RSS: uno dei formati per la distribuzione di contenuti Web. Si basa su XML. La sua
struttura è adatta a contenere un insieme di notizie, ciascuna delle quali sarà composta
da vari campi (nome autore, titolo ecc.). Quando si pubblicano delle notizie in formato
RSS, la struttura viene aggiornata con i nuovi dati. Essendo il formato predefinito, un
qualunque lettore RSS potrà presentare in una maniera omogenea notizie provenienti
dalle fonti più diverse.
Capitolo Quinto - Internet: applicazioni e servizi web
67
Domande
1. Quali sono le caratteristiche del web 1.0?
Le caratteristiche del web 1.0 sono:
—Struttura informativa gerarchica
—Pagine web statiche
—Basso rischio
—Comunicazione monodirezionale
—Reattivo
2. Quale può essere una definizione di web application?
Le web-application sono applicazioni distribuite web-based. Questa espressione è impiegata nell’ambito del software engineering, dove con il termine webapp si descrive un’applicazione accessibile via web. Quindi con web application intendiamo un software accessibile tramite internet, non installato sulla macchina dell’utente ma su un server spesso remoto.
3. Quali sono i vantaggi derivanti dall’utilizzo delle web application?
I vantaggi di una web application sono:
—vengono affrontate in dettaglio le esigenze di chi crea;
—automatizzazione dei processi chiave che genera maggiore capacità lavoro;
—possibilità di lavorare in remoto;
—maggiore certezza dell’esattezza dei dati inseriti;
—risparmio sui costi misurabili nel tempo (maggiore ROI- Ritorno degli investimenti).
4. Un sito internet si caratterizza per le sue pagine, quali sono i tipi di pagina possibili e quali sono le differenze fra loro?
I siti Internet possono essere classificati in siti a pagine statiche e siti a pagine dinamiche. La caratteristica delle pagine dinamiche è quella di avere un contenuto variabile che
può dipendere da più fattori. Solitamente dipende dal contenuto di un database popolato
dall’utente tramite altre pagine dinamiche, un esempio classico può essere un sito contenente una lista di prodotti in vendita con relative caratteristiche, oppure un elenco di news.
Quindi la differenza principale tra i due tipi è che le pagine statiche non possono essere
aggiornate, ma devono essere riscritte dall’utente, mentre le dinamiche possono essere aggiornate senza toccare la programmazione della pagina, ma modificando il data base.
5.Cosa è un linguaggio di marcatura?
Il linguaggio di marcatura è quel linguaggio che con istruzioni definite segnala le caratteristiche logiche di un documento e delle sue parti: ad esempio, la funzione di titolo svolta da una determinata porzione di testo.
68
Libro Primo - Informatica di base
6.Il linguaggio di marcatura si differenzia per tipo, quali sono i tipi di marcatura
possibili?
I diversi linguaggi di marcatura possono essere:
—di tipo procedurale: indicano le procedure di trattamento del testo e aggiungono quindi
i comandi che devono essere eseguiti per la visualizzazione nei Browser (ed es. HTML);
—di tipo descrittivo detto anche marcatura. A differenza del tipo procedurale questi lasciano la scelta del tipo di rappresentazione, da applicare al testo, al software che lo riprodurrà di conseguenza (ad es. XML).
7.Cosa sono i web service?
I Web service hanno una caratteristica specifica per il loro scopo, sono auto-contenuti ed
auto-descrittivi. Volendo schematizzare i web service sono: componenti applicativi che comunicano attraverso protocolli aperti e liberi e sono ricercabili attraverso UDDI (Universal
Description, Discovery and Integration). Possono essere utilizzati da altre applicazioni. La
base consiste nel linguaggio XML.
8. Qual è la differenza fra siti e portali?
Il sito web rappresenta sostanzialmente una vetrina ed è semplicemente un insieme di
pagine web (statiche o dinamiche), il portale web raccoglie un insieme di servizi e li rende
disponibili in un’unica struttura.
Il portale è un sito strutturato per generare interesse e catturare l’attenzione dei visitatori, naturalmente lo scopo, per i portali che afferiscono ad aziende commerciali, è quello di
attirare il maggior numero possibile di persone.
9.Come si dividono oggi i portali e quali sono le differenze?
I portali si dividono in portali orizzontali e portali verticali.
I portali orizzontali offrono una serie di servizi che sono piuttosto simili da un sito all’altro. Su questi portali troveremo sicuramente il motore di ricerca, i canali, a cui si aggiungono tutti quei servizi creati appositamente per trattenere a lungo il visitatore come ad es.:
—chat;
—SMS;
—cartoline virtuali;
—oroscopo;
—rassegna stampa;
—giochi.
I portali verticali sono nati e si sono affermati nella convinzione che generino maggiore
beneficio nel tempo, potendo contare su un’utenza sicuramente minore ma segmentata nelle caratteristiche e nei desideri. I portali verticali forniscono anch’essi servizi ed informazioni, ma che non si propongono come onnicomprensivi. Sono, al contrario, molto specializzati su singole aree di interesse o settori del mercato.