Conceptos clave key-concepts
Comprender los conceptos básicos de la monitorización de la concurrencia es esencial para una implementación exitosa. Esta guía explica los componentes básicos fundamentales y cómo funcionan juntos.
Conceptos principales core-concepts
Sesiones
Una sesión representa una instancia de flujo de vídeo activa. Considérelo como un "ticket" que permite a un usuario ver contenido.
Ciclo de vida de sesión
- Creación - Cuando el usuario empieza a ver contenido
- Activo - Mientras el usuario está mirando (mantenido por latidos)
- Finalización - Cuando el usuario deja de ver o la sesión caduca
Propiedades de sesión
{
"sessionId": "unique-session-identifier",
"idp": "identity-provider",
"subject": "user-identifier",
"startTime": "2024-01-15T10:30:00Z",
"expiresAt": "2024-01-15T10:40:00Z",
"metadata": {
"deviceId": "device-123",
"channel": "Channel1",
"contentType": "live"
}
}
Políticas
Políticas son reglas comerciales que definen límites y restricciones para el streaming simultáneo. Determinan cuándo los usuarios pueden iniciar nuevas transmisiones.
Componentes de política
- Reglas: límites y condiciones específicos
- Requisitos de metadatos - Qué datos se necesitan
- Lógica de evaluación - Cómo se aplica la directiva
Política de ejemplo
{
"name": "basic_stream_limit",
"description": "Maximum 3 concurrent streams per user",
"rules": [
{
"type": "maxstreams",
"limit": 3,
"message": "You have reached your maximum of 3 concurrent streams"
}
]
}
Metadatos
Metadatos proporciona contexto sobre cada sesión. Incluye información sobre el dispositivo, el contenido, el usuario y la aplicación.
Categorías de metadatos
deviceId, deviceType, osNamechannel, contentType, assetIdsubject, subscriptionTierapplicationName, applicationPlatformcountry, hbaMetadatos obligatorios frente a opcionales
- Metadatos requeridos - Deben proporcionarse para la creación de la sesión
- Metadatos opcionales: se pueden proporcionar para directivas mejoradas
- Metadatos estándar: campos predefinidos disponibles para todas las aplicaciones
- Metadatos personalizados - Campos específicos de la aplicación que defina
Identidad y autenticación identity-and-authentication
Proveedor de identidad (IdP)
Un proveedor de identidad es el servicio que autentica a los usuarios y proporciona su información de identidad. En la integración con Adobe Pass, suele ser un MVPD.
Ejemplos de IdP
- Compañías de cable (Comcast, Charter, etc.)
- Proveedores de satélite (DirecTV, Dish)
- Servicios de streaming (Netflix, Hulu)
- Operadores de telefonía móvil (Verizon, AT&T)
Asunto
Un asunto es el identificador único de un usuario dentro de un proveedor de identidad. Normalmente, es el ID de cuenta o el ID de suscriptor del usuario.
Administración de sesión session-management
Latidos
Heartbeats son llamadas periódicas API que mantienen las sesiones activas. Le dicen al sistema "este usuario sigue mirando".
Requisitos de Heartbeat
- Frecuencia - Cada 60 segundos (recomendado)
- Propósito: mantener la sesión activa, actualizar metadatos
- Finalización - La sesión caduca si se detienen los latidos
Finalización de sesión
Las sesiones se pueden finalizar de varias formas:
- El usuario deja de ver - La aplicación llama al extremo de DELETE
- La sesión caduca - No se recibió ningún latido en el tiempo de espera
- Infracción de directiva - La nueva sesión finaliza la anterior (FIFO)
- Terminación remota: otro dispositivo termina la sesión
Evaluación de políticas policy-evaluation
Cómo funcionan las políticas
- El usuario solicita un nuevo flujo
- El sistema evalúa las directivas con respecto al uso actual
- Decisión tomada - Permitir o denegar
- Respuesta enviada - Información de éxito o de conflicto
Resolución de conflictos conflict-resolution
¿Qué es un conflicto?
Se produce un conflicto cuando un usuario intenta iniciar un nuevo flujo, pero sobrepasaría sus límites.
Respuesta al conflicto
Cuando se produce un conflicto, el sistema devuelve una respuesta de conflicto 409 con información detallada:
{
"status": "error",
"error": {
"code": "POLICY_VIOLATION",
"message": "Concurrent usage limit exceeded"
},
"evaluationResult": {
"decision": "DENY",
"associatedAdvice": [
{
"adviceType": "rule-violation",
"attributes": {
"rule": "max_streams",
"threshold": 3,
"current": 4,
"conflicts": [
{
"sessionId": "session-123",
"terminationCode": "term-456",
"metadata": {...}
}
]
}
}
]
}
}
Estrategias de resolución
LIFO (Última entrada, primera salida)
- Las sesiones antiguas están protegidas
- Se ha bloqueado la nueva sesión
- IU más sencilla
- Mejor para una visualización prolongada
FIFO (Primero en entrar, primero en salir)
- La nueva sesión finaliza una existente
- El usuario elige qué sesión detener
- Se requiere una IU más compleja
- Mejor para cambiar de contenido
Solicitudes e inquilinos applications-and-tenants
Aplicación
Una aplicación es un programa de software que se integra con la Monitorización de concurrencia. Cada aplicación tiene un ID único y puede tener sus propias políticas.
Ejemplos de aplicaciones
- Aplicación móvil (iOS/Android)
- aplicación web
- Aplicación Smart TV
- Aplicación de decodificador
Inquilino
Un inquilino es una organización que posee una o más aplicaciones. Los inquilinos pueden compartir directivas entre aplicaciones.
Estructura del inquilino
Tenant: "Streaming Company"
├── Application: "Mobile App"
├── Application: "Web App"
└── Application: "TV App"
Entornos environments
Entorno de ensayo
- Objetivo: desarrollo y pruebas
- URL -
https://streams-stage.adobeprimetime.com/v2/ - Credenciales - Identificadores de aplicación de prueba
- Datos - Solo datos de prueba
Entorno de producción
- Propósito: tráfico de usuarios activo
- URL -
https://streams.adobeprimetime.com/v2/ - Credenciales - Id. de aplicación de producción
- Datos - Datos reales del usuario
Flujo de integración integration-flow
Flujo básico
- Autenticación de usuario - Autenticar con Adobe Pass
- Creación de sesión - Crear sesión de CM con metadatos de usuario
- Administración de latidos - Enviar latidos periódicos
- Finalización de sesión - Finaliza cuando el usuario deja de ver
Control de errores
- 404 no encontrado - Administrar solicitudes con ID de sesión no generado por el servicio CM
- 409 conflictos - Controlar violaciones de directivas
- 410 se ha ido - Controlar la finalización de la sesión
- Errores de red - Controlar problemas de conectividad
- Errores de autenticación - Controlar problemas de credenciales