John,
I'm not a committer, but I have some familiarity with the wave stack.
On 29/05/13 01:23, John Blossom wrote:
People need their waves to live on their mobile devices, not just on cloud Web
servers. After all, email provides local mobile offline capabilities.
I think you might not be 100% up to speed with some of the Wave
architecture. In an email world, people have mobile off-line access, but
they still use email servers. The email server often has the definitive
copy of their email [i.e. imap], and mobile just retains a cached copy.
In a mobile world, you still need a permanent server address to deliver
mail to, or send it through.
This is the same with wave:
client <---c---> server <---f---> server <---c---> client
The federation protocol [f] sits between the two servers, and to support
mobile clients you would expect those clients to:
- maintain cached waves
- allow off-line access to those waves
- allow off-line changes to those waves
- propagate changes in real-time where possible
In theory a wave server can support different clients. Unfortunately in
the current wiab codebase, there is only one client - which is the
bundled web-client. The current code base does sort-of have the logical
client/server separation as outlined above (though some code is shared
between the server and the client), but there isn't a formally defined
client protocol [c], or separation of the web-client.
So in a broad sense, to support mobile one would need to:
- formalise the client-server protocol [c]
- implement that in WIAB (ideally allowing Server and web-client to be
deployed separately)
- implement your mobile clients.
Any mobile client would still communicate through a server (as email
does today) allowing (among other things) third parties to interact with
waves whilst _I_ am offline.
So if you are considering the possibility of a mobile-first world, you really
do need to
rethink existing Wave federation paradigms seriously.
There may be some corner cases which would need tweaking, but my
understanding is that the core wave federation paradigms / protocol (and
the wiab federation implementation) suit mobile very well. They were
explicitly designed to support real-time when online, and disconnected
access when offline.
Someone please correct anything I've got wrong!
Dave