WebFinger-based discovery

53 views
Skip to first unread message

Michiel de Jong

unread,
Jan 12, 2011, 8:43:35 AM1/12/11
to unhosted
Hi,

If you log in to a website, then you do this with some text string that identifies you, possibly an email address. The website can choose to support "WebFinger-based Unhosted Resource Discovery", which would be what this email describes.

The goal is, obviously to make this an unhosted web app, where the user supplies per-user resources. So let's see if we can make this work.

Let's assume for the sake of argument that the user has a gmail account. Gmail supports WebFinger, but doesn't let the user edit his WebFinger record or add entries to it. This may come in the future, but for now we need some other solution. So I had a look, and found that the google profile is user-editable. So I put the information I want the app to discover in my google profile bio.

To edit your google profile bio, browse to http://www.google.com/profiles/me/editprofile?edit=t#about and scroll down to where it says 'Short bio'. The string I included was a JSON array of "module-version:URL" entries, prepended by '.unhosted=' (we can discuss the exact format for this and make it nicer if people have suggestions):

.unhosted={KeyValue-0.2:https://balimich.org/UJ/KV/0.2,MessageQueues-0.2:https://balimich.org/UJ/MQ/0.2}

then hit 'save'. With this, my gmail account is now equipped, via WebFinger-based discovery with two unhosted modules: KeyValue and MessageQueues. To see how the unhosted web app can read this, see the attached file. It looks up the WebFinger server for gmail.com, then it looks up my WebFinger profile, recurses into the google profile, and extracts the data it needs from my google profile bio.

People can propose other discovery mechanisms, and people can propose other modules. Each unhosted web apps chooses which modules it needs, and which discovery mechanisms it supports. That way, we got rid of all centralized protocolling, and unhosted is entirely a distributed effort now. I mean, we can keep some 'best practices' that are central to everything, but really, everybody is free to develop and use the modules they want, as well as the discovery mechanisms they want.

I encourage the people who were talking about a JabberID-based discovery mechanism, to develop this, and add it to the wiki. Same for the people who were talking about ID systems that do not rely on traditional DNS. Just define discovery mechanisms like I will do with this WebFinger-based one, and add them to the wiki.

In this example, two modules are mentioned: KeyValue and MessageQueues. These are the two modules that my v0.1 proof-of-concept implemented. I am putting these into my PHP-based unhosted storage node. I encourage people to implement these same two modules in their various unhosted storage nodes (I'll publish final specs for both modules within about a week).

I also encourage the people to develop more modules. I heard people talk about wanting FileSystem-like, WebSocket-like, and redis-like unhosted resources (modules). We can also do a Tahoe module so that people can announce on which tahoe grid they own writecaps. And we can do an OStatus module, that communicates with the 'federated social web' world in your name (keeping track of both in- and outgoing PuSH notifications and your salmon slaps). I think by the end of 2011 we should easily have 10 or 12 different modules, each with their own roles and functions.

And most importantly, I encourage people to write unhosted web apps that use this (or other) discovery mechanisms, to discover these (or other) modules. Soon, Daniel will publish the updated version of unhosted.js, his in-browser library that makes it easy to design unhosted web apps. Did you all check out the entries for the Hacky Holidays competition? http://www.unhosted.org/HackyHolidays.html There are some very interesting starting points there. With a little bit of work, these can be upgraded to the latest version of Daniel's unhosted.js library.

I will soon publish a beta version of my PHP-based unhosted storage node (balimich), and I think Dmitry is also making progress with his python-based storage node, so hopefully if someone has a spare server somewhere, they can install one of these and offer it as throttled commodity hosting for early adopters.

But right now the thing I'm most worried about that needs doing, is getting a killer app out there, which people can see, and really use (as in not just test, but really use for real production purposes). 

Who on this list has plans, or is willing, or is already working on developing more kick-ass unhosted web apps (preferably as free software, obviously), apart from the Hacky Holidays entries?


Cheers,
Michiel.
WebFingerBasedDiscoveryExample.txt

pir...@gmail.com

unread,
Jan 12, 2011, 9:31:00 AM1/12/11
to unho...@googlegroups.com
> Who on this list has plans, or is willing, or is already working on
> developing more kick-ass unhosted web apps (preferably as free software,
> obviously), apart from the Hacky Holidays entries?

I'm improving my access control system and developing a system so it
can be run without a server, so maybe one day they we could have a
kick-ass facebook... :-D

Hey, what's happens? Dreaming is still free... :-D

--
"Si quieres viajar alrededor del mundo y ser invitado a hablar en un
monton de sitios diferentes, simplemente escribe un sistema operativo
Unix."
– Linus Tordvals, creador del sistema operativo Linux

pir...@gmail.com

unread,
Jan 16, 2011, 10:42:19 AM1/16/11
to Daniel Gröber, unho...@googlegroups.com
> Be careful what you wish for, you might get it ;) Do you really want a unhosted
> app that is stealing your data like fa¢ebook?
>
Au contraire, mon amie. It's true that it would be possible (since
data it's showed in the browser, it could be stolen by a hidden script
at the page), but i was talking about i'm behind to develop my own
social network since more that two years ago... :-D Maybe my access
control system was inspired by it throught my subconciousness, because
i'm a little obsesed with the fact that all us we have more that two
faces and we show one or another depending with who we are... :-)
Reply all
Reply to author
Forward
0 new messages