Colorado Software Summit: October 21 – 26, 2007 © Copyright 2007, , Inc. Mashing Up with Google Mashup Editor and Yahoo! Pipes Gregor Hohpe www.eaipatterns.com

Gregor Hohpe: Mashing Up with Google Mashup Editor and Yahoo! Pipes Slide 1 Colorado Software Summit: October 21 – 26, 2007 © Copyright 2007, Google, Inc. Who's Gregor?

 Distributed systems, enterprise integration, service-oriented architectures, mashups  Write code every day. Share knowledge through patterns.  www.eaipatterns.com

Enterprise Integration Enterprise Best SOA Integration Patterns Solution Software Experten- Patterns Microsoft Press Patterns Writing I wissen Addison-Wesley Microsoft Press (Joel Spolsky) dpunkt Verlag APress

Gregor Hohpe: Mashing Up with Google Mashup Editor and Yahoo! Pipes Slide 2 Colorado Software Summit: October 21 – 26, 2007 © Copyright 2007, Google, Inc. A Brief History of Time  Web 1.0  Static HTML pages, Shopping Sites  User oriented  Web 1.5  Web Services  Machine oriented  Web 2.0  Web as platform, lightweight programming  Data Feeds  User contributed content, collective intelligence  Mashups

Gregor Hohpe: Mashing Up with Google Mashup Editor and Yahoo! Pipes Slide 3 Colorado Software Summit: October 21 – 26, 2007 © Copyright 2007, Google, Inc. Mashups

A web application that combines data from more than one source into an integrated experience.  RIA = Rich Internet Applications  Combine multiple data feeds  Often read-only  User developed  Access services over Internet  Ad-hoc, easy to change  Mashups on mashups

Gregor Hohpe: Mashing Up with Google Mashup Editor and Yahoo! Pipes Slide 4 Colorado Software Summit: October 21 – 26, 2007 © Copyright 2007, Google, Inc. Mashup Anatomy

Transform / Data Sources / Front-End Aggregate Adapters

 Google Mashup Editor • Yahoo! Pipes  Dapper  QED Wiki • Snaplogic  Openkapow  JavaScript Libraries • Microsoft Popfly  Snaplogic  Microsoft Popfly •IBM Damia  StrikeIron

(not meant to be complete nor a recommendation)

Gregor Hohpe: Mashing Up with Google Mashup Editor and Yahoo! Pipes Slide 5 Colorado Software Summit: October 21 – 26, 2007 © Copyright 2007, Google, Inc. Example: My Travel Map

Feed

Google Calendar with Conference Events Yahoo! Pipes

Geo Enriched Feed

Google Mashup Editor Interactive Application

Gregor Hohpe: Mashing Up with Google Mashup Editor and Yahoo! Pipes Slide 6 Colorado Software Summit: October 21 – 26, 2007 © Copyright 2007, Google, Inc.

Starting Point:

Gregor Hohpe: Mashing Up with Google Mashup Editor and Yahoo! Pipes Slide 7 Colorado Software Summit: October 21 – 26, 2007 © Copyright 2007, Google, Inc. Calendar Feed

Gregor Hohpe: Mashing Up with Google Mashup Editor and Yahoo! Pipes Slide 8 Colorado Software Summit: October 21 – 26, 2007 © Copyright 2007, Google, Inc. Yahoo! Pipe

Gregor Hohpe: Mashing Up with Google Mashup Editor and Yahoo! Pipes Slide 9 Colorado Software Summit: October 21 – 26, 2007 © Copyright 2007, Google, Inc. Yahoo! Pipes  Data flow pipeline editor  Input: any XML, Output: RSS, JSON, KML  Visual, browser-based editor, simple debugging by inspection  Pipes hosted at Yahoo!, accessible via URL  Users can share and clone pipes

Gregor Hohpe: Mashing Up with Google Mashup Editor and Yahoo! Pipes Slide 10 Colorado Software Summit: October 21 – 26, 2007 © Copyright 2007, Google, Inc. Google Mashup Editor  AJAX development framework  Rich rendering off data feeds using templates

 Browser-based IDE  One click deployment

 Event model for rich user interactivity  User entered data (by application / by user)  Built-in support for

Gregor Hohpe: Mashing Up with Google Mashup Editor and Yahoo! Pipes Slide 11 Colorado Software Summit: October 21 – 26, 2007 © Copyright 2007, Google, Inc. Mashup Editor Application

Gregor's Conference Travel

Gregor Hohpe: Mashing Up with Google Mashup Editor and Yahoo! Pipes Slide 12 Colorado Software Summit: October 21 – 26, 2007 © Copyright 2007, Google, Inc.

Google Mashup Editor Event Model

onClick onClick

onClick …

Gregor Hohpe: Mashing Up with Google Mashup Editor and Yahoo! Pipes Slide 13 Colorado Software Summit: October 21 – 26, 2007 © Copyright 2007, Google, Inc. Programming Models  Data pipeline  Declarative within HTML DOM tree  Query pipeline (IBM Damia)  Visual programming back in vogue? Intuitive Scalability concerns

Gregor Hohpe: Mashing Up with Google Mashup Editor and Yahoo! Pipes Slide 14 Colorado Software Summit: October 21 – 26, 2007 © Copyright 2007, Google, Inc. Snags (Small Picture)  Spec vs. common practice, e.g. RSS GUIDs  Atom vs. RSS feed formats  Absence of schema does not mean no data mapping issues  XPATH (in various guises)  Debugging (especially in declarative models)

Gregor Hohpe: Mashing Up with Google Mashup Editor and Yahoo! Pipes Slide 15 Colorado Software Summit: October 21 – 26, 2007 © Copyright 2007, Google, Inc. Snags (Big Picture)  License agreements  Inside the enterprise  Security  Service-level agreements  Contract changes  Scalability

Gregor Hohpe: Mashing Up with Google Mashup Editor and Yahoo! Pipes Slide 16 Colorado Software Summit: October 21 – 26, 2007 © Copyright 2007, Google, Inc. Useful Tools

www.feedvalidator.org

Gregor Hohpe: Mashing Up with Google Mashup Editor and Yahoo! Pipes Slide 17 Colorado Software Summit: October 21 – 26, 2007 © Copyright 2007, Google, Inc. Mashups vs. SOA vs. Web Services vs. EAI

Mashups EAI / SOA

 User-driven  IT driven  Bottom-up  Top-down  Quick time to value  Longer time  Laissez faire  Robust, guarantees  Design by sample data  Design by contract  Reuse by copy-paste  Service re-use  Uses services  Uses services

It's all (still) about integration!

Gregor Hohpe: Mashing Up with Google Mashup Editor and Yahoo! Pipes Slide 18 Colorado Software Summit: October 21 – 26, 2007 © Copyright 2007, Google, Inc. Resources  Blog / Tutorial  www.eaipatterns.com/ramblings.html  code.google.com/support/bin/topic.py?topic=12044  Products  code.google.com/gme  pipes.yahoo.com  Market Watch / Directories  programmableweb.com  Events  Mashup Camp

Gregor Hohpe: Mashing Up with Google Mashup Editor and Yahoo! Pipes Slide 19