Forum général.cherche-logiciel Comment avoir LE serveur SOAP/WSDL qui poutre ??

Posté par .
Tags : aucun
0
9
sept.
2006
Bonjour a tous,

Je veux mettre en place un web service SOAP avec contrat WSDL qui soit le plus performant possible. Je precise qu'il n'y aura que 2 methodes mais quel devront repondre a terme a plus de 10 000 requetes par jour.

Je l'ai deja developpe en PHP5/Apache2 en utilisant la librairie NuSOAP. La mise en place est tres simple et ca marche tres bien mais j'ai peur que ca ne soit pas la meilleure methode...

Je ne parle pas du cote hebergement, ce n'est pas mon soucis; je parle plus du cote logiciel : en googlelisant je suis tombe sur des solutions apparement beaucoup plus pro comme le duo Tomcat5/Axis1.4.

J'aimerais bien me lancer sur Axis mais j'aimerais savoir si c'est vraiment la solution la plus performante ? Est ce que le java est vraiment la meilleure solution ?

Merci !

PS: le langage de programmation n'est pas un probleme
  • # Tomcat5/Axis2.0

    Posté par . Évalué à 1.

    Salut,

    Le couple Tomcat5.x /Axis2.0 est très performant. Ceci dit, un soft est performant lorsqu'il est bien écrit et qu'il respecte les règles de programmation ainsi que les contraintes de l'environnement dans lequel il tourne (reglage JVM, perf SGBDR, etc)

    Si tes couches sont mal séparée (archie 3 tiers ou +) le resultat sera médiocre même sur des serveurs "betonnés".

    J'utilise Tomcat5.12 + Axis 2 et je ne m'en plains pas.

    Bon courage.
  • # dix mille ?

    Posté par . Évalué à 2.

    Tu as pas oublié un chiffre ?
    Parce qu'à 10'000 requêtes par jour, en prenant un cas extrême où tu as en fait 15000 requêtes réparties sur une plage horaire réduite de 6h, si je calcule bien ça fait du 15000 / (6*60) = 41 requête par minute. Ce qui parait pas beaucoup. Est-ce que tu prévois des périodes avec des grosses charges ?

    Sans rien connaître de ton service, même s'il y a des pics de charge, j'aurai tendance à dire que ce n'est pas sur la couche de transport qu'il pourrait y avoir un problème de performance, mais ça dépend complètement de ton application, et comme tu ne donnes pas beaucoup de détail, c'est difficile de donner un diagnostic.

    Sinon, il faut voir que la réponse dépend aussi du matériel, sur un petit serveur avec peu de RAM, Apache2/PHP généralement sera plus performant, mais avec plein de mémoire ça change la donne.

    A ta place, avant de te lancer sur un développement qui n'est peut-être pas nécessaire, je testerais la charge avec JMeter et si ça ne va pas, j'essaierai déjà de tuner mon serveur apache, et je ferais ensuite un test sous tomcat si je continue à ne pas être satisfait des performances.
    • [^] # Re: dix mille ?

      Posté par . Évalué à 1.

      Merci pour vos reponses, voila quelques precisions :
      Il y aura effectivement des pics de charge et de plus les requetes peuvent se faire sur une taille variable de donnee (envoyer un fichier csv qui contient 10, 42 ou 5000 requetes par ex).
      De plus le service devra effectuer un traitement sur les donnees, donc il ne s'agit pas d'un simple proxy et la charge sera d'autant plus importante.

      Niveau materiel, la machine sera un serveur pro (bi proc, plein de ram et tout le tralala) donc pas de soucis a ce niveau la ;)

      Tomcat/Axis me seduit bien pour tous ses outils d'administration mais bon ca me parait beaucoup mois 'user friendly' ...

      Cela dit c'est justement tout mon probleme de savoir si ca vaut le coup de mettre en place un Tomcat pour juste 1 webservice ??
      Sinon est ce que quelqun'un sait si Ruby On Rails peut faire serveur SOAP ?

      Merci !
  • # Et pourquoi avec Axis c++ ??

    Posté par . Évalué à 1.

    Je viens de me rendre compte en lisant wikipedia que axis est aussi disponible comme lib c++; est ce que c'est bien ??

    Apparement on peut meme utiliser Axis tout seul, ie sans Tomcat.
    Mais je vois pas du coup que peut apporter tomcat si axis peut tourner tout seul ?
  • # Gsoap + fast cgi

    Posté par . Évalué à 4.

    Solution extreme :

    Realiser le serveur en c++ avec gsoap et fastcgi.

    J'ai realisé de tels cgis qui consultent une base Sybase (connexion permanente, requette tres simple)

    on est descendu jusqu'a 4ms par appels. soit 250 appels par seconde soit 15 000 requetes par minute avec une machine d'il y a 2 ans ( Intel Xeon)

    Une autre equipe a utilisé axis+ websphere. Elle ne peut pas descendre en dessous de 15ms meme avec des super machines dernier cri.
  • # Tomcat5/Axix2

    Posté par . Évalué à 1.

    Bonjour à tous,

    10.000 par jour ce n'est rien. Je bosse sur une plateforme qui prend
    1.95Millions de requete par jour sur 3 serveurs (Tomcat/Axis) + fille
    JMS avec ActiveMQueue. Ca fait ~ 390 Millions par mois. La charge
    est 60% de 10h à 19h. le reste s"étale. Le load balancing est assuré
    par un apache en entrée. (je ne sais pas comment il est configuré d'ailleurs ....)

    Toujours est il que ton soft devra être écrit dans les règles de
    l'art. sinon .... badaboom.

    Pour tester la charge, tu peux utiliser JMeter (Apache) en installant
    sur +sieurs machines. Voir même, demander à ce qu'on prenne 5 min
    pour tester ca en condition réelle.

    Pense à faire des objects en JNI au pire si t'as besoin de "grosses perfs"

    Que veux tu offrir comme service (si C pas indiscret ) ?

    Bye à tous.
  • # ca se precise :)

    Posté par . Évalué à 1.

    Bon encore une fois desole pour le nb de requetes par jour que jai decidement mal choisi :P

    Je ne peux pas vraiment reveler la vrai nature du projet mais il sagit de donner acces a 2 services qui vont eux meme attaquer d'autres serveur SOAP a l'exterieur et qui retournent un tableau de proprietes avec leur valeurs respectives. Les services devront aussi acceder a une base de donnees SQL (Postgre ou Mysql je nai pas encore choisi, dailleurs je suis aussi ouvert aux commentaires sur ce choix).

    Le tout doit tourner sur un linux (de preference).

    Le plus important a retenir c'est que le service doit etre le plus rapide possible, evolutif et robuste.

    Pour l'instant la solution gsoap+fast cgi me semble interessante :)

    Merci encore pour vos reponses !

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.