I've been struggling to work out how to use PB's RPC mechanism within
my application. I don't have a problem with the simple usage of it or
the transport side. It's more how I would scale it up within a larger
modular application.

My application can run on multiple machines that need to talk to each
other. Think of it as a classic distributed computing problem.

This application is composed of a number of modules. Some of them will
have one or more functions that need to be called via RPC. Different
builds of the application may use some different modules (for device
drivers, etc).

I plan to have a TCP server socket that will run at a predefined port
that will provide the connection for one instance of my application to
talk to others of its kind. So each machine can be configured to
connect to one or more others using this port as the transport for RPC
messages. Fairly standard way of doing things I hope.

My problem is how do I use the RPC interface in PB to bind all the RPC
function calls scattered across my application? The only way I can see
is to have a single proto file that defines everything from every
module in a single place.

>From a design point of view, I find this somewhat ugly as it makes a
mockery of all my fine efforts to design software in a modular way. It
also makes it very tricky if I'm defining the interface for modules
that may not be enabled in a given implementation.

Is there another approach I'm missing? Can each module have it's own
local RPC section that is somehow combined in the complete application
to present a unified interface?

>From my understanding, there is only a single Service and Controller
defined for a single RPC server. Is this wrong? Can I define a bunch
of Services and bind them to a single port?

Sorry for the long email - it's a tricky thing to explain.
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to protobuf@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 

Reply via email to