KR20080038314A - 다수 사용자 컴퓨팅 시스템에서의 사용자 경험들의 동적밸런싱 - Google Patents

다수 사용자 컴퓨팅 시스템에서의 사용자 경험들의 동적밸런싱 Download PDF

Info

Publication number
KR20080038314A
KR20080038314A KR1020087002297A KR20087002297A KR20080038314A KR 20080038314 A KR20080038314 A KR 20080038314A KR 1020087002297 A KR1020087002297 A KR 1020087002297A KR 20087002297 A KR20087002297 A KR 20087002297A KR 20080038314 A KR20080038314 A KR 20080038314A
Authority
KR
South Korea
Prior art keywords
media
user
users
policy
experience
Prior art date
Application number
KR1020087002297A
Other languages
English (en)
Inventor
토드 보우라
제프리 데이비스
거프라탑 버디
니콜라스 팽
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20080038314A publication Critical patent/KR20080038314A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2816Controlling appliance services of a home automation network by calling their functionalities
    • H04L12/2821Avoiding conflicts related to the use of home appliances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • H04L65/1094Inter-user-equipment sessions transfer or sharing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L2012/2847Home automation networks characterised by the type of home appliance used
    • H04L2012/2849Audio/video appliances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

미디어 경험 정책 엔진은 3개의 컴포넌트, 즉 정보 관리자, 정책 평가자 및 실시 모듈을 포함한다. 정보 관리자는 예를 들어 CPU, 메모리, 하드 디스크, (I/O) 인터페이스 및 네트워크의 사용과 같은 미디어 전달 시스템의 현재 상태에 관한 정보를 수집한다. 이어서, 수집된 정보는 자원 쟁탈이 발생하고 있는지 또는 발생하려고 하는지를 알기 위해 정책 평가자에 의해 검증된다. 그러한 경우, 현존 또는 잠재적 충돌은, 자원 쟁탈을 무효화하고 원하는 정책에 일관된 사용자 경험을 유지하기 위해 원하는 정책에 따라, 예를 들어 나중 연대의 사용자들의 액세스를 제한하거나 모든 사용자의 사용자 경험을 강등하는 등의 교정을 적용하는 실시 모듈에 의해 처리된다.
다수 사용자 컴퓨팅 시스템, 사용자 경험, 동적 밸런싱, 미디어 경험 정책 엔진

Description

