Le risorse

Transcript

Le risorse
Lezione 3 – Progettazione di siti
Ingegneria dei Processi Aziendali
Modulo 1 – Servizi Web
Unità didattica 1 – Protocolli Web
Ernesto Damiani
Università di Milano
Elementi base della progettazione di
servizi Web
1. Risorse: elementi basilari del Web
2. URL: identificano ogni risorsa
3. Tipi di contenuto: adattabilità e sopravvivenza
sul Web
4. Scambio di informazioni: scambio di documenti
non di argomenti
5. Link: connessioni, non incapsulamenti
6. Payload e protocollo: le corrette informazioni
nel posto giusto
7. Punti di vista: informazioni da ogni prospettiva e
in ogni direzione
Le risorse
• Le risorse sono gli elementi costitutivi del Web
• Ogni attività sul Web è una CRUD sulle risorse
(Creating, Retrieving, Updating e Deleting)
• Una risorsa è un’entità concettuale
– Tutto ciò non riguarda, però, i servizi Web, bensì le
informazioni, perché un servizio web è solo un mezzo per
ottenere una risorsa
Informazioni e risorse
• Come le informazioni, anche le risorse sono
elementi concettuali astratti “rappresentati”
concretamente in forme diverse
• Mentre le informazioni sono rappresentate sotto
forma di testo, audio e immagini, le risorse sono
rappresentate nei formati HTML, XML e MP3
Identificazione delle risorse
• L’aeroporto Malpensa (MXP) ha questi aeroplani
(numero di coda): FX12 and BA99. FX12 percorre
questa rotta: MXP-LAX. BA99 percorre questa rotta:
MXP-ALT
• Le risorse sono:
– Aeroporto Malpensa, MXP
– Aeroplano con numero di coda FX12
– Aeroplano con numero di coda BA99
– Rotta MXP-LAX
– Rotta MXP-ALT
Risorse dell’aeroporto Malpensa
URL e identificazione delle risorse
• Il Web è tutto per le risorse. Se non si conosce
l’indirizzo di una risorsa, la risorsa non serve a nulla!
• Legge delle risorse: ogni risorsa deve essere
identificata con un URL
– Questa legge è fondamentale per il Web che Tim BernersLee ( direttore del W3C) chiama Assioma 0 del Web Design
• Vantaggi:
– Le risorse raggiungibili singolarmente sono individuabili
tramite motori di ricerca (ad esempio Google)
– Le singole risorse possono avere metadati individualizzati
per la catalogazione
Assioma 0 del Web Design
Assioma 0: tutte le risorse sul Web devono
essere univocamente identificate con un URL
•
Identificazione delle risorse dell’aeroporto
tramite URL
Tipi di contenuto (1)
• In natura, la varietà genera adattamento il che
significa sopravvivenza
• Molti tipi diversi di client usano il Web e richiedono
informazioni “rappresentate” in modo diversi
• Le rappresentazioni vengono espresse attraverso il
tipo di contenuto (MIME)
– HTML, GIF, JPEG, XML, MP3, MPEG, SVG, Testo, CSS, SOAP
Tipi di contenuto (2)
• Un servizio Web vive in un ecosistema servendo
molti tipi diversi di client, quindi deve funzionare con
informazioni rappresentate in un modo che va bene
per tutti
• Più tipi di contenuto offre un servizio Web e più
client possono utilizzare il servizio
– (Un servizio Web che offre solo un tipo di contenuto è
destinato all’estinzione)
Risorse e rappresentazioni
• Una risorsa è un’entità concettuale, ma i contenuti
con cui si lavora sono reali
• Se si assegna un URL a una risorsa questa dà come
ritorno una (reale) rappresentazione
• Il potere del Web viene dalla navigazione
attraverso risorse concettuali ma lavorando con
rappresentazioni reali
Esempio di risorsa e rappresentazione
(1)
Esempio di risorsa e rappresentazione
(2)
• Il client invoca una risorsa Web immettendo il suo
identificatore (URL)
• Viene restituita una rappresentazione della risorsa
(in questo caso come un documento HTML)
• Il tipo di contenuto (MIME) che la risorsa dovrebbe
restituire si basa dinamicamente sulle capacità o sui
desideri del destinatario e la natura della risorsa
Tipi di contenuto (MIME)
• Ci sono oltre 350 tipi di contenuto
Scambio di informazioni
• Il Web è un nuovo ambiente di programmazione
• La sfida del Web è pensare in termini di scambio di
informazioni con le risorse
• Sul Web si lavora con risorse sotto forma di
documenti con specifici tipi di contenuto
• I principi che sono alla base della scalabilità del
Web impongono che i documenti evitino informazioni
specifiche per l’elaborazione desiderata, il servizio di
destinazione o altri dettagli di implementazione
Attraversamento del ponte (1)
Attraversamento del ponte (2)
• La programmazione strutturata ci ha insegnato di
scomporre un problema in unità di codice logiche
(subroutine)
• OOP ha introdotto la manipolazione di oggetti al
posto delle unità di codice
Accoppiamento e accoppiamento lasco
(1)
Accoppiamento e accoppiamento lasco
(2)
• Contiene informazioni specifiche del processo
– ad esempio, il nome della subroutine
• Lega il client al servizio Web
• Contaminato dall’esperienza precedente con
programmazione OO e strutturata
Accoppiamento e accoppiamento lasco
(3)
Accoppiamento e accoppiamento lasco
(4)
• Documenti liberi da informazioni specifiche
dell’elaborazione
– Client e server possono evolvere indipendentemente
– Il documento (dati) può essere usato da altri servizi
– Il documento (dati) può essere usato in modi imprevisti
Link
• I link consentono una rete di informazioni scalabile
in modo lasco
• I link facilitano lo scambio veloce e rapido di
informazioni
• I cambiamenti al contenuto del documento si
propagano istantaneamente a qualsiasi altro
documento che faccia riferimento a esso
• Le relazioni implicate dai link sono esse stesse
informazioni
• I link non incorporano informazioni ma collegano a
esse
Link al carburante e alla manutenzione
Il paradigma del Web è una rete di informazioni,
quindi la rappresentazione non incorpora i dati
relativi al carburante e alla manutenzione, ma
collega a essi
•
Payload e protocollo (le giuste
informazioni al posto giusto)
• Il payload è il corpo del messaggio ed è specifico
della transazione
• Il protocollo è l’header del messaggio e contiene le
informazioni generali per il trasporto
• In base al progetto, nel payload le informazioni
sono nascoste
– Nel payload si dovrebbero inserire le informazioni specifiche
dell’applicazione
• In base al progetto, nell’header le informazioni
sono tutte visibili
– In generale, nell’header si dovrebbero inserire le
informazioni applicabili al Web
Terminologia: header e payload
Vantaggi
• Il Web non ha né una prima né un’ultima pagina,
non ha paragrafi e nemmeno capitoli
– offre tantissime informazioni e consente di saltare da una
all’altra
L’utente arriva in un sito Web, esamina i link e poi
ne sceglie uno che definirà il punto di vista e il
principio organizzativo
•
• A differenza delle tassonomie che definiscono
singoli punti di vista, il Web include molte
organizzazioni di informazioni
• Progettare risorse di informazioni non vuol dire
decidere la giusta gerarchia o organizzazione, ma
assicurare che i link esistano per tutti i rapporti
significativi tra singoli elementi informativi
Punto di vista del personale a terra
dell’aeroporto
Punto di vista del pilota
I link consentono entrambi i punti di vista!
Link e modello mentale dell’utente
• Supponendo che l’utente sia un membro del
personale a terra dell’aeroporto e che il suo modello
mentale sia che un aeroplano percorra una
determinata rotta, nelle informazioni relative ad una
rotta può essere tentato di fornire dati relativi a
quella rotta, ma non deve farlo! Deve inserire un link
all’aeroplano che percorre la rotta e questo
supporterà altri modelli mentali, ad esempio, quelli
dei piloti
FINE