0
Performance Challenges  for the Open Web Stanford CS193H 29 September 2008
Background: making the web work better <ul><li>I’ve been abusing web browsers for 15 years </li></ul><ul><ul><li>http://jo...
In a world with lots of socially-aware sites…
… and lots of “open social web” building blocks…
… how do the pieces fit together? … and what will the new  Social Web look like?
 
Reminder: The social web today is broken… <ul><li>On each site, we still have to: </li></ul><ul><ul><li>Re-create an accou...
…but we know how to make things better!
<ul><li>Create a portable, durable online identity </li></ul><ul><li>OpenID </li></ul><ul><ul><li>Sign up / sign in with a...
Example: Sign up for Plaxo with OpenID
 
 
 
<ul><li>Create a portable, durable online identity </li></ul><ul><li>OpenID </li></ul><ul><ul><li>Sign up / sign in with a...
 
 
 
 
 
 
<ul><li>Build and maintain real relationships </li></ul><ul><li>Contact APIs </li></ul><ul><ul><li>Find people from your c...
 
 
“ A periodic check of new people from your networks on other sites”
<ul><li>Stay up-to-date with the people you know </li></ul><ul><li>OpenSocial </li></ul><ul><ul><li>Build social apps that...
OpenSocial
OpenSocial: Large and Growing Rapidly
<ul><li>Stay up-to-date with the people you know </li></ul><ul><li>OpenSocial </li></ul><ul><ul><li>Build social apps that...
 
 
 
 
 
Building blocks in action: contacts portability <ul><li>User signs in with an OpenID </li></ul><ul><ul><li>Site fetches Op...
Performance Challenges <ul><li>Minimizing round trips </li></ul><ul><ul><li>Discovery, Association, OpenID, OAuth, etc. </...
Performance Challenges (cont.) <ul><li>Pull vs. push: aggregating activity </li></ul><ul><ul><li>Polling is easy but ineff...
… so how do these building blocks fit together?
 
 
 
Upcoming SlideShare
Loading in...5
×

ppt

