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

Réseau/Web Python Discussion :

Application multi-site, BDD partagée ! Help


Sujet :

Réseau/Web Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 8
    Points
    8
    Par défaut Application multi-site, BDD partagée ! Help
    Bonjour à tous,

    Je suis en train de développer une application python qui doit fonctionner dans plusieurs pays. J'ai un serveur linux, en France, qui fait tourner ma base de donnée mySQL.

    Pour l'instant mon application fait directement les requêtes à la bdd au travers d'internet et ça rame, surtout si l'application tourne sur une machine en Australie.

    Du coup en cherchant, j'ai commencé à comprendre qu'il fallait que je revois mon architecture pour aller vers une architecture 3-tiers.

    Donc si j'ai bien compris, il me faut une application qui tourne sur le serveur, et qui écoute les clients, et cette appli fait les requêtes mySQL et renvoie les données au client. La communication entre les clients et l'application sur le serveur se faisant avec un protocole comme XML-RPC (ou pas d'ailleurs... je cherche juste à comprendre)

    Je suppose que je ne suis pas le premier à devoir faire ce genre de choses, est-ce que vous pourriez me conseiller sur la bonne marche à suivre, les librairies/framework qu'il faut utiliser ? Qu'est ce qui existe déjà qui pourrait me simplifier le développement ?

    Merci d'avance pour vos idées, réponses, liens

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 290
    Points : 426
    Points
    426
    Par défaut
    Bonjour,

    Le plus simple est peut-être transformer ton client en appli web qui se connectera à ta base de données. Tu peux avoir une partie IHM avec des pages web consultées par les client et une partie API / web service si nécessaire (si par exemple tu veux continuer d'utiliser ton client).

    A mon avis le premier choix de framework pour faire de la web app en Python serait Django.

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,

    L'Australie est un pays à 20 000kms de la France.
    La vitesse de la lumière dans le cuivre et la fibre étant d'environ 200 000kms/s, çà fait un RTT minimal de 0.2 secondes.
    Un langage de programmation (et n'importe quel framework écrit avec) ne pourra que faire avec cette réalité du monde physique.

    La vraie question est "quels sont les temps de réponses attendus".
    Puis, il faudra trouver un design et des allocations de ressources pour y arriver.
    Exemple: pourquoi avoir une base de donnée centrale plutôt que des bases de données locales mises à jour tous les X secondes?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Drawingrom Voir le message
    Bonjour,

    Le plus simple est peut-être transformer ton client en appli web qui se connectera à ta base de données. Tu peux avoir une partie IHM avec des pages web consultées par les client et une partie API / web service si nécessaire (si par exemple tu veux continuer d'utiliser ton client).

    A mon avis le premier choix de framework pour faire de la web app en Python serait Django.
    Merci beaucoup pour cette réponse.
    En fait, si je ne fais pas directement une page web, c'est parce que depuis le client, les utilisateurs peuvent lancer des applications tierces, manipuler des fichiers etc. Du coup je ne peux pas faire le truc dans un navigateur. En tout cas ça m'aiguille bien pour déterminer la direction à prendre.

    Est ce que Django ne va pas être "surdimensionné" au final, puisque je vais juste me servir de lui pour faire passer mes requetes SQL en http ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,
    La vraie question est "quels sont les temps de réponses attendus".
    Puis, il faudra trouver un design et des allocations de ressources pour y arriver.
    Exemple: pourquoi avoir une base de donnée centrale plutôt que des bases de données locales mises à jour tous les X secondes?
    - W
    Merci beaucoup aussi pour cette réponse.
    Je n'ai pas vraiment un besoin énorme de vitesse, mais c'est toujours mieux quand une application est bien réactive. Effectivement, l'idée de "cloner" la base de donnée localement me parait excellente.

    J'aimerai que mon application soit facilement déployable, et j'ai peur que si il faut installer sur chaque machine client tout le nécessaire à la réalisation de cette idée ça risque d'être assez complexe.

    Et sinon, existe-t'il déja des systèmes de mirroring de base de données ?

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,

    Citation Envoyé par manuaarts Voir le message
    J'aimerai que mon application soit facilement déployable, et j'ai peur que si il faut installer sur chaque machine client tout le nécessaire à la réalisation de cette idée ça risque d'être assez complexe
    Je veux bien que vous vous posiez des questions mais à partir du moment ou vous déployez déjà une application Python sur les différents poste de travail, la question sera plutôt "comment packager le tout" pour ne pas avoir de conflits avec un existant "inconnu".
    Cà passe par des outils comme cx_freeze, vous n'êtes pas à un package prêt.

    Maintenant si on parle d'un script d'une centaine de lignes utilisant les bibliothèques Python livrées en standard. cx_freeze est surdimensionné et Python aussi.
    Une petite application +/- HTML5 n'a besoin que de s'assurer de la présence de navigateurs/versions.

    Et sinon, existe-t'il déja des systèmes de mirroring de base de données ?
    Bien sûr que çà existe mais est-ce une élément de solution?

    Votre problème n'est pas un problème de codage mais de répartition de la charge entre clients et le service (base de données) qu'ils accèdent via Internet pour assurer des temps de réponses acceptables.
    Tant que vous ne saurez pas "quantifier" ces temps de réponses (spécifiques à l'application) difficile de mettre en face les avantages/inconvénients de différentes solutions.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. application .net et BDD Mysql d un site web
    Par adib1988 dans le forum Accès aux données
    Réponses: 1
    Dernier message: 28/07/2011, 16h19
  2. Conception d'application multi-sites
    Par chtig dans le forum Décisions SGBD
    Réponses: 15
    Dernier message: 11/01/2007, 11h22
  3. Application en multi-site
    Par ameno_123 dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/12/2006, 18h11
  4. Application en multi-site
    Par ameno_123 dans le forum Bases de données
    Réponses: 1
    Dernier message: 30/11/2006, 17h56
  5. Développement d'une application multi-sites ?
    Par ChrisPM dans le forum Architecture
    Réponses: 7
    Dernier message: 09/11/2005, 13h22

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