KR101596530B1 - 원격 세션에서의 멀티미디어 동작을 관리하는 시스템 및 방법 - Google Patents
원격 세션에서의 멀티미디어 동작을 관리하는 시스템 및 방법 Download PDFInfo
- Publication number
- KR101596530B1 KR101596530B1 KR1020107021671A KR20107021671A KR101596530B1 KR 101596530 B1 KR101596530 B1 KR 101596530B1 KR 1020107021671 A KR1020107021671 A KR 1020107021671A KR 20107021671 A KR20107021671 A KR 20107021671A KR 101596530 B1 KR101596530 B1 KR 101596530B1
- Authority
- KR
- South Korea
- Prior art keywords
- media
- client
- server
- platform
- user interface
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/401—Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
- H04L65/4015—Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/4143—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a Personal Computer [PC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4788—Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/173—Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/545—Gui
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
터미널 서비스 시나리오들에서 멀티미디어 전송을 관리하는 것에 관한 기법들이 기술되어 있다. 일례에서, 방법은 사용자 인터페이스 구성요소를 서버로부터 원격 클라이언트로 전송한다. 예시적인 방법은 또한 사용자 인터페이스 구성요소와 결합하여 원격 클라이언트 상에 프리젠테이션하기 위해 미디어 구성요소를 스트리밍하고, 미디어 프리젠테이션이 서버에 의해 추적되지만 디스플레이되지는 않는다.
Description
공동 작업 세션들을 포함할 수 있는 원격 세션은 로컬 컴퓨터와 원격 컴퓨터 간의 리모팅 경험(remoting experience)을 제공할 수 있다. 공동 작업은 원격 컴퓨터 상에 로컬 컴퓨터의 그래픽 사용자 인터페이스의 일부분 또는 그 전부의 모습을 재생성하는 것을 필요로 할 수 있다. 리모팅(remoting) 등의 하나 이상의 기법들을 사용하여 그래픽 사용자 인터페이스가 원격 컴퓨터 상에 재생성될 수 있다. 원격 컴퓨터 상에 최종적으로 재생성되는 공동 작업 세션들은 원격 컴퓨터에 재생성되는 로컬 컴퓨터의 일부분과 연관되어 있을 수 있는 하나 이상의 파라미터들에 의해 제어될 수 있다.
공동 작업 세션의 흔한 일례는 멀티미디어 파일들을 재생하는 미디어 동작들에 관련된 동작들일 수 있다. 이러한 세션들을 리모팅하는 기법들이 미디어 데이터를 로컬 컴퓨터로부터 원격 컴퓨터로 전송하는 것을 수반할 수 있다. 미디어 데이터는 재생되어야 하는 멀티미디어 파일들과 연관된 데이터, 처리 데이터, 렌더링 데이터, 기타를 포함할 수 있다. 미디어 데이터를 원격 컴퓨터로 리모팅함으로써 로컬 컴퓨터 상의 멀티미디어 파일들이 원격 컴퓨터 상에서 원격적으로 재생될 수 있다. 미디어 데이터가, 로컬 컴퓨터 상에 렌더링되는 대신에, 원격 컴퓨터 상에 렌더링된다.
요약
이 요약은 원격 세션들에서 멀티미디어 동작을 관리하는 개념들을 소개하기 위해 제공된 것이다. 이러한 개념들이 이하에서 상세한 설명에 더 기술되어 있다. 이 요약은 청구된 발명 대상의 필수적인 특징들을 확인하기 위한 것이 아니며, 청구된 발명 대상의 범위를 정하는 데 사용하기 위한 것도 아니다.
상세한 설명이 첨부 도면들을 참조하여 기술된다. 도면들에서, 참조 번호의 가장 왼쪽의 숫자(들)은 그 참조 번호가 처음으로 나타나는 도면을 나타낸다. 유사한 특징들 및 구성요소들을 참조하기 위해 도면들 전체에 걸쳐 동일한 번호들이 사용된다.
도 1은 공동 작업 세션에서 멀티미디어 동작들을 관리하는 예시적인 네트워크를 나타낸 블록도.
도 2는 컴퓨터-기반 네트워크에서 공동 작업 세션에서의 멀티미디어 동작들을 관리하는 것을 나타낸 흐름도.
도 3은 공동 작업 세션에서 멀티미디어 동작들을 관리하는 매핑 테이블들의 예시적인 일례를 나타낸 도면.
도 4는 미디어 플랫폼의 하나 이상의 예시적인 구성요소들을 나타내는 블록도.
도 5는 공동 작업 세션에서 멀티미디어 동작들을 관리하는 예시적인 프로세스를 나타낸 플로우차트.
도 6은 예시적인 일반 컴퓨터 환경을 나타낸 블록도.
도 1은 공동 작업 세션에서 멀티미디어 동작들을 관리하는 예시적인 네트워크를 나타낸 블록도.
도 2는 컴퓨터-기반 네트워크에서 공동 작업 세션에서의 멀티미디어 동작들을 관리하는 것을 나타낸 흐름도.
도 3은 공동 작업 세션에서 멀티미디어 동작들을 관리하는 매핑 테이블들의 예시적인 일례를 나타낸 도면.
도 4는 미디어 플랫폼의 하나 이상의 예시적인 구성요소들을 나타내는 블록도.
도 5는 공동 작업 세션에서 멀티미디어 동작들을 관리하는 예시적인 프로세스를 나타낸 플로우차트.
도 6은 예시적인 일반 컴퓨터 환경을 나타낸 블록도.
이하에서 기술하는 방법들 및 시스템들은 공동 작업 세션들 및 공동 작업 세션들에서 미디어 재생 동작들을 처리하는 것에 관한 것이다. 공동 작업 세션들은 클라이언트 컴퓨터(이후부터, "클라이언트"라고 함)와 서버 컴퓨터(이후부터, "서버"라고 함) 사이에서 리모팅 경험을 제공할 수 있다. 공동 작업은 서버의 그래픽 사용자 인터페이스(GUI)의 일부분 또는 그 전부를 클라이언트 상에 표현하는 것을 포함할 수 있다. 몇몇 공동 작업 시나리오들에서, 미디어 재생 명령들 등의 미디어 동작들이 여러가지 이유들로 인해 GUI의 나머지와 별도로 처리될 수 있다. 예를 들어, 미디어 재생 명령들이 서버와 클라이언트 간의 네트워크 대역폭을 절감하기 위해 별도로 처리될 수 있다. 이러한 경우들에, 미디어가 미처리된 또는 부분적으로 처리된 형태로 서버로부터 클라이언트로 리디렉션될 수 있다. 그러면, 클라이언트는 미디어를 처리하고 처리된 미디어를 GUI의 나머지와 통합하여 서버 GUI의 표현을 생성할 수 있다.
미디어 또는 미디어 파일들은, 그 중에서도 특히, MPEG, 기타에 따른 형식들 등의 서로 다른 형식들에 따라 저장될 수 있다. 미디어 파일들을 처리하는 것은 미디어 파일 형식을 처리하도록 구성된 하나 이상의 미디어 플랫폼들을 이용하는 미디어 플레이어에 의해 달성될 수 있다. 미디어 처리는 미디어 재생 명령들 등의 미디어 동작들을 포함할 수 있다. 이러한 미디어 동작들은 플랫폼과 관련되어 있을 수 있다. 공동 작업 시나리오에서, 클라이언트 및 서버가 동일한 미디어 플랫폼들을 지원하거나 지원하지 않을 수 있다. 예를 들어, 서버 상에서 지원되는 미디어 플랫폼에 특유한 미디어 재생 명령들이 클라이언트 상에서 지원되는 미디어 플랫폼에 대해서는 무의미한 것일 수 있다.
예시적인 구현들은 서버와 클라이언트 간의 공동 작업 세션에서 미디어 동작들이 효과적으로 전달될 수 있게 해주는 추상화 기능(abstraction functionality)을 제공할 수 있다. 예를 들어, 미디어 동작들의 추상화는 공동 작업 세션에서 사용자의 미디어 재생 명령의 실행을 용이하게 해줄 수 있다. 이러한 경우들에, 몇몇 구현들은 서버의 플랫폼 관련 미디어 재생 명령을 일반 미디어 재생 명령으로 변환할 수 있다. 일반 미디어 재생 명령은 이어서 클라이언트 상에서 지원되는 미디어 플랫폼에 대한 플랫폼 관련 미디어 재생 명령으로 변환될 수 있다. 클라이언트는 이어서 미디어 재생 명령을 실행하고 그 결과를 클라이언트의 GUI의 나머지와 통합시킬 수 있다.
한 구현에서, 미디어가, 서버 상에서 처리되기 보다는, 처리를 위해 클라이언트로 전송되고, 플랫폼 관련 명령들이 서버에서 가로채기될 수 있다. 기술된 바와 같이, 클라이언트 및 서버가 동일한 플랫폼들을 갖거나 갖지 않을 수 있다. 따라서, 서버의 플랫폼 관련 명령들이 클라이언트 상에서 이해되지 않을 수 있다. 본 구현들은, 서버 및 클라이언트 상에서 이용되는 플랫폼들과 무관하게 사용자의 미디어 재생 명령들이 클라이언트 상에서 실행가능하도록, 서버와 클라이언트 간의 효과적인 통신을 용이하게 해줄 수 있다. 예를 들어, 본 구현들 중 일부는 서버의 플랫폼 관련 명령들을 일반 미디어 재생 명령들로 변환할 수 있다. 일반 미디어 재생 명령들이 이어서 클라이언트로 전송될 수 있다. 클라이언트는 일반 명령들을 클라이언트에 의해 지원되는 플랫폼과 관련된 명령들로 변환할 수 있다. 클라이언트의 플랫폼은 이어서 클라이언트 장치 상에서 원하는 효과(즉, 재생, 일시정지, 정지, 기타)를 달성하기 위해 명령들을 처리할 수 있다.
예시적인 시스템들
도 1은 공동 작업 세션들을 구현하고 그 공동 작업 세션들에서의 미디어 동작들을 처리하는 예시적인 시스템(100)을 나타낸 것이다. 시스템(100)은 네트워크(106)를 통해 클라이언트(104)에 연결되어 있는 서버(102)를 포함할 수 있다. 서버 데스크톱(110)이 서버(102) 상에 디스플레이될 수 있다. 이와 유사하게, 클라이언트 데스크톱(112)이 클라이언트(104) 상에 디스플레이될 수 있다.
기술된 구현들이 현재 흔히 볼 수 있는 컴퓨팅 환경과 관련되어 있다. 다양한 일례들이 퍼스널 컴퓨터, 즉 PC 등의 컴퓨터에 의해 실행되는 프로그램 모듈들 등의 컴퓨터-실행가능 명령어들 또는 코드 수단들에 의해 구현될 수 있다. 일반적으로, 프로그램 모듈들은 특정의 작업들을 수행하거나 특정의 추상 데이터 형식들을 구현하는 루틴, 프로그램, 개체, 구성요소, 데이터 구조, 기타 등등을 포함한다.
다양한 일례들이 PC 이외의 컴퓨터 시스템 구성들에서 구현될 수 있다. 예를 들어, 다양한 실시예들이 핸드헬드 장치, 멀티-프로세서 시스템, 마이크로프로세서-기반 또는 프로그램가능 가전 제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 휴대폰, 기타에서 실현될 수 있다. 게다가, 기술이 계속 진화함에 따라, 아직 확인되지 않은 부류의 장치들 상에서 다양한 구현들이 실현될 수 있다. 예를 들어, 처리 능력 단위의 비용이 계속하여 떨어지고 무선 기술들이 발전함에 따라, 현재의 휴대폰과 비슷한 컴퓨팅 장치들이 하나의 모바일 장치에서 현재의 PC, 비디오 카메라, 휴대폰, 기타의 기능들을 수행할 수 있다. 이러한 하나의 장치가, 한 시나리오에서, 서버로서 기능할 수 있고, 다른 시나리오에서, 클라이언트로서 기능할 수 있다. 이것은 기술된 구현들에 대한 많은 기존의 계속 발전하는 일례들 중 하나에 불과하다.
다양한 일례들은 또한 작업들이 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경에서도 실시될 수 있다. 분산 컴퓨팅 환경에서는, 프로그램 모듈들이 로컬 및 원격 메모리 저장 장치 둘다에 위치할 수 있다. 게다가, 서버 및 클라이언트라는 용어들은, 본 명세서에서 사용되는 바와 같이, 이 2개의 장치들의 상대적 기능들을 암시하지 않는다. 클라이언트가 서버보다 더 많은, 더 적은, 또는 서버와 똑같은 처리 능력을 가질 수 있다. 오히려, 이 설명에서, 서버 및 클라이언트라는 이름들은 이 2개의 구성요소들의 상대적 관계를 말한다. 예를 들어, 제1 장치 또는 서버 장치의 컴퓨팅 환경이 제2 장치 또는 클라이언트 장치로 리모팅된다. 설명의 편의상, 본 문서에 제공되는 일례들이 하나의 서버 및 하나의 클라이언트에 관련되어 있지만, 이것은 단지 하나의 가능한 구성에 불과하다. 다른 구현들이 다수의 클라이언트들을 지원하는 하나 이상의 서버들을 포함할 수 있다는 것을 잘 알 것이다. 몇몇 구현들에서, 제1 컴퓨터는 제2 컴퓨터에 대해 서버로서 기능할 수 있고, 제2 컴퓨터는 제3 컴퓨터에 대해 서버로서 기능한다.
기술한 바와 같이, 공동 작업 세션들이 서버(102)와 클라이언트(104) 간의 리모팅 경험(remoting experience)을 제공할 수 있다. 공동 작업은 서버의 그래픽 사용자 인터페이스(GUI)의 일부분 또는 그 전부를 클라이언트 상에 표현하는 것을 포함할 수 있다. 이 경우에, GUI는 서버 데스크톱(110)으로서 표현된다. 상세하게는, 공동 작업은 서버(102) 상에서 실행 중인 하나 이상의 응용 프로그램들이 실제로 클라이언트(104) 상에서 실행 중이라는 인상을 줄 수 있다.
공동 작업 세션들의 일례로는, 그 중에서도 특히, 원격 터미널 세션 시나리오들 및 하나 이상의 프리젠테이션 시나리오들이 있을 수 있다. 원격 터미널 세션 시나리오에서, 서버의 디스플레이 영역[예를 들어, 서버 데스크톱(110)]으로부터의 GUI가 원격 데스크톱(114)의 표현으로서 클라이언트(104) 상에 발생될 수 있다. 프리젠테이션 시나리오는 전체 데스크톱(110)보다는 서버 상에서 실행 중인 특정의 응용 프로그램의 GUI를 리모팅하는 것을 포함할 수 있다. 이러한 시나리오에서, 서버의 응용 프로그램 GUI(예를 들어, 그래픽 창)가 클라이언트 상에 응용 프로그램의 표현을 발생하는 데 이용될 수 있다. 예를 들어, 서버 데스크톱(110)은 미디어 플레이어 그래픽 창(116)을 포함한다. 프리젠테이션 세션은 서버의 데스크톱(110)의 나머지를 갖지 않는 그래픽 창(116)의 표현(118)을 클라이언트(104) 상에 발생할 수 있다. 미디어 처리가 서버(102) 상에서 미디어 플레이어(120)에 의해 서버(102) 상에 저장된 미디어 플랫폼(122)을 통해 수행될 수 있다. 이와 유사하게, 미디어 처리가 클라이언트(104) 상에서 미디어 플레이어(124)에 의해 클라이언트(104) 상에 저장된 미디어 플랫폼(126)을 통해 수행될 수 있다.
기술한 바와 같이, 공동 작업 세션에 대응하는 프로세스들의 대부분이 서버(102) 상에서 행해질 수 있지만, 공동 작업 세션에서, 미디어 동작은, 적어도 부분적으로, 클라이언트(104) 상에서 처리될 수 있다. 예를 들어, 미디어 재생 명령들이 하나 이상의 유형의 미디어 동작들을 나타낼 수 있다. 클라이언트(104)에서 사용자에 의해 발생된 미디어 재생 명령들(즉, 사용자-명령들)이 처리를 위해 서버(102)로 전달될 수 있다. 서버(102)는 서버(102)의 구성에 따라 사용자-명령들을 처리한다. 예를 들어, 서버(102)는 미디어 플랫폼(122)에 기초하여 사용자-명령들을 처리한다. 이러한 경우에, 사용자-명령들의 처리는 미디어 플랫폼(122)과 관련된 사용자-명령들에 기초하여 특정의 미디어 재생 명령들을 발생할 수 있다.
공동 작업 세션은 플랫폼 관련 미디어 재생 명령들을 가로채기할 수 있고, 명령들을 실행을 위해 클라이언트로 전송할 수 있다. 어떤 경우들에, 클라이언트의 미디어 플랫폼(126)이 서버의 미디어 플랫폼(122)과 관련된 미디어 재생 명령들을 이해하지 못할 수 있다. 이를 위해, 시스템(100)은 서버(102)와 클라이언트(104) 간의 미디어-관련 통신을 용이하게 해줄 수 있는 공동 작업 미디어 추상화 계층(collaboration media abstraction layer)(130)을 포함할 수 있다. 예를 들어, 이 일례에서, 공동 작업 미디어 추상화 계층(130)은 미디어 플랫폼(122)에 관련된 미디어 재생 명령들을 추상화(abstract) 또는 보통명사화(genericize)할 수 있다. 보통명사화된 미디어 재생 명령들은 이어서 클라이언트의 미디어 플랫폼(126)에 관련된 미디어 재생 명령들로 변환될 수 있다.
따라서, 공동 작업 미디어 추상화 계층(130)은 공동 작업 세션에서 사용자-명령들의 실행을 용이하게 해줄 수 있다. 게다가, 미디어 재생 명령 일례 이외에, 공동 작업 미디어 추상화 계층(130)은 공동 작업 세션에서 서버(102)와 클라이언트(104) 사이에서 미디어 동작들을 전달하는 것을 용이하게 해줄 수 있다.
어떤 경우들에, 일반 미디어 재생 명령들이, 서버(102)와 클라이언트(104)의 구성 차이점들에 상관없이, 클라이언트(104)에 의해 이해될 수 있다. 예를 들어, 클라이언트(104) 및 서버(102)가, 그 중에서도 특히, 서로 다른 운영 체제, 동일한 운영 체제의 서로 다른 버전, 또는 서로 다른 미디어 플랫폼을 가질 수 있다. 공동 작업 세션에서 멀티미디어 동작들을 관리하는 것을 구현하는 시스템의 동작에 대해 도 2 및 도 3과 관련하여 상세히 더 기술한다.
도 2는 도 1과 관련하여 소개된 개념들에 기반을 둔 시스템(200)을 나타낸 것이다. 이 경우에, 시스템(200)은 원격 터미널 세션과 관련하여 기술되어 있다. 유사한 개념들이 기타 공동 작업 세션들에도 똑같이 적용될 수 있다는 것을 잘 알 것이다. 이 구현에서, 시스템(200)은 네트워크(206)를 통해 통신할 수 있는 서버(202) 및 클라이언트(204)를 포함한다. 서버(202)는 미디어 플랫폼(208) 및 원격 터미널 세션(remote terminal session, "RTS") 미디어 추상화 모듈(210)을 포함한다. 클라이언트(204)는 미디어 플랫폼(212) 및 RTS 미디어 추상화 모듈(214)을 포함한다.
이 구현에서, 서버(202)는, 클라이언트(204)에서 원격 데스크톱(218) 등의 원격 표현을 발생하기 위해, 서버의 데스크톱(216)에 관련된 데이터를 클라이언트(204)로 전송할 수 있다. 원격 데스크톱(218)과 연관된 데이터는 사용자 인터페이스 구성요소(220) 및 미디어 구성요소(222)를 포함할 수 있다.
사용자 인터페이스 구성요소(220)는, 통상적으로 사용자 인터페이스를 구성하는 그래픽들 및 이미지들을 포함할 수 있다. 사용자 인터페이스 구성요소(220)는 아이콘, 호스트 오디오(host audio), 배경 이미지, 및 워드 프로세싱 응용 프로그램, 스프레드시트 응용 프로그램, 데이터베이스 응용 프로그램, 미디어 응용 프로그램, 기타와 연관된 GUI 등의 응용 프로그램 표현을 포함할 수 있다. 미디어 구성요소(222)가 아닌 거의 모든 구성요소들이 사용자 인터페이스 구성요소(220)의 일부이다. 미디어 구성요소(222)와 비교할 때, 사용자 인터페이스 구성요소(220)는 비교적 정적이고 비교적 적은 데이터를 사용한다(relatively low data intensive). 이와 달리, 미디어 구성요소(222)는 비교적 동적이고 많은 데이터를 사용한다(highly data intensive).
기술한 바와 같이, 미디어 구성요소(222)는 많은 데이터를 사용할 수 있는데, 그 이유는 미디어 구성요소가 미디어 프리젠테이션 또는 미디어 이벤트를 구성하는, 다양한 미디어를 사용하는 요소들(media-rich elements)을 포함하기 때문이다. 미디어 구성요소(222)와 연관된 데이터의 전송은 대역폭을 많이 사용할 수 있다(bandwidth-intensive). 미디어 구성요소(222)의 일례들로는, 그 중에서도 특히, 비디오 및/또는 오디오 프리젠테이션, CATV(cable television), 위성, 유료(pay-per-view), 또는 방송 프로그램과 같은 텔레비전 방송 등의 스트리밍 미디어 프리젠테이션, 디지털적으로 압축된 미디어 경험, 라디오 프로그램, 녹화된 미디어 이벤트(media event)[예를 들어, VCR, DVD 플레이어, CD 플레이어, PVR(Personal Video Recorder), 기타에 의해 제공됨], 실시간 미디어 이벤트, 및 카메라 피드가 있지만, 이들로 제한되지 않는다.
설명을 위해, 미디어 구성요소(222)가 서버 데스크톱(216)에도 클라이언트의 원격 데스크톱(218)에도 나타내어져 있다. 서버 데스크톱(216)의 일부분 또는 그 전체가 서버(202)의 디스플레이 장치 상에 반드시 디스플레이될 필요는 없을 수도 있다는 것을 잘 알 것이다. 이러한 구현들에서, 미디어 구성요소(222)(또는 그의 일부분)만이 클라이언트 상에 나타날 수 있다. 예를 들어, 서버가 디스플레이 장치에 연결되어 있지 않은 경우라도, 서버 데스크톱이 클라이언트로 리모팅될 수 있다.
원격 데스크톱(218)에 대한 데이터가 네트워크(206)를 통해 서버(202)로부터 클라이언트(204)로 전송될 수 있다. 한 구현에서, 사용자 인터페이스 구성요소(220) 및 미디어 구성요소(222)와 연관된 데이터가 사용자 인터페이스 채널(224) 및 미디어 채널(226)을 통해 각각 전송될 수 있다.
사용자 인터페이스 채널(224)은 사용자 인터페이스 구성요소(220)를 클라이언트(204)로 전달할 수 있다. 한 구현에서, Terminal Server® 및 Terminal Client Services(미국 워싱턴주 레드몬드 소재의 Microsoft® Corporation에 의해 제공됨)는 예시적인 사용자 인터페이스 채널(224)을 제공할 수 이다. 사용자 인터페이스 채널(224)을 통해 데이터를 전송하는 데 원격 프로토콜(remotable protocol)이 사용될 수 있다. 예시적인 프로토콜 및 데이터 형식으로는, 그 중에서도 특히, 원격 데스크톱 프로토콜(RDP), T-120 계열 프로토콜 또는 HTML(hypertext markup language 및 그의 많은 변형들)이 있다. Citrix® Systems에 의해 개발된 ICA(Independent Computing Architecture)는 원격 터미널 세션을 지원할 수 있는 다른 일례를 제공한다.
미디어 채널(226)이 사용자 인터페이스 채널(224)과 분리되어 있거나 통합되어 있을 수 있다. 미디어 채널(226)은 비디오 및 이상에서 열거한 기타 미디어 유형들과 같은 대역폭을 많이 사용하는 경험들을 전송하는 데 사용될 수 있다. 이 일례에서, 미디어 채널(226)은 사용자 인터페이스 구성요소(220)와 별도로 지나가는 미디어 구성요소(222)에 대한 통신 통로를 제공할 수 있다. 따라서, 미디어 구성요소(222)는 사용자 인터페이스 구성요소와 관련하여 대역외(out of band)에서 전송될 수 있지만 동기화될 수 있다. 미디어 구성요소(226)를 통해 데이터를 전송하는 예시적인 프로토콜로는, TCP(Transmission Control Protocol), 및 RDP 연결을 통한 가상 채널이 있을 수 있지만, 이들로 제한되지 않는다.
환언하면, 본 구현들은 원격 데스크톱과 관련한 데이터 전달을 두갈래로 나눌 수 있다. 사용자 인터페이스 구성요소(220)와 같은 서버 데스크톱(216)의 비교적 적은 데이터를 사용하는 구성요소들이 서버(202)에서 처리된 다음에 클라이언트(204)로 전송될 수 있다. 미디어 구성요소(222)와 같은 비교적 많은 데이터를 사요하는 구성요소들이 처리되지 않거나 덜 처리된 형태로 클라이언트(204)로 전송될 수 있다. 이 처리가 이어서 클라이언트(204)에 의해 완료되고 적은 데이터를 사용하는 구성요소들과 결합되어, 클라이언트(204)에 원격 데스크톱(218)을 생성할 수 있다. 미디어 프리젠테이션과 원격 데스크톱(218)의 다른 부분들 간의 상대적 관계가 유지될 수 있도록, 미디어 프리젠테이션에 영향을 주는 이벤트들(즉, 미디어 동작들)이 서버에서 추적될 수 있다.
이 예시적인 시나리오에서, 사용자 인터페이스 구성요소(220)는 미디어 구성요소(222)와 결합되거나 통합되어, 클라이언트(204)에 원격 데스크톱(218)을 발생한다. 클라이언트(204)에 있는 사용자는 원격 데스크톱(218)과 상호작용함으로써 서버(202)를 원격적으로 작동시킬 수 있다. 예를 들어, 클라이언트(204)에 있는 사용자는 원격 데스크톱(218) 상의 응용 프로그램 상으로 마우스 커서를 이동시키고 대응하는 아이콘을 클릭함으로써 응용 프로그램을 열 수 있다. 마찬가지로, 사용자는 원격 데스크톱을 통해 응용 프로그램에 명령들을 실행할 수 있다. 예를 들어, 미디어 응용 프로그램과 관련하여, 사용자는, 그 중에서도 특히, 재생 시작(시작), 재생 정지(정지), 빨리감기, 되감기, 일시정지, 및 볼륨 설정 등의 사용자-명령들을 실행하기 위해 마우스 클릭을 이용할 수 있다. 본 구현들은 원격 터미널 세션 시나리오에서 사용자-명령들의 실행을 용이하게 해준다.
설명을 위해, 클라이언트(204)에 있는 사용자가 원격 데스크톱(218)과 관련한 사용자 미디어 재생 명령들(사용자-명령들)을 입력하는 가상적인 시나리오를 생각해보자. 전체적으로 명령들(230)로 나타낸 바와 같이, 사용자-명령들이 원격 터미널 세션의 일부로서 네트워크(206)를 통해 클라이언트(204)로부터 서버(202)로 중계될 수 있다. 명령들(230)이 UI 채널(224)을 통해 또는 다른 채널을 통해 전송될 수 있다. 명령들(230)이 서버(202) 상에서 미디어 플랫폼(208)에 의해 처리되어 플랫폼-관련 미디어 명령들로 될 수 있다. 기술한 바와 같이, 미디어 플랫폼(208)의 미디어 처리가 원격 터미널 세션의 일부로서 가로채기되고, 추가의 처리를 위해 클라이언트(204)로 전송될 수 있다.
클라이언트의 미디어 플랫폼(212)은 미디어 플랫폼(208)과 같은 서버의 미디어 플랫폼과 동일하거나 그렇지 않을 수 있으며, 이로써 서버(202)의 가로채기된 플랫폼-관련 미디어 명령들을 이해할 수 있거나 그렇지 않을 수 있다. 서버의 RTS 추상화 모듈(210)은 가로채기된 플랫폼-관련 미디어 명령들을 수신할 수 있다. RTS 추상화 모듈(210)은 가로채기된 플랫폼-관련 미디어 명령들을 일반 또는 추상화된 미디어 명령들로 변환할 수 있다. 전체적으로 명령들(232)로 나타낸 바와 같이, 일반 미디어 명령들이 서버의 RTS 미디어 추상화 모듈(210)로부터 클라이언트의 RTS 미디어 추상화 모듈(214)로 전송될 수 있다. 클라이언트의 RTS 미디어 추상화 모듈(214)은 명령들(232) 등의 일반 미디어 명령들을 클라이언트의 미디어 플랫폼(212)과 관련된 미디어 명령들로 변환할 수 있다. 클라이언트의 미디어 플랫폼(212)은 이어서 사용자-명령을 완수하기 위해 클라이언트-관련 미디어 명령들을 실행할 수 있다. 원격 터미널 세션에서 미디어 명령 추상화를 수행하는 보다 상세한 일례가 도 3과 관련하여 이하에서 기술된다.
도 3은 시스템(200)이 도 2와 관련하여 이상에서 기술한 미디어 동작 추상화를 어떻게 달성할 수 있는지의 일례를 제공한다. 이 경우에, 서버(202) 및 클라이언트(204)에 각각 있는 RTS 미디어 추상화 모듈들(210, 214)은 RTS(remote terminal session) 매핑 테이블들(302, 304)에 의해 미디어 동작 추상화를 달성한다. 예를 들어, 서버의 RTS 미디어 추상화 모듈(210)은 서버의 미디어 플랫폼(208)과 관련된 미디어 명령들을 수신할 수 있다. 한 구현에서, 서버의 RTS 미디어 추상화 모듈(210)에 의해 수신되는 명령들이 미디어 파일들의 재생과 연관된 이벤트들에 관련될 수 있는 하나 이상의 동작들에 응답한 것일 수 있다. 예를 들어, 서버의 RTS 미디어 추상화 모듈(210)은, 클라이언트(204)에 있는 하나 이상의 사용자들이 재생을 위해 미디어 파일에 액세스할 때, 명령들을 수신할 수 있다.
서버의 RTS 미디어 추상화 모듈(210)은 RTS 매핑 테이블(302)을 이용하여, 수신된 미디어 동작들을 일반 또는 추상 미디어 동작들에 매핑할 수 있다. RTS 매핑 테이블(302)로부터의 추상화된 미디어 동작들이 클라이언트의 RTS 미디어 추상화 모듈(214)로 전송될 수 있다. 클라이언트의 RTS 미디어 추상화 모듈(214)이 다른 RTS 매핑 테이블(304)을 사용할 수 있다. RTS 매핑 테이블(304)은 추상화된 미디어 동작들을 클라이언트의 미디어 플랫폼(212)과 관련된 미디어 동작들로 변환할 수 있다. 클라이언트의 미디어 플랫폼(212)은 이어서 미디어 동작들을 실행할 수 있다.
설명을 위해, 서버의 미디어 플랫폼(208)이 Media Foundation® 플랫폼인 반면, 클라이언트의 미디어 플랫폼(212)이 DShow® 플랫폼인 것으로 가정한다. 이 일례에서, RTS 매핑 테이블(302)은 전체적으로 306A-306I로 지정된 Media Foundation® 플랫폼-관련 동작들을 전체적으로 308A-308I로 각각 지정된 대응하는 일반 미디어 동작들로 변환할 수 있다. 이와 유사하게, RTS 매핑 테이블(304)은 전체적으로 310A-310I로 지정된 일반 미디어 동작들을 전체적으로 312A-312I로 지정된 대응하는 DShow® 플랫폼-관련 동작들로 변환할 수 있다. 예를 들어, Media Foundation 플랫폼에 기초한 RTS 미디어 추상화 모듈(210)이 미디어 플랫폼(208)으로부터 동작(306A), 즉 "IMFClockStateSink::OnClockStarted"을 수신하는 것으로 가정한다. RTS 미디어 추상화 모듈(210)은 매핑 테이블(302)을 이용하여, 동작(306A)을 일반 미디어 동작 명령(308A), 즉 "StartPlayback"으로 변환할 수 있다. RTS 미디어 추상화 모듈(210)은 일반 미디어 동작 명령 "StartPlayback"(308A)을 클라이언트(204) 상의 RTS 미디어 추상화 모듈(214)로 전송할 수 있다.
일반 명령(308A) 등의 일반 미디어 동작 명령은 RTS 매핑 테이블(304)에 기초하여 클라이언트의 미디어 플랫폼(212)의 대응하는 명령에 매핑될 수 있다. 예를 들어, RTS 미디어 추상화 모듈(214)은 서버(202)로부터 수신된 일반 미디어 동작 명령 "StartPlayback"을 RTS 매핑 테이블(304)에서 찾아낼 수 있다. 이 경우에, 일반 미디어 동작 명령 "StartPlayback"이 310A로서 지정되어 있다. RTS 매핑 테이블(304)은 일반 미디어 동작 명령 "StartPlayback"(310A)을 명령(312A)로서 지정된 DShow® 플랫폼-관련 미디어 동작 "IMediaControl::Run"으로 변환할 수 있다. RTS 미디어 추상화 모듈(214)은 DShow® 플랫폼-관련 미디어 동작 "IMFMediaSession::Start"(312A)을 DShow® 플랫폼인 클라이언트 플랫폼(212)으로 전송할 수 있고, 이로써 클라이언트의 플랫폼(212)이 DShow-관련 미디어 동작을 이해하고 실행할 수 있다. 매핑 테이블들(302, 304)의 개개의 행에 걸쳐 수평으로 이동함으로써 다른 매핑들이 행해질 수 있다. 서버(202) 및 클라이언트(204)에 각각 있는 RTS 매핑 테이블(302, 304)이 플랫폼-관련 명령들을 일반 명령들에 연관시키고 또 그 반대로 연관시키는 다른 명령들 및 매핑들을 포함할 수 있다는 것을 잘 알 것이다.
한 구현에서, RTS 매핑 테이블들(302, 304)은 아직 개발되지 않은 미디어 플랫폼들 간의 변환을 하도록 구성될 수 있다. 본 명세서에 예시된 RTS 매핑 테이블들(302, 304)이 2개의 특정 미디어 플랫폼들 간의 변환을 포함하고 있지만, 다른 매핑 테이블들은 다수의 변환들을 포함할 수 있다. 예를 들어, 서버의 미디어 플랫폼들(208)이 DShow 및 Media Foundation일 수 있는 반면, 클라이언트의 미디어 플랫폼들이 Quick Time® 플랫폼 및 Ogg® 플랫폼일 수 있다. 따라서, 몇몇 구현들에서, RTS 매핑 테이블들(302, 304)은 서버 미디어 플랫폼과 클라이언트 미디어 플랫폼 간의 변환들을 제공할 수 있다.
게다가, 미디어 동작들을 추상화함으로써, RTS 매핑 테이블들(302, 304)이 다른 가능한 해결책들보다 더 간단할 수 있다. 예를 들어, 서버 RTS 매핑 테이블(302)은 클라이언트(204) 상에서 사용될 수 있는 모든 가능한 미디어 플랫폼들을 고려할 필요가 없을 수 있다. 환언하면, RTS 매핑 테이블(302) 등의 서버의 미디어 테이블이 클라이언트의 미디어 플랫폼(212)에 독립적일 수 있다(즉, 서버의 미디어 테이블이 클라이언트의 미디어 플랫폼 구성에 기초하여 구성될 필요가 없다). 클라이언트의 미디어 테이블(212)에 대해서도 똑같을 수 있다. 게다가, 클라이언트(204) 상에서 사용될 수 있는 새로운 미디어 플랫폼들이 개발될 때, 서버의 RTS 매핑 테이블(302)이 업데이트될 필요가 없을 수 있다. 그 대신에, 서버 RTS 매핑 테이블(302)은 서버(202) 상에 어느 미디어 플랫폼(들)이 존재하든 그 미디어 플랫폼(들)에 관련된 동작들(306A-306I) 등의 미디어 동작들을 308A-308I 등의 대응하는 추상 또는 일반 미디어 동작들로 변환할 수 있다. 클라이언트 RTS 매핑 테이블(304)은 이어서 308A-308I 등의 일반 미디어 동작들을 클라이언트(204) 상의 미디어 플랫폼(들)(212)에 관련된 동작들(310A-310I) 등의 미디어 동작들로 변환할 수 있다. 클라이언트 RTS 매핑 테이블(304)은 서버(202) 상에서 이용되거나 이용될 수 있는 모든 다른 미디어 플랫폼들을 고려할 필요가 없다. 그 대신에, 클라이언트 RTS 매핑 테이블(304)은 일반 미디어 동작들(310A-310I)로부터 클라이언트(204) 상에서 동작하는 미디어 플랫폼(들)(212)에 관련된 미디어 동작들로 변환하기만 할 수 있다.
RTS 매핑 테이블들(302, 304)은, 예시된 바와 같이, 워드 프로세싱 문서를 이용하여 달성될 수 있는 한가지 가능한 구현만을 나타내고 있다.
도 4는 원격 터미널 세션에서 미디어 동작 추상화를 지원하는 시스템(400)의 선택적인 구성요소들의 예시적인 표현이다. 도 4는 서버(402)와 클라이언트(404) 사이의 원격 터미널 세션의 미디어 구성요소에 관한 것이다. 이 구현에서, 터미널 서비스 세션은 RDP(remote desktop protocol) 구성을 필요로 하며, 그의 일례에 대해 이상에서 설명하였다. 시스템(400)은, 다른 대안으로서 또는 그에 부가하여, 원격 터미널 세션들 이외에 다른 공동 작업 시나리오들에 대해서도 이용될 수 있다.
시스템(400)은 제1 미디어 플랫폼(406) 및 제2 미디어 플레이어(408)를 포함할 수 있다. 미디어 플랫폼(406)은 미디어 소스(410)와 연관되어 있다. 미디어 플랫폼(406)은 기하형태 추적기 모듈(geometry tracker module)(412), RTS 미디어 추상화 모듈(414), 목적지 모듈(416), 및 RTS 미디어 추상화 모듈(420)을 포함하는 배포 관리자 모듈(418)을 포함한다. 미디어 플랫폼(406)은 또한 비디오 디코더(422), 비디오 효과 모듈(424), 비디오 렌더러(426), RTS 미디어 추상화 모듈(428), 오디오 디코더(430), 오디오 효과 모듈(432), 오디오 렌더러(434), RTS 미디어 추상화 모듈(436), 및 오디오 송신기(438)도 포함하고 있다. 서버는 또한 미디어 플랫폼(406)과 통신할 수 있는 미디어 플레이어(440)도 포함하고 있다.
클라이언트의 미디어 플랫폼(408)은 RTS 미디어 추상화 모듈(442), 기하형태 추적 모듈(444), 및 RTS 미디어 추상화 모듈(448)을 포함하는 멀티미디어 모듈(446)을 포함할 수 있다. 클라이언트의 미디어 플랫폼(408)은 또한 RTS 미디어 추상화 모듈(450), 오디오 수신기 모듈(452), 오디오 디코더(454), 오디오 효과 모듈(456) 및 오디오 렌더러(458)도 포함할 수 있다. 미디어 플랫폼(408)은 또한 RTS 미디어 추상화 모듈(460), 비디오 수신기(462), 비디오 디코더(464), 비디오 효과 모듈(466) 및 비디오 렌더러(468)도 포함할 수 있다. 클라이언트는 또한 미디어 플랫폼(408)과 통신할 수 있는 미디어 플레이어(470)도 포함하고 있다.
이 일례에서, 서버의 미디어 플랫폼(406)은, 운영 체제와 상호작용하는 응용 프로그램들이 미디어의 형식에 대한 특정의 상세를 "알지" 못하는 상태에서 미디어의 재생을 제어할 수 있도록 미디어의 재생을 가능하게 해주기 위해, 서버 운영 체제(도시 생략)의 일부로서 존재할 수 있다. 이와 유사하게, 클라이언트의 미디어 플랫폼(408)은, 운영 체제와 상호작용하는 응용 프로그램들이 미디어를 알지 못하는 상태에서 미디어의 재생을 제어할 수 있도록 미디어의 재생을 가능하게 해주기 위해, 클라이언트 운영 체제(도시 생략)의 일부로서 존재할 수 있다. 예를 들어, 미디어 플랫폼(406)은, 미디어 플레이어(440)가 재생되는 미디어의 형식에 관한 상세를 알지 못하는 상태에서, 미디어 플레이어(440) 등의 응용 프로그램이 실행될 수 있게 해줄 수 있다. 이와 유사하게, 클라이언트의 미디어 플랫폼(408)은, 운영 체제와 상호작용하는 응용 프로그램들이 미디어 형식들의 특정 상세를 알지 못하는 상태에서 미디어의 재생을 제어할 수 있도록 미디어의 재생을 가능하게 해주기 위해, 미디어 플레이어(470)가 서버 운영 체제의 일부로서 실행될 수 있게 해줄 수 있다. 서버(402) 상에서 실행되는 미디어 플랫폼(406)이 클라이언트(404) 상에서 실행되는 미디어 플랫폼(408)과 동일할 수 있다. 다른 경우들에서, 서버(402) 상의 미디어 플랫폼(406)이 클라이언트(404) 상에서 동작하는 미디어 플랫폼(408)과 다른 제품 및/또는 버전일 수 있다. 이하에서 기술되는 구성요소들은, 전자의 경우 및 후자의 경우 둘다에서, 미디어 동작들이 서버와 클라이언트 사이에서 효과적으로 전달될 수 있게 해줄 수 있다.
이 일례에서, 서버의 미디어 플랫폼(406)은 목적지 모듈(416)을 통해 원격 터미널 세션에서 실행되고 있는지 여부를 검출할 수 있다. 목적지 모듈(416)은 프리젠테이션이 어디에 제시되어야 하는지(예를 들어, 창, 디스크 파일, 기타) 및 프리젠테이션에 무슨 일이 일어나는지를 정의하는 개체일 수 있다. 게다가, 서버 미디어 플랫폼(406)은 소스가 미디어를 로컬적으로 렌더링할 능력을 갖는 클라이언트(404) 등의 클라이언트에 연결되어 있는지를 판정할 수 있다. 배포 관리자(418)는 서버의 미디어 플랫폼(406)이 클라이언트(404)에 연결되어 있는지 및 클라이언트(404)가 미디어를 로컬적으로 렌더링할 능력을 갖는지를 판정할 수 있다. 배포 관리자(418)는 또한 미디어를 클라이언트(404)로 리모팅하는 것을 가능하게 해주기 위해 원격 터미널 세션 정책을 수립할 수 있다. 배포 관리자(418)는 클라이언트(404) 상의 멀티미디어 구성요소 모듈(446) 등의 멀티미디어 클라이언트 플러그인과 가상 채널 연결을 설정할 수 있다. 가상 채널 연결은 서버(402)와 클라이언트(404) 간의 원격 터미널 세션에 관한 제어 정보의 교환을 가능하게 해줄 수 있다.
배포 관리자(418)와 멀티미디어 구성요소 모듈(446) 사이에서 가상 채널 연결을 통해 교환되는 제어 정보의 한 측면은 원격 터미널 세션에서의 미디어 동작들을 포함한다. 배포 관리자(418) 및 멀티미디어 구성요소 모듈(446)은 그 각자의 RTS 미디어 추상화 모듈들(420, 448)을 이용하여, 원격 터미널 세션에서 미디어 동작들을 어떻게 처리할지를 협상할 수 있다. 서버(402) 및 클라이언트(404) 중 어느 하나가 미디어 동작들에 대한 협상을 시작할 수 있다. 몇몇 구현들에서, 미디오 동작 협상은 원격 터미널 세션을 설정하는 시작 프로시저(start-up procedure)의 일부로서 시작될 수 있다. 다른 구현들에서, 원격 터미널 세션에서 사용자의 미디어 재생 명령이 수신되는 것 등의 미디어 동작에 응답하여 미디어 동작 협상이 시작될 수 있다.
예시적인 일례에서, 사용자의 미디어 재생 명령에 응답하여, 서버(402)가 미디어 소스(410)로부터의 미디어의 미디어 형식을 판정할 수 있다. 이 설명을 위해, 서버(402)가 소스의 미디어 형식이 MPEG IV인 것으로 판정하는 것으로 가정한다. 서버의 RTS 미디어 추상화 모듈(420)이 클라이언트(404) 등의 클라이언트가 MPEG IV 미디어 형식을 지원하는지 여부를 쿼리할 수 있다. 예를 들어, 서버의 RTS 미디어 추상화 모듈(420)은 클라이언트가 MPEG IV 등의 특정의 미디어 형식을 지원하는지 여부를 클라이언트의 RTS 추상화 모듈(448)에 쿼리할 수 있다. 이러한 쿼리의 일례가 308E 및 310E에 나타낸 일반 미디어 동작 "check format support"로서 RTS 매핑 테이블들(302, 304)에 제공되어 있다. 클라이언트의 RTS 미디어 추상화 모듈(448)이 다시 쿼리를 하여, 미디어 형식을 지원하기 위해 어느 미디어 플랫폼이 이용될 수 있는지를 서버(402)에 질문할 수 있다. 클라이언트(404)는 이어서 서버(402)로부터의 정보를 이용하여, 클라이언트(404)가 그 미디어 형식을 지원하는지 여부를 판정할 수 있다. 다른 대안으로서, 클라이언트(404)는 자신이 미디어 형식을 지원하는 미디어 플랫폼(408) 등의 미디어 플랫폼을 갖는지를 판정할 수 있다. 후자의 경우에, 클라이언트(404)는 서버(402)에 계속하여 미디어를 스트리밍하도록 지시할 수 있다. 예를 들어, 클라이언트(404)는, 클라이언트의 RTS 미디어 추상화 모듈(448)을 통해, 서버(402) 상의 미디어 플랫폼(406)과 완전히 다른 미디어 플랫폼(408)을 가질 수 있다. 이러한 경우들에, 공동 작업 세션들의 동작들(재생, 일시정지, 기타 등등)이 시작되기 전에, 플랫폼이 클라이언트(404)에 의해 지원되는지에 대한 검사가 수행될 수 있다. 다른 경우에, 서버를 기다리지 않고, 클라이언트의 RTS 미디어 추상화 모듈(448)은 클라이언트(404) 및 클라이언트(404) 상에서 동작하는 미디어 플랫폼들에 의해 지원되는 미디어 형식들에 관한 클라이언트(404)와 연관된 기능들을 선제적으로 서버(402)에 알려줄 수 있다.
게다가, 가상 채널 연결을 이용하는 것에 의해 배포 관리자(418) 및 멀티미디어 구성요소(446)는 분산 토폴로지(distributed topology)를 구축할 수 있다. 분산 토폴로지는 다양한 기능들을 수행할 수 있다. 예를 들어, 분산 토폴로지는 서버(402)에 있는 네트워크 송신기 및 클라이언트(404)에 있는 네트워크 수신기를 포함할 수 있다. 네트워크 수신기는 차례로 클라이언트(404)에 있는 오디오 렌더러(458) 및/또는 비디오 렌더러(468)에 연결된다. 이러한 특정의 구성에서, 비디오 송신기(472) 및 오디오 송신기(438)는 서버(402) 상에 예시되어 있는 반면, 대응하는 비디오 수신기(462) 및 오디오 수신기(452)는 클라이언트(404) 상에 예시되어 있다.
원격 데스크톱 미디어 프리젠테이션 시나리오 동안에, 미디어가 미처리된 또는 부분적으로 처리된 형태로 클라이언트(404)로 스트림으로서 보내질 수 있다. 예를 들어, 서버(402)에서, 미디어 플랫폼(406)은 그렇지 않았으면 서버(402)에서, 비디오 디코더(422), 비디오 효과 모듈(424), 비디오 렌더러(426), 오디오 디코더(430), 오디오 효과(432) 및 오디오 렌더러(434) 등에 의해, 처리될 미디어를 가로채기할 수 있다. 클라이언트(404)로 스트리밍하기 위해, 미디어가 각자의 비디오 및 오디오 송신기들(472, 438)로 리디렉션될 수 있다. 스트리밍은 다양한 채널들을 통할 수 있다. 예를 들어, 미디어가 RDP에서의 대역내(in band)에서 가상 채널을 통해 스트리밍될 수 있다. 이러한 구성은 기존의 RDP 연결을 재사용하고 RDP가, 그 중에서도 특히, 방화벽을 뚫는 것과 안전하고 인증된 컨텍스트를 설정하는 것의 다양한 상세들을 처리할 수 있게 해준다. 다른 대안으로서 또는 그에 부가하여, 미디어가 측파대 UDP(user datagram protocol) 또는 TCP(transmission control protocol) 연결을 통해 스트리밍될 수 있다. 어떤 구현들에서, 대역외 구성(out of band configuration)이 사용될 수 있다. 예를 들어, 특정의 구성에서, 대역외 연결은, RDP를 통한 연결에서 이용가능한 것보다, 그 연결을 통해 더 큰 대역폭으로 이용가능할 수 있다.
클라이언트(404)에서, 스트리밍된 미디어가 멀티미디어 모듈(446)에 수신되고, 이 멀티미디어 모듈(446)은 스트리밍된 미디어를 비디오 수신기(462) 및 오디오 수신기(452)로 각각 전달한다. 비디오 수신기(462) 및 오디오 수신기(452)는 각각 미디어를 클라이언트측 변환들(transforms) 및 싱크들(sinks)[비디오 디코더(464), 비디오 효과(466), 비디오 렌더러(468), 오디오 디코더(454), 오디오 효과(456) 및 오디오 렌더러(458)를 포함함]로 전달한다. 미디어는 이어서 클라이언트(404)에서 디코딩되고 렌더링된다. 오디오 및 비디오가 인코딩된 형태로 스트리밍되기 때문에, 인코딩된 미디어에 포함된 어떤 동기화 도구라도 클라이언트(404)에서 적당한 오디오 비디오 동기화를 유지하는 데 이용가능할 수 있다. 설명의 편의상, 미처리된 미디어가 서버(402)로부터 클라이언트(404)로 스트리밍된다.
미디어의 어떤 처리가 다른 구현들로 행해질 수 있다. 예를 들어, 이상에서 기술한 원격 데스크톱 시나리오에 따라, 사용자가 소스에서 가상의 코덱 AA으로 인코딩되는 미디어를 재생하라고 요청하는 것으로 가정한다. 이 일례에서, 소스는 가상의 코덱 AA를 디코딩하는 구성요소들을 포함할 수 있지만, 클라이언트는 그렇지 않을 수 있다. 그렇지만, 소스 및 클라이언트 둘다가 제2 가상의 코덱 형식 BB에 대한 코덱 기능을 가질 수 있다. 이러한 경우에, 소스는 미디어를 디코딩한 다음에 미디어를 클라이언트(404)로 스트리밍하기 전에 미디어를 BB 형식으로 기록할 수 있다. 이것은 이상 및 이하에서 기술되는 개념들에 따라 시스템 구성요소들에서 행해질 수 있는 미디어에 대한 다양한 수준의 처리를 나타내는 한 일례에 불과하다.
기하형태 추적 구성요소 또는 기하형태 추적기(412, 444)는 터미널 서비스 세션의 대상 창(target window)에 관한 어떤 변경들도 등록하여 추적할 수 있다. 예를 들어, 기하형태 추적기(412)는 대상 창의 고유 식별자를 등록하여 상기한 원격 데스크톱 상의 대상 창을 추적할 수 있다. 기하형태 추적기(412)는 서버측에서 대상 창을 다른 창으로 클립핑하는 것, 대상 창의 위치, 및 대상 창의 크기에 관한 변경들을 추적할 수 있다. 이러한 변경들은 이어서 원격 데스크톱 프로토콜에 의해 클라이언트(404)로 중계되고, 이 경우 그 변경들은 클라이언트측 멀티미디어 모듈(446)로 보내진다.
기하형태 추적은 창 기하형태 변경들에 대한 통지 시스템을 제공하는 Terminal Services® 플랫폼 등의 플랫폼의 특징일 수 있다. 창의 기하형태가 변경될 때마다, 새로운 기하형태를 포함하는 이벤트들이 발생되어 소스에 있는 통지 싱크들로 전송될 수 있다. 이 일례에서, 클라이언트는 소스로서 기능한다. 창이 이동되거나, 최소화/최대화되거나, 다른 창에 의해 클립핑될 때 창 기하형태가 변할 수 있다.
어떤 경우들에, 응용 프로그램은, 서버로부터 사전-렌더링된 비트맵을 전송하는 대신에, 클라이언트 상에 미디어를 렌더링하기로 결정할 수 있다. 이렇게 하기 위해, 응용 프로그램은 서버측 및 클라이언트측 둘다에 창을 생성한다. 서버 창은 개체 틀(placeholder)로서 기능하여 모든 입력들을 받을 수 있으며, 실제의 미디어는 클라이언트측에 있는 응용 프로그램에 의해 렌더링되고 페인팅될 수 있다. 배포가 사용자에게 투명하도록 하기 위해 클라이언트 창이 서버 창 바로 위에 페인팅된다. 모든 입력들이 실제로 서버 창에 대해 작용하기 때문에, 기하형태 변경들이 서버에서 반영될 것이다. 응용 프로그램은, 양쪽 창이 기하형태적으로 동기화(geometrically synchronized)되도록, 서버 창에 대한 이러한 변경들을 추적하고 그에 따라 클라이언트 창을 업데이트한다.
예시적인 방법(들)
공동 작업 세션들 및 공동 작업 세션들에서의 미디어 동작들을 처리하는 예시적인 프로세스들에 대해 도 1 내지 도 4를 참조하여 기술하였다. 이러한 프로세스들이 일반적으로 컴퓨터 실행가능 명령어들과 관련하여 기술될 수 있다. 일반적으로, 컴퓨터 실행가능 명령어들은 특정의 기능들을 수행하거나 특정의 추상 데이터 유형들을 구현하는 루틴, 프로그램, 개체, 구성요소, 데이터 구조, 프로시저, 모듈, 함수, 기타 등등을 포함할 수 있다. 프로세스들은 또한 기능들이 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경에서도 실시될 수 있다. 분산 컴퓨팅 환경에서는, 컴퓨터 실행가능 명령어들이 메모리 저장 장치들을 비롯한 로컬 및 원격 컴퓨터 저장 매체 둘다에 위치할 수 있다.
도 5는 공동 작업 세션들 및 공동 작업 세션들에서의 미디어 재생 동작들을 처리하는 예시적인 방법(500)을 나타낸 것이다. 방법이 기술되어 있는 순서가 제한으로서 해석되어서는 안되며, 임의의 수의 기술된 방법 블럭들이 방법을 구현하기 위해 임의의 순서로 결합될 수 있다. 게다가, 방법이 임의의 적합한 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합으로 구현될 수 있다.
블록(502)에서, 미디어 파일들에 관련된 하나 이상의 동작들과 연관된 명령들이 수신된다. 수신된 명령들은 명령들을 수신하는 컴퓨팅 장치와 연관된 미디어 플렛폼에 관련되어 있다. 명령들이 네트워크를 통해 미디어 파일들에 액세스하고 있을 수 있는 다른 컴퓨팅 장치로부터 발생될 수 있다. 예를 들어, 서버의 RTS 미디어 추상화 모듈(210)은 서버의 미디어 플랫폼(208)에 관련된 미디어 명령들을 수신할 수 있다. 이러한 명령들은 미디어 파일이 액세스되는 것과 같은 어떤 동작들에 응답하여 발생될 수 있다.
블록(504)에서, 수신된 플랫폼-관련 명령들이 하나 이상의 일반 미디어 동작들과 연관된다. 일반 동작들은 미디어 파일들을 재생하기 위해 각종의 응용 프로그램들에 공통적인 것일 수 있다. 한 구현에서, 플랫폼-관련 명령들이 매핑에 기초하여 하나 이상의 일반 동작들과 연관된다. 예를 들어, 서버의 RTS 미디어 추상화 모듈(210)은 RTS 매핑 테이블(302)을 이용하여, 수신된 미디어 동작들[명령들(306A-306I)로 나타냄]을 일반 또는 추상 미디어 동작들(308A-308I로 나타냄)에 매핑할 수 있다. 서버(202)에 기초한 플랫폼의 일례가 Media Foundation을 포함하지만, 이것으로 제한되지 않는다.
블록(506)에서, 일반 동작들이 미디어 파일에의 액세스를 요청하는 컴퓨팅 장치로 전송된다. 예를 들어, 일반 동작들이 서버(202)로부터 클라이언트(204)로 전송될 수 있다. 한 구현에서, 서버의 RTS 미디어 추상화 모듈(210)은 일반 명령들을 서버(202)로부터 클라이언트(204)로 전송한다.
블록(508)에서, 일반 명령들이 요청측 장치에 의해 수신되고 플랫폼-관련 명령들과 연관된다. 예를 들어, 클라이언트의 RTS 미디어 추상화 모듈(214)은 서버의 RTS 미디어 추상화 모듈(210)에 의해 전송된 일반 명령들을 수신한다. 클라이언트의 RTS 미디어 추상화 모듈(214)이 다른 RTS 매핑 테이블(304)을 사용할 수 있다. RTS 매핑 테이블(304)은 추상화된 미디어 동작들을 클라이언트의 미디어 플랫폼(212)과 관련된 미디어 동작들로 변환할 수 있다. 클라이언트의 미디어 플랫폼(212)은 이어서 미디어 동작들을 실행할 수 있다. 클라이언트(204) 상의 미디어 플랫폼의 일례로는 DShow® 플랫폼이 있지만, 이것으로 제한되지 않는다. 따라서, 플랫폼-관련 명령들을 일반 동작들로서 추상화함으로써, 서버(202)의 플랫폼-관련 명령들이 클라이언트(204)의 플랫폼-관련 명령들로 변환될 수 있다.
예시적인 컴퓨팅 환경
도 6은 본 명세서에 기술된 기법들을 구현하는 데 사용될 수 있고 또 본 명세서에 기술된 요소들을 전체적으로 또는 부분적으로 나타낼 수 있는 예시적인 일반 컴퓨터 환경(600)을 나타낸 것이다. 컴퓨터 환경(600)은 컴퓨팅 환경의 일례에 불과하며, 컴퓨터 및 네트워크 아키텍처의 용도 또는 기능의 범위에 관한 어떤 제한을 암시하기 위한 것이 아니다. 컴퓨터 환경(600)이 예시적인 컴퓨터 환경(600)에 예시된 구성요소들 중 어느 하나 또는 이들 구성요소의 임의의 조합에 관한 어떤 의존성 또는 요구사항을 갖는 것으로 해석되어서도 안된다.
컴퓨터 환경(600)은 컴퓨터(602) 형태의 범용 컴퓨팅-기반 장치를 포함한다. 컴퓨터(602)는, 예를 들어, 데스크톱 컴퓨터, 핸드헬드 컴퓨터, 노트북 또는 랩톱 컴퓨터, 서버 컴퓨터, 게임 콘솔, 기타일 수 있다. 컴퓨터(602)의 구성요소들로는 하나 이상의 프로세서 또는 처리 장치(604), 시스템 메모리(606), 및 프로세서(604)를 비롯한 다양한 시스템 구성요소들을 시스템 메모리(606)에 연결시키는 시스템 버스(608)가 있을 수 있지만, 이들로 제한되지 않는다.
시스템 버스(608)는 메모리 버스 또는 메모리 제어기, 주변 장치 버스, AGP(accelerated graphics port), 및 각종의 버스 아키텍처들 중 임의의 것을 사용하는 프로세서 또는 로컬 버스를 비롯한 몇가지 유형의 버스 구조들 중 하나 이상을 나타낸다. 예로서, 이러한 아키텍처들로는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 메자닌(Mezzanine) 버스라고도 하는 PCI(Peripheral Component Interconnect) 버스가 있을 수 있다.
컴퓨터(602)는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함하고 있다. 이러한 매체는 컴퓨터(602)에 의해 액세스될 수 있는 이용가능한 매체라면 어느 것이라도 될 수 있고, 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체 둘다를 포함한다.
시스템 메모리(606)는 랜덤 액세스 메모리(RAM)(610) 등의 휘발성 메모리 및/또는 판독 전용 메모리(ROM)(612) 등의 비휘발성 메모리 형태의 컴퓨터 판독가능 매체를 포함한다. 시동 중과 같은 때에 컴퓨터(602) 내의 구성요소들 간의 정보 전송을 돕는 기본 루틴들이 들어 있는 기본 입/출력 시스템(BIOS)(614)은, 예시된 바와 같이, ROM(612)에 저장되어 있다. RAM(610)에는 통상적으로 처리 장치(604)에 의해 즉각 액세스될 수 있고 및/또는 현재 처리되고 있는 데이터 및/또는 프로그램 모듈들이 들어 있다.
컴퓨터(602)는 또한 다른 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체도 포함할 수 있다. 일례로서, 도 6은 비이동식, 비휘발성 자기 매체(도시 생략)로부터 판독을 하고 그에 기록을 하는 하드 디스크 드라이브(616)를 나타내고 있다. 또한, 도 6은 이동식, 비휘발성 자기 디스크(620)(예를 들어, "플로피 디스크")로부터 판독을 하고 그에 기록을 하는 자기 디스크 드라이브(618)를 나타내고 있고, 게다가 도 6은 CD-ROM, DVD-ROM, 기타 광 매체 등의 이동식, 비휘발성 광 디스크(624)로부터 판독을 하고 및/또는 그에 기록을 하는 광 디스크 드라이브(622)를 나타내고 있다. 하드 디스크 드라이브(616), 자기 디스크 드라이브(618) 및 광 디스크 드라이브(622) 각각은 하나 이상의 데이터 매체 인터페이스(626)에 의해 시스템 버스(608)에 연결되어 있다. 다른 대안으로서, 하드 디스크 드라이브(616), 자기 디스크 드라이브(618) 및 광 디스크 드라이브(622)는 하나 이상의 인터페이스들(도시 생략)에 의해 시스템 버스(608)에 연결될 수 있다.
이 디스크 드라이브들 및 그와 연관된 컴퓨터-판독가능 매체는 컴퓨터(602)의 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들, 및 기타 데이터의 비휘발성 저장을 제공한다. 이 일례가 하드 디스크(616), 이동식 자기 디스크(620) 및 이동식 광 디스크(624)를 나타내고 있지만, 자기 카세트 또는 기타 자기 저장 장치, 플래쉬 메모리 카드, CD-ROM, DVD(digital versatile disk) 또는 기타 광 저장 장치, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), EEPROM(electrically erasable programmable read-only memory), 기타 등등의, 컴퓨터에 의해 액세스될 수 있는 데이터를 저장할 수 있는 다른 유형의 컴퓨터 판독가능 매체도 예시적인 컴퓨팅 시스템 및 환경을 구현하는 데 이용될 수 있다는 것을 잘 알 것이다.
예로서, 운영 체제(626), 하나 이상의 응용 프로그램들(628), 기타 프로그램 모듈들(630) 및 프로그램 데이터(632)를 비롯한 다수의 프로그램 모듈들이 하드 디스크(616), 자기 디스크(620), 광 디스크(624), ROM(612) 및/또는 RAM(610)에 저장될 수 있다. 이러한 운영 체제(626), 하나 이상의 응용 프로그램들(628), 기타 프로그램 모듈들(630), 및 프로그램 데이터(632)(또는 이들의 어떤 조합) 각각은 분산 파일 시스템을 지원하는 상주 구성요소들 전부 또는 그 일부를 구현할 수 있다.
사용자는 키보드(634) 및 포인팅 장치(636)(예를 들어, "마우스") 등의 입력 장치들을 통해 컴퓨터(602)에 명령들 및 정보를 입력할 수 있다. 다른 입력 장치들(638)(구체적으로 도시하지 않음)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 직렬 포트, 스캐너, 기타 등등이 있을 수 있다. 이들 및 기타 입력 장치들이 시스템 버스(608)에 연결되어 있는 입/출력 인터페이스들(640)을 통해 처리 장치(604)에 연결되어 있지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 연결될 수도 있다.
모니터(642) 또는 기타 유형의 디스플레이 장치도 비디오 어댑터(644) 등의 인터페이스를 통해 시스템 버스(608)에 연결될 수 있다. 모니터(642) 이외에, 다른 주변 출력 장치들로는 입/출력 인터페이스(640)를 통해 컴퓨터(602)에 연결될 수 있는 스피커(도시 생략) 및 프린터(646) 등의 구성요소들이 있다.
컴퓨터(602)는 원격 컴퓨팅-기반 장치(648) 등의 하나 이상의 원격 컴퓨터들과의 논리적 연결을 사용하여 네트워크화된 환경에서 동작할 수 있다. 예로서, 원격 컴퓨팅-기반 장치(648)는 퍼스널 컴퓨터, 휴대용 컴퓨터, 서버 컴퓨터, 라우터, 네트워크 컴퓨터, 피어 장치 또는 기타 통상의 네트워크 노드, 기타 등등일 수 있다. 원격 컴퓨팅-기반 장치(648)는 컴퓨터(602)와 관련하여 본 명세서에 기술된 요소들 및 특징들 중 다수 또는 그 전부를 포함할 수 있는 휴대용 컴퓨터로서 예시되어 있다.
컴퓨터(602)와 원격 컴퓨터(648) 간의 논리적 연결들이 LAN(local area network)(660) 및 일반 WAN(wide area network)(652)으로서 기술되어 있다. 이러한 네트워킹 환경들은 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷 및 인터넷에서 흔한 것이다.
LAN 네트워킹 환경에서 구현될 때, 컴퓨터(602)는 네트워크 인터페이스 또는 어댑터(654)를 통해 로컬 네트워크(660)에 연결된다. WAN 네트워킹 환경에서 구현될 때, 컴퓨터(602)는 통상적으로 원거리 통신망(652)을 통해 통신을 설정하는 모뎀(656) 또는 기타 수단을 포함한다. 컴퓨터(602) 내장형이거나 외장형일 수 있는 모뎀(656)은 입/출력 인터페이스(640) 또는 다른 적절한 메카니즘을 통해 시스템 버스(608)에 연결될 수 있다. 도시된 네트워크 연결들이 예시적인 것이고 컴퓨터들(602 및 648) 간에 통신 링크(들)를 설정하는 기타 수단이 사용될 수 있다는 것을 잘 알 것이다.
컴퓨팅 환경(600)으로 예시된 것과 같은 네트워크화된 환경에서, 컴퓨터(602) 또는 그의 일부와 관련하여 도시된 프로그램 모듈들은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 원격 응용 프로그램들(658)은 원격 컴퓨터(648)의 메모리 장치 상에 존재한다. 예시를 위해, 응용 프로그램들 및 운영 체제 등의 기타 실행가능 프로그램 구성요소들이 본 명세서에서 개별적인 블록들로 나타내어져 있지만, 이러한 프로그램들 및 구성요소들이 다양한 때에 컴퓨팅-기반 장치(602)의 서로 다른 저장 구성요소들에 존재하고 컴퓨터의 데이터 프로세서(들)에 의해 실행된다는 것을 잘 알 것이다.
다양한 모듈들 및 기법들이 본 명세서에서 일반적으로 하나 이상의 컴퓨터들 또는 기타 장치들에 의해 실행되는, 프로그램 모듈들 등의, 컴퓨터-실행가능 명령어들과 관련하여 기술될 수 있다. 일반적으로, 프로그램 모듈들은 특정의 작업들을 수행하거나 특정의 추상 데이터 유형들을 구현하는 루틴, 프로그램, 개체, 구성요소, 데이터 구조, 기타 등등을 포함한다. 통상적으로, 프로그램 모듈들의 기능이 다양한 실시예들에서 원하는 바에 따라 결합되거나 분산되어 있을 수 있다.
이 모듈들 및 기법들의 구현은 어떤 형태의 컴퓨터-판독가능 매체 상에 저장되거나 그 매체를 통해 전송될 수 있다. 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 이용가능한 매체라면 어느 것이라도 될 수 있다. 제한이 아닌 예로서, 컴퓨터-판독가능 매체는 "컴퓨터 저장 매체" 및 "통신 매체"를 포함할 수 있다.
"컴퓨터 저장 매체"는 컴퓨터-판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등의 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체로는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있고 또 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체가 있지만, 이들로 제한되지 않는다.
다른 대안으로서, 프레임워크의 일부분이 하드웨어로, 또는 하드웨어, 소프트웨어 및/또는 펌웨어의 조합으로 구현될 수 있다. 예를 들어, 하나 이상의 ASIC(application specific integrated circuit) 또는 PLD(programmable logic device)가 프레임워크의 하나 이상의 부분들을 구현하도록 설계되거나 프로그램될 수 있다.
결론
공동 작업 세션에서 멀티미디어 동작들을 관리하는 실시예들이 구조적 특징들 및/또는 방법들과 관련하여 기술되었지만, 첨부된 특허청구범위의 발명 요지가 기술된 특정의 특징들 또는 방법들로 꼭 제한되는 것은 아니라는 것을 잘 알 것이다. 오히려, 특정의 특징들 및 방법들이 공동 작업 세션에서 멀티미디어 동작들을 관리하는 예시적인 구현들로서 개시되어 있다.
Claims (19)
- 컴퓨팅 장치상에서 실행되는 방법으로서,
클라이언트에 특정한 클라이언트측 미디어 플랫폼을 갖는 상기 클라이언트와의 공동 작업 세션(collaboration session)을 제공하는 단계- 상기 공동 작업 세션은 미디어 구성요소에 대한 미디어 데이터가 전달되는 제1 통신 채널, 및 사용자 인터페이스 구성요소가 상기 클라이언트에 전달되는 제2 통신 채널을 포함함 -,
상기 클라이언트로부터, 서버에 특정한 서버측 미디어 플랫폼의 서버측 미디어 재생 명령(server-side media-playback-commands)을 수신하는 단계,
상기 서버에 특정한 상기 서버측 미디어 플랫폼의 상기 서버측 미디어 재생 명령을 상기 클라이언트로 전송하기 위해 플랫폼 일반 미디어 재생 명령(platform generic media-playback-commands)으로 변환하는 단계, 및
상기 플랫폼 일반 미디어 재생 명령을 상기 클라이언트로 전송하는 단계- 상기 클라이언트는 상기 플랫폼 일반 미디어 재생 명령을 상기 클라이언트에 특정한 상기 클라이언트측 미디어 플랫폼의 클라이언트측 미디어 재생 명령으로 변환함 -
를 포함하는 방법. - 제1항에 있어서,
미디어 프리젠테이션 창에, 상기 클라이언트에서의 사용자 인터페이스를 제시하는 단계, 및
상기 미디어 프리젠테이션 창에 대한 변경들을 추적하는 단계
를 더 포함하는 방법. - 제2항에 있어서,
미디어 응용 프로그램이 상기 제시된 사용자 인터페이스의 사용자 인터페이스 구성요소 상에 미디어 프리젠테이션 창으로서 인스턴스화되고,
상기 추적하는 단계는 상기 미디어 프리젠테이션 창에 고유 식별자를 할당하는 단계를 포함하며,
상기 미디어 프리젠테이션 창이 상기 사용자 인터페이스 구성요소와 관련하여 배향될 수 있도록, 상기 미디어 프리젠테이션 창에 대한 변경들은 상기 클라이언트로 중계되는 방법. - 제1항에 있어서,
상기 제2 통신 채널은 상기 공동 작업 세션에 의해 구축되는
방법. - 제1항에 있어서,
상기 미디어 데이터의 형식(format)을 결정하는 단계, 및
상기 형식으로 상기 미디어 데이터를 디코딩하여 렌더링할 상기 클라이언트의 용량(capacity)을 평가하는 단계
를 더 포함하는 방법. - 제5항에 있어서,
상기 클라이언트가 상기 형식으로 상기 미디어 데이터를 디코딩하여 렌더링할 상기 용량이 부족한 경우, 상기 미디어 데이터를 디코딩하고 상기 클라이언트가 처리하도록 구성되어 있는 다른 형식으로 상기 미디어 데이터를 재인코딩하는 단계를 더 포함하는 방법. - 제1항에 있어서,
상기 클라이언트와 가상 채널 연결을 구축하는 단계,
상기 가상 채널 연결을 이용해 상기 클라이언트에 전달되는 미디어의 소스와 상기 클라이언트에 의해 지원되는 형식들을 협상하는(negotiating) 단계, 및
상기 가상 채널 연결을 이용해 상기 클라이언트와 함께 분산 토폴로지를 설정하는 단계
를 더 포함하는 방법. - 제7항에 있어서,
상기 분산 토폴로지를 설정하는 단계는 상기 소스에서는 네트워크 송신기를 삽입하고, 상기 클라이언트에서는 네트워크 수신기를 삽입하는 단계를 포함하는 방법. - 서버로서,
사용자 인터페이스를 구성하는 그래픽들 및 이미지들을 포함하는 사용자 인터페이스 구성요소- 상기 사용자 인터페이스 구성요소는 제1 통신 채널을 통해 클라이언트와 통신함 -, 및
상기 사용자 인터페이스 구성요소를 통해 재생될 미디어 프리젠테이션 데이터를 포함하는 미디어 구성요소를 포함하되,
상기 클라이언트가 제1 미디어 플랫폼에 대한 플랫폼 특정 미디어 재생 명령을 처리할 수 없거나 또는 원격 터미널 세션 클라이언트 상에서 지원되는 제2 미디어 플랫폼에 대한 플랫폼 특정 미디어 재생 명령을 처리할 수 있는 경우, 상기 미디어 구성요소는 상기 서버에 의해 지원되는 상기 제1 미디어 플랫폼의 상기 플랫폼 특정 미디어 재생 명령을 플랫폼 일반 미디어 재생 명령으로 변환하도록 구성되고,
상기 제1 미디어 플랫폼의 상기 플랫폼 특정 미디어 재생 명령은 상기 클라이언트로부터 수신되고, 상기 클라이언트는 상기 플랫폼 일반 미디어 재생 명령을 상기 제2 미디어 플랫폼을 위한 상기 플랫폼 특정 미디어 재생 명령으로 변환하는,
서버. - 제9항에 있어서,
상기 사용자 인터페이스 구성요소는 미디어 응용 프로그램 창을 포함하는 서버. - 제10항에 있어서,
상기 미디어 구성요소는 상기 미디어 응용 프로그램 창 내의 미디어 프리젠테이션 대상 창에 제시되도록 구성되는 서버. - 제11항에 있어서,
상기 미디어 프리젠테이션 데이터는 상기 미디어 응용 프로그램 창에 대해 상기 미디어 프리젠테이션 대상 창을 추적함으로써 추적되는 서버. - 제12항에 있어서,
상기 추적하는 것은 상기 미디어 응용 프로그램 창에 대한 상기 미디어 프리젠테이션 대상 창의 상대 위치를 상기 원격 터미널 세션 클라이언트로 중계하는 것을 포함하는 서버. - 제12항에 있어서,
상기 추적하는 것은 상기 미디어 프리젠테이션 대상 창을 나타내는 개체 틀(placeholder)을 서버 데스크톱 상에 삽입하는 것 및 상기 개체 틀에 영향을 미치는 임의의 변경들을 추적하는 것을 포함하는 서버. - 제9항에 있어서,
상기 미디어 구성요소는 어떤 미디어 형식들이 상기 원격 터미널 세션 클라이언트에 의해 지원되는지를 판정하도록 구성되는
서버. - 제9항에 있어서,
상기 미디어 구성요소는 상기 원격 터미널 세션 클라이언트와 함께 분산 토폴로지를 구축하도록 구성되는
서버. - 제9항에 있어서,
상기 미디어 구성요소는 터미널 서비스 세션에서 상기 미디어 프리젠테이션 데이터를 전송 및 스트리밍하도록 구성되는
서버. - 시스템으로서,
제1 미디어 플레이어를 지원하는 클라이언트에게 제1 통신 채널을 통해 미디어 구성요소를 제공하고 제2 통신 채널을 통해 사용자 인터페이스 구성요소를 제공하는 메카니즘,
상기 클라이언트로부터, 서버에 의해 지원되는 제2 미디어 플레이어에 대해 공동 작업 세션 동안 제공된 사용자 입력에 응답하여 생성된 플랫폼 특정 미디어 재생 명령을 수신하는 메카니즘, 및
상기 클라이언트가 제2 미디어 플랫폼에 대한 플랫폼 특정 미디어 재생 명령을 처리할 수 있는지 여부를 판정하고 상기 클라이언트가 상기 제2 미디어 플랫폼에 대한 상기 플랫폼 특정 미디어 재생 명령을 처리할 수 없는 경우 상기 제2 미디어 플랫폼에 대한 상기 플랫폼 특정 미디어 재생 명령을 플랫폼 일반 미디어 재생 명령으로 변환하는 메카니즘- 상기 클라이언트는 상기 플랫폼 일반 미디어 재생 명령을 상기 클라이언트에 의해 지원되는 제1 미디어 플레이어에 대한 플랫폼 특정 미디어 재생 명령으로 변환함 -
을 포함하는 시스템. - 제1항에 있어서,
상기 플랫폼 특정 미디어 재생 명령을 플랫폼 일반 미디어 재생 명령으로 변환하는 단계는 상기 플랫폼 특정 미디어 재생 명령을 일반 미디어 재생 명령에 맵핑하는 맵핑 테이블을 이용하는 단계를 포함하는, 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/060,620 | 2008-04-01 | ||
US12/060,620 US8433812B2 (en) | 2008-04-01 | 2008-04-01 | Systems and methods for managing multimedia operations in remote sessions |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110007114A KR20110007114A (ko) | 2011-01-21 |
KR101596530B1 true KR101596530B1 (ko) | 2016-02-22 |
Family
ID=41118756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107021671A KR101596530B1 (ko) | 2008-04-01 | 2009-03-06 | 원격 세션에서의 멀티미디어 동작을 관리하는 시스템 및 방법 |
Country Status (7)
Country | Link |
---|---|
US (2) | US8433812B2 (ko) |
EP (1) | EP2274682A4 (ko) |
KR (1) | KR101596530B1 (ko) |
CN (1) | CN101981558B (ko) |
MX (1) | MX2010010520A (ko) |
RU (1) | RU2504829C2 (ko) |
WO (1) | WO2009154816A2 (ko) |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8789070B2 (en) * | 2007-12-06 | 2014-07-22 | Wyse Technology L.L.C. | Local device virtualization |
US8433812B2 (en) * | 2008-04-01 | 2013-04-30 | Microsoft Corporation | Systems and methods for managing multimedia operations in remote sessions |
US8170123B1 (en) * | 2008-04-15 | 2012-05-01 | Desktone, Inc. | Media acceleration for virtual computing services |
US20090284476A1 (en) * | 2008-05-13 | 2009-11-19 | Apple Inc. | Pushing a user interface to a remote device |
US8970647B2 (en) * | 2008-05-13 | 2015-03-03 | Apple Inc. | Pushing a graphical user interface to a remote device with display rules provided by the remote device |
US20100293462A1 (en) * | 2008-05-13 | 2010-11-18 | Apple Inc. | Pushing a user interface to a remote device |
US9311115B2 (en) | 2008-05-13 | 2016-04-12 | Apple Inc. | Pushing a graphical user interface to a remote device with display rules provided by the remote device |
US9870130B2 (en) * | 2008-05-13 | 2018-01-16 | Apple Inc. | Pushing a user interface to a remote device |
US8793331B2 (en) * | 2008-05-16 | 2014-07-29 | Wyse Technology L.L.C. | Multimedia redirection |
EP2131271A1 (en) * | 2008-06-04 | 2009-12-09 | NEC Corporation | Method for enabling a mobile user equipment to drag and drop data objects between distributed applications |
US8543935B2 (en) * | 2008-08-20 | 2013-09-24 | Red Hat, Inc. | Full-screen heterogeneous desktop display and control |
US8370856B2 (en) * | 2008-11-05 | 2013-02-05 | Fh Innovations, Ltd | Computer system with controller kernel and remote desktop |
US9135024B2 (en) * | 2008-11-30 | 2015-09-15 | Red Hat Israel, Ltd. | Playing multimedia content at remote graphics display client |
US20100169791A1 (en) * | 2008-12-31 | 2010-07-01 | Trevor Pering | Remote display remote control |
US9106696B2 (en) * | 2009-04-15 | 2015-08-11 | Wyse Technology L.L.C. | Method and apparatus for portability of a remote session |
US20110154214A1 (en) * | 2009-12-18 | 2011-06-23 | Microsoft Corporation | Offloading Content Retrieval And Decoding In Pluggable Content-Handling Systems |
CN102148842B (zh) * | 2010-02-08 | 2014-06-04 | 联想(北京)有限公司 | 一种远程桌面体系的音频处理方法和设备 |
WO2012072651A1 (en) * | 2010-11-29 | 2012-06-07 | Dvdperplay Sa | Method and collaboration system |
US9767195B2 (en) * | 2011-04-21 | 2017-09-19 | Touchstream Technologies, Inc. | Virtualized hosting and displaying of content using a swappable media player |
US8904289B2 (en) * | 2011-04-21 | 2014-12-02 | Touchstream Technologies, Inc. | Play control of content on a display device |
US9130899B1 (en) | 2011-04-27 | 2015-09-08 | Cisco Technology, Inc. | Integrated user interface for unified communications applications |
US20120284632A1 (en) * | 2011-05-06 | 2012-11-08 | Cisco Technology, Inc. | Integrated Rendering of Streaming Media in Virtualized Desktop Environment |
WO2011157180A2 (zh) * | 2011-06-03 | 2011-12-22 | 华为技术有限公司 | 一种在线应用处理方法、装置及系统 |
US9225763B2 (en) * | 2011-06-07 | 2015-12-29 | Cisco Technology, Inc. | Distributed overlay browser for transparent streaming media support in virtualized desktop environment |
US10976981B2 (en) * | 2011-07-15 | 2021-04-13 | Vmware, Inc. | Remote desktop exporting |
US10298642B2 (en) | 2016-02-17 | 2019-05-21 | Quickbiz Holdings Limited, Apia | User interface content state synchronization across devices |
US11750673B2 (en) | 2011-08-01 | 2023-09-05 | Spring Design, Inc. | User interface content state synchronization across devices |
WO2013016949A1 (en) * | 2011-08-01 | 2013-02-07 | Quickbiz Holdings Limited | User interface content state synchronization across devices |
US9250928B2 (en) * | 2011-10-18 | 2016-02-02 | Mcafee, Inc. | Cooperative mobile analytics |
TWI451268B (zh) | 2011-11-08 | 2014-09-01 | Inst Information Industry | 提供虛擬桌面之雲端系統、於虛擬桌面播放多媒體之方法以及其電腦可讀取記錄媒體 |
US9467305B2 (en) | 2012-03-07 | 2016-10-11 | Vmware, Inc. | Multitenant access to multiple desktops on host machine partitions in a service provider network |
US9055139B1 (en) | 2012-03-12 | 2015-06-09 | Cisco Technology, Inc. | Display protocol interception in the network for services and network-based multimedia support for VDI |
KR101325840B1 (ko) * | 2012-03-13 | 2013-11-05 | 주식회사 팬택 | 싱크 장치를 관리하는 방법, 이를 위한 소스 장치 및 무선랜 시스템 |
JP5620434B2 (ja) * | 2012-05-02 | 2014-11-05 | 株式会社オプティム | オペレータシステム、オペレータサーバ、リモートサポート方法、オペレータサーバ用プログラム、サポート対象電化製品、及び、サポート作業画面表示装置 |
EP2847679A2 (en) * | 2012-05-06 | 2015-03-18 | Citrix Systems, Inc. | System and method for monitoring and selectively sharing an image in an image library |
US9798508B2 (en) * | 2012-07-16 | 2017-10-24 | Microsoft Technology Licensing, Llc | Implementing previously rendered frame buffer information in a customized GUI display |
US20140075377A1 (en) * | 2012-09-10 | 2014-03-13 | Samsung Electronics Co. Ltd. | Method for connecting mobile terminal and external display and apparatus implementing the same |
JP6221214B2 (ja) * | 2012-09-26 | 2017-11-01 | 富士通株式会社 | システム、端末装置および画像処理方法 |
EP2738721A1 (de) * | 2012-11-28 | 2014-06-04 | Deutsche Telekom AG | Verfahren und System zur Präsentation bei kollaborativer Zusammenarbeit |
DE112013006337T5 (de) * | 2013-01-31 | 2015-09-10 | Hewlett-Packard Development Company, L.P. | Remoteclientanwendung |
CN104053015A (zh) * | 2013-03-11 | 2014-09-17 | 中兴通讯股份有限公司 | 一种传输媒体数据的方法及虚拟桌面服务器 |
US20140298182A1 (en) * | 2013-04-01 | 2014-10-02 | Infosys Limited | Centralized administration tool for operating with existing host system having non-centralized administrative functions |
EP3012739A1 (en) * | 2014-10-20 | 2016-04-27 | TISOFT Wojciech Jedrzejewski | System for synchronizing web browsers |
US20170046013A1 (en) * | 2015-08-14 | 2017-02-16 | Microsoft Technology Licensing, Llc | Web-browser based desktop and application remoting solution |
CN106339193B (zh) * | 2016-08-31 | 2020-06-09 | 武汉三好教育科技股份有限公司 | 一种无线手持交互方法及手持交互式多媒体系统 |
US10592227B2 (en) * | 2016-09-16 | 2020-03-17 | Oracle International Corporation | Versioned intelligent offline execution of software configuration automation |
US10673801B2 (en) * | 2017-11-29 | 2020-06-02 | International Business Machines Corporation | Dynamic communication session management |
US10581939B2 (en) * | 2018-01-26 | 2020-03-03 | Citrix Systems, Inc. | Virtual computing system providing local screen sharing from hosted collaboration applications and related methods |
US10819817B2 (en) * | 2019-02-04 | 2020-10-27 | Dell Products L.P. | HTML5 multimedia redirection |
US11032157B2 (en) * | 2019-05-16 | 2021-06-08 | Microsoft Technology Licensing, Llc | Adaptable real-time communications plugin for virtual desktop infrastructure solutions |
US11487559B2 (en) | 2019-10-07 | 2022-11-01 | Citrix Systems, Inc. | Dynamically switching between pointer modes |
US10887633B1 (en) * | 2020-02-19 | 2021-01-05 | Evercast, LLC | Real time remote video collaboration |
US11457483B2 (en) | 2020-03-30 | 2022-09-27 | Citrix Systems, Inc. | Managing connections between a user device and peripheral devices |
KR102551470B1 (ko) | 2022-11-18 | 2023-07-05 | 조정원 | 건물의 실내에서 소금을 제조하는 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060069797A1 (en) | 2004-09-10 | 2006-03-30 | Microsoft Corporation | Systems and methods for multimedia remoting over terminal server connections |
US20070124737A1 (en) | 2005-11-30 | 2007-05-31 | Ava Mobile, Inc. | System, method, and computer program product for concurrent collaboration of media |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5452435A (en) | 1993-03-31 | 1995-09-19 | Kaleida Labs, Inc. | Synchronized clocks and media players |
US5596696A (en) | 1993-05-10 | 1997-01-21 | Object Technology Licensing Corp. | Method and apparatus for synchronizing graphical presentations |
US5574934A (en) | 1993-11-24 | 1996-11-12 | Intel Corporation | Preemptive priority-based transmission of signals using virtual channels |
US5831609A (en) | 1994-06-17 | 1998-11-03 | Exodus Technologies, Inc. | Method and system for dynamic translation between different graphical user interface systems |
SG82587A1 (en) * | 1997-10-21 | 2001-08-21 | Sony Corp | Recording apparatus, recording method, playback apparatus, playback method, recording/playback apparatus, recording/playback method, presentation medium and recording medium |
US6412031B1 (en) | 1998-02-10 | 2002-06-25 | Gateway, Inc. | Simultaneous control of live video device access by multiple applications via software locks and in accordance with window visibility of applications in a multiwindow environment |
US6448980B1 (en) * | 1998-10-09 | 2002-09-10 | International Business Machines Corporation | Personalizing rich media presentations based on user response to the presentation |
TW392111B (en) * | 1998-12-16 | 2000-06-01 | Mustek Systems Inc | Sharing system for sharing peripheral device via network |
US7178106B2 (en) * | 1999-04-21 | 2007-02-13 | Sonic Solutions, A California Corporation | Presentation of media content from multiple media sources |
US6701383B1 (en) * | 1999-06-22 | 2004-03-02 | Interactive Video Technologies, Inc. | Cross-platform framework-independent synchronization abstraction layer |
US6615199B1 (en) | 1999-08-31 | 2003-09-02 | Accenture, Llp | Abstraction factory in a base services pattern environment |
US6687745B1 (en) * | 1999-09-14 | 2004-02-03 | Droplet, Inc | System and method for delivering a graphical user interface of remote applications over a thin bandwidth connection |
JP2003513538A (ja) * | 1999-10-22 | 2003-04-08 | アクティブスカイ,インコーポレイテッド | オブジェクト指向ビデオシステム |
US6389467B1 (en) * | 2000-01-24 | 2002-05-14 | Friskit, Inc. | Streaming media search and continuous playback system of media resources located by multiple network addresses |
US6466939B1 (en) | 2000-03-31 | 2002-10-15 | Microsoft Corporation | System and method for communicating video data in a digital media device |
US20020019843A1 (en) * | 2000-04-26 | 2002-02-14 | Killian Robert T. | Multiprocessor object control |
EP1158740B1 (en) * | 2000-05-24 | 2009-09-16 | Sony Deutschland GmbH | Quality of Service negotiation |
AU2001266820A1 (en) * | 2000-06-09 | 2001-12-17 | The Trustees Of Columbia University In The City Of New York | Distributed computer system using a graphical user interface toolkit |
US6738356B1 (en) | 2000-08-10 | 2004-05-18 | Convedia Corporation | Object oriented video merging system |
US20020129359A1 (en) * | 2000-11-27 | 2002-09-12 | Lichner Randall Manton | Cross platform system and method for the management and distribution of pay per view video on demand |
US7200855B2 (en) * | 2001-05-24 | 2007-04-03 | Vixs Systems, Inc. | Method and apparatus of multiplexing a plurality of channels in a multimedia system |
US7116894B1 (en) * | 2002-05-24 | 2006-10-03 | Digeo, Inc. | System and method for digital multimedia stream conversion |
US20040010560A1 (en) * | 2002-07-10 | 2004-01-15 | Sandage David A. | Method and apparatus to transmit infrared signals generated from a computer application using a remote device |
FR2843516B1 (fr) * | 2002-08-12 | 2004-12-24 | France Telecom | Procede de diffusion en temps reel de fichiers multimedias au cours d'une visioconference, sans rupture de communication, et interface homme-machine pour la mise en oeuvre |
US6909878B2 (en) * | 2002-08-20 | 2005-06-21 | Ixi Mobile (Israel) Ltd. | Method, system and computer readable medium for providing an output signal having a theme to a device in a short distance wireless network |
TW200411465A (en) * | 2002-11-19 | 2004-07-01 | Xepa Corp | An accounting and management system for self-provisioning digital services |
US20040128548A1 (en) * | 2002-12-31 | 2004-07-01 | Honeywell International Inc. | Generic communication server engine |
US8291009B2 (en) * | 2003-04-30 | 2012-10-16 | Silicon Graphics International Corp. | System, method, and computer program product for applying different transport mechanisms for user interface and image portions of a remotely rendered image |
US7729919B2 (en) * | 2003-07-03 | 2010-06-01 | Microsoft Corporation | Combining use of a stepwise markup language and an object oriented development tool |
US7613767B2 (en) * | 2003-07-11 | 2009-11-03 | Microsoft Corporation | Resolving a distributed topology to stream data |
US7574514B2 (en) * | 2003-09-30 | 2009-08-11 | Sharp Laboratories Of America, Inc. | Systems and methods for identifying original streams of media content |
KR100969966B1 (ko) * | 2003-10-06 | 2010-07-15 | 디즈니엔터프라이지즈,인크. | 비디오 플레이어의 재생 및 특징을 제어하는 방법 및 시스템 |
US8196044B2 (en) * | 2004-01-05 | 2012-06-05 | Microsoft Corporation | Configuration of user interfaces |
WO2005103929A1 (en) * | 2004-04-20 | 2005-11-03 | Pluck Corporation | Method, system, and computer program product for sharing information within a global computer network |
US8869043B2 (en) * | 2004-06-07 | 2014-10-21 | Avaya Inc. | System for presenting applications on instant messaging clients |
US8103546B1 (en) * | 2004-08-16 | 2012-01-24 | Lightningcast Llc | Advertising content delivery |
WO2006055921A2 (en) | 2004-11-19 | 2006-05-26 | Tivo Inc. | Method and apparatus for secure transfer and playback of multimedia content |
US20060111971A1 (en) * | 2004-11-24 | 2006-05-25 | Microsoft Corporation | System and method for on-line and off-line advertising in content delivered to a display screen |
US20060282855A1 (en) * | 2005-05-05 | 2006-12-14 | Digital Display Innovations, Llc | Multiple remote display system |
WO2007027154A1 (en) * | 2005-08-31 | 2007-03-08 | Encentuate Pte Ltd | Fortified authentication on multiple computers using collaborative agents |
US20070074258A1 (en) * | 2005-09-20 | 2007-03-29 | Sbc Knowledge Ventures L.P. | Data collection and analysis for internet protocol television subscriber activity |
US8150960B2 (en) | 2005-11-23 | 2012-04-03 | Microsoft Corporation | Event forwarding |
CN101346739B (zh) * | 2005-12-24 | 2017-10-13 | 富媒体俱乐部有限责任公司 | 通过电子网络创建、分发和跟踪广告的系统和方法 |
US10380602B2 (en) * | 2005-12-24 | 2019-08-13 | Rich Media Club, Llc | System and method for creation, distribution and tracking of advertising via electronic networks |
US11004090B2 (en) * | 2005-12-24 | 2021-05-11 | Rich Media Club, Llc | System and method for creation, distribution and tracking of advertising via electronic networks |
US20070271338A1 (en) | 2006-05-18 | 2007-11-22 | Thomas Anschutz | Methods, systems, and products for synchronizing media experiences |
US20080007651A1 (en) * | 2006-06-23 | 2008-01-10 | Broadcom Corporation, A California Corporation | Sub-frame metadata distribution server |
WO2008018860A1 (en) | 2006-08-07 | 2008-02-14 | Digital Display Innovation, Llc | Multiple remote display system |
US20080134012A1 (en) * | 2006-11-30 | 2008-06-05 | Sony Ericsson Mobile Communications Ab | Bundling of multimedia content and decoding means |
US20120022915A1 (en) * | 2007-10-23 | 2012-01-26 | Pierre Carion | Method and system for collection and use of wireless application activity information |
EP2232365A4 (en) * | 2007-12-10 | 2013-07-31 | Deluxe Digital Studios Inc | METHOD AND SYSTEM FOR USE IN COORDINATING MULTIMEDIA DEVICES |
US8433812B2 (en) * | 2008-04-01 | 2013-04-30 | Microsoft Corporation | Systems and methods for managing multimedia operations in remote sessions |
-
2008
- 2008-04-01 US US12/060,620 patent/US8433812B2/en active Active
-
2009
- 2009-03-06 CN CN200980112501.6A patent/CN101981558B/zh active Active
- 2009-03-06 MX MX2010010520A patent/MX2010010520A/es active IP Right Grant
- 2009-03-06 WO PCT/US2009/036409 patent/WO2009154816A2/en active Application Filing
- 2009-03-06 KR KR1020107021671A patent/KR101596530B1/ko active IP Right Grant
- 2009-03-06 EP EP09767129A patent/EP2274682A4/en not_active Withdrawn
- 2009-03-06 RU RU2010140138/08A patent/RU2504829C2/ru active
-
2013
- 2013-04-30 US US13/874,126 patent/US20130275495A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060069797A1 (en) | 2004-09-10 | 2006-03-30 | Microsoft Corporation | Systems and methods for multimedia remoting over terminal server connections |
US20070124737A1 (en) | 2005-11-30 | 2007-05-31 | Ava Mobile, Inc. | System, method, and computer program product for concurrent collaboration of media |
Also Published As
Publication number | Publication date |
---|---|
EP2274682A2 (en) | 2011-01-19 |
RU2504829C2 (ru) | 2014-01-20 |
CN101981558B (zh) | 2014-03-05 |
MX2010010520A (es) | 2010-10-25 |
CN101981558A (zh) | 2011-02-23 |
WO2009154816A2 (en) | 2009-12-23 |
US20130275495A1 (en) | 2013-10-17 |
KR20110007114A (ko) | 2011-01-21 |
EP2274682A4 (en) | 2012-08-22 |
RU2010140138A (ru) | 2012-04-10 |
US20090248802A1 (en) | 2009-10-01 |
WO2009154816A3 (en) | 2010-02-18 |
US8433812B2 (en) | 2013-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101596530B1 (ko) | 원격 세션에서의 멀티미디어 동작을 관리하는 시스템 및 방법 | |
US7590750B2 (en) | Systems and methods for multimedia remoting over terminal server connections | |
RU2332706C2 (ru) | Определение распределенной топологии для потоковой передачи данных | |
KR101120796B1 (ko) | 세션 기술 메시지 확장 | |
KR101490548B1 (ko) | 실시간 커널 | |
US7890985B2 (en) | Server-side media stream manipulation for emulation of media playback functions | |
JP5005895B2 (ja) | インバンド制御情報を伝送するためのストラテジー | |
RU2389067C2 (ru) | Системы и способы для проецирования содержимого с компьютерных устройств | |
JP4425577B2 (ja) | データを提示する方法 | |
US20050089035A1 (en) | Methods and systems for self-describing multicasting of multimedia presentations | |
CN102158553A (zh) | 用于远程桌面的播放多媒体文件的方法和装置 | |
KR20050031866A (ko) | 원격 장치 매체 능력을 판정하는 시스템 및 방법 | |
CN114040232A (zh) | 投屏系统、方法、电子设备和存储介质 | |
JP2007509573A (ja) | リアルタイム制御プロトコル(rtcp)のメッセージへのセッション記述のメッセージの埋め込み | |
WO2022199484A1 (zh) | 一种媒体播放方法、装置和电子设备 | |
CN117278709A (zh) | 音视频通话的调整方法、调整装置、ar设备和存储介质 | |
Westerink et al. | A high level flexible framework for building multi-platform multi-media streaming applications | |
AU2003259937A1 (en) | Resolving a distributed topology to stream data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
N231 | Notification of change of applicant | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190116 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20200115 Year of fee payment: 5 |