77 votes

Multiplate-forme

Je suis à la recherche de suggestions sur d'éventuels mécanismes IPC qui sont:

  • la croix-plate-forme (WIN32 et Linux au moins)
  • Simple à mettre en œuvre en C++ ainsi que la plupart des communes, les langages de script (perl, ruby, python, etc).
  • Enfin, simple à utiliser à partir d'un point de vue programmation!

Quelles sont mes options? Je suis à la programmation sous Linux, mais je tiens à ce que j'écris pour être transférable à d'autres Systèmes d'exploitation dans l'avenir. J'ai pensé à l'utilisation des sockets, des canaux nommés, ou quelque chose comme DBus.

Quelqu'un aurait-il des conseils?

57voto

Douglas Mayle Points 7216

En termes de vitesse, la meilleure plate-forme de mécanisme IPC sera tuyaux. Qui suppose, cependant, que vous voulez croix-plate-forme de l'IPC sur la même machine. Si vous voulez être en mesure de parler à des processus sur des machines distantes, vous aurez envie de regarder à l'aide de sockets à la place. Heureusement, si vous parlez de TCP au moins, les prises et les tubes comportent à peu près le même comportement. Alors que les Api pour leur mise en place et de la connexion entre eux sont différents, ils agissent comme des flux de données.

La partie la plus difficile, cependant, n'est pas le canal de communication, mais les messages que vous passerez dessus. Vous voulez vraiment regarder quelque chose qui va effectuer la vérification et l'analyse pour vous. Je recommande à la recherche chez Google Protocol Buffers. En gros, vous créez un fichier de spécification qui décrit l'objet que vous souhaitez passer entre les processus, et il est un compilateur qui génère du code dans un certain nombre de différentes langues pour la lecture et l'écriture des objets qui correspondent à la spécification. Il est beaucoup plus facile (et moins de bug tendance) que d'essayer de venir avec un protocole de messagerie et un analyseur de vous-même.

16voto

Brian R. Bondy Points 141769

Pour C ++, consultez Boost IPC .
Vous pouvez probablement créer ou trouver des liaisons pour les langages de script.

Sinon, s'il est vraiment important de pouvoir vous connecter à des langages de script, le mieux est simplement d'utiliser des fichiers, des pipes ou des sockets ou même une abstraction de niveau supérieur comme HTTP.

10voto

apenwarr Points 4956

Pourquoi pas D-Bus? C'est un système de transmission de messages très simple qui fonctionne sur presque toutes les plates-formes et qui est conçu pour être robuste. Il est supporté par à peu près tous les langages de script à ce stade.

http://freedesktop.org/wiki/Software/dbus

8voto

user10042 Points 116

Vous voudrez peut-être essayer YAMI , il est très simple mais fonctionnel, portable et livré avec une liaison vers quelques langues.

5voto

Swaroop C H Points 7518

Qu'en est-il de l'épargne de Facebook ?

Thrift est un framework logiciel pour le développement de services multilingues évolutifs. Il associe une pile logicielle à un moteur de génération de code pour créer des services efficaces et transparents entre C ++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C #, Cocoa, Smalltalk et OCaml.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X