Prof. Cesare Pautasso http://www.pautasso.info [email protected] Informatica08 – Atelier 2 1 Agenda 1. 2. 3. 4. Web 1.0 Web 2.0 Mashups Popfly.ms September 2008 Informatica08 – Atelier 2 September 2008 USI Mashups Workshop September 2008 3 USI Mashups Workshop • You will learn how the Web works • You will discover many new, useful and exciting Web 2.0 services • You will program your own Web application by mashing up existing Web services and data sources Informatica08 – Atelier 2 2 USI Mashups Workshop USI Mashups Workshop Progettazione di Applicazioni per Internet Atelier Objectives World Wide Web 1.0 September 2008 Informatica08 – Atelier 2 4 • The Web contains approx. 27.61 billion pages The Internet Archive contains almost 2 Petabytes of data and is currently growing at a rate of 20 Terabytes per month. URL Web Page URL URL Hyperlink HTML URL Web Architecture HTTP Client Informatica08 – Atelier 2 September 2008 USI Mashups Workshop 5 Uniform Resource Identifier • URI Examples: Server http://tools.ietf.org/html/rfc3986 URI Scheme Authority Path https://www.google.ch/search?q=rest&start=10#1 URL Query Web Server Web Browser 6 USI Mashups Workshop Informatica08 – Atelier 2 September 2008 Fragment Web Page September 2008 USI Mashups Workshop How big is the Web? http://www.worldwidewebsize.com/ • On the Web anyone can access, publish and share pages with multimedia information USI Mashups Workshop World Wide Web Informatica08 – Atelier 2 7 September 2008 Informatica08 – Atelier 2 8 <HTML> <HEAD> <TITLE>My Homepage</TITLE> </HEAD> <BODY> <H1>Welcome to My Homepage</H1> Visit <A HREF=“http://www.unisi.ch”> My University</A> </BODY> </HTML> 9 World Wide Web 2.0 September 2008 Informatica08 – Atelier 2 Beginner’s tutorials: http://www.w3schools.com/HTML/ http://www.echoecho.com/it/htmlbasics.htm September 2008 11 Informatica08 – Atelier 2 10 USI Mashups Workshop Informatica08 – Atelier 2 Learning HTML By Example: whenever you find an interesting page, Look at the source! USI Mashups Workshop September 2008 USI Mashups Workshop USI Mashups Workshop Writing Web Pages What is Web 2.0? • Web 2.0 is the business revolution in the computer industry caused by the move to the internet as platform Web Service API Web The Cloud Browser September 2008 Informatica08 – Atelier 2 WebData Data Web Feeds Feeds 12 • Web 2.0 is about the convergence of different industry trends without necessarily implying a new revision of the underlying Web technologies Web 2.0 • More than online shopping www.amazon.com • Mapping of the whole planet www.maps.google.com • Share your best photos www.flickr.com • The future of television User Participation (Read+Write) www.youtube.com • Blogs, Wikis, and Social Networks www.blogger.com www.wikipedia.com www.delicious.com “New” Technology Informatica08 – Atelier 2 13 What is a blog? • blog – n. A Web log. – vi. To run a Web log. – n. a set of log entries, usually structured in reverse chronological order, published in a web-based personal journal Informatica08 – Atelier 2 Informatica08 – Atelier 2 14 What is RSS? RDF Site Summary… … or Rich Site Summary… … or Really Simple Syndication • An RSS Feed publishes a list of updates of a frequently changing Website (e.g., news headlines, blog entries, school events) • Users can subscribe to RSS feeds identified by URI and aggregate multiple feeds of interest using RSS readers. • RSS Feeds contain links to the original Web site so that more information for interesting items can be found • Web log September 2008 September 2008 USI Mashups Workshop September 2008 USI Mashups Workshop New Web Applications New Web Applications USI Mashups Workshop USI Mashups Workshop What is Web 2.0? 15 September 2008 Informatica08 – Atelier 2 16 <?xml version="1.0"?> <rss version="2.0"> <channel> <title>Cesare Pautasso</title> <link>http://www.pautasso.info</link> <description>My Lectures</description> <item> <title>Software Atelier III</title> <link>http://www.inf.unisi.ch/education/…</link> <description>Web Development Lab</description> </item> <item> <title>RESTful Web Services</title> <link>http://www.iks.ethz.ch/education/…</link> <description>A simpler way to build Web services</description> </item> </channel> </rss> 17 What is a Mashup? • • • Web Application composing existing Web services and Web data sources Ease of software reuse inspires innovation through original mix and assembly Revolution in Web development – anyone can do it! September 2008 September 2008 • • “Mashup” originates from musical domain Informatica08 – Atelier 2 19 18 What is a Mashup? • • Informatica08 – Atelier 2 USI Mashups Workshop Informatica08 – Atelier 2 Mashups USI Mashups Workshop September 2008 USI Mashups Workshop USI Mashups Workshop What’s inside an RSS feed? Aggregate content from more than one source – Public Web Service APIs – Extract data from existing Web pages – Additional local data owned by Mashup provider – User-provided information (shared wiki or “private”) Lightweight programming effort – Visual tools require little programming skills – HTML and JavaScript enough to get started Ad-hoc composition – Not concerned with long term stability and robustness September 2008 Informatica08 – Atelier 2 20 AJAX SOAP HTTP RSS Client September 2008 L XM P/ N T HT /JSO P T HT Mashup HTTP/RSS/ATOM Local Database Informatica08 – Atelier 2 Databases Web Data Feeds 21 Mashup Examples • • • • • • • weatherbonk.com doggdot.us flashearth.com wikimapia.org netvibes.com immo.search.ch swisstrains.ch USI Mashups Workshop Web Web Server Service APIs • Map Example: immo.search.ch – Not only Google Maps • Calendar/Timeline – Collection of Events Example: diggdot.us • Data Stream – Aggregated over multiple source feeds • Wiki – Shared Document Space • Portal Example: netvibes.com – Juxtaposed Web Widgets September 2008 USI Mashups Workshop Web Browser Mashup User Methaphors Informatica08 – Atelier 2 22 USI Mashups Workshop USI Mashups Workshop Mashup Architecture More Information • Cesare Pautasso, USI Faculty of Informatics – Atelier 3: Web Development Lab (2nd Year Bachelor Informatics) • http://delicious.com/cesare.pautasso/mashup • Eric Griffin, Foundations of Popfly Rapid Mashup Development, apress, 2008 • Raymond Yee, Pro Web 2.0 Mashups: Remixing Data and Web Services, apress, 2008 • http://www.programmableweb.com September 2008 Informatica08 – Atelier 2 23 September 2008 Informatica08 – Atelier 2 24 Agenda 1. Introduzione all’uso di Popfly 2. Mashup di prova 3. Pubblica il mashup sulla tua Homepage 4. Progetta il tuo mashup 5. … Popfly Popfly è una comunità online che permette ai suoi membri di creare, condividere, e valutare i propri mashups. Con Popfly anche chi non ha conoscienze di programmazione può facilmente creare il proprio mashup e condividerlo Sign In www.popfly.com “Sign In”, se non avete un account basta crearne uno cliccando su “Sign up” Popfly non lo si installa nel proprio computer, è sufficiente connettersi per usarlo tramite un browser al sito: www.popfly.com Settembre 2008 2 Informatica08 – Atelier 2 Settembre 2008 Informatica08 – Atelier 2 Settembre 2008 ID: [email protected] Password: pwd Informatica08 – Atelier 2 3 Settembre 2008 Informatica08 – Atelier 2 4 Maps: Images: Tools: Blocks window: I blocks rappresentano delle funzionalità (web services, tecnologie, ...) I blocks sono suddivisi per categorie Settembre 2008 5 Informatica08 – Atelier 2 Libreria Display: Tre icone: cancellare il block cercare blocks compatibili configurare il block Drag & Drop: I blocks possono essere semplicemente selezionati e trascinati nell'area di lavoro Selezionare “Create” >> “Mashup” Settembre 2008 Mashup Creator Block: I due cerchi blu permettono di connettere due blocks e rappresentano gli input e gli output della funzione Informatica08 – Atelier 2 6 Creare un mashup Configurare il block Operations: Operazione permesse getGeotaggedPhotos -> permette di aggiungere le foto su una mappa getPhotos -> ritorna solo le foto richieste ... News & RSS: Inputs: Value = input di default Source = da dove gli input arrivano Settembre 2008 Informatica08 – Atelier 2 7 Settembre 2008 Informatica08 – Atelier 2 8 Ogni block può avere degli input e degli output Gli input o parte di loro possono essere dei valori di default Gli output possono essere visualizzati oppure passati ad un'altro block come input La freccia che collega due blocks trasmette i dati di ouput dell'uno negli input dell'altro Connettere i blocks Input da definire Il segnale indica che c'è qualcosa da configurare nel block, ad esempio specificare l'input source. PhotoFlip.input = flickr.output Run Clicca su “Run” per testare il tuo mashup 10 Informatica08 – Atelier 2 Settembre 2008 9 Informatica08 – Atelier 2 Settembre 2008 Share My Stuff >> Projects Per poter essere usato e visto dall'esterno il progetto deve essere condiviso (Share) ... su “Edit” per cambiare il mashup Il progetto può sempre essere modificato con “Edit”, cancellato con “Delete”, e nascosto con “Unshare” ... su “Save” per salvare il mashup ... su “Html” per aggiungere del codice HTML Settembre 2008 Informatica08 – Atelier 2 11 Settembre 2008 Informatica08 – Atelier 2 12 Due possiblità per integrare il mashup in una pagina web Usando il “Web Page Creator” di Popfly Esercizi Ora provate voi a fare un mashup Visualizzare le immagini su una mappa “Create” >> “Web page” Permettere di visualizzare le immagini partendo da un input fornito dall'utente Copiando l'HTML fornito da Popfly all'interno della propria pagina Settembre 2008 Integrare il mashup in una pagina web Combinare e visualizzare le immagini provenienti da “Flickr” e “Yahoo Images” Elencare le notizie da un feed RSS Informatica08 – Atelier 2 13 Settembre 2008 Informatica08 – Atelier 2 14