2012-09-12 5 views
1

Je voudrais poser une question semi-théorique sur les services Web et l'architecture client-serveur.Comment utiliser les services Web?

J'ai un serveur avec une base de données avec environ 50 tables. Ce serveur contient même une table contenant des informations sur les utilisateurs associés aux clients. Chaque client a des associations avec un sous-ensemble de toutes les données de db. L'architecture définie implique que chaque client (fonctionnant sur l'application Android) appelant, avec une fréquence prédéfinie, un certain nombre de services Web, remplit la base de données locale, créant une copie de toutes les tables résidant sur le serveur sb, contenant le uniquement les informations relatives au client demandeur.

En outre, les données du côté serveur db peuvent changer, ce qui nécessite une synchronisation fréquente.

Considérant que l'application cliente peut être Imaginé comme un magasin application en ligne, devrait donc être navigation possible grâce à des fournisseurs, des articles, rendre une ordonnance, une décision ordonnant etc.

Alors, quand je parle remplir au sujet de la base de données locale Je veux dire les fournisseurs de magasins, les articles, etc., c'est-à-dire toutes les informations fournies au client demandeur. Est-il logique de remplir la base de données locale avec cette information?

Je pense qu'il est plus raisonnable d'appeler un service Web uniquement lorsque l'information est requise, et non de stocker des informations dans la base de données locale. Donc, la synchronisation n'est plus nécessaire.

Dites-moi ce que vous en pensez? Je vous remercie.

Répondre

3

Je ne connais RIEN sur le développement d'Android, mais j'ai beaucoup d'expérience dans l'utilisation des services Web et SOA. D'après mon expérience, en particulier lorsque le périphérique client a une puissance de stockage et de traitement limitée, toute la logique métier et la logique de données doivent être dans les services Web et l'application cliente utilisée uniquement pour afficher et appeler ces services. Comment vous mettez en œuvre c'est quelque chose que nous ne pouvons pas vous répondre. C'est différent sur chaque projet. La seule exception est lorsque vous devez absolument exécuter l'application sans être connectée. Dans ce cas, assurez-vous de connaître vos besoins spécifiques, et soyez très dilligent pour ne laisser subsister chez le client que les données dont vous avez absolument besoin et ne fournir que la logique métier dont vous avez absolument besoin lorsque vous êtes déconnecté.

(Cela aide à garder plus simple sécurité, ainsi - appareils perdus ou volés sont l'une des plus importantes sources de violations de données, de sorte que les données moins potentiellement sensibles sur l'appareil le mieux.)

Je ne sais pas Si c'est utile, mais je le ferais tout de suite.

+0

Merci beaucoup pour votre réponse. – GVillani82

0

Si votre application ne fonctionne que en ligne, alors OUI. Vous n'avez pas besoin de vous soucier de stocker les données dans la base de données et de les récupérer plus tard. Si votre exigence qui doit soutenir à la fois en ligne et hors ligne, alors vous devez aller avec la base de données.

Vous pouvez exécuter une tâche de service ou une tâche asynchrone ou des gestionnaires pour appeler le service Web à partir de l'application Android, de telle sorte que votre thread d'interface utilisateur ne soit pas bloqué.Si votre réponse est trop grande, alors vous devez probablement penser au niveau intermédiaire, de cette façon vous pouvez convertir la réponse SOAP en JSON qui serait plus facile pour le périphérique de traiter la réponse et la transmission réseau est plus rapide.

Je crois en fonction de vos besoins, il est assez bon pour supporter uniquement le mode en ligne ... Parce que les données peuvent varier si l'utilisateur n'utilise pas l'application pendant deux jours et se connecte

Questions connexes