Inter-process communication between languages/operating systems

后端 未结 6 441
旧巷少年郎
旧巷少年郎 2021-01-14 01:29

I am looking for an inter-process communication facility that can be used between languages and/or environments running on the same or different systems. For instance it sh

相关标签:
6条回答
  • 2021-01-14 01:36

    My bet is on DBus [ peer to peer ] - Which has better flow control . It runs on top of RPC hence there are many language bindings. RPC ofcourse is built on top of local sockets.

    0 讨论(0)
  • 2021-01-14 01:41

    Well, you could definitely look at using "sockets".

    0 讨论(0)
  • 2021-01-14 01:44

    When talking about heterogeneous architecture, IMHO transport layer (as you marked "sockets" as answer) is as important, as protocol layer (data serialization etc).

    What I've found that returns in time, is learning programming library that unifies serialization of data between different programming languages, operating systems, and architectures (big-endian/low-endian, 16/32/64 bits, etc).

    My favourite choice is Google Protocol Buffers, with in-box support for C++, Python, java and Third-Party Add-ons with support for huge amount of programming/scripting languages (including Lua, Matlab, Ruby, Perl, R, Php, OCaml, Mercury, Erlang, Go, D, Lisp) and RPC implementations (like Zeroc ICE ). Out of list many other products support them like SWI-Prolog Google Protocol Buffers Library.

    The alternative is Thrift with support for a variety of programming languages, as well.

    For comparison, you might like to check: Thrift vs Protobuf vs JSON.

    0 讨论(0)
  • 2021-01-14 01:44

    I would use XML-RPC personally. It is easy to use on multiple platforms, and cleanly meets all your requirements, any queuing can be handled programmaticaly.

    0 讨论(0)
  • 2021-01-14 01:52

    Check out Microsoft Message Queue or something simillar. Also have a look at XML-RPC, SOAP, JSON etc.

    0 讨论(0)
  • 2021-01-14 01:57

    You need to probably look at something like ActiveMQ. In EAI patterns, the JMS bus is heavily used for the purpose of integrating several modules written in several diffetent languages and running on several systems. To me, Such Enterprise Message Bus like ActiveMQ fits your need. Let me know if you are looking for something else.

    -Shamik

    0 讨论(0)
提交回复
热议问题