Estoy trabajando en una aplicación en el dominio móvil/VOIP. Esta es realmente una zona gris para mí. A continuación algunos detalles sobre la aplicación:Idoneidad de Rails, Padrino y Sinatra para crear un servicio móvil prepago
- Esto es básicamente como una recarga automática/prepago de servicios móviles
- Tendrá lógica de complejidad media en comparación con aplicaciones ERP anteriores que he escrito.
- Las secciones Vistas en la respuesta serán texto sin formato, que se enviarán como SMS/USSD al usuario y Voice XML (VXML) que se enviará como respuesta IVR a los usuarios.
- La lógica de enrutamiento es muy simple, ya que solo dos o tres URL serán importantes para cada tipo de respuesta.
Restricciones:
Tenemos el sistema de la base construida en Perl (que es un sistema heredado que está sirviendo a muchos otros servicios de VoIP/relacionada con el móvil), y un sistema de contabilidad para realizar un seguimiento de las ganancias y pérdidas, pero se ha vuelto muy complejo. Así que decidimos hacer esta aplicación por separado, y solo usamos SMS/USSD e IVR. Sin embargo, cada usuario de esta aplicación debe ser un usuario registrado del sistema central para fines contables; esto lo podemos lograr fácilmente solo con una llamada API.
Ahora, para enviar una respuesta/respuesta para IVR y USSD, tenemos que implementar la aplicación en el proveedor que proporciona estas instalaciones. Pero no siempre queremos tener que iniciar sesión en sus servidores para obtener informes diarios y material contable, ya que, para cada uno de nuestros clientes, tendremos diferentes flujos para el sistema USSD/SMS/IVR.
Por lo tanto, decidimos que esta nueva aplicación se dividirá en dos sub-aplicaciones.
- Una aplicación manejará la interfaz de usuario con el dominio USSD/SMS/IVR y se implementará en los servidores del proveedor, lo que llamaremos "software cliente".
- La segunda aplicación manejará todos los sistemas de informes y la lógica empresarial básica y se implementará en nuestros servidores, donde tendremos acceso completo. Llamaremos a esto "middleware".
El flujo básico de la aplicación:
- el usuario marca el código corto.
- Llamar aterriza en nuestros servidores de proveedores donde la aplicación cliente gestionará la solicitud y la registrará como usuario en su base de datos local.
- Clientware también realizará una llamada API al middleware. Para registrar a este usuario allí también para la lógica de negocio central, recarga automática oportuna, etc.
- El middleware también realizará una llamada API al sistema central para registrar a este usuario allí también para fines contables.
Ahora, habrá muchas aplicaciones de cliente cliente que interactúan con una sola aplicación de middleware. Hemos decidido crear estas aplicaciones en Ruby. Estaría siguiendo la arquitectura RESTful para esto, ya que hay muchas llamadas API involucradas.
De las tres estructuras, Rails, Padrino, o Sinatra, ¿son algunas de ellas especialmente adecuadas para este proyecto?Apreciaría una buena comparación de pros y contras relevantes, si es posible.
Meta discusión sobre los méritos de esta pregunta es [aquí] (http://meta.stackoverflow.com/q/291301/238886). –