Been away a bit, so sorry for the delay.

Thanks for all the information, this is incredibly useful.

I'm going to start with doing one of the..well, starter projects and
see how well I handle that. If that goes smooth I'll investigating how
the protocol is currently working (code-wise) and see if I can see the
steps needed to convert to the new model. This could take awhile.

Thanks again for the pointers,
Thomas


On 11 July 2011 10:48, David Hearnden <hearn...@google.com> wrote:
> Hi Thomas,
>
> Instructions are at: http://www.waveprotocol.org/code
>
> A good starting point would be to check out the code, and build and run WIAB
> in development mode (ant compile-gwt-dev).  In the debug log in the web
> client, you'll see all the messages being transferred over the websocket.
> The messages are JSON, and their structure is defined by some protos, and
> enveloped as (see WaveWebSocketClient$MessageWrapper):
> { sequenceNumber: <unused I think>, messageType: <message class name>,
> message: <object> }
>
> WaveWebSocketClient essentially defines the client side of the protocol, and
> it's very trivial.  Over a bidirectional stream (websocket), the client
> sends an open request (ProtocolOpenRequest), some number of submit requests
> (ProtocolSubmitRequest), and then closes the web socket.  After the open
> request, the client receives a constant stream of ProtocolWaveletUpdates,
> containing either wavelet snapshots or wavelet deltas, interleaved with
> ProtocolSubmitResponses, which contain the success/failure of the client's
> own submits.  Details about those particular messages can be found in
> waveclient-rpc.proto, but the previous sentence above covers almost the
> entire protocol, and it's expressed quite simply in the code.  The bit I
> left out is the authentication messages, which I never looked into, but the
> code looks pretty straightforward.
>
> The problems with the protocol are:
> * it does not support opening at particular versions, which is required for
> diff-on-open
> * it bundles state and deltas over the same channel, rather than a RESTful
> state service plus a streaming delta service,
> * a few others that have escaped my memory (something about closing
> connections? or losing access because of a participant change?).  Listing
> the diff between the old and new protocol behaviour should produce a
> complete list.
>
> Hope that helps,
>
> -Dave
>
> On Sun, Jul 10, 2011 at 8:22 AM, Thomas Wrobel <darkfl...@gmail.com> wrote:
>
>> oh, quick question; wheres the current wiab repository?
>>
>> ~~~~~~
>> Reviews of anything, by anyone;
>> www.rateoholic.co.uk
>> Please try out my new site and give feedback :)
>>
>>
>>
>> On 9 July 2011 23:11, Thomas Wrobel <darkfl...@gmail.com> wrote:
>> > Guess I could have a go at those - they seem client based stuff so I
>> > should be able to handle it.
>> > I'll download a new checkout now and have a look.
>> >
>> > However, Can I have confirmation of the state of that proposed c/s
>> > protocol however as Joseph didn't know?
>> >
>> > At he moment Im a guy that doesn't know how it works at the moment,
>> > not knowing what exactly should be implemented/changed, and unsure if
>> > he has the skills needed to do it :p
>> >
>> > Perhaps I'm wrong, or being pessimistic, but at the moment I I feel
>> > like I could fix 10-20 client side bugs or feature requests in the
>> > time it will take me to understand how the wiab client and server
>> > should communicate with eachother.
>> >
>> > -Thomas
>> >
>> >
>> >
>> > On 9 July 2011 19:40, Yuri Z <vega...@gmail.com> wrote:
>> >> A great way to familiarize yourself with WIAB is by comepleting
>> >> StarterProject<
>> https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&jqlQuery=labels+%3D+StarterProject
>> >
>> >> .
>> >>
>> >> 2011/7/9 Joseph Gentle <jose...@gmail.com>
>> >>
>> >>> On Sat, Jul 9, 2011 at 8:19 AM, Thomas Wrobel <darkfl...@gmail.com>
>> wrote:
>> >>> >> As far as I know, the client-server protocol for wave in a box is
>> >>> >> pretty stable at this point. Its documented here:
>> >>> >>
>> >>>
>> http://www.waveprotocol.org/protocol/design-proposals/clientserver-protocol
>> >>> >> ... Though that documentation is probably out of date.
>> >>> >
>> >>> > It was my understanding it wasnt yet implemented?
>> >>> > There was an older thread here about it;
>> >>> >
>> >>> >
>> >>>
>> http://mail-archives.apache.org/mod_mbox/incubator-wave-dev/201105.mbox/%3cbanlktimi_a6zkpsrxqqvhwysrfhh35-...@mail.gmail.com%3e
>> >>> >
>> >>> > David Hearnden there said;
>> >>> >
>> >>> > "I would strongly encourage not building too much on the current
>> >>> protocol,
>> >>> > since it has a number of known limitations.  The new protocol is
>> simpler
>> >>> and
>> >>> > achieves a better separation of functionality. "
>> >>> >
>> >>> > Which put me off doing a anything with the code as-is.
>> >>> >
>> >>> > Has this changed now?
>> >>>
>> >>> I don't know - I haven't been working with the wave in a box code for
>> >>> the last 6 months or so.
>> >>>
>> >>> >> If you care about the client/server API enough to dig through the
>> >>> >> code, writing up some proper documentation describing what you find
>> >>> >> would be great.
>> >>> >
>> >>> > Id be happy to - but that might be overestimating my skills somewhat.
>> >>> > My java skills uptill now have purely been GWT or Android based
>> stuff.
>> >>> > Haven't ever done any server stuff, and the wiab code is a rather
>> >>> > steep learning curve every time I try getting to grips with bits of
>> >>> > it.
>> >>>
>> >>> I worked with the wave / wave in a box code for about half a year, and
>> >>> I still feel like that whenever I dive in there. Despite referring to
>> >>> (& editing) those protobuf files maybe a dozen times, it still took me
>> >>> 5-10 minutes to find them again. You can still get work done with that
>> >>> feeling, but it is slow going.
>> >>>
>> >>> If you want a good client/server protocol for wiab, familiarise
>> >>> yourself with the WIAB code and implement those changes Hearnden was
>> >>> talking about.
>> >>>
>> >>> -J
>> >>>
>> >>> > -Thomas
>> >>> >
>> >>>
>> >>
>> >
>>
>

Reply via email to