다수 사용자 컴퓨팅 시스템에서의 사용자 경험들의 동적 밸런싱{DYNAMICALLY BALANCING USER EXPERIENCES IN A MULTI-USER COMPUTING SYSTEM}
퍼스널 컴퓨터(PC)가 디지털 홈의 중심이 됨에 따라, PC는 PC 상에 저장된 미디어 콘텐츠(음악, 사진, 비디오, TV 등)에 액세스하기를 원하는 계속 증가하는 수의 장치들로부터의 요청들을 동시에 처리해야 한다.
예를 들어, 사용자는 현재 미디어 또는 다른 콘텐츠를 네트워크를 통해 데스크톱 PC, 노트북, 휴대형 컴퓨터, 셀룰러 전화, 다른 무선 통신 장치, PDA, 게이밍 콘솔, IP 셋톱 박스, 핸드헬드 PC 등과 같은 클라이언트 장치들에 전달하기 위한 엔터테인먼트 서버로서 PC를 사용할 수 있다. 전달가능한 콘텐츠는 사진, 오디오 콘텐츠, 오디오/비디오(AV) 콘텐츠, 및 CD 또는 DVD와 같은 휴대형 저장 매체 상에서, 또는 인터넷, 케이블 접속 또는 위성 피드와 같은 원격 소스로부터 콘텐츠를 수신하는 튜너를 통해 엔터테인먼트 서버에 제공될 수 있는 컴퓨터 판독가능 프로그램을 포함한다.
워싱턴, 레드먼드의 마이크로소프트사에 의해 판매되는 윈도우 XP® 미디어 센터 에디션 운영 체제와 같은 소프트웨어는 통상의 홈 PC를 그러한 콘텐츠를 전달할 수 있는 호스트로 변환하는 데 필요한 수고와 비용을 크게 줄였다. 그러나 소정의 시점에서는, 콘텐츠를 요청하는 다양한 장치에 콘텐츠를 전달하기 위해 필요 한 자원들은 PC 상에서 이용가능한 자원들을 초과할 수 있다. 이러한 일이 발생할 때, 예상치 못했고 그리고/또는 바람직하지 못한 거동은 PC 및/또는 PC로부터 콘텐츠에 액세스하는 장치 상에서 장애를 겪게 할 수 있다.
따라서, PC가 다수 사용자 환경에서 기능할 수 있고, PC 상에서 이용가능한 자원들의 초과 없이 다수의 요청 장치에 콘텐츠를 전달하게 할 수 있는 것이 필요하다.
도 1은 엔터테인먼트 서버, 홈 네트워크 장치 및 홈 텔레비전을 포함하는 예시적인 홈 환경을 나타내는 도면이다.
도 2는 미디어 경험 정책 엔진을 이용하여 다수의 홈 네트워크 장치와 통신하는 다수의 엔터테인먼트 서버의 시스템을 나타내는 도면이다.
도 3은 다수의 홈 네트워크 장치에 통신 결합된 다수의 엔터테인먼트 서버와 함께 사용되는 미디어 경험 정책 엔진의 블록도이다.
도 4는 네트워크 자원들을 계속 모니터링하고 자원 쟁탈 문제를 동적으로 해결하기 위한 방법을 나타내는 흐름도이다.
도 5는 원하는 정책에 대해 현재의 네트워크 자원 특성을 평가하는 정책 평가자의 방법론적 구현을 나타내는 흐름도이다.
도 6은 네트워크 자원들을 원하는 정책에 따르도록 하기 위해 네트워크 자원들에 변경을 실시하는 실시 모듈의 방법론적 구현을 나타내는 흐름도이다.
미디어 경험 정책 엔진은 3개의 컴포넌트, 즉 정보 관리자, 정책 평가자 및 실시 모듈을 포함한다. 정보 관리자는 예를 들어 CPU, 메모리, 하드 디스크, (I/O) 인터페이스 및 네트워크의 사용과 같은 미디어 전달 시스템의 현재 상태에 관한 정보를 수집한다. 이어서, 수집된 정보는 자원 쟁탈이 발생하고 있는지 또는 발생하려고 하는지를 알기 위해 정책 평가자에 의해 검증된다. 그러한 경우, 현존 또는 잠재적 충돌은, 자원 쟁탈을 무효화하고 원하는 정책에 일관된 사용자 경험을 유지하기 위해 원하는 정책에 따라, 예를 들어 나중 연대의 사용자들의 액세스를 제한하거나 모든 사용자의 사용자 경험을 강등하는 등의 교정을 적용하는 실시 모듈에 의해 처리된다.
본 요약은 아래의 상세한 설명에서 더 설명되는 간략한 형태의 개념들의 선택을 소개하기 위해 제공된다. 본 요약은 청구 발명의 중요 특징 또는 기본 특징을 식별하고자 하는 의도도 없고, 청구 발명의 범위를 결정하는 데 있어서의 보조물로서 사용하고자 하는 의도도 없다.
상세한 설명은 첨부된 도면들과 관련하여 설명된다. 도면들에서, 참조 번호의 가장 좌측의 숫자(들)는 참조 번호가 최초로 나타나는 도면을 식별한다. 여러 도면들에서 동일 참조 번호의 사용은 유사 또는 동일한 항목을 나타낸다.
홈 환경
도 1은 침실(102) 및 거실(104)을 포함하는 예시적인 홈 환경(100)을 나타낸다. 홈 환경(100) 도처에는 주 TV(106), 보조 TV(108) 및 VGA 모니터(110)와 같은 다수의 모니터가 배치되어 있다. 거실(104)에 배치된 엔터테인먼트 서버(112)로부터 홈 네트워크를 통해 모니터들(106, 108, 110) 각각에 콘텐츠가 제공될 수 있다. 일 구현에서, 엔터테인먼트 서버(112)는 마이크로소프트사에 의해 판매되는 윈도우 XP® 미디어 센터™ 에디션 운영 체제와 같은 멀티미디어 소프트웨어 패키지를 실행하도록 구성된 통상의 퍼스널 컴퓨터(PC)이다. 이러한 구성에서, 엔터테인먼트 서버(112)는 완전한 컴퓨팅 기능과 완전한 홈 엔터테인먼트 시스템을 단일 PC 내에 통합시킬 수 있다. 예를 들어, 사용자는 모니터들(106, 108, 110) 중 하나의 모니터의 하나의 그래픽 윈도우에서 TV를 보면서, 동일 모니터 상의 다른 그래픽 윈도우에서 이메일을 전송하거나 스프레드시트 작업을 행할 수 있다. 또한, 엔터테인먼트 시스템은 다음과 같은 다른 특징들을 포함할 수도 있다.
- 장래의 관람을 위해 라이브 TV 쇼를 캡처하거나 단일 프로그램 또는 시리즈의 장래 방송을 기록하기 위한 퍼스널 비디오 레코더(PVR)
- DVD 재생
- TV 쇼, 노래, 사진 및 홈 비디오와 같은 사용자 기록 콘텐츠의 통합 뷰
- 14일 EPG(전자 프로그램 가이드)
엔터테인먼트 서버(112)는 통상의 PC인 것 외에도 예를 들어 노트북 또는 휴대형 컴퓨터, 타블렛 PC, 워크스테이션, 메인프레임 컴퓨터, 서버, 인터넷 장치, 이들의 조합 등을 포함하는 미디어 컴포넌트를 렌더링할 수 있는 다양한 다른 장치를 포함할 수 있다. 엔터테인먼트 서버(112)는 미디어 콘텐츠를 스트리밍할 수 있 는 컴퓨터에 미디어 콘텐츠를 전달할 수 있는 셋톱 박스와 같은 엔터테인먼트 장치이거나, 엔터테인먼트 장치 자체가 미디어 콘텐츠를 스트리밍할 수 있다는 것도 이해할 것이다.
엔터테인먼트 서버(112)와 함께, 사용자는 예를 들어 케이블(114), 위성(116), 안테나(그래픽 명료화를 위해 도시되지 않음) 및/또는 인터넷(118)과 같은 네트워크를 통해 수신되는 텔레비전 또는 오디오 콘텐츠의 라이브 스트림을 보고 제어할 수 있다. 이러한 능력은 엔터테인먼트 서버(112)에 위치하는 하나 이상의 튜너에 의해 가능하게 된다. 그러나 하나 이상의 튜너는 엔터테인먼트 서버(112)로부터 원격 배치될 수도 있다는 것을 또한 이해할 것이다. 양자의 경우, 사용자는 임의의 특정 선호에 맞도록 튜너를 선택할 수 있다. 예를 들어, 표준 해상도(SD) 및 고해상도(HD) 콘텐츠 양자를 수신하기를 원하는 사용자는 양 유형의 콘텐츠를 위해 구성된 튜너를 사용해야 한다. 대안으로, 사용자는 SD 콘텐츠를 위해 SD 튜너를, HD 콘텐츠를 위해 HD 튜너를 사용할 수 있다.
엔터테인먼트 서버(112)는 또한 스피커들(그래픽 명료화를 위해 도시되지 않음)에 대한 멀티 채널 출력을 가능하게 할 수 있다. 이것은 돌비 디지털, 디지털 시어터 사운드(DTS), 또는 펄스 코드 변조(PCM) 서라운드 디코딩의 전달을 가능하게 하는 소니-필립스 디지털 인터페이스 포맷(SPDIF) 또는 토스링크와 같은 디지털 상호접속 출력들의 사용을 통해 달성될 수 있다.
또한, 엔터테인먼트 서버(112)는 다양한 부하 조건 하에서 사용자가 엔터테인먼트 서버(112)의 거동을 제어하는 것을 허가하도록 구성된 미디어 경험 정책 엔 진(120)을 포함할 수 있다. 미디어 경험 정책 엔진(120)은 사용자가 엔터테인먼트 서버(112)의 실제 자원 이용을 모니터링하고 자원 쟁탈이 발생하고 있거나 또는 발생하려고 하는 고부하 상황에 적절히 대응하는 것을 가능하게 하도록 구성된다. 이러한 방식으로, 미디어 경험 정책 엔진(120)은 엔터테인먼트 서버(112)에 의해 수행되는 자원 관리를 맞춤화하고, 사용자 경험을 예측할 수 없고 수용할 수 없는 품질 레벨로 강등할 수 있는 해로운 자원 쟁탈을 피하는 데 사용될 수 있다. 미디어 경험 정책 엔진(120) 및 그의 사용을 필요로 하는 방법들이 도 2-6과 관련하여 아래에 더 상세히 설명된다.
엔터테인먼트 서버(112)는 운영 체제를 실행하는 완전 기능 컴퓨터이므로, 사용자는 또한 표준 컴퓨터 프로그램(워드 프로세싱, 스프레드시트 등)을 실행하거나 이메일을 송수신하거나 인터넷을 브라우징하거나 다른 일반 기능들을 수행하는 옵션을 가질 수 있다.
홈 환경(100)은 또한 네트워크(124)를 통해 엔터테인먼트 서버(112)와 통신하도록 배치된 홈 네트워크 장치(122)를 포함할 수 있다. 홈 네트워크 장치(122)는 마이크로소프트사에 의해 판매되는 미디어 센터 확장기 장치, 윈도우® 미디어 접속 장치, 마이크로소프트사에 의해 판매되는 X 박스 게임 콘솔과 같은 게임 콘솔, 및 엔터테인먼트 서버(112)가 오디오 및/또는 비디오 콘텐츠를 모니터(106, 108, 110) 또는 오디오 시스템으로 스트리밍하는 것을 가능하게 하는 장치를 포함할 수 있다. 홈 네트워크 장치(122)는 또한 예를 들어 데스크톱 PC, 노트북 또는 휴대형 컴퓨터, 워크스테이션, 메인프레임 컴퓨터, 인터넷 장치, 게이밍 콘솔, 핸드헬드 PC, 셀룰러 전화 또는 다른 무선 통신 장치, PDA, 셋톱 박스, 텔레비전, 오디오 튜너, 이들의 조합 등을 포함하는 임의의 다양한 통상의 컴퓨팅 장치로서 구현될 수 있다.
네트워크(124)는 유선 및/또는 무선 네트워크, 또는 인터넷을 포함하는 임의의 다른 전자 결합 수단을 포함할 수 있다. 네트워크(124)는 전송 제어 프로토콜(TCP), 인터넷 프로토콜(IP), 실시간 전송 프로토콜(RTP), 및 실시간 전송 제어 프로토콜(RTCP)과 같은 패킷 기반 통신 프로토콜을 통해 홈 네트워크 장치(122)와 엔터테인먼트 서버(112) 간의 통신을 가능하게 할 수 있다는 것을 이해할 것이다. 홈 네트워크 장치(122)는 또한 무선 수단 또는 통상의 케이블을 통해 보조 TV(108)에 결합될 수 있다.
홈 네트워크 장치(122)는 사용자 경험 스트림(즉, 그래픽, 버튼, 제어 및 텍스트를 포함할 수 있는 시스템/애플리케이션 사용자 인터페이스)은 물론, 압축된 디지털 오디오/비디오 스트림을 엔터테인먼트 서버(112)로부터 수신하도록 구성될 수 있다. 사용자 경험 스트림은 예를 들어 표준 원격 데스크톱 프로토콜(RDP), 그래픽 장치 인터페이스(GDI), 또는 하이퍼 텍스트 마크업 언어(HTML)를 포함하는 다양한 방식으로 전달될 수 있다. 디지털 오디오/비디오 스트림은 홈 네트워크 장치(122) 상에서 디코딩된 후 보조 TV(108) 상의 출력을 위해 사용자 경험 스트림과 "믹싱"되는 비디오, 오디오 및 이미지 파일들을 포함하는 비디오 IP, SD 및 HD 콘텐츠를 포함할 수 있다. 하나의 예시적인 구현에서, 미디어 콘텐츠는 MPEG2 포맷 으로 홈 네트워크 장치(122)에 전달된다.
도 1에는 단일 홈 네트워크 장치(122)만이 도시되어 있다. 그러나 다수의 홈 네트워크 장치(122) 및 그에 대응하는 표시 장치들이 홈 환경(100) 도처에 분산되고, 엔터테인먼트 서버(112)에 통신 결합될 수 있다는 것을 이해할 것이다. 또한, 홈 네트워크 장치(122) 및 모니터들(106, 108, 110) 외에, 엔터테인먼트 서버(112)는 스피커 및 프린터(그래픽 명료화를 위해 도시되지 않음)와 같은 컴포넌트를 포함하는 다른 출력 주변 장치들에 통신 결합될 수 있다는 것을 이해할 것이다.
미디어 경험 정책 엔진을 구비한 시스템
도 2는 네트워크(124)를 통해 다수의 엔터테인먼트 서버(112)로부터 다수의 홈 네트워크 장치(122)에 미디어 콘텐츠를 전달하기 위한 예시적인 아키텍처(200)를 나타낸다. 도 2에 도시된 바와 같이, 미디어 경험 정책 엔진(120)은 다수의 엔터테인먼트 서버(112) 중 하나, 여러 또는 전부에 위치할 수 있다. 더욱이, 클라이언트측 미디어 경험 정책 엔진(MEPE)(202)은 다수의 홈 네트워크 장치(122) 중 하나, 여러 또는 전부에 위치할 수 있다. 또한, 독립형 미디어 경험 정책 엔진(204)도 다른 장치, 예를 들어 네트워크(124)와 통신하는 특수 목적 장치 또는 서버에 위치할 수 있다.
아마도 가장 간단한 구현에서, 미디어 경험 정책 엔진(120)은 둘 이상의 사용자를 서빙하는 단일 엔터테인먼트 서버(112) 상에서 실행될 수 있다. 통상적으로, 이것은 엔터테인먼트 서버(112) 자체에 하나의 사용자, 그리고 홈 네트워크 장 치(122)를 운영하는 하나 이상의 사용자를 수반할 수 있다. 그러나 둘 이상의 키보드, 마우스, 모니터 등이 엔터테인먼트 서버(112) 내에 플러깅되는 것을 가능하게 하는 소프트웨어의 사용을 통해 동일 엔터테인먼트 서버(112) 상에서 작업하는 다수 사용자를 포함하는 다른 사용자 구성들도 가능하다. 단일 엔터테인먼트 서버(112)가 사용되고 있는 이와 같은 시나리오에서는, 단일 엔터테인먼트 서버(112) 상의 미디어 경험 정책 엔진(120)과 함께, 또는 이를 배제하고, 클라이언트측 MEPE(202)를 사용할 수도 있다.
보다 복잡한 다수 사용자 구현에서, 엔터테인먼트 서버들(112) 또는 홈 네트워크 장치들(122) 중 하나 이상은 엔터테인먼트 서버들(112) 또는 홈 네트워크 장치들(122) 중 하나 상에 위치하는 미디어 경험 정책 엔진(120, 202)의 하나 이상의 인스턴스를 공유할 수 있다. 대안으로, 하나 이상의 엔터테인먼트 서버(112) 또는 홈 네트워크 장치(122)는 엔터테인먼트 서버들(112) 또는 홈 네트워크 장치들(122) 중 하나 상에 위치하는 미디어 경험 정책 엔진(120, 202) 외에 독립형 미디어 경험 정책 엔진(204)을 공유할 수 있다.
또한, 하나 이상의 엔터테인먼트 서버(112) 및 홈 네트워크 장치(122)는 또한, 다른 장치들(112, 122) 중 하나 이상에 위치하는 미디어 경험 정책 엔진들(120, 202, 204)과 등위화될 수 있는 미디어 경험 정책 엔진(미디어 경험 정책 엔진(120), 독립형 미디어 경험 정책 엔진(204), 및 클라이언트측 MEPE(202)를 포함함)의 개별 인스턴스를 사용할 수 있다.
또 다른 구현에서, 단일 미디어 경험 정책 엔진(120, 202, 204)이 네트워 크(124)에 결합된 장치들 모두를 서비스하는 데 사용될 수 있다.
존재할 경우, 클라이언트측 MEPE(202)는 네트워크(124) 및 클라이언트측 MEPE(202)가 위치하는 홈 네트워크 장치들(122)의 자원들에 관한 통계 및 다른 정보를 수집하는 데 사용될 수 있다. 대안으로, 이러한 정보는 홈 네트워크 장치(122) 상의 또는 다른 홈 네트워크 장치들(122) 또는 엔터테인먼트 서버(112) 중 하나 상의 다른 애플리케이션에 의해 수집될 수 있다.
본 명세서의 전반에서, 미디어 경험 정책 엔진(120)이 참조될 때, 이러한 참조는 클라이언트측 MEPE(202) 및 독립형 미디어 경험 정책 엔진(204)을 포함할 수도 있다는 것을 이해할 것이다.
미디어 경험 정책 엔진을 구비한 엔터테인먼트 서버 및 홈 네트워크 장치
도 3은 하나 이상의 엔터테인먼트 서버(112)로부터 하나 이상의 홈 네트워크 장치(122)에 미디어 콘텐츠를 전달하기 위한 예시적인 아키텍처(300)를 나타낸다. 도 3에서, 미디어 경험 정책 엔진(120)은 엔터테인먼트 서버(112) 상에 위치하는 것으로 도시되어 있다. 그러나 전술한 바와 같이, 미디어 경험 정책 엔진은 엔터테인먼트 서버(들)(112) 상에서 호스트될 필요는 없다는 것을 이해할 것이다. 예를 들어, 미디어 경험 정책 엔진(120)은 셋톱 박스 상에서, 또는 소스(즉, 인터넷(118), 케이블(114), 위성(116), 안테나 등)에서 홈 네트워크 장치(들)(122)로 미디어 콘텐츠를 전달하는 경로에 통신 결합된 임의의 다른 전자 장치 또는 저장 매체 상에서 호스트될 수도 있다. 더욱이, 미디어 경험 정책 엔진(120)은 네트워크(124)를 통해 결합된 홈 네트워크 장치들(122)과 같은 장치들에 기능 프로그램 코드를 전달할 수 있다는 것을 또한 이해할 것이다. 이러한 프로그램 코드는 미디어 경험 정책 엔진(120)이 그의 기능을 수행하는 것을 돕도록 구성될 수 있다.
전술한 바와 같이, 엔터테인먼트 서버(들)(112)는 예를 들어, 저장된 그리고/또는 라이브 미디어 콘텐츠를 홈 네트워크 장치(들)(122)와 같은 클라이언트 장치에 전달하도록 구성될 수 있는 서버, 데스크톱 PC, 노트북 또는 휴대형 컴퓨터, 워크스테이션, 메인프레임 컴퓨터, 인터넷 장치, 셋톱 박스, 이들의 조합 등을 포함하는 임의의 다양한 통상의 컴퓨팅 장치로서 구현될 수 있다.
엔터테인먼트 서버(112)는 하나 이상의 튜너(302), 하나 이상의 프로세서(304), 콘텐츠 저장 장치(306), 메모리(308) 및 하나 이상의 네트워크 인터페이스(310)를 포함할 수 있다. 튜너(302)는 케이블(114), 위성(116), 안테나 또는 인터넷(118)과 같은 소스들을 통해 미디어 콘텐츠를 수신하도록 구성될 수 있다. 미디어 콘텐츠는 디지털 형태로 수신되거나, 아날로그 형태로 수신되어 하나 이상의 튜너(302) 중 임의의 튜너에서 또는 엔터테인먼트 서버(112)에 위치하는 하나 이상의 마이크로프로세서(304)에 의해 디지털 형태로 변환될 수 있다. (다른 소스로부터) 처리 또는 수신된 미디어 콘텐츠는 콘텐츠 저장 장치(306)에 저장될 수 있다. 도 3은 콘텐츠 저장장치(306)를 메모리(308)와 별개로 도시하고 있다. 그러나 콘텐츠 저장 장치(306)는 메모리(308)의 일부일 수도 있다는 것을 이해할 것이다.
네트워크 인터페이스(310)는 엔터테인먼트 서버(112)가 네트워크(124)에 통신 결합된 다수의 장치 사이에서 명령들 및 미디어 콘텐츠를 송수신하는 것을 가능하게 한다. 예를 들어, 엔터테인먼트 서버(112) 및 홈 네트워크 장치(122) 양자가 네트워크(124)에 접속되는 경우에, 네트워크 인터페이스(310)는 미디어 전송 기능을 이용하여 실시간으로 네트워크(124)를 통해 엔터테인먼트 서버(112)에서 홈 네트워크 장치(122)로 라이브 HD 텔레비전 콘텐츠와 같은 콘텐츠를 전달하는 데 사용될 수 있다(즉, 홈 네트워크 장치(122)는 미디어 콘텐츠를 렌더링할 수 있고, 사용자는 일시 정지, 재생 등과 같은 기능을 제공받을 수 있다). 또한, 엔터테인먼트 서버(들)(112)는 네트워크(124)를 통해 서로에게 미디어 콘텐츠를 전달할 수 있다.
엔터테인먼트 서버들(112) 중 하나 상에서 또는 그를 통해 이용가능한 미디어 콘텐츠에 대한 홈 네트워크 장치(122) 및/또는 다른 엔터테인먼트 서버(112)로부터의 요청들은 또한 네트워크(124)를 통해 홈 네트워크 장치(122) 및/또는 다른 엔터테인먼트 서버(112)에서 엔터테인먼트 서버(112)로 라우팅될 수 있다. 일반적으로, 네트워크(124)는 임의의 다양한 통상의 네트워크 프로토콜(공용 및/또는 독점 프로토콜 포함)을 이용하는 임의의 다양한 통상의 네트워크 토폴로지 및 유형(광학, 유선 및/또는 무선 네트워크 포함)을 나타내는 것을 의도한다는 것을 이해할 것이다. 전술한 바와 같이, 네트워크(124)는 예를 들어, 홈 네트워크, 회사 네트워크, 인터넷, 또는 IEEE 1394는 물론, 가능하다면 하나 이상의 LAN 및/또는 WAN의 적어도 일부를 포함할 수 있다.
엔터테인먼트 서버(112)는 오디오, 비디오, 텍스트, 이미지, 애니메이션 등과 같은 콘텐츠를 포함하는 임의의 다양한 데이터 또는 콘텐츠를 홈 네트워크 장치(122) 및/또는 다른 엔터테인먼트 서버(112)로의 전달에 이용할 수 있도록 만들 수 있다. 일 구현에서, 이러한 콘텐츠는 엔터테인먼트 서버(112)에서 홈 네트워크 장치(122) 및/또는 다른 엔터테인먼트 서버(112)로 스트리밍될 수 있다. "스트리밍되는" 또는 "스트리밍하는"이라는 용어는 데이터가 네트워크(124)를 통해 홈 네트워크 장치(122) 및 다른 엔터테인먼트 서버(112)로 제공되고 콘텐츠의 전부가 전달되기 전에 콘텐츠의 재생이 개시될 수 있는 것을 나타내기 위해 사용된다. 콘텐츠는 공개적으로 이용가능하거나, 대안으로 제한될 수 있다(예를 들어, 소정의 사용자만으로 제한되거나, 적절한 요금을 지불하는 경우에만 이용가능하거나, 특정 네트워크에 대한 액세스를 가진 사용자로 제한되는 등). 또한, 콘텐츠는 "온-디맨드(on-demand)"(예를 들어, 공지된 크기의 사전 기록, 저장된 콘텐츠)이거나, 대안으로 라이브 "방송"(예를 들어, 콘서트가 행해질 때 캡처되고, 캡처 직후 스트리밍에 이용할 수 있게 되는 콘서트의 디지털 표현과 같이 공지되지 않은 크기를 가짐)을 포함할 수 있다.
메모리(308)는 프로세서(304) 상에서 실행되는 프로그램들 및 이들의 실행 동안 생성되는 데이터를 저장한다. 메모리(308)는 휘발성 매체, 비휘발성 매체, 이동식 매체 및 비이동식 매체를 포함할 수 있다. 휘발성 매체는 RAM과 같은 컴퓨터 판독가능 매체를 포함하고, 비휘발성 메모리는 ROM을 포함할 수 있다. 시동 중과 같은 때에, 엔터테인먼트 서버(112) 내의 요소들 간의 정보 전달을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)도 ROM에 저장될 수 있다. RAM은 통상적으로 하나 이상의 프로세서(304)에 의해 즉시 액세스 가능하고 그리고/또는 하나 이상의 프로세서(304) 상에서 현재 동작하는 데이터 및/또는 프로그램 모듈을 포함한다.
엔터테인먼트 서버(112)는 또한 비이동식, 비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브, 이동식, 비휘발성 자기 디스크(예를 들어 "플로피 디스크")에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브, 및 CD-ROM, DVD-ROM 또는 다른 광 매체와 같은 이동식, 비휘발성 광 디스크에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브와 같은 다른 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 하드 디스크 드라이브, 자기 디스크 드라이브 및 광 디스크 드라이브는 각각 하나 이상의 데이터 매체 인터페이스에 의해 시스템 버스(아래에서 더 설명됨)에 접속될 수 있다. 대안으로, 하드 디스크 드라이브, 자기 디스크 드라이브 및 광 디스크 드라이브는 하나 이상의 인터페이스를 통해 시스템 버스에 접속될 수 있다.
디스크 드라이브들 및 관련된 컴퓨터 판독가능 매체는, 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 및 엔터테인먼트 서버(112)에 대한 기타 데이터의 비휘발성 저장을 제공한다. 전술한 바와 같이, 하드 디스크, 이동식 자기 디스크 및 이동식 광 디스크를 포함하는 것 외에, 메모리(308)는 자기 카세트 또는 다른 자기 저장 장치, 플래시 메모리 카드, CD-ROM, DVD 또는 다른 광학 저장 장치, RAM, ROM, EEPROM 등과 같이 컴퓨터에 의해 액세스될 수 있는 데이터를 저장할 수 있는 기타 유형의 컴퓨터 판독가능 매체를 포함할 수도 있다.
예를 들어 운영 체제, 하나 이상의 애플리케이션 프로그램, 다른 프로그램 모듈 및 프로그램 데이터를 포함하는 임의 수의 프로그램 모듈이 메모리(308)에 저장될 수 있다. 이러한 하나의 애플리케이션은 정보 관리자(312), 정책 평가 자(314) 및 실시 모듈(316)을 포함하는 미디어 경험 정책 엔진(120)일 수 있다. 미디어 경험 정책 엔진(120)은 프로세서(304) 상에서 실행될 수 있으며, 사용자가 엔터테인먼트 서버(112) 및 네트워크(124)의 실제 자원 사용을 모니터링하고 해로운 자원 쟁탈이 발생하고 있거나 발생하려고 하는 고부하 상황에 적절히 대응하는 것을 가능하게 할 수 있다. 예를 들어 메모리(308)에 저장된 소프트웨어 모듈로서 구현되는 것 외에, 미디어 경험 정책 엔진(120)은 예를 들어 펌웨어 내에 위치할 수도 있다. 더욱이, 정보 관리자(312), 정책 평가자(314) 및 실시 모듈(316)이 도 3에서 미디어 경험 정책 엔진(120) 내에 위치하는 것으로 도시되어 있지만, 이들 요소 중 일부 또는 전부는 개별적으로 또는 독립형 애플리케이션들로서 존재할 수 있다. 미디어 경험 정책 엔진(120)의 특성 및 기능에 대한 추가 설명이 아래에 주어질 것이다.
엔터테인먼트 서버(112)는 또한 하나 이상의 튜너(302), 하나 이상의 프로세서(304), 네트워크 인터페이스(310) 및 메모리(308)를 서로 통신 결합시키는 시스템 버스(그래픽의 명료화를 위해 도시되지 않음)를 포함할 수 있다. 시스템 버스는 메모리 버스 또는 메모리 제어기, 주변 버스, 가속 그래픽 버스, 및 각종 버스 아키텍처 중 임의의 것을 이용하는 프로세서 또는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 임의의 하나 이상의 것을 포함할 수 있다.
사용자는 키보드, 포인팅 장치(예를 들어, "마우스"), 마이크, 조이스틱, 게임 패드, 위성 안테나, 직렬 포트, 스캐너 등과 같은 입력 장치를 통해 엔터테인먼트 서버(112)에 명령 및 정보를 입력할 수 있다. 이들 및 다른 입력 장치는 시스 템 버스에 결합되는 입출력(I/O) 인터페이스를 통해 하나 이상의 프로세서(304)에 접속될 수 있다. 또한, 입력 장치들은 병렬 포트, 게임 포트, USB 또는 네트워크 인터페이스(310)에 포함된 임의의 다른 접속과 같은 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다.
네트워크 환경에서, 엔터테인먼트 서버(112) 및 그의 부분들과 관련하여 위에 묘사되고 설명된 프로그램 모듈들은 원격 메모리 저장 장치 내에 저장될 수 있다. 예를 들어, 원격 애플리케이션 프로그램들이 네트워크(124)에 통신 결합된 원격 컴퓨터의 메모리 장치 상에 위치할 수 있다. 예를 들어, 운영 체제 및 미디어 경험 정책 엔진(120)과 같은 애플리케이션 프로그램들 및 다른 실행가능 프로그램 컴포넌트들은 엔터테인먼트 서버(112) 또는 원격 컴퓨터의 상이한 저장 컴포넌트들 내에 다양한 시간에 위치할 수 있으며, 엔터테인먼트 서버(112) 또는 원격 컴퓨터의 적어도 하나의 프로세서(304) 중 하나에 의해 실행될 수 있다.
예시적인 홈 네트워크 장치(122)는 하나 이상의 프로세서(318) 및 메모리(320)를 포함할 수 있다. 메모리(320)는 엔터테인먼트 서버(112)와 같은 소스로부터 수신된 미디어 콘텐츠를 소비 또는 사용하는 하나 이상의 애플리케이션(322)을 포함할 수 있다. 메모리(320)는 또한 엔터테인먼트 서버(112) 내의 미디어 경험 정책 엔진(120)과 함께 또는 그를 배제하고 사용될 수 있는 클라이언트측 MEPE(202)를 포함할 수 있다. 엔터테인먼트 서버(112) 내의 미디어 경험 정책 엔진(120)과 유사하게, 클라이언트측 MEPE도 정보 관리자, 정책 평가자 및 실시 모듈(그래픽 명료화를 위해 도시되지 않음)을 포함할 수 있다. 메모리(308)에 저장 된 소프트웨어 모듈로서 구현되는 것 외에, 클라이언트측 MEPE(202)는 예를 들어 펌웨어 내에 위치할 수 있다.
미디어 경험 정책 엔진 기능
동작에 있어서, 사용자들은 네트워크(124)를 통해 호스트 엔터테인먼트 서버(112)에 결합된 홈 네트워크 장치(122) 또는 다른 엔터테인먼트 서버(112) 또는 장치를 이용하여 하나 이상의 엔터테인먼트 서버(112)로부터 미디어 콘텐츠를 요청할 수 있다. 또한, 전술한 바와 같이, 다수의 사용자는 다수의 키보드, 마우스, 모니터 등이 엔터테인먼트 서버(112)에 플러깅되는 것을 가능하게 하는 소프트웨어의 사용을 통해 동일 엔터테인먼트 서버(112) 상에서 동시에 작업할 수 있다.
미디어 콘텐츠에 대한 요청들은 라이브 소스(인터넷(118), 케이블(114), 안테나 또는 위성(116) 등)로부터 스트리밍된 HD 또는 SD 콘텐츠를 보거나, 콘텐츠 저장 장치(306)에 저장된 오디오 콘텐츠를 수신하거나, 메모리(308)에 저장된 애플리케이션에 액세스하여 작업하기 위한 요청들을 포함하는 다양한 형태를 가질 수 있다. 보다 많은 사용자가 하나 이상의 엔터테인먼트 서버(112)로부터 미디어 콘텐츠를 요청함에 따라, 또는 현존 사용자들의 요청들이 더 많아져 보다 큰 처리 능력 및 네트워크 용량을 요구함에 따라, 요청들이 하나 이상의 엔터테인먼트 서버(112) 및 네트워크(124)의 가용 자원들을 초과할 수 있는 위험이 존재하게 된다. 예를 들어, 네트워크(124)가 HD 콘텐츠의 한 채널을 홈 네트워크 장치(122)로 스트리밍하기에 충분한 용량만을 갖는 경우, 2개의 채널이 요청된다면, 네트워크(124)에는 과부하가 걸리게 된다. 이러한 일이 발생할 때, 예상치 못했고 바람직하지 못한 거동은 엔터테인먼트 서버(112), 네트워크(124) 및 홈 네트워크 장치(122)에서 사용자 경험의 임의 강등, 또는 엔터테인먼트 서버(112)에서의 콘텐츠 수신으로부터의 하나 이상의 사용자의 임의 배제를 포함하는 장애를 발생시킨다.
미디어 경험 정책 엔진(120), 클라이언트측 MEPE(202) 및 독립형 미디어 경험 정책 엔진(204)은, 사용자 경험의 장애를 유발할 수 있는 그러한 예상치 못했고 바람직하지 못한 거동을, 해로운 자원 쟁탈을 피하기 위해 원하는 정책에 따라 하나 이상의 서버(112) 및 네트워크(124)의 자원들을 적응적으로 관리함으로써 피하기 위해 존재한다. 아래에 더 상세히 설명되는 바와 같이, 원하는 정책은 소정의 사용자 경험들이 자원 쟁탈의 직면하여 어떻게 유지되어야 하는지를 지시한다.
정보 관리자
엔터테인먼트 서버들(112) 중 하나 이상이 사용자들에게 미디어 콘텐츠를 전달하고 있는 동안, 미디어 경험 정책 엔진(120) 내의 정보 관리자(312)는 예시적인 아키텍처(300)에서의 실제 자원 사용을 능동적으로 모니터링한다. 정보 관리자(312)에 의해 모니터링되는 자원들은 예를 들어, 하나 이상의 엔터테인먼트 서버(112)는 물론, 사용자들이 미디어 콘텐츠에 대한 요청을 행하는 네트워크 장치들(122)에 대한 CPU 사용, 메모리 사용, (I/O) 인터페이스 사용 및 하드 디스크 사용을 포함할 수 있다. 또한, 네트워크(124)의 사용도 정보 관리자(312)에 의해 모니터링될 수 있다.
정보 관리자(312)에 의해 수집된 사용 데이터는 총 기간 내일 수 있거나, 특정 장치들 또는 사용자들에 대한 데이터를 포함할 수 있다. 일 구현에서, 정보 관 리자(312)는 네트워크(124)의 총 사용은 물론, 특정 사용자 또는 장치의 요청들에 의해 발생하는 네트워크(124)의 총 사용을 볼 수 있다. 유사한 방식으로, 총 사용 및/또는 특정 사용자들 또는 장치들에 의해 발생하는 사용을 나타내는 데이터가 엔터테인먼트 서버(112) 및 홈 네트워크 장치(122) 상의 CPU 사용, 메모리 사용, (I/O) 인터페이스 사용, 및 하드 디스크 사용에 대해 수집될 수 있다.
정책 평가자
이어서, 정보 관리자(312)에 의해 수집된 사용 정보는 자원 쟁탈 문제에 대해 검사될 수 있다. 이것은 정책 평가자(314)에 의해 수행될 수 있는데, 정책 평가자(314)는 정보 관리자(312)에 의해 수집된 사용 데이터를 취하여, 이를 총 가용 자원과 비교한다. 개별 정책들은 네트워크의 자원들이 쟁탈에 이를 때 네트워크(124) 상의 상이한 사용자들의 개별 사용자 경험들이 어떻게 영향을 받는지를 상술할 수 있다. 예를 들어, 네트워크(124)의 총 사용과 관련하여 정보 관리자(312)에 의해 수집된 데이터는 네트워크(124)가 포화에 근접하고 있는지를 알기 위해 네트워크(124)의 총 가용 용량에 대비하여 보여질 수 있다. 유사한 방식으로, 엔터테인먼트 서버(112)는 물론, 네트워크 장치(122)에 대한 CPU, 메모리, (I/O) 인터페이스, 및 하드 디스크는 이들이 과포화될 위험에 있는지를 판정하기 위해 자원 쟁탈에 대해 정책 평가자(314)에 의해 분석될 수 있다.
충돌이 존재하지 않고, 아키텍처(300)의 임의의 자원들의 과포화의 위험이 없는 경우, 중재가 필요 없게 된다. 그러나 임의의 자원들이 포화에 근접한 것이 발견되면, 정책 평가자(314)는 아키텍처(300)의 현재 상태가 원하는 정책에 의해 지시되는 것과 일치하는지를 판정하기 위하여 원하는 정책에 대해 아키텍처(300)의 현재 상태를 검사할 수 있다.
정책 평가자(314)에 의해 사용되는 포화 제한들 자체는 사용자에 의해 설정 또는 재설정될 수 있다. 예를 들어, 포화는 엔터테인먼트 서버(112)의 CPU의 총 용량의 80%로서 정의될 수 있다. 따라서, 엔터테인먼트 서버(112)의 CPU의 용량의 80%가 사용되고 있을 때, 정책 평가자(314)는 CPU를 포화된 것으로 인식할 것이다. 이와 같은 100% 아래의 포화 제한의 설정은 엔터테인먼트 서버(112) 또는 홈 네트워크 장치(122)가 과도하게 가입되는 상황에 이르는 것을 피할 수 있다.
또한, 원하는 정책들 자체는 사용자에 의해 미리 결정 또는 미리 입력되거나, 아키텍처(300)의 동작 동안 설정 및 재설정될 수 있다. 하나의 예시적인 구현에서는, 제조자에서 사용자로의 분배 체인에서 제조자 또는 다른 엔티티에 의해 엔터테인먼트 서버(112) 또는 홈 네트워크 장치(122) 상에 다양한 가능한 미리 결정된 원하는 정책들이 로딩될 수 있다. 이어서, 사용자는 주어진 사용자 자신의 고유한 요구 및 우선 순위에 가장 적합한 소정의 원하는 정책을 활성화하기 위해 가능한 사전 설정 옵션들의 리스트로부터 선택할 수 있다. 사용자가 이용할 수 있는 사전 설정된 옵션들 및 소정의 원하는 정책들은 "쉬운 영어"(즉, 비전문적인 사용자들이 이해할 수 있는 언어)에 따라 쉽게 제시될 수 있다.
전술한 바와 같이, 정책들은 소정의 사용자 경험들이 자원 쟁탈에 직면하여 어떻게 유지되어야 하는지를 지시한다. 예를 들어, 원하는 정책은 아키텍처(300)의 제1(연대순) 사용자에 대해 결함 없는 또는 고품질 경험을 지시하는 반면 후속 사용자들의 경험을 강등할 수 있다. 잠재적으로, 이러한 원하는 정책은, 그의 사용이 자원 쟁탈을 유발할 수 있는 최종 사용자에 대한 서비스 거절을 포함할 수 있다.
대안으로, 다른 원하는 정책은 높은 우선 순위의 사용자(부모 또는 엔터테인먼트 서버(112)의 소유자 등)에 대해 결함 없는 또는 고품질 경험을 지시하고, 낮은 우선 순위의 사용자들(예를 들어, 자녀 및 엔터테인먼트 서버(112)의 비소유자)의 경험을 강등할 수 있다. 이러한 정책은 잠재적으로 그의 사용이 자원 쟁탈을 유발할 수 있는 최하위 우선 순위의 사용자에 대한 서비스 거절을 포함할 수 있다.
다른 예에서, 원하는 정책은 최고 품질 표시 장치(예를 들어, HDTV 모니터)에 대한 결함 없는 또는 고품질 사용자 경험을 지시하고, 저품질 표시 장치(예를 들어, SDTV 모니터)에 대한 경험을 강등할 수 있다. 대안으로, 원하는 정책은 HD 표시 장치에 대해서만 HD 콘텐츠를, 그리고 모든 다른 표시 장치에 대해서는 SD 콘텐츠를 전달할 것을 지시할 수 있다.
더욱이, 원하는 정책은 모든 사용자가 아키텍처(300)의 자원들을 공유하게 하는 모든 사용자 경험의 동일한 강등은 물론, 아키텍처(300)의 자원들의 공평한 강등을 지시할 수 있다. 또한, 원하는 정책은 또한 하나 이상의 우선 순위 사용자가 보다 낮은 우선순위 사용자들의 운명을 결정하는 것을 가능하게 할 수 있다. 이 경우, 하나 이상의 우선 순위 사용자에게 보다 낮은 우선순위 사용자들 및 임의의 자원 쟁탈 문제들을 해결하기 위해 취할 수 있는 가능한 액션들을 리스트하는 프롬프트들이 발행될 수 있다. 이어서, 하나 이상의 높은 우선 순위 사용자는 그 들을 선택하는 방식으로 응답할 수 있다. 예를 들어, 높은 우선 순위 사용자가 거실(104) 내의 주 TV(106) 상의 미디어 스트림을 보러 가면서 침실(102) 내의 보조 TV(108) 상의 미디어 콘텐츠 스트림의 수신을 중지를 잊은 시나리오를 고려한다. 이후, 자원 쟁탈이 발생하는 경우, 높은 우선순위 사용자는 보조 TV(108)에 대한 스트리밍을 중지하는 옵션을 그에게 제공하는 프롬프트를 주 TV(106) 상에서 발행받을 수 있다.
또한, 전술한 원하는 정책들 모두는 또한 높은 볼륨 사용자들을 벌하거나 견제하는 규정을 포함할 수 있다. 예를 들어, 정책 평가자(314)는 아키텍처(300)의 자원들의 과도한 비율을 소비하는 임의의 사용자 또는 장치의 증거용 사용 데이터를 검사할 수 있다. 발견시, 이러한 사용자 또는 장치는 사용자 경험의 강등, 또는 아키텍처(300)의 자원들의 추가 사용의 금지를 포함하는 특별 취급을 받을 수 있다.
실시 모듈
정보 관리자(312)에 의해 수집된 정보가 자원 쟁탈에 대해 조사되고, 아키텍처(300)의 현재 상태가 정책 평가자(314)에 의해 원하는 정책에 대해 검토되면, 실시 모듈(316)은 제어를 행하여, 원하는 정책이 모든 사용자 및 장치에 대해 구현됨을 보증한다.
실시 모듈(316)은 두 가지의 넓은 카테고리의 실시, 즉 상호작용 및 비 사용작용 실시를 따를 수 있다. 실시 모듈(316)이 어떤 형태의 실시를 따를 것인지는 원하는 정책, 사전 입력된 컴퓨터 설정, 또는 사용자 프롬프트로부터 수신된 대답 에 의해 지시될 수 있다.
상호작용 실시가 지시되는 경우, 실시 모듈(316)은 자원 쟁탈이 존재함을 하나 이상의 사용자에게 통지한 후, 이들에게 상황을 치유하기 위한 옵션을 제공할 수 있다. 통지 및 옵션 양자는 "쉬운 영어"(즉, 비전문 사용자들이 이해할 수 있는 언어)에 따라 쉽게 사용자들에게 제시될 수 있다. 예를 들어, 네트워크(124)의 사용이 너무 많은 경우, 실시 모듈(316)은 하나 이상의 사용자에게 하나 이상의 옵션을 제시할 수 있다. 일 구현에서, 실시 모듈(316)은 하나 이상의 사용자에게 TV를 보는 대신 음악을 듣는 옵션을 제시할 수 있는데, 이는 오디오 콘텐츠의 전달이 오디오 및 비디오 콘텐츠의 전달보다 적은 대역폭을 소비하기 때문이다. 또한, 실시 모듈(316)은 네트워크 사용을 줄이고, 따라서 관련 네트워크 자원 쟁탈 문제를 개선하기 위해 하나 이상의 사용자에게 HD 피드로부터 SD 피드로(예를 들어, HDTV 채널로부터 SDTV 채널로) 전환하도록 지시할 수 있다.
다른 가능한 구현에서, 실시 모듈(316)은 하나 이상의 사용자에게 다른 사용자들과 공유하는 미디어 경험(멀티캐스트 대 유니캐스트)에 합류하도록 프롬프트할 수 있다. 또한, 실시 모듈(316)은 하나 이상의 사용자에게 지연 재생 모드로 전환하도록 프롬프트할 수 있다. 이러한 선택은 하나 이상의 엔터테인먼트 서버(112)가 미디어를 하나 이상의 사용자를 위해 재생하기 전에 비 실시간으로 미디어를 다운로드하고 캐시하는 것을 가능하게 한다. 또한, 실시 모듈(316)은 트랜스레이터(transrater)/트랜스코더의 사용을 통해 하나 이상의 사용자에게 전달되는 미디어 콘텐츠의 비트 레이트의 감소를 허가하는 선택을 하나 이상의 사용자에게 제공 할 수 있다.
더욱이, 실시 모듈(316)은 하나 이상의 사용자에게 미디어 인코더 비트 레이트를 줄이는 선택을 제의할 수 있다(소스가 실시간으로 인코딩되고 있는 경우). 또한, 실시 모듈(316)은 하나 이상의 사용자에게 멀티 비트 레이트/멀티 포맷 미디어 파일에서 상이한 비트 레이트 및/또는 포맷으로 전환하는 선택을 제의할 수 있다.
또 다른 예에서, 실시 모듈(316)은 하나 이상의 사용자가 네트워크 우선 순위화(예를 들어, WiFi 멀티미디어)를 가능하게 하는 것을 선택하여 가장 중요한 스트림들이 강등되지 않는 것을 보증하게 할 수 있다(이는 또한 덜 중요한 스트림들이 강등될 수 있다는 것을 의미한다).
마찬가지로, 하나 이상의 엔터테인먼트 서버(112) 또는 홈 네트워크 장치(122) 내의 메모리(308, 320)의 사용이 너무 많은 경우, 실시 모듈(316)은 하나 이상의 사용자에게 메모리 사용을 줄이도록 설계된 하나 이상의 옵션을 제시할 수 있다. 하나의 예시적인 구현에서, 실시 모듈은 하나 이상의 사용자에게, 홈 박스 오피스® TV 채널과 같은 유료 사이트로부터 미국 방송사(ABC) TV 채널과 같은 공용 채널로 텔레비전 채널을 전환하는 것과 같이 비 디지털 판권 관리(DRM) 보호 미디어 콘텐츠 시청으로 전환하는 옵션을 제시할 수 있다. 이러한 액션은 하나 이상의 엔터테인먼트 서버(112) 및 홈 네트워크 장치(122)의 메모리(308, 320) 상에 암호화/해독 또는 정책 관리자 컴포넌트들을 로딩할 필요를 없앰으로써 메모리 요구를 줄일 수 있다.
실시 모듈(316)은 또한 사용하지 않는 컴포넌트들의 언로딩을 허가하기 위해 하나 이상의 사용자에게 프롬프트할 수 있다. 하나의 예에서, 이것은 하나 이상의 사용자 중 적어도 하나를 다른 엔터테인먼트 서버(112)로 이동시켜, 적어도 하나의 사용자가 이동해 나간 엔터테인먼트 서버(112)에 사용자들이 없게 되어 셧다운될 수 있게 하는 것을 포함할 수 있다.
다른 예에서, 실시 모듈(316)은 하나 이상의 사용자의 경험의 전환을 허가하기 위해 하나 이상의 사용자에게 프롬프트할 수 있다. 예를 들어, 실시 모듈(316)은 풍부한 경험에서 평범한 경험으로 UI 경험의 충실도를 줄일 수 있다(하나 이상의 엔터테인먼트 서버(112) 또는 홈 네트워크 장치(122)로부터 구동되는 경우).
실시 모듈(316)이, 하나 이상의 엔터테인먼트 서버(112) 또는 홈 네트워크 장치(122)의 CPU 사용이 너무 많은 것으로 판정하는 경우, 실시 모듈(316)은 하나 이상의 사용자에게 CPU 사용을 줄이기 위한 적절한 액션을 취하도록 프롬프트할 수 있다. 예를 들어, 실시 모듈(316)은 DRM 콘텐츠와 연관된 암호화/해독 및 정책 관리자 오버헤드를 줄이기 위해 비 DRM 보호 미디어 콘텐츠의 시청으로 전환하도록 하나 이상의 사용자에게 프롬프트할 수 있다. 마찬가지로, 실시 모듈(316)은 하나 이상의 사용자에게 HD 피드에서 SD 피드로(예를 들어, HDTV 채널에서 SDTV 채널로) 전환하도록 프롬프트할 수 있다.
실시 모듈(316)이 하나 이상의 엔터테인먼트 서버(112) 또는 홈 네트워크 장치(122) 상의 하드 디스크 사용이 너무 많은 것으로 판정하는 경우, 실시 모 듈(316)은 하나 이상의 사용자에게 하드 디스크 사용을 줄이기 위한 적절한 액션을 취하도록 프롬프트할 수 있다. 예를 들어, 실시 모듈(316)은 하나 이상의 사용자에게 낮은 대역폭 스트림(예를 들어, 텔레비전 대신 음악, HDTV 대신 SDTV)으로 전환하도록 프롬프트할 수 있다.
예를 들어 (I/O) 인터페이스에서 병목을 만나는 경우, 이용할 수 있는 다른 옵션은 다수의 엔터테인먼트 서버(112) 또는 홈 네트워크 장치(122) 간의 부하 밸런싱의 이용이다. 이 경우, 실시 모듈(316)은 하나 이상의 사용자에게, 독립형 미디어 경험 정책 엔진(204) 및/또는 엔터테인먼트 서버(112) 및 홈 네트워크 장치(122)로부터의 미디어 경험 정책 엔진(120, 202)이 엔터테인먼트 서버(112) 또는 네트워크 장치(122) 중 하나에서 다른 것으로 부하를 동적으로 시프트하도록 협동하는 것을 가능하게 하는 옵션을 제의할 수 있다. 대안으로, 엔터테인먼트 서버(112) 또는 홈 네트워크 장치(122) 중 하나 상의 하나의 "주" 정책 엔진(120, 202)-또는 독립형 미디어 경험 정책 엔진(204)-이 모든 PC/장치로부터 피드백을 수집하고, 병목을 줄여 궁극적으로 개선하기 위해 피드백 상에 작용할 수 있다.
일 구현에서는, 원하는 정책으로부터의 지시에 의해 영향을 받을 사용자 경험을 갖는 사용자(들)만이 실시 옵션을 제시받게 된다. 다른 구현에서는, 영향을 받지 않을 경험을 갖는 사용자들에게도, 가능한 자원 쟁탈 문제 및 취해질 수 있는 가능한 액션에 관한 정보가 발행될 수 있다.
비 상호작용 실시의 경우, 정책 실시 모듈(316)은 구현될 임박한 변경에 대해 임의의 사용자에게 프롬프트하거나 임의의 경고를 제공하지 않고 환경(300)에 대한 변경을 구현할 수 있다. 대안으로, 정책 실시 모듈(316)은 영향받은 사용자들, 영향받지 않은 사용자들 또는 이들의 임의 서브세트에게 후속 변경의 설명 또는 상술을 표시할 수 있다. 이러한 시나리오에서, 설명은 "쉬운 영어"(즉, 비전문 사용자들이 이해할 수 있는 언어)에 따라 쉽게 사용자에게 제시될 수 있다.
비 상호작용 실시를 이용하여 실시 수단을 설정하기 위해 정책 실시 모듈(316)에 의해 취해질 수 있는 액션은 상호작용 실시와 관련하여 설명된 수단 모두를 포함할 수 있다는 것을 이해할 것이다.
또한, 전술한 것 외에 다른 기술들도 이용될 수 있음을 이해할 것이다. 더욱이, 전술한 기술들은 혼합되고 매칭될 수 있으며, 따라서 실시 모듈(316)은 상호작용 및 비 상호작용 실시 기술 양자의 조합을 포함하는 다수의 접근법을 함께 이용할 수 있다.
또한, 전술한 많은 변경은 불가피하게 비용을 치른다는 것을 또한 이해할 것이다. 예를 들어, 높은 비트 레이트 스트림이 동적으로 트랜스레이팅/트랜스코딩될 때, 사용자 경험의 품질이 감소되고, 엔터테인먼트 서버(112) 또는 홈 네트워크 장치(122) 상의 증가된 CPU 사용을 초래한다. 따라서, 정책 엔진(120)은 다중 변수 평가를 이용하여 옵션들을 평가할 수 있다. 예를 들어, 정책 엔진(120)은 최고 우선 순위 병목을 해결하는 모든 옵션을 식별하고, 최상의 적합도(best fit)(즉, 훨씬 더 높은 우선순위의 병목을 유발하지 않는 것)를 발견하기 위해 옵션들을 레이팅할 수 있다. 자원들이 과잉 요구되지 않는 최상의 적합도가 식별되면, 정책 엔진(120)은 그 옵션을 구현할 수 있다.
미디어 경험 정책 고수 방법
엔터테인먼트 서버(112) 및 홈 네트워크 장치(122)의 동적 부하 밸런싱을 처리하는 다른 하나의 양태가 미디어 경험 정책 엔진(120)에 의해 수행되는 예시적인 방법(400)을 나타내는 도 4에 도시되어 있다. 이해의 편의를 위해, 방법(400)은 도 4에 독립 블록들로 표현되는 개별 단계들로 묘사되지만, 개별적으로 묘사된 이들 단계는 그들의 수행에 있어서 반드시 순서 종속적인 것으로 해석되어서는 안 된다. 또한, 설명을 위해, 방법(400)은 도 1-3의 요소들을 참조하여 설명된다.
방법(400)은 블록 402에서 미디어 콘텐츠 전달 자원들의 상태를 계속 모니터링한다. 이것은 예를 들어 하나 이상의 엔터테인먼트 서버(112)는 물론, 사용자들이 미디어 콘텐츠에 대한 요청을 행하고 있는 네트워크 장치들(122)에 대한 CPU 사용, 메모리 사용, (I/O) 인터페이스 사용 및 하드 디스크 사용을 포함하는 자원 사용을 계속 모니터링함으로써 달성될 수 있다(블록 404). 또한, 네트워크(124)의 사용도 모니터링될 수 있다. 하나의 예시적인 구현에서, 자원들의 모니터링은 정보 관리자(312)에 의해 수행될 수 있다. 수집된 사용 데이터는 전체 기간 내이거나, 특정 장치들(122) 또는 사용자들에 대한 데이터를 포함할 수 있다. 일 구현에서, 방법(400)은 네트워크(124)의 총 사용은 물론, 특정 사용자, 홈 네트워크 장치(122) 또는 엔터테인먼트 서버(112)의 요청들에 의해 발생하는 네트워크(124)의 총 사용을 볼 수 있다. 유사한 방식으로, 총 사용, 및/또는 특정 사용자들 또는 장치들에 의해 발생하는 사용을 나타내는 데이터가 엔터테인먼트 서버(112) 및 홈 네트워크 장치(122) 상의 CPU 사용, 메모리 사용, (I/O) 인터페이스 사용 및 하드 디스크 사용에 대해 수집될 수 있다.
수집된 사용 정보는 자원 쟁탈 문제에 대해 방법(400)에 의해 검사될 수 있다(블록 406). 하나의 예시적인 구현에서, 이것은 정책 평가자(314)에 의해 행해질 수 있다. 수집된 사용 데이터는 총 가용 자원 데이터와 비교될 수 있다. 예를 들어, 네트워크(124)의 총 사용에 관한 수집 데이터는 네트워크(124)가 포화에 근접하고 있는지를 알기 위해 네트워크(124)의 총 가용 용량에 대비하여 보여질 수 있다. 유사한 방식으로, 엔터테인먼트 서버(들)(112)는 물론, 네트워크 장치들(122)에 대한 CPU, 메모리, (I/O) 인터페이스 및 하드 디스크가 과포화될 위험에 있는지를 판정하기 위해 자원 쟁탈에 대해 분석될 수 있다.
충돌이 존재하지 않고, 아키텍처(300)의 임의 자원들의 과포화의 위험이 없는 경우, 중재가 필요하지 않으며, 방법(400)은 블록 402(즉, 블록 406에서 "no" 분기)로 복귀한다.
그러나 대안으로 임의의 자원이 포화에 근접한 것이 발견되는 경우(즉, 블록 406에서 "yes" 분기), 방법(400)은 아키텍처(300)의 현재 상태를 원하는 정책과 비교하여 아키텍처(300)의 현재 상태가 원하는 정책 하에 지시되는 것과 일치하는지를 판정한다(블록 408). 원하는 정책은 예를 들어 사용자에 의해 사전 입력되거나, 제조자 또는 재판매자에 의해 사전 설정되거나, 아키텍처(300)의 동작 중에 설정 및 재설정될 수 있다. 일 구현에서, 원하는 정책은 아키텍처(300)의 제1(연대순) 사용자에 대해 결함 없는 또는 고품질 경험을 지시하는 반면, 후속 사용자들에 대해서는 경험을 강등할 수 있다. 잠재적으로, 이러한 원하는 정책은 그의 사용이 자원 쟁탈을 유발할 수 있는 최종 사용자에 대한 서비스 거절을 포함할 수 있다.
다른 가능한 구현에서, 원하는 정책은 주 사용자(부모 또는 엔터테인먼트 서버(112)의 소유자 등)에 대해 결함 없는 또는 고품질 경험을 지시하고, 낮은 우선 순위의 사용자들(예를 들어, 자녀 및 엔터테인먼트 서버(112)의 비소유자)의 경험을 강등할 수 있다. 이러한 정책은 잠재적으로 그의 사용이 자원 쟁탈을 유발할 수 있는 최하위 우선 순위의 사용자에 대한 서비스 거절을 포함할 수 있다.
또 다른 가능한 구현에서, 원하는 정책은 최고 품질 표시 장치(예를 들어, HDTV 모니터)에 대한 결함 없는 또는 고품질 사용자 경험을 지시하고, 저품질 표시 장치(예를 들어, SDTV 모니터)에 대한 경험을 강등할 수 있다. 대안으로, 정책은 HD 표시 장치에 대해서만 HD 콘텐츠를, 그리고 모든 다른 표시 장치에 대해서는 SD 콘텐츠를 전달할 것을 지시할 수 있다.
또 다른 가능한 구현에서, 원하는 정책은 모든 사용자가 아키텍처(300)의 자원들을 공평하게 공유하게 하는 모든 사용자 경험의 동일한 강등은 물론, 아키텍처(300)의 자원들의 강등을 지시할 수 있다.
전술한 구현들 모두에서, 원하는 정책들은 또한 높은 볼륨 사용자들을 벌하거나 견제하는 규정을 포함할 수 있다. 예를 들어, 사용 데이터는 아키텍처(300)의 자원들의 과도한 비율을 소비하는 임의의 사용자 또는 장치의 증거를 위해 검사될 수 있다. 발견시, 이러한 사용자 또는 장치는 사용자 경험의 강등, 또는 아키텍처(300)의 자원들의 추가 사용의 금지를 포함하는 특별 취급을 받을 수 있다.
블록 408에서, 아키텍처(300)의 현재 상태가 원하는 정책을 따르는 것이 발 견되면, 중재는 필요하지 않으며, 방법은 블록 402(즉, 블록 406에서 "yes" 분기)로 복귀한다. 그러나 아키텍처(300)의 현재 상태가 원하는 정책을 따르지 않는 것으로 블록 408에서 발견되면(즉, 블록 406에서 "no" 분기), 정책 실시가 추구될 수 있다.
방법(400)은 원하는 정책, 사전 입력된 컴퓨터 설정 또는 사용자 프롬프트로부터 수신된 대답에 의해 어떤 형태의 실시가 지시되는지에 따라 상호작용 실시(블록 410) 또는 비 상호작용 실시(블록 412)를 강제할 수 있다.
상호작용 실시 하에서, 방법(400)은 하나 이상의 사용자에게 자원 쟁탈이 존재함을 통지한 후, 이들에게 상황을 치유하기 위한 옵션들을 제시할 수 있다. 통지받은 사용자들은 원하는 정책의 실시에 의해 발생하는 변경에 의해 영향을 받을 수 있는 사용자 경험을 갖는 사용자를 포함하거나, 대안으로 모든 사용자 또는 이들의 서브세트가 통지를 수신할 수 있다.
하나의 예시적인 구현에서, 네트워크(124)의 사용이 너무 많은 경우, 방법(400)은 네트워크 사용을 줄이기 위해 TV를 보는 대신 음악을 듣거나 HDTV 채널에서 SDTV 채널로 전환하는 옵션을 포함하는 여러 옵션 중 하나 이상을 하나 이상의 사용자에게 제시할 수 있다. CPU, 메모리 및 하드 디스크 사용은 물론, I/O 인터페이스 병목으로부터 발생하는 자원 쟁탈 문제를 개선하기 위해 유사한 프롬프트들이 제시될 수 있다.
방법(400)에 의해 비 상호작용 실시(블록 412)가 추구되는 경우, 임박한 변경에 대해 임의의 사용자에게 프롬프트하거나 임의의 경고를 제공하지 않고 환 경(300)에 대한 변경이 이루어질 수도 있다. 대안으로, 후속 변경들의 설명 또는 상술이 영향받은 사용자들, 영향받지 않은 사용자들 또는 이들의 임의의 서브세트에게 표시될 수 있다.
예를 들어, 비 상호작용 실시의 하나의 예시적인 구현 하에서, 네트워크 사용이 너무 많은 것으로 판정되는 경우, 하나 이상의 사용자에게 스트리밍되고 있는 미디어 콘텐츠의 미디어 비트 레이트는 트랜스레이터/트랜스코더의 사용을 통해 감소될 수 있다. CPU, 메모리, 및 하드 디스크 사용은 물론, I/O 인터페이스 병목으로부터 발생하는 자원 쟁탈 문제를 개선하기 위해 유사한 액션이 취해질 수 있다.
전술한 예들 외에, 하나 이상의 높은 우선 순위 사용자에게 보다 낮은 우선 순위 사용자들의 운명을 결정할 수 있는 프롬프트를 제공하는 것을 포함하는 다른 기술들도 이용될 수 있음을 또한 이해할 것이다. 더욱이, 전술한 기술들은 혼합되고 매칭될 수 있으며, 따라서 상호작용 및 비 상호작용 실시 기술 양자의 조합을 포함하는 다수의 접근법이 함께 이용될 수 있다.
하나의 예시적인 구현에서, 실시 모듈(316)은 상호작용 및 비 상호작용 실시 기술 양자에 영향을 미치도록 사용될 수 있다.
전술한 대부분의 변경은 불가피하게 비용을 치른다는 것을 또한 이해할 것이다. 예를 들어, 높은 비트 레이트 스트림이 동적으로 트랜스레이팅/트랜스코딩될 때, 사용자 경험의 품질이 감소되고, 엔터테인먼트 서버(112) 또는 홈 네트워크 장치(122) 상의 증가된 CPU 사용을 초래한다. 따라서, 정책 엔진(120)은 다중 변수 평가를 이용하여 옵션들을 평가할 수 있다. 예를 들어, 방법(400)은 최상의 적합 도(즉, 훨씬 더 높은 우선순위의 병목을 유발하지 않는 옵션)에 기초하여 최고 우선 순위 병목을 해결하는 데 이용할 수 있는 모든 옵션을 레이팅할 수 있다. 자원들이 과잉 요구되지 않는 최상의 적합도가 식별되면, 방법(400)에 의해 그 옵션이 구현될 수 있다.
정책이 실시된 경우(블록 410, 412), 방법(400)은 블록 402로 복귀하여, 환경(300)의 자원들의 계속적인 모니터링을 재개할 수 있다.
정책 평가 방법
엔터테인먼트 서버(112)에 위치하는 정책 평가자(314)에 의해 수행되는 예시적인 방법(500)을 나타내는 도 5에 원하는 정책을 평가하는 다른 양태가 도시되어 있다. 이해의 편의를 위해, 방법(500)은 도 5에 독립 블록들로 표현된 개별 단계들로서 묘사되지만, 이들 개별 묘사된 단계는 그들의 수행에 있어서 반드시 순서 종속적인 것으로 해석되어서는 안 된다. 또한, 설명을 위해, 방법(500)은 도 1-3의 요소들을 참조하여 설명된다.
아키텍처(300)의 자원들의 사용에 관한 사용 정보가 수집된 경우, 자원 쟁탈 문제가 존재하는지를 알기 위해 정보가 분석될 수 있다(블록 502). 하나의 예시적인 구현에서, 사용 데이터는 정보 관리자(312)에 의해 수집된다. 사용 데이터는 아키텍처(300) 내의 총 가용 자원과 비교함으로써 분석될 수 있다. 예를 들어, 네트워크(124)의 총 사용에 관하여 정보 관리자(312)에 의해 수집된 데이터는 네트워크(124)가 포화에 접근하고 있는지를 알기 위해 네트워크(124)의 총 가용 용량에 대비하여 보여질 수 있다. 유사한 방식으로, 엔터테인먼트 서버(112)는 물론, 네 트워크 장치(122)에 대한 CPU, 메모리, (I/O) 인터페이스, 및 하드 디스크가 과포화될 위험에 있는지를 판정하기 위해 자원 쟁탈에 대해 분석될 수 있다.
충돌이 존재하지 않고, 아키텍처(300)의 임의 자원들의 과포화의 위험이 없는 경우(즉, 블록 504에서 "no" 분기), 중재가 필요하지 않으며, 방법은 블록 502로 복귀한다. 그러나 대안으로, 임의의 자원들이 포화에 근접한 것이 발견되면(즉, 블록 504에서 "yes" 분기), 방법(500)은 아키텍처(300)의 현재 상태를 원하는 정책에 대해 검사하여, 아키텍처(300)의 현재 상태가 원하는 정책 하에 지시되는 것과 일치하는지를 판정한다(블록 506).
원하는 정책들은 예를 들어 사용자에 의해 미리 입력되거나, 제조자에서 사용자로의 분배 체인에서 제조자 또는 다른 엔티티에 의해 사전 설정되거나, 아키텍처(300)의 동작 중에 설정 및 재설정될 수 있다. 일 구현에서, 원하는 정책은 아키텍처(300)의 제1(연대순) 사용자에 대해 결함 없는 또는 고품질의 경험을 지시하는 반면, 후속 사용자들에 대해서는 경험을 강등할 수 있다. 잠재적으로, 이러한 원하는 정책은 그의 사용이 자원 쟁탈을 유발할 수 있는 최종 사용자에 대한 서비스의 거절을 포함할 수 있다. 다른 가능한 구현에서, 원하는 정책은 주 사용자(부모 또는 엔터테인먼트 서버(112)의 소유자 등)에 대해 결함 없는 또는 고품질의 경험을 지시하고, 보다 낮은 우선 순위의 사용자들(예를 들어, 자녀 및 엔터테인먼트 서버(112)의 비 소유자)에 대해서는 경험을 강등할 수 있다. 이러한 정책은 잠재적으로 그의 사용이 자원 쟁탈을 유발할 수 있는 최저 우선 순위 사용자에 대한 서비스 거절을 포함할 수 있다.
또 다른 가능한 구현에서, 원하는 정책은 최고 품질 표시 장치(예를 들어, HDTV 모니터)에 대해 결함 없는 또는 고품질의 경험을 지시하고, 보다 낮은 품질의 표시 장치(예를 들어, SDTV 모니터)에 대해서는 경험을 강등할 수 있다. 대안으로, 정책은 HD 표시장치에 대해서만 HD 콘텐츠를, 그리고 다른 모든 표시 장치에 대해서는 SD 콘텐츠를 전달하는 것을 지시할 수 있다.
또 다른 가능한 구현에서, 원하는 정책은 모든 사용자가 아키텍처(300)의 자원들을 공유하게 하는 모든 사용자 경험의 동일한 강등은 물론, 아키텍처(300)의 자원들의 공평한 강등을 지시할 수 있다.
전술한 구현들 모두에서, 원하는 정책들은 또한 높은 볼륨의 사용자들을 벌하거나 견제하는 규정을 포함할 수 있다. 예를 들어, 아키텍처(300)의 자원들의 과도한 비율을 소비하는 임의의 사용자들 또는 장치들은 사용자 경험의 강등 또는 아키텍처(300)의 자원들의 추가 사용의 금지를 포함하는 특별 취급을 받을 수 있다.
아키텍처(300)의 상태는 원하는 정책에 의해 지시되는 원하는 결과가 아키텍처(300)의 실제 상태와 일치하는지를 알기 위해 원하는 정책과 비교될 수 있다. 실제 결과가 원하는 결과와 일치하는 경우(즉, 블록 508에서 "yes" 분기), 중재는 필요하지 않으며, 방법(500)은 블록 502로 복귀한다. 대안으로, 실제 결과가 원하는 결과와 일치하지 않는 경우(즉, 블록 508에서 "no" 분기), 중재가 필요하며, 방법(500)은 블록 510으로 계속되어, 정책 실시를 시작하기 위해 명령이 주어진다.
실시 방법
엔터테인먼트 서버(112)에 위치하는 실시 모듈(316)에 의해 수행되는 예시적인 방법(600)을 나타내는 도 6에 원하는 정책을 평가하는 다른 양태가 도시되어 있다. 이해의 편의를 위해, 방법(600)은 도 6에 독립 블록들로서 표현되는 개별 단계들로서 묘사되지만, 이들 개별 묘사된 단계는 이들의 수행에 있어서 반드시 순서 종속적인 것으로 해석되어서는 안 된다. 또한, 설명을 위해, 방법(600)은 도 1-3의 요소들을 참조하여 설명된다.
아키텍처(300)의 현재 상태가 원하는 정책에 따르는 것이 발견된 경우, 미디어 경험 정책 엔진(120) 또는 그의 컴포넌트들 중 하나에 의해 원하는 정책의 실시를 시작하기 위한 명령이 발행될 수 있다. 이러한 명령의 수신시(블록 602), 방법(600)은 원하는 정책, 다른 사전 설정을 검토하거나 사용자에게 프롬프트를 발행하여, 상호작용 또는 비 상호작용 실시 접근이 추구되어야 하는지를 판정할 수 있다(블록 604).
상호작용 접근을 원하는 경우(즉, 블록 604에서 "상호작용" 분기), 방법(600)은 자원 쟁탈을 유발하는 사용자 또는 장치 거동을 중지 또는 변경하기 위해 하나 이상의 사용자에게 하나 이상의 사용자 프롬프트를 발행한다(블록 606).
예를 들어, 네트워크(124)의 사용이 너무 많은 경우, 방법(600)은 하나 이상의 사용자에 의해 사용되고 있는 모니터들 상에 하나 이상의 옵션과 함께 프롬프트들이 표시되게 할 수 있다. 일 구현에서, 하나 이상의 사용자는 TV를 보는 대신 음악을 듣는 옵션을 제공받을 수 있는데, 이는 오디오 콘텐츠의 전달이 오디오 및 비디오 콘텐츠의 전달보다 적은 대역폭을 소비하기 때문이다. 또한, 하나 이상의 사용자는 네트워크 사용을 줄여 관련 네트워크 자원 쟁탈 문제를 개선하기 위해 HDTV 채널에서 SDTV 채널로 전환하는 옵션을 제공받을 수 있다.
다른 가능한 구현에서, 하나 이상의 사용자는 다른 사용자들과 공유하는 미디어 경험(멀티캐스트 대 유니캐스트)에 합류하도록 프롬프트될 수 있다. 또한, 하나 이상의 사용자는 지연 재생 모드로 전환하도록 프롬프트될 수 있다. 미디어 콘텐츠가 네트워크(124)의 외부로부터 공급되고 있는 경우, 그러한 선택은 하나 이상의 엔터테인먼트 서버(112)가 미디어 콘텐츠를 하나 이상의 사용자에 대해 재생하기 전에 비 실시간으로 미디어 콘텐츠를 다운로드 및 캐시하는 것을 가능하게 한다. 이러한 옵션은 엔터테인먼트 서버(112)의 WAN 링크 상의 네트워크 부하를 줄일 수 있다(WAN의 대역폭은 네트워크(124)의 대역폭과 함께 부분적으로 공유될 수 있다). 대안으로, 미디어 콘텐츠가 네트워크(124) 상에 이미 저장되어 있는 경우, 장치(122)는 미디어 콘텐츠를 다운로드 및 캐시하여 네트워크(124) 상의 네트워크 부하를 줄일 수 있다.
또한, 하나 이상의 사용자는 트랜스레이터/트랜스코더의 사용을 통해 그들에게 전달될 미디어 콘텐츠의 비트 레이트의 감소를 허용하는 선택을 제시받을 수 있다. 더욱이, 하나 이상의 사용자는 미디어 인코더 비트 레이트를 감소시키는 옵션을 제시받을 수 있다(소스가 실시간으로 인코딩되고 있는 경우). 또한, 하나 이상의 사용자는 멀티 비트 레이트/멀티 포맷 미디어 파일에서 상이한 비트 레이트 및/또는 포맷으로 전환하는 옵션을 제공받을 수 있다. 또 다른 예에서, 하나 이상의 사용자는 하나 이상의 엔터테인먼트 서버(112)에서 홈 네트워크 장치(122)로 전달 되는 미디어 콘텐츠의 가장 중요한 스트림이 강등되지 않는 것을 보증하기 위해(이는 또한 보다 적은 중요성을 가진 스트림들이 강등될 수 있음을 의미한다) 네트워크 우선 순위화(예를 들어, WiFi 멀티미디어)를 가능하게 하는 옵션을 제공받을 수 있다. 대안으로, 하나 이상의 사용자는 풍부한 경험에서 평이한 경험으로 UI 경험의 충실도를 줄이도록 프롬프트될 수 있다(하나 이상의 엔터테인먼트 서버(112) 또는 홈 네트워크 장치(122)로부터 구동되는 경우).
유사하게, 하나 이상의 엔터테인먼트 서버(112) 또는 홈 네트워크 장치(122) 내의 메모리(308, 320)의 사용이 너무 많은 경우, 방법(600)은 하나 이상의 사용자에게 메모리 사용을 줄이도록 설계된 여러 옵션 중 하나 이상을 제시할 수 있다. 하나의 예시적인 구현에서, 하나 이상의 사용자는 홈 박스 오피스® TV 채널과 같은 유료 채널에서 ABC TV 채널과 같은 공용 채널로 텔레비전 채널을 전환하는 것과 같이 비 디지털 판권 관리(DRM) 보호 미디어 콘텐츠로 전환하는 옵션을 제시받을 수 있다. 이러한 액션은 하나 이상의 엔터테인먼트 서버(112) 및 홈 네트워크 장치(122)의 메모리(308, 320) 상에 암호화/해독 또는 정책 관리자 컴포넌트들을 로딩해야 하는 필요를 없앰으로써 메모리 요구를 줄일 수 있다.
하나 이상의 엔터테인먼트 서버(112) 또는 홈 네트워크 장치(122) 상의 CPU 사용이 너무 많은 경우, 하나 이상의 사용자는 CPU 사용을 줄이기 위한 적절한 액션을 취하도록 프롬프트될 수 있다. 예를 들어, 하나 이상의 사용자는 DRM 콘텐츠와 연관된 암호화/해독 및 정책 관리자 오버헤드를 줄이기 위하여 비 DRM 보호 미디어 콘텐츠를 보는 것으로 전환하도록 프롬프트될 수 있다. 유사하게, 하나 이상 의 사용자는 HD 피드에서 SD 피드로(예를 들어, HDTV 채널에서 SDTV 채널로) 전환하도록 프롬프트될 수 있다.
하나 이상의 엔터테인먼트 서버(112) 또는 홈 네트워크 장치(122) 상의 하드 디스크 사용이 너무 많은 경우, 하나 이상의 사용자는 하드 디스크 사용을 줄이기 위한 적절한 액션을 취하도록 프롬프트될 수 있다. 예를 들어, 하나 이상의 사용자는 보다 낮은 대역폭 스트림(예를 들어, 텔레비전 대신 음악, HDTV 대신 SDTV)으로 전환하도록 프롬프트될 수 있다.
일 구현에서, 원하는 정책으로부터의 지시에 의해 영향을 받는 사용자 경험을 갖는 사용자(들)만이 실시 옵션들을 제시받을 수 있다. 그러나 영향받지 않는 사용자들도 자원 쟁탈 문제는 물론, 가능한 이용가능 솔루션의 통지를 수신하는 것도 가능하다.
예를 들어 (I/O) 인터페이스에서 병목을 만나는 경우, 이용할 수 있는 다른 하나의 옵션은 다수의 엔터테인먼트 서버(112) 또는 홈 네트워크 장치(122) 간의 부하 밸런싱의 이용이다. 이 경우, 하나 이상의 사용자는 독립형 미디어 경험 정책 엔진(204) 및/또는 엔터테인먼트 서버(112) 및 홈 네트워크 장치(122)로부터의 미디어 경험 정책 엔진들(120, 202)이 협동하여 엔터테인먼트 서버(112) 또는 네트워크 장치(122) 중 하나에서 다른 것으로 부하를 동적으로 시프트시키는 것을 가능하게 하도록 프롬프트될 수 있다. 대안으로, 엔터테인먼트 서버(112) 또는 홈 네트워크 장치(122)-또는 독립형 엔터테인먼트 서버(204)- 중 하나 상의 하나의 "주" 정책 엔진(120, 202)은 모든 엔터테인먼트 서버(112) 및 홈 네트워크 장치(122)로 부터 피드백을 수집하고, 병목을 감소시켜 궁극적으로 개선하기 위해 피드백 상에 작용할 수 있다.
이러한 프롬프트들을 발행받은 하나 이상의 사용자가 그들의 응답을 입력하면(블록 608), 방법(600)은 원하는 정책을 실시하기 위하여 변경을 실시할 수 있다(블록 610). 일 구현은 높은 우선 순위 사용자들에게 선택을 행할 수 있는 프롬프트들을 발행하여 보다 낮은 우선순위의 사용자들의 운명을 결정하는 것을 포함할 수 있다는 것을 이해할 것이다.
비 상호작용 실시의 경우(즉, 블록 604에서 "비 상호작용" 분기), 방법(600)은 임의의 사용자에게 프롬프트하지 않고 환경(300)에 대한 변경을 구현할 수 있다. 방법(600)은 변경이 실시되기 전에 또는 실시되는 동안에 영향받은 사용자들, 영향받지 않은 사용자들 또는 이들의 임의 서브세트에게 후속 변경의 설명 또는 상술을 제공할 수 있으나(블록 612), 이것은 꼭 수행될 필요는 없다. 예를 들어, 방법은 임의의 사용자에게 임의의 경고를 발행하지 않고 적절한 실시 수단을 직접 설정할 수 있다(블록 610).
비 상호작용 실시를 이용하여 실시 수단을 설정하기 위해 방법(600)에 의해 취해질 수 있는 액션들은 상호작용 실시와 관련하여 전술한 수단 모두를 포함할 수 있다는 것을 이해할 것이다. 또한, 비 상호작용 실시의 하나의 예시적인 구현에서, 하나 이상의 엔터테인먼트 서버(112) 또는 홈 네트워크 장치(122) 상에서 메모리(308, 320)의 사용이 너무 많은 것이 발견되는 경우, 사용되지 않는 컴포넌트들은 자동으로 언로딩될 수 있다.
전술한 것들 외에 다른 기술들이 이용될 수 있다는 것을 이해할 것이다. 더욱이, 전술한 기술들은 혼합 및 매칭될 수 있으며, 다수의 접근법이 함께 이용될 수 있다. 더욱이, 상호작용 및 비 상호작용 실시 기술 양자의 조합이 이용될 수 있다.
전술한 대부분의 변경은 불가피하게 비용을 치른다는 것을 또한 이해할 것이다. 예를 들어, 높은 비트 레이트의 스트림이 동적으로 트랜스레이팅/트랜스코딩될 때, 사용자 경험의 품질은 감소하고, 엔터테인먼트 서버 또는 홈 네트워크 장치의 증가된 CPU 사용을 유발하게 된다. 따라서, 방법(600)은 다중 변수 평가를 이용하여 가능한 실시 옵션들을 평가할 수 있다. 예를 들어, 방법(600)은 최고 우선 순위의 병목을 해결하는 모든 옵션을 식별하고, 최상의 적합도(즉, 훨씬 더 높은 우선 순위의 병목을 유발하지 않는 것)를 발견하기 위해 옵션들을 레이팅할 수 있다. 자원들이 과도하게 요구되지 않는 최상의 적합도가 식별되면, 옵션이 구현될 수 있다.
적절한 실시 수단이 구현된 경우(블록 610), 방법(600)은 하나 이상의 미디어 경험 정책 엔진(120), 하나 이상의 클라이언트측 MEPE(202), 독립형 미디어 경험 정책 엔진(204), 또는 엔터테인먼트 서버(112) 또는 홈 네트워크 장치(122) 상의 다른 애플리케이션들에게 아키텍처(300)를 원하는 정책에 따르게 하기 위해 선택된 프로시저의 완료를 보고하는 보고서를 발행할 수 있다(블록 614). 그러나 이러한 보고서는 반드시 발행될 필요는 없다.
결론
본 발명은 구조적 특징 및/또는 방법론적 동작에 고유한 언어로 설명되었지만, 첨부된 청구범위에 정의된 발명은 설명된 특정 특징 또는 동작으로 한정될 필요는 없다는 것을 이해해야 한다. 오히려, 특정 특징 및 동작은 청구 발명을 구현하는 예시적인 형태로서 개시된다.

