Should I use CORBA, MessagePack RPC or Thrift or something else?

I am writing software for a new hardware device that I want any new third-party application to be able to access if it wants.

The software will be a native process (C ++) that must be contaminated with third-party games and applications that want to support a hardware device. These third-party applications should also be able to receive events from their own subscription-based process. Therefore, in addition to my own process, I will also supply “connector” libraries to third-party developers for all platforms / languages ​​that they can choose (Java, C ++, Python, etc.) for implementation in their applications so that they can easily connect to a device in which there is hardly any additional code that must be written by them. I want to target all desktop and laptop platforms, and I have a pretty good idea of ​​what features I want to reveal, but ideally I don't want to get too stuck (i.e. I want it to be elegantly scalable as with client and server perspective).

I am looking for reliable work in the future, productivity, support in the future, as well as the flexibility of cross-platform / language training and the simplicity of development in this order.

What should i use?

CORBA, MessagePack-RPC, Thrift, or something else?

(I skipped ICE due to its licensing)

+6
cross-platform rpc thrift corba interprocess
source share
4 answers

CORBA is the only free "RPC" thing that will work for my system right now, although it scales very much. Thrift is not Windows yet. MessagePack-RPC is also not yet available in all languages ​​and OS, although it is still under development. If CORBA was elegantly scalable, it probably wouldn't be out of date at all.

Buffer protocols and messaging will work, I will have to develop both a client and a service implementation for each platform / language. It will also be very scalable. I decided about it.

+1
source share

Thrift or Message Pack is the best option in the future. Both are smooth, lightweight and do not add much time to your process. They support most common languages ​​and are in active development. At this stage, I would prefer thrift in person, but the message package seems to promise a lot of possibilities.

Thought may not be the same as Windows as we want, but people use it in windows. This is a beginner's guide to window care. http://wiki.apache.org/thrift/ThriftInstallationWin32 Only installing and getting the Thrift compiler can be difficult for windows. The use of the generated files depends on the language you choose, and many languages ​​have good support for running files by importing saving libraries. (Java is very easy, MAVEN artifact)

Is there a discussion of the RPC capabilities available in RPC infrastructures?

CORBA for me is old bulky and very heavy.

+4
source share

If the ancient and heavyweight do not disconnect you, the obsolete should definitely. Despite this, I can tell you what we used recently in Google Protocol Buffers, and they are quite easy to use.

From the developer's point of view, all you have to do is build a GPB (which is really not that difficult), and then it will generate the source files for you. The end result is a cross-platform messaging interface for transmitting binary messages (I think XML and limited RMI, not MPI-like functions).

We use it on Windows to talk to the Linux Arm system (TS-7200 from the integrated shoulder) using the same software. As far as I know, it is compatible with many languages.

+2
source share

I am currently using Apache Thrift for the Hospital Manager project. This is better than CORBA in many areas, not to mention that it is lightweight and much easier to implement and understand. The learning curve for Thrift is definitely thin compared to CORBA, but the documentation for Thrift is the worst.

I am using a Ruby Thrift server to which Obj-C and Java clients connect. The Thrift analyzer or “compiler” does a pretty good job of generating source files for the languages ​​you need, although this is too verbose. I would definitely look at implementing Thrift or Google ProtoBuffs if I started a new project, since CORBA is really outdated and may not introduce new technologies in the future, not to mention that there are many vulnerabilities and exploits targeted at CORBA that are not will get fixed as it is no longer under development, presenting some serious security holes in your new project.

Thrift supports many programming languages: C ++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C #, Objective-C, JavaScript, Node.js, Smalltalk, OCaml, and Delphi at the time of this writing. I believe that supporting multiple languages ​​is key to your project.

0
source share

All Articles