Corinne,
Thanks for your input. Please see my responses inline. I will be speaking from a JS point
of view. The others that work on our Android or iOS libs may have different thoughts but
what I'm working on is more relevant to your questions.
On Oct 29, 2012, at 4:17 AM, Corinne Krych <corinnekrych(a)gmail.com> wrote:
Hello Guys
I jumped into the discussion because I'm working on similar topic for 3musket33rs
html-grails-plugin. And I would like to share my thoughts with you.
See code for Grails plugin here
https://github.com/3musket33rs/html5-mobile-scaffolding
or an example of implementation (if you just wan tto se the js)
https://github.com/corinnekrych/tagmyfriends/tree/master/web-app/js
My design is similar I called Feed what you have named Pipeline.Feed can be online or
offline and I've implemented a first draft of synchronization. Model is more or less
equivalent to your StoreManager.
Main differences I see is:
1. I've chosen to decouple with MVC pattern as I needed to identify what need to be
generated by Grails plugin.
We are trying to keep the client libraries as decoupled
from the server as possible and only depend on a server implementation when necessary for
things like specific security adapters or syncing.
For ex, in my example app the generated part is
https://github.com/corinnekrych/tagmyfriends/tree/master/web-app/js/tagmy...
There is a bunch of js libraries (backbone, angular etc...) to do this and I might
propose an easy way to plug the chosen fwk.
The goal is that eventually AeroGear
could work in tandem with client side MV* libs like Backbone. That way, AeroGear could be
used in place of that library's persistence or sync method to be able to do things
like use Backbone with offline access and sync and use WebSockets as the server
connection.
Looking at your TODO app I think it would be nice to decouple the
view
Totally agree. I have plans to rework/rebuild that app to do just that. It
started very simple but has grown quickly to obviously need the benefits of something like
Backbone.
2. Not sure how you're thinking on introducing Sync in your code, is it going to be
another adapters of DataManager?
I am working on completely decoupling Pipeline and
DataManager and then introducing a new module called SyncManager that will handle all
syncing between local and server side data. You can see the very early start and monitor
the progress of this code in the SyncManager branch
https://github.com/aerogear/aerogear-js/tree/SyncManager
3. Are you going to provide multi-user synch?
Yes, that is the goal. That would be
one of those situations where a specific server implementation would be used to manage
things like simultaneous connections, conflicts between two clients modifying the same
data offline, etc. This is all still very young though and hasn't been worked out
yet.
Tell me your views...
++
Corinne.
On 26 October 2012 16:03, Sebastien Blanc <scm.blanc(a)gmail.com> wrote:
Very clear ;-)
The question is how much flexibility/facilities/abstraction do we give to the app dev ?
But some very interesting challenges to come ...
Seb
On Fri, Oct 26, 2012 at 3:21 PM, Kris Borchers <kris(a)redhat.com> wrote:
But a pipe only deals with moving data between the client and server. A store handles
client side data manipulation. We purposefully separated them. Then the app dev can either
manage when and how they use each or they can use SyncManager to handle a lot of it for
them. I don't see the benefit of duplicating functionality of DataManager in Pipeline
or vice versa.
On Oct 26, 2012, at 8:13 AM, Sebastien Blanc <scm.blanc(a)gmail.com> wrote:
> Hi,
> I agree the "localPipe" seems like a bit strange weird, and it's
implementation will be very simple and "dumb" but there will be situation maybe
where we want to stay on the Pipe API, rather than shortcut to the datamanager, even if
this Pipe just do a local loop, not sure I'm clear on this point but it is the idea of
consistency ...
> Seb
>
>
> On Fri, Oct 26, 2012 at 3:03 PM, Kris Borchers <kris(a)redhat.com> wrote:
> We are on the same page for the most part. :) Not sure what you mean by a
"local pipe" though. I think that is what DataManager does. As for the event
driven model for connecting and syncing a pipe to a store, I am already working on that on
the JS side. Check out SyncManager in
https://github.com/aerogear/aerogear-js/tree/SyncManager. There is still a lot to do and I
have more code locally but it's a start.
>
> On Oct 26, 2012, at 7:56 AM, Sebastien Blanc <scm.blanc(a)gmail.com> wrote:
>
>> Hi all !
>> I was looking at the all different documentation pages and FAQ, and some
questions and ideas araise :
>>
>> 1) A PipeManager can contains 'n' pipes, is there any plan to be able to
chain pipes together (i.e : "localPipe -> restPipe") ? Even nicer, would it
be possible to make conditional the pipe "route" (i.e ; "no connection then
use the localPipe" etc …)
>>
>> 2) The dataStore concept is clear but are there any plans to create some sort of
association (one-to-one, one-to-many, etc ...) between a pipe and a datastore instance ?
>>
>> 3) One idea should be that a pipe produce events ("entering
pipe","exiting pipe", with some useful callback data) and then any other
component should be able to register to the pipe's events, same could be implemented
for the other components (datastore events , security events) ...
>>
>> The main idea is how we will consolidate all this different components together
(pipe and datamanager mainly) onces we will have to deal with data sync for example.
>>
>> I'm just throwing some ideas after a brainstorming with myself ;-) but please
share your comments on this !
>>
>> Best Regards,
>> Seb
>>
>> _______________________________________________
>> aerogear-dev mailing list
>> aerogear-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>
>
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>
>
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
_______________________________________________
aerogear-dev mailing list
aerogear-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-dev
_______________________________________________
aerogear-dev mailing list
aerogear-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-dev
_______________________________________________
aerogear-dev mailing list
aerogear-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-dev