2012-09-18 2 views
0

J'ai plusieurs dll mathématiques, certaines d'entre elles sont pour la plate-forme x64, d'autres pour x86. J'ai aussi besoin de communiquer avec plusieurs interfaces COM (en particulier, les versions 64 bits de Matlab et STATISTICA). Donc, pour résoudre le problème avec les DLL mixtes j'ai divisé mon logiciel en 3 programmes indépendants - 2 d'entre eux sont 32 bits et 1 - 64 bits. Tous les programmes doivent communiquer entre eux et également connectés à la base de données SQL mutuelle. De plus, il est possible qu'un programme fonctionne sur un ordinateur client et qu'un autre fonctionne sur un ordinateur serveur.Choix de la méthode IPC

Quelle est la meilleure technologie (en termes de performance) pour connecter les processus? Je dois envoyer très rapidement des tableaux de données du programme x86 au format x64, effectuer des calculs et les renvoyer. La capacité à utiliser le réseau n'est pas importante, en fait. Je n'ai pas beaucoup de temps pour comparer différentes méthodes (pipelines, WCF, etc.) et je veux me concentrer sur l'étude d'une seule technologie.

+1

Une option possible: utilisez ZeroMQ comme système de messagerie entre vos applications. Extrêmement rapide et très facile à utiliser. –

Répondre

0

Dans un code non géré, COM peut être utilisé à cette fin (recherchez des serveurs hors processus, c'est-à-dire des serveurs locaux). En interne COM utilise RPC, mais est plus pratique que RPC parce que le client utilise des objets comme s'ils étaient dans l'espace d'adressage du processus client (alors qu'ils sont dans l'espace d'adressage du processus serveur). COM peut également être utilisé pour communiquer entre ordinateurs, rechercher DCOM.

Il y a des choses similaires dans .NET, WCF étant l'un d'entre eux, mais je ne suis pas sûr de leur efficacité. WCF semble en particulier utiliser des protocoles basés sur du texte, ce qui est probablement moins efficace que le RPC de COM.

+0

Mon opinion personnelle: COM est très lent et DCOM est très compliqué et sujette aux erreurs – guilhermecgs