语言/操作系统之间的进程间通信

发布于 2024-07-17 00:13:02 字数 188 浏览 3 评论 0原文

我正在寻找一种进程间通信工具,可以在相同或不同系统上运行的语言和/或环境之间使用。 例如,它应该允许在 Java、C# 和/或 C++ 组件之间发送信号,并且还应该支持某种排队机制。 唯一明显与环境和语言无关的设施是文件,但我认为这会太慢 - 并且严格的排队可能很难实现。 文献中描述的许多其他功能仅适用于一种语言或一种操作系统。 如有建议,将不胜感激!

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 should allow signals to be sent between Java, C# and/or C++ components, and it should also support some kind of queueing mechanism. The only facility that is obviously environment and language-independent is files, but I assume this would be much too slow - and disciplined queueing may be difficult to implement. Many of the other facilities described in the literature only apply to one language or one operating system. Suggestions would be appreciated!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

稀香 2024-07-24 00:13:02

您可能需要查看类似 ActiveMQ 的内容。 在 EAI 模式中,JMS 总线大量用于集成用多种不同语言编写并在多个系统上运行的多个模块。 对我来说,像ActiveMQ这样的企业消息总线很适合你的需求。 如果您正在寻找其他东西,请告诉我。

-沙米克

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

¢蛋碎的人ぎ生 2024-07-24 00:13:02

在谈论异构架构时,恕我直言,传输层(正如您标记“套接字”作为答案)与协议层(数据序列化等)一样重要。

我发现及时返回的是学习编程库,它统一了不同编程语言、操作系统和体系结构(大端/低端、16/32/64 位等)之间的数据序列化。

我最喜欢的选择是 Google Protocol Buffers,它内置对 C++、Python、java 的支持以及第三方插件支持大量编程/脚本语言(包括 Lua、Matlab、Ruby 、Perl、R、Php、OCaml、Mercury、Erlang、Go、D、Lisp)和 RPC 实现(如 Zeroc ICE )。 许多其他产品也支持它们,例如 SWI-Prolog Google Protocol Buffers Library。

另一种选择是 Thrift,它也支持多种编程语言。

为了进行比较,您可能需要检查: Thrift、Protobuf、JSON

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.

末蓝 2024-07-24 00:13:02

好吧,你绝对可以考虑使用“套接字”。

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

猫瑾少女 2024-07-24 00:13:02

我个人会使用 XML-RPC 。 它易于在多个平台上使用,并且完全满足您的所有要求,任何排队都可以通过编程方式处理。

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.

断舍离 2024-07-24 00:13:02

查看 Microsoft Message Queue 或类似的东西。 另请参阅 XML-RPCSOAPJSON 等。

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

寄风 2024-07-24 00:13:02

我的赌注是 DBus [点对点]——它具有更好的流量控制。 它运行在 RPC 之上,因此有许多语言绑定。 RPC 当然是构建在本地套接字之上的。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文