<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">&lt;<a href="mailto:supittma@redhat.com" target="_blank">supittma@redhat.com</a>&gt;</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&#39;t use any authentication or ownership tracking.<br></blockquote><div><br></div><div>that&#39;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&#39;s hobbies)<br></blockquote><div><br></div><div>Let&#39;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>
&quot;solid&quot;.  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&#39;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&#39;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&#39;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&#39;s<br>
username and the documents they &quot;own&quot;.  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 &#39;plugged&#39; 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&#39;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&#39;t supply connection/disconnection information like<br>
WebSockets will.  Instead we just know that some messages we sent a<br>
while ago weren&#39;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&#39;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 -&gt; 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>
&gt;&gt;Phone:404 941 4698<br>
&gt;&gt;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&#39;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>