주요 개념 key-concepts
성공적인 구현을 위해서는 동시성 모니터링의 핵심 개념을 이해하는 것이 중요합니다. 이 안내서에서는 기본 구성 요소와 이러한 구성 요소가 함께 작동하는 방식을 설명합니다.
핵심 개념 core-concepts
세션
session은(는) 활성 비디오 스트리밍 인스턴스를 나타냅니다. 사용자가 콘텐츠를 볼 수 있는 '티켓'이라고 생각하십시오.
세션 라이프사이클
- 만들기 - 사용자가 콘텐츠 보기를 시작할 때
- 활성 - 사용자가 시청 중인 동안(하트비트에 의해 유지)
- 종료 - 사용자가 시청을 중지하거나 세션이 만료될 때
세션 속성
{
"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"
}
}
정책
정책은(는) 동시 스트리밍에 대한 제한 및 제한을 정의하는 비즈니스 규칙입니다. 사용자가 새 스트림을 시작할 수 있는 시기를 결정합니다.
정책 구성 요소
- 규칙 - 특정 제한 및 조건
- 메타데이터 요구 사항 - 필요한 데이터
- 평가 논리 - 정책이 적용되는 방법
예제 정책
{
"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"
}
]
}
메타데이터
메타데이터에서 각 세션에 대한 컨텍스트를 제공합니다. 여기에는 장치, 콘텐츠, 사용자 및 애플리케이션에 대한 정보가 포함됩니다.
메타데이터 카테고리
deviceId, deviceType, osNamechannel, contentType, assetIdsubject, subscriptionTierapplicationName, applicationPlatformcountry, hba필수 메타데이터와 선택적 메타데이터
- 필수 메타데이터 - 세션을 만들려면 반드시 입력해야 합니다.
- 선택적 메타데이터 - 향상된 정책에 대해 제공할 수 있습니다.
- 표준 메타데이터 - 모든 응용 프로그램에서 사용할 수 있는 미리 정의된 필드입니다.
- 사용자 지정 메타데이터 - 사용자가 정의하는 응용 프로그램별 필드
ID 및 인증 identity-and-authentication
ID 공급자(IdP)
ID 공급자는 사용자를 인증하고 ID 정보를 제공하는 서비스입니다. Adobe Pass 통합에서 일반적으로 MVPD입니다.
IdP 예
- 유선방송사(Comcast, Charter 등)
- 위성 공급자(DirecTV, Dish)
- 스트리밍 서비스(넷플릭스, 훌루)
- 이동통신사(Verizon, AT&T)
제목
subject은(는) ID 공급자 내의 사용자에 대한 고유 식별자입니다. 일반적으로 사용자의 계정 ID 또는 구독자 ID입니다.
세션 관리 session-management
하트비트
하트비트는 세션을 활성 상태로 유지하는 정기 API 호출입니다. 시스템에 "이 사용자가 아직 보고 있습니다."라고 알립니다.
하트비트 요구 사항
- 빈도 - 60초마다(권장)
- 목적 - 세션 유지, 메타데이터 업데이트
- 종료 - 하트비트가 중지되면 세션이 만료됩니다.
세션 종료
세션은 다음과 같은 여러 가지 방법으로 종료할 수 있습니다.
- 사용자가 시청 중지 - 응용 프로그램에서 DELETE 끝점을 호출합니다.
- 세션 만료 - 시간 제한 내에 받은 하트비트 없음
- 정책 위반 - 새 세션이 이전 세션(FIFO)을 종료합니다.
- 원격 종료 - 다른 장치가 세션을 종료합니다.
정책 평가 policy-evaluation
정책 작동 방식
- 사용자가 새 스트림을 요청
- 현재 사용량에 대해 정책을 평가합니다.
- 결정 - 허용 또는 거부
- 보낸 응답 - 성공 또는 충돌 정보
충돌 해결 conflict-resolution
충돌이란 무엇입니까?
사용자가 새 스트림을 시작하려고 하지만 제한을 초과할 경우 충돌이 발생합니다.
충돌 응답
충돌이 발생하면 시스템은 세부 정보가 포함된 409 충돌 응답을 반환합니다.
{
"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": {...}
}
]
}
}
]
}
}
해결 전략
LIFO(마지막 입력, 첫 번째 출력)
- 이전 세션이 보호됨
- 새 세션이 차단됨
- 간단한 UI
- 확장된 보기에 더 좋음
FIFO(선입선출)
- 새 세션이 기존 세션을 종료합니다.1}
- 사용자가 중지할 세션을 선택합니다
- 더 복잡한 UI 필요
- 콘텐츠 전환 개선
애플리케이션 및 테넌트 applications-and-tenants
애플리케이션
application은(는) 동시 모니터링과 통합되는 소프트웨어 프로그램입니다. 각 애플리케이션에는 고유한 ID가 있으며 자체 정책이 있을 수 있습니다.
애플리케이션 예
- 모바일 앱(iOS/Android)
- 웹 애플리케이션
- 스마트 TV 앱
- 셋톱 박스 애플리케이션
임차인
tenant은(는) 하나 이상의 응용 프로그램을 소유하고 있는 조직입니다. 테넌트는 애플리케이션 간에 정책을 공유할 수 있습니다.
임차인 구조
Tenant: "Streaming Company"
├── Application: "Mobile App"
├── Application: "Web App"
└── Application: "TV App"
환경 environments
스테이징 환경
- 목적 - 개발 및 테스트
- URL -
https://streams-stage.adobeprimetime.com/v2/ - 자격 증명 - 응용 프로그램 ID 테스트
- 데이터 - 테스트 데이터만
프로덕션 환경
- 목적 - 라이브 사용자 트래픽
- URL -
https://streams.adobeprimetime.com/v2/ - 자격 증명 - 프로덕션 응용 프로그램 ID
- 데이터 - 실제 사용자 데이터
통합 플로우 integration-flow
기본 흐름
- 사용자 인증 - Adobe Pass으로 인증
- 세션 만들기 - 사용자 메타데이터로 CM 세션 만들기
- 하트비트 관리 - 정기 하트비트를 보냅니다.
- 세션 종료 - 사용자가 시청을 중단하면 종료
오류 처리
- 404 찾을 수 없음 - CM 서비스에서 생성되지 않은 세션 ID의 요청을 처리합니다.
- 409개 충돌 - 정책 위반 처리
- 410 없어짐 - 세션 종료를 처리합니다.
- 네트워크 오류 - 연결 문제 처리
- 인증 오류 - 자격 증명 문제를 처리합니다.