Viktiga begrepp key-concepts
Det är viktigt att förstå de centrala begreppen för övervakning av samtidig användning (Concurrency Monitoring) för att implementeringen ska lyckas. Den här guiden förklarar de grundläggande byggstenarna och hur de fungerar tillsammans.
Kärnbegrepp core-concepts
Sessioner
En session representerar en aktiv videoströmningsinstans. Tänk på det som en biljett som gör att en användare kan titta på innehållet.
Sessionslivscykel
- Skapande - När användaren börjar titta på innehåll
- Aktiv - När användaren tittar (bevaras av hjärtslag)
- Uppsägning - När användaren slutar titta på eller sessionen upphör
Sessionsegenskaper
{
"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"
}
}
Profiler
Principer är affärsregler som definierar begränsningar och begränsningar för samtidig direktuppspelning. De avgör när användare kan starta nya strömmar.
Principkomponenter
- Regler - Specifika begränsningar och villkor
- Metadatakrav - Vilka data krävs
- Utvärderingslogik - Hur principen tillämpas
Exempel
{
"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"
}
]
}
Metadata
Metadata ger kontext om varje session. Den innehåller information om enheten, innehållet, användaren och programmet.
Metadatakategorier
deviceId, deviceType, osNamechannel, contentType, assetIdsubject, subscriptionTierapplicationName, applicationPlatformcountry, hbaObligatoriska och valfria metadata
- Obligatoriska metadata - måste anges för att sessionen ska kunna skapas
- Valfria metadata - Kan anges för utökade profiler
- Standardmetadata - fördefinierade fält tillgängliga för alla program
- Anpassade metadata - programspecifika fält som du definierar
Identitet och autentisering identity-and-authentication
Identitetsleverantör (IdP)
En identitetsleverantör är den tjänst som autentiserar användare och tillhandahåller deras identitetsinformation. I Adobe Pass-integration är detta vanligtvis en MVPD.
IdP-exempel
- Kabelföretag (Comcast, Charts osv.)
- Satellitleverantörer (DirectTV, Dish)
- Direktuppspelningstjänster (Netflix, Hulu)
- Mobiloperatörer (Verizon, AT&T)
Ämne
Ett ämne är den unika identifieraren för en användare inom en identitetsleverantör. Detta är vanligtvis användarens konto-ID eller prenumerations-ID.
Sessionshantering session-management
Hjärtslag
Heartbeats är periodiska API-anrop som håller sessionerna aktiva. De säger till systemet att "den här användaren fortfarande tittar".
Krav för pulsslag
- Frekvens - var 60:e sekund (rekommenderas)
- Syfte - Håll sessionen aktiv, uppdatera metadata
- Uppsägning - Sessionen förfaller om pulsslag avbryts
Sessionsavslut
Sessioner kan avslutas på flera sätt:
- Användaren slutar titta på - DELETE-slutpunkten anropas
- Sessionen upphör - Inga pulsslag har tagits emot inom tidsgränsen
- Principöverträdelse - Ny session avbryter gammal session (FIFO)
- Fjärravslutning - en annan enhet avbryter sessionen
Policyutvärdering policy-evaluation
Hur policyer fungerar
- Användaren begär en ny ström
- Systemet utvärderar principer mot aktuell användning
- Beslut har fattats - Tillåt eller neka
- Svaret har skickats - Information om lyckad eller konflikt
Konfliktlösning conflict-resolution
Vad är en konflikt?
En konflikt inträffar när en användare försöker starta en ny ström men skulle överskrida sina begränsningar.
Konfliktsvar
När en konflikt inträffar returnerar systemet ett 409-svar i konflikt med detaljerad information:
{
"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": {...}
}
]
}
}
]
}
}
Strategier för resolution
LIFO (senaste in, första ut)
- Gamla sessioner är skyddade
- Ny session är blockerad
- Enklare gränssnitt
- Bättre för utökad visning
FIFO (först in, först ut)
- Ny session avbryter en befintlig session
- Användaren väljer vilken session som ska stoppas
- Mer komplext användargränssnitt krävs
- Bättre för innehållsväxling
Program och innehavare applications-and-tenants
Program
Ett program är ett program som integreras med Concurrency Monitoring. Varje program har ett unikt ID och kan ha egna profiler.
Programexempel
- Mobilapp (iOS/Android)
- Webbprogram
- Smart TV-app
- Set-top box application
Klientorganisation
En klientorganisation är en organisation som äger ett eller flera program. Innehavare kan dela policyer mellan olika program.
Innehavarstruktur
Tenant: "Streaming Company"
├── Application: "Mobile App"
├── Application: "Web App"
└── Application: "TV App"
Miljö environments
Mellanlagringsmiljö
- Syfte - Utveckling och testning
- URL -
https://streams-stage.adobeprimetime.com/v2/ - Referenser - Testa program-ID:n
- Data - endast testdata
Produktionsmiljö
- Syfte - Live-användartrafik
- URL -
https://streams.adobeprimetime.com/v2/ - Autentiseringsuppgifter - ID för produktionsprogram
- Data - Real user data
Integreringsflöde integration-flow
Grundläggande flöde
- Användarautentisering - Autentisera med Adobe Pass
- Skapa session - Skapa CM-session med användarmetadata
- Hantering av pulsslag - Skicka periodiska pulsslag
- Sessionsavslut - Avsluta när användaren slutar titta
Felhantering
- 404 Det gick inte att hitta - Hantera begäranden med sessions-ID som inte har genererats av CM-tjänsten
- 409 Konflikter - Hantera policyöverträdelser
- 410 Borttagen - Hantera sessionsavslutning
- Nätverksfel - Hantera anslutningsproblem
- Autentiseringsfel - Hantera autentiseringsproblem