KR20110007114A - 원격 세션에서의 멀티미디어 동작을 관리하는 시스템 및 방법 - Google Patents

원격 세션에서의 멀티미디어 동작을 관리하는 시스템 및 방법 Download PDF

Info

Publication number
KR20110007114A
KR20110007114A KR1020107021671A KR20107021671A KR20110007114A KR 20110007114 A KR20110007114 A KR 20110007114A KR 1020107021671 A KR1020107021671 A KR 1020107021671A KR 20107021671 A KR20107021671 A KR 20107021671A KR 20110007114 A KR20110007114 A KR 20110007114A
Authority
KR
South Korea
Prior art keywords
media
client
server
platform
computer
Prior art date
Application number
KR1020107021671A
Other languages
English (en)
Other versions
KR101596530B1 (ko
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 KR20110007114A publication Critical patent/KR20110007114A/ko
Application granted granted Critical
Publication of KR101596530B1 publication Critical patent/KR101596530B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • 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/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • 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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/10Office automation; Time management
    • 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/40Support for services or applications
    • H04L65/401Support 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/4015Support 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/4143Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a Personal Computer [PC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/363Graphics 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)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

터미널 서비스 시나리오들에서 멀티미디어 전송을 관리하는 것에 관한 기법들이 기술되어 있다. 일례에서, 방법은 사용자 인터페이스 구성요소를 서버로부터 원격 클라이언트로 전송한다. 예시적인 방법은 또한 사용자 인터페이스 구성요소와 결합하여 원격 클라이언트 상에 프리젠테이션하기 위해 미디어 구성요소를 스트리밍하고, 미디어 프리젠테이션이 서버에 의해 추적되지만 디스플레이되지는 않는다.

Description

원격 세션에서의 멀티미디어 동작을 관리하는 시스템 및 방법{SYSTEMS AND METHODS FOR MANAGING MULTIMEDIA OPERATIONS IN REMOTE SESSIONS}
공동 작업 세션들을 포함할 수 있는 원격 세션은 로컬 컴퓨터와 원격 컴퓨터 간의 리모팅 경험(remoting experience)을 제공할 수 있다. 공동 작업은 원격 컴퓨터 상에 로컬 컴퓨터의 그래픽 사용자 인터페이스의 일부분 또는 그 전부의 모습을 재생성하는 것을 필요로 할 수 있다. 리모팅(remoting) 등의 하나 이상의 기법들을 사용하여 그래픽 사용자 인터페이스가 원격 컴퓨터 상에 재생성될 수 있다. 원격 컴퓨터 상에 최종적으로 재생성되는 공동 작업 세션들은 원격 컴퓨터에 재생성되는 로컬 컴퓨터의 일부분과 연관되어 있을 수 있는 하나 이상의 파라미터들에 의해 제어될 수 있다.
공동 작업 세션의 흔한 일례는 멀티미디어 파일들을 재생하는 미디어 동작들에 관련된 동작들일 수 있다. 이러한 세션들을 리모팅하는 기법들이 미디어 데이터를 로컬 컴퓨터로부터 원격 컴퓨터로 전송하는 것을 수반할 수 있다. 미디어 데이터는 재생되어야 하는 멀티미디어 파일들과 연관된 데이터, 처리 데이터, 렌더링 데이터, 기타를 포함할 수 있다. 미디어 데이터를 원격 컴퓨터로 리모팅함으로써 로컬 컴퓨터 상의 멀티미디어 파일들이 원격 컴퓨터 상에서 원격적으로 재생될 수 있다. 미디어 데이터가, 로컬 컴퓨터 상에 렌더링되는 대신에, 원격 컴퓨터 상에 렌더링된다.
요약
이 요약은 원격 세션들에서 멀티미디어 동작을 관리하는 개념들을 소개하기 위해 제공된 것이다. 이러한 개념들이 이하에서 상세한 설명에 더 기술되어 있다. 이 요약은 청구된 발명 대상의 필수적인 특징들을 확인하기 위한 것이 아니며, 청구된 발명 대상의 범위를 정하는 데 사용하기 위한 것도 아니다.
상세한 설명이 첨부 도면들을 참조하여 기술된다. 도면들에서, 참조 번호의 가장 왼쪽의 숫자(들)은 그 참조 번호가 처음으로 나타나는 도면을 나타낸다. 유사한 특징들 및 구성요소들을 참조하기 위해 도면들 전체에 걸쳐 동일한 번호들이 사용된다.
도 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)

  1. 실행될 때, 동작들을 수행하는 컴퓨터-실행가능 명령어들을 포함하는 컴퓨터-판독가능 저장 매체(610, 612, 614)로서,
    상기 동작들은,
    공동 작업 세션에서 서버(102) 상에서 지원되는 미디어 플랫폼(208)에 관련된 미디어 재생 명령을 수신하는 동작, 및
    상기 플랫폼-관련 미디어 재생 명령을 클라이언트(204)로 전송하기 위해 일반 미디어 재생 명령으로 변환하는 동작을 포함하는 컴퓨터-판독가능 저장 매체.
  2. 제1항에 있어서, 상기 동작들은,
    미디어 프리젠테이션 창에, 상기 클라이언트에서의 사용자 인터페이스를 제시하는 동작, 및
    상기 미디어 프리젠테이션 창에 대한 변경들을 추적하는 동작을 더 포함하는 컴퓨터-판독가능 저장 매체.
  3. 제1항에 있어서, 미디어 응용 프로그램이 사용자 인터페이스 구성요소 상에 미디어 프리젠테이션 창으로서 인스턴스화되고,
    상기 추적하는 동작은 상기 미디어 프리젠테이션 창에 고유 식별자를 할당하는 동작을 포함하며,
    상기 미디어 프리젠테이션 창이 상기 사용자 인터페이스 구성요소와 관련하여 배향될 수 있도록, 상기 미디어 프리젠테이션 창에 대한 변경들은 상기 클라이언트로 중계되는 컴퓨터-판독가능 저장 매체.
  4. 제1항에 있어서, 상기 동작들은,
    상기 공동 작업 세션에 의해 구축된 제1 네트워크 채널을 통해 명령들을 전송하는 동작, 및
    제2의 다른 채널을 통해 데이터를 스트리밍하는 동작을 더 포함하는 컴퓨터-판독가능 저장 매체.
  5. 제4항에 있어서, 상기 제2의 다른 채널은 상기 공동 작업 세션에 의해 구축되는 컴퓨터-판독가능 저장 매체.
  6. 제1항에 있어서, 상기 동작들은,
    상기 스트리밍하는 동작 이전에,
    미디어의 형식을 결정하는 동작, 및
    상기 형식으로 상기 미디어를 디코딩하여 렌더링할 상기 클라이언트의 용량(capacity)을 평가하는 동작을 더 포함하는 컴퓨터-판독가능 저장 매체.
  7. 제6항에 있어서, 상기 동작들은,
    상기 클라이언트가 기존의 형식으로 상기 미디어를 디코딩하여 렌더링할 용량이 부족한 경우, 상기 미디어를 디코딩하고 상기 클라이언트가 처리하도록 구성되어 있는 제2의 다른 형식으로 상기 미디어를 재인코딩하는 동작을 더 포함하는 컴퓨터-판독가능 저장 매체.
  8. 제1항에 있어서, 상기 동작들은,
    프리젠테이션 명령에 응답하여,
    상기 클라이언트와 가상 채널 연결을 구축하는 동작,
    소스 및 상기 클라이언트 둘다에 의해 지원되는 형식들을 협상하는(negotiating) 동작, 및
    상기 클라이언트에 의해 분산 토폴로지를 설정하는 동작을 더 포함하는 컴퓨터-판독가능 저장 매체.
  9. 제8항에 있어서, 상기 분산 토폴로지를 설정하는 동작은 상기 소스에서는 네트워크 송신기를, 상기 클라이언트에서는 네트워크 수신기를 삽입하는 동작을 포함하는 컴퓨터-판독가능 저장 매체.
  10. 서버(102)로서,
    사용자 인터페이스를 구성하는 그래픽들 및 이미지들을 포함하는 사용자 인터페이스 구성요소(220), 및
    상기 사용자 인터페이스 구성요소를 통해 재생될 미디어 프리젠테이션 데이터를 포함하는 미디어 구성요소(222)를 포함하며,
    플랫폼-관련 명령(platform specific command)이 원격 터미널 세션 클라이언트 상에서 지원되는 일반 미디어 재생 명령 또는 미디어 플랫폼으로 변환되는(translated) 서버.
  11. 제10항에 있어서, 상기 사용자 인터페이스 구성요소는 미디어 응용 프로그램 창을 포함하는 서버.
  12. 제11항에 있어서, 상기 미디어 구성요소는 상기 미디어 응용 프로그램 창 내의 미디어 프리젠테이션 대상 창에 제시되도록 구성되는 서버.
  13. 제12항에 있어서, 상기 미디어 응용 프로그램 창에 대해 상기 미디어 프리젠테이션 대상 창을 추적함으로써 상기 미디어 프리젠테이션 데이터가 추적되는 서버.
  14. 제13항에 있어서, 상기 추적하는 것은 상기 미디어 응용 프로그램 창에 대한 상기 미디어 프리젠테이션 대상 창의 상대 위치를 원격 클라이언트로 중계하는 것을 포함하는 서버.
  15. 제13항에 있어서, 상기 추적하는 것은 상기 미디어 프리젠테이션 대상 창을 나타내는 서버 데스크톱 상에 개체 틀(placeholder)을 삽입하는 것 및 상기 개체 틀에 영향을 미치는 임의의 변경들을 추적하는 것을 포함하는 서버.
  16. 제10항에 있어서, 어느 미디어 형식들이 원격 클라이언트에 의해 지원되는지를 확인하는 것을 더 포함하는 서버.
  17. 제10항에 있어서, 원격 클라이언트와 분산 토폴로지를 구축하는 것을 더 포함하는 서버.
  18. 제10항에 있어서, 전송하는 것 및 스트리밍하는 것이 터미널 서비스 세션에서 행해지는 서버.
  19. 시스템(100)으로서,
    공동 작업 세션에서 사용자-입력 미디어 재생 명령에 응답하여 발생되는 플랫폼-관련 미디어 재생 명령을 수신하는 메카니즘(502), 및
    상기 플랫폼-관련 미디어 재생 명령을 플랫폼 일반 미디어 재생 명령으로 추상화하는 메카니즘(504)
    을 포함하는 시스템.
