2014-06-12 3 views
0

Je suis en train de développer un mécanisme pour synchroniser les données avec l'application & serveur, comme Google Drive/Dropbox pour l'une de mes application Android où les données sont stockées localement sur l'appareil et je voudrais pour synchroniser les données avec le serveur.Sync mécanisme comme Google Drive dans Java/Android

Ways pensé -

1) Observateur qui recherche le changement et appel service Web

2) Service d'arrière-plan qui fonctionne en arrière-plan et vérifier les changements

3) Régler l'alarme qui vérifie en particulier temps et synchroniser toutes les données avec le serveur

Je n'ai pas commencé à quelle option aller, je voudrais obtenir des experts voir à ce sujet et comme pour obtenir quelques conseils afin que je puisse réaliser le mécanisme de synchronisation dans le meilleur poss façon pratique pour mon application.

Toutes les suggestions sont les bienvenues.

Répondre

2

En pensant sur la même ligne que vous l'avez été, l'objectif devrait être de parvenir à un équilibre entre le nombre de fois que le serveur est interrogé pour le même ensemble d'informations ET la cohérence des données. Pour cela, je voudrais envoyer un message GCM de mon serveur à l'appareil pour lequel les données sur le serveur ont changé, je voudrais maintenir un compte pour ces messages de mise à jour (aucune notification générée). Si ce nombre dépasse la valeur minimum-threshold-count-value, j'appelle immédiatement un UPDATE. Ou sinon, si ce compte est toujours inférieur à la valeur de comptage de seuil, pendant une certaine période, que j'appellerais la période d'attente de seuil, alors j'appelle aussi une MISE À JOUR.

La commande UPDATE utiliserait des adaptateurs de synchronisation et des services. This link explique ses bases.

Espérons que cela prouve être utile!

1
...so that I can achieve the sync mechanism in best possible way for my app 

Eh bien, le mécanisme BEST dépend complètement du type d'application que vous développez. De plus, vos options 1 et 2 me semblent très similaires, sauf quelques changements d'implémentation. Cependant, à quelle fréquence les données de votre appareil changent, cela compte également beaucoup. Si vous avez un mécanisme d'authentification, vous pouvez configurer la synchronisation, au moment où vous vous connectez à votre application. Comme dans le cas de données confidentielles, la synchronisation devrait se faire immédiatement.

Si les données sont bien gérées en fonction de l'authentification et de l'autorisation basées sur des rôles utilisateur, vous devez également prendre en charge la synchronisation entre elles. Par exemple, un utilisateur a mis à jour une entité qui n'est pas encore synchronisée et un autre utilisateur essaie de la mettre à jour, puis le premier utilisateur voit ses modifications ne sont pas synchronisées ou ont été perdues. Le meilleur moyen (ce qui signifie avoir le moins d'inconvénients) pour ce faire serait de synchroniser le déclenchement à un intervalle de temps donné OU à chaque heure de connexion. (toujours comme je l'ai dit, cela dépend de votre application).

Espérons que cela effacerait tout ou partie de vos doutes.

+0

Ajout de la même réponse, comme précédemment, par erreur wiki communautaire sélectionné. Désolé pour le dérangement. :-) – Ved