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 :

framework pour web service


Sujet :

Réseau/Web Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 16
    Points : 22
    Points
    22
    Par défaut framework pour web service
    hello,
    j'ai une application web avec django qui tourne.
    On veut maintenant ajouter des webservices pour aller poster ou recuperer des infos, tout ca bien sur sous https.
    On ne veut pas mettre ce ws sur django, simplement pour réduire la charge sur le serveur.
    On aura donc une machine spécifique au ws et traitement de données.

    j'hesite donc la entre plusieurs solution : flask et pyramid, bottle me paraissant un peu limité quand la charge est trop énorme (taux d'erreurs croissants selon mes lectures) et Django etant AMA trop gros pour ce genre de service.

    Une idée, suggestion ou retour d'XP ?

    merci

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par gorjuce Voir le message
    hello,
    ...
    Une idée, suggestion ou retour d'XP ?

    merci
    Bonjour,

    Voir ici:http://sametmax.com/utiliser-cherryp...amework-leger/

    Prenez le temps de lire les commentaires de l'article. La solution présentée permet d'utiliser bottle servi par Cherrypy, dans les commentaires ils parlent aussi de twistted.

    Bonne journée

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Quelle serait la charge attendue?
    S'agit-il de Web services SOA ou REST?

    Quelque part, le goulot d'étranglement sera plutôt côté entrées sorties disques: si vous voulez des "performances", il faudrait pouvoir:
    - mettre ces données en cache ("mémoire" => beaucoup de RAM et un gestionnaire de cache (qui ne sera pas Python) à intégrer au service Web).
    - gérer la cohérence entre les sessions et le cache,
    - pouvoir avoir une distribution de la charge sur plusieurs cpu,

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

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 16
    Points : 22
    Points
    22
    Par défaut
    merci phi65 pour le post, c'est trés instructif. Le probleme avec le web c'est qu'on trouve de tout concernant les avis et que bien souvent y'a un ou deux gars des devteam qui viennt dire que leur solution tabasse grave du poney.
    Sur un post dont je retrouverai peut etre l'url plus tard, j'avais vu qu'il fallait plutot eviter cherrypy et utiliser gevent ou uwsgi, a voir donc

    @wiztricks tu poses les bonnes questions
    La charge, aucune idée pour le moment on est encore en phase R&D mai le projet se concretise et on peut esperer monter sur +10k connections (si dieu le veut )
    On essaie en parrallele de voir pour partir sur de l'asynchrone pour éviter de bloquer trop de ressources, mais dans le cas on à beacoup moins d'options.

    Quand tu parles de gérer la cohérence entre les sessions et le cache tu veux dire quoi ?

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Ca ne dit pas quel type de web service: rest peut être simple, SOA demandera "plus".

    Citation Envoyé par gorjuce Voir le message
    Quand tu parles de gérer la cohérence entre les sessions et le cache tu veux dire quoi ?
    Si un client modifie les données, il faudra que les autres clients puisse voir la modification (au bout d'un certain temps). Il faut écrire sur les disques (la base de donnée), mettre à jour le cache partagé et celui des autres sessions.

    Côté dév, on fait rien (c'est compliqué: vaut mieux utiliser ce qui fonctionne et on a le choix) mais il faudra un framework(*) qui va intégrer ces différents niveaux de façon "cohérente".
    (*) une intégration de bout en bout entre services http(s), session, cache, base de données. Le code de l'application (à écrire/développer) sera dans la boite "session".

    10K connections est une indication sur le nombre de clients.
    Mais l'intervalle de temps (par seconde, minute, heure) sera plus dimensionnant.

    Il faudrait avoir aussi une idée des traitements correspondants: entre rien et balayer de grosses tables la charge ne sera pas la même sur la chaîne session/cache/bdd.
    Et s'il faut ajouter des serveurs dans des couches pour améliorer les temps de réponses, tous les frameworks ne sont pas "égaux" côté flexibilité.
    Il y a peut être aussi des questions de disponibilité et de tolérance au sinistre à intégrer.

    Cela fait pas mal de sujets à intégrer dans le choix du framework.

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

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 16
    Points : 22
    Points
    22
    Par défaut
    merci pour les indications.

    C'est assez difficile de donner un ordre d'idée du nombre de user simultanés.

    Pour faire simple on a pas un gros truc a pondre, globalement on va avoir :
    - le.site.com/login/les-params-qui-vont-bien
    - le.site.com/add/les-datas-a-ajouter-dans-un-nosql
    - le.site.com/get/version-du-logiciel

    C'est vraiment la un exemple de ce qu'on pourrait être amené a designer comme url, rien de fait, encore une fois on y reflechit.

    Pour l'archi, on serait ptet plutot sur du rest, sans aucune certitude

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Pour l'archi, on serait ptet plutot sur du rest, sans aucune certitude
    C'est un point "structurant".

    En fait ReST étant relativement simple, avec un framework qui se respecte sa mise en œuvre sera de la plomberie (quelques fichiers de scripts à éditer mais ce sera plutôt de la configuration que du code).

    Le seul point délicat sera côté modèle de données (persistance).
    Changer = remettre l'existant d'équerre.

    Mais côté framework (a part les tests), c'est sans soucis.
    => démarrer avec celui qui vous convient le mieux, et changer plus tard si nécessaire est "jouable".

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

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 16
    Points : 22
    Points
    22
    Par défaut
    merci beaucoup pour tes réponses.

    Effecivement pour les données, c'est un point crucial pour nous, avec deux types disctinct de données et d'utilisation :
    - utilisation du model de nos Users definit dans notre application web, afin de gérer le login et les autorisations
    - enregistrement des données sur du NoSQL

    Donc oui c'est crucial pour nous, on va voir comment on va gérer ca.
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme d'input/output XML pour Web service Java - AXIS2
    Par 2beornot2be dans le forum Services Web
    Réponses: 1
    Dernier message: 06/08/2009, 11h59
  2. Créer client pour web services sous JWSDP
    Par JauB dans le forum Services Web
    Réponses: 0
    Dernier message: 16/01/2009, 13h31
  3. help pour web service et ldap
    Par ibtissamr dans le forum Services Web
    Réponses: 3
    Dernier message: 01/07/2008, 19h01
  4. documentation pour web services
    Par coax81 dans le forum Développement
    Réponses: 2
    Dernier message: 04/09/2007, 20h31
  5. [WebService]Fichier Java et WSDL associé pour Web Services
    Par P4_le_requin_breton dans le forum Services Web
    Réponses: 9
    Dernier message: 23/02/2004, 12h55

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