在Windows上,我们有一个C ++应用程序来启动Java进程。这两个应用程序需要彼此通信(通过xml片段)。
您将选择哪种进程间通信方法,为什么?
我们桌上的方法是:共享文件,管道和套接字(尽管我认为这有一些安全问题)。我愿意接受其他方法。
我不确定为什么您认为基于套接字的通信会带来安全隐患(使用SSL)。假设您具有明确定义的通信协议,这通常是一种非常好的方法,因为它与 语言无关 。例如,看看Google的 协议缓冲区 -它们生成所需的Java类和流。
根据我的经验,文件系统(尤其是网络文件系统)不太适合此类通信,因为它们不一定要针对 消息传递 进行调整(例如,我已经看到缓存问题导致目标进程无法拾取文件)。
另一个选择是 消息传递 层(例如AMQ或Tibco),尽管这可能会涉及更大的管理开销(加上专业知识)。
就我个人而言,由于它的灵活性和简单性,我会选择一种简单的方法。您将完全 处于控制之中 。