Hi Yuri!

I think current client-server protocol is poorly designed.
- It mixes together getting of snapshots and opening of delta channels.
  This eliminates reconnection possibility.
- All opened wavelet channels live in one protocol channel.
  This makes difficult separated control of channels and diagnostics.
This and bugs in the code led to turbulences.

I rewrote the protocol by using base design from
http://www.waveprotocol.org/protocol/design-proposals/clientserver-protocol.
I have been extended this specification to support:
- Diff operations from last viewed version.
- Uploading of blips.
- Raw data to optimize deserialization.

I will be glad to commit new protocol if Kirill will agree.


2015-04-05 1:37 GMT+05:00 Yuri Z <vega...@gmail.com>:

> Hi
> Let's us try to re-think the WIAB client-server protocol issue.
>
> From what I remember (please correct me if I am wrong) the client interacts
> with server in four main ways:
> 1. Requests a snapshot on opening a wave
> 2. Sends deltas with updates
> 3. Receives deltas with updates.
> 4. Interacts directly with Search API.
> The messages protocol used is Protocol Buffers and PST - Protocol String
> Template, which is a custom written protobuff backed framework for
> generating several versions of the same bean for Java/GWT etc.. which
> allows easy serialization/deserialization.
> Now, what are the main issues with this setup are:
> 1. GWT - not an issue in itself, as I think it was a good decision at the
> time and still the best way to re-use the same OT code on server and
> client, but it requires GWT compilation and maintenance of GWT related
> tools like the superdev and waveharness, requires certain version of
> browsers for debugging, prevents us from moving to Java8 (and maybe Scala
> for some server side parts). Also, while GWT is more or less main stream -
> it is still adds another filter on potential contributors/adopters.
> 2. Protobuff/PST based API while being efficient and sound decisions at the
> time - now add more complexity and slower adoption. PST is basically a
> whole framework that is written by Benjamin Kalman that is used AFAIK only
> in WIAB. They also require additional step of source generation with C++
> based binary. Also, I think newer version of protobuff are not compatible
> with PST.
> 3. Tightly coupled Server/Client protocol - I think the protocol is fine
> actually, what makes it hard to use is the point 2.
>
> So what can be possible solutions? We can:
> 1. Solve somehow the issues from above - will require a lot of effort, and
> probably will be never done.
> 2. Give up on the GWT rich text editor and concentrate on Robot/Gadgets API
> and Federation.
> While, personally I would prefer solution #1, maybe it is more practical
> and agile to cut it off and go with 2.
>
> Thoughts?
>

Reply via email to