Drupal ECA gana en los Splash Awards 2022 de Alemania y Austria
Resumen
Toda la potencia de Drupal también es accesible para todos los constructores de sitios con ECA y BPMN UI para automatizar procesos y personalizar el comportamiento de Drupal (hooks) sin necesidad de programar.
Descripción del proyecto
ECA es un proyecto de la comunidad de Drupal, iniciado por LakeDrops, que reinició el enormemente popular módulo Rules de la era pre-Symfony y desarrolló una solución tecnológicamente avanzada, lista para la producción y escalable en 11 meses. Poco después del inicio del proyecto, OpenCampus GmbH, de Múnich, se unió al proyecto, ya que ellos mismos tenían un plan casi congruente para sus propios productos con el prototipo ya existente de ECA y querían empezar.
Los vídeos se pueden encontrar aquí: https://tube.tchncs.de/c/eca/videos
Los expertos en Drupal de LakeDrops y OpenCampus, complementados por otros autónomos de la comunidad de Drupal, trabajaron con mucha presión y con objetivos claros (véase la siguiente sección) en mente casi día y noche, y pudieron lanzar la tan esperada versión 1.0.0 en julio de 2022.
Las innumerables charlas y talleres en Drupal Meetups y Camps de todo el mundo ya mostraron durante el desarrollo de ECA y sus módulos adicionales lo ansiosa que estaba toda la comunidad de Drupal por encontrar exactamente esta solución. Y apenas 2 meses después del lanzamiento oficial, cientos de sitios Drupal ya están utilizando este proyecto. Los comentarios en la cola de incidencias, en Slack y en otros canales son abrumadores y constantemente positivos.
Objetivos y resultados del proyecto
El objetivo original surgió de un proyecto de un cliente para migrar una intranet muy compleja de Drupal 7 a Drupal 9. Todos los componentes de Drupal 7 que seguían siendo necesarios estaban también disponibles para Drupal 9; sólo el módulo Rules, que se utilizaba de forma muy extensa en Drupal 7, estaba todavía en un estado alfa que no inspiraba mucha confianza.
Después de analizar repetidamente el módulo Rules, llegamos a la conclusión, junto con el cliente, de que Rules no podía completarse para Drupal 9 con la arquitectura actual. En su lugar, era necesario un enfoque totalmente nuevo basado en el marco Symfony ya existente.
Otro objetivo era separar el procesador de la interfaz de usuario. Así, el procesador necesita su propio formato de configuración, del que recibe las instrucciones que se ejecutan en segundo plano durante el funcionamiento en vivo del sitio Drupal. El rendimiento juega un papel decisivo. En ningún caso debe ser peor que el de un módulo personalizado que se escriba alternativamente.
La interfaz de usuario debe desarrollarse por separado, si es posible, y así ser intercambiable. La interfaz de usuario debería implementar un estándar independiente de Drupal, para que el mayor número posible de interesados pueda participar en el proceso de configuración, revisión y mantenimiento de las normas y reglamentos en el cliente. Uno de estos estándares para describir los procesos empresariales es BPMN, que está reconocido mundialmente y para el que existen amplias herramientas que pueden integrarse.
La capacidad de mantenimiento a largo plazo y la facilidad de ampliación eran preocupaciones importantes tanto para el cliente como para el equipo de desarrollo. En este contexto, se tomó una de las decisiones arquitectónicas más importantes: El ECA no debe tener más dependencias que el núcleo de Drupal y debe utilizar todas las API existentes, es decir, no volver a desarrollar lo que ya existe.
Todos estos objetivos se cumplieron en sólo 11 meses de desarrollo:
- Proporcionar una vía de actualización para todos los sitios de Drupal 7 que antes no podían actualizar debido a la falta del módulo Rules
- Arquitectura de software de vanguardia en el contexto de Symfony
- La mejor cobertura de pruebas posible
- Conjunto completo de funciones para todos los eventos, condiciones y acciones disponibles en Drupal
- El módulo ECA no tiene más dependencia que el núcleo de Drupal
- Alrededor de ECA hay un ecosistema de rápido crecimiento ya unas semanas después del lanzamiento de la versión 1.0.0 con más módulos, que integran ECA con importantes módulos contrib y los hacen disponibles en ECA
- Para la interfaz de usuario, un modelador BPMN totalmente funcional podría integrarse en Drupal con bpmn.io, que guarda todos sus modelos en el formato de configuración de ECA
- Incluso ya está disponible un segundo modelador, que funciona de forma muy simplificada utilizando la API de formularios de Drupal, apoyando así la afirmación de que el procesador ECA no sólo está completamente separado de la UI, sino que ésta también es intercambiable
Además de la consecución de este objetivo completo, también nos quedó claro durante el proyecto que habíamos conseguido algo más no previsto con ECA y su ecosistema: ECA y bpmn.io juntos permiten la completa personalización, ampliación y automatización de todas las capacidades de Drupal sin necesidad de programación. Esto significa que ahora Drupal también se adentra en el terreno del "Low Code - No Code", un requisito que no sólo es moderno, sino que está totalmente en consonancia con la dirección estratégica de Drupal desde la última nota de Dries: empoderar a los creadores de sitios y darles herramientas para facilitar su trabajo.
Desafíos
El mayor obstáculo antes de que comenzara el proyecto era si realmente sería factible no sólo desarrollar un sustituto del extensísimo módulo Rules, sino también llevarlo a un nivel de producción y mantenerlo allí. Sin embargo, cuando conseguimos construir un prototipo que funcionaba en pocas semanas gracias a los componentes existentes, la decisión fue fácil.
La pandemia supuso otro reto. El equipo de desarrollo, algunos de los cuales ni siquiera se conocían de antemano, no se reunió en persona ni una sola vez durante todo el proyecto. La coordinación del desarrollo se llevó a cabo completamente a través de la cola de problemas, complementada con videoconferencias cada dos semanas. Esto no estuvo exento de conflictos a veces, lo que es más probable que ocurra en un entorno de trabajo así que en entornos presenciales. Pero incluso estos obstáculos se superaron, y todos los participantes informaron de experiencias muy útiles y efectos de aprendizaje en este sentido después.
Contribuciones de la comunidad
El proyecto completo es un proyecto comunitario. Sin embargo, merece la pena enumerar aquí los componentes individuales:
- Módulo principal de ECA (https://www.drupal.org/project/eca) con 13 submódulos incluidos:
- ECA Acceso: eventos y acciones para el control de acceso de las entidades y sus campos.
- ECA Base: Eventos, condiciones y acciones básicas
- ECA Caché: Acciones para escribir datos en la caché, para leer datos de la caché o para invalidar la caché.
- ECA Config: Eventos relacionados con la gestión de la Config de Drupal.
- ECA Contenido: Eventos, condiciones y acciones en torno a las entidades de contenido
- ECA Formulario: Eventos, condiciones y acciones en torno a la API de formularios.
- ECA Log: Eventos y acciones en torno al sistema de registro de Drupal
- ECA Migrate: Eventos del módulo Drupal Core Migrate
- ECA Misc: Varios eventos y condiciones del núcleo de Drupal y del núcleo.
- ECA Cola: Eventos, condiciones y acciones en torno al sistema de colas
- ECA Usuario: Eventos, condiciones y acciones en torno a las cuentas de usuario
- ECA Vistas: Acciones con las que se pueden ejecutar las vistas y, si es necesario, exportarlas.
- ECA Flujo de trabajo: Acciones en torno al flujo de trabajo y la moderación de contenidos de Drupal Core.
- Otros submódulos:
- ECA UI
- ECA Desarrollo
- Modelador
- BPMN.io (https://www.drupal.org/project/bpmn_io)
- Camunda (https://www.drupal.org/project/camunda)
- ECA Core Modeller (https://www.drupal.org/project/eca_cm)
- Otros módulos contributivos
- ECA Contexto (https://www.drupal.org/project/eca_context)
- ECA Entity Share (https://www.drupal.org/project/eca_entity_share)
- ECA Flag (https://www.drupal.org/project/eca_flag)
- ECA Parámetros (https://www.drupal.org/project/eca_parameters)
- ECA Máquina de Estado (https://www.drupal.org/project/eca_state_machine)
- ECA Manipulación (https://www.drupal.org/project/eca_tamper)
- ECA VBO (https://www.drupal.org/project/eca_vbo)
- ECA Formulario web (https://www.drupal.org/project/eca_webform)
- Acciones de grupo (https://www.drupal.org/project/group_action)
- Guía ECA en https://ecaguide.org - aquí puedes encontrar la documentación completa, una biblioteca con ejemplos, tutoriales, vídeos y mucho más.
¿Por qué este proyecto debería ganar los premios Splash?
Este proyecto es único en muchos aspectos y sirve como ejemplo alentador del poder de Drupal y de la comunidad. No sólo fue posible completar unas 3.000 horas de trabajo de desarrollo en sólo 11 meses hasta llegar a una solución acabada sin interminables negociaciones presupuestarias previas, sino que 2 empresas - LakeDrops y OpenCampus - se asociaron para hacer este proyecto sencillo y completamente de código abierto en drupal.org.
Este valor añadido, seguramente de medio millón de euros o más, no es sólo una ganancia monetaria para Drupal, sino que también resuelve otro problema cada vez más urgente: a día de hoy, más de 150.000 sitios de Drupal 7 siguen utilizando el módulo Rules y, con diferencia, la mayor parte no ha podido migrar a Drupal 9 debido a la falta de soporte de Rules. Este bloqueo será resuelto por este proyecto y debería ser muy útil para todo el ecosistema de Drupal.
Crédito: Esta aplicación se publicó originalmente en alemán en el sitio web de Splash Award y se volvió a publicar aquí con amable permiso.
Añadir nuevo comentario