Este artículo de blog será el primero de una serie de tres, que cubrirá las capacidades del AWE SDK de Agama y cómo puede usarse para extender la solución de Agama con observabilidad e insights sobre todas las partes de los componentes y la infraestructura de la plataforma.
Resumen
Crear, gestionar y entregar servicios de video son tareas complejas y desafiantes, con un ritmo de innovación cada vez mayor. La velocidad de la tecnología y la innovación, y las preferencias de los operadores, hacen que la mayoría de las soluciones de distribución de TV y media sean únicas. Los servicios de TV son de gran importancia para los usuarios finales y son sensibles a problemas y degradaciones, por lo que los operadores quieren tener observabilidad sobre el proceso de entrega de extremo a extremo, desde la creación hasta el consumo.
Agama ofrece una solución de observabilidad y analítica de la distribución de video centrada en comprender la calidad, el rendimiento y el uso entregados de extremo a extremo, rastreando los parámetros de los servicios de video. Tener este tipo de capacidades es clave para los operadores, pero no suficiente, ya que habrá otras partes de las soluciones únicas de los operadores que no cubre la observabilidad, pero que siguen siendo vitales para la entrega de los servicios.
Con el Agama AWE SDK damos a los operadores el poder de extender su solución Agama con observabilidad e insights sobre todas las partes de sus componentes únicos de plataforma e infraestructura. El AWE SDK habilita la creación de aplicaciones para el panel de Agama Enterprise que se integran sin fisuras en el entorno Agama, permitiendo a los operadores combinar y observar todos los aspectos relevantes en una única pantalla. También proporciona un entorno de desarrollo completo que facilita desarrollar, mantener y desplegar nuevas funcionalidades sin tener que tocar nada más. La instalación es tan sencilla como arrastrar y soltar.
Introducción
Algo que todos los componentes y soluciones de infraestructura modernos ofrecen son APIs REST (Application Programming Interface), que permiten tanto configuración y control como, en algunos casos, monitoreo y supervisión. Las APIs encajan perfectamente con el tipo de soporte para aplicaciones que ofrece el SDK de Agama.
Como ejemplo, para destacar las capacidades del SDK de Agama y del entorno de desarrollo, vamos a crear una aplicación del panel de Agama que pueda usarse como una presentación de estado genérica de cualquier sistema backend que ofrezca APIs REST adecuadas que respondan con un estado de salud del sistema. Este ejemplo real se creará desde cero e incluirá tanto la lógica de aplicación como la de presentación, así como soporte de configuración por aplicación.
El SDK de aplicaciones del panel de Agama
Una aplicación del panel Agama AWE es un archivo de paquete de software que se puede desplegar en un sistema Agama Enterprise mediante drag & drop o usando el CLI del sistema Enterprise. Es un sistema de archivos comprimido en formato TAR y debe incluir un archivo YAML de manifiesto para definir las propiedades de la aplicación, un archivo index.html y un gancho de función JS que sirva de punto de entrada para la lógica de la aplicación. Con estos criterios en su sitio, el desarrollador puede crear cualquier tipo de aplicación usando archivos CSS, HTML y JavaScript.

La forma más fácil de empezar es usar el ADE (AWE Development Environment), una aplicación disponible para Linux, OSX y Windows 10/11. Esta aplicación hace que el proceso de desarrollo y la construcción de paquetes de aplicación sean directos y sencillos.
El ADE es compatible con cualquier navegador, así que se puede usar Firefox, Chrome, Safari o Edge, según preferencia y sistema operativo. Soporta un modelo de desarrollo con actualización instantánea que refleja los cambios de código y datos inmediatamente, lo que garantiza un proceso de desarrollo rápido e iterativo. Soporta CORS (Cross Origin Resource Sharing), lo que permite al desarrollador, durante el desarrollo inicial y la prueba de concepto, usar APIs REST externas que aún no tienen un proxy CORS por delante o que tienen CORS habilitado, aumentando la velocidad de desarrollo.
La aplicación ADE también trae varias aplicaciones de ejemplo integradas, que pueden usarse en cualquier momento para facilitar aún más empezar a trabajar.
Requisitos de la aplicación
El objetivo de este artículo es crear una aplicación que, además de ser un buen ejemplo práctico, también aporte un uso real para nuestros clientes Agama. Concluimos que para alcanzar un producto mínimo viable para esta aplicación debíamos cumplir los siguientes requisitos:
- Mostrar el estado del sistema backend relevante con un indicador claro usando peticiones REST, mapeando los códigos HTTP a ok/fail, con la posibilidad de especificar:
- Nombre del test, tiempo entre tests
- Tiempo de timeout
- Activo o no
- URI de la API REST
- Códigos HTTP para el mapeo del estado
Con los requisitos definidos, ya estamos listos para comenzar el desarrollo.
Creación del proyecto
Comencemos creando un nuevo proyecto de aplicación. Lo hacemos iniciando la aplicación ADE y, cuando está en marcha, seleccionando la opción de menú «Create Widget project».
Al crear un nuevo proyecto, se te pedirá que apuntes la aplicación ADE a un directorio vacío de tu elección. Elegimos nombrar el proyecto «backend-status». El sistema de archivos se poblará automáticamente con una estructura base de archivos y los archivos necesarios para que sea fácil empezar a programar.

