在Cocoa中是否有一种方法目前被认为是创建多层或客户端服务器应用程序的最佳实践?
我是一位经验丰富的网络开发人员,我非常喜欢Python.我虽然是Cocoa的新手.我正在写的应用程序是一个大型医院的患者管理系统.预计系统会随着时间的推移存储大量数据,但在单个会话期间传输的数据非常轻(大多数只是文本).假设通信通过本地网络(有线或无线)发生.当然,它必须是高度安全的.
我能想到的最好的方法是编写一个Python REST Web服务并通过Cocoa应用程序连接到它.也许我甚至会使用Python来编写Cocoa应用程序本身.
看看Cocoa,我在Cocoa中看到了非常棒的技术,比如CoreData,但我找不到任何与客户端服务器开发类似的技术.我只是想确保我没有遗漏任何东西.
你怎么看?
真实世界的例子将不胜感激.
提前致谢.
如果您既可以控制客户端也可以控制服务器,并且只能将客户端限制为OS X,那么我就是Marc的回答.Cocoa的分布式对象是一项了不起的技术,使得RPC风格的客户端 - 服务器应用程序非常容易.
如果上述要求对您来说限制太多,您仍然可以在Cocoa世界中使用许多选项:
您可以使用PyObjC在Python中编写整个客户端应用程序.使用此方法,您可以使用Python标准库中熟悉的标准网络代码.Twisted还与Cocoa运行循环(PyObjC示例代码中的示例)很好地集成,并且在使用Twisted进行网络通信时,我在Cocoa应用程序中获得了很多成功.如果您选择这条路线,您可能希望在Objective-C中编写客户端应用程序代码并将python代码作为插件加载(使用NSBundle).PyObjC py2app
可以从python代码编译可加载的包.
您可以使用NSURLConnection对基于HTTP的服务器进行高级访问.
降低抽象级别,您可以使用Cocoa的NSStream来实现您的网络协议.类文档是在这里,链接到示例代码演示HTTP和SOAP协议.
您可以进一步降低级别并使用CFNetwork类.NSStream基于CFNetwork,但您可以使用CFNetwork对该线路进行较低级别的控制.
最后,用于客户端 - 服务器体系结构的Apple技术是WebObjects框架.