我目前正在研究在最初专注于 Mac OS X(使用 Cocoa)的项目中支持分布式模型对象(即在多台不同计算机上运行的计算模型)的不同方法。据我所知,有可能在NSProxy
. 但似乎也有一些支持 Objective-C 的 CORBA 实现。
以后可能还需要支持/包括 Windows 机器。在这种情况下,我需要在 Windows 端使用类似 Gnustep 的东西(如果它运行良好,这可能是一个选项)或者想出两种技术的组合。或者手动编写一些东西(当然,这是最不可取的选择)。
我的问题是:
如果您对这两种技术(Cocoa 原生基础架构与 CORBA)都有经验,您能否指出这两种方法的一些关键特性/问题?(编辑:正如我在这个线程中已经指出的那样,到目前为止,iPhone 和 iPad 无法使用远程方法。另一方面,有 CORBA 实现可以在任一平台上运行,例如“ AdORB - CORBA ORB for Mac OS X和 iPhone 操作系统“。)
是否可以按照上述方式将 Gnustep 与 Cocoa 一起使用?[编辑:根据Gnustep 常见问题解答条目 1.1.5这是不可能的,所以使用 Cocoa 的本机基础设施将我锁定在这项技术中。]
使用 Cocoa 的技术在所有 Mac OS 客户端之间以及通过 CORBA 与 Windows 客户端进行通信是否有可能(并且相当可行,即比手动编写网络层更简单)?[编辑:从我现在了解到的情况来看,这是可能的,但肯定不可行。消息必须以两种方式转发,即一个系统需要一个“代理”来将消息从一个系统转发到另一个系统,反之亦然。这本质上等同于手动编写网络层,而没有从
NSProxy
类集群或 CORBA 中获得任何实际好处。]
更新:当灵活性和可扩展性是一个问题时,CORBA 似乎真的是一个更好的匹配。不利的一面是,最初学习和使用它似乎更复杂,请参阅此线程(由 Kristopher Johnson 提供的链接 - 谢谢!)以了解有关实际方面的不同观点。只要通信模式足够简单,Web 服务就是一个可行的选项,请参阅此线程以了解在 iOS 上运行良好的选项。我在这篇文章中总结了我的发现。