OExchange<br />Duh.<br />
How cross-site sharing (mostly) works today…<br />
A User…<br />
Is browsing the web…<br />
Is browsing the web…<br />
Is browsing the web…<br />And decides to share something….<br />
Is browsing the web…<br />And decides to share something….so they click a link, button, or a menu like this:<br />
Or this:<br />
Or this:<br />
Or even just a row of impersonal service links (though they might be pretty):<br />
To do the share, we take the URL of the current page: <br />
To do the share, we take the URL of the current page: <br />http://www.example.com/something<br />
To do the share, we take the URL of the current page: <br />http://www.example.com/something<br />And the service the user...
To do the share, we take the URL of the current page: <br />http://www.example.com/something<br />And the service the user...
And send the User’s browser to a URL specific to that service…<br />
…like this:<br />http://www.facebook.com/share.php?u=http://www.example.com<br />
Now the user is just interacting with that site to complete the share…<br />
So basically those buttons just format requests to specific URLs for each site…<br />
So basically those buttons just format requests to specific URLs for each site…<br />…or the site has to.<br />
So basically those buttons just format requests to specific URLs for each site…<br />(oh, except for the tools that scrape...
So basically those buttons just format requests to specific URLs for each site…<br />And it works like this for LOTs and L...
http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.example.com<br />/sharer.php?u={the url}<br />
http://www.google.com/bookmarks/mark?op=add&bkmk=http%3A%2F%2Fwww.example.com<br />/mark?op=add&bkmk={the url}<br />
http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.example.com<br />/submit?url={the url}<br />
http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.example.com<br />/PostTo/Pages/?u={the url}<br />
And none of this is really personalized to the user.<br />
This is just silly<br />
URL-sharing links, buttons, and menus proliferate the web.<br />They are occupied with URL translations.<br />They should ...
Users shouldn’t have to navigate piles of chiclets (for options they don’t care about).<br />
Users shouldn’t have to navigate piles of chiclets(for options they don’t care about).<br />
Users shouldn’t have to navigate piles of chiclets (for options they don’t care about).<br />(even really fancy chiclets)<...
Users would have a better experience if the options were personalized.<br />And link-sharing tools could be more interesti...
A larger sharing network, with more traffic, and happier users.<br />
And, the places a user is sharing to should control the interface/experience<br />
And, the places a user is sharing to should control the interface/experience<br />Sort of like how the providers control t...
Plus, “share this link” is really a combination of many verbs (post/send/share/tweet/save).<br />Not to mention things lik...
The Open Stack is coming together…<br />
The Open Stack is coming together…<br />    For identity, access control, service discovery, contact data, application for...
The Open Stack is coming together…<br />    For identity, access control, service discovery, contact data, application for...
How it should be <br />The simple process of sharing/posting/sending links (and more) should be standard<br />Users should...
What’s really needed?<br /><ul><li>Simple agreement on how to exchange (send/share/post) semi-typed “link” content, replac...
 A way to discover places to share the content to
A way for users to indicate the services they prefer</li></li></ul><li>What am I sharing?  A page?  A video? An image? <br />
Where am I sharing it to?  A social bookmarking site?  A blog?<br />
How close are we?<br /><ul><li> Defining the content is coming along on its own (well, sorta)
 Content “targets” mostly all share a model (e.g. share.php?url=) for simple link sharing
 Personal discovery is starting to be real
 We just need a few connecting bits</li></li></ul><li>OExchange<br />http://www.oexchange.org/spec<br />
A super simple protocol for sending content to a site.  Where the target site controls the user experience, not an interme...
This includes:<br /><ul><li> A common URL syntax for the share operation
 Simple agreement on a URL “plus more when you have it” type model
 Basic discoverability of endpoints available on a given host
 Recommendations on how to leverage WebFinger for personalization</li></li></ul><li>How it works…<br />Our faithful User…<...
Is using a site (or other app), and wants to share some content.<br />
That site, either itself or by using an intermediate tool, has a known set of OExchange endpoints<br />These endpoints are...
That site, either itself or by using an intermediate tool, has a known set of OExchange endpoints<br />(the targets can be...
That site, either itself or by using an intermediate tool, has a known set of OExchange endpoints<br />The targets have de...
 endpoint:http://www.example.com/oexchange/share</li></li></ul><li>The site or tool forms a standard HTTP request to the t...
…and just sends the browser there.<br />
The typing thing is simple.<br />A “ctype” parameter indicates the type of content, and it defaults to “link”.  <br />So b...
The typing thing is simple.<br />A “ctype” parameter indicates the type of content, and it defaults to “link”.  <br />So b...
There are also other defined types, which improve the user experience when they are present but don’t hurt anything otherw...
 Iframes
 Images
 (more as appropriate)</li></li></ul><li>That’s it.<br />It’s basically the way things work today.<br />
That’s it.<br />It’s basically the way things work today.<br />Except everyone agrees to use the same URL scheme, and on a...
Oh wait, how do you find out about these Targets?  And where does personalization come in? <br />
Oh wait, how do you find out about these Targets?  And where does personalization come in? <br />There’s also a simple dis...
If you are a Target (which means you can accept OExchange shares):<br /><ul><li> you can always tell people about your end...
 or you can leverage XRD on your host, so tools can find you</li></ul>http://www.willmeyer.com/.well-known/host-meta<br />
/.well-known/host-meta is becoming a standard location for service discovery info on a host, so we’ve added to it.<br /><L...
/.well-known/host-meta is becoming a standard location for service discovery info on a host, so we’ve added to it.<br /><L...
Things that want to facilitate sending links somewhere can dynamically find and interoperate with more targets.<br />
We also think we can add preferred user services to personal XRDs obtained with WebFinger (with a “I want to send links to...
We also think we can add preferred user services to personal XRDs obtained with WebFinger (with a “I want to send links to...
Hey, what about authentication?<br />
Hey, what about authentication?<br />The target manages it (hopefully using some nice standard method), since it dictates ...
Hey, what about authentication?<br />The target manages it (hopefully using some nice standard method), since it dictates ...
…and the “open stack”?<br />
…and the “open stack”?<br /><ul><li> The basic URL transaction doesn’t have any relation to the authentication method used...
Upcoming SlideShare
Loading in...5
×

About OExchange

720

Published on

A narrative overview of the what and why of OExchange

Published in: Technology, Design
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
720
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

About OExchange

  1. 1. OExchange<br />Duh.<br />
  2. 2. How cross-site sharing (mostly) works today…<br />
  3. 3. A User…<br />
  4. 4.
  5. 5. Is browsing the web…<br />
  6. 6. Is browsing the web…<br />
  7. 7. Is browsing the web…<br />And decides to share something….<br />
  8. 8. Is browsing the web…<br />And decides to share something….so they click a link, button, or a menu like this:<br />
  9. 9. Or this:<br />
  10. 10. Or this:<br />
  11. 11. Or even just a row of impersonal service links (though they might be pretty):<br />
  12. 12. To do the share, we take the URL of the current page: <br />
  13. 13. To do the share, we take the URL of the current page: <br />http://www.example.com/something<br />
  14. 14. To do the share, we take the URL of the current page: <br />http://www.example.com/something<br />And the service the user picked…<br />
  15. 15. To do the share, we take the URL of the current page: <br />http://www.example.com/something<br />And the service the user picked…<br />
  16. 16. And send the User’s browser to a URL specific to that service…<br />
  17. 17. …like this:<br />http://www.facebook.com/share.php?u=http://www.example.com<br />
  18. 18. Now the user is just interacting with that site to complete the share…<br />
  19. 19. So basically those buttons just format requests to specific URLs for each site…<br />
  20. 20. So basically those buttons just format requests to specific URLs for each site…<br />…or the site has to.<br />
  21. 21. So basically those buttons just format requests to specific URLs for each site…<br />(oh, except for the tools that scrape, or encourage “the password anti-pattern”)<br />
  22. 22. So basically those buttons just format requests to specific URLs for each site…<br />And it works like this for LOTs and LOTS of different services, which are all pretty close, but different.<br />
  23. 23. http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.example.com<br />/sharer.php?u={the url}<br />
  24. 24. http://www.google.com/bookmarks/mark?op=add&bkmk=http%3A%2F%2Fwww.example.com<br />/mark?op=add&bkmk={the url}<br />
  25. 25. http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.example.com<br />/submit?url={the url}<br />
  26. 26. http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.example.com<br />/PostTo/Pages/?u={the url}<br />
  27. 27. And none of this is really personalized to the user.<br />
  28. 28. This is just silly<br />
  29. 29. URL-sharing links, buttons, and menus proliferate the web.<br />They are occupied with URL translations.<br />They should be focused on solving real user problems.<br />
  30. 30. Users shouldn’t have to navigate piles of chiclets (for options they don’t care about).<br />
  31. 31. Users shouldn’t have to navigate piles of chiclets(for options they don’t care about).<br />
  32. 32. Users shouldn’t have to navigate piles of chiclets (for options they don’t care about).<br />(even really fancy chiclets)<br />
  33. 33. Users would have a better experience if the options were personalized.<br />And link-sharing tools could be more interesting if the actual exchange was standardized.<br />
  34. 34. A larger sharing network, with more traffic, and happier users.<br />
  35. 35. And, the places a user is sharing to should control the interface/experience<br />
  36. 36. And, the places a user is sharing to should control the interface/experience<br />Sort of like how the providers control the experience in open authentication flows<br />
  37. 37. Plus, “share this link” is really a combination of many verbs (post/send/share/tweet/save).<br />Not to mention things like “translate this”.<br />
  38. 38. The Open Stack is coming together…<br />
  39. 39. The Open Stack is coming together…<br /> For identity, access control, service discovery, contact data, application formats, social stream I/O, and more…<br />
  40. 40. The Open Stack is coming together…<br /> For identity, access control, service discovery, contact data, application formats, social stream I/O, and more…<br /> And this can be leveraged to make sharing better. But we still need the simple link-sharing part.<br />
  41. 41. How it should be <br />The simple process of sharing/posting/sending links (and more) should be standard<br />Users should have a more targeted experience<br />Sharing tools should focus on user value, not on proxying URL formats between sites<br />Sharing increases with targeted and personalized choices for the user, minimal intermediate UI, and tighter browser and page integration<br />
  42. 42. What’s really needed?<br /><ul><li>Simple agreement on how to exchange (send/share/post) semi-typed “link” content, replacing today’s hodge-podge
  43. 43. A way to discover places to share the content to
  44. 44. A way for users to indicate the services they prefer</li></li></ul><li>What am I sharing? A page? A video? An image? <br />
  45. 45. Where am I sharing it to? A social bookmarking site? A blog?<br />
  46. 46. How close are we?<br /><ul><li> Defining the content is coming along on its own (well, sorta)
  47. 47. Content “targets” mostly all share a model (e.g. share.php?url=) for simple link sharing
  48. 48. Personal discovery is starting to be real
  49. 49. We just need a few connecting bits</li></li></ul><li>OExchange<br />http://www.oexchange.org/spec<br />
  50. 50. A super simple protocol for sending content to a site. Where the target site controls the user experience, not an intermediate tool.<br />
  51. 51. This includes:<br /><ul><li> A common URL syntax for the share operation
  52. 52. Simple agreement on a URL “plus more when you have it” type model
  53. 53. Basic discoverability of endpoints available on a given host
  54. 54. Recommendations on how to leverage WebFinger for personalization</li></li></ul><li>How it works…<br />Our faithful User…<br />
  55. 55.
  56. 56. Is using a site (or other app), and wants to share some content.<br />
  57. 57. That site, either itself or by using an intermediate tool, has a known set of OExchange endpoints<br />These endpoints are called Targets.<br />
  58. 58. That site, either itself or by using an intermediate tool, has a known set of OExchange endpoints<br />(the targets can be discovered dynamically, but more on that later)<br />
  59. 59. That site, either itself or by using an intermediate tool, has a known set of OExchange endpoints<br />The targets have defined metadata, like:<br /><ul><li>friendly name:my cool bookmarking site
  60. 60. endpoint:http://www.example.com/oexchange/share</li></li></ul><li>The site or tool forms a standard HTTP request to the target, like:<br />http://www.mcbs.com/oexchange/share?ctype=link<br />&url=http://www.example.com/thing-to-share<br />
  61. 61. …and just sends the browser there.<br />
  62. 62. The typing thing is simple.<br />A “ctype” parameter indicates the type of content, and it defaults to “link”. <br />So bookmarking tools don’t really have to change.<br />
  63. 63. The typing thing is simple.<br />A “ctype” parameter indicates the type of content, and it defaults to “link”. <br />So bookmarking tools don’t really have to change.<br />And there is ALWAYS a browser-appropriate URL in the transaction (no type negotiation required).<br />
  64. 64. There are also other defined types, which improve the user experience when they are present but don’t hurt anything otherwise:<br /><ul><li> Flash objects
  65. 65. Iframes
  66. 66. Images
  67. 67. (more as appropriate)</li></li></ul><li>That’s it.<br />It’s basically the way things work today.<br />
  68. 68. That’s it.<br />It’s basically the way things work today.<br />Except everyone agrees to use the same URL scheme, and on a common set of types, and makes their UI flow with their own site.<br />So we can all move on with our day.<br />
  69. 69. Oh wait, how do you find out about these Targets? And where does personalization come in? <br />
  70. 70. Oh wait, how do you find out about these Targets? And where does personalization come in? <br />There’s also a simple discovery thing.<br />
  71. 71. If you are a Target (which means you can accept OExchange shares):<br /><ul><li> you can always tell people about your endpoint directly
  72. 72. or you can leverage XRD on your host, so tools can find you</li></ul>http://www.willmeyer.com/.well-known/host-meta<br />
  73. 73. /.well-known/host-meta is becoming a standard location for service discovery info on a host, so we’ve added to it.<br /><Link <br /> rel="http://oexchange.org/spec/0.8/rel/hosted-service" <br /> type="application/xrd+xml” <br /> href=http://www.willmeyer.com/oexchange/bookmarks/oexchange.xrd ><br /> <Title>Example Bookmarking Service</Title><br /></Link> <br />
  74. 74. /.well-known/host-meta is becoming a standard location for service discovery info on a host, so we’ve added to it.<br /><Link <br /> rel="http://oexchange.org/spec/0.8/rel/hosted-service" <br /> type="application/xrd+xml” <br /> href=http://www.willmeyer.com/oexchange/bookmarks/oexchange.xrd ><br /> <Title>Example Bookmarking Service</Title><br /></Link> <br />(this goes inside the document, along with other Link descriptors like WebFinger’s)<br />
  75. 75. Things that want to facilitate sending links somewhere can dynamically find and interoperate with more targets.<br />
  76. 76. We also think we can add preferred user services to personal XRDs obtained with WebFinger (with a “I want to send links to this service” relation).<br />
  77. 77. We also think we can add preferred user services to personal XRDs obtained with WebFinger (with a “I want to send links to this service” relation).<br />(which means you as a user can indicate that you use a specific bookmarking service or network, and only see that chiclet)<br />
  78. 78. Hey, what about authentication?<br />
  79. 79. Hey, what about authentication?<br />The target manages it (hopefully using some nice standard method), since it dictates session lifetime and auth flow for its users already<br />
  80. 80. Hey, what about authentication?<br />The target manages it (hopefully using some nice standard method), since it dictates session lifetime and auth flow for its users already<br />Sharing should NOT include scraping or intermediate password input -- in-situ sharing buttons are cool, but ultimately not cool<br />
  81. 81. …and the “open stack”?<br />
  82. 82. …and the “open stack”?<br /><ul><li> The basic URL transaction doesn’t have any relation to the authentication method used (so standards can be leveraged there)
  83. 83. Any tag-soup standards can be supported via specific types, or simply on top of the exchange when a least-common-denominator is not required
  84. 84. OExchange Discovery plays nice with XRD and Webfinger
  85. 85. Activity Streams/Atom Publishing, and other application-domain-specific read/write standards represent a deeper level of integration; no need for OExchange to interfere there.</li></li></ul><li>What happens now?<br />
  86. 86. The network of sharing destinations can grow dramatically, while user experience improves…<br />
  87. 87. The network of sharing destinations can grow dramatically, while user experience improves…<br />…and sharing tools can offer more personalized sharing prompts<br />
  88. 88. The network of sharing destinations can grow dramatically, while user experience improves…<br />…and sharing tools can offer more personalized sharing prompts.<br />…with more long-tail services.<br />
  89. 89. The network of sharing destinations can grow dramatically, while user experience improves…<br />…and sharing tools can offer more personalized sharing prompts.<br />…with more long-tail services.<br />…and more appropriate/targeted services (like language-specific services).<br />
  90. 90. And as a bonus, the middlemen are optional.<br />
  91. 91. …so?<br />An increase in user sharing rate means increased link-back lift for publishers<br />A standardized sharing interface increases the network effect of the destination<br />Life gets better for users<br />
  92. 92. OK, then.<br />http://www.oexchange.org/spec<br />http://groups.google.com/group/oexchange<br />
  1. A particular slide catching your eye?

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

×