← Back to team overview

ubuntu-push-devs team mailing list archive

Re: status?

 

On Tue, Sep 10, 2013 at 5:59 PM, Robert Park <robert.park@xxxxxxxxxxxxx> wrote:
> CC'ing Ken VanDine since he's a Friends stakeholder and I'm not sure if he's
> on this list.

yes, he is :-)

> Ok. I'm still trying to figure out what Friends is going to even need to
> look like in order for this to be workable.

you have covered in other replies the basic message route, which is
app server → pushdev server → client daemon → app → user

at some point, however, (beyond v0), the app won't necessarily be involved:

app server → pushdev server → client daemon → user

furthermore, there will probably be special notifications for when
your notification is too large (either because you've sent too many,
or because it's something like an email that you need to fetch OOB);
your app will probably need to know how to fetch notifications itself
(this is also not for v0).

OK, back from the little digression. I see a lot of value in Friends
for the phone. Unfortunately for it to work efficiently, it needs to
be changed rather drastically: the polling of the different services
needs to happen on a server, which means users need to do the oauth
dance per service on that server (or ship oauth tokens from the phone
to the server, which is so hilariously a bad idea I'm not going to
entertain it). I am not sure what this means for the usefulness of UOA
(AIUI Friends is the main consumer of UOA, but not the only one).

The good news is, if you do that switch, you're a bit of web frontend
work away from having Friends run not only on the phone but on the
server too.

The bad news is, you need to have a server that'll cope with the
number of users you're going to have. Of course, assuming the Friends
server is Free Software (and I see no reason for it not to be), you
wouldn't necessarily have to host it all yourself (as long as the
friends app can be configured to point to a given server).
Unfortunately we haven't yet thought of the case where an appdev isn't
the entity running the app server (so we're assuming the appdev can
store secrets on the server). This needs some more thought but is not
insurmountable; we can address it later in any case.

Another bit of bad news is that unless you pretend to be a proxy,
you're going to get throttled by the server's IP on more than one of
the services. The good news here is you can probably pretend to be a
proxy (because that is what you are, albeit upside-down and async).

Not sure if I'm answering your question, still. Let me know,


References