@Jesper:脚本桥有问题,appscript 和 RubyOSA 实际上已经死了,所以你不应该推荐它们。
...
@boj:询问 AppleScript 语言本身是否“企业就绪”是一个错误的问题,因为到目前为止,这是您最不担心的问题。你应该问的是:
“我可以用在桌面硬件上运行的桌面软件构建高可靠性的无头系统吗?”
和:
“Apple 是服务器端的正确选择吗?”
iOS 可能是一个很好的面向消费者的移动平台,而 OS X 可能是一个不错的桌面操作系统,但就服务器机房而言,我不会用 bargepole 碰它们,除非它们是绝对最后也是唯一的选择(例如,你被卡住了)使用 OS X Server 的专有服务之一,别无选择)。虚拟化不是一个好主意 IME 和 LOM 和机架就绪机箱等企业基础知识都不是初学者。并且不要忘记苹果公司倾向于在很少或根本没有提前警告的情况下突然/彻底修改其产品线、功能和服务。如果您想要企业级的稳定性、可预测性和支持,请坚持使用 Linux 和/或 Windows boxen。
在您的情况下,您正在谈论使用 iMessage,因为那是 1. 专有协议,以及 2. Apple 迄今为止尚未公开底层 API,那么这确实会缩小您的选择范围。您可能应该问自己的第一件事:您确定无法使用 SMS 实现合适的解决方案,它既是开放的,又在企业级已经得到很好的支持?我认为您可以为此制定一个强有力的商业案例:运行它可能会花费更多,但指出他们正在为稳定性和可靠性以及(您希望)专业构建的系统付费。
相比之下,您围绕 Messages.app 构建的任何东西都将是业余爱好者的补充。如果你被迫走上这条路,你最好做你的研究,不要提前做出任何承诺。例如:
什么可能导致您的系统失败(例如,在无头盒子上弹出的应用程序对话框是一个严重的 PITA,并且不排除应用程序崩溃、连接问题和其他可能性,直至并包括盒子本身死亡)?
您正在考虑什么样的停机时间,任何故障的成本影响是什么?(即,您对该服务的预期 SLA 是多少?)如果它是远程关键业务或公司要求的超过 2 个 9 的正常运行时间,则运行,不要走,现有的解决方案。
当出现问题时,您有哪些恢复/重新启动系统的选项(例如,您是否会尝试进行一些自动故障转移,或者让某人远程进入盒子尝试修复它,或者是否有现场管理员来循环电源),是否有任何数据丢失或您需要担心的其他问题?(例如,您可能希望将业务逻辑和数据库保存在单独的 Win/Linux 机器上,以便系统不会丢失 OS X 机器播放/重新启动时所在的位置。)
关于系统维护的问题是什么:如果您无法访问或不再存在,其他人是否能够在没有您的情况下维护代码和/或部署的系统?
顺便说一句,WWDC 和 10.9 现在离我们不远了,所以我建议先看看 iMessage API 是否会在 10.9 中公开,然后再花时间在 AppleScript 和 Messages.app 上。如果/当消息传递 API 打开时,它将允许您在 ObjC 中构建更强大的服务,但请注意,您仍将被绑定到 OS X 以开发和运行它。