Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Général Conception Web
Général Conception Web Forum d'entraide sur les choix technologiques. Avant de poster : Cours Dév. Web, FAQs Dév. Web, Sources Dév. Web
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/04/2007, 16h45   #1
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 103
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 103
Points : 27
Points : 27
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
hpavavar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 08h43   #2
Membre Expert
 
Avatar de alain.couthures
 
Inscription : avril 2007
Messages : 889
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : avril 2007
Messages : 889
Points : 1 061
Points : 1 061
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.
alain.couthures est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 08h49   #3
Membre éclairé
 
Inscription : juillet 2003
Messages : 338
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 338
Points : 339
Points : 339
+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.
tatareau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 09h56   #4
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 103
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 103
Points : 27
Points : 27
Citation:
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 :
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 ?
hpavavar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 10h10   #5
Membre Expert
 
Avatar de alain.couthures
 
Inscription : avril 2007
Messages : 889
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : avril 2007
Messages : 889
Points : 1 061
Points : 1 061
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...
alain.couthures est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 10h16   #6
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 103
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 103
Points : 27
Points : 27
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 ?
hpavavar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 10h24   #7
Membre Expert
 
Avatar de alain.couthures
 
Inscription : avril 2007
Messages : 889
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : avril 2007
Messages : 889
Points : 1 061
Points : 1 061
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 !
alain.couthures est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 10h32   #8
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 103
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 103
Points : 27
Points : 27
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.

Citation:
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 ?
hpavavar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 10h35   #9
Membre Expert
 
Avatar de alain.couthures
 
Inscription : avril 2007
Messages : 889
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : avril 2007
Messages : 889
Points : 1 061
Points : 1 061
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...
alain.couthures est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 10h39   #10
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 103
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 103
Points : 27
Points : 27
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.
hpavavar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 10h43   #11
Membre Expert
 
Avatar de alain.couthures
 
Inscription : avril 2007
Messages : 889
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : avril 2007
Messages : 889
Points : 1 061
Points : 1 061
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.
alain.couthures est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2007, 10h52   #12
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 103
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 103
Points : 27
Points : 27
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 ?
hpavavar est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h20.


 
 
 
 
Partenaires

Hébergement Web