[aerogear-dev] Sync Notes / Early issues

Lucas Holmquist lholmqui at redhat.com
Mon Jan 26 11:37:55 EST 2015


Perhaps we have already brought this up,  but what are we(our sync stuff) trying to be.

Are we trying to be Dropbox/google docs/etc…..  or something else(what that is i’m not sure).

What are our real use cases here?


> On Jan 26, 2015, at 11:31 AM, Summers Pittman <supittma at redhat.com> wrote:
> 
> On 01/26/2015 11:26 AM, Randall Hauch wrote:
>> From this and previous threads, it sounds like you’re targeting how multiple users could collaboratively edit the same document. Essentially, this is like Google Docs, though perhaps a bit lighter weight. Am I misunderstanding the scenario?
> Document is a generic term.  It is a wrapper around a JSON serializable 
> object.
>> 
>> For example, would this kind of data sync be useful when there are millions of shared documents/entities? For example, a Yelp-like app would probably want to have an entity/document for each restaurant or business, where that document contained an aggregation of information about that business. In my mind, these kinds of documents are more akin to JPA entities — or rather akin to aggregates of related JPA entity objects.
> Yes ish.  Right now the sync server is very young, but we can model the 
> data as a single document and have the apps display views into it and 
> make edits appropriately.  The trick will be making sure that the 
> serialization is always the same (IE two clients aren't constantly 
> updating because they serialize data in different orders)
>> 
>> Best regards,
>> 
>> Randall
>> 
>> 
>>> On Jan 26, 2015, at 9:38 AM, Summers Pittman <supittma at redhat.com> wrote:
>>> 
>>> 
>>> Summary (From my POV on Android):
>>> 
>>>   Sync Server doesn't use any authentication or ownership tracking.
>>>   GCM-XMPP bridge needs a lot of love
>>>   We need to define a different connection lifecycle for GCM.
>>>   The in memory data store is problematic because clients and servers
>>> must be stopped and started atomically
>>>   We might want to show off syncing different types of documents (i.e.
>>> a todo list in addition to Luke's hobbies)
>>>   Fixing the GCM bridge is probably a couple weeks of work to get it
>>> "solid".  That will be a good alpha.1/preview to show off.
>>> 
>>> So Last week I put together a demo to try and stretch the legs of the
>>> Android Sync Client APIs.
>>> 
>>> It crashes, a lot.  Which is a bit to be expected as the code hasn't
>>> really be used for, well, anything until now.  We will get to that though.
>>> 
>>> Here is the alpha.1 workflow. You log in and you see your docs.  You can
>>> edit your docs or you can create new ones.  In the future I would like
>>> to add sharing and collaboration but that's the future. Here's a flow
>>> chart for the visual thinkers out there (with real screen caps from the
>>> real working app)
>>> 
>>>  *
>>> https://docs.google.com/drawings/d/145XuutxR1yY0k81w2nIIy980itDIwxzH_gcDE3jLrvc/edit?usp=sharing
>>> 
>>> To make all of this work I use a RESTful server which tracks a user's
>>> username and the documents they "own".  The sync server just syncs and
>>> serves the document you ask for.  It has no authentication and any doc
>>> you ask for you get to be an editor on.
>>> 
>>> The client uses the GCM XMPP¹ bridge I wrote while drunk on the side of
>>> a mountain and it shows.  The biggest issue is that shadows for
>>> documents aren't getting created right sometimes because either 1) the
>>> client or server bounced and the data stores are no long synced or 2)
>>> the server thinks there are more clients than actually are connected.
>>> GCM-XMPP doesn't supply connection/disconnection information like
>>> WebSockets will.  Instead we just know that some messages we sent a
>>> while ago weren't delivered.  We need to figure out how to turn this
>>> into connection and disconnection information in a way that lets the
>>> shadows exist correctly.
>>> 
>>> Another issue that needs to be addressed is using something other than
>>> the Luke Skywalker hobbies document.  (Or maybe showing off multiple
>>> document types in the demo).  I'm up for suggestions.
>>> 
>>> Anyway, the principles (diff sync with a restful documentId broker for
>>> security) are sound.  I think we can buff out some implementation
>>> details and have a good alpha/preview/poc release in the few weeks -> 1
>>> month time frame for Android and the sync server.
>>> 
>>> -- 
>>> Summers Pittman
>>>>> Phone:404 941 4698
>>>>> Java is my crack.
>>> 
>>> 
>>> Foot Notes:
>>> 1. The sync server has two client connection technologies : WebSockets
>>> and GCM-XMPP.  Android uses the GCM-XMPP because it takes all of the
>>> nasty connection handling code and gives let's Android deal with it.
>>> More info here : https://developer.android.com/google/gcm/ccs.html
>>> 
>>> _______________________________________________
>>> aerogear-dev mailing list
>>> aerogear-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>> 
>> _______________________________________________
>> aerogear-dev mailing list
>> aerogear-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
> 
> 
> -- 
> Summers Pittman
>>> Phone:404 941 4698
>>> Java is my crack.
> 
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev at lists.jboss.org <mailto:aerogear-dev at lists.jboss.org>
> https://lists.jboss.org/mailman/listinfo/aerogear-dev <https://lists.jboss.org/mailman/listinfo/aerogear-dev>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/aerogear-dev/attachments/20150126/75e5c58d/attachment-0001.html 


More information about the aerogear-dev mailing list