2012-09-18 36 views
0

我有几个数学dll,其中一些用于x64平台,一些用于x86。我还需要与几个COM接口(特别是Matlab和STATISTICA的64位版本)进行通信。所以为了解决混合dll的问题,我将我的软件分成3个独立的程序 - 其中2个是32位和1 - 64位。所有的程序都必须相互通信,并连接到相互的SQL数据库。此外,有可能,一个程序将在客户端计算机上运行,​​另一个程序将在服务器计算机上运行。IPC方法的选择

连接流程的最佳技术(就性能而言)是什么?我需要真正快速地将数据从x86程序发送到x64,执行计算并将其发回。事实上,使用网络的能力并不重要。

我只是没有太多时间来测试不同的方法(管道,WCF等),并且想专心研究一种技术。

+1

一个可能的选择:使用ZeroMQ作为您的应用程序之间的消息传递系统。非常快速且非常易于使用。 –

回答

0

在非托管代码中,COM可用于此目的(查找超出进程的服务器,又名本地服务器)。内部COM使用RPC,但比RPC更方便,因为客户端使用对象,就好像它们在客户端进程本身的地址空间中(而它们在服务器进程的地址空间中)。 COM也可用于跨计算机进行通信,查找DCOM。

.NET中也有类似的东西,WCF就是其中之一,但我不确定它们的效率。特别是WCF似乎使用基于文本的协议,这可能比COM的RPC效率低。

+0

我个人认为:COM非常慢,DCOM非常复杂,容易出错 – guilhermecgs