OExchange<br />An Open Protocol Stack for URL-Based Content Sharing on the Web(Quick Geek Remix)<br />May 2010<br />
What are we trying to do here? <br />The Web includes an unbounded number of services for sharing, posting, translating, printing, saving for later, and more<br />Goal #1: Provide a simple, default way for users to send any URL-based content to any service on the web<br />Goal #2: Allow users to personalize their choices, across tools, publishers, and machines<br />
We Need an Open Protocol Solution<br />Discover<br />Personalize<br />Exchange<br />A means to associate preferred services with a user<br />A way to interrogate and discover services that can accept content<br />A common and simple way to send content, using its URI, to a service<br /><ul><li>Support forcurrently-deployed solutions, future new UX, and verbs beyond “share”</li></ul>Current-generation tools:<br />Focus on sharing<br />Take the form of buttons, rows of chiclets, popup menus, toolbars<br />Present too many choices; may not even include what the user wants <br />
The Basic Solution<br />A standard endpoint, and a defined HTTP GET flow to send URLs to that endpoint<br />An “Offer” endpoint takes standard arguments (always including URL); has browser control for the transaction<br />An XRD-based resource that describes the service<br />A “Target XRD” document includes the endpoint and related information about the service<br />Host-Meta and page-level Link tags make the service discoverable<br />I accept URLs at my Offer endpoint:<br />http://<me>/<whatever>?url=<url>&<etc><br />That and some info for humans is in my XRD doc:<br />http://<me>/<whatever>/target.xrd<br />You can discover it from my host-meta or in-page Link tags:<br />rel=“http://oexchange.org/…/related-target”<br />
The Offer Flow<br />Build on a deployed browser-based paradigm (add “headless” modes once discovery is adopted)<br />Enforce URLs as primary content indicators (supporting any tagging schemes)<br />Plan for extensibility of verbs (“offer” is the most generic)<br />Content source, in a user’s browser<br />Receiving service (social network, translator, whatever)<br />HTTP GET, usually target=“_blank”<br />http://<service>/<whatever>?url=<url>&<etc><br />Service-specific UI; browser session up to service<br />Browser session continued<br />
About Typing<br />We’re ALWAYS sending URLs<br />URLs which are viewable in a browser<br />URLs which may use any embedded tags (OGP, microformats, etc.)<br />We’re optionally sending extra stuff<br />Iframe URLs, images, rich media objects<br />This gives us <br />guaranteed compatibility, without ANY negotiation<br />an ability to offer a richer experience for services that support it<br />
Personalizing Choices<br />If you can send content to any service, and discover new services automatically…<br />Let a user store their preferences<br />Let all tools, including browsers, access it<br />http://<service><br />http://<service><br />http://<service><br />WebFinger lookup<br />Personal XRD with OExchange links<br />http://<service>/target.xrd<br />http://<service>/target.xrd<br />http://<service>/target.xrd<br />http://<service>/target.xrd<br />email@example.com<br />Optional local cache<br />
So What?<br />For Services<br />Receive more content, from a greater variety of tools and content providers<br />For Users<br />Get the right option at the right time for sharing, saving, blogging, whatever<br />Engage with longer-tail communities of interest<br />For Publishers<br />Get more of your content out, through more efficient share-through<br />Don’t have to decide between options<br />
Taking it Forward<br />Our strategy<br />Codify the existing model for basic content exchange on the web, while adding a new discovery capability<br />Add new exchange models once this foundation is deployed<br />Additional exchange models<br />With discovery in place, its easy to standardize more optimized exchange flows<br />Headless and return-to-source are primary examples<br />User addressing; mutual service negotiation in “Send to Mom” type use-cases<br />Learn more at www.oexchange.org<br />
A particular slide catching your eye?
Clipping is a handy way to collect important slides you want to go back to later.