397

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
397
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "ppt"

  1. 1. Performance Challenges for the Open Web Stanford CS193H 29 September 2008
  2. 2. Background: making the web work better <ul><li>I’ve been abusing web browsers for 15 years </li></ul><ul><ul><li>http://josephsmarr.com </li></ul></ul><ul><li>I used to work on AJAX / JS performance </li></ul><ul><ul><li>http://josephsmarr.com/2007/07/25/high-performance-javascript-oscon-2007 </li></ul></ul><ul><ul><li>Video: http://developer.yahoo.net/blogs/theater/archives/2007/08/joseph_smarr_highperformance_j.html </li></ul></ul><ul><li>Now I’m helping open up the social web </li></ul><ul><ul><li>http://josephsmarr.com/2008/09/22/tying-it-all-together-implementing-the-open-web-web-20-expo-new-york </li></ul></ul><ul><ul><li>Weekly video podcast: thesocialweb.tv </li></ul></ul><ul><li>Open Web has new performance challenges </li></ul><ul><ul><li>Making multiple sites play well together </li></ul></ul><ul><ul><li>Privacy, transparency, flexibility, simplicity </li></ul></ul>
  3. 3. In a world with lots of socially-aware sites…
  4. 4. … and lots of “open social web” building blocks…
  5. 5. … how do the pieces fit together? … and what will the new Social Web look like?
  6. 7. Reminder: The social web today is broken… <ul><li>On each site, we still have to: </li></ul><ul><ul><li>Re-create an account </li></ul></ul><ul><ul><li>Re-enter our profile info </li></ul></ul><ul><ul><li>Re-find our friends </li></ul></ul><ul><ul><li>Re-establish our relationships </li></ul></ul><ul><li>New social apps have limited options: </li></ul><ul><ul><li>Create yet-another-silo (and start from scratch) -or- </li></ul></ul><ul><ul><li>Make a widget inside an existing walled garden </li></ul></ul>
  7. 8. …but we know how to make things better!
  8. 9. <ul><li>Create a portable, durable online identity </li></ul><ul><li>OpenID </li></ul><ul><ul><li>Sign up / sign in with an existing account </li></ul></ul><ul><ul><li>Link / share your profile data between sites </li></ul></ul>
  9. 10. Example: Sign up for Plaxo with OpenID
  10. 14. <ul><li>Create a portable, durable online identity </li></ul><ul><li>OpenID </li></ul><ul><ul><li>Sign up / sign in with an existing account </li></ul></ul><ul><ul><li>Link / share your profile data between sites </li></ul></ul><ul><li>rel=me (XFN) </li></ul><ul><ul><li>Consolidate your online identity with me -links </li></ul></ul><ul><li>Social Graph API </li></ul><ul><ul><li>See what your users said about themselves </li></ul></ul>
  11. 21. <ul><li>Build and maintain real relationships </li></ul><ul><li>Contact APIs </li></ul><ul><ul><li>Find people from your current address book </li></ul></ul><ul><ul><li>Leverage previously established relationships </li></ul></ul><ul><li>OAuth </li></ul><ul><ul><li>Share private data between trusted sites </li></ul></ul><ul><li>Friends-list portability </li></ul><ul><ul><li>Continuous discovery across multiple sites </li></ul></ul>
  12. 24. “ A periodic check of new people from your networks on other sites”
  13. 25. <ul><li>Stay up-to-date with the people you know </li></ul><ul><li>OpenSocial </li></ul><ul><ul><li>Build social apps that can run anywhere </li></ul></ul>
  14. 26. OpenSocial
  15. 27. OpenSocial: Large and Growing Rapidly
  16. 28. <ul><li>Stay up-to-date with the people you know </li></ul><ul><li>OpenSocial </li></ul><ul><ul><li>Build social apps that can run anywhere </li></ul></ul><ul><li>RSS / Atom </li></ul><ul><ul><li>Syndicate your activity to share with others </li></ul></ul><ul><li>Jabber (XMPP) </li></ul><ul><ul><li>Real-time update stream between sites </li></ul></ul>
  17. 34. Building blocks in action: contacts portability <ul><li>User signs in with an OpenID </li></ul><ul><ul><li>Site fetches OpenID URL  looks for X-XRDS-Location </li></ul></ul><ul><ul><li>Site parses XRDS-Simple doc to discover available APIs </li></ul></ul><ul><li>Site tries to access contacts API  gets a 401 </li></ul><ul><ul><li>WWW-Authenticate response header specifies OAuth </li></ul></ul><ul><ul><li>OAuth Discovery (via XRDS) provides OAuth endpoints </li></ul></ul><ul><li>Site sends user though OAuth flow to grant access </li></ul><ul><ul><li>User returns to site with authorized access token </li></ul></ul><ul><ul><li>Site can now access users’ contacts data via API + token </li></ul></ul>
  18. 35. Performance Challenges <ul><li>Minimizing round trips </li></ul><ul><ul><li>Discovery, Association, OpenID, OAuth, etc. </li></ul></ul><ul><ul><li>Combining steps vs. small pieces loosely joined </li></ul></ul><ul><ul><li>JSON-RPC in OpenSocial (batching API calls) </li></ul></ul><ul><li>Caching: freshness vs. performance </li></ul><ul><ul><li>Policies for how long to store personal data </li></ul></ul><ul><ul><li>Social Graph API: cached web crawl </li></ul></ul><ul><ul><li>Server-alerted notifications </li></ul></ul>
  19. 36. Performance Challenges (cont.) <ul><li>Pull vs. push: aggregating activity </li></ul><ul><ul><li>Polling is easy but inefficient & doesn’t scale (1000 users every 15 min > 1 hit per sec) </li></ul></ul><ul><ul><li>XMPP & Gnip: receive update notifications </li></ul></ul><ul><li>Integrating 3 rd party content </li></ul><ul><ul><li>Server-side (proxied) vs. client-side (JS onload) </li></ul></ul><ul><ul><li>Iframe vs. inline </li></ul></ul><ul><ul><li>New techniques: XFBML, Caja, etc. </li></ul></ul>
  20. 37. … so how do these building blocks fit together?
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×