It might be a little out of date, but:
https://cwiki.apache.org/confluence/display/WAVE/Source+Code+Organization
might be a good start for anyone wanting to work on the client / server / common split. Anything with an x in both client and server columns would obviously be common! ;-) [Pablo: I don't know if your work already covers this, and is mergable back into wave?]

John - long term aspirations are incredibly important, but Wave's problems at the moment aren't due to a lack of aspiration (there are plenty of great aspirations in the community, many of them shared by many of us). My observation is that if wave is to survive at Apache we need a focus on manageable incremental improvements - getting more people involved in actually "doing".[1]

The client-server protocol is currently "defined" in this protobufs file:
https://git-wip-us.apache.org/repos/asf?p=incubator-wave.git;a=blob;f=src/org/waveprotocol/box/common/comms/waveclient-rpc.proto
but is effectively an implementation detail of the current combined codebase.

Making a split between client and server (and common) will expose this interface and make it more visible. Exposing the existing interface (without worrying too much about improving it) seems like an excellent initial step - and by making that interface more visible will hopefully make it more obvious how we can improve it iteratively.

Dave

[1] I'm as guilty as many in doing plenty of talking, but not actually contributing to the codebase or documentation in a meaningful way. Being conscious of this, I try to keep out of most of the "blue sky" discussions myself. I don't want my aspirations becoming a distraction to people that have the time to actually "do" the changes that are of interest to them.

On 25/03/15 00:56, John Blossom wrote:
Liking what I am hearing.

My ten cents:

client/server/common model is good for libraries, yes, but need
well-defined client APIs to allow multiple apps to access common data
stores. Otherwise you get more balkanisation and the data model never takes
off.

federation required, preferably in a way that will support sync/async
collaboration and store-forward data models.

Would like to see Wave 3.0 ideas considered.

All the best,

John Blossom

email: jblos...@gmail.com
phone: 203.293.8511
google+: google.com/+JohnBlossom

On Tue, Mar 24, 2015 at 4:32 PM, Thomas Wrobel <darkfl...@gmail.com> wrote:

On 24 March 2015 at 16:32, Dave Ball <w...@glark.co.uk> wrote:

  Might it be better to have three "parts"?
  - common
  - server
  - client

Common would contain the document and concurrency model etc. Client and
Server would both depend on Common. Common would compile to JS for the
Client, but Server would depend directly on Common so wouldn't need to
depend on the compiled javascript.


+1
I think this would be the best way to maintain compatibility between
client(s) and sever(s). Downside is people making non-Java clients (or
non-JS via GWT) would need their own common implementation.
But it wouldnt be any worse then now.


Reply via email to