Compilación de aplicaciones interactivas mediante las API de Microsoft Graph
En este artículo se describe un patrón de integración común de Microsoft Graph para un escenario empresarial que requiere una interfaz de usuario que pueda crear, actualizar y administrar mensajes de canal en tiempo real. Este escenario depende de los servicios de Microsoft 365, como el envío y la recepción de mensajes de distintos equipos.
Este escenario tiene los siguientes requisitos de arquitectura:
- Un tipo de integración de aplicaciones, ya que se basa en una funcionalidad compleja de Microsoft 365.
- Un flujo de datos bidireccional entre la aplicación y Microsoft 365.
- Un volumen bajo de datos en comparación con los sistemas automatizados basados en interaciones humanas únicas. Sin embargo, en función del número de usuarios, el volumen de datos podría ser alto.
- Una operación de datos en tiempo real en la aplicación, con algunas operaciones asincrónicas del lado servidor, como la entrega de correo electrónico a un cliente remoto.
La mejor opción para esta aplicación es usar las API HTTP RESTful de Microsoft Graph. La aplicación cliente responde a las acciones del usuario y puede realizar solicitudes y procesar los datos a una velocidad controlada por el entorno de cliente.
En el diagrama siguiente se muestra la arquitectura de esta solución.
Componentes de la solución
La arquitectura de la solución incluye los siguientes componentes:
- Azure App Service, que permite compilar y hospedar aplicaciones web, back-end móviles y API RESTful en el lenguaje de programación preferido, sin administrar la infraestructura. Ofrece escalado automático y alta disponibilidad, admite Windows y Linux y permite implementaciones automatizadas desde GitHub, Azure DevOps o cualquier repositorio de Git.
- Microsoft Entra ID es necesario para administrar la autenticación de las API de Microsoft Graph y admite permisos delegados y de aplicación para habilitar el flujo de OAuth.
- SQL Database se usa para almacenar los datos y el estado de la aplicación; este componente es opcional.
- API RESTful de Microsoft Graph, a las que se accede a través de un único punto de conexión:
https://graph.microsoft.com
. - Una aplicación que implementa lógica personalizada.
Consideraciones
Las siguientes consideraciones admiten el uso de este patrón de integración:
Disponibilidad: la aplicación cliente sondea periódicamente las API de Microsoft Graph en busca de datos. La aplicación cliente puede realizar solicitudes y procesar los datos a una velocidad controlada por el entorno de cliente.
Latencia: la aplicación cliente consulta las API de Microsoft Graph para obtener datos en tiempo real; sin embargo, puede haber cierta latencia en función de las condiciones de red y la carga en el servicio Microsoft Graph.
Escalabilidad: la aplicación cliente puede escalar horizontalmente agregando más instancias al plan de App Service. Las API de Microsoft Graph pueden controlar un gran número de solicitudes, pero también tienen límites y directivas para evitar abusos. La aplicación cliente debe implementar lógica de reintento y retroceso exponencial para controlar los errores de limitación correctamente.
Complejidad de la solución: aunque esta solución podría usar el SDK de Microsoft Graph, todavía requiere código personalizado para sondear y procesar los datos. Si el volumen de datos es grande, es posible que el procesamiento secuencial no sea suficiente y que sea necesario el procesamiento paralelo. Por este motivo, esta solución tiene un nivel medio de complejidad.