2012-12-29 5 views
0

Possible en double:
fastest (low latency) method for Inter Process Communication between Java and C/C++Inter Process Communication entre Java et C++

Je veux demander si quelqu'un pouvait me suggérer le meilleur moyen de transférer de grandes quantités de données entre deux processus la même machine construite en Java et autre en C++

Je dois construire une application métier ayant une architecture client-serveur sur internet qui a comme tructure comme ceci->

App Client Java --- (Java Sockets) -----> Java Servlet ----> C++ Business Logic.

Il doit être très portable car nous ne pouvons pas dire à l'avance l'environnement cible du client, donc java sera le meilleur choix pour moi selon moi. Il interagira avec le servlet Java via les sockets Java. Le servelet doit interagir avec la logique métier construite en C++.

Je vais utiliser java juste pour la partie communication et tout le reste de la logique métier sera là en C++.

Je suis un programmeur amateur en Java et j'ai un bon niveau d'expérience en C++.

Tout type de suggestion sera la bienvenue ..

+0

Pour ce que ça vaut - une socket est une construction fournie par les systèmes d'exploitation implémentant le protocole tcp/ip; appeler quelque chose un "java socket" est légèrement inexact. Java a une API pour utiliser les sockets TCP/IP, tout comme la plupart des implémentations C/C++ ont une bibliothèque pour utiliser ces mêmes sockets. C'est juste pour dire que les langages ne sont pas significatifs ici, et si vous vouliez vraiment dire "socket Java", je pensais que vous les avez peut-être confondus avec des éléments spécifiques à la langue. – arcy

Répondre

7

J'utiliser un Socket sur rebouclage sur l'hypothèse que le volume de données n'a pas besoin d'être plus que vous obtenez de App Client ou y revenir et la latence n'a pas besoin d'être plusieurs fois plus petit. L'utilisation d'un socket est le plus portable et si vous devez les exécuter sur des machines différentes, vous pouvez. Avec Java, vous pouvez obtenir quelques Gb/s avec des latences inférieures à 10 micro-secondes sur un socket.

+0

Lorsque vous envisagez d'ajouter encore plus de composants, même divers, plus tard, vous pouvez utiliser la route SOA (Service-oriented Architecture) et implémenter ces interfaces basées sur des sockets entre les programmes en tant que services Web SOAP. Mais quand vous êtes sûr que vous n'aurez jamais plus que ces deux applications et que vous n'aurez plus besoin de plus d'interopérabilité, cela relèvera du département YAGNI. – Philipp