Claims (20)

  1. 미디어 전달 시스템의 자원 사용 레벨들을 모니터링하는 단계;
    자원 사용 레벨들이 자원 쟁탈에 대한 잠재성을 나타내는지를 판정하는 단계;
    자원 사용을 줄이고, 자원 쟁탈로부터 결과될 수 있는 미디어 렌더링 장애를 피하기 위해 소정의 정책에 따라 미디어 전달 옵션들을 변경하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 미디어 전달 시스템의 자원 사용 레벨들을 모니터링하는 단계는 CPU의 사용에 관한 데이터를 수집하는 단계, 전달 시스템 메모리의 사용에 관한 데이터를 수집하는 단계, PC 상의 하드 디스크의 사용에 관한 데이터를 수집하는 단계, I/O 인터페이스의 사용에 관한 데이터를 수집하는 단계, 및 네트워크의 사용에 관한 데이터를 수집하는 단계 중 적어도 하나를 포함하는 방법.
  3. 제1항에 있어서, 상기 미디어 전달 옵션들을 변경하는 단계는 DRM 보호 미디어 콘텐츠 대신에 비 DRM 미디어 콘텐츠를 렌더링하는 단계를 포함하는 방법.
  4. 제1항에 있어서, 상기 미디어 전달 옵션들을 변경하는 단계는 오디오/비디오 콘텐츠에서 오디오 콘텐츠로 전환하는 단계를 포함하는 방법.
  5. 제1항에 있어서, 상기 미디어 전달 옵션들을 변경하는 단계는 지연 재생을 위해 스트리밍된 미디어 콘텐츠를 다운로드 및 캐시하는 단계를 포함하는 방법.
  6. 제1항에 있어서, 상기 미디어 전달 옵션들을 변경하는 단계는 사용자에게 자원 쟁탈에 대한 잠재성을 경고하는 단계, 사용자에게 자원 쟁탈에 대한 잠재성을 해결하기 위한 적어도 하나의 액션 코스를 제시하는 단계, 사용자의 선택된 액션 코스를 수신하는 단계, 및 상기 사용자의 선택된 액션 코스를 구현하는 단계를 포함하는 방법.
  7. 제1항에 있어서, 사용자가 상기 사용자에게 쉬운 영어로 제시된 여러 옵션 중에서 소정의 정책을 선택하는 것을 가능하게 하는 단계를 더 포함하는 방법.
  8. 제1항에 있어서, 상기 미디어 전달 옵션들을 변경하는 단계는 HD 채널에서 SD 채널로 전환하는 단계를 포함하는 방법.
  9. 미디어 전달 시스템의 자원들의 사용에 관한 데이터를 수집하고, 사용자 경험의 장애를 방지하기 위하여 원하는 정책에 따라 상기 미디어 전달 시스템에 명령들을 발행함으로써 자원 쟁탈의 잠재성에 대응하도록 구성된 미디어 경험 정책 엔진
    을 포함하는 서버.
  10. 제9항에 있어서, 상기 서버는 홈 PC 또는 셋톱 박스 중 하나인 서버.
  11. 제9항에 있어서, 상기 원하는 정책은 높은 우선 순위의 사용자에 대해 최고 품질의 사용자 경험을 유지하고 보다 낮은 우선 순위의 사용자들에 대해 사용자 경험을 강등할 것을 지시하는 서버.
  12. 제9항에 있어서, 상기 원하는 정책은 상기 미디어 전달 시스템의 모든 사용자에 대해 사용자 경험의 동일한 강등을 지시하는 서버.
  13. 제9항에 있어서, 상기 미디어 경험 정책 엔진은 운영 체제 내에 위치하는 서버.
  14. 실행시,
    미디어 전달 시스템의 현재 상태를 모니터링하는 동작;
    상기 현재 상태가 자원 쟁탈에 대한 잠재성을 나타내는지를 판정하는 동작; 및
    자원 이용을 줄이고 미디어 렌더링 장애를 피하기 위해 소정의 정책에 따라 미디어 콘텐츠를 전달하기 위해 상기 미디어 전달 시스템에 명령들을 발행하는 동 작
    을 포함하는 동작들을 수행하는 컴퓨터 판독가능 명령들을 구비한 컴퓨터 판독가능 저장 매체.
  15. 적어도 하나의 사용자에 대한 미디어 콘텐츠의 전달을 돕기 위해 제14항의 컴퓨터 판독가능 명령들을 이용하는 적어도 하나의 서버를 포함하는 미디어 전달 시스템.
  16. 제14항에 있어서, 상기 미디어 전달 시스템의 현재 상태를 모니터링하는 동작은 CPU의 총 사용, 지정 사용자에 의한 CPU의 총 사용, 지정 장치에 의한 CPU의 총 사용, 네트워크의 총 사용, 지정 사용자에 의한 네트워크의 총 사용, 지정 장치에 의한 네트워크의 총 사용, 컴퓨터 메모리의 총 사용, 지정 사용자에 의한 컴퓨터 메모리의 총 사용, 지정 장치에 의한 컴퓨터 메모리의 총 사용, 컴퓨터 하드 디스크의 총 사용, 지정 사용자에 의한 컴퓨터 하드 디스크의 총 사용, 지정 장치에 의한 컴퓨터 하드 디스크의 총 사용, I/0 인터페이스의 총 사용, 지정 사용자에 의한 I/O 인터페이스의 총 사용, 및 지정 장치에 의한 I/O 인터페이스의 총 사용 중 적어도 하나에 관한 데이터를 수집하는 동작을 포함하는 컴퓨터 판독가능 저장 매체.
  17. 제14항에 있어서, 상기 미디어 전달 시스템에 명령들을 발행하는 동작은 트 랜스레이터/트랜스코더의 사용을 통해 네트워크 상에서 미디어 비트 레이트를 줄이기 위한 명령들을 발행하는 동작을 포함하는 컴퓨터 판독가능 저장 매체.
  18. 제14항에 있어서, 상기 소정의 정책은 제1 연대순의 사용자에 대해 최고 품질의 사용자 경험을 유지하고 후속 연대순의 사용자들의 사용자 경험을 강등하는 명령들을 포함하는 컴퓨터 판독가능 저장 매체.
  19. 제14항의 컴퓨터 판독가능 명령들을 포함하는 운영 체제.
  20. 프로세서 및
    제14항의 컴퓨터 판독가능 저장 매체
    를 포함하고,
    상기 컴퓨터 판독가능 명령들은 상기 프로세서 상에서 구현되는 엔터테인먼트 장치.
