Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s...

53
Google Data Protocol Guy Mark Lifshitz

Transcript of Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s...

Page 1: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Google Data Protocol

Guy Mark Lifshitz

Page 2: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Motivation

• Google’s Mission:– Organize the world’s information– Make information universally accessible– Provide tools to access your information

• Avoid limitations on contexts:– Not limited to Google– Not limited to browsers

Page 3: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Foundation

• REST

• AtomPub • JSON• RSS

Page 4: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

REST “Representational state transfer”

Page 5: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

REST

• Simple• Lightweight• Scalable• Maps well to representing and exposing data

Page 6: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

REST

• 1. Client sends a request to server• 2. Server process the request • 3. Server returns a response

Page 7: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

AtomPub“Atom Publishing Protocol”

(RFC 5023)

Page 8: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

AtomPub

• Originally created for blogs• Feed based• Feeds are found at a specific URI• An Atom Reader looks for entries in a feed

Page 9: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

AtomPub

• Create

• Retrieve

• Update

• Delete

Page 10: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

AtomPub

• Create– PUT

• Retrieve – GET

• Update– GET, modify feed, PUT

• Delete– DELETE

Page 11: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Calendar Atom Feed<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom" ... >

<id>http://www.google.com/calendar/feeds/default/settings</id>

<link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml ... >

<generator uri="http://www.google.com/calendar">Google Calendar</generator>

<updated>2009-03-05T10:46:25.244Z</updated>

<title type="text">Coach's's personal settings</title>

<openSearch:startIndex>1</openSearch:startIndex>

<author>

<name>Coach</name>

<email>[email protected]</email>

</author>

<entry>

<id>http://www.google.com/calendar/feeds/default/settings/...</id>

<updated>2009-03-05T10:46:25.245Z</updated>

<link rel="self" type="application/atom+xml" href="http://www.google...” >

<gCal:settingsProperty name="alternateCalendar" value="0"/>

</entry>

</feed>

Page 12: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Calendar Atom Feed<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom" ... >

<id>http://www.google.com/calendar/feeds/default/settings</id>

<link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml ... >

<generator uri="http://www.google.com/calendar">Google Calendar</generator>

<updated>2009-03-05T10:46:25.244Z</updated>

<title type="text">Coach's's personal settings</title>

<openSearch:startIndex>1</openSearch:startIndex>

<author>

<name>Coach</name>

<email>[email protected]</email>

</author>

<entry>

<id>http://www.google.com/calendar/feeds/default/settings/...</id>

<updated>2009-03-05T10:46:25.245Z</updated>

<link rel="self" type="application/atom+xml" href="http://www.google...” >

<gCal:settingsProperty name="alternateCalendar" value="0"/>

</entry>

</feed>

Page 13: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Calendar Atom Feed<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom" ... >

<id>http://www.google.com/calendar/feeds/default/settings</id>

<link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml ... >

<generator uri="http://www.google.com/calendar">Google Calendar</generator>

<updated>2009-03-05T10:46:25.244Z</updated>

<title type="text">Coach's's personal settings</title>

<openSearch:startIndex>1</openSearch:startIndex>

<author>

<name>Coach</name>

<email>[email protected]</email>

</author>

<entry>

<id>http://www.google.com/calendar/feeds/default/settings/...</id>

<updated>2009-03-05T10:46:25.245Z</updated>

<link rel="self" type="application/atom+xml" href="http://www.google...” >

<gCal:settingsProperty name="alternateCalendar" value="0"/>

</entry>

</feed>

Page 14: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Calendar Atom Feed<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom" ... >

<id>http://www.google.com/calendar/feeds/default/settings</id>

<link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml ... >

<generator uri="http://www.google.com/calendar">Google Calendar</generator>

<updated>2009-03-05T10:46:25.244Z</updated>

<title type="text">Coach's's personal settings</title>

<openSearch:startIndex>1</openSearch:startIndex>

<author>

<name>Coach</name>

<email>[email protected]</email>

</author>

<entry>

