01_introduzione_al_world_wide_web.pdf

Full Transcript

Fondamenti del Web Ingegneria del Software e Fondamenti Web Corso di Laurea in Ingegneria...

Fondamenti del Web Ingegneria del Software e Fondamenti Web Corso di Laurea in Ingegneria Informatica e dell’Automazione Anno Accademico 2023/2024 Prof. Antonio Ferrara Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) 1 Introduzione al World Wide Web Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Cos’è il Web Proposto nel 1989 da Tim Berners-Lee presso il CERN di Ginevra, è il principale servizio Internet per la condivisione e l’accesso in modo uniforme ed universale a conoscenza, risorse e contenuti interconnessi fra loro Servizi esistenti come FTP fornivano funzionalità per il trasferimento di file tramite Internet, ma l’esperienza utente terminava una volta scaricato il contenuto Altre esperienze come Gopher, che permetteva di “catalogare” i file in liste logiche diverse dalle cartelle del file-system, comunque fornivano esperienza limitata Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Cos’è il Web Berners-Lee ha unito la potenza dei già esistenti protocolli e servizi Internet al concetto di ipertesto (pensato precedentemente da Ted Nelson) L’ipertesto rappresenta testo non sequenziale che si ramifica e dà possibilità di scelta al lettore Aggiunge una nuova dimensione al testo Permette all’utente di stabilire quale sia il documento “successivo” Genera una rete di documenti Il worldwide web proposto era un'enorme biblioteca di documenti/risorse accessibili mediante URL (universal resource locator) unici e con riferimenti incrociati mediante collegamenti ipertestuali Le risorse vengono rese disponibili in rete mediante web server e sono accessibili mediante web browser Primi servizi online Evoluzione dei front-end (mail, search engine) (sync con fonti di dati), Condivisione di risorse e siti personali login, pagamenti… Contenuti personalizzati, E-commerce fra laboratori e accademie utenti prosumer, etc. Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Perché il Web Many of the discussions of the future at CERN […] end with the question - “Yes, but how will we ever keep track of such a large project?” A problem […] is the high turnover of people […]. The technical details of past projects are sometimes lost forever. Where is this module used? Who wrote this code? Where does he work? What documents exist about that concept? Which laboratories are included in that project? Which systems depend on this device? What documents refer to this one? […] the hope would be to allow a pool of information to develop which could grow and evolve with the organisation and the projects it describes. For this to be possible, the method of storage must not place its own restraints on the information. This is why a "web" of notes with links (like references) between them is far more useful than a fixed hierarchical system. Tratto da Information Management: a Proposal Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Cronistoria del Web L’idea del World Wide Web Nel 1989 Tim Berners-Lee, presso il CERN, propose un sistema di gestione dell'informazione basato su ipertesti Robert Caillau aiutò Berners-Lee a riformattare e ridistribuire la proposta con il nome di World Wide Web Nascita del World Wide Web Alla fine del 1990, Berners-Lee aveva implementato un server e un browser a linea di comando e aveva definito le versioni iniziali dei protocolli di questo sistema A metà del 1991, il software era stato reso disponibile all’interno del CERN La nascita del Web è indicata nel 6 agosto 1991, giorno in cui Berners-Lee pubblicò il primo sito web Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Cronistoria del Web Diffusione del World Wide Web All’inizio del 1993, c’erano circa 50 web server in esecuzione, che crebbero a 200 nell’autunno dello stesso anno e a 10000 alla fine del 1994 Nello stesso anno, il 30 aprile, il CERN aveva pubblicato il codice sorgente del software in pubblico dominio Ciò permise lo sviluppo di nuovi web server e browser, inclusi browser con interfaccia che supportavano controlli tipografici e visualizzazione di immagini Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Dalle pagine Web ai siti Web Inizialmente, solo alcune istituzioni avevano risorse per poter eseguire un web server Web Tali sistemi fornivano generalmente un insieme di pagine statiche (ovvero servite esattamente come statico (1.0) sono memorizzate) connesse fra loro in una ramificazione gerarchica che partiva da una home page Sito Web Il concetto di sito web estende l’idea di un semplice insieme di pagine web mediante: aspetti relativi al contenuto, per dare consistenza tematica e identità al contenuto di un sito aspetti estetici, per dare una percezione uniforme durante la navigazione aspetti architetturali, affinché il contenuto sia organizzato in maniera da essere facilmente consultato L’interazione era unilaterale: l’utente era puro visualizzatore di contenuti presenti sul web server Si tratta di un metodo semplice, veloce e leggero, ancora in uso oggi per siti web caratterizzati da scarsa mutevolezza dei contenuti, che permette di consegnare all’utente risorse e pagine web così come memorizzate su un server Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Dai siti Web alle Web App Dagli anni novanta in poi, nel web hanno iniziato a proliferare applicazioni web che hanno permesso la creazione, consultazione e fruizione di contenuti dinamici (Web 1.5) Web Script per generazione di contenuti dinamici dinamico (1.5) Interazione con database relazionali Uso di sistemi di gestione dei contenuti (CMS) Web Application Non più semplici siti web, ma applicazioni client-server Forniscono contenuti interattivi e personalizzati (es. portali di informazione, siti di vendita, etc.) Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Dai siti Web alle Web App Si pensi al caso di un e-commerce L’utente può: Sfogliare cataloghi online Cercare articoli Aggiungere articoli a un carrello Completare un ordine mediante interfacce sicure Per far ciò, l’applicazione web deve: Verificare i prodotti a magazzino, per esempio per mezzo di un database Fornire funzionalità per aggiungere articoli a un carrello Mantenere il contenuto di un carrello Registrare informazioni sull’ordine Comunicare con istituti bancari esterni Avvisare il magazzino dell’ordine affinché prepari la spedizione Inviare mail all’utente Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Evoluzione del Web Web 2.0 È la trasformazione del Web da monodirezionale (contenuti pubblicati) a bidirezionale (contenuti condivisi) L’utente diventa prosumer, ovvero allo stesso tempo producer e consumer dei contenuti del Web L’informazione fluisce non più in una sola direzione L’idea del Web 2.0 è quella di un web sociale, basato sui pilastri di interazione, condivisione e partecipazione Esempi sono blog, social network, forum, chat, piattaforme di condivisione di contenuti, condivisione di posizione Non si tratta di nuovo insieme di tecnologie, ma di un’evoluzione dell’interazione degli utenti con il Web Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Evoluzione del Web Web 2.0 Sul Web dovremmo essere in grado non solo di trovare ogni tipo di documento, ma anche di crearne, e facilmente. Non solo di seguire i link, ma di crearli, tra ogni genere di media. Non solo di interagire con gli altri, ma di creare con gli altri. L'intercreatività vuol dire fare insieme cose o risolvere insieme problemi. Se l'interattività non significa soltanto stare seduti passivamente davanti a uno schermo, allora l'intercreatività non significa solo starsene seduti di fronte a qualcosa di interattivo. Tim Berners-Lee in "L'architettura del nuovo Web", 2001 Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Evoluzione del Web Web 2.0 Sebbene non si tratti di un cambio tecnologico – specie lato server –, il Web 2.0 può garantire usabilità, interoperabilità e comunicazione in entrambe le direzioni Questo è stato agevolato – specie lato client – da nuovi standard come HTML5 e CSS3 e a tecnologie come AJAX e framework JavaScript (es. React), che hanno permesso una forte innovazione front-end e sulla user-experience Asynchronous JavaScript and XmlHttpRequest (AJAX) AJAX ha rappresentato un enorme cambio nel mondo delle applicazioni Web Migliora la user experience superando la necessità di dover richiedere intere pagine Web per aggiornarne solo parte del contenuto AJAX permette di effettuare richieste HTTP mediante JavaScript e di aggiornare dinamicamente col risultato solo una parte di una pagina Web Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Evoluzione del Web L’abbondanza di risorse nel Web può causare information overload (troppa informazione corrisponde a nessuna informazione) Le applicazioni come i motori di ricerca non possono essere in grado di interpretare il significato delle risorse, se non mediante tecniche probabilistiche (casi di sinonimia, omonimia, polisemia) Ad esempio, gli agenti non potevano rispondere ad interrogazioni relative a informazioni presenti su più pagine Web collegate (i semplici link mancano di espressività) Web Semantico L’evoluzione successiva del Web è stata quindi quella del Web semantico I computer possono comprendere il significato delle risorse web e produrre nuova informazione in maniera intelligente I sistemi possono comprendere le relazioni fra le risorse Le risorse del Web diventano machine-understandable […] estensione del Web attuale, in cui all’informazione è dato un ben determinato significato, facilitando la cooperazione tra i computer e le persone Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Evoluzione del Web Si pensi al Knowledge Graph proposto da Google nel 2012, in parte basato sulla conoscenza di Freebase Il Google Knowledge Graph connette risorse e informazioni e permette di: ottenere informazioni “correlate” accanto ai risultati di ricerca autocompletare le query di ricerca rispondere alle domande poste agli assistenti vocali Altri esempi applicativi di Web semantico sono Siri di Apple e WolframAlpha Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Evoluzione del Web Web 3.0 È un termine che rappresenta una serie di evoluzioni del Web che parte dalla nuova visione dei dati offerti dal Web semantico e include: Web of Data (uso di un linguaggio ontologico dichiarativo per produrre ontologie e descrivere e collegare i dati e le informazioni esistenti — far emergere il deep web) Intelligenza Artificiale (es. per la comprensione del linguaggio umano, per la scoperta di nuova informazione, per la predizione degli interessi degli utenti) Ubiquity (il contenuto è accessibile da molte applicazioni, ogni dispositivo è connesso al Web, i servizi possono essere usati ovunque) Web 2.5 Smartphone e tablet hanno rivoluzionato l’accesso al Web Oggi è molto più semplice raggiungere utenti mediante tecnologie mobile Parallelamente all’evoluzione verso il Web 3.0, il Web 2.5 si focalizza su mobile computing Le mobile web apps devono fornire esperienze utente veloci e leggere: Progressive Web Apps Accelerated Mobile Pages Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Evoluzione del Web Web 3.0 (alternativo) In alcuni concept il Web 3.0 è invece basato sulle idee di decentralizzazione mediante la tecnologia della blockchain L’idea è quella di superare la centralizzazione dei dati e dei contenuti nelle Big Tech come avvenuto col Web 2.0 Idee come decentralized finance e self-sovereign identity vanno nella direzione di data security, scalabilità e privacy Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Evoluzione del Web Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Fondamenta del Web: Internet e i protocolli Il Web è nato su un nucleo di protocolli Internet già esistenti da molti anni, in particolare ha posto le sue basi sulla suite di protocolli TCP/IP, nata in seguito alla realizzazione di ARPANET da parte del Dipartimento della Difesa degli USA Rete aperta Precedentemente, le reti erano proprietarie, controllate da organizzazioni private: ciò limitava l’interoperabilità fra sistemi ARPANET promosse l’interoperabilità mediante protocolli aperti e disponibili a chiunque volesse connettersi Fu formato un Internet Working Group per esaminare i problemi associati alla connessione di reti eterogenee in modo uniforme Processi formali per aggiornare o proporre nuovi protocolli (in forma di Requests for Comments) e accettarli come standard Internet Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Fondamenta del Web: Internet e i protocolli Il Web è nato su un nucleo di protocolli Internet già esistenti da molti anni, in particolare ha posto le sue basi sulla suite di protocolli TCP/IP, nata in seguito alla realizzazione di ARPANET da parte del Dipartimento della Difesa degli USA Topologia distribuita e decentralizzata Precedentemente, le reti avevano una topologia centralizzata e tutte le comunicazioni dovevano passare per un singolo punto di controllo (ovvero, un singolo punto di rottura) ARPANET distribuisce l’"intelligenza" della rete e introduce una tecnologia a commutazione di pacchetto: i messaggi, suddivisi in pacchetti diversi che possono prendere strade diverse e arrivare in tempi diversi, vengono riassemblati e compresi dal destinatario Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Fondamenta del Web: Internet e i protocolli Applicazione Contiene i servizi Internet (es. DNS, FTP, SMTP, POP/IMAP, HTTP, …) Trasporto Servizi di trasporto dei messaggi: TCP (affidabile, connection-oriented) e UDP (non affidabile, veloce) Trasmissione logica dei pacchetti mediante routing, controllo validità, composizione e Internet decomposizione header (es. Internet Protocol e Internet Control Message Protocol) Rete Facilita la comunicazione con la rete fisica sottostante (es. driver hardware LAN, WAN, WLAN) Fisico Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Il paradigma client-server Molte delle applicazioni TCP/IP, compreso il Web, tendono ad operare secondo il paradigma client-server I client sono dispositivi collegati a un server mediante una rete e al quale richiedono servizi (anche i software utilizzati per accedere ai servizi sono detti client) I server sono sistemi capaci di fornire servizi ai client che li richiedono, implementando gestione degli accessi, allocazione e rilascio delle risorse, condivisione e sicurezza dei dati o delle risorse Comunicazione client-server I server attendono le richieste dai client e le processano Le comunicazioni hanno la forma di interazioni richiesta-risposta Una volta che il server riconosce il successo della connessione, il client invia comandi linea per linea mantenendo o meno lo stato (protocollo stateful o stateless) Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Il paradigma client-server Esempio di interazione con un server SMTP 220 mail.hoboken.company.com ESMTP xxxx 3.21 #1 Fri, 23 Feb 2001 13:41:09 -0500 HELO ubizmo.com 250 mail.hoboken.company.com Hello neurozen.com [xxx.xxx.xxx.xxx] MAIL FROM: 250 is syntactically correct RCPT TO: 250 is syntactically correct RCPT TO: SMTP POP3 IMAP 250 is syntactically correct DATA FTP SSH 354 Enter message, ending with "." on a line by itself From: Rich Rosen To: [email protected] Cc: [email protected] Subject: Demonstrating SMTP Leon, Please ignore this note. I am demonstrating the art of connecting to an SMTP server for the book. :-) Rich. 250 OK id=xxxxxxxx QUIT Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) Il World Wide Web Verso la fine del 1990, Berners-Lee aveva implementato un server e un browser a linea di comando che comunicavano e si scambiavano dati mediante tre semplici componenti che hanno rappresentato e rappresentano ancora oggi la tecnologia abilitante del Web Componenti fondamentali del World Wide Web Linguaggio di markup Schema di notazione uniforme Protocollo per la trasmissione di risorse HTML URI HTTP Necessario per la formattazione di Permette l’identificazione di Fondamentale per lo scambio e il documenti che permettono il risorse accessibili sulla rete trasporto di messaggi sulla rete cross-referencing mediante hyperlink Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web) World Wide Web Consortium Fondato nell’ottobre del 1994 presso il MIT, il W3C è il consorzio che favorisce lo sviluppo di tutte le potenzialità del World Wide Web sviluppando standard relativi ai linguaggi e ai protocolli di comunicazione Il W3C è amministrato dal MIT negli Stati Uniti, dal consorzio europeo ERCIM in Francia, dalla Keio University in Giappone e dalla Beihang University in Cina Il W3C ha uffici in 18 regioni del mondo ed il suo team è composto attualmente da 59 persone Gran parte del lavoro di standardizzazione, comunque, è effettuato nei diversi working group da esperti esterni al W3C Il consorzio, nel suo lavoro, segue sempre alcuni principi Web for All Rendere il Web accessibile a tutti, con qualunque hardware, software, rete, lingua, cultura, nazione, abilità mentale o fisica (iniziative di accessibilità e internazionalizzazione) Web on Everything Rendere il Web accessibile da qualunque dispositivo: smartphone, assistenti personali digitali, sistemi televisivi interattivi, sistemi di risposta vocale, chioschi e dispositivi domestici Rendere il Web un posto di cui gli utenti possano fidarsi, specie nelle interazioni fra di loro e nelle attività Web of Trust che essi svolgono Antonio Ferrara | Fondamenti del Web (Ingegneria del Software e Fondamenti Web)

Use Quizgecko on...
Browser
Browser