No lo he hecho, pero lo he pensado: mantendría la aplicación web y Mahout separadas, y usaría MySQLJDBCDataModel
(o similar) para extraer datos de la base de datos de la aplicación web y exponer recomendaciones sobre una API JSON para consumo ya sea por el backend de la aplicación web o directamente desde el frontend. Esto tiene las siguientes ventajas:
- Las máquinas para la aplicación web y Mahout podrían tener diferentes configuraciones de hardware. También podría emplear diferentes estrategias de escala.
- La falla del sistema de recomendación no derribaría su aplicación web, si la aplicación web pudiera permitirse no tener buenas recomendaciones y se programó correctamente.
- Esto es probablemente bastante trivial, pero podría escribir su aplicación web no en Java. Cualquier idioma que elija probablemente admitirá JSON y HTTP.
Se podría usar una opción más eficiente si solo consume la API desde el backend, por ejemplo, algo como ZeroMQ. También trataría de almacenar en caché donde sea apropiado.
- Desarrollo web front-end: ¿Qué sitios web grandes tienen el marcado más limpio?
- Cómo obtener un proyecto de desarrollo web que también me dará dinero
- ¿Qué tan importante es un dominio .com para una aplicación web exitosa dado que todos los buenos nombres se han ido?
- ¿Cuáles son algunas aplicaciones web creadas con Meteor.js?
- ¿Cuál es la diferencia entre NodeJS y Ruby on Rails basado en experiencias del mundo real?