1

Does RPC is still in use nowadays. Or rpc were replaced by other technology? If i start new project in C++ should i consider use of RPC?

More info because i know that RPC is still in use in production code:

I have two apps to communicate each other. These two are on same machine but one is service, second is user app. User app send to service app every 2,3 seconds. Second usage of rpc. I have 1 client and many computers that have local database. And that client need to get some data from these computers.

Should i use something like Thrift for these two scenerios? Or its too big for that?

2
  • 3
    That depends on what your new project does. Commented Apr 26, 2011 at 18:25
  • I have used D-Bus on a few projects. Commented Apr 26, 2011 at 18:28

3 Answers 3

5

Remote Procedure Call is a very generic idea and not something specific. There are ZeroC Ice, CORBA, Java RMI, SOAP, DRb, WCF and a lot more technologies that are built around the idea of RPC. They are being used indeed. For example, CORBA is used by some Electronic Currency Exchanges (ECNs), ZeroC is used by Skype, Hewlett-Packard, soap is used... well I hope everyone uses soap.

But it is hard to answer whether you should consider this technology or not. And if you should than what solution you should go with. It depends on too many details. But the main question to ask is — what are you trying to achieve? These are all serious technologies, some can save you tons of valuable time, some can help you integrate applications written in different languages, etc. Basically, every solution has its cons and pros.

If you are certain that you need it, I'd recommend thinking about it twice and decide where in your project you need it and what for. If you decide to go with RPC, I'd recommend you ZeroC Ice. It is free, open source, scalable and extendable, supports tons of modern programming languages and the community around it seems pretty active.

Hope it helps. Good Luck!

Sign up to request clarification or add additional context in comments.

5 Comments

You wrote that RPC is very generic. Is this msdn.microsoft.com/en-us/library/… is this same generic concept or something else?
Your question was tagged only with C++ and rpc. Given this context, I would interpret it as being "generic"
@userbb: Concept is generic, implementation is different, and it won't be portable and/or compatible with other solutions (every one of them is not compatible with another).
ZeroC is not free for commercial, closed-source projects.
@Emile: Depends what you call closed-source commercial projects. There is a version released under GPL, and you indeed can use it for SAS-kind of projects, or just for internal use in the company.
0

RPC is widely used in windows operating system. I use RPC to invoke a cache service, for reasons of high performance.

2 Comments

Just as a note - RPC is not faster than alternative, lower-level solutions. And in most cases is significantly slower.
It's not true, only direct hardware access can be faster than rpc or shared memory, but the isolation is lost between processes in this case.
0

If you do decide you need RPC, I recommend looking at Apache Thrift which supports most common language bindings and has most features you'll ever need. It might be overkill for your needs, but since you didn't specify them, I thought I'd throw it out there.

1 Comment

I have two apps to communicate each other. These two are on same machine but one is service, second is user app. user app send to service every 2,3 seconds. Second usage of rpc. I have 1 client and many computers that have local database. And that client need to get some data from these computers.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.