什么是RMI的C版本

时间:2010-07-23 04:02:23

标签: c++ c

我在C / C ++中有一组函数,我需要接受调用并将值返回到远程位置的C / C ++代码,类似于Java平台上的RMI。使用RMI,Java方法通过rmiregistry设置,并在内存中保持可用以接受请求。我正在寻找C / C ++中的类似功能,但我对所有选项都感到困惑。这种情况是CORBA的用途吗?如果是这样,这仍然是最好的技术,或者有更好的选择。我读过有关XML-RPC,CORBA和其他一些内容但我不确定这些是我需要的。

感谢您的帮助。

迈克

4 个答案:

答案 0 :(得分:6)

  

这种情况是CORBA的用途,如果是这样,这仍然是最好的技术,或者有更好的选择。

是的,这就是CORBA打算解决的问题。它是“最好的”是主观的还是争论性的。 :)我可以说,根据我的个人经验,我不会错过我对CORBA的短暂体验,并建议你探索其他选择。

  

我读过有关XML-RPC,CORBA和其他一些内容但我不确定这些是我需要的内容。

您似乎意识到,您正在寻找任何实现RMI(也经常称为RPC)的技术。它不是内置于C / C ++。

在Linux上,有SunRPC。我还建议查看Google protocol buffers,它提供了一种序列化数据的机制以及一个用于定义RPC服务的接口。有several service implementations可用,但我没有使用服务实现的经验。

答案 1 :(得分:1)

在类Unix平台上,您可能正在寻找Sun RPC(远程过程调用)。

CORBA也是相关的,但对具有面向对象功能的语言具有更自然的绑定。

答案 2 :(得分:0)

在C或C ++中没有用于实现此功能的内置方法。也就是说有几个库可以实现这一目标。

如果您使用的是Windows,那么最佳答案可能是DCOM,这是操作系统本身的一部分。我不确定其他平台。

答案 3 :(得分:0)

我建议使用CORBA或任何可用的网络服务库

CORBA对你来说是一个合理的选择(虽然它现在可能有点旧技术)。在我以前的工作中,我已经使用CORBA好几年了。

我应该说,CORBA的学习曲线有点陡峭,你需要提供很多额外的设置,但一旦它完成正确,它就会变得顺畅使用。 (问题是需要一段时间才能正确使用它)

Webservice现在是一个事实上的工业标准,我相信C ++会有一些合理的实现和库。 CORBA涵盖了比WS更多的功能,但这些功能在简单系统中很少使用。