Esta es la estructura de directorios y archivos creada automáticamente. El archivo manifest.json contiene los metadatos de la aplicación que deben completarse para que sea gestionada correcta y unívocamente por Agama Enterprise. En el directorio CSS/ encontramos style.css, que usaremos más adelante para controlar la presentación de la funcionalidad de nuestra aplicación. Y en el directorio js/ encontramos el archivo app.js, que tiene el punto de entrada y el código boilerplate para la correcta inicialización de la app. Usaremos este archivo para la implementación de la lógica de la aplicación un poco más adelante. Una vez creado el proyecto, basta con pulsar el botón «Open in browser», lo que abrirá automáticamente el navegador por defecto del sistema y arrancará la aplicación.
¡Genial, todo se ve estupendo y ya estamos listos para empezar el trabajo de verdad!
Elegir el nombre y el id de la aplicación
El archivo manifest contiene varios campos, la mayoría de ellos autoexplicativos. El id es particularmente importante y se requiere que sea único entre todas las aplicaciones del panel desplegadas en un único Enterprise System.
![]()
La convención que asegura la unicidad incluso en sistemas grandes con muchas aplicaciones es usar una estructura de ruta tipo «punto» que contenga país, empresa, tipo y nombre de la aplicación como id. En este ejemplo, hemos rellenado los campos según los datos de nuestra empresa. La recomendación es que los números de versión se incrementen en uno cuando la funcionalidad ha cambiado.
El punto de entrada de la aplicación
Ya tenemos los metadatos del manifest en su sitio y podemos empezar a echar un vistazo al punto de entrada de la aplicación y al código boilerplate.

Hay tres funciones predefinidas. La primera es onAgamaInitialize, el método principal de registro. Raramente hay que modificar esta función, así que podemos dejarla fuera en este proyecto.
La función onUpdate es el método principal de lógica de la aplicación que la infraestructura del panel de Agama Enterprise llamará regularmente para permitir que la aplicación se actualice; también la llamará en la creación inicial y si la configuración ha cambiado.
La función onConfiguration se llama cuando el usuario solicita la UI de configuración de la aplicación. Como desarrolladores de aplicaciones podemos devolver el JSON Editor estandarizado <link aquí> que expone los parámetros configurables, que usaremos en el siguiente paso.
Configuración
En general, al desarrollar aplicaciones, la configuración es a menudo algo bastante difícil de hacer bien. Muchas veces, en un proyecto, llega bastante tarde, lo que se traduce en soluciones ad-hoc y difíciles de mantener. No es el caso en el framework de Agama, que provee una solución completa para gestionar la carga, el almacenamiento y la validación de las configuraciones específicas de cada instancia de aplicación, y la UI para interactuar con la configuración. Esto baja enormemente el listón para tener un soporte de configuración adecuado y unificado en todas las aplicaciones desarrolladas para la solución Agama.
La imagen siguiente muestra el control de la interfaz de usuario de Agama interactuando con la configuración definida por nuestra aplicación.

Como se mencionó antes, el framework de Agama provee soporte de configuración generalizado basado en el formato de configuración del JSON editor. Esto hace que sea fácil y declarativo añadir toda la configuración que la aplicación necesite.
En nuestros requisitos decidimos permitir la configuración por parte del usuario de varios ajustes: nombre del test, tiempo entre tests, valor de timeout, activo o no, URI de la API REST y códigos HTTP para el mapeo del estado. La imagen siguiente muestra cómo se hacen las definiciones declarativas de estos ajustes y se devuelven mediante la función onConfiguration. La UI de configuración resultante con esta definición se muestra en la figura anterior. Es posible no solo definir parámetros simples con valores por defecto, nombre y tipo, sino también controlar la estructura general en distintas secciones, lo que resulta útil al crear configuraciones más grandes y complejas.
Atento a la parte 2.
Sobre Anders Svensson
Anders es un exitoso ejecutivo tecnológico con más de 20 años de experiencia en las industrias de las telecomunicaciones, la tecnología de la información y el streaming. Es responsable de las elecciones tecnológicas y trabaja en estrecha colaboración con los equipos de gestión de producto y desarrollo para garantizar las mejores condiciones posibles a la hora de crear las soluciones líderes en la industria de Agama.

