Rails的,Padrino,和辛纳屈的适宜建设预付费移动业务

问题描述 投票:17回答:1

我工作在移动/ VOIP领域的应用。这对我来说真的是一个灰色地带。以下是有关应用程序的一些细节:

  • 这基本上就像一个自动充值/预付费移动业务
  • 将有比我写以前的ERP应用程序的中等复杂程度的逻辑。
  • 在响应中的视图的部分将是纯文本,这将作为SMS / USSD拉至用户和语音XML(VXML),将作为一个IVR响应用户发送被发送。
  • 路由选择逻辑是非常简单的,因为只需要两到三个URL将对于每种类型的答复的重要。

Constraints:

我们有一个建立在Perl(这是它为许多其他VoIP /手机相关的服务的遗留系统)的核心系统和会计系统来跟踪利润和损失,但它已经变得非常复杂。所以我们决定分开做这个应用程序,并且只使用SMS / USSD和IVR。然而,这个应用程序的每个用户必须进行会计核心系统的注册用户;这一点,我们可以很容易地通过只是一个API调用实现。

现在,用于发送IVR和USSD答复/响应,我们需要部署在提供这些设施的供应商的应用程序。但是,我们不希望总是需要登录到他们的服务器的每日报告和会计的东西,为每一位客户,我们将会对USSD / SMS / IVR系统不同的流量。

所以,我们决定这种新的应用程序将被确实分成两个子应用程序。

  • 一个应用程序将处理与USSD / SMS / IVR域中的用户界面,并会在供应商的服务器,我们将其称为“clientware”部署。
  • 第二个应用程序将处理所有的核心业务逻辑和报告系统,将我们的服务器,在那里我们将有充分的机会上部署。我们将它称为“中间件”。

The basic flow of the application:

  1. 用户拨打短代码。
  2. 请拨打我们的供应商服务器上的土地,其中clientware应用程序将处理该请求并将其注册为在其本地数据库中的用户。
  3. Clientware也将作出API调用中间件。要注册这个用户在那里,以及对核心业务逻辑及时自动充值,等等。
  4. 然后,中间件将也使API调用核心系统注册此用户那边也为会计目的。

现在,会有很多这样的clientware应用程序提供了单一的中间件应用程序进行交互。我们已经决定建立在Ruby中这些应用程序。我会跟随这个RESTful架构,因为很多API调用都参与。

三个框架,RailsPadrino,或Sinatra的,任何人特别适合于这个项目?我将不胜感激详细的相关利弊,如果可能的话,比较不错。

ruby-on-rails ruby comparison sinatra padrino
1个回答
83
投票

我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。祝你好运,希望这是有帮助的。

© www.soinside.com 2019 - 2024. All rights reserved.