<id>http://www.google.com/calendar/feeds/default/settings/...</id>

<updated>2009-03-05T10:46:25.245Z</updated>

<link rel="self" type="application/atom+xml" href="http://www.google...” >

<gCal:settingsProperty name="alternateCalendar" value="0"/>

</entry>

</feed>

Page 15: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Calendar Atom Feed<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom" ... >

<id>http://www.google.com/calendar/feeds/default/settings</id>

<link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml ... >

<generator uri="http://www.google.com/calendar">Google Calendar</generator>

<updated>2009-03-05T10:46:25.244Z</updated>

<title type="text">Coach's's personal settings</title>

<openSearch:startIndex>1</openSearch:startIndex>

<author>

<name>Coach</name>

<email>[email protected]</email>

</author>

<entry>

<id>http://www.google.com/calendar/feeds/default/settings/...</id>

<updated>2009-03-05T10:46:25.245Z</updated>

<link rel="self" type="application/atom+xml" href="http://www.google...” >

<gCal:settingsProperty name="alternateCalendar" value="0"/>

</entry>

</feed>

Page 16: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Calendar Atom Feed<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom" ... >

<id>http://www.google.com/calendar/feeds/default/settings</id>

<link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml ... >

<generator uri="http://www.google.com/calendar">Google Calendar</generator>

<updated>2009-03-05T10:46:25.244Z</updated>

<title type="text">Coach's's personal settings</title>

<openSearch:startIndex>1</openSearch:startIndex>

<author>

<name>Coach</name>

<email>[email protected]</email>

</author>

<entry>

<id>http://www.google.com/calendar/feeds/default/settings/...</id>

<updated>2009-03-05T10:46:25.245Z</updated>

<link rel="self" type="application/atom+xml" href="http://www.google...” >

<gCal:settingsProperty name="alternateCalendar" value="0"/>

</entry>

</feed>

Page 17: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Calendar Atom Feed<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom" ... >

<id>http://www.google.com/calendar/feeds/default/settings</id>

<link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml ... >

<generator uri="http://www.google.com/calendar">Google Calendar</generator>

<updated>2009-03-05T10:46:25.244Z</updated>

<title type="text">Coach's's personal settings</title>

<openSearch:startIndex>1</openSearch:startIndex>

<author>

<name>Coach</name>

<email>[email protected]</email>

</author>

<entry>

<id>http://www.google.com/calendar/feeds/default/settings/...</id>

<updated>2009-03-05T10:46:25.245Z</updated>

<link rel="self" type="application/atom+xml" href="http://www.google...” >

<gCal:settingsProperty name="alternateCalendar" value="0"/>

</entry>

</feed>

Page 18: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

JSON“JavaScript Object notation”

Page 19: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

JSON

• Properties– Lightweight data interchange format– Widespread use among web developers– Easy to read and write– Can parse JSON using any language– JSON structures map directly to data structures

used in most programming languages• Within the Google Data Protocol, JSON objects

simply mirror the Atom representation.

Page 20: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

JSON vs. XML• "firstName": "John",• "lastName": "Smith",• "age": 25,• "address": {• "streetAddress": "21 2nd Street",

"city": "New York",• "state": "NY",• "postalCode": "10021“• }, • "phoneNumbers": [• { "type": "home“, "number": "212 555-1234"},• { "type": "fax", "number": "646 555-4567" } • ],• "newSubscription": false,• "companyName": null

Page 21: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

JSON vs. XML<Person firstName="John" lastName="Smith">

<age>25</age><address>

<streetAddress>21 2nd Street</streetAddress> <city>New York</city><state>NY</state> <postalCode>10021</postalCode>

</address> <phoneNumber type="home">555 1234</phoneNumber><phoneNumber type="fax">646 555-4567</phoneNumber><newSubscription>false</newSubscription> <companyName />

</Person>

Page 22: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

GData

Page 23: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Additional Features

• Authentication• Queries• Concurrency • Common Elements • Batch Processing

Page 24: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Authentication

