适用于Windows Communication Foundation的Linux / Mac OS X等价物

– 编辑 –

Linux和Mac OS X的哪些应用程序开发框架/组件模型类似于Windows Communication Foundation和COM,它们提供了用于操纵/与软件应用程序通信的高级IPC机制?

通过高层次的沟通模式,我指的是RPC,发布/订阅等。

我正在为交互设备编写软件,这些软件可以被绑定到一些软件中的计算和数据的操作。 到目前为止,我可能有一个控制面板与物理滑块绑定到电子表格中的各种单元格加载在Excel,计算或数字。 我有办法来检测来自设备的事件,但交互子系统(X11,Explorer等)不能扩展来处理新types的交互事件,所以我需要捕获和传输我自己的事件到软件和从软件他们绑定。

此外,我想要控制的大多数应用程序都不能修改,以响应这些新types的事件。 尽pipe利用现有的交互子系统,模拟热键和快捷键序列的expression不够充分。 这就是为什么我对平台特定的框架感兴趣,所以我可以利用预先存在的钩子来控制软件。

由于这是用于用户交互的,所以它需要具有较低的延迟。 我想有无状态,asynchronous通信的选项。

我想过这个问题,我意识到我需要提出两个问题。 一个是关于高层次的IPC,另一个是关于对象组件模型,它允许你调用一个软件对象的方法。

– 原始问题 –

哪些通信/组件框架在Linux和Mac OS X上提供与Windows Communications Foundation最相似的function?

我的研究小组正在开始为交互式应用程序开发一些types的应用程序开发框架,这些应用程序涉及新types的设备来操作/与软件应用程序交互。 我们希望使用适配器模式为设备/设备应用程序/应用程序或设备/应用程序通信提供抽象,以便使用此框架构build的软件可以在3个主要的操作系统平台上移植。

如果Linux应用程序足够现代,则可能可以利用D-Bus 。 它主要是KDE的DCop的后代,在较小的程度上来自GNOME的Bonobo,所以如果年龄较大,你可能会看到其中的一个。 当然,假设它使用这些工具包之一。

如果它甚至比这更老,或者使用没有任何高级IPC的工具包(例如Motif(我认为)),那么最终可能不得不使用管道,套接字,fifo以及其他我可能已经忘记的东西。 当然,这是假设应用程序有某种钩子的东西。

以下是与Mac OS X上的网络相关的指南列表它涵盖了从低级套接字通信到不同级别的网络http://developer.apple.com/documentation/Cocoa/Networking-date.html#doclist

它涵盖:

  • 核心基础网络功能与低级BSD套接字一起使用。
  • Cocoa流类从数据流中读取数据并将数据写入数据流。
  • Web服务客户端框架在Mac OS X中可用。
  • 在可可或碳应用Bonjour。
  • URL加载系统来操纵URL和传输URL内容
  • 分布式对象编程 – 在不同线程或不同进程中的Objective-C对象之间的通信

否则, Mac OS X完全符合POSIX标准的UNIX系统,因此您可以在Linux上找到类似的IPC系统。

或者,也许你是在Mac OS X 系统服务之后 ,系统允许一个应用程序访问另一个应用程序的功能。 应用程序宣传他们提供的服务。 有关更多信息,请阅读链接的Apple文档

最接近的表亲将是libsoap和您选择的语言的等效SOAP库。