- From: Owen Shepherd <owen.shepherd@e43.eu>
- Date: Tue, 04 Nov 2014 23:05:03 +0000
- To: "public-socialweb@w3.org" <public-socialweb@w3.org>
- Message-ID: <54595B9F.7090701@e43.eu>
Hello, all. I'd like to table a proposal for our social API and Federation Protocol specifications. This is very much a work in progress draft; you'll find lots of todo notes, and areas which are missing the detailed description they deserve. There will be typos, spelling mistakes, incomplete sentences, etc. However, it has reached a point where I feel it is ready for commentary and critique. So, let me introduce to you ActivityPump, so called because it originally derived from the pump.io protocol. It has diverged from that slightly. The main areas of change are: * Changes introduced by AS1 to AS2 churn * I'm reworking the authorization system significantly. Pump.io builds around OAuth 1.0, which causes trouble in the federated landscape. I'm working from the building blocks of OAuth 2.0 which lets the client on your mobile phone identify itself as myself.example to friendsite.example. * Consensus seems to be a more resource-oriented model, so I are aiming in that direction. What that means is that to update an object, you do an authenticated HTTP PUT to it, whilst in pump.io you post an update activity (actually, you should be able to do the PUT to in pump.io. in ActivityPump, its' the only way). I'm aiming for that as much as possible (a few cases don't work that way, and can't without great difficulty: the verbs "post", "like", "unlike", "follow" and "unfollow") * I've introduced a concept of "notification". Notification fixes a few issues with pump.io, namely that sometimes replies don't go to everyone (because of recipients you can't see and other reasons). If delivery is the forward channel (i.e. like a push-based RSS subscription), notification is the back channel (i.e. like WebMention or pingback). Some areas of iffiness: * It would be nice to make the public collection a part of the AS2 ontology. * I've used the HTTP NOTIFY method to implement the notification backchannel for federated servers. This originaly comes from SSDP, a part of UPnP, which I believe is an expired internet draft. Their use is the weird case of "multicast UDP HTTP" anyway, so I'm not concerned about conflict, but I am slightly wary of extending HTTP in this manner and of this causing implementation difficulties (poorly supported by frameworks and languages?). * Can the notification back channel and the delivery forward channel be unified? This probably makes implementations more complex (because now on receiving a notify you need to parse the incoming object's recipient list) and also causes more HTTP requests in general (I now need to go out and read all the recipient collections..) * There are a lot of todos! In spite of these things, I think its' time for us to open up comments. One of the things I'm strongly leaning towards is minimum viable product, and I think things are going pretty well in that direction. My goal is to, as I think should be done with every specification, have the minimum complexity possible for the required functionality and no less You can find the specification here: http://oshepherd.github.io/activitypump/ActivityPump.html Owen
Received on Tuesday, 4 November 2014 23:05:37 UTC