Powering the Social Web (at the Dublin GTUG)
-
Upload
ade-oshineye -
Category
Technology
-
view
3.364 -
download
0
description
Transcript of Powering the Social Web (at the Dublin GTUG)
1
Powering the Social WebDiscovery & Developer Experience
@adewalebuzz.google.com/adewale
@ade_oshineyetwitter.com/ade_oshineye
The plug
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.
5
Outline
1 The technologies behind the Buzz API
2 Discovery
3 Developer Experience
4 The web is the platform
Buzz & the open technologies behind it
6
7
8
Passwords are bad for everyone
OAuth
1. Your application gets an unauthorized request token from the Service Provider’s authorization server.
Your Application
Service ProviderGet unauthorized
request token
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.
OAuth
Your Application
Service ProviderGet authorized
request token
3. Your application gets an authorized request token from the authorization server.
OAuth
Your Application
Service ProviderExchange request
for access token
4. You exchange the authorized request token for an access token.
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.
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
Polling is bad for everyone
PubSubHubbub
Publisher SubscriberHub
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.
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.
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
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?
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.
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
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.
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.
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
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.
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.
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
PubSubHubbub
Firehose
Photo credit: Nandhp, used under the Creative Commons Attribution-Share Alike 3.0 Unported license.
Gardenhose
Track
41
Discovery
What is discovery?
42
Discovery document
goo.gl/Yy7XD
43
Easier to code
44
Easier migration
AuthSub to OAuth1OAuth1 to OAuth2
45
One management console
46
47
Discovery-based libraries
code.google.com/p/google-api-php-client/code.google.com/p/google-api-python-client/code.google.com/p/google-api-java-client/code.google.com/p/google-api-ruby-client
Missing languages?
48
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
50
What is #devexp?Green
#devexp
developerexperience.org
51
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
53
The web is the platform
Our platform is open to extension, adaptation
and disruptive creativity
54
Discovery is the future
55
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
The web is the platform
57
58
Thank You!Q&A