• ClientLogin– Desktop applications– Uses text input in application

myService.setUserCredentials("[email protected]", "mypassword");

• AuthSub– 3rd party websites – Directs you to Google’s website.

Page 25: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Query

• Add query to the URL

• Basic:http://www.google.com/calendar/feeds/default/private/full

• Events before February 11th 2010, ordered by datehttp://www.google.com/calendar/feeds/default/private/full

?start-max=2010-02-11&orderby=starttime

Page 26: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Query

• Use the API to build queries

CalendarQuery myQuery = new CalendarQuery(feedUrl);

myQuery.setMinimumStartTime(DateTime.parseDateTime("2006-03-16T00:00:00"));

myQuery.setMaximumStartTime(DateTime.parseDateTime("2006-03-24T23:59:59"));

...

CalendarEventFeed resultFeed = myService.query(myQuery, Feed.class);

Page 27: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Additional Features

• Authentication• Queries• Concurrency • Common Elements • Batch Processing

Page 28: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Additional Features

• Authentication• Queries• Concurrency • Common Elements – “Kines”

• Batch Processing

Page 29: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Additional Features

• Authentication• Queries• Concurrency • Common Elements • Batch Processing

Page 30: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

APIs

Page 31: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Libraries

• Java• .NET• PHP• Python• JavaScript• Obj-C

Page 32: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

API Library

Page 33: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Links

• http://code.google.com/apis/gdata/

Page 34: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.
Page 35: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.
Page 36: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Examplepublic class CalendarTest {

public static void main(String[] args) { CalendarService myService = new CalendarService("exampleCo-exampleApp-1.0");myService.setUserCredentials("[email protected]", "pa$$word");

URL feedUrl = new URL("http://www.google.com/calendar/feeds/default/allcalendars/full");

CalendarFeed resultFeed = myService.getFeed(feedUrl, CalendarFeed.class);

System.out.println("Your calendars:");System.out.println();

for (int i = 0; i < resultFeed.getEntries().size(); i++) {CalendarEntry entry = resultFeed.getEntries().get(i); System.out.println("\t" + entry.getTitle().getPlainText());

} }

}

Page 37: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Request

• GET PUT DELETEE HEAD POST– All Methods– POST not safe or idempotent

• Intermediaries can be added in between– Proxies and Gateways– Can add performance

Page 38: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Protocol

• Client Server• Stateless– Requests are independent (don’t know what other

interactions are doing)

• Layered – HTTP intermdiaries can be added without

changing behaviour

• Cacheable

Page 39: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

REST

• Architectural Style• Architecture of the web• HTTP (protocol)• Request Response. • Client requests from server, and server

responds.

Page 40: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Extends• Atom 1.0 • RSS 2.0 • Atom Publishing Protocol (APP).• Google Data protocol extends those standards in

various ways, using the extension mechanisms built into the standards.

• Feeds conform to either the Atom or RSS syndication formats.

• The publishing model conforms to the Atom Publishing Protocol.

Page 41: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

AtomPub

• “Atom Publishing Protocol” (RFC 5023)

• Web syndication is an effective and popular method for providing and aggregating content.

• It also lets you send data to Google and update data that Google maintains.

Page 42: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Benefits

• Efficiency– Caches

• Scalability– Large set of origin servers

• Performance to user– Partial rendering of html and such.