KR1020107021671A 2008-04-01 2009-03-06 원격 세션에서의 멀티미디어 동작을 관리하는 시스템 및 방법 KR101596530B1 (ko)

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 true KR20110007114A (ko) 2011-01-21
KR101596530B1 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)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013514586A (ja) * 2009-12-18 2013-04-25 マイクロソフト コーポレーション プラグ着脱可能なコンテンツ操作システムにおける内容検索のオフローディングおよび復号化
KR101325840B1 (ko) * 2012-03-13 2013-11-05 주식회사 팬택 싱크 장치를 관리하는 방법, 이를 위한 소스 장치 및 무선랜 시스템
WO2021071563A1 (en) * 2019-10-07 2021-04-15 Citrix Systems, Inc. Dynamically switching between pointer modes
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 조정원 건물의 실내에서 소금을 제조하는 방법

Families Citing this family (49)

* Cited by examiner, † Cited by third party
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
US9870130B2 (en) * 2008-05-13 2018-01-16 Apple Inc. Pushing a user interface to a 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
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
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
US8375138B2 (en) * 2008-11-05 2013-02-12 Fh Innovations, Ltd Computer system with true video signals
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
CN102148842B (zh) * 2010-02-08 2014-06-04 联想(北京)有限公司 一种远程桌面体系的音频处理方法和设备
WO2012072651A1 (en) * 2010-11-29 2012-06-07 Dvdperplay Sa Method and collaboration system
US8904289B2 (en) * 2011-04-21 2014-12-02 Touchstream Technologies, Inc. Play control of content on a display device
US9767195B2 (en) 2011-04-21 2017-09-19 Touchstream Technologies, Inc. Virtualized hosting and displaying of content using a swappable media player
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
WO2013016949A1 (en) * 2011-08-01 2013-02-07 Quickbiz Holdings Limited User interface content state synchronization across devices
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
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
JP5620434B2 (ja) * 2012-05-02 2014-11-05 株式会社オプティム オペレータシステム、オペレータサーバ、リモートサポート方法、オペレータサーバ用プログラム、サポート対象電化製品、及び、サポート作業画面表示装置
IN2014DN09227A (ko) * 2012-05-06 2015-07-10 Citrix Online Llc
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
US10887633B1 (en) * 2020-02-19 2021-01-05 Evercast, LLC Real time remote video collaboration

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050053604A (ko) * 2002-08-12 2005-06-08 프랑스 텔레콤 비디오 회의 중 멀티미디어 파일을 실시간브로드캐스팅하는 방법, 및 이를 위한 인터페이스
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
WO2008018860A1 (en) * 2006-08-07 2008-02-14 Digital Display Innovation, Llc Multiple remote display system

