6

- 编辑 -

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

高级通信模型是指 RPC、发布/订阅等。

我正在为交互设备编写软件,这些软件可以绑定到一些软件中的计算和数据操作。到目前为止,我可能有一个带有物理滑块的控制面板,这些滑块绑定到 Excel、Calculate 或 Numbers 中加载的电子表格中的各个单元格。我有办法感知源自设备的事件,但交互子系统(X11、Explorer 等)无法扩展以处理新类型的交互事件,因此我需要捕获我自己的事件并将其传输到软件和从软件传输他们所绑定的。

此外,我想控制的大多数应用程序都无法修改以响应这些新类型的事件。并且模拟热键和快捷键序列的表现力不够,尽管它会利用现有的交互子系统。这就是我对特定于平台的框架感兴趣的原因,因此我可以利用预先存在的钩子来控制野外的软件。

由于这是用于用户交互,因此它需要具有低延迟。我也想选择无状态的异步通信。

我已经考虑过这个问题,我意识到我需要问两个问题。一个是关于高级 IPC,另一个是关于允许您调用软件对象上的方法的对象组件模型。

--原始问题--

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

我的研究小组开始为交互式应用程序开发某种类型的应用程序开发框架,其中涉及新类型的设备来操作/与软件应用程序交互。我们希望使用适配器模式为设备/设备应用程序/应用程序或设备/应用程序通信提供抽象,以便使用此框架构建的软件可以跨 3 个主要操作系统平台移植。

4

3 回答 3

5

如果 Linux 应用程序足够现代,您也许可以利用D-Bus。它主要是来自 KDE 的 DCop 的后代,在较小程度上是来自 GNOME 的 Bonobo,所以如果它更老,你可能会查找其中的一个。当然,这是假设它使用其中一个工具包。

If it's even older than that or uses a toolkit without any high-level IPC (e.g. Motif (I think)), you may end up having to resort to pipes, sockets, fifos, and anything else I might have forgotten. That assumes, of course, that the app has some kind of hooks for that stuff.

于 2009-06-04T08:08:13.140 回答
4

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

它涵盖:

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

否则, Mac OS X是完全符合 Posix 的 unix 系统,因此您会发现与 Linux 上类似的 IPC 系统。

或者您可能正在使用 Mac OS X System Services,该系统允许一个应用程序访问另一个应用程序的功能。应用程序宣传他们提供的服务。有关更多详细信息,请阅读链接的 Apple 文档。

于 2009-06-04T06:34:16.713 回答
1

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

于 2009-06-03T13:43:58.357 回答