Schlüsselkonzepte key-concepts
Für eine erfolgreiche Implementierung ist es von entscheidender Bedeutung, die Kernkonzepte der Parallelitätsüberwachung zu verstehen. In diesem Handbuch werden die grundlegenden Bausteine und ihre Funktionsweise erläutert.
Grundbegriffe core-concepts
Sitzungen
Eine Sitzung stellt eine aktive Video-Streaming-Instanz dar. Stellen Sie sich dies als ein „Ticket“ vor, mit dem ein Benutzer Inhalte ansehen kann.
Sitzungslebenszyklus
- Erstellung - Wenn Benutzende beginnen, Inhalte anzuzeigen
- Aktiv - Während der Benutzer zusieht (durch Heartbeats verwaltet)
- Beendigung - Wenn der Benutzer die Überwachung beendet oder die Sitzung abläuft
Sitzungseigenschaften
{
"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"
}
}
Richtlinien
Richtlinien sind Geschäftsregeln, die Einschränkungen und Einschränkungen für gleichzeitiges Streaming definieren. Sie bestimmen, wann Benutzer neue Streams starten können.
Richtlinienkomponenten
- Regeln - Spezifische Beschränkungen und Bedingungen
- Metadatenanforderungen - Welche Daten werden benötigt?
- Auswertungslogik - Wie die Richtlinie angewendet wird
Beispielrichtlinie
{
"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"
}
]
}
Metadaten
Metadaten bietet Kontext zu jeder Sitzung. Es enthält Informationen über das Gerät, den Inhalt, den Benutzer und die Anwendung.
Metadatenkategorien
deviceId, deviceType, osNamechannel, contentType, assetIdsubject, subscriptionTierapplicationName, applicationPlatformcountry, hbaErforderliche und optionale Metadaten
- Erforderliche Metadaten - Muss für die Sitzungserstellung angegeben werden
- Optionale Metadaten - Kann für erweiterte Richtlinien bereitgestellt werden
- Standard-Metadaten - Vordefinierte Felder, die für alle Programme verfügbar sind
- Benutzerdefinierte Metadaten - Von Ihnen definierte anwendungsspezifische Felder
Identität und Authentifizierung identity-and-authentication
Identitätsanbieter (IdP)
Ein Identitätsanbieter ist der Dienst, der Benutzer authentifiziert und ihre Identitätsinformationen bereitstellt. Bei der Adobe Pass-Integration handelt es sich normalerweise um eine MVPD.
IdP-Beispiele
- Kabelunternehmen (Comcast, Charter usw.)
- Satellitenanbieter (DirectTV, DISH)
- Streaming-Dienste (Netflix, Hulu)
- Mobilnetzbetreiber (Verizon, AT&T)
Subjekt
Ein Subjekt ist die eindeutige Kennung für einen Benutzer in einem Identitätsanbieter. Dies ist normalerweise die Konto-ID oder Abonnenten-ID des Benutzers.
Sitzungsverwaltung session-management
Heartbeat
Heartbeats sind periodische API-Aufrufe, die Sitzungen aktiv halten. Sie sagen dem System: „Dieser Benutzer sieht immer noch zu.“
Heartbeat-Anforderungen
- Häufigkeit - Alle 60 Sekunden (empfohlen)
- Zweck - Sitzung am Leben halten, Metadaten aktualisieren
- Beendigung - Sitzung läuft ab, wenn Heartbeats anhalten
Session Termination
Sitzungen können auf verschiedene Weise beendet werden:
- Benutzer beobachtet nicht mehr - Anwendung ruft DELETE-Endpunkt auf
- Sitzung läuft ab - Kein Heartbeat innerhalb der Zeitüberschreitung empfangen
- Richtlinienverletzung - Neue Sitzung beendet die alte (FIFO)
- Remote Termination - Ein anderes Gerät beendet die Sitzung
Richtlinienauswertung policy-evaluation
Funktionsweise von Richtlinien
- Benutzer fordert neuen Stream an
- System wertet Richtlinien der aktuellen Nutzung aus
- Entscheidung getroffen - Zulassen oder Ablehnen
- Antwort gesendet - Erfolgs- oder Konfliktinformationen
Konfliktlösung conflict-resolution
Was ist ein Konflikt?
Ein Konflikt tritt auf, wenn ein Benutzer versucht, einen neuen Stream zu starten, aber seine Beschränkungen überschreiten würde.
Konfliktbehandlung
Wenn ein Konflikt auftritt, gibt das System eine 409-Konfliktantwort mit detaillierten Informationen zurück:
{
"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": {...}
}
]
}
}
]
}
}
Lösungsstrategien
LIFO (Last In, First Out)
- Alte Sitzungen sind geschützt
- Neue Sitzung ist blockiert
- Einfachere Benutzeroberfläche
- Besser für erweiterte Anzeige
FIFO (First In, First Out)
- Neue Sitzung beendet eine bestehende
- Der Benutzer wählt die zu stoppende Sitzung aus
- Komplexere Benutzeroberfläche erforderlich
- Besser für Inhaltswechsel
Anwendungen und Mandanten applications-and-tenants
Anwendung
Ein Programm ist ein Softwareprogramm, das mit der gleichzeitigen Überwachung integriert ist. Jede Anwendung verfügt über eine eindeutige ID und kann über eigene Richtlinien verfügen.
Anwendungsbeispiele
- Mobile App (iOS/Android)
- Web-Anwendung
- Smart-TV-App
- Set-Top-Box-Anwendung
Mandant
Ein Mandant ist eine Organisation, der eine oder mehrere Anwendungen gehören. Mandanten können Richtlinien programmübergreifend freigeben.
Mandantenstruktur
Tenant: "Streaming Company"
├── Application: "Mobile App"
├── Application: "Web App"
└── Application: "TV App"
Umgebungen environments
Staging-Umgebung
- Zweck - Entwicklung und Tests
- URL -
https://streams-stage.adobeprimetime.com/v2/ - Anmeldeinformationen - Anwendungs-IDs testen
- Data - Nur Testdaten
Produktionsumgebung
- Zweck - Live-Benutzer-Traffic
- URL -
https://streams.adobeprimetime.com/v2/ - Anmeldeinformationen - Produktions-Anwendungs-IDs
- Data - Echtzeit-Benutzerdaten
Integrationsfluss integration-flow
Grundlegender Ablauf
- Benutzerauthentifizierung - Mit Adobe Pass authentifizieren
- Sitzungserstellung - Erstellen einer CM-Sitzung mit Benutzermetadaten
- Heartbeat-Verwaltung - Senden von regelmäßigen Heartbeats
- Sitzungsbeendigung - Beenden, wenn der Benutzer das Beobachten beendet
Fehlerbehandlung
- 404 Not Found - Verarbeiten von Anfragen mit Sitzungs-ID, die nicht vom CM-Service generiert wurden
- 409 Conflicts - Umgang mit Richtlinienverletzungen
- 410 nicht mehr verfügbar - Sitzungsende verwalten
- Netzwerkfehler - Beheben von Verbindungsproblemen
- Authentifizierungsfehler - Probleme mit Berechtigungen beheben