IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Bibliothèque/Architecture pour une application de partage type multicast


Sujet :

Android

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 4
    Points : 6
    Points
    6
    Par défaut Bibliothèque/Architecture pour une application de partage type multicast
    Bonjour alors je vous la fait courte, je voudrais implémenter une appli android qui devrais contenir également un service de partage de contenu, comme une sorte de file d'actualité facebook ou twitter en quelques sortes (je ne les reprends ici que pour l'exemple).
    J'ai déjà penser a une méthode un peut barbare je l'avoue et c'est pour cela que je cherche des technique qui optimisent le processus ou des librairie qui facilites la tache, de base j'avais penser a une api sur le serveur qui vérifie les nouveauté sur les tables de la BDD en fonction de chaque client et, le cas échéant met un flag sur le compte du dit client, ce client vérifie donc simplement a intervalle régulier ce flag, et si celui-ci est positionner alors il télécharger les nouveauté (cela dans l'objectif d'alléger le trafic réseau). Mais déjà se trace beaucoup trop de défaut pour cette méthode, la plus flagrante étant la charge de travail sur le serveur qui devras vérifier un a un les nouveauté et en informé tout les clients qui sont abonné a celui qui as poster l'actualité. Peut être qu'un applet en multi-thread pourras alléger cette charge mais cela reste pas très optimiser comme travail..
    Des remarques des conseils des propositions tout est bienvenue.. pitié !
    Merci a tous et bonne journée!

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Salut !

    Oui en fait c'est exactement l'inverse qu'il faut faire à mon avis. Ce qu'on appelle aussi du "push". Mais bon... reprenons....

    Je pense que le "flag" est de toute manière inutile. Voici trois méthodes possibles (j'ai donné le nom que je pensais le plus juste, mais il existe des variantes )

    Méthode "Pull":

    Rien de spécial n'est fait quand un nouvel article arrive.
    Le client se connecte à intervalle régulier, et demande au serveur tous les nouveaux articles depuis sa dernière connexion et qui pourraient l’intéresser.
    La réponse est simplement les articles (HTTP code 200), ou rien du tout si il n'y a rien de neuf (HTTP code 204).
    Pas besoin de passer des paramètres, l'utilisation du header "if-modified-since" de HTTP permet de rendre le truc encore plus simple d'usage, et surtout "proxyable".
    A noter qu'un index sur la date est fortement recommandé. Au pire, utiliser un "identifiant" d'article qui augmente toujours à chaque nouvelle publication, et utiliser cet identifiant comme référence au lieu de la date.

    Avantages: Facile à programmer. Charge principalement côté base-de-données (la requête qui va chopper les articles intéressant le client et plus récents qu'une date donnée).
    Inconvénients: Fréquentes connexions du client inutiles. Mise à jour complexe en cas de changement des centres d’intérêt du client.

    Méthode "Push-Pull":
    Quand un nouvel article arrive, une table est remplie avec tous les clients intéressés par l'article en question.
    Le client se connecte à intervalle régulier, et demande au serveur tous les nouveaux articles qu'il n'a pas encore et qui pourraient l’intéresser.
    La réponse est simplement les articles (HTTP code 200), ou rien du tout si il n'y a rien de neuf (HTTP code 204).
    Le serveur vide alors la table des "nouveautés" pour le client en question.

    Avantages: Facile à programmer. Charge principalement côté serveur (la requête en base de données qui va chopper les articles intéressant le client est très simple et la charge est plus côté serveur que côté base de donnée du coup). C'est intéressant parce que la partie "serveur" est vraiment la plus facile à "scaler" en cas de besoin de ressources.
    Inconvénients: Fréquentes connexions du client inutiles. Mise à jour complexe en cas de changement des centres d'intérêt du client. Gestion plus complexe des multi-

    Méthode "Push": (ma préférée !)
    Quand un nouvel article arrive, on regarde la liste de tous les clients intéressés par l'article en question.
    On leur envoi un message GCM (urgent ou pas, selon l'article ?) qui sera transmis par le système au client (au bon moment).
    Le message peut même contenir un bout de l'article histoire d'afficher une notification côté client à la reception du message GCM.
    Quand le client est "lancé", il ne se connecte et ne récupère que les articles reçus par notification.

    Avantages: Pas de connexion du client si rien de neuf. Charge principalement côté serveur au moment de la publication.
    Inconvénients: Plus complexe à programmer côté client.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 4
    Points : 6
    Points
    6
    Par défaut
    Bonsoir nicroman, merci beaucoup pour le temps pris pour me répondre, effectivement je n'avais pas penser a la chose comme ça, j'avais besoin d'être aiguillé! Je trouve aussi que la dernière méthode est meilleur, plus propre et moins gourmande en terme de BDD, la complexité du travail n'est pas un problème! Avec ça je peut déjà avoir une bonne base pour faire des recherches et planifier le tout! Merci encore pour les conseils!

Discussions similaires

  1. Architecture pour une application
    Par Tatiana59 dans le forum Développement iOS
    Réponses: 1
    Dernier message: 18/12/2012, 11h15
  2. [Cocoa] Architecture pour une application duplicable
    Par look67 dans le forum Apple
    Réponses: 0
    Dernier message: 12/10/2011, 16h22
  3. Réponses: 0
    Dernier message: 25/07/2011, 17h45
  4. Réponses: 18
    Dernier message: 11/05/2007, 18h44
  5. dossier partagé pour une application ?
    Par leam69 dans le forum Windows Serveur
    Réponses: 5
    Dernier message: 16/02/2007, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo