Inter-process communication between languages โ€‹โ€‹/ operating systems

I am looking for an interprocess communication mechanism that can be used between languages โ€‹โ€‹and / or environments that work on the same or different systems. For example, it should allow the transfer of signals between the components of Java, C # and / or C ++, and also support some kind of queuing mechanism. The only object that is obviously environment independent and language independent is the files, but I assume it will be too slow - and the disciplinary queue can be difficult to implement. Many of the other objects described in the literature relate to only one language or one operating system. Suggestions will be appreciated!

+4
source share
6 answers

Well, you can definitely take a look at using sockets.

+3
source

You probably need to look something like ActiveMQ . In EAI templates, the JMS bus is widely used to integrate several modules written in several different languages โ€‹โ€‹and running on multiple systems. For me, a service message bus such as ActiveMQ meets your needs. Let me know if you are looking for something else.

-Shamik

+4
source

Speaking of heterogeneous architecture, the IMHO transport layer (since you marked "sockets" as an answer) is just as important as the protocol layer (data serialization, etc.).

What I found that returns on time is learning a programming library that integrates data serialization between different programming languages, operating systems and architectures (bit-din / low, 16/32/64 bit, etc.).

My favorite choice is Google Protocol Buffers , with in-box support for C ++, Python, java and third-party add-ons with support for a huge number of programming languages โ€‹โ€‹/ scripts (including Lua, Matlab, Ruby, Perl, R, Php, OCaml, Mercury, Erlang , Go, D, Lisp) and RPC implementations (e.g. Zeroc ICE ). From the list, many other products support them as the SWI-Prolog protocol buffer library .

An alternative is Thrift with support for various programming languages.

For comparison, you can check: Thrift vs Protobuf vs JSON .

+4
source

I would use XML-RPC personally. It is easy to use on several platforms and fully meets all your requirements, any queues can be processed programmatically.

+1
source

Check out Microsoft Message Queue or something similar. Also see XML-RPC , SOAP , JSON , etc.

+1
source

My bet is on DBus [peer to peer] - which has better flow control. It runs on top of RPC, so there are many language bindings. RPC, of โ€‹โ€‹course, is built on top of local sockets.

0
source

All Articles