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

Java Discussion :

Utilisation de code Java à partir d'un programme C++ distant


Sujet :

Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 139
    Par défaut Utilisation de code Java à partir d'un programme C++ distant
    Bonjour,

    Je voudrais connaître l'avis d'experts ayant déjà utilisé des technologies d'interfaçage de programmes C++ et Java sur des machines distantes.

    J'ai d'un côté un système indépendant écrit en C++ et de l'autre un algorithme implémenté en Java permettant d'effectuer certains calculs et de renvoyer une action correspondante au programme C++.

    Seulement, certaines contraintes rendent impossibles le redéveloppement de la partie Java en C++.

    En résumé :
    -j'ai des données émanant de la partie C++ matérialisées par une classes "Donnée".
    - je voudrais transmettre l'objet Données à java, afin qu'il fasse ses calculs en fonction des informations de ces données.
    - Instanciation dans Java d'un objet "Action" résultant des calculs.
    - Transmission de cet objet à C++ pour qu'il récupère les informations d'Action.
    - Utilisation de l'objet Action dans C++.

    Ce processus serait amené à boucler puisque divers évènements peuvent engendrer un recalcul.

    Alors j'ai exploré divers pistes comme le JNI couplé au RMI, le Corba, les sockets, le framework Zeus de C++.

    Quelle est votre avis sur la question ? Je suis ouvert à tout retour d'expérience sur l'utilisation de ces technologies.

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Corba je déconseille, c'est très vieux et pas performant
    RMI est mieux, mais pas top

    Maintenant, si c'est possible, et puisque ce sont des machines distantes et des systèmes hétérogènes, j'utiliserais un protocole spécialisé, type SOAP over http (webservices): on n'a pas fait mieux depuis (bon niveau perfs c'est pas réputé pour être particulièrement rapide, mais au moins c'est compatible entre les technologies)


  3. #3
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Par défaut
    Hello,

    je plussoie Pill_S à propos de Corba: c'est plutôt une techno lourde à mettre en oeuvre, pas (ou plus) spécialement intéropérable et ... disons ... plutôt sur le déclin.

    Perso, pour ce genre de besoin, j'ai ma petite préférence pour de bonnes vieilles sockets TCP qui restent quand même la techno qu'on retrouve à peu près partout et qui reste extrêmement flexible: que tes deux applis tournent sur le même serveur physique ou pas,

    Et si tu veux quelque chose de simple à mettre en œuvre, une bête implémentation d'un protocole basé sur du texte avec une ligne par 'commande' est quasi trivial (quelques dizaines de lignes en Java), facile à déboguer et même accessible au moyen d'un telnet.

    Après, tout dépend de l'interopérabilité que tu souhaites: si tu ne prévois pas que ces applis puissent être un jour amenées à communiquer avec d'autres programmes 'externes', les sockets sont probablement la voie la plus directe à mettre en œuvre. Par contre si tu as plus de besoin d'interopérabilité, une tehcno comme les web-services sera peut-être plus indiquée.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 139
    Par défaut
    Je pensais utiliser des fichiers XML transmis grâce à des sockets. Je me demande si le XML n'est pas incompatible avec des applications temps réels et s'il est facil de manipuler les sockets C++ et Java en même temps.

  5. #5
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Citation Envoyé par K-you Voir le message
    Je pensais utiliser des fichiers XML transmis grâce à des sockets.
    là on est assez proche des webservices...

    pour le temps réel, je dirais que tout dépend des volumes de données. Pour les applis fortement chargée, bcp de user, bcp de données, il faut peut-être chercher à optimiser et changer de format, mais dans l'immense majorité des cas y'a pas de souci

    pour la compat entre les sockets c++ et java, là pas de souci, c'est la même norme (TCP)


  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 139
    Par défaut
    Ok, merci pour ces réponses, normalement la charge de données transmise ne devrait pas être si lourde que ça, et cette méthode a l'air la plus rapide à mettre en oeuvre.

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

Discussions similaires

  1. Générer code java à partir de rptdesign
    Par flo123456 dans le forum BIRT
    Réponses: 5
    Dernier message: 27/05/2009, 14h10
  2. débutant: utilisation du code java généré
    Par odaxis dans le forum W4 Express
    Réponses: 2
    Dernier message: 16/10/2008, 13h07
  3. Réponses: 1
    Dernier message: 09/03/2007, 14h40
  4. Exécuter du code Java à partir d'un rapport
    Par medbass dans le forum BIRT
    Réponses: 6
    Dernier message: 16/08/2006, 16h01
  5. Réponses: 6
    Dernier message: 11/05/2006, 17h28

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