Family Cites Families (50)

* Cited by examiner, † Cited by third party
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
KR20020064888A (ko) * 1999-10-22 2002-08-10 액티브스카이 인코포레이티드 객체 지향형 비디오 시스템
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
DE60042965D1 (de) * 2000-05-24 2009-10-29 Sony Deutschland Gmbh Dienstqualitätsunterhandlung
US20030182469A1 (en) * 2000-06-09 2003-09-25 Simon Lok 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
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
MXPA06003890A (es) * 2003-10-06 2006-07-03 Disney Entpr Inc Sistema y metodo de control de reproduccion y caracteristica para reproductores de video.
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
JP5059616B2 (ja) 2004-11-19 2012-10-24 ティヴォ インク マルチメディアコンテンツの安全な転送およびプレイバックのための方法および装置
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
AU2006331610C1 (en) * 2005-12-24 2013-09-26 Rich Media Club, Llc System and method for the creation, distribution and tracking of advertising via electronic networks
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
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
WO2009076474A2 (en) * 2007-12-10 2009-06-18 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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050053604A (ko) * 2002-08-12 2005-06-08 프랑스 텔레콤 비디오 회의 중 멀티미디어 파일을 실시간브로드캐스팅하는 방법, 및 이를 위한 인터페이스
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
WO2008018860A1 (en) * 2006-08-07 2008-02-14 Digital Display Innovation, Llc Multiple remote display system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013514586A (ja) * 2009-12-18 2013-04-25 マイクロソフト コーポレーション プラグ着脱可能なコンテンツ操作システムにおける内容検索のオフローディングおよび復号化
KR101325840B1 (ko) * 2012-03-13 2013-11-05 주식회사 팬택 싱크 장치를 관리하는 방법, 이를 위한 소스 장치 및 무선랜 시스템
WO2021071563A1 (en) * 2019-10-07 2021-04-15 Citrix Systems, Inc. Dynamically switching between pointer modes
US11487559B2 (en) 2019-10-07 2022-11-01 Citrix Systems, Inc. Dynamically switching between pointer modes
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 조정원 건물의 실내에서 소금을 제조하는 방법