Page 43: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Calendar Feed<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:gCal="http://schemas.google.com/gCal/2005" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/&quot;Ck8FQ3Y4cCp7I2A9WxVVEkU.&quot;"> <id>http://www.google.com/calendar/feeds/default/settings</id> <updated>2009-03-05T10:46:25.244Z</updated> <title type="text">Coach's's personal settings</title> <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.google.com/calendar/feeds/default/settings"/> <link rel="self" type="application/atom+xml" href="http://www.google.com/calendar/feeds/default/settings"/> <author> <name>Coach</name> <email>[email protected]</email> </author> <generator version="1.0" uri="http://www.google.com/calendar">Google Calendar</generator> <openSearch:startIndex>1</openSearch:startIndex> <entry> <id>http://www.google.com/calendar/feeds/default/settings/alternateCalendar</id> <updated>2009-03-05T10:46:25.245Z</updated> <link rel="self" type="application/atom+xml" href="http://www.google.com/calendar/feeds/default/settings/alternateCalendar"/> <gCal:settingsProperty name="alternateCalendar" value="0"/> </entry> <entry> <id>http://www.google.com/calendar/feeds/default/settings/country</id> <updated>2009-03-05T10:46:25.245Z</updated> <link rel="self" type="application/atom+xml" href="http://www.google.com/calendar/feeds/default/settings/country"/> <gCal:settingsProperty name="country" value="EH"/> </entry></feed>

Page 44: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Calendar Feed<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:gCal="http://schemas.google.com/gCal/2005" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/&quot;Ck8FQ3Y4cCp7I2A9WxVVEkU.&quot;"> <id>http://www.google.com/calendar/feeds/default/settings</id> <updated>2009-03-05T10:46:25.244Z</updated> <title type="text">Coach's's personal settings</title> <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.google.com/calendar/feeds/default/settings"/> <link rel="self" type="application/atom+xml" href="http://www.google.com/calendar/feeds/default/settings"/> <author> <name>Coach</name> <email>[email protected]</email> </author> <generator version="1.0" uri="http://www.google.com/calendar">Google Calendar</generator> <openSearch:startIndex>1</openSearch:startIndex> <entry> <id>http://www.google.com/calendar/feeds/default/settings/alternateCalendar</id> <updated>2009-03-05T10:46:25.245Z</updated> <link rel="self" type="application/atom+xml" href="http://www.google.com/calendar/feeds/default/settings/alternateCalendar"/> <gCal:settingsProperty name="alternateCalendar" value="0"/> </entry> <entry> <id>http://www.google.com/calendar/feeds/default/settings/country</id> <updated>2009-03-05T10:46:25.245Z</updated> <link rel="self" type="application/atom+xml" href="http://www.google.com/calendar/feeds/default/settings/country"/> <gCal:settingsProperty name="country" value="EH"/> </entry></feed>

Page 45: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Calendar Feed<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:gCal="http://schemas.google.com/gCal/2005" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/&quot;Ck8FQ3Y4cCp7I2A9WxVVEkU.&quot;"> <id>http://www.google.com/calendar/feeds/default/settings</id> <updated>2009-03-05T10:46:25.244Z</updated> <title type="text">Coach's's personal settings</title> <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.google.com/calendar/feeds/default/settings"/> <link rel="self" type="application/atom+xml" href="http://www.google.com/calendar/feeds/default/settings"/> <author> <name>Coach</name> <email>[email protected]</email> </author> <generator version="1.0" uri="http://www.google.com/calendar">Google Calendar</generator> <openSearch:startIndex>1</openSearch:startIndex> <entry> <id>http://www.google.com/calendar/feeds/default/settings/alternateCalendar</id> <updated>2009-03-05T10:46:25.245Z</updated> <link rel="self" type="application/atom+xml" href="http://www.google.com/calendar/feeds/default/settings/alternateCalendar"/> <gCal:settingsProperty name="alternateCalendar" value="0"/> </entry> <entry> <id>http://www.google.com/calendar/feeds/default/settings/country</id> <updated>2009-03-05T10:46:25.245Z</updated> <link rel="self" type="application/atom+xml" href="http://www.google.com/calendar/feeds/default/settings/country"/> <gCal:settingsProperty name="country" value="EH"/> </entry></feed>

Page 46: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Calendar Feed

<entry>

<id>http://www.google.com/calendar/feeds/default/settings/alternateCalendar</id>

<updated>2009-03-05T10:46:25.245Z</updated>

<link rel="self" type="application/atom+xml" href="http://www.google.com/calendar/feeds/default/settings/alternateCalendar"/>

<gCal:settingsProperty name="alternateCalendar” value="0"/>

</entry>

