World Wide Web

Transcript

World Wide Web
PROGETTAZIONE E
PRODUZIONE MULTIMEDIALE
WWW
Prof. Alberto Del Bimbo
World Wide Web
Il World Wide Web (WWW) è uno dei servizi di Internet, rete di computer
mondiale e ad accesso pubblico. Assieme alla posta elettronica, è il servizio
di
Internet
più
utilizzato
e
conosciuto.
Il servizio mette a disposizione degli utenti uno spazio elettronico e digitale per la
pubblicazione di contenuti multimediali oltre che un mezzo per la distribuzione di
software e la fornitura di servizi particolari sviluppati dagli stessi utenti.
Il Web è stato creato da Tim Berners-Lee, mentre era ricercatore al CERN di Ginevra.
Gli standard su cui è basato sono mantenuti dal World Wide Web Consortium (W3C). La
nascita del Web risale al 6 agosto 1991, giorno in cui Berners-Lee mise on-line su
Internet il primo sito web.
Il Web ha alcune caratteristiche che hanno contribuito al suo enorme successo:
•
•
•
architettura basata su standard di pubblico dominio
architettura distribuita di tipo client-server
capacità di gestire informazioni di diverso tipo
• 3 standard principali del web
• P rotocollo HTTP (HyperText Transfer P rotocol):
è il protocollo che i client e i server utilizzano per comunicare.
• S istema di indirizzamento basato su Uniform R esource Locator (UR L):
è un meccanismo standard per fare riferimento alle entità
indirizzabili:
• documenti (testo, immagini, suoni, ecc.);
• programmi eseguibili.
• Linguaggio HTML (HyperText Markup Language):
è il linguaggio per la definizione delle pagine Web.
• Lo sviluppo del web ha parimente previsto evoluzioni degli standard e
integrazioni
Il protocollo HTTP (Hyper Text Transfer Protocol ) è il protocollo di
comunicazione tra un client (p.e. un browser) ed un server web. Questo
protocollo lavora per creare, trasferire e gestire dei dati formattati secondo il
linguaggio HTML da un sistema ad un altro in maniera indipendente dal
sistema stesso.
L'HTTP disciplina i riferimenti attraverso gli URI (Universal Resource Identifier) che
possono essere divisi per locazione URL e per nome URN, indica in tal modo la risorsa a
cui applicare il metodo della request.
HTTP è un protocollo AS C II (8 bit), cioè i messaggi scambiati fra client e server sono costituiti da
sequenze di caratteri ASCII
In questo contesto per mes s aggio si intende la richiesta del client oppure la risposta del server,
intesa come informazione di controllo; viceversa, i dati della URL richiesta che vengono restituiti
dal server non sono necessariamente ASCII (esempi di dati binari: immagini, filmati, suoni,
codice eseguibile). Utilizzo dello standard MIME (sviluppato per la posta elettronica)
L’HTTP prevede che ogni singola interazione fra client-server si svolga secondo il
seguente schema:
• apertura di una connessione di livello di transporto (TC P ) tra client e server
• invio di una singola richiesta da parte del client, che specifica la URL desiderata;
• invio di una risposta da parte del server e dei dati di cui alla URL richiesta;
• chiusura della connessione di livello transport.
ad esempio per ogni pagina richiesta…quando si accede ad un sito web
E’ un protocollo di tipo stateless: non è previsto il concetto di session e all'interno della
quale ci si
ricorda dello stato dell'interazione fra client e server. Ogni singola interazione è storia a
se ed è del tutto indipendente dalle altre.
L’ URL (Uniform Resource Locators) (RFC 1738), definisce univocamente la
posizione di una risorsa in rete. Una URL è fatta di 3 parti, che specificano:
• metodo di access o
(come si vuole accedere alla risorsa)
• host
(dove è fisicamente localizzata la risorsa)
• identità
(come è identificata la risorsa)
aaa://bbb:ccc/ddd/eee
metodo di access o:
aaa = protocollo (http, ftp, https, etc). Per default si assume http.
ccc = porta TCP utilizzata nella trasmissione. Se non specificata viene utilizzata la porta di
default per il protocollo selezionato. Per esempio: 80 per l’ http, 21 per l’ftp,443 per https.
hos t:
bbb = host name (nessun default). E’ definibile sia come indirizzo a dominio che come indirizzo
IP.
identità:
ddd = pathname. Nel caso dell’ http identifica un percorso relativo a partire dalla root definita
nel server contattato.
eee = filename. Nel caso dell’ http se non specificato corrisponde al file di indice configurato nel
server web. Tipicamente per default corrisponde a index.html o index.htm.
L’HTML (Hyper Text Markup Language ) è un linguaggio che usa annotazioni markup
per descrivere la formattazione di documenti. Con il termine markup si intende una
sequenza di caratteri o altri simboli che si inseriscono all’interno di un documento
per indicare come il contenuto deve apparire o per descrivere la struttura logica
del documento.
• E’ derivato dall’ S G ML (S tandard G eneralized Markup Language) ISO 8879
• E’ specializzato nel trattamento degli ipertesti e adattato al Web.
• I comandi per la formattazione (tag ) sono inseriti in modo esplicito nel testo.
• Un documento descritto in HTML e’ sempre un file ASCII
L’evoluzione dell’HTML è sotto il controllo del consorzio W3C:
•
•
•
•
•
•
•
•
HTML versione 1.0
HTML versione 2.0 (RFC 1866 e RFC 2854)
HTML versione 3.0
HTML versione 3.2
HTML versione 4.0 (REC-html40-19980424)
HTML versione 4.0.1
XHTML 1.0 strict
XHTML 1.1
Il ruolo di HTML è di definire il modo in cui deve essere visualizzata una pagina
Web (detta anche pagina HTML ), che tipicamente è un documento di tipo testuale
contenente opportuni tag di HTML.
Il client, quando riceve una pagina compie le seguenti operazioni:
• interpreta i tag presenti nella pagina;
• formatta la pagina di conseguenza, provvedendo automaticamente ad
adattarla alle condizioni locali (risoluzione dello schermo, dimensione della
finestra, profondità di colore, ecc.);
• mostra la pagina formattata sullo schermo.
I tag HTML possono essere divisi in due categorie:
•tag per la formattazione di testo;
•tag per altre finalità (inclusione di oggetti,interazione utente,elaborazione
locale).
Server (Server Agents)
Il server è tipicamente un processo in esecuzione su un elaboratore. Esso, di
norma, è sempre in esecuzione ed ha i seguenti compiti:
• rimanere in ascolto di richieste da parte dei client;
• fare del suo meglio per soddisfare ogni richiesta che arriva:
Deve essere in grado di gestire molte richieste contemporaneamente, e
mentre fa questo deve continuare a rimanere in ascolto di nuove richieste.
Possibili soluzioni:
• clonazione del server:per ogni nuova richiesta che arriva, il server (che è
sempre in ascolto) crea una nuova copia di se stesso alla quale affida la
gestione della richiesta;si mette quindi nuovamente in attesa di nuove
richieste; la copia clonata si occupa di soddisfare la richiesta e poi
termina.
• server multithreaded:esiste una sola copia del server, che però è
progettato per essere in grado di generare thread multipli
Client (User Agents)
I client (o user agents) sono lo strumento a disposizione dell'utente per
l'accesso e la navigazione nell'ipertesto del Web. Vengono comunemente
chiamati browser : NC S A Mosaic (il primo); Nets cape Navigator; Microsoft
Internet E xplorer, Mozilla… ..
Essi hanno varie competenze:
• trasmettere al server le richieste di reperimento dati;
• ricevere dal server le informazioni richieste;
• visualizzare il contenuto della pagina Web richiesta;
• consentire operazioni locali sulle informazioni ricevute;
Gestiscono direttamente solo alcune tipologie di informazioni quali testo
formattato, immagini fisse, codice eseguibile. Gli altri tipi di informazioni
vengono gestiti attraverso un programma esterno o per mezzo di plug-in,
ossia librerie di codice eseguibile e specializzato caricato in memoria
secondo le necessità.
Con il web 2.0 e 3.0 il web si sta espandendo verso altri tipi di user
agents, quali mobile phone o P D A, o applicazioni che semplicemente sono
capaci di ritrovare ed elaborare documenti invece di farne solo il display
come i browser.
Evolution of world wide web
S emantic web s earch
semantical
2010
W eb 3.0
W eb ontologies
W eb 2.0
syntactical
W eb s earch
W eb 1.0
1990
interactive
community-based
Web 2.0 and beyond: Web Applications
Alle funzionalità iniziali di lettura e presentazione dell’informazione si è
presto sentita l'esigenza di affiancare un supporto a una qualche forma di
interattività superiore a quella offerta dalla navigazione attraverso gli
hyperlink (pagine statiche), ad esempio per consentire agli utenti di consultare
una base di dati remota via Web. La pagine Web generate on-fly da questo
tipo di interazione si definiscono: pagine dinamiche.
Ciò è stato reso possibile attraverso:
• introduzione del linguaggio L iveS cript (poi chiamato J avaS cript) per la
definizione di computazioni, eseguite dal client, direttamente associate a una
pagina HTML;
• introduzione del linguaggio J ava per la creazione di file eseguibili, che vengono
trasmessi dal server al client e poi vengono eseguiti in totale autonomia dal client;
indipendentemente dalla piattaforma HW e SW del sistema.
Server Side Application
In una applicazione Client-Server sono programmi che verranno eseguiti sul
Server:
• Scripts CGI
• JSP
• ASP
• Script PHP
Client Side Application
In una applicazione Client Server sono programmi che verranno eseguiti sul
Client:
• JavaScript
• Applet Java
• Flash (rich internet applications)
Server Side Applications
C G I (C ommon G ateway Interface): è la tecnologia piu’ standard e piu’ vecchia per interfacciare
un server Web con un programma, scritto in un linguaggio qualunque, che viene eseguito sul
server. Attraverso questa interfaccia e’ possibile passare dati dal server Web al programma
applicativo e viceversa. Il programma puo’ eseguire qualunque tipo di elaborazione (estrazione di
dati da database, manipolazione degli stessi, calcoli, ecc.). E’ una tecnologia abbastanza
inefficiente e poco sicura, ormai non più utilizzata.
AS P (Active S erver P ages): e’ una tecnologia sviluppata da Microsoft e successivamente
adottata anche da altri produttori di server Web (ad es. Netscape). E’ basata sul meccanismo di
introdurre all’interno di una pagina HTML codice ActiveX (Visual Basic, Visual C++, J ava,
VBScript) .
JS P (Java S erver P ages ): è una tecnologia sviluppata da Sun come alternativa alle ASP.
Funzionano nello stesso modo, salvo che nelle pagine HTML viene inserito del codice J ava.
Attraverso J ava e’ possibile effettuare qualunque elaborazione (estrazione dei dati, successiva
manipolazione degli stessi, calcoli, ecc.). Il server Web poi costruisce la pagina come
integrazione del codice HTML statico e dei risultati prodotti dal codice J ava.
XML
•
XML è un metalinguaggio: "a common s yntax for express ing structure in data“;
ovvero un linguaggio per definire nuovi linguaggi di markup. XML consente
di crearsi i propri tipi di documenti.
•
Lo scopo di XML è quello di separare la definizione dei dati dalla
rappresentazione, per favorire lo scambio di documenti strutturati. E’
quindi uno strumento per scambiare dati. E’ possibile validare una
struttura dati definita dall’utente.
–
–
•
Uno User Agent si aspetta che i dati XML siano strutturati secondo regole
specifiche che consentano di leggere i dati velocemente senza doverne decifrare
la struttura.
XML può essere quindi usato anche per creare Web pages formattate.
E’ una specifica ufficiale del World Wide Web Consortium (W3C) ed è alla
base di tutte le nuove specifiche tecnologiche rilasciate dal W3C e adottate
come standard dall'industria informatica.
From HTML to XHTML
• HTML non è idoneo per user agents diversi dai Web browsers. A tale scopo
è stato definito l’XHTML
• Per definire cos'è XHTML:
HTML + XML = XHTML
XHTML è quasi identico a HTML, eccetto il fatto che esso usa una sintassi
XML per descrivere in modo rigoroso le parti di un documento.
Web 2.0
Emerging
Tech
Apps You
Know…
Some
Apps You
Don’t
know
Major
Retailers
•
•
•
•
Web Services / API’s
“Folksonomies” / Content tagging
“AJAX”
RSS
•
•
•
•
•
Flickr
Google Maps
Blogging & Content Syndication
Craigslist
Linkedin, Tribes, Ryze, Friendster
•
•
•
Del.icio.us
Upcoming.org
43Things.com
•
•
•
•
Amazon API’s
Google Adsense API
Yahoo API
Ebay API
"[This is] not my mom's Internet…It's changing,
and it's changing because we're looking at the
share-shifting—the time people are looking at TV,
reading a magazine, listening to the radio—they're
not replacing each other; they're coming together."
- AOL Exec / May 2005
Web 2.0: Evolution Towards a Read/Write
Platform
Web 1.0
Web 2.0
(1993-2003)
(2003- beyond)
Pretty much HTML pages viewed
through a browser
Web pages, plus a lot of other “content”
shared over the web, with more
interactivity; more like an application than
a “page”
“Read”
Mode
“Write” & Contribute
“Page”
Primary Unit of content
“Post / record”
“static”
State
“dynamic”
Web browser
Viewed through…
Browsers, RSS Readers,
anything
“Client Server”
Architecture
“Web Services”
Web Coders
Content Created by…
Everyone
“geeks”
Domain of…
“mass amatuerization”
A Web service is defined by the W3C as "a software system designed to support
interoperable machine-to-machine interaction over a network”. Web services
are frequently just Web APIs that can be accessed over a network, such as the
Internet, and executed on a remote system hosting the requested services.
The W3C Web service definition encompasses many different systems, but in common
usage the term refers to clients and servers that communicate over the HTTP protocol
used on the Web:
• "Big Web Services" use XML messages that follow the SOAP standard: a machinereadable description of the operations offered by the service is written in the Web
Services Description Language (WSDL); operations are activated through XML
messages that are included in an envelope
• RESTful Web services have been regaining popularity, particularly with Internet
companies. These also meet the W3C definition, and are often better integrated
with HTTP than SOAP-based services. They do not require XML messages or WSDL
service-API definitions.
RSS is a family of Web feed formats used to publish frequently updated
works—such as blog entries, news headlines, audio, and video—in a
standardized format.
•
An RSS document (which is called a "feed", "web feed”, or
"channel") includes full or summarized text, plus metadata such
as publishing dates and authorship. A standardized XML file
format allows the information to be published once and viewed by
many different programs.
•
Web feeds benefit publishers by letting them syndicate content
automatically. They benefit readers who want to subscribe to
timely updates from favored websites or to aggregate feeds from
many sites into one place. RSS feeds can be read using software
called an "RSS reader", "feed reader", or "aggregator", which can
be web-based, desktop-based, mobile device or any computerized
Internet-connected device.
The user subscribes to a feed by entering the feed's URI into the
reader or by clicking an RSS icon in a browser that initiates the
subscription process. The RSS reader checks the user's
subscribed feeds regularly for new work, downloads any updates
that it finds, and provides a user interface to monitor and read
the feeds.
•
•
Ajax (Asynchronous JavaScript), is a group of interrelated web
development techniques used to create interactive web applications or
rich Internet applications.
•
With Ajax, web applications can retrieve data from the server asynchronously in
the background without interfering with the display and behavior of the existing
page. In other words the page is not reloaded. Typically functions that are
requested are written in java script language.
•
The use of Ajax has led to an increase in interactive animation on web pages.
Data is retrieved using the XML HttpRequest object or through the use of
Remote Scripting in browsers that do not support it. Ajax is a multi-platform
technique that can be used on many operating systems and web browsers, with
many open source implementations.
Ajax: pagine web rispondono in modo più rapido grazie allo scambio di piccoli pacchetti con il server senza
ricaricare l’intera pagina ad ogni modifica utente. I dati extra sono richiesti al server in background senza
interferire con la pagina esistente.
R S S : è una famiglia di feed formats usati per pubblicare contenuto che viene frequentemente aggiornato (tipo
blog entries, podcast…) Un documento RSS contiene un sommario degli aggiornamenti o l’intero testo e viene
inviato ai subscribers automaticamente..
Folk son om y: anche detto collaborative tagging; il metodo per creare collaborativamente
etichette per annotare il contenuto alternativamente alle tecniche tradizionali di indicizzazione; i
metadati sono creati dagli autori e dagli utenti, non da esperti.
Del.icio.us is an Example of a Site that Uses a
“Folksonomy” to Organize Bookmarks
A “folksonomy” is a spontaneous, collaborative work to categorize
links by a community of users. Users take control of organize the
content together.
Tags: Descriptive
words applied by users
to links. Tags are
searchable
My Tags: Words I’ve
used to describe links
in a way that makes
sense to me
Flickr is a social network for sharing photos.
Flickr combines a social network with user generated content.
Users can work together to collaborate on photo projects and use
each others’ tags to find new photos. Flickr also has an API for
web services to integrate photo collections with blogs and other
apps.
My contacts “tags”
are available to me
Flickr shows me
photos from my
network
Wikipedia is a Collaborative Dictionary Being Edited in
Realtime by Anyone
Blogging is the Most Recognized Example of Web 2.0
Web 3.0
•
Web 3.0: “the sensor-web, in which the architecture of
participation will be an automatic byproduct of the devices we
carry around with us.”
•
Not providing semantics in the links is one of the main
navigational problems of the World Wide Web: It is not until one
opens the destination page of a link that one finds out that its
content is not of interest.
•
Semantic Concept Extraction and Ontology Building is Web 3.0
A few comments on web 3.0