Also Published As

Publication number Publication date
RU2504829C2 (ru) 2014-01-20
CN101981558B (zh) 2014-03-05
US20130275495A1 (en) 2013-10-17
KR101596530B1 (ko) 2016-02-22
RU2010140138A (ru) 2012-04-10
WO2009154816A3 (en) 2010-02-18
US8433812B2 (en) 2013-04-30
MX2010010520A (es) 2010-10-25
US20090248802A1 (en) 2009-10-01
CN101981558A (zh) 2011-02-23
WO2009154816A2 (en) 2009-12-23
EP2274682A2 (en) 2011-01-19
EP2274682A4 (en) 2012-08-22

Similar Documents

Publication Publication Date Title
KR101596530B1 (ko) 원격 세션에서의 멀티미디어 동작을 관리하는 시스템 및 방법
US7590750B2 (en) Systems and methods for multimedia remoting over terminal server connections
KR101490548B1 (ko) 실시간 커널
RU2332706C2 (ru) Определение распределенной топологии для потоковой передачи данных
KR101037263B1 (ko) 세션 기술 메시지 확장
US7421656B2 (en) Systems and methods for interacting with a user interface of a media player
US7844661B2 (en) Composition of local media playback with remotely generated user interface
RU2631137C2 (ru) Связывание устройств
US20050089035A1 (en) Methods and systems for self-describing multicasting of multimedia presentations
EP3055761B1 (en) Framework for screen content sharing system with generalized screen descriptions
US20070271388A1 (en) Server-side media stream manipulation for emulation of media playback functions
US20080005302A1 (en) Composition of local user interface with remotely generated user interface and media
US8127036B2 (en) Remote session media data flow and playback
US20080285939A1 (en) Proxy editing and rendering for various delivery outlets
US8954851B2 (en) Adding video effects for video enabled applications
US20080010482A1 (en) Remote control of a media computing device
CN111163330A (zh) 直播视频的渲染方法、装置、系统、设备及存储介质
US9762704B2 (en) Service based media player
WO2022199484A1 (zh) 一种媒体播放方法、装置和电子设备
US20220050702A1 (en) Virtualization for audio capture
Westerink et al. A high level flexible framework for building multi-platform multi-media streaming applications
CN117278709A (zh) 音视频通话的调整方法、调整装置、ar设备和存储介质

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