KR1020087002297A 2005-07-28 2006-07-11 다수 사용자 컴퓨팅 시스템에서의 사용자 경험들의 동적밸런싱 KR20080038314A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/191,786 US7664856B2 (en) 2005-07-28 2005-07-28 Dynamically balancing user experiences in a multi-user computing system
US11/191,786 2005-07-28

Publications (1)

Publication Number Publication Date
KR20080038314A true KR20080038314A (ko) 2008-05-06

Family

ID=37695670

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087002297A KR20080038314A (ko) 2005-07-28 2006-07-11 다수 사용자 컴퓨팅 시스템에서의 사용자 경험들의 동적밸런싱

Country Status (6)

Country Link
US (2) US7664856B2 (ko)
EP (1) EP1907942B1 (ko)
JP (2) JP4885219B2 (ko)
KR (1) KR20080038314A (ko)
CN (1) CN101228519B (ko)
WO (1) WO2007018919A2 (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6985934B1 (en) 2000-10-23 2006-01-10 Binham Communications Corporation Method and system for providing rich media content over a computer network
US20090271103A1 (en) * 2005-09-29 2009-10-29 Pioneer Corporation Navigation device, navigation method, navigation program, and recording medium having navigation program recorded thereon
US8019854B2 (en) * 2005-11-25 2011-09-13 Samsung Electronics Co., Ltd. System and method of providing information on computer memory use
US7843865B2 (en) * 2005-12-08 2010-11-30 Intel Corporation System and method for controlling home network devices using multicast enabled remote controls
US8271657B2 (en) * 2005-12-16 2012-09-18 Panasonic Corporation Systems and methods for selecting a transport mechanism for communication in a network
US8116317B2 (en) 2006-01-31 2012-02-14 Microsoft Corporation Preventing quality of service policy abuse in a network
US7796757B2 (en) * 2006-03-09 2010-09-14 At&T Intellectual Property I, L.P. Methods and systems to operate a set-top box
US20080205389A1 (en) * 2007-02-26 2008-08-28 Microsoft Corporation Selection of transrate and transcode processes by host computer
US9509618B2 (en) * 2007-03-13 2016-11-29 Skype Method of transmitting data in a communication system
GB0704834D0 (en) 2007-03-13 2007-04-18 Skype Ltd Method of transmitting data in a communication system
US8571066B2 (en) * 2007-03-21 2013-10-29 Qualcomm Incorporated Methods and apparatus for RF channel switching in a multi-frequency network
EP2140651B1 (fr) * 2007-03-30 2018-10-24 Orange Procede de gestion d'une pluralite de sessions audiovisuelles dans un reseau ip et systeme de commande associe
CN101287076A (zh) * 2007-05-30 2008-10-15 盛乐信息技术(上海)有限公司 用ip网络连接电视和电脑进行互动娱乐的方法和系统
US8082507B2 (en) * 2007-06-12 2011-12-20 Microsoft Corporation Scalable user interface
US8782772B2 (en) * 2007-09-28 2014-07-15 Microsoft Corporation Multi-session secure tunnel
US8006193B2 (en) 2007-10-03 2011-08-23 Microsoft Corporation Web service user experience without upfront storage expense
GB2469947B (en) * 2008-02-22 2011-05-11 Ericsson Telefon Ab L M Method and apparatus for obtaining media over a communications network
CN101946491A (zh) * 2008-02-29 2011-01-12 汤姆逊许可公司 用于提供负载平衡信号分配的方法和装置
US8387150B2 (en) * 2008-06-27 2013-02-26 Microsoft Corporation Segmented media content rights management
US8621094B2 (en) 2008-06-30 2013-12-31 Microsoft Corporation User status reports provided by an entertainment access system
US8583771B2 (en) * 2008-07-01 2013-11-12 Cisco Technology, Inc. Mapping human-meaningful parameters to network-meaningful parameters to permit user to establish traffic importance in home network
US8001247B2 (en) * 2009-02-27 2011-08-16 Red Hat, Inc. System for trigger-based “gated” dynamic virtual and physical system provisioning
CA2824751A1 (en) * 2009-09-26 2011-03-31 Disternet Technology Inc. System and method for micro-cloud computing
CN101710293B (zh) * 2009-12-10 2012-12-19 青岛海信宽带多媒体技术有限公司 一种usb存储设备文件遍历的方法及装置
US8881212B2 (en) * 2009-12-28 2014-11-04 Verizon Patent And Licensing Inc. Home network management
US8584187B2 (en) * 2010-03-26 2013-11-12 Verizon Patent And Licensing Inc. Bandwidth management
US8510763B2 (en) * 2010-06-14 2013-08-13 Microsoft Corporation Changing streaming media quality level based on current device resource usage
US9542203B2 (en) 2010-12-06 2017-01-10 Microsoft Technology Licensing, Llc Universal dock for context sensitive computing device
US8923770B2 (en) 2010-12-09 2014-12-30 Microsoft Corporation Cognitive use of multiple regulatory domains
US8792429B2 (en) 2010-12-14 2014-07-29 Microsoft Corporation Direct connection with side channel control
US8589991B2 (en) 2010-12-14 2013-11-19 Microsoft Corporation Direct connection with side channel control
US9294545B2 (en) 2010-12-16 2016-03-22 Microsoft Technology Licensing, Llc Fast join of peer to peer group with power saving mode
US8948382B2 (en) 2010-12-16 2015-02-03 Microsoft Corporation Secure protocol for peer-to-peer network
US20120158947A1 (en) * 2010-12-17 2012-06-21 Microsoft Corporation Operating system supporting cost aware applications
US8971841B2 (en) 2010-12-17 2015-03-03 Microsoft Corporation Operating system supporting cost aware applications
US9713194B2 (en) * 2011-12-28 2017-07-18 United States Cellular Corporation System and method for data network reassignment
US20140053233A1 (en) * 2012-08-20 2014-02-20 David Jacobs Online media policy platform
US9590753B2 (en) 2012-09-28 2017-03-07 Sony Corporation Method and apparatus for multiple media output
US8935734B2 (en) * 2013-02-01 2015-01-13 Ebay Inc. Methods, systems and apparatus for configuring a system of content access devices
US9137114B2 (en) * 2014-01-17 2015-09-15 Sony Corporation Computer ecosystem providing device announcements of session needs and rule-based establishment of network sharing based thereon

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282560B1 (en) * 1997-03-28 2001-08-28 International Business Machines Corporation Managing processor resources in a non-dedicated computer system
US6728748B1 (en) * 1998-12-01 2004-04-27 Network Appliance, Inc. Method and apparatus for policy based class of service and adaptive service level management within the context of an internet and intranet
US7383329B2 (en) * 2001-02-13 2008-06-03 Aventail, Llc Distributed cache for state transfer operations
US8107524B2 (en) * 2001-03-30 2012-01-31 Vixs Systems, Inc. Adaptive bandwidth footprint matching for multiple compressed video streams in a fixed bandwidth network
US8291457B2 (en) * 2001-05-24 2012-10-16 Vixs Systems, Inc. Channel selection in a multimedia system
US7009970B2 (en) * 2001-06-26 2006-03-07 Motorola, Inc. Methods for managing bandwidth in a packet-based communication system incorporating a reservation proxy function
US7171668B2 (en) * 2001-12-17 2007-01-30 International Business Machines Corporation Automatic data interpretation and implementation using performance capacity management framework over many servers
EP1331564A1 (en) * 2002-01-24 2003-07-30 Siemens Aktiengesellschaft Fuzzy logic based intelligent load control for distributed environment
US6993681B2 (en) * 2002-04-15 2006-01-31 General Electric Corporation Remote administration in a distributed system
AU2003242113A1 (en) * 2002-05-17 2003-12-02 Legend (Beijing) Limited A method to realize dynamic networking and resource sharing among equipments
US8095620B2 (en) * 2002-06-13 2012-01-10 Elbit Systems Land and C41-Tadiran Ltd. System and method for dynamic allocation of a resource
WO2004040908A1 (ja) * 2002-10-30 2004-05-13 Fujitsu Limited ストリーム・サーバ
EP1618480A2 (en) * 2003-04-29 2006-01-25 University Of Strathclyde Monitoring software
US7406694B2 (en) * 2003-06-20 2008-07-29 Microsoft Corporation Method and system for tracking kernel resource usage
US7274740B2 (en) * 2003-06-25 2007-09-25 Sharp Laboratories Of America, Inc. Wireless video transmission system
JP4496755B2 (ja) * 2003-10-23 2010-07-07 ソニー株式会社 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム
US20050107820A1 (en) * 2003-11-13 2005-05-19 Forsberg Andrew T. Vascular puncture depth locator
US8219702B2 (en) * 2004-04-30 2012-07-10 Canon Kabushiki Kaisha Video delivery apparatus and method
CN1271519C (zh) * 2004-06-30 2006-08-23 清华大学深圳研究生院 流媒体服务器资源的自调节调度方法
US20060136927A1 (en) * 2004-12-16 2006-06-22 Michele Covell Models for monitoring of streaming server performance
US7835276B2 (en) * 2004-12-30 2010-11-16 Cisco Technology, Inc. Admission control mechanism for multicast receivers

Also Published As

Publication number Publication date
US20070027983A1 (en) 2007-02-01
CN101228519A (zh) 2008-07-23
WO2007018919A3 (en) 2007-10-04
US20100100637A1 (en) 2010-04-22
JP4885219B2 (ja) 2012-02-29
EP1907942A4 (en) 2012-08-08
EP1907942B1 (en) 2016-12-21
JP2012074054A (ja) 2012-04-12
CN101228519B (zh) 2010-09-08
WO2007018919A2 (en) 2007-02-15
JP2009503680A (ja) 2009-01-29
US7664856B2 (en) 2010-02-16
EP1907942A2 (en) 2008-04-09

Similar Documents

Publication Publication Date Title
KR20080038314A (ko) 다수 사용자 컴퓨팅 시스템에서의 사용자 경험들의 동적밸런싱
US20080205389A1 (en) Selection of transrate and transcode processes by host computer
US8914529B2 (en) Dynamically adapting media content streaming and playback parameters for existing streaming and playback conditions
US8380864B2 (en) Media stream slicing and processing load allocation for multi-user media systems
US8069260B2 (en) Dynamic buffer settings for media playback
US20070058926A1 (en) Optimizing trick modes for streaming media content
US7890985B2 (en) Server-side media stream manipulation for emulation of media playback functions
US20080307485A1 (en) Automatic extension of recording using in-band and out-of-band data sources
US8510763B2 (en) Changing streaming media quality level based on current device resource usage
US20090178096A1 (en) Intelligent over-transmission of media data segments
US20090178091A1 (en) Contents distribution method and receiving device
US20080195746A1 (en) Live content streaming using file-centric media protocols
US11196725B2 (en) Secure stream buffer on network attached storage
US20080010482A1 (en) Remote control of a media computing device
US20210099740A1 (en) Method and apparatus for maintaining bandwidth for electronic content display system
US8447942B2 (en) Content storage using quotas
US7788698B2 (en) Pre-negotiation and pre-caching media policy
JP2007074356A (ja) ホームネットワークシステム
TWI442259B (zh) 權限控制系統及方法,及其電腦程式產品
US20160295486A1 (en) Wireless video link optimization using video-related metrics
US20210099741A1 (en) Method and apparatus for maintaining bandwidth for electronic content display system
KR102158856B1 (ko) 원격 컴퓨팅 시스템 및 원격 컴퓨팅 방법
US20110218897A1 (en) Content Stream Management
KR20070090875A (ko) 멀티미디어 전송시스템의 사용권 제한장치

Legal Events

Date Code Title Description
A201 Request for examination
SUBM Surrender of laid-open application requested