Así es Pylm, la librería para generar componentes que se comuniquen entre ellos

2 min lectura
Desarrollo / 26 octubre 2016
Así es Pylm, la librería para generar componentes que se comuniquen entre ellos
Así es Pylm, la librería para generar componentes que se comuniquen entre ellos

BBVA API Market

Todas las aplicaciones se dividen en frontend y backend, es decir, lo que ve y lo que no puede ver un usuario. Tras la irrupción de los dispositivos móviles lo que es seguro es que el frontend ahora puede ser una página web o una app.

Es imprescindible que el frontend sea intuitivo, interactivo, ligero y reactivo. Para perseguir ese objetivo han surgido muchos paquetes: Angular, Ember, Polymer o React. El modelo que propone es muy simple: generar componentes extensibles y reutilizables para desarrollar aplicaciones completas pieza a pieza.

El nuevo modelo de frontend está continuamente demandando datos al backend, que debe adaptarse a ese entorno en constante evolución. Ya se está trabajando en desarrollar la nueva generación de frontend. El backend, lo que el usuario no ve, suele ser bastante más complejo, ya que puede contener aplicaciones antiguas que deben entenderse con nuevas, datos públicos que se mezclan con privados, etc.

Están surgiendo varias propuestas para mejorar este proceso, como utilizar una arquitectura de microservicios en la que cada pieza del frontend se comunica con una parte del backend aislada, con todos sus procesos y datos. Es una propuesta atractiva que reduce la complejidad, pero implica rediseñar y reimplementar gran parte de la aplicación, por lo que no siempre es viable. 

Guillem Borrell ha desarrollado otra propuesta: Pylm, la implementación en Python de PALM. Se trata de una librería para generar componentes que se comuniquen entre ellos para construir una aplicación. Sería equivalente a tener una máquina capaz de crear nuestras propias piezas de Lego para, acto seguido, construir un juguete.

PALM se ha diseñado para implementar aplicaciones que reciben peticiones a través de Internet y deben realizar cálculos complejos y pesados. PALM simplifica el proceso al ofrecer patrones para generar cada una de las piezas (el maestro, los esclavos, el servidor web…) y conectarlas entre sí.

Una de las características de Pylm es su extensibilidad. En uno de los primeros proyectos en los que se utilizó, una aplicación que analiza los riesgos asociados a fallos de instalaciones industriales, el flujo de comunicación era particularmente exótico.

A partir de un mensaje de inicio y configuración, el maestro mandaba un mensaje a cualquier esclavo, que podía retornar uno o varios mensajes al maestro, que a su vez repartía más carga de vuelta a los esclavos. Además, había que reciclar la mayoría del código escrito en C++. Tradicionalmente este tipo de aplicaciones utilizan colas de mensajes (ZeroMQ o RabbitMQ) y se implementan ad-hoc, pero con Pylm el maestro que controla el flujo de mensajes se configuró en menos de una hora usando piezas que ya estaban disponibles.

Aunque el principal objetivo de PALM es la versatilidad, no se deja el rendimiento de lado. Se ha utilizado en una aplicación como alternativa a Spark para implementar un sistema de balanceo de carga y se demostró que el rendimiento de Pylm era ligeramente superior y con un menor tiempo de desarrollo.

Algunos de los componentes de Pylm se están utilizando en soluciones propietarias de NFQ Solutions para el análisis de riesgos financieros. Es de software libre y su primera versión pública se ha presentado recientemente en Almería, en la última conferencia nacional de Python.

También podría interesarte