Una empresa especializada en sistemas de control de riego para parques, estadios, parques de diversiones y otros espacios de gran escala necesitaba evolucionar su solución principal desde aplicaciones de escritorio monolíticas y servicios heredados hacia una arquitectura moderna capaz de conectar experiencias web, servicios cloud y hardware instalado en cada sitio.
Uno de nuestros desarrolladores participó dentro del equipo del cliente como líder de diseño de solución y arquitecto de la plataforma principal. Su contribución abarcó arquitectura, modernización de software legado, desarrollo frontend y backend, migración de datos, integración con Azure e implementación de comunicaciones IoT en tiempo real.
El alcance implementado se concentraba en la administración de riego para paisajismo y grandes instalaciones. La plataforma conectaba a los operadores con controladores, dispositivos y servicios distribuidos en múltiples ubicaciones.
| Área | Descripción |
|---|---|
| Industria | Riego inteligente para parques, estadios, parques de diversiones y grandes áreas de paisajismo |
| Tipo de producto | Plataforma empresarial conectada con controladores y hardware de riego instalados en múltiples sitios |
| Participación | Liderazgo de diseño técnico, arquitectura de solución e implementación full stack, cloud e IoT |
| Modernización | Aplicaciones monolíticas y servicios heredados hacia aplicaciones orientadas a servicios para la nube |
| Datos | Migración de una base de datos ADS heredada a PostgreSQL |
| Comunicaciones | REST, gRPC con streaming y mensajería MQTT mediante HiveMQ |
| Edge e IoT | .NET 6 sobre computadoras de placa única, incluyendo Raspberry Pi, e integración con tecnologías IoT de Azure |
| Prioridades | Migración gradual, mantenibilidad, interoperabilidad, escalabilidad y comunicación en tiempo real |
La solución debía modernizarse sin tratar el frontend, los servicios, la base de datos, la nube y el hardware como iniciativas separadas. Cada capa dependía de las demás y coexistía con tecnología que ya soportaba operaciones de riego en espacios de gran extensión.
Los principales retos incluían:
El trabajo comenzó con el análisis de dependencias, responsabilidades y puntos de integración de la solución principal. Uno de nuestros desarrolladores ayudó a definir la arquitectura objetivo, los límites entre servicios y los patrones necesarios para que la modernización pudiera realizarse de manera progresiva en lugar de depender de un reemplazo total de alto riesgo.
La arquitectura se orientó a separar responsabilidades, reducir acoplamiento y facilitar que las aplicaciones web, los servicios cloud y los dispositivos instalados en cada ubicación evolucionaran con mayor independencia.
Varias aplicaciones de escritorio monolíticas fueron rediseñadas como aplicaciones orientadas a servicios. Esta transición permitió mover responsabilidades específicas a componentes independientes, establecer contratos más claros y preparar la plataforma para operar con tecnologías de Azure.
El objetivo no era únicamente cambiar de lenguaje o infraestructura, sino modificar la forma en que el sistema se organizaba, desplegaba y comunicaba.
La modernización de datos incluyó la transición desde una base de datos ADS heredada hacia PostgreSQL. El trabajo requirió considerar estructuras existentes, compatibilidad con los nuevos servicios y una estrategia que redujera el riesgo durante la evolución de la plataforma.
PostgreSQL proporcionó una base de datos moderna y ampliamente compatible para los servicios reestructurados y los futuros flujos cloud.
Se desarrollaron componentes con .NET 6 para IoT ejecutados en computadoras de placa única, incluyendo Raspberry Pi. Estos componentes formaban parte del vínculo entre los controladores de riego instalados en sitio y los servicios de la plataforma.
La solución también avanzó hacia tecnologías IoT de Azure para conectar el procesamiento local con capacidades cloud, manteniendo responsabilidades claras entre edge, servicios y aplicaciones cliente.
Para facilitar el desarrollo y la validación sin depender permanentemente del hardware físico, se implementó en .NET un sistema servidor/cliente para simular dispositivos y controladores.
La comunicación se construyó con gRPC y mensajes por streaming, permitiendo intercambios continuos y de baja latencia para representar comportamientos de hardware en tiempo real. Este simulador permitió probar integraciones, estados y respuestas de la plataforma en entornos controlados.
Varios servicios web fueron reestructurados para utilizar flujos de mensajería MQTT, con HiveMQ como broker. El cambio redujo dependencias directas entre productores y consumidores y permitió tratar los eventos de dispositivos y servicios de forma asíncrona.
Este modelo era más adecuado para una plataforma IoT distribuida, donde controladores, servicios y aplicaciones necesitan publicar y consumir información sin mantener una conexión rígida entre cada sistema.
La experiencia Angular, inicialmente orientada a movilidad, continuó evolucionando hasta convertirse en una interfaz empresarial de mayor alcance. Con Angular, TypeScript y SCSS se aplicaron componentes reutilizables, patrones consistentes, manejo claro de estados e integración con servicios REST para presentar información operativa de riego de manera utilizable.
La arquitectura frontend se alineó con la modernización del backend para evitar que la experiencia web se convirtiera en una nueva capa monolítica.
| Área | Tecnologías y prácticas |
|---|---|
| Experiencia web | Angular, TypeScript, HTML5, SCSS y diseño responsivo |
| Servicios | .NET 6, REST APIs y aplicaciones orientadas a servicios |
| Cloud e IoT | Microsoft Azure, Azure IoT y edge computing |
| Hardware | Computadoras de placa única, Raspberry Pi y controladores instalados en sitio |
| Datos | PostgreSQL, base de datos ADS heredada y migración de datos |
| Comunicación en tiempo real | gRPC y mensajes por streaming |
| Mensajería | MQTT y HiveMQ Broker |
| Ingeniería | Patrones de diseño, separación de responsabilidades, Git, revisión de código y entrega iterativa |
La modernización estableció una base más flexible para que una solución de riego conectada a hardware pudiera seguir evolucionando sin depender de una sola aplicación monolítica.
No se publican porcentajes de mejora ni métricas de rendimiento porque no existen mediciones aprobadas para divulgación.
Modernizar una plataforma de riego conectada a hardware que opera en parques, estadios, parques de diversiones y otros espacios de gran escala es más complejo que migrar una interfaz o actualizar la versión de un framework. Requiere coordinar aplicaciones cliente, servicios, bases de datos, mensajería, infraestructura cloud, controladores y procesos de despliegue mientras continúan las operaciones existentes.
Este caso demuestra la capacidad de nuestro equipo para aportar liderazgo arquitectónico en múltiples capas: desde Angular y .NET hasta PostgreSQL, Azure IoT, Raspberry Pi, gRPC y MQTT.
Para proteger la confidencialidad, no se incluyen nombres de productos, diagramas internos, modelos de dispositivos ni detalles operativos del cliente.
Podemos ayudarte a definir una arquitectura de transición, separar aplicaciones monolíticas, migrar datos, conectar dispositivos IoT y construir servicios cloud sin exigir una reescritura completa desde el primer día.