ppt

40
Performance Challenges for the Open Web Stanford CS193H 29 September 2008

Upload: sampetruda

Post on 20-Jan-2015

366 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: ppt

Performance Challenges

for the Open Web

Stanford CS193H29 September 2008

Page 2: ppt

Background: making the web work better

I’ve been abusing web browsers for 15 years

- http://josephsmarr.com

I used to work on AJAX / JS performance- http://josephsmarr.com/2007/07/25/high-performance-javascript-oscon-2007- Video:

http://developer.yahoo.net/blogs/theater/archives/2007/08/joseph_smarr_highperformance_j.html

Now I’m helping open up the social web- http://josephsmarr.com/2008/09/22/tying-it-all-together-implementing-the-open-web-web-20-expo-

new-york- Weekly video podcast: thesocialweb.tv

Open Web has new performance challenges- Making multiple sites play well together- Privacy, transparency, flexibility, simplicity

Page 3: ppt

In a world with lots of socially-aware sites…

Page 4: ppt

…and lots of “open social web” building blocks…

Page 5: ppt

…how do the pieces fit together?

…and what will the new

Social Web look like?

Page 6: ppt
Page 7: ppt

Reminder: The social web today is broken…

On each site, we still have to:-Re-create an account-Re-enter our profile info-Re-find our friends-Re-establish our relationships

New social apps have limited options:-Create yet-another-silo (and start from scratch)

-or--Make a widget inside an existing walled garden

Page 8: ppt

…but we know how to make things better!

Page 9: ppt

Create a portable, durable online identity

OpenID- Sign up / sign in with an existing

account- Link / share your profile data between

sites

Page 10: ppt

Example: Sign up for Plaxo with OpenID

Page 11: ppt
Page 12: ppt
Page 13: ppt
Page 14: ppt

Create a portable, durable online identity

OpenID- Sign up / sign in with an existing account- Link / share your profile data between sites

rel=me (XFN)- Consolidate your online identity with me-links

Social Graph API- See what your users said about themselves

Page 15: ppt
Page 16: ppt
Page 17: ppt
Page 18: ppt
Page 19: ppt
Page 20: ppt
Page 21: ppt

Build and maintain real relationships

Contact APIs- Find people from your current address book- Leverage previously established relationships

OAuth- Share private data between trusted sites

Friends-list portability- Continuous discovery across multiple sites

Page 22: ppt
Page 23: ppt
Page 24: ppt

“A periodic check of new people from your networks on other sites”

Page 25: ppt

Stay up-to-date with the people you know

OpenSocial- Build social apps that can run anywhere

Page 26: ppt

OpenSocial

Page 27: ppt

OpenSocial: Large and Growing Rapidly

Page 28: ppt

Stay up-to-date with the people you know

OpenSocial- Build social apps that can run anywhere

RSS / Atom- Syndicate your activity to share with others

Jabber (XMPP)- Real-time update stream between sites

Page 29: ppt
Page 30: ppt
Page 31: ppt
Page 32: ppt
Page 33: ppt
Page 34: ppt

Building blocks in action: contacts portability

User signs in with an OpenID- Site fetches OpenID URL looks for X-XRDS-Location- Site parses XRDS-Simple doc to discover available APIs

Site tries to access contacts API gets a 401- WWW-Authenticate response header specifies OAuth- OAuth Discovery (via XRDS) provides OAuth endpoints

Site sends user though OAuth flow to grant access- User returns to site with authorized access token- Site can now access users’ contacts data via API + token

Page 35: ppt

Performance Challenges

Minimizing round trips- Discovery, Association, OpenID, OAuth, etc.- Combining steps vs. small pieces loosely

joined- JSON-RPC in OpenSocial (batching API calls)

Caching: freshness vs. performance- Policies for how long to store personal data- Social Graph API: cached web crawl- Server-alerted notifications

Page 36: ppt

Performance Challenges (cont.)

Pull vs. push: aggregating activity- Polling is easy but inefficient & doesn’t scale

(1000 users every 15 min > 1 hit per sec)- XMPP & Gnip: receive update notifications

Integrating 3rd party content- Server-side (proxied) vs. client-side (JS

onload)- Iframe vs. inline- New techniques: XFBML, Caja, etc.

Page 37: ppt

…so how do these building blocks fit together?

Page 38: ppt
Page 39: ppt
Page 40: ppt