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

Conception Web Discussion :

Choix d'un langage web pour communiquer avec d'autres langages


Sujet :

Conception Web

  1. #1
    Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Février 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Février 2007
    Messages : 103
    Points : 64
    Points
    64
    Par défaut Choix d'un langage web pour communiquer avec d'autres langages
    Bonjour.

    Je suis étudiant et connais bien le php. Actuellement en stage dans un labo,
    je dois réaliser une application web qui devra faire appel à des programme écrits dans d'autres langages (java et c++ essentiellement).
    En sachant que le projet risque de devenir important (nombreuses connexions simultannées), je me demande vers quelle technologie me tourner :

    D'un coté j'ai php que je connais assez bien mais avec lequel je ne sais pas trop comment faire des appels aux autres applications.

    De l'autre il ya java avec les jsp et servlets que je connais pas. Mais avec lequel j'ai pu lire que le déploiement serait plus facile.

    Avez vous des conseils ?

    D'avance merci

  2. #2
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    La communication entre programmes a beaucoup évolué ces dernières années...

    Ce qui se fait de mieux, aujourd'hui, ce sont des échanges de messages en XML, par SOAP idéalement, au dessus d'HTTP.

    Par cette technique, peu importe que l'application avec laquelle on dialogue soit locale ou distante, écrite dans le même langage ou non.

    Sinon, on retombe dans les solutions d'antan : échanges de fichiers, lancement en mode commande,... des horreurs !

    Dans un contexte où les autres applications existent déjà, il faut bien sûr évaluer leurs capacités à communiquer pour faire son choix mais, encore une fois, si elles peuvent évoluer, une seule vraie solution : XML avec SOAP.

    Mais peut-être que vos contraintes sont qu'il n'y aura, en fait, à la fin, qu'une seule application. Dans ce cas, adopter Java serait assurément plus sain et plus professionnel car l'éparpillement entre plusieurs langages n'est vraiment pas raisonnable pour l'évolutivité et la maintenance.
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 343
    Points : 392
    Points
    392
    Par défaut
    +1 pour XML, il faut dans le cas des interopérabilités des applications séparer les données de leurs représentations. D'autant plus que tu trouveras dans tous les langages que tu cites les classes de parsing adequat.

  4. #4
    Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Février 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Février 2007
    Messages : 103
    Points : 64
    Points
    64
    Par défaut
    Mais peut-être que vos contraintes sont qu'il n'y aura, en fait, à la fin, qu'une seule application. Dans ce cas, adopter Java serait assurément plus sain et plus professionnel car l'éparpillement entre plusieurs langages n'est vraiment pas raisonnable pour l'évolutivité et la maintenance.
    L'éparpillement est déjà là (j'ai trouvé du fortan ).

    En fait ce qu'il me fait le plus peur c'est l'interaction entre ces logiciels.
    J'ai commencer à regarder soap, je comprends a peu près comment ça marche du côté php; mais quid de l'autre coté ?

    Prenons l'exemple suivant :
    1-> le client va sur le site et écrit son nom.
    2-> l'application que je dois développer récupère le nom (facile)
    3-> l'envoi a un programme écrit par ex en cpp
    4-> celui-ci réalise un traitement et renvoi une réponse à mon appli
    5-> mon appli transmet la réponse au client.

    Les points 3 et 4 me font soucis.
    Je peux générer avec php le xml suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
      <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
      <SOAP-ENV:Envelope
       SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
       xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
       xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
       xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
       xmlns:xsd="http://www.w3.org/1999/XMLSchema">
    	<SOAP-ENV:Body>
    		<ns1:programme_cpp
    		 xmlns:ns1="urn:programme_cpp">
    			<nom xsi:type="xsd:int">chaine quelconque</nom>
    		</ns1:programme_cpp>
    	</SOAP-ENV:Body>
      </SOAP-ENV:Envelope>
    Mais qu'est ce que j'en fais ensuite ? Je l'envoie où et comment ? Comment le programme cpp détecte qu'il a quelque chose à faire ?
    Et puis comment ce dernier renvoi la réponse ?

  5. #5
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Effectivement, c'est là que ça se corse !

    Il faut un serveur HTTP pour réceptionner le message SOAP. Un serveur tout fait, là, ce serait de l'artillerie lourde, et pour le cpp il y aura encore le problème de couplage... Par contre, se faire un micro-serveur HTTP n'est vraiment pas compliqué, surtout si l'on se fixe des limites comme un seul client l'un après l'autre : il suffit d'écouter un(e) socket, de regarder les lignes d'entête (très simple à analyser en cpp), de lire le message lui-même (en POST) et de retourner la réponse selon le même principe de codage.

    J'ai codé moi-même un petit serveur HTTP multi-clients en C# (http://www.agencexml.com/txs/fr/) à partir d'exemples trouvés sur Internet et ce n'est vraiment pas difficile ! Et après, c'est royal...
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  6. #6
    Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Février 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Février 2007
    Messages : 103
    Points : 64
    Points
    64
    Par défaut
    Hum ça veux dire que je ne pourrai pas utiliser le serveur web déjà présent (apache) et que je dois en coder un dans mon application ?
    En fait je devrais a chaque fois réécrire un micro serveur http pour chaque application quelque soit son langage.

    Si je code mon site en java ça sera donc pareil ?

    Est-ce un moyen propre et qui ne posera pas trop de problèmes dans le futur ?

  7. #7
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Non, si vous codez en PHP, vous pourrez directement émettre et recevoir des messages SOAP grâce notamment à Apache.

    Le problème se pose pour les autres applications n'étant pas sur le Web, celles en cpp ou en fortran (là, c'est désespéré, je crois,...). Si on les "connecte", on obtient justement quelque chose de très évolutif puisqu'elles pourront être réécrites plus tard sans tout casser autour.

    Quant à la pérennité de PHP/Java... vaste débat sur lequel je ne m'aventurerai surtout pas ! Justement le XML est fait pour en faire abstraction !
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  8. #8
    Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Février 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Février 2007
    Messages : 103
    Points : 64
    Points
    64
    Par défaut
    Excusez moi, je me suis mal exprimé; je voulais dire que je ne pouvais pas utiliser apache comme serveur web pour ces applications non-web.
    Mais bien sûr je le garde pour le php.

    Est-ce que les applis cpp retournent des résultats que votre appli doit attendre pour continuer ?
    Elles doivent traiter les données qu'envoient les clients et leur afficher un diagnostique. Donc je dirais oui.

    Cela signifie que si j'ai 3 applications différentes à appeler je devrais créer 3 serveurs qui écoutent sur trois ports différents ?

  9. #9
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Oui, un port chacun, ça s'impose...

    Bien sûr, il y a du code commun et, pour le reste, ce n'est pas trop compliqué puisqu'unitaire !

    Trêve d'exagération... SOAP est peut-être lui-même de l'artillerie lourde pour votre besoin et beaucoup de ses détracteurs disent, à juste titre, que l'on peut se contenter d'envoyer les paramètres en GET ou en POST comme pour un formulaire HTML. Ce sera moins évolutif mais, pour une première version...
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  10. #10
    Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Février 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Février 2007
    Messages : 103
    Points : 64
    Points
    64
    Par défaut
    Ok, je vous remercie.

    P.S.: En ce qui concerne la question php - java (servlets/jsp) ; je me demandais si java (que je ne connais pas du tout) avait plus de faciliter pour communiquer avec des programmes externes.

  11. #11
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Je dirais que Java étant un langage plus à la base que PHP, il n'y a aucune raison pour que ce soit plus simple, bien au contraire.
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  12. #12
    Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Février 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Février 2007
    Messages : 103
    Points : 64
    Points
    64
    Par défaut
    Bonjour.

    Je reviens sur ce sujet aujourd'hui car, une contrainte apparait.
    Je dois manipuler des données confidentielles qui ne doivent pas être interceptées.

    Coder un serveur micro serveur HTTP est tout a fait réalisable mais je n'ai aucune idée pour le "transformer" en https.

    Des idées ?

Discussions similaires

  1. Réponses: 10
    Dernier message: 15/04/2015, 20h36
  2. Web service pour communiquer avec jBPM
    Par Invité dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 26/02/2009, 11h40
  3. Réponses: 1
    Dernier message: 04/12/2007, 19h49
  4. Réponses: 7
    Dernier message: 06/08/2007, 19h28
  5. Réponses: 2
    Dernier message: 17/03/2006, 09h26

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