2013-03-13 4 views
0

Sera la construction d'une application qui va tirer vers le bas des objets JSON à partir d'un service Web, dans les centaines de petites, chaque relativement petit disons 20kb chacun.Stockage des objets JSON: SQLite vs sérialisation sur le disque

L'application ne fera pas grand-chose d'autre que d'afficher ces POJO, en téléchargeant ceux qui sont nouveaux et mis à jour lorsqu'ils sont disponibles et en supprimant ceux qui sont obsolètes. Quelle serait la méthode préférée pour le stockage persistant de ces objets? Je suppose que les deux principaux prétendants les stockent dans une base de données SQLite, peut-être en utilisant ORMLite pour réduire la surcharge, ou juste sérialiser les objets sur disque, probablement dans un gros fichier et utiliser un analyseur JSON très rapide.

Des idées quelle serait la méthode préférée?

Répondre

1

Vous pouvez envisager d'utiliser CouchDB en tant que cache entre le client mobile et votre service Web.

CouchDB devrait fonctionner sur un service sur Internet, en mettant en cache les objets du service Web. Sur le client, vous pouvez utiliser TouchDB-Android: https://github.com/couchbaselabs/TouchDB-iOS/wiki/Why-TouchDB%3F. TouchDB-Android peut se synchroniser automatiquement avec CouchDB inatance fonctionnant sur Internet. L'application elle-même accéderait alors uniquement à TouchDB. TouchDB détecte automatiquement s'il y a une connexion Internet ou pas, de sorte que votre application continue de fonctionner même sans Internet.

Avantages: - Mise en cache d'appels JSON - Le client reste connecté à Internet, synchronisé automatiquement lorsque la connexion Internet est de nouveau opérationnelle. - Prend en charge votre service Web et vous pouvez le mettre à l'échelle.

Nous avons utilisé cette configuration auparavant pour permettre aux logiciels Android de fonctionner de manière transparente, même lorsque la connexion Internet diminuait fréquemment et que le service auquel nous accédions était assez lent et avait une capacité limitée.

1

Un dbms tel que SQLLite devrait être fourni avec des fonctionnalités d'interrogation, d'indexation et de tri (et d'autres fonctionnalités DBMS SQL standard), vous devriez envisager d'en avoir besoin. Combien d'objets prévoyez-vous avoir dans l'environnement de production? Si l'on dit qu'une approche de sérialisation de disque d'un million peut ne pas évoluer.

+0

Les objets seront affichés dans différentes vues, c'est-à-dire par catégorie, par date, de sorte qu'il faudra effectuer un certain type d'interrogation et de tri. Je suis sûr que ce ne sera pas un problème pour l'une ou l'autre mise en œuvre cependant. Pour le type d'application im design, il ne peut y avoir plus de quelques centaines d'objets – KingFu

Questions connexes