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

Entrée/Sortie Java Discussion :

Communication entre deux programmes Java. http ? Rmi ? WS ? Autres ?


Sujet :

Entrée/Sortie Java

  1. #1
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2004
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2004
    Messages : 204
    Points : 103
    Points
    103
    Par défaut Communication entre deux programmes Java. http ? Rmi ? WS ? Autres ?
    Bonjour à tous,

    J'ai deux programmes Java qui doivent entrer en communication :

    1. Une application J2EE
    2. Un programme Java qui exécute un traitement

    L'appli J2EE doit appeler le programme Java en lui passant une map d'objets Java.
    Le programme Java retourne un fichier.

    Bon vous voyez, le traitement est assez simple.
    Du coup, je suis entrain de me demander quelle est la meilleure technologie à utiliser :

    1. HTTP (mettre le programme Java dans une Servlet). Mais pourquoi créer un contexte Web alors qu'il n'y en a pas besoin ?
    2. RMI. N'est-ce pas de la grosse artillerie pour pas grand chose ?
    3. WebServices. Pas trop la meilleure solution pour transférer des fichiers...
    4. Autres ?

    De part vos expériences, que me conseillez-vous ?

    Contrainte supplémentaire : il faudra que l'architecture mise en place supporte un système de Load Balancing.

    Merci pour vos avis éclairés.

  2. #2
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Perso le 1 (servlet coté serveur, n'importe quoi coté client) me semble la meilleure solution.

    Sur cette base, tu peux dériver soit un service web (on peut finasser sur les termes, mais il n'y a pas forcément un site web associé à une servlet) avec Rest ou autre.

    Le défaut est que cela t'oblige à mapper les objets ; il y a différentes techniques déjà prêtes comme Jaxb, ou si tes objets sont simples avec des Properties.

    Je préfère cette approche à RMI à cause que RMI utilise un port particulier, et que un jour ou l'autre tu te retrouves coincé avec les us et coutumes des responsables sécurité, qui laissent tout passer par le port 80 et rien ou presque par les autres, comprenne qui pourra. Il y a certes le RMI over HTTP mais là tu retombes pratiquement sur la solution 1.

    Tu peux également, sous l'empire de la dogme simplicité, considérer que le protocole est hyper simple et que le HTTP est trop lourd compliqué, et faire tout à l'arrache avec pas de protocole du tout ou quasi, mais un jour ou l'autre tu te retrouves coincé par des bugs bizarres ; au moins avec la solution 1 rien ou presque ne peut t'arriver de ce coté là.

    S'il s'agit juste de transférer des fichiers, tu peux également te baser sur un serveur FTP coté serveur.
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  3. #3
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2004
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2004
    Messages : 204
    Points : 103
    Points
    103
    Par défaut
    Merci pour ta réponse.

    Je vais en effet me diriger vers la solution 1. Servlet.
    Reste à voir comment passer mes objets Java en paramètre du post http

  4. #4
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Comme je t'ai dit, c'est le mapping ; à ce niveau là, tu peux même utiliser la sérialization, ou jaxb, ou etc tout est possible, l'imagination est au pouvoir !
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  5. #5
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2004
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2004
    Messages : 204
    Points : 103
    Points
    103
    Par défaut
    Cela m'ennuie tout de même d'utiliser une servlet Web pour un programme qui n'a aucunement besoin du contexte Web

    Solution 5. Communication Socket.
    Un avis la dessus ?

  6. #6
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Pour le mapping il y a tellement de choses à prendre à considération que, en l'état de ce que tu nous dis, il m'est difficile de te conseiller autre chose que Renseigne-toi à droite et à gauche !.

    Pour la requête HTTP, il faut utiliser HTTPClient. Le faire avec le JDK seul revient à faire une thèse. Mais cela dépend de tes outils de mapping, car il y a quelques fois des fonctions http avec (souvent basées sur httpclient, d'ailleurs).

    Coté serveur, tu peux utiliser jetty, si tu considères que tomcat est trop gros.
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  7. #7
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2004
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2004
    Messages : 204
    Points : 103
    Points
    103
    Par défaut
    Ah zut, tu as répondu pendant que je mettais à jour mon message.
    Merci pour les renseignements pour la solution servlet.

    Je t'invite à lire mon dernier message que j'ai donc édité. Cela concerne la solution "Socket" pour éviter de passer par un contexte web inutile.

  8. #8
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Oui, oui, j'ai vu j'ai vu

    Et bien, si le contexte web est inutile, quel est le problème ?... Par socket c'est très simple : tu ouvres ta socket des deux cotés, tu envoies des données... il y a des write, des read... et même plein d'exemples sur le web. C'est le même principe que lire / écrire un fichier. Que faut-il de plus ?

    Bon courage.
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  9. #9
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2004
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2004
    Messages : 204
    Points : 103
    Points
    103
    Par défaut
    Je vais essayer ça

Discussions similaires

  1. Communication entre deux programmes
    Par Kyoshinou dans le forum VB.NET
    Réponses: 2
    Dernier message: 26/12/2011, 15h51
  2. Communication entre deux programmes
    Par GPZ{^_^} dans le forum C
    Réponses: 4
    Dernier message: 28/10/2011, 10h11
  3. Communication entre deux programmes c# par USB
    Par Sylvain_31 dans le forum C#
    Réponses: 1
    Dernier message: 13/04/2010, 23h27
  4. communication entre deux programmes
    Par Invité dans le forum C
    Réponses: 19
    Dernier message: 12/10/2008, 12h07
  5. Débutant, Communication entre deux programmes
    Par Madalen dans le forum Langage
    Réponses: 5
    Dernier message: 23/05/2007, 22h27

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