使用RProtoBuf(协议缓冲区)从R调用Java函数

时间:2011-08-11 07:26:04

标签: java r rpc protocol-buffers

如何使用RProtoBuf在R和其他语言之间进行通信(在我的例子中是Java)并不是很明显。

RprotoBuf开发人员开发了一些仍然存在的东西 - https://r-forge.r-project.org/scm/viewvc.php/java/?root=rprotobuf,但它似乎已经过时了。我不确定这是否可行。以下是RProtoBuf的作者之间的两次对话,这可能有助于理解代码 -

http://lists.r-forge.r-project.org/pipermail/rprotobuf-yada/2009-December/000116.html

http://lists.r-forge.r-project.org/pipermail/rprotobuf-yada/2009-December/000119.html

他们似乎开始使用Java,然后放弃了C ++的优势!

有没有人使用R-RProtoBuf-Java组合?你怎么做呢?是否有教程或示例?

我对Java的了解非常有限。我想使用一些用Java编写的程序。

编辑: 为了澄清,我想我想看一个与RProtobuf一起使用的R rpc客户端的例子。欢迎使用指向Java RPC服务器的指针。

Edit2: 第一个链接实际上指向了一些文档生成器代码,正如Dirk指出的那样。

2 个答案:

答案 0 :(得分:1)

我不知道RProtoBuf,但如果您只是想从R调用Java,那么您可能对rJava感兴趣。

它没有过时,并有示例(在主页上,请参阅链接)。

答案 1 :(得分:1)

我们最近在arXiv上发布了一份JSS论文的预印本,我们写了更多使用RProtoBuf的例子,包括向远程Web服务发送RPC请求。有关使用RProtoBuf在R和其他语言之间共享数据的更多说明,请参阅RProtoBuf: Efficient Cross-Language Data Serialization in R

您可以将RProtoBuf与任何传输机制一起使用,如文章中所述 - 您可以将序列化协议缓冲区保存到要由其他语言编写的其他应用程序读取的文件,或者您可以通过连接/套接字或其他更高版本发送它们级别的RPC系统。协议缓冲区广泛用于从索尼PlayStation到大型Web服务的所有内容,但它们不包括RPC系统 - 您可以将它们用作您已经使用的任何传输系统的序列化格式。