我工作在移动/ VOIP领域的应用。这对我来说真的是一个灰色地带。以下是有关应用程序的一些细节:
我们有一个建立在Perl(这是它为许多其他VoIP /手机相关的服务的遗留系统)的核心系统和会计系统来跟踪利润和损失,但它已经变得非常复杂。所以我们决定分开做这个应用程序,并且只使用SMS / USSD和IVR。然而,这个应用程序的每个用户必须进行会计核心系统的注册用户;这一点,我们可以很容易地通过只是一个API调用实现。
现在,用于发送IVR和USSD答复/响应,我们需要部署在提供这些设施的供应商的应用程序。但是,我们不希望总是需要登录到他们的服务器的每日报告和会计的东西,为每一位客户,我们将会对USSD / SMS / IVR系统不同的流量。
所以,我们决定这种新的应用程序将被确实分成两个子应用程序。
现在,会有很多这样的clientware应用程序提供了单一的中间件应用程序进行交互。我们已经决定建立在Ruby中这些应用程序。我会跟随这个RESTful架构,因为很多API调用都参与。
三个框架,Rails,Padrino,或Sinatra的,任何人特别适合于这个项目?我将不胜感激详细的相关利弊,如果可能的话,比较不错。
我Padrino的创造者之一,但我还广泛地与Rails和Sinatra的工作。也许不是你想要听到的,但无论你选择什么样的,你就能得到这个项目建成后很容易。我不能说捡一个会影响你在很多的宏伟计划采摘任何其他。
我明明的机架和西纳特拉的模块化与轻质性质的支持者。机架之间,机架中间件,西纳特拉和扩展,你可以,如果你愿意了解的工具做成任何事情一样轻松地在轨道上。
我认为,西纳特拉和Padrino具有较低的学习曲线,红宝石新人。这是因为他们提倡“采取什么样的,你需要”和“渐进的复杂性”远远超过了更多的“把它一下子”更好的Rails的做法,但在另一方面Rails有更多的文档,博客,支持等,所以交易权衡是明确的。西纳特拉和Padrino也更内存占用,每秒请求数,CPU使用率等,但Rails的条款“快”和“轻”是足够快的大多数情况下,应用程序服务器是很少的瓶颈反正。
说了这么多,我会尽量给你一个更直接的意见。如果你正在做什么,但一个服务API(这听起来像在这里),我会建议使用西纳特拉,Padrino或我们的蕾妮在钢轨甚至另一个项目。 Rails是矫枉过正的大多数措施的轻量级服务API。
进一步缩小下来,Padrino是西纳特拉,所以你不必在它们之间做出选择。您可以从Padrino与西纳特拉开始,包括standalone modules,或引擎盖下使用全栈Padrino应用程序,它仍然是西纳特拉与一个很小的性能损失获得了很多强大的功能(国际化,记录,管理面板,高速缓存,发电机,形式佣工,邮件等)。请记住,这些都是“带他们只有当你需要他们的”模块化扩展。
我建议您查看我们的Padrino Getting Started指南开始探索西纳特拉和Padrino的地方。我们Padrino指南和文档力求彻底。这就是说,“安全”的选择是Rails的,因为它有很多更多的使用,是比较成熟的,有更多的贡献者和更多的文档/ googleability。祝你好运,希望这是有帮助的。