<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 26, 2015 at 4:38 PM, Summers Pittman <span dir="ltr"><<a href="mailto:supittma@redhat.com" target="_blank">supittma@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>
Summary (From my POV on Android):<br>
<br>
Sync Server doesn't use any authentication or ownership tracking.<br></blockquote><div><br></div><div>that's fine, for alpha.1. Can you create a ticket to track this on AGSYNC for later alpha releases? Or do we have already such an issue</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
GCM-XMPP bridge needs a lot of love<br>
We need to define a different connection lifecycle for GCM.<br></blockquote><div><br></div><div>Similar to above, I think for initial alpha the current connection bridge may be OK. We have JIRAs for that ? </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
The in memory data store is problematic because clients and servers<br>
must be stopped and started atomically<br></blockquote><div><br></div><div>Dan created this for one of the later (alpha) releases:</div><div><a href="https://issues.jboss.org/browse/AGSYNC-23">https://issues.jboss.org/browse/AGSYNC-23</a><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
We might want to show off syncing different types of documents (i.e.<br>
a todo list in addition to Luke's hobbies)<br></blockquote><div><br></div><div>Let's make sure the epics for the demos are covering that. Perhaps worth to open a new thread,</div><div>if we really need a new demo or so for the alpha.1</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Fixing the GCM bridge is probably a couple weeks of work to get it<br>
"solid". That will be a good alpha.1/preview to show off.<br></blockquote><div><br></div><div>ok, but I think if the only the current bridge makes it, it would not be the end of the world.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
So Last week I put together a demo to try and stretch the legs of the<br>
Android Sync Client APIs.<br>
<br>
It crashes, a lot. Which is a bit to be expected as the code hasn't<br>
really be used for, well, anything until now. We will get to that though.<br>
<br>
Here is the alpha.1 workflow. You log in and you see your docs. You can<br>
edit your docs or you can create new ones. In the future I would like<br>
to add sharing and collaboration but that's the future.</blockquote><div><br></div><div>+1 like the idea</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> Here's a flow<br>
chart for the visual thinkers out there (with real screen caps from the<br>
real working app)<br>
<br>
*<br>
<a href="https://docs.google.com/drawings/d/145XuutxR1yY0k81w2nIIy980itDIwxzH_gcDE3jLrvc/edit?usp=sharing" target="_blank">https://docs.google.com/drawings/d/145XuutxR1yY0k81w2nIIy980itDIwxzH_gcDE3jLrvc/edit?usp=sharing</a></blockquote><div><br></div><div>nice diagram - looks like a solid flow </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>
<br>
To make all of this work I use a RESTful server which tracks a user's<br>
username and the documents they "own". The sync server just syncs and<br>
serves the document you ask for. It has no authentication and any doc<br>
you ask for you get to be an editor on.<br></blockquote><div><br></div><div><br></div><div>your restful server would be the backend, that should/clould be 'plugged' into the sync? (in a later release)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
The client uses the GCM XMPP¹ bridge I wrote while drunk on the side of<br>
a mountain and it shows. </blockquote><div><br></div><div>:-) Ok, perhaps we should get it improved before we ship alpha.1</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> The biggest issue is that shadows for<br>
documents aren't getting created right sometimes because either 1) the<br>
client or server bounced and the data stores are no long synced or 2)<br>
the server thinks there are more clients than actually are connected.<br></blockquote><div><br></div><div>sounds like a bug</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
GCM-XMPP doesn't supply connection/disconnection information like<br>
WebSockets will. Instead we just know that some messages we sent a<br>
while ago weren't delivered. We need to figure out how to turn this<br>
into connection and disconnection information in a way that lets the<br>
shadows exist correctly.<br></blockquote><div><br></div><div>the messages that are arrving via GCM could be used to query for the version from the sync server. Eg. via a REST API? </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
Another issue that needs to be addressed is using something other than<br>
the Luke Skywalker hobbies document. (Or maybe showing off multiple<br>
document types in the demo). I'm up for suggestions.<br>
<br>
Anyway, the principles (diff sync with a restful documentId broker for<br>
security) are sound. I think we can buff out some implementation<br>
details and have a good alpha/preview/poc release in the few weeks -> 1<br>
month time frame for Android and the sync server.<br></blockquote><div><br></div><div>I think ideally the release would be ready around 20th of Feb, perhaps slightly later</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
--<br>
Summers Pittman<br>
>>Phone:404 941 4698<br>
>>Java is my crack.<br>
<br>
<br>
<br>
Foot Notes:<br>
1. The sync server has two client connection technologies : WebSockets<br>
and GCM-XMPP. Android uses the GCM-XMPP because it takes all of the<br>
nasty connection handling code and gives let's Android deal with it.<br>
More info here : <a href="https://developer.android.com/google/gcm/ccs.html" target="_blank">https://developer.android.com/google/gcm/ccs.html</a><br>
<br>
_______________________________________________<br>
aerogear-dev mailing list<br>
<a href="mailto:aerogear-dev@lists.jboss.org">aerogear-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Matthias Wessendorf <br><br>blog: <a href="http://matthiaswessendorf.wordpress.com/" target="_blank">http://matthiaswessendorf.wordpress.com/</a><br>sessions: <a href="http://www.slideshare.net/mwessendorf" target="_blank">http://www.slideshare.net/mwessendorf</a><br>twitter: <a href="http://twitter.com/mwessendorf" target="_blank">http://twitter.com/mwessendorf</a></div>
</div></div>