Soutenez-nous
Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Invité de passage
    Homme Profil pro Manu
    Directeur technique
    Inscrit en
    janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Nom : Homme Manu
    Âge : 35
    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 : 1
    Points
    1

    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 éclairé
    Inscrit en
    mai 2006
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : mai 2006
    Messages : 285
    Points : 394
    Points
    394

    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 Confirmé Sénior
    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    4 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 4 759
    Points : 6 523
    Points
    6 523

    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

  4. #4
    Invité de passage
    Homme Profil pro Manu
    Directeur technique
    Inscrit en
    janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Nom : Homme Manu
    Âge : 35
    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 : 1
    Points
    1

    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
    Invité de passage
    Homme Profil pro Manu
    Directeur technique
    Inscrit en
    janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Nom : Homme Manu
    Âge : 35
    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 : 1
    Points
    1

    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 Confirmé Sénior
    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    4 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 4 759
    Points : 6 523
    Points
    6 523

    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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •