Powering the Social Web (at the Dublin GTUG)

58
1 Powering the Social Web Discovery & Developer Experience

description

How the technologies behind Google Buzz are powering the wider social web and the impact of Developer Experience on the design of our discovery-based APIs.

Transcript of Powering the Social Web (at the Dublin GTUG)

Page 1: Powering the Social Web (at the Dublin GTUG)

1

Powering the Social WebDiscovery & Developer Experience

Page 2: Powering the Social Web (at the Dublin GTUG)

@adewalebuzz.google.com/adewale

@ade_oshineyetwitter.com/ade_oshineye

Page 3: Powering the Social Web (at the Dublin GTUG)

The plug

Page 4: Powering the Social Web (at the Dublin GTUG)

4

Google’s mission

Online contentBillions of web pages

Offline contentBillions of items

becoming indexed

To organize the world’s information and make it universally accessible and useful.

Page 5: Powering the Social Web (at the Dublin GTUG)

5

Outline

1 The technologies behind the Buzz API

2 Discovery

3 Developer Experience

4 The web is the platform

Page 6: Powering the Social Web (at the Dublin GTUG)

Buzz & the open technologies behind it

6

Page 7: Powering the Social Web (at the Dublin GTUG)

7

Page 8: Powering the Social Web (at the Dublin GTUG)

8

Page 9: Powering the Social Web (at the Dublin GTUG)

9

Screenshots from: http://www.go-buzz.com/

Page 10: Powering the Social Web (at the Dublin GTUG)
Page 11: Powering the Social Web (at the Dublin GTUG)
Page 12: Powering the Social Web (at the Dublin GTUG)

Passwords are bad for everyone

Page 13: Powering the Social Web (at the Dublin GTUG)
Page 14: Powering the Social Web (at the Dublin GTUG)

OAuth

1. Your application gets an unauthorized request token from the Service Provider’s authorization server.

Your Application

Service ProviderGet unauthorized

request token

Page 15: Powering the Social Web (at the Dublin GTUG)

OAuth

Your Application

Service Provider

Send user to SPwith token

2. Your application sends the user to the Service Provider, which asks the user to grant your application access to the required data.

Page 16: Powering the Social Web (at the Dublin GTUG)

OAuth

Your Application

Service ProviderGet authorized

request token

3. Your application gets an authorized request token from the authorization server.

Page 17: Powering the Social Web (at the Dublin GTUG)

OAuth

Your Application

Service ProviderExchange request

for access token

4. You exchange the authorized request token for an access token.

Page 18: Powering the Social Web (at the Dublin GTUG)

OAuth

Your Application

Service ProviderUse access token

to get data

5. You use the access token to request data from Service Provider’s service access servers.

Page 19: Powering the Social Web (at the Dublin GTUG)

https://www.google.com/buzz/api/auth/OAuthAuthorizeToken?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fbuzz&domain=www.example.org&oauth_token=

Auth url: https://www.google.com/buzz/api/auth/OAuthAuthorizeTokenscope: https://www.googleapis.com/auth/buzzdomain: www.example.orgiconUrl: http://www.example.org/icon.png

Page 20: Powering the Social Web (at the Dublin GTUG)
Page 21: Powering the Social Web (at the Dublin GTUG)
Page 22: Powering the Social Web (at the Dublin GTUG)

Polling is bad for everyone

Page 24: Powering the Social Web (at the Dublin GTUG)

PubSubHubbub

Publisher SubscriberHub

Page 25: Powering the Social Web (at the Dublin GTUG)

PubSubHubbub

1. Subscriber gets Publisher’s feed. The feed contains a link to the Hub.

Publisher Subscriber

Give me your latest content for feed X, please.

Page 26: Powering the Social Web (at the Dublin GTUG)

PubSubHubbub

1. Subscriber gets Publisher’s feed. The feed contains a link to the Hub.

Publisher Subscriber

I've delegated distribution of that content

to this Hub.

Page 27: Powering the Social Web (at the Dublin GTUG)

PubSubHubbub

2. Subscriber POSTs subscription request to the Hub. The request contains the URL where the Hub should POST new updates to the Subscriber.

Publisher SubscriberHub

I want to subscribe to feed X. Send updates to this

URL

Page 28: Powering the Social Web (at the Dublin GTUG)

PubSubHubbub

3. Hub hits the URL to verify the request was authentic; Subscriber responds with confirmation to the Hub.

Publisher SubscriberHub

Hey there! Did you really send this

request?

Page 29: Powering the Social Web (at the Dublin GTUG)

PubSubHubbub

3. Hub hits the URL to verify the request was authentic; Subscriber responds with confirmation to the Hub.

