Compilación de aplicaciones interactivas de Microsoft Graph con fuente en tiempo real
En este artículo se describe un patrón de integración común de Microsoft Graph para un escenario empresarial que se basa en los datos y la funcionalidad del servicio de correo electrónico de Microsoft 365. Usa las API de Microsoft Graph para leer datos, llamar a operaciones de correo electrónico y recibir notificaciones de cambio de Microsoft Graph mediante webhooks a través del canal webSocket. Este escenario tiene los siguientes requisitos de arquitectura:
- Un tipo de integración de aplicación.
- Un flujo de datos bidireccional entre Microsoft 365 y la aplicación.
- Un volumen de datos bajo, ya que sirve a un solo usuario.
- Latencia de datos media aceptable para las notificaciones push.
Este patrón usa varias opciones de integración de Microsoft Graph, incluidas las API, las notificaciones de cambios y, opcionalmente, las API de seguimiento de cambios. Para recibir notificaciones de cambios a través de WebSocket, la aplicación usa el SDK de SignalR, que abstrae y simplifica la administración de WebSocket.
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:
- Microsoft Entra ID, que 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.
- Servicios de notificaciones de Microsoft Graph, que administra las suscripciones de notificación y entrega notificaciones de cambios a las aplicaciones cliente.
- 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 móvil personalizada que implementa lógica personalizada y webhooks y se comunica con Microsoft Graph.
Consideraciones
Las siguientes consideraciones admiten el uso de este patrón de integración:
Disponibilidad: la aplicación personalizada debe estar altamente disponible en el dispositivo perimetral y puede admitir un modo sin conexión cuando una conexión a Internet confiable no está disponible.
Latencia: las API HTTP RESTful de Microsoft Graph suelen responder en un segundo, pero la latencia general depende de la velocidad de conexión a Internet. Las notificaciones de Microsoft Graph se generan en segundos después del cambio, pero su entrega depende de la conexión a Internet, los acuerdos de nivel de servicio del proveedor móvil y la disponibilidad de webhook.
Escalabilidad: los servicios de Microsoft Graph son altamente escalables, se distribuyen geográficamente y admiten solicitudes y notificaciones para millones de clientes.
Complejidad de la solución: esta solución requiere código personalizado para organizar las API, mantener suscripciones de notificación y recibir notificaciones de cambio a través de webhooks. Aunque esta solución no requiere elasticidad, debe admitir a los usuarios en diferentes condiciones de red y, potencialmente, controlar una ráfaga de notificaciones de cambios. Por lo tanto, esta solución es muy compleja.