Mac OS X是否具有Microsoft RPC等效功能?

时间:2013-11-08 18:18:24

标签: macos ipc rpc

Microsoft RPC提供了一种可以以函数调用方式完成的IPC机制。这对我的项目来说非常有用,我的主服务将任务委托给子进程,并且可以调用子进程中的函数,就好像它们是在主服务中实现的一样。这消除了在使用其他IPC机制(如命名管道,套接字,protobuf等)时必须序列化抽象数据和定义自定义协议的负担。我知道RPC确实在内部使用它们。

我读过一篇关于implementing COM for Mac OS X的文章,这篇文章可能与我需要的文章最接近。如果我找不到其他方法来实现我需要的IPC类型,我可能会选择COM,但我想我会确保我没有遗漏任何东西。

1 个答案:

答案 0 :(得分:2)

看看"XPC Services"。来自文档:

  

XPC服务由launchd管理,并为单个服务提供服务   应用。它们通常用于将应用程序划分为   较小的部分。这可以通过限制来提高可靠性   如果进程崩溃,则通过限制进程来提高安全性   如果流程受到损害,则会产生影响。

后来在该指南中:

  

NSXPCConnection API是基于Objective-C的API,提供了一个   远程过程调用机制,允许客户端应用程序   在代理对象上调用方法,透明地将这些调用转发给   服务助手中的相应对象,反之亦然。