Précédent   Forum du club des développeurs et IT Pro > Autres langages > Python & Zope > Réseau/Web
Réseau/Web Forum d'entraide sur Python et le réseau/Web
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 26/02/2013, 14h39   #1
manuaarts
Invité de passage
 
Homme Manu
Directeur technique
Inscription : janvier 2008
Messages : 9
Détails du profil
Informations personnelles :
Nom : Homme Manu
Âge : 34
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
manuaarts est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2013, 14h14   #2
Drawingrom
Membre éclairé
 
Inscription : mai 2006
Messages : 258
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 258
Points : 348
Points : 348
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.
Drawingrom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2013, 12h59   #3
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 739
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 739
Points : 4 581
Points : 4 581
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
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2013, 11h43   #4
manuaarts
Invité de passage
 
Homme Manu
Directeur technique
Inscription : janvier 2008
Messages : 9
Détails du profil
Informations personnelles :
Nom : Homme Manu
Âge : 34
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
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 ?
manuaarts est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2013, 11h48   #5
manuaarts
Invité de passage
 
Homme Manu
Directeur technique
Inscription : janvier 2008
Messages : 9
Détails du profil
Informations personnelles :
Nom : Homme Manu
Âge : 34
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
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 ?
manuaarts est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2013, 14h22   #6
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 739
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 739
Points : 4 581
Points : 4 581
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.

Citation:
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
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 14h44.


 
 
 
 
Partenaires

Hébergement Web