comparison of rpc implementations

178 views
Skip to first unread message

Romain François

unread,
Nov 23, 2009, 1:47:07 AM11/23/09
to Protocol Buffers
Hello,

Is there a comparison of the various rpc implementations somewhere ?

We are implementing third party support for R and would like to throw an
rpc implementation into the mix, but which one to choose ?

Romain

--
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr
|- http://tr.im/FtUu : new package : highlight
|- http://tr.im/EAD5 : LondonR slides
`- http://tr.im/BcPw : celebrating R commit #50000

Kenton Varda

unread,
Nov 23, 2009, 12:27:59 PM11/23/09
to Romain François, Protocol Buffers
If you want something that's likely to work with other languages, I'd just implement RPC over HTTP.  Assuming you have HTTP support in R already it should be pretty straightforward.  Otherwise you'll have to look very carefully at the third-party RPC implementations to figure out which ones are well-designed (I have not looked closely enough at them to know):

Please don't copy the RPC interfaces that are part of protocol buffers now -- they are going away.  The service definition language will still exist, but future versions of protoc will let you plug in a custom code generator for them.

2009/11/22 Romain François <francoi...@free.fr>

--

You received this message because you are subscribed to the Google Groups "Protocol Buffers" group.
To post to this group, send email to prot...@googlegroups.com.
To unsubscribe from this group, send email to protobuf+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/protobuf?hl=.



francoi...@free.fr

unread,
Nov 23, 2009, 1:03:14 PM11/23/09
to Kenton Varda, prot...@googlegroups.com

Thanks for the insight.

We work at the C(++) level using reflection, so we are basically going to send the payload of input and output messages using C sockets.

I've looked at protobuf-rpc and protobuf-socket-rpc implementations, I'm not sure I like the way they both include the actual messages as a bytes field.

Romain

From: Kenton Varda <ken...@google.com>
Date: Mon, 23 Nov 2009 09:27:59 -0800
To: Romain François<francoi...@free.fr>
Cc: Protocol Buffers<prot...@googlegroups.com>
Subject: Re: [protobuf] comparison of rpc implementations

Romain François

unread,
Nov 30, 2009, 3:59:21 AM11/30/09
to Kenton Varda, Protocol Buffers
On 11/23/2009 06:27 PM, Kenton Varda wrote:
> If you want something that's likely to work with other languages, I'd
> just implement RPC over HTTP. Assuming you have HTTP support in R
> already it should be pretty straightforward. Otherwise you'll have to
> look very carefully at the third-party RPC implementations to figure out
> which ones are well-designed (I have not looked closely enough at them
> to know):
> http://code.google.com/p/protobuf/wiki/ThirdPartyAddOns
>
> Please don't copy the RPC interfaces that are part of protocol buffers
> now -- they are going away.

Sorry to get back at this a week after. Can you expand on what is going
away. ServiceDescriptor, MethodDescriptor, RpcChannel, Service ?

> The service definition language will still
> exist, but future versions of protoc will let you plug in a custom code
> generator for them.
>
> 2009/11/22 Romain Fran�ois <francoi...@free.fr
> <mailto:francoi...@free.fr>>

Kenton Varda

unread,
Nov 30, 2009, 1:01:28 PM11/30/09
to Romain François, Protocol Buffers
The descriptors will stay.  All of the abstract interfaces related to services -- Service, RpcChannel, RpcController, etc. -- will be deprecated.  New RPC systems will be able to use code generator plugins to inject code specific to them into what protoc generates.

If you are going to provide a protobuf implementation and RPC implementation as one package, you don't even need to worry about plugins.  Just design your RPC API however you want and write the code generator to generate appropriate code.

2009/11/30 Romain François <francoi...@free.fr>
On 11/23/2009 06:27 PM, Kenton Varda wrote:
If you want something that's likely to work with other languages, I'd
just implement RPC over HTTP.  Assuming you have HTTP support in R
already it should be pretty straightforward.  Otherwise you'll have to
look very carefully at the third-party RPC implementations to figure out
which ones are well-designed (I have not looked closely enough at them
to know):
http://code.google.com/p/protobuf/wiki/ThirdPartyAddOns

Please don't copy the RPC interfaces that are part of protocol buffers
now -- they are going away.

Sorry to get back at this a week after. Can you expand on what is going away. ServiceDescriptor, MethodDescriptor, RpcChannel, Service ?

The service definition language will still
exist, but future versions of protoc will let you plug in a custom code
generator for them.

2009/11/22 Romain François <francoi...@free.fr
<mailto:francoi...@free.fr>>


   Hello,

   Is there a comparison of the various rpc implementations somewhere ?

   We are implementing third party support for R and would like to throw an
   rpc implementation into the mix, but which one to choose ?

   Romain

Mikhail Opletayev

unread,
Nov 30, 2009, 3:01:48 PM11/30/09
to Protocol Buffers
We are running a simple pbuf-based protocol over HTTP:

http://www.dataflow-software.com/docs/pbuf-rpc.html

It works great for us as it allows a lot of flexibility.

We also define a bunch of messages for the primitive types and arrays:

http://www.dataflow-software.com/files/dataflow-rpc.proto

Sincerely,
> `-http://tr.im/BcPw: celebrating R commit #50000

Mikhail Opletayev
http://dataflow-software.com
Reply all
Reply to author
Forward
0 new messages