Dear b2g friends,

As you may know, one of the core pieces for the NGA Toolkit work is Data
Sync. We did more discussion/research/analysis for these first two quarters
and have some decisions, plans and WIP works which would like to share with
you.


As mentioned in previous threads, we are focusing our work based on three
major concepts taken from the core of Mozilla's mission:



- User choice

We believe that users shouldn't be tied to a specific storage provider like
in other platforms (iCloud on iOS, Drive on Android...), so we'd like to
provide a solution where users can choose their preferred storage
provider(s).

- User privacy

User privacy is key for us. Whatever we implement here should allow users
to opt-in to encrypt the data on the client side and store it encrypted on
the selected cloud storage provider.

- User identity

We want to use Firefox Accounts as the authentication mechanism for this
service and link this account to the user selected cloud storage provider
accounts.



With these concepts in mind, we have split the work in two major parts:



1. Synchronization of Browser/System data



This includes all the data that belongs to the OS (browser) itself. Things
like the list of installed apps, bookmarks, browsing history, passwords,
form data, addons, prefs, etc. We chose to use the existing Firefox Sync
platform for synchronizing this kind of data. This is a long time requested
feature and we are already (and slowly) working on adding this support for
FxOS. If you want to dig a bit more about the technical aspects of this
implementation you can check the slides at [1]. They might not say much by
themselves, but they will be properly introduced at Whistler. Also, if you
want to follow the progress of this implementation, you can take a look at
this meta bug [2]



2. Synchronization of InApp data.



This includes all the data that doesn't belong to the OS but to the web
apps themselves. Things like contacts data, sms/mms, call log, alarms,
in-app specific settings (i.e. email or calendar accounts configuration),
music, photos and a big etc.



Because this includes a big set of information to be synchronized we also
split this in different parts:



2.1 File synchronization



It is not the same to synchronize plain JSON documents than big media
files. We need a solution to remotely store and synchronize media files.
Among others, there's an interesting proposal to provide an Universal
Storage API and a Virtual Storage Interface. We will present this at
Whistler, but you can have a first taste of it at [3]



2.2 Document synchronization



We'd like to provide a cross browser solution for web apps to synchronize
their local databases in a way that fulfills the three major requirements
that we presented above. For this part there are several existing tools
that we can use to build such a solution like kinto [4], pouchDB [5],
remotestorage.js [6], or cloud storage[7]. We are still working on figuring
out what the best tool(s) is for this part.



You can read a bit more about data synchronization on FxOS on the projects
wiki [8] that we try to keep up to date.



And last but not least, we will be having a two hours session to present
what we've done so far at Whistler. We are looking for participation and
feedback so if you have the chance, please come by and share your thoughts
with us.



Date/Time: 6/23 Wed. 1-3pm

Venue: Westin - Alpine B





[1] http://ferjm.github.io/fxos-sync-architecture/1-fxos-sync.html#/

[2] https://bugzilla.mozilla.org/show_bug.cgi?id=824026

[3] https://wiki.mozilla.org/Firefox_OS/Cloud_Storage

[4] https://github.com/mozilla-services/kinto

[5] http://pouchdb.com/

[6] https://github.com/remotestorage/remotestorage.js

[7] https://wiki.mozilla.org/Firefox_OS/Cloud_Storage

[8] https://wiki.mozilla.org/Firefox_OS_Data_Sync


Thank you so much!

/ The Data Sync Toolkit team




Aaron Wu
Engineering Project Manager, Mobile Device
Mozilla Corporation
cell: +886-955-361-456
email: [email protected]
skype: waaron2000


On Tue, Jun 16, 2015 at 6:35 PM, Aaron Wu <[email protected]> wrote:

> Dear All,
>
> Here I would like to share what we are doing on data sync and cloud
> storage project, there are two topics covered.
>
> 1. Browser/System Data Sync
>
> For Browser/System specific data we chose to use the existing FirefoxSync 
> platform.
> That will give users a way to backup Firefox OS systemdata like the list
> of installed apps, the browser history, their bookmarks, etc. and to access
> this data from any Firefox product (Desktop, Android, iOS, OS).
>
>
>    - Offline support: Application can be executed offline and syncthe data 
> automatically
>    while it gets into the network environment.
>    - Cross browser support: The web app data should be syncedeven among
>    the different browser environments.
>
> 2.  In-app Data Sync
>
> We can be grouped in below
>
>
>    - Documents,  including in-app specific settings or things like SMS,
>    call history, alarms, etc.
>    - Files, such as photos, music and other media.
>
> Two proposals for in-app data sync, not finalized yet.
>
>
>    - Generic storage and storage provider proxy
>
> The Cloud Services team has been working on a generic storage service to
> allow 3rd party apps to store andsynchronize arbitrary data, attached to
> a Firefox account. They've also supported the idea of having an
> intermediate service that would act as a proxy for different storage
> providers.
>
>
>    - Universal Storage API and Virtual Storage Interface (Cloud Storage)
>
> It is a mechanism to support resource accessing on user’s cloud storage
> for web apps
>
> A. General interface for cloud storage: We want to provide a general
> interface for web app developer to access different cloud storage. It means
> developer no need to maintain different cloud storage support in their apps
> anymore.
>
> B. Cache mechanism: We also provide the cache mechanism to speed up the
> file accessing.
>
> C. Cloud storage plugin system: This is a system to support storage
> providers who can apply their storage service on FirefoxOS.
>
> In Whistler, we will have a session for Data Sync and Cloud Storage. feel
> free to walk-in and contribute your thought :D
>
> Date/Time: 6/23 Wed. 1-3pm
> Venue: Westin - Alpine B
>
>
> Thank you so much!
>
> Aaron Wu
> Engineering Project Manager, Mobile Device
> Mozilla Corporation
> cell: +886-955-361-456
> email: [email protected]
> skype: waaron2000
>
>
_______________________________________________
dev-b2g mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-b2g

Reply via email to