由于iPhone / iPad的巨大渗透,我们的合作伙伴有了新的要求。
我们可以用AppleScript解决这些问题(即发送iMessages),但这个脚本系统企业是否准备就绪?我的意思是,
请分享您的经验和见解。
答案 0 :(得分:2)
AppleScript是一种你可以轻松试验的语言,所以我只想尝试一些东西,看看它是否按你想要的方式工作,然后如果成功的话就充实了。人们已经使用AppleScripts来编写完整的Cocoa应用程序,但我从未想过它适用于类似的东西。
答案 1 :(得分:2)
AppleScript可以分为两层 - Open Scripting Architecture层和AppleScript语言。
Open Scripting Architecture便于发送和响应Apple Events,这是通过应用程序发送的内容。使用Open Scripting Architecture,可以在不使用AppleScript的情况下使用相同的功能。
例如,Apple提供the Scripting Bridge framework,您可以使用它在Objective-C和Cocoa中编写此代码(以及其他代码本身可以与Cocoa桥接的扩展)。
还有其他语言的其他库,例如Ruby rb-appscript and rubyosa libraries和the Python library appscript。
所有这些都是学习AppleScript的可行替代方案,可能更适合手头的经验和能力,因为AppleScript显然是一种后天的品味,需要花费更长的时间来掌握,而不是语法使它看起来,哪个是很难有效地用于其他用途而不是OSA脚本。
答案 2 :(得分:2)
@Jesper:Scripting Bridge存在问题,appscript和RubyOSA实际上已经死了,所以你不应该推荐它们。
...
@boj:询问AppleScript语言本身是否“企业就绪”是错误的问题,因为这是您最不担心的问题。你应该问的是:
“我可以用桌面硬件上运行的桌面软件构建高可靠性无头系统吗?”
和:
“Apple是服务器端的正确选择吗?”
iOS可能是一个优秀的面向消费者的移动平台,OS X是一个体面的桌面操作系统,但就服务器机房而言,我不会用bargepole触摸它们,除非它们是绝对的最后也是唯一的选择(例如你被卡住了)使用OS X Server的专有服务之一,没有其他选择)。虚拟化并不是一个好主意IME和企业基础知识(如LOM和机架式机箱)都不是启动器。并且不要忘记Apple倾向于突然/彻底地修改其产品线,功能和服务,几乎没有预先警告。如果您需要企业级稳定性,可预测性和支持,请坚持使用Linux和/或Windows boxen。
在你的情况下,你正在讨论使用iMessage,因为那是1.一个专有协议,2。Apple迄今为止尚未公开底层API,这确实缩小了您的选择范围。首先你应该问自己:你是否确定你无法通过短信获得合适的解决方案,这种方式既开放又在企业级得到很好的支持?我认为你可以为此做一个强有力的商业案例:运行可能会花费更多,但指出他们为稳定性和可靠性付出了代价,并且(你希望)是一个专业构建的系统。
相比之下,你在Messages.app周围建立的任何东西都将是业余的抨击。如果你被迫走上这条路,你最好做你的研究,不要提前做出任何承诺。例如:
什么可能导致您的系统失败(例如,在无头盒子上弹出的应用程序对话框是一个严肃的PITA,并且不会打折应用程序崩溃,连接问题和其他可能性,直到并包括盒子本身死亡)?
您在考虑什么样的停机时间,以及任何失败的成本影响是什么? (即你对这项服务的预期SLA是多少?)如果它对任何远程业务至关重要或企业的要求超过,比如两个9的正常运行时间然后运行,请不要走,到现有的解决方案。
当出现问题时,您有什么选择恢复/重新启动系统(例如,您是否会试图通过审核进行某些自动故障转移,或者让某人远程进入框中以尝试修复它,或者是否有现场管理员循环电源),是否有任何数据丢失或其他问题需要担心? (例如,您可能希望将业务逻辑和数据库保存在单独的Win / Linux机器上,以便系统不会丢失OS X框播放/重新启动时的位置。)
有关系统维护的协议是什么:如果您无法访问或不再存在,是否有其他人能够在没有您的情况下为代码和/或已部署的系统提供护理?
BTW,WWDC和10.9现在还不算太远,所以我建议等待在10月9日公开iMessage API,然后再花点时间在AppleScript和Messages.app上。如果/当打开消息传递API时,它将允许您在ObjC中构建更强大的服务,但是请注意,您仍然需要绑定到OS X才能开发和运行它。