Page 47: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Atom Feeds <?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom"><title>Example Feed</title><subtitle>A subtitle.</subtitle><link href="http://example.org/feed/" rel="self" /><link href="http://example.org/" /><id>urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6</id><updated>2003-1213T18:30:02Z</updated> <author>

<name>John Doe</name><email>[email protected]</email>

</author> <entry>

<title>Atom-Powered Robots Run Amok</title><link href="http://example.org/2003/12/13/atom03" /> <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> <updated>2003-12-13T18:30:02Z</updated> <summary>Some text.</summary>

</entry> </feed>

Page 48: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Atom Feeds<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom"><title>Example Feed</title><subtitle>A subtitle.</subtitle><link href="http://example.org/feed/" rel="self" /><link href="http://example.org/" /><id>urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6</id><updated>2003-1213T18:30:02Z</updated> <author>

<name>John Doe</name><email>[email protected]</email>

</author> <entry>

<title>Atom-Powered Robots Run Amok</title><link href="http://example.org/2003/12/13/atom03" /> <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> <updated>2003-12-13T18:30:02Z</updated> <summary>Some text.</summary>

</entry> </feed>

Page 49: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Atom Feeds<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom"><title>Example Feed</title><subtitle>A subtitle.</subtitle><link href="http://example.org/feed/" rel="self" /><link href="http://example.org/" /><id>urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6</id><updated>2003-1213T18:30:02Z</updated> <author>

<name>John Doe</name><email>[email protected]</email>

</author> <entry>

<title>Atom-Powered Robots Run Amok</title><link href="http://example.org/2003/12/13/atom03" /> <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> <updated>2003-12-13T18:30:02Z</updated> <summary>Some text.</summary>

</entry> </feed>

Page 50: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Atom Feeds<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom"><title>Example Feed</title><subtitle>A subtitle.</subtitle><link href="http://example.org/feed/" rel="self" /><link href="http://example.org/" /><id>urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6</id><updated>2003-1213T18:30:02Z</updated> <author>

<name>John Doe</name><email>[email protected]</email>

</author> <entry>

<title>Atom-Powered Robots Run Amok</title><link href="http://example.org/2003/12/13/atom03" /> <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> <updated>2003-12-13T18:30:02Z</updated> <summary>Some text.</summary>

</entry> </feed>

Page 51: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Atom Feeds<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom"><title>Example Feed</title><subtitle>A subtitle.</subtitle><link href="http://example.org/feed/" rel="self" /><link href="http://example.org/" /><id>urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6</id><updated>2003-1213T18:30:02Z</updated> <author>

<name>John Doe</name><email>[email protected]</email>

</author> <entry>

<title>Atom-Powered Robots Run Amok</title><link href="http://example.org/2003/12/13/atom03" /> <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> <updated>2003-12-13T18:30:02Z</updated> <summary>Some text.</summary>

</entry> </feed>

Page 52: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Atom Feeds<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom"><title>Example Feed</title><subtitle>A subtitle.</subtitle><link href="http://example.org/feed/" rel="self" /><link href="http://example.org/" /><id>urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6</id><updated>2003-1213T18:30:02Z</updated> <author>

<name>John Doe</name><email>[email protected]</email>

</author> <entry>

<title>Atom-Powered Robots Run Amok</title><link href="http://example.org/2003/12/13/atom03" /> <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> <updated>2003-12-13T18:30:02Z</updated> <summary>Some text.</summary>

</entry> </feed>

Page 53: Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.

Atom Feeds<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom"><title>Example Feed</title><subtitle>A subtitle.</subtitle><link href="http://example.org/feed/" rel="self" /><link href="http://example.org/" /><id>urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6</id><updated>2003-1213T18:30:02Z</updated> <author>

<name>John Doe</name><email>[email protected]</email>

</author> <entry>

<title>Atom-Powered Robots Run Amok</title><link href="http://example.org/2003/12/13/atom03" /> <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> <updated>2003-12-13T18:30:02Z</updated> <summary>Some text.</summary>

</entry> </feed>