400 likes | 511 Vues
This talk explores the complexities of improving performance on the Open Web, particularly in the context of social applications. With years of experience in web technologies, Joseph Smarr discusses how to create a seamless user experience despite the fragmented nature of the social web. He emphasizes the importance of portable online identities and strategies like OpenID and OAuth to enhance usability across different platforms. Key challenges include minimizing round trips, effective data sharing, and integrating third-party content while maintaining performance and user privacy.
E N D
Performance Challenges for the Open Web Stanford CS193H 29 September 2008
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
…how do the pieces fit together? …and what will the new Social Web look like?
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
Create a portable, durable online identity • OpenID • Sign up / sign in with an existing account • Link / share your profile data between sites
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
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
“A periodic check of new people from your networks on other sites”
Stay up-to-date with the people you know • OpenSocial • Build social apps that can run anywhere
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
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
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
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.