Microsoft RPC提供了一种可以以函数调用方式完成的IPC机制。这对我的项目来说非常有用,我的主服务将任务委托给子进程,并且可以调用子进程中的函数,就好像它们是在主服务中实现的一样。这消除了在使用其他IPC机制(如命名管道,套接字,protobuf等)时必须序列化抽象数据和定义自定义协议的负担。我知道RPC确实在内部使用它们。
我读过一篇关于implementing COM for Mac OS X的文章,这篇文章可能与我需要的文章最接近。如果我找不到其他方法来实现我需要的IPC类型,我可能会选择COM,但我想我会确保我没有遗漏任何东西。
答案 0 :(得分:2)
看看"XPC Services"。来自文档:
XPC服务由launchd管理,并为单个服务提供服务 应用。它们通常用于将应用程序划分为 较小的部分。这可以通过限制来提高可靠性 如果进程崩溃,则通过限制进程来提高安全性 如果流程受到损害,则会产生影响。
后来在该指南中:
NSXPCConnection
API是基于Objective-C的API,提供了一个 远程过程调用机制,允许客户端应用程序 在代理对象上调用方法,透明地将这些调用转发给 服务助手中的相应对象,反之亦然。