Publisher SubscriberHub

Yup, that was really me, not a DoS

attacker.

Page 30: Powering the Social Web (at the Dublin GTUG)

PubSubHubbub

4. a) Publisher notifies Hub about updates by POSTing feed URLs to the Hub; Hub pulls the feed again to find new entries.

I have new content for feed X

for you!

Publisher SubscriberHub

Page 31: Powering the Social Web (at the Dublin GTUG)

PubSubHubbub

Give me your latest content for feed X, please.

Publisher SubscriberHub

4. a) Publisher notifies Hub about updates by POSTing feed URLs to the Hub; Hub pulls the feed again to find new entries.

Page 32: Powering the Social Web (at the Dublin GTUG)

PubSubHubbub

Here you go.

Publisher SubscriberHub

4. a) Publisher notifies Hub about updates by POSTing feed URLs to the Hub; Hub pulls the feed again to find new entries.

Page 33: Powering the Social Web (at the Dublin GTUG)

PubSubHubbub

4. b) If the Publisher does not inform the Hub, the Hub will periodically poll the Publisher’s feed for new updates.

Give me your latest content for feed X, please.

Publisher SubscriberHub

Page 34: Powering the Social Web (at the Dublin GTUG)

PubSubHubbub

Here you go.

Publisher SubscriberHub

4. b) If the Publisher does not inform the Hub, the Hub will periodically poll the Publisher’s feed for new updates.

Page 35: Powering the Social Web (at the Dublin GTUG)

PubSubHubbub

New update to feed X! Here you

go.

Publisher SubscriberHub

5. When Hub receives new update to feed X, it POSTs the update to the Subscriber’s endpoint URL.

Page 36: Powering the Social Web (at the Dublin GTUG)

PubSubHubbub

New update to feed X! Here you

go.

Publisher SubscriberHub

6. If feed X has multiple subscribers, the Hub sends updates to all of them. This reduces load on the Publisher.

SubscriberSubscriberSubscriberSubscriberSubscriber

Page 37: Powering the Social Web (at the Dublin GTUG)

PubSubHubbub

Page 38: Powering the Social Web (at the Dublin GTUG)

Firehose

Page 40: Powering the Social Web (at the Dublin GTUG)

Track

Page 41: Powering the Social Web (at the Dublin GTUG)

41

Discovery

Page 42: Powering the Social Web (at the Dublin GTUG)

What is discovery?

42

Page 43: Powering the Social Web (at the Dublin GTUG)

Discovery document

goo.gl/Yy7XD

43

Page 44: Powering the Social Web (at the Dublin GTUG)

Easier to code

44

Page 45: Powering the Social Web (at the Dublin GTUG)

Easier migration

AuthSub to OAuth1OAuth1 to OAuth2

45

Page 46: Powering the Social Web (at the Dublin GTUG)

One management console

46

Page 48: Powering the Social Web (at the Dublin GTUG)

Missing languages?

48

Page 49: Powering the Social Web (at the Dublin GTUG)

49

Benefits

1 Latest features are instantly available to every language

2 More languages are supported by more APIs

3 APIs console gives you centralised management

4 Easier to use multiple APIs in the same project

Page 50: Powering the Social Web (at the Dublin GTUG)

50

What is #devexp?Green

Page 51: Powering the Social Web (at the Dublin GTUG)

#devexp

developerexperience.org

51

Page 52: Powering the Social Web (at the Dublin GTUG)

52

Developer Experience

1 Apply UX techniques to developer-facing products

2 Focus on the 15 minute OOB experience

3 Use convention over configuration

4 Design away common problems

Page 53: Powering the Social Web (at the Dublin GTUG)

53

The web is the platform

Page 54: Powering the Social Web (at the Dublin GTUG)

Our platform is open to extension, adaptation

and disruptive creativity

54

Page 55: Powering the Social Web (at the Dublin GTUG)

Discovery is the future

55

Page 56: Powering the Social Web (at the Dublin GTUG)

56

Blogger Book SearchAlerts CalendarBuzz CodeCheckoutBlog Search

Directory

Video Web Search

Groups Images Local

Picasa Scholar Talk

Web Accelerator

SMS

Earth Froogle Gmail

Maps for MobileMaps Mobile News

Toolbar SketchUpTranslate

Finance Google Labs

Pack

SpecializedSearches

Docs & Spreadsheets

YouTube

Feedburner

Google Reader

Page 57: Powering the Social Web (at the Dublin GTUG)

The web is the platform

57

Page 58: Powering the Social Web (at the Dublin GTUG)

58

Thank You!Q&A