KR20050031866A - 원격 장치 매체 능력을 판정하는 시스템 및 방법 - Google Patents

원격 장치 매체 능력을 판정하는 시스템 및 방법 Download PDF

Info

Publication number
KR20050031866A
KR20050031866A KR1020040057647A KR20040057647A KR20050031866A KR 20050031866 A KR20050031866 A KR 20050031866A KR 1020040057647 A KR1020040057647 A KR 1020040057647A KR 20040057647 A KR20040057647 A KR 20040057647A KR 20050031866 A KR20050031866 A KR 20050031866A
Authority
KR
South Korea
Prior art keywords
remote
media
session
remote device
computer
Prior art date
Application number
KR1020040057647A
Other languages
English (en)
Inventor
슈메이커찰리스에이치
텡치아-치
비도스후그씨.
기브슨제이씨.
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20050031866A publication Critical patent/KR20050031866A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • 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/4782Web browsing, e.g. WebTV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/0015Control of image communication with the connected apparatus, e.g. signalling capability
    • H04N2201/0027Adapting to communicate with plural different types of apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/0065Converting image data to a format usable by the connected apparatus or vice versa

Abstract

네트워크 컴퓨팅 환경에서 매체 장치 능력 판정 메카니즘을 제공하는 시스템 및 방법이 제공된다. 오늘날의 소정의 운영 체계 및 애플리케이션은 원격 매체 소모 장치의 네트워크 에코시스템을 가능하게 하기 위해 한 세트의 원격조정 특징을 전달한다. 이들 장치는 호스트에 접속하여, 원격조정 프로토콜 및 기술을 통해 원격조정된 매체 경험을 표시한다. 이와 관련하여, 본 발명의 장치 능력 판정 메카니즘은 호스트에서 원격 장치로 원격조정되어야 하는 주문 세트의 매체 능력을 원격 장치가 지정할 수 있게 한다.

Description

원격 장치 매체 능력을 판정하는 시스템 및 방법{SYSTEMS AND METHODS FOR DETERMINING REMOTE DEVICE MEDIA CAPABILITIES}
본 발명은 하나의 컴퓨팅 장치로부터 원격 컴퓨팅 장치로의 매체 및 관련된 매체 서비스의 원격 제공에 관한 것이다. 더욱 구체적으로, 본 발명은 원격 장치들이 원격 컴퓨팅 세션의 목적을 위해 그들의 매체 능력을 선언하기 위한 프레임워크에 관한 것이다.
원격 컴퓨팅은 운영 체계 기반의 애플리케이션을 PC 및 비(non)-PC 데스크탑 상에서 실행되는 단말기 및 단말 에뮬레이터(emulator)에 공급하는 능력을 컴퓨팅 시스템에 제공한다. 이러한 환경은 애플리케이션 프로세싱이 주로 센트럴(central) 서버에서 발생하지만 또한 분산될 수도 있는 신-클라이언트(thin-client) 아키텍처일 수 있다. 이러한 애플리케이션으로의 억세스를 요청하는 클라이언트가 다수의 서로다른 데스크탑 플랫폼(매킨토시, UNIX, 기타)에서 이용가능하기 때문에, 서버는 가상의 임의의 데스크탑으로부터 애플리케이션으로의 억세스를 제공함으로써, 기업 및 소비자에게 똑같이 소유 총비용이 더욱 저렴한 그들의 컴퓨팅 환경으로의 확장을 제공한다.
예를 들어, 멀티포인트 컴퓨터 애플리케이션이라고 하는 한가지 유형의 원격 컴퓨팅은 한 사이트에서 실행되는 컴퓨터 애플리케이션 상으로의 뷰가 그외 다른 사이트로의 세션 내에서 광고될 수 있게 함으로써 컴퓨터간의 애플리케이션의 공유를 가능하게 한다. 그러한 통신은 미리 정해진 프로토콜에 의해 달성된다. 각 사이트는 특정 조건 하에서, 원격 키보드 및 포인팅 장치 정보와 같은 원격 입력을 보냄으로써 공유된 컴퓨터 애플리케이션의 제어를 할 수 있다. 그러므로, 단일의 애플리케이션 인스턴스의 원격 뷰잉 및 제어가 애플리케이션이 국부적으로 실행되고 있다는 착각을 제공할 수 있게 한다. 또한, "애플리케이션 공유" 원격 컴퓨팅의 몇몇 유형은 동일한 실행 컴퓨터 애플리케이션의 다수의 인스턴스의 다수의 사이트에서의 동기화에 대비한다. 세션은 일반적으로 세션 내에서 하나 이상의 애플리케이션을 공유하기 위해 프로토콜을 통해 협력하는 하나 이상의 클라이언트 엔티티 상에서 실행되는 오브젝트(들)을 포함한다. 이러한 프로토콜은 클라이언트 엔티티들 및 세션 사이에서의 상호작용을 정의한다. 터미널 서버 및 원격 데스크탑 프로토콜(Terminal Server and the Remote Desktop Protocol)은 예시적인 원격 컴퓨팅 환경을 가능하게 한다.
도 1a는 터미널 서버의 원격 컴퓨팅과 같은 원격 컴퓨팅이 서버와 클라이언트 사이에서 동작하는 방법을 일반적으로 도시한 것이다. 서버 S 및 클라이언트 C는 유선 또는 무선의 임의의 네트워크 접속 NC을 통해 통신한다. 애플리케이션 A는 서버 S에서 실행된다. 애플리케이션 A와 관련하여 실행될 수 있는 동작을 표시하는 사용자 인터페이스는 클라이언트 C에 전송된다. 그 다음, 사용자 인터페이스는 클라이언트 C 상에서, 예를 들어 디스플레이 D 상에 제공되거나 표시되고, 클라이언트 C의 사용자는 애플리케이션이 국부적으로 실행되고 있던 것처럼 서버 S와 관련된 동작을 실행할 수 있다. 애플리케이션 A에 관한 클라이언트 C로의 입력은 원격 컴퓨팅 서버 소프트웨어에 의해 수신된 RDP 또는 다른 프로토콜을 통해 서버 S에 다시 전송되고, 애플리케이션 A에 관한 동작은 클라이언트 C를 위해 서버 S 상에서 실행된다.
최근 10년 동안에, 호스트 PC의 매체 렌더링(rendering) 기능은 빠르게 발전되어 왔다. 게다가, 호스트 PC에 의해 제공될 수 있는 매체(오디오 및/또는 비디오)의 포맷 수는 증가되어 왔다. 다행히, 저장장치는 스트리밍 경험과 관련하여 저장되었든지, 디스크 상에 더욱 영구적으로 저장되었든지, 매체의 증가를 처리하기 위해 매체 데스크탑과 함께 발전되었다. 따라서, 원격 장치에 바람직한 현재의 호스트 PC의 매체 렌더링 능력을 갖는 것이 바람직하다.
공동으로 양도된 계류중인 미합중국 특허 출원 제XX/YYY,ZZZ호('ZZZ 출원)는 매체 경험을 원격조정하는 여러가지 기술을 개시하고 있다. 'ZZZ 출원에 설명된 바와 같이, 하나 이상의 원격 종점에 매체 경험을 신속하고 높은 품질로 전송하기 위한 컴퓨팅 장치간의 예시적인 상호동작은 도 1b에 도시되어 있으며 이하 설명된다.
도 1b는 매체를 원격 장치에 전송하기에 적합한 예시적인 오퍼레이팅 환경(200)의 하이-레벨 개요를 제공한다. 로컬 PC(201)는 사용자 인터페이스 컴포넌트(204) 및 매체 컴포넌트(206)를 포함하는 컴퓨팅 경험(202)을 도시하고 있다. 높은 품질의 컴퓨팅 경험(202)을 전송하기 위해, 사용자 인터페이스는 사용자 인터페이스 채널(210)을 통해 통신되고, 매체 컴포넌트(들)(206)은 매체 채널(208)을 통해 네트워크(211)를 경유하여 통신된다. 원격 컴포넌트(212)는 사용자 인터페이스 컴포넌트(204) 및 매체 컴포넌트(206)를 그들 각각의 채널을 통해 수신한다. 매체 및 사용자 인터페이스 컴포넌트는 원격 종점(213) 상에 컴퓨팅 경험(202)을 제공하기 위해 합성된다.
로컬 PC(201)는 컴퓨터(110)와 같은 종래의 PC뿐만 아니라 여러가지 기타 컴퓨팅 장치일 수 있다. 기타 예시적인 컴퓨팅 장치는 노트북 컴퓨터, 태블릿 PC 또는 서버를 포함한다. 로컬 PC(201)는 매체 컴포넌트(206)를 제공할 수 있는 소정의 소비자 전자 제품일 수 있다. 더욱 상세하게 후술되는 바와 같이, 로컬 PC(201)는 매체 프리젠테이션(presentation)을 원격으로 분산시키기 위한 컴포넌트와 관련하여 사용될 수 있다. 게다가, 로컬 PC(201)에 의해 가능해진 DRM 방식은 분산 매체 프리젠테이션에 적용될 수 있다.
양호한 실시예에서, 컴퓨팅 경험(202)은 PC(201)에서 국부적으로 관측될 수 있는 매체 경험이다. 그러나, 컴퓨팅 경험(202)은 단일의 인스턴스화(instantiation)에 한정되는 것으로 구성되어서는 안된다. 오히려, 본 발명은 각각 인스턴스화되어 각각의 종점에 의해 수신될 수 있는 다수의 컴퓨팅 경험(202)을 감안한 것이다. 컴퓨팅 경험(202)은 사용자 인터페이스 컴포넌트(204) 및 매체 컴포넌트(206)를 포함한다.
사용자 인터페이스 컴포넌트(204)는 사용자 인터페이스를 전형적으로 구성하는 그래픽 및 이미지를 포함한다. 사용자 인터페이스 컴포넌트(204)는 아이콘, 호스트 오디오, 배경 화상, 및 워드-프로세싱 애플리케이션, 스프레드시트 애플리케이션, 데이터베이스 애플리케이션 등과 같은 애플리케이션을 포함한다. 매체 컴포넌트가 아닌 가상의 임의의 컴포넌트는 사용자 인터페이스 컴포넌트(204)의 부분이다. 매체 플레이어 및 연관된 운영 체계 매체 컴포넌트는 사용자 인터페이스 컴포넌트(204)와 관련하여 이용된 소프트웨어의 예들이다.
매체 컴포넌트(206)는 매체 이벤트를 구성하는 매체-풍부(media-rich) 또는 대역폭-집약적(bandwidth-intensive) 구성요소들을 포함한다. 다음은 예시적인 매체 컴포넌트를 총망라한 리스트이다: 비디오 및/또는 오디오 프리젠테이션(들)을 포함하는 스트리밍 매체 프리젠테이션; 케이블 텔레비젼(CATV), 위성, 페이-퍼-뷰(payper-view) 또는 방송 프로그램을 포함하는 텔레비젼 프로그램; 디지털 압축 매체 경험; 라디오 프로그램; 녹음 매체 이벤트(VCR, DVD 플레이어, CD 플레이어, 개인용 비디오 레코더(PVR) 등에 의해 유도됨); 실시간 매체 이벤트; 카메라 피드(feed) 등.
그러므로, 재택 근무지에 위치한 로컬 PC(201)를 가진 사용자는 그 PC를 사용하여 거실의 텔레비젼(제1 원격 종점(213)) 상에서 인터넷으로부터의 스트리밍 비디오 프로그램을 볼 수 있다. 게다가, 동일한 PC를 사용하여, 아이는 로컬 PC(201) 상에 저장된 비디오를 다른 텔레비젼 세트(제2 원격 종점(213)) 상에서 동시에 볼 수 있다.
이러한 시나리오는 무수한 상황들로 확장될 수 있다는 것을 알기 바란다. 예를 들어, 제3 사용자는 제3 원격 종점(213)으로 원격조정되는 로컬 PC(201) 내로 입력된 카메라 피드를 동시에 주시할 수 있다. 제4 사용자는 로컬 PC(201)를 이용하여, 컴퓨팅 경험(202)의 제4 인스턴스화를 리모트해서, 원격조정된 텔레비젼 프로그램을 TV 튜너를 갖지않는 모니터 상에서 볼 수 있다.
사용자 인터페이스 채널(210)은 사용자 인터페이스 컴포넌트(204)를 원격 컴포넌트(212)에 통신시킨다. 워싱턴 레드몬드의 마이크로소프트사에 의해 제공된 터미널 서버 및 터미널 클라이언트 서비스는 예시적인 사용자 인터페이스 채널(210)을 제공한다. 임의의 원격가능 프로토콜은 사용자 인터페이스 채널(210)을 통해 데이터를 전송하는데 사용될 수 있다. 예시적인 프로토콜은 T-120 시리즈 프로토콜 및 HTTP(Hyper Text Transfer Protocol)을 포함한다.
매체 채널(208)은 사용자 인터페이스 채널(210)로부터 분리된다. 매체 채널(208)은 비디오 및 기타 상술된 것들과 같은 대역폭-집약적 경험을 전송하는데 사용된다. 매체 컴포넌트(206)는 데이터가 사용자 인터페이스 컴포넌트(204)로부터 분리되어 흐르게 하기 위한 통신관을 제공한다. 그러므로, 매체 컴포넌트(206)는 사용자 인터페이스 컴포넌트에 관한 대역을 벗어나서, 하지만 동기되어 보내진다. 매체 컴포넌트(206)를 통해 데이터를 전송하기 위한 예시적인 프로토콜은 TCP(Transmission Control Protocol)를 포함하는데, 이것에 제한되는 것은 아니다.
네트워크(211)는 임의의 통신 네트워크일 수 있는데, 근거리망(LAN)과 관련하여 설명된다. 오늘날, LAN은 이더넷, 전화선 네트워크, 전력선 네트워크 및 무선 네트워크르 포함하여 다양하게 제공된다. 무선(wireless) 네트워크는 무선(radio) 및 확산 스펙트럼 네트워크에 제한되지 않고, 802.11a, 802.11b 및 802.11g와 같은 프로토콜을 이용한다. 숙련된 기술자는 이것들을 용이하게 이해할 수 있을 것이고, 그외 다른 네트워크가 사용될 수도 있다.
상술된 각 시나리오에서, 사용자 인터페이스 컴포넌트(204)는 매체 컴포넌트(206)와 함께 각각의 원격 종점(213) 상에 표시된다. 이것은 원격 사용자가 로컬 PC(201)를 원격으로 동작시킬 수 있게 한다. 원격 사용자가 실행하고자 할 수 있는 전형적인 동작은 리플레이 윈도우의 리사이즈화 및 볼륨 및 화질의 조정과 같은 동작을 가능하게 하는 종래의 컴퓨터 명령뿐만 아니라 정지, 고속 감기 및 되감기와 같은 명령을 포함한다. 이론적으로, 원격 매체 장치가 표준인 경우, 원격 매체 장치의 사용자가 선택할 수 있는 입력 명령의 표준 세트를 갖게 할 수 있지만, 도 1c에 도시된 바와 같이, 원격 매체 장치 및 매체 유형은 다양한 그룹이다.
단지 예시적인 목적을 위해, 도 1c는 음악(MP3, WMV 등), 스트리밍 오디오/비디오, 사진(JPEGS, GIF 등), 영화 파일(MOV, MPEG 등), 광고, 방송 매체(라디오, TV, 케이블 등), 그래픽 데이터 등과 같은 여러 종류의 매체가 있다는 것을 도시한 것이다. 도 1c는 또한 소정의 목적을 위해 소정의 형식으로 매체를 제공하는 여러가지 장치가 있다는 것을 도시한 것이다. 이들 장치는 텔레비젼, 라디오, 튜너, DVD 플레이어, VCR, MP3 플레이어, 스마트 디스플레이 장치, 랩탑, 게임기, 원격 제어 장치, 셀 폰, PDA, 디지털 화상 프레임 등을 포함하는데, 이것에 제한되지는 않는다. 매체 유형과 장치 간의 예시적인 비제한 링크는 각 유형의 장치가 당해의 매체 유형을 제공하는 능력을 갖거나 갖지않을 수 있다는 것을 나타낸다. 그러므로, 원격 장치의 매체 렌더링 능력은 다양하다. 게다가, 한 장치가 특정 포맷을 제공하는 능력을 지원한다 하더라도, 호스트 장치에서 표시된 사용자 인터페이스 능력과 원격 장치에서 표시된 사용자 인터페이스의 능력 간에 여전히 차이가 있다. 호스트 장치에서 원격 장치로의 사용자 인터페이스 능력의 변환을 위한 사용자 인터페이스 추상화 계층을 갖는 것이 바람직하다.
예를 들어, MP3 플레이어는 비디오를 저장 또는 제공하거나, 하지 않을 수 있다. 랩탑은 다른 장치들보다 상당히 양호한 저장, 프로세싱 능력 및 해상도를 가질 수 있다. 범용 원격 장치는 특정 터치 스크린 능력을 가질 수 있다. 그러므로, 사용자는 선택 원격 장치의 매체 능력 면에서 알맞은 주문 포맷으로 사용자에게 익숙한 데스크탑 매체 경험을 자동으로 맞춘다는 점에서 이득을 얻을 수 있다. 현재, 개발자가 특정 장치에 관하여 목적을 달성하기 위한 유일 서버 소프트웨어 및 유일 클라이언트 소프트웨어를 하드와이어링하지 않으면, 이러한 능력은 존재하지 않는다.
그러므로, 원격 장치가 그 매체 렌더링 능력을 호스트 장치에 선언하기 위한 메카니즘 또는 프레임워크를 갖는 것이 바람직할 것이다. 더 나아가, 원격 장치의 사용자 인터페이스 능력들이 원격 장치의 매체 경험에 관련될 때 원격 장치가 그 사용자 인터페이스 능력을 호스트 장치에 선언하기 위한 메카니즘 또는 프레임워크를 갖는 것이 바람직하다. 따라서, 최소한 하나의 호스트 장치 및 하나 이상의 원격 장치를 포함하는 컴퓨팅 시스템 내의 매체에 능력들이 관련될 때 원격 장치가 능력들을 선언할 수 있게 하는 원격 컴퓨팅 메카니즘이 본 분야에 매우 필요하다.
상술된 본 분야의 단점을 고려하여, 본 발명은 네트워크 컴퓨팅 환경에서 매체 장치 능력 판정 메카니즘을 제공하는 시스템 및 방법을 제공한다. 현재의 운영 체계 및 애플리케이션 중의 일부는 원격 매체 소모 장치의 네트워크 에코시스템을 가능하게 하기 위해 한 세트의 원격조정 특징을 전달한다. 이들 장치는 호스트에 접속하여, 원격조정 프로토콜 및 기술을 통해 원격조정된 매체 경험을 표시한다. 이와 관련하여, 본 발명의 장치 능력 판정 메카니즘은 원격 매체 소모 장치가 호스트에서 원격 매체 소모 장치로 원격조정되어야 되는 매체 능력의 주문 세트를 지정할 수 있게 한다. 이 메카니즘은 동적이고 확장가능하다.
본 발명의 그외 다른 장점 및 특징은 후술된다.
본 발명에 따른 매체 능력을 선언하는 시스템 및 방법은 첨부된 도면을 참조하여 더욱 설명된다.
개요
소비자들이 그들의 컴퓨터와 상호작용하는 방식에 있어서의 최근의 개선사항은 집안 전체의 여러가지 장치(가정용 전자 원격 매체 장치, 스마트 디스플레이, 엑스박스(xBox), 포켓 PC, 휴대용 DVD 장치 등) 상에 오락 경험(TV, 음악, 비디오, 사진, DVD 등)을 전달하는 네트워크화 장치의 광범위한 에코시스템의 도입을 포함한다. 매체 경험이 원격조정되는 세션의 클래스동안 호스트 PC에 의해 가능해진 매체 경험을 최적화시키기 위해, 세션의 능력은 장치의 능력에 기초하여 알려져야 된다. 현재, 전형적인 원격 매체 장치, 스마트 디스플레이, 일반 TS 세션 등과 같은 장치들간의 차이는 잘 알려져 있다. 따라서, 상이한 세션 클래스는 상이한 원격 매체 세션을 요구한다. 시간이 지나서, 매체는 더욱 다양한 장치들(예를 들어, 엑스박스, 포켓 PC, 휴대용 DVD 플레이어 등)에 의해 원격으로 억세스될 것이다. 더욱 상세하게 후술되는 바와 같이, 본 발명의 장치 능력을 판정하는 메카니즘은 그러한 필요성을 충족시킨다.
상술된 바와 같이, 오늘날의 운영 체계 중의 Windows?? MCE(Media Center Edition)와 같은 운영 체계는 원격 매체 소모 장치의 에코시스템을 가능하게 하기 위해 풍부한 세트의 원격조정 특징을 전달한다. 이들 장치는 MCE PC와 같은 호스트에 접속하여, 터미널 서버 또는 기타 원격조정 기술을 통해 원격조정된 매체 경험을 표시한다. 이러한 에코시스템을 향상시키기 위해, 본 발명의 자동 장치 능력 선언 및 판정 메카니즘은 원격 장치에 리모트되어야 하는 주문 세트의 매체 능력 및 대응하는 UI를 원격 장치가 지정할 수 있게 한다.
예시적인 네트워크 및 분산 환경
본 분야에 숙련된 기술자는 본 발명이 컴퓨터 네트워크의 일부로서 전개될 수 있거나 또는 분산 컴퓨팅 환경 내에 있는 소정의 컴퓨터 또는 그외 다른 클라이언트 또는 서버 장치와 관련하여 구현될 수 있다는 것을 이해할 수 있을 것이다. 이와 관련하여, 본 발명은 본 발명에 따른 원격 매체 경험과 관련하여 사용될 수 있는 소정 수의 메모리 또는 저장 유닛, 및 소정 수의 저장 유닛 또는 볼륨 전반에서 발생하는 소정 수의 애플리케이션 및 프로세스를 갖는 소정의 컴퓨터 시스템 또는 환경에 적합하다. 본 발명은 원격 또는 로컬 저장장치를 갖는 네트워크 환경 또는 분산 컴퓨팅 환경에서 전개된 서버 컴퓨터 및 클라이언트 컴퓨터를 갖는 환경에 적용할 수 있다. 본 발명은 또한 원격 또는 로컬 서비스와 관련된 정보를 생성, 수신 및 송신하는 번역 및 실행 능력과 프로그래밍 언어 기능을 갖는 자립형 컴퓨팅 장치에 적용될 수 있다. 디지털 매체용 네트워크 소스가 저점 더 증가함에 따라, 본 발명은 특히 네트워크 또는 분산 컴퓨팅 환경에서 동작하는 컴퓨팅 장치들에 관련되므로, 본 발명에 따른 매체 능력 판정 기술은 이러한 환경에서 훨씬 효율적으로 적용될 수 있다.
분산 컴퓨팅은 컴퓨팅 장치와 시스템간의 교환에 의해 컴퓨터 자원 및 서비스의 공유를 제공한다. 이들 자원 및 서비스는 정보의 교환, 파일용 디스크 저장 및 캐시 저장을 포함한다. 분산 컴퓨팅은 네트워크 접속성의 이점을 취하여, 모든 기업에게 이익이 되도록 클라이언트들이 그들의 집합된 파워와 저장장치를 효율적으로 사용할 수 있게 한다. 이와 관련하여, 다양한 장치는 본 발명의 매체 능력 판정 프로세스를 포함할 수 있는 애플리케이션, 오브젝트 또는 자원을 가질 수 있다.
도 2a는 예시적인 네트워크 또는 분산 컴퓨팅 환경의 개략도를 제공한다. 분산 컴퓨팅 환경은 컴퓨팅 오브젝트(10a, 10b 등) 및 컴퓨팅 오브젝트 또는 장치(110a, 110b, 110c 등)를 포함한다. 오브젝트는 프로그램, 방법, 데이터 저장부, 프로그램가능 로직 등을 포함할 수 있다. 오브젝트는 PDA, 오디오/비디오 장치, MP3 플레이어, 퍼스널 컴퓨터 등과 같은 동일하거나 상이한 장치들의 부분을 포함할 수 있다. 각각의 오브젝트는 통신 네트워크(14)에 의해 다른 오브젝트와 통신할 수 있다. 이 네트워크는 도 2a의 시스템에 서비스를 제공하는 기타 컴퓨팅 오브젝트 및 컴퓨팅 장치를 포함할 수 있고, 다수의 상호접속된 네트워크를 나타낼 수 있다. 본 발명의 실시양상에 따라, 각각의 오브젝트(10a, 10b 등 또는 110a, 110b, 110c 등)는 본 발명에 따른 매체 능력 판정 프로세스의 사용을 요청하거나 그 프로세스를 사용하기 위해 API와 같은 인터페이스, 또는 그외 다른 오브젝트, 소프트웨어, 펌웨어 및/또는 하드웨어를 사용할 수 있는 애플리케이션을 포함할 수 있다.
또한, 오브젝트(110c)는 다른 컴퓨팅 장치(10a, 10b 등, 또는 110a, 110b 등) 상에서 호스트될 수 있다는 것을 알 수 있다. 그러므로, 도시된 물리적 환경이 접속 장치를 컴퓨터로 나타내었지만, 그러한 도시는 단지 예시적인 것이고, 물리적 환경은 PDA, 텔레비젼, MP3 플레이어 등과 같은 여러가지 디지털 장치, 인터페이스와 같은 소프트웨어 오브젝트, COM 오브젝트, 또는 매체 경험과 관련하여 이용될 수 있는 소정의 장치를 포함하는 것으로 대안적으로 도시되거나 설명될 수 있다.
분산 컴퓨팅 환경을 지원하는 여러가지 시스템, 컴포넌트 및 네트워크 구성형태가 있다. 예를 들어, 컴퓨팅 시스템은 유선 또는 무선 시스템에 의해, 로컬 네트워크 또는 널리 분산된 네트워크에 의해 함께 접속될 수 있다. 현재, 다수의 네트워크는 널리 분산된 컴퓨팅을 위한 기반구조를 제공하고 다수의 상이한 네트워크들을 포함하는 인터넷에 연결된다. 소정의 기반구조는 본 발명에 따른 원격 매체 경험(들)의 제공에 부수되어 발생되는 예시적인 통신을 위해 사용될 수 있다.
홈 네트워킹 환경에 있어서, 전력선, 데이터(무선 및 유선), 음성(예를 들어, 전화) 및 오락 매체와 같이, 유일한 프로토콜을 각각 지원할 수 있는 최소한 4개의 이종 네트워크 전달 매체가 있다. 조명 스위치 및 가전제품과 같은 대부분의 가정용 제어 장치는 접속을 위해 전력선을 사용할 수 있다. 데이터 서비스는 광대역(예를 들어, DSL 또는 케이블 모뎀)으로 가정으로 들어갈 수 있고, 무선(예를 들어, HomeRF 또는 802.11B) 또는 유선(예를 들어, HomePNA, Cat5, 이더넷, 심지어 전력선) 접속을 사용하여 가정 내로 억세스가능하다. 음성 트래픽은 유선(예를 들어, Cat3) 또는 무선(예를 들어, 셀 폰)으로 가정으로 들어갈 수 있고, Cat3 와이어링을 사용하여 가정 내로 분산될 수 있다. 오락 매체, 또는 기타 그래픽 데이터는 위성 또는 케이블을 통해 가정으로 들어갈 수 있고, 전형적으로 동축 케이블을 사용하여 가정 내에 분산된다. IEEE 1394 및 DVI는 또한 매체 장치의 클러스터용 디지털 상호접속이다. 이러한 모든 네트워크 환경, 및 프로토콜 표준으로서 출현할 수 있는 그밖의 것들은 인터넷에 의해 외부 세계에 접속될 수 있는 인트라넷과 같은 네트워크를 형성하기 위해 상호접속될 수 있다. 간략하게 말하자면, 여러가지 이종 소스들은 데이터의 저장 및 전송을 위해 존재하고, 따라서, 더 나아가 컴퓨팅 장치는 본 발명에 따른 매체 능력 선언 및 판정 메카니즘(들)의 사용을 요청하거나 그 메카니즘들을 사용하는 프로그램 오브젝트에 부수되어 억세스되거나 이용된 데이터와 같은 데이터를 공유하는 방식을 요구할 수 있다.
인터넷은 컴퓨터 네트워킹의 분야에서 널리 알려진 프로토콜의 TCP/IP 슈트를 이용하는 네트워크 및 게이트웨이의 모임을 통상적으로 일컫는 것이다. TCP/IP는 "Transmission Control Protocol/Internet Protocol"의 약어이다. 인터넷은 사용자가 네트워크(들)을 통해 상호작용하여 정보를 공유할 수 있게 하는 네트워킹 프로토콜을 실행하는 컴퓨터에 의해 상호접속된 지리적으로 분산된 원격 컴퓨터 네트워크의 시스템으로 설명될 수 있다. 이러한 광범위-확산 정보 공유때문에, 인터넷과 같은 원격 네트워크는 개발자들이 본질적으로 제한없이 특정 동작 또는 서비스를 실행하기 위한 소프트웨어 애플리케이션을 설계할 수 있는 오픈 시스템으로 더욱 널리 발전되어 왔다.
그러므로, 네트워크 기반구조는 클라이언트/서버, 피어 투 피어, 또는 하이브리드 아키텍처와 같은 네트워크 형태의 호스트를 가능하게 한다. "클라이언트"는 관련되지 않은 다른 클래스 또는 그룹의 서비스를 사용하는 한 클래스 또는 그룹의 구성원이다. 그러므로, 컴퓨팅 시에, 클라이언트는 프로세스이고, 즉 대체로, 다른 프로그램에 의해 제공된 서비스를 요청하는 한 세트의 명령어 또는 태스크이다. 클라이어트 프로세스는 기타 프로그램 또는 서비스 자체에 대한 소정의 동작 상세를 "알(know)" 필요없이 요청된 서비스를 이용한다. 클라이언트/서버 아키텍처, 특히 네트워킹된 시스템에서, 클라이언트는 통상적으로, 다른 컴퓨터, 예를 들어 서버에 의해 제공된 공유 네트워크 자원을 억세스하는 컴퓨터이다. 소정의 컴퓨터는 상황에 따라 클라이언트, 서버, 또는 둘다로 고려될 수 있다하더라도, 도 2a의 예에서, 컴퓨터(110a, 110b 등)는 클라이언트로 간주될 수 있고, 컴퓨터(10a, 10b 등)는 서버로 간주될 수 있으며, 여기에서 서버(10a, 10b 등)는 다음에 클라이언트 컴퓨터(110a, 110b 등) 내에 복사되는 데이터를 유지한다. 예를 들어, 컴퓨터(110a)는 MCE 호스트 PC일 수 있고, 컴퓨팅 장치(10a, 10b 등)는 원격 매체 소모 장치일 수 있다. 이들 중의 소정의 컴퓨팅 장치는 본 발명의 매체 능력 판정 메카니즘(들)을 포함할 수 있는 프로세싱 데이터 또는 요청 서비스 또는 태스크일 수 있다.
서버는 전형적으로 인터넷과 같은 원격 또는 로컬 네트워크를 통해 억세스가능한 원격 컴퓨터 시스템이다. 클라이언트 프로세스는 제1 컴퓨터 시스템에서 동작되고, 서버 프로세스는 제2 컴퓨터 시스템에서 동작되어, 통신 매체를 통해 서로 통신함으로써, 분산된 기능을 제공하고, 다수의 클라이언트들이 서버의 정보 수집 능력의 이점을 취할 수 있게 한다. 본 발명의 매체 능력 판정 기술에 따라 이용된 소정의 소프트웨어 오브젝트는 다수의 컴퓨팅 장치 또는 오브젝트 전반으로 분산될 수 있다.
클라이언트(들) 및 서버(들)은 프로토콜 계층(들)에 의해 제공된 기능을 이용하여 서로 통신한다. 예를 들어, HTTP(HyperText Transfer Protocol)는 WWW(World Wide Web) 또는 웹(Web)과 함께 사용되는 공통 프로토콜이다. 예를 들어, RDP는 원격 컴퓨팅에 이용된 공통 프로토콜이다. 전형적으로, 인터넷 프로토콜(IP) 어드레스와 같은 컴퓨터 네트워크 어드레스, 또는 URL(Universal Resource Locator)와 같은 기타 참조는 서로에 대해 서버 또는 클라이언트 컴퓨터를 식별하는데 사용될 수 있다. 네트워크 어드레스는 URL 어드레스로서 칭해질 수 있다. 통신은 통신 매체를 통해 제공될 수 있는데, 예를 들어 클라이언트(들) 및 서버(들)은 대용량 통신을 위한 TCP/IP 접속(들)을 통해 서로 연결될 수 있다.
그러므로, 도 2a는 본 발명이 사용될 수 있는 예시적인 네트워크 또는 분산 환경을 도시한 것으로, 서버는 네트워크/버스를 통해 클라이언트 컴퓨터와 통신한다. 더욱 상세하게, 다수의 서버(10a, 10b 등)는 본 발명에 따라, LAN, WAN, 인트라넷, 인터넷 등일 수 있는 통신 네트워크/버스(14)를 통해, 휴대용 컴퓨터, 핸드헬드 컴퓨터, 신 클라이언트, 네트워크된 가전제품, 또는 VCR, TV, 오븐, 조명, 히터 등과 같은 기타 장치와 같은 다수의 클라이언트 또는 원격 컴퓨팅 장치(110a, 110b, 110c, 110d, 110e 등)와 상호접속된다. 그러므로, 본 발명은 소정의 컴퓨팅 장치가 저장장치, 사용자 인터페이스, 렌더링 등으로 될 때 유일한 매체 능력을 갖는 소정의 컴퓨팅 장치에 적용될 수 있다는 것이 고려된다.
통신 네트워크/버스(14)가 인터넷인 네트워크 환경에서, 예를 들어, 서버(10a, 10b 등)는 클라이언트(110a, 110b, 110c, 110d, 110e 등)가 HTTP와 같은 다수의 공지된 프로토콜 중 임의의 프로토콜을 통해 통신하는 웹 서버일 수 있다. 서버(10a, 10b 등)는 또한 분산 컴퓨팅 환경의 특성일 수 있는 것처럼 클라이언트(110a, 110b, 110c, 110d, 110e 등)로서 작용할 수 있다.
통신은 적절한 경우에 유선 또는 무선일 수 있다. 클라이언트 장치(110a, 110b, 110c, 110d, 110e 등)는 통신 네트워크/버스(14)를 통해 통신하거나 하지 않을 수 있으며, 이들과 연관된 독립된 통신을 가질 수도 있다. 예를 들어, TV 또는 VCR의 경우에, 그것의 제어에 대한 네트워크 양상이 있거나 또는 없을 수 있다. 각각의 클라이언트 컴퓨터(110a, 110b, 110c, 110d, 110e 등) 및 서버(10a, 10b 등)는 여러가지 응용 프로그램 모듈 또는 오브젝트(135)가 구비될 수 있고, 파일 또는 데이터 스트림이 저장되거나, 또는 파일 또는 데이터 스트림의 부분(들)이 다운로드, 송신 또는 이동될 수 있는 여러가지 유형의 저장 소자 또는 오브젝트로의 접속 또는 억세스가 갖추어질 수 있다. 소정의 하나 이상의 컴퓨터(10a, 10b, 110a, 110b 등)는 본 발명에 따라 프로세스된 데이터를 저장하는 데이터베이스 또는 메모리(20)와 같은 데이터베이스(20) 또는 기타 저장 소자의 유지 및 갱신에 대해 책임이 있을 수 있다. 그러므로, 본 발명은 컴퓨터 네트워크/버스(14)를 억세스하여 상호작용할 수 있는 클라이언트 컴퓨터(110a, 110b 등) 및 클라이언트 컴퓨터(110a, 110b 등) 및 기타 유사 장치와 상호작용할 수 있는 서버 컴퓨터(10a, 10b 등), 및 데이터베이스(20)를 갖고있는 컴퓨터 네트워크 환경에서 이용될 수 있다.
예시적인 컴퓨팅 장치
도 2b 및 다음 설명은 본 발명이 실현될 수 있는 적절한 컴퓨팅 환경에 대한 간략한 일반적인 설명을 제공하고자 하는 것이다. 그러나, 핸드헬드, 휴대용 및 기타 컴퓨팅 장치들 및 모든 종류의 컴퓨팅 오브젝트들이 본 발명과 관련하여, 즉 컴퓨팅 환경내에서 매체가 경험될 수 있는 어느곳이나 사용될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이후 범용 컴퓨터가 예시적인 호스트로서 설명되지만, 이것은 한 예일 뿐이며, 본 발명은 네트워크/버스 상호운용성 및 상호작용을 갖고 있는 신 클라이언트로 실현될 수 있다. 그러므로, 본 발명은 매우 작거나 또는 최소한의 클라이언트 자원들이 관련되는 네트워크 호스트화 서비스의 환경, 예를 들어 클라이언트 장치가 단지, 하나의 장치 내에 배치된 하나의 오브젝트와 같은 네트워크/버스로의 인터페이스로서 작용하는 네트워크 환경에서 구현될 수 있다. 본질적으로, 데이터가 저장되거나 또는 데이터가 검색되나 다른 컴퓨터로 전송될 수 있는 임의의 장소는 본 발명에 따른 주문 매체 경험의 전달 동작을 위한 바람직하거나 적합한 환경이다.
요구되지는 않았지만, 본 발명은 장치 또는 오브젝트의 서비스 개발자에 의한 사용을 위해 운영 체계를 통해 구현될 수 있고/있거나, 본 발명에 따른 주문 매체 경험의 전달 또는 능력 선언의 수신과 관련하여 동작하는 응용 소프트웨어 내에 포함될 수 있다. 소프트웨어는 클라이언트 워크스테이션, 서버 또는 기타 장치와 같은 하나 이상의 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어들의 일반적인 문맥으로 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 실행하거나 특정 추상 데이터형을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 전형적으로, 프로그램 모듈의 기능은 여러가지 실시예에서 요구되는 대로 결합되거나 분산될 수 있다. 게다가, 본 분야에 숙련된 기술자들은 본 발명이 기타 컴퓨터 시스템 구성들 및 프로토콜들로 실시될 수 있다는 것을 이해할 수 있을 것이다. 본 발명과 함께 사용하기 위해 적합하게 될 수 있는 그밖의 널리 알려진 컴퓨팅 시스템, 환경 및/또는 구성들은 퍼스널 컴퓨터(PC), 현금 자동 입출금기(ATM), 서버 컴퓨터, 핸드-헬드 또는 랩탑 장치, 멀티-프로세서 시스템, 마이크로프로세서 기반의 시스템, 프로그램가능 소비자 전자제품, 네트워크 PC, 가전제품, 조명, 환경 제어 장치, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는데, 이것에 제한되지는 않는다. 본 발명은 또한 통신 네트워크/버스 또는 기타 데이터 송신 매체를 통해 링크되는 원격 프로세싱 장치에 의해 태스크가 실행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 포함하는 로컬내 및 원격 컴퓨터 저장 매체 내에 위치될 수 있고, 클라이언트 노드는 교대로 서버 노드로서 작동할 수 있다.
도 2b는 본 발명이 구현될 수 있는 적절한 컴퓨팅 시스템 환경(100)의 예를 도시한 것으로, 위에서 명백해진 바와 같이, 컴퓨팅 시스템 환경(100)은 단지 적절한 컴퓨팅 환경의 일 예이며, 본 발명의 사용 또는 기능의 범위에 제한을 가하도록 의도된 것은 아니다. 컴퓨팅 환경(100)은 예시적인 오퍼레이팅 환경(100)에 도시된 컴포넌트들 중의 임의의 하나 또는 조합에 관하여 임의의 종속성(dependency) 또는 요구사항(requirement)을 갖는 것으로 해석되어서는 안된다.
도 2b를 참조하면, 본 발명을 구현하기 위한 예시적인 시스템은 컴퓨터(110) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트는, 프로세싱 유닛(120), 시스템 메모리(130), 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트를 프로세싱 유닛(120)에 연결시키는 시스템 버스(121)가 포함될 수 있지만, 이에 한정되는 것은 아니다. 시스템 버스(121)는 다양한 버스 아키텍처 중의 임의의 것을 사용하는 로컬 버스, 주변 버스, 및 메모리 버스 또는 메모리 제어기를 포함하는 몇가지 유형의 버스 구조 중의 임의의 것일 수 있다. 예로서, 이러한 아키텍처는 산업 표준 아키텍처(ISA) 버스, 마이크로 채널 아키텍처(MCA) 버스, 인핸스드 ISA(Enhanced ISA; EISA) 버스, 비디오 일렉트로닉스 표준 어소시에이션(VESA) 로컬 버스, 및 (메자닌(Mezzanine) 버스로도 알려진) 주변 컴포넌트 상호접속(PCI) 버스를 포함하지만, 이에 한정되는 것은 아니다.
컴퓨터(110)는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(110)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있으며, 휘발성 및 비휘발성 매체, 분리형(removable) 및 비분리형(non-removable) 매체를 둘다 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만, 이에 한정되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 둘다 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광학 디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터(110)에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함할 수 있지만, 이에 한정되지 않는다. 통신 매체는 통상적으로 반송파 또는 기타 전송 메카니즘과 같은 변조된 데이터 신호에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하는 것과 같은 방식으로 설정되거나 변환된 하나 이상의 자체 특성을 갖는 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 상술한 것들 중의 임의의 조합은 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
시스템 메모리(130)는 ROM(131) 및 RAM(132)과 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동중과 같은 때에 컴퓨터(110) 내의 구성요소들간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(133; BIOS)은 일반적으로 ROM(131)에 저장된다. RAM(132)은 일반적으로 프로세싱 유닛(120)에 즉시 억세스될 수 있고 및/또는 프로세싱 유닛(120)에 의해 현재 작동되는 프로그램 모듈 및/또는 데이터를 포함한다. 예로서(한정하고자 하는 것은 아님), 도 2b는 운영 체계(134), 응용 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)를 도시한 것이다.
컴퓨터(110)는 또한 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 단지 예로서, 도 2b에는 비분리형 비휘발성 자기 매체로부터 판독하거나 그 자기 매체에 기록하는 하드 디스크 드라이브(141), 분리형 비휘발성 자기 디스크(152)로부터 판독하거나 그 자기 디스크에 기록하는 자기 디스크 드라이브(151), 및 CD-ROM 또는 기타 광학 매체와 같은 분리형 비휘발성 광학 디스크(156)로부터 판독하거나 그 광학 디스크에 기록하는 광학 디스크 드라이브(155)가 도시되어 있다. 예시적인 오퍼레이팅 환경에서 사용될 수 있는 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래쉬 메모리 카드, DVD, 디지털 비디오 테이프, 고체 RAM, 고체 ROM 등을 포함하지만 이에 한정되지 않는다. 하드 디스크 드라이브(141)는 일반적으로 인터페이스(140)와 같은 비분리형 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광학 디스크 드라이브(155)는 일반적으로 인터페이스(150)와 같은 분리형 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
앞서 기술되고 도 2b에 도시된 드라이브 및 그 관련 컴퓨터 저장 매체는 컴퓨터(110)를 위한 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터의 저장을 제공한다. 도 2b에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체계(144), 응용 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시된다. 이들 컴포넌트는 운영 체계(134), 응용 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일할 수도 있고 다를 수도 있다. 운영 체계(144), 응용 프로그램(145), 다른 프로그램 모듈(146), 및 프로그램 데이터(147)는 최소한 다른 복사본(different copies)임을 나타내기 위하여 다른 번호를 부여하였다. 사용자는 마우스, 트랙볼 또는 터치 패드라 불리우는 포인팅 장치(161) 및 키보드(162)와 같은 입력 장치를 통해 컴퓨터(110) 내로 명령 및 정보를 입력할 수 있다. (도시되지 않은) 기타 입력 장치는 마이크로폰, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 입력 장치 및 그외의 입력 장치는 시스템 버스(121)에 연결된 사용자 입력 인터페이스(160)를 통해 종종 프로세싱 유닛(120)에 접속되지만, 병렬 포트, 게임 포트 또는 유니버설 시리얼 버스(USB)와 같은 기타 인터페이스 및 버스 구조에 의해 접속될 수 있다. 노스브리지(Northbridge)와 같은 그래픽 인터페이스(182)가 또한 시스템 버스(121)에 접속될 수 있다. 노스브리지는 CPU, 또는 호스트 프로세싱 유닛(120)과 통신하는 칩세트(chipset)로서, AGP(Accelerated Graphics Port) 통신에 대한 책임을 진다. 하나 이상의 그래픽 프로세싱 유닛(GPU)(184)은 그래픽 인터페이스(182)와 통신할 수 있다. 이와 관련하여, GPU(184)는 일반적으로, 비디오 메모리(186)와 통신하는 GPU(184) 및 레지스터 저장장치와 같은 온칩 메모리 저장장치를 포함하는데, 본 발명의 응용 변수가 영향을 줄 수 있다. 그러나, GPU(184)는 코프로세서의 한 예일 뿐이므로, 여러가지 코프로세싱 장치가 컴퓨터(110) 내에 포함될 수 있고, 화소 및 정점 셰이더(shader)와 같은 여러가지 절차 셰이더를 포함할 수 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치는 또한, 비디오 메모리(186)와 교대로 통신할 수 있는 비디오 인터페이스(190)와 같은 인터페이스를 통해 시스템 버스(121)에 접속된다. 모니터(191) 외에도, 컴퓨터는 또한 출력 주변 인터페이스(195)를 통해 접속될 수 있는 스피커(197) 및 프린터(196)와 같은 기타 주변 출력 장치를 포함할 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용한 네트워크 또느 분산 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어(peer) 장치, 또는 기타 공통 네트워크 노드일 수 있으며, 비록 도 2b 에는 메모리 저장 장치(181)만이 도시되어 있지만, 컴퓨터(110)에 관하여 상술한 구성요소 중 다수 또는 모든 구성요소를 일반적으로 포함할 수 있다. 도 2b에 도시된 논리적 접속은 근거리 통신망(LAN; 171) 및 원거리 통신망(WAN; 173)을 포함하지만, 그 외의 네트워크/버스를 포함할 수도 있다. 이러한 네트워크 환경은 가정, 사무실, 기업 광역 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110)는 일반적으로 인터넷과 같은 WAN(173)을 통해 통신을 구축하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메카니즘을 통해 시스템 버스(121)에 접속될 수 있다. 네트워크 환경에서, 컴퓨터(110)에 관하여 도시된 프로그램 모듈 또는 그 일부분은 원격 메모리 저장 장치에 저장될 수 있다. 예로서(한정하고자 하는 것은 아님), 도 2b는 메모리 장치(181)에 상주하는 원격 응용 프로그램(185)을 도시한다. 도시된 네트워크 접속은 예시적인 것이며, 컴퓨터들간의 통신 링크를 구축하는 그 외의 수단이 사용될 수 있다.
예시적인 원격 장치
도 2c 및 다음 설명은 본 발명에 따른 원격 매체 장치에 적절한 컴퓨팅 환경에 대한 간략한 일반적인 설명을 제공하고자 하는 것이다. 그러나, 핸드헬드, 휴대용 및 기타 컴퓨팅 장치들 및 모든 종류의 컴퓨팅 오브젝트들이 본 발명과 관련하여, 즉 한 장치가 그 장치에 대한 주문 원격 매체 경험의 전달을 요청하고 싶어할 수 있는 어느곳이나 사용될 수 있다는 것을 이해할 수 있을 것이다. 매체 능력면에서의 이들 장치의 차이는 원격 매체 경험을 상이한 원격 장치들에 맞추는 중요한 장점을 갖는 본 발명을 사용하게 한다. 그러므로, 후술되는 범용 원격 컴퓨터는 한 예일 뿐이며, 본 발명은 네트워크/버스 상호운용성 및 상호작용을 갖고 있는 소정의 클라이언트로 구현될 수 있다. 그러므로, 본 발명은 매우 작거나 또는 최소한의 클라이언트 자원들이 관련되는 네트워크 호스트화 서비스의 환경, 예를 들어 클라이언트 장치가 단지, 하나의 장치 내에 배치된 하나의 오브젝트와 같은 네트워크/버스로의 인터페이스로서 작용하는 네트워크 환경에서 구현될 수 있다. 본질적으로, 데이터가 저장되거나 또는 데이터가 검색되거나 다른 컴퓨터로 전송될 수 있는 임의의 장소는 본 발명에 따른 원격 매체 경험 기술의 동작을 위한 바람직하거나 적합한 환경이다.
요구되지는 않았지만, 본 발명은 장치 또는 오브젝트의 서비스 개발자에 의한 사용을 위해 운영 체계를 통해 부분적으로 구현될 수 있고/있거나, 본 발명의 컴포넌트(들)과 관련하여 동작하는 응용 소프트웨어 내에 포함될 수 있다. 소프트웨어는 클라이언트 워크스테이션, 서버 또는 기타 장치와 같은 하나 이상의 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어들의 일반적인 문맥으로 기술될 수 있다. 본 분야에 숙련된 기술자들은 본 발명이 기타 컴퓨터 시스템 구성들 및 프로토콜들로 실시될 수 있다는 것을 이해할 수 있을 것이다.
도 2c는 본 발명이 구현될 수 있는 적절한 컴퓨팅 시스템 환경(100a)의 예를 도시한 것으로, 위에서 명백해진 바와 같이, 컴퓨팅 시스템 환경(100a)은 단지 원격 장치에 대한 적절한 컴퓨팅 환경의 일 예이며, 본 발명의 사용 또는 기능의 범위에 제한을 가하도록 의도된 것은 아니다. 컴퓨팅 시스템 환경(100a)은 예시적인 오퍼레이팅 환경(100a)에 도시된 컴포넌트들 중의 임의의 하나 또는 조합에 관하여 임의의 종속성 또는 요구사항을 갖는 것으로 해석되어서는 안된다.
도 2c를 참조하면, 본 발명을 구현하기 위한 예시적인 원격 장치는 컴퓨터(110a) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110a)의 컴포넌트는, 프로세싱 유닛(120a), 시스템 메모리(130a), 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트를 프로세싱 유닛(120a)에 연결시키는 시스템 버스(121a)가 포함될 수 있지만, 이에 한정되는 것은 아니다. 시스템 버스(121a)는 다양한 버스 아키텍처 중의 임의의 것을 사용하는 로컬 버스, 주변 버스, 및 메모리 버스 또는 메모리 제어기를 포함하는 몇가지 유형의 버스 구조 중의 임의의 것일 수 있다.
컴퓨터(110a)는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(110a)에 의해 억세스될 수 있는 임의의 이용가능한 매체일 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 둘다 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CDROM, DVD 또는 기타 광학 디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터(110a)에 의해 억세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함할 수 있지만, 이에 한정되지 않는다. 통신 매체는 통상적으로 반송파 또는 기타 전송 메카니즘과 같은 변조된 데이터 신호에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하는 것과 같은 방식으로 설정되거나 변환된 하나 이상의 자체 특성을 갖는 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속과 같은 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체와 같은 무선 매체를 포함하지만, 이에 한정되지 않는다. 상술한 것들 중의 임의의 조합은 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
시스템 메모리(130a)는 ROM 및/또는 RAM과 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함할 수 있다. 시동중과 같은 때에 컴퓨터(110) 내의 구성요소들간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(BIOS)은 메모리(130a) 내에 저장될 수 있다. 메모리(130a)는 일반적으로 프로세싱 유닛(120a)에 즉시 억세스될 수 있고 및/또는 프로세싱 유닛(120a)에 의해 현재 작동되는 프로그램 모듈 및/또는 데이터를 또한 포함한다. 예로서(한정하고자 하는 것은 아님), 메모리(130a)는 또한 운영 체계, 응용 프로그램, 기타 프로그램 모듈 및 프로그램 데이터를 포함할 수 있다.
컴퓨터(110a)는 또한 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터(110a)는 비분리형 비휘발성 자기 매체로부터 판독하거나 그 자기 매체에 기록하는 하드 디스크 드라이브, 분리형 비휘발성 자기 디스크로부터 판독하거나 그 자기 디스크에 기록하는 자기 디스크 드라이브, 및/또는 CD-ROM 또는 기타 광학 매체와 같은 분리형 비휘발성 광학 디스크로부터 판독하거나 그 광학 디스크에 기록하는 광학 디스크 드라이브를 포함할 수 있다. 예시적인 오퍼레이팅 환경에서 사용될 수 있는 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래쉬 메모리 카드, DVD, 디지털 비디오 테이프, 고체 RAM, 고체 ROM 등을 포함하지만 이에 한정되지 않는다. 하드 디스크 드라이브는 일반적으로 인터페이스와 같은 비분리형 메모리 인터페이스를 통해 시스템 버스(121a)에 접속되고, 자기 디스크 드라이브 또는 광학 디스크 드라이브는 일반적으로 인터페이스와 같은 분리형 메모리 인터페이스에 의해 시스템 버스(121a)에 접속된다.
사용자는 마우스, 트랙볼 또는 터치 패드라 불리우는 포인팅 장치 및 키보드와 같은 입력 장치를 통해 컴퓨터(110a) 내로 명령 및 정보를 입력할 수 있다. 기타 입력 장치는 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너 등을 포함할 수 있다. 이들 입력 장치 및 그외의 입력 장치는 시스템 버스(121a)에 연결된 사용자 입력(140a) 및 연관된 인터페이스(들)을 통해 종종 프로세싱 유닛(120a)에 접속되지만, 병렬 포트, 게임 포트 또는 유니버설 시리얼 버스(USB)와 같은 기타 인터페이스 및 버스 구조에 의해 접속될 수 있다. 그래픽 시스템이 또한 시스템 버스(121a)에 접속될 수 있다. 모니터 또는 다른 유형의 디스플레이 장치는 또한, 비디오 메모리와 교대로 통신할 수 있는 출력 인터페이스(150a)와 같은 인터페이스를 통해 시스템 버스(121a)에 접속된다. 모니터 외에도, 컴퓨터는 또한 출력 인터페이스(150a)를 통해 접속될 수 있는 스피커 및 프린터와 같은 기타 주변 출력 장치를 포함할 수 있다.
컴퓨터(110a)는 장치(110a)와 다른 매체 능력을 교대로 가질 수 있는 원격 컴퓨터(170a)와 같은 하나 이상의 기타 원격 컴퓨터들로의 논리적 접속을 이용한 네트워크 또는 분산 환경에서 동작할 수 있다. 원격 컴퓨터(170a)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 공통 네트워크 노드, 또는 임의의 기타 원격 매체 소모 또는 전송 장치일 수 있으며, 컴퓨터(110a)에 관하여 상술한 구성요소 중 임의의 또는 모든 구성요소를 포함할 수 있다. 도 2c에 도시된 논리적 접속은 LAN 또는 WAN과 같은 네트워크(171a)를 포함하지만, 그 외의 네트워크/버스를 포함할 수도 있다. 이러한 네트워크 환경은 가정, 사무실, 기업 광역 컴퓨터 네트워크, 인트라넷 및 인터넷에서 일반적인 것이다.
LAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110a)는 네트워크 인터페이스 또는 어댑터를 통해 LAN(171a)에 접속된다. WAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110a)는 일반적으로 인터넷과 같은 WAN을 통해 통신을 구축하기 위한 모뎀 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀은 사용자 입력 인터페이스(140a) 또는 기타 적절한 메카니즘을 통해 시스템 버스(121a)에 접속될 수 있다. 네트워크 환경에서, 컴퓨터(110a)에 관하여 도시된 프로그램 모듈 또는 그 일부분은 원격 메모리 저장 장치에 저장될 수 있다. 도시되고 설명된 네트워크 접속은 예시적인 것이며, 컴퓨터들간의 통신 링크를 구축하는 그 외의 수단이 사용될 수 있다.
예시적인 분산 컴퓨팅 프레임워크 또는 아키텍처
다양한 분산 컴퓨팅 프레임워크는 퍼스널 컴퓨팅 및 인터넷을 중심으로 개발되어 왔으며 개발 중에 있다. 개인 및 비즈니스 사용자를 막론하고, 컴퓨팅 활동을 점점 웹 브라우저 지향적 또는 네트워크 지향적으로 만드는 애플리케이션 및 컴퓨팅 장치에 대하여 이음새없이 상호동작이 가능하고 웹 사용가능한 인터페이스가 제공된다.
예를 들어, MICROSOFT?瑛? 관리 코드 플랫폼, 즉 .NET는 서버, 웹-기반 데이터 저장과 같은 빌딩-블록 서비스, 및 다운로드 가능한 장치 소프트웨어를 포함한다. 일반적으로, .NET 플랫폼은 (1) 전 범위의 컴퓨팅 장치들이 작업을 함께 수행하도록 하며 사용자 정보가 그들 모두에 자동적으로 업데이트되고 동기화되도록 할 수 있는 능력, (2) HTML보다는 XML의 더 많은 사용으로 인해 가능해진 웹 페이지에 대한 증가된 상호작용 능력, (3) 예를 들어, Office.NET와 같은 소프트웨어 또는 이메일 등의 다양한 애플리케이션의 관리를 위하여, 중앙 시작점으로부터 사용자에게로의 제품 및 서비스의 주문화된 억세스 및 전달을 특징으로 갖는 온라인 서비스, (4) 사용자와 장치간의 정보의 동기화뿐만 아니라 정보 억세스의 효율성과 용이성을 증가시키는 집중된 데이터 저장, (5) 이메일, 팩스 및 전화 등의 다양한 통신 매체를 통합할 수 있는 능력, (6) 개발자에 대하여, 재사용가능한 모듈을 생성하여 프로그래밍 에러의 수를 감소시키고 생산성을 증가시키는 능력, 및 (7) 많은 다른 크로스-플랫폼 및 언어 통합 특징을 제공한다.
몇몇 예시된 실시예는 컴퓨팅 장치 상에 상주하는 소프트웨어와 관련하여 기재되지만, 본 발명의 하나 이상의 부분은, 본 발명의 방법이 .NET 코드와 같은 관리 코드에 의해 가능해진 모든 언어 및 서비스 내에 포함되거나, 그 모든 언어 및 서비스 내에서 지원되거나 또는 그 모든 언어 및 서비스를 통해 억세스될 수 있도록, 운영 체계, 애플리케이션 프로그래밍 인터페이스(API) 또는 "미들 맨(middle man)" 오브젝트, 제어 오브젝트, 하드웨어, 펌웨어, 중간 언어 명령어 또는 오브젝트들 등을 통해 구현될 수 있을뿐 아니라, 기타 분산 컴퓨팅 프레임워크에서 구현될 수도 있다.
원격 데스크탑 프로토콜 및 터미널 서버 세션의 개요
마이크로소프트 원격 데스크탑 프로토콜(RDP)은 호스트로부터 원격 매체 소모 장치로의 매체 경험을 포트(port)시키는데 사용될 수 있는 프로토콜의 한 예이다. RDP는 네트워크 접속을 통해 원격 디스플레이 및 입력 능력을 서버 상에서 실행되는 윈도우 기반 애플리케이션에 제공한다. RDP는 서로다른 유형의 네트워크 형태들 및 다수의 LAN 프로토콜을 지원하도록 설계된다.
서버 상에서, RDP는 프로토콜을 사용하여 네트워크 패킷 내로 렌더링 정보를 구성하여 이들을 네트워크를 통해 클라이언트에게 보냄으로써 디스플레이 출력을 제공하기 위해 자체 비디오 드라이버를 사용한다. 클라이언트 상에서, RDP는 렌더링 데이터를 수신하여, 패킷을 대응하는 그래픽 장치 인터페이스 API 호출로 해석한다. 입력 경로에 대해, 클라이언트 마우스 및 키보드 이벤트는 다시 클라이언트에서 서버에게로 향해진다. 서버 상에서, RDP는 키보드 및 마우스 이벤트를 수신하기 위해 자체의 가상 키보드 및 마우스 드라이버를 사용한다. 비제한 특징의 관점에서, RDP는 암호화, 대역폭 감소 특징, 로밍(roaming) 단절, 클립보드 맵핑, 프린트 방향변경, 가상 채널, 원격 제어 및 네트워크 로드 균형을 포함한다.
터미널 서버는 윈도우 NT 서버와 같은 서버의 확장으로서 예시적인 원격 컴퓨팅 환경을 제공한다. 단지 신 클라이언트에 있어서, 사용자들은 서버 데스크탑 운영 체계를 경험할 수 있고, 애플리케이션들은 서버를 완전히 오프시킨다. 터미널 서버에 있어서, 사용자들은 다음의 A, B, C와 같은 유형의 데스크탑 중의 임의의 데스크탑으로부터 윈도우 기반 애플리케이션으로의 억세스가 제공된다: (A) 제3자 하드웨어 벤더에 의해 매매되는 웹 기반 터미널로 통상 칭해지는 저비용의 하드웨어, (B) 로컬 데스크탑 환경 내에서의 윈도우로서의 터미널 서버 클라이언트의 실행에 의한 윈도우 95 또는 마이크로소프트 윈도우 NT 워크스테이션과 같은 윈도우 데스크탑 운영 체계, 및 (C) X 기반 터미널, UNIX 기반 데스크탑 뿐만 아니라 애플 매킨토시, MS-DOS 및 (추가 소프트웨어를 통한) 기타 네트워크 컴퓨터.
터미널 서버는 3개의 주요 컴포넌트: 터미널 서버 다중사용자 코어, 원격 데스크탑 프로토콜(RDP) 및 신 클라이언트 소프트웨어를 포함한다.
터미널 서버는 그외 다른 장치 상의 다수의 동시성 클라이언트 세션을 호스트하는 능력을 제공하는 다중사용자 서버 코어이다. 터미널 서버는 여러가지 윈도우 기반 및 비윈도우 기반 하드웨어 상에서 실행되는 호화가능 다중사용자 클라이언트 데스크탑을 직접 호스팅할 수 있다. 표준 윈도우 기반 애플리케이션은 터미널 서버 상에서 실행하기 위한 변경을 필요로 하지 않고, 모든 표준 윈도우 NT-기반의 관리 기반구조 및 기술은 클라이언트 데스크탑을 관리하기 위해 사용될 수 있다. 이러한 방식으로, 회사들은 윈도우 환경에 의해 제공된 애플리케이션 및 도구의 풍부한 선택의 이점을 취할 수 있다.
RDP는 신 클라이언트가 네트워크를 통해 터미널 서버와 통신할 수 있게 하는 터미널 서버의 프로토콜이다. 이 프로토콜은 ITU(International Telecommunications Union) T.120 프로토콜, 국제 표준 다중채널 컨퍼런싱 프로토콜에 기초하고 있다. RDP는 고대역폭 기업 환경에 적합하게 되고, 또한 암호화된 세션을 지원한다.
신 클라이언트 컴포넌트는 윈도우 기반 단말 장치 및 퍼스널 컴퓨터를 포함하는 일련의 데스크탑 하드웨어 상에 윈도우 사용자 인터페이스를 나타내거나 표시하는 소프트웨어이다.
터미널 서버의 오브젝트 매니저는 상이한 세션의 시스템 프로그램들 및 애플리케이션들이 일치하지 않는다는 것을 제공한다. 세션 내에 작성된 모든 오브젝트 이름은 이것을 작성한 개별 세션과 연관된 유일 식별 번호(세션 ID)가 첨부된다. 터미널 서버 서비스는 RDP, 또는 Citrix의 ICA와 같은 제3자 추가 프로토콜을 사용하여 기능할 수 있으므로 완전히 프로토콜-독립적이다.
RDP는 암호화된 클라이언트 마우스 및 키보드 데이터뿐만 아니라, 서버로부터의 시리얼 장치 통신 및 프리젠테이션 데이터를 전달하는 분리된 가상 채널을 고려한 다중채널 가능 프로토콜이다. 가상 채널은 터미널 서비스 애플리케이션에 대한 기능적 향상을 추가하기 위해 사용될 수 있는 소프트웨어 확장이다. 기능적 향상의 예는 특정 유형의 하드웨어, 오디오, 또는 터미널 서비스 RDP에 의해 제공된 코어 기능 이외의 다른 것에 대한 지원을 포함한다. RDP는 다수의 가상 채널의 다중화 관리를 제공한다.
가상 채널 애플리케이션은 2개의 부분, 즉 클라이언트측 컴포넌트와 서버측 컴포넌트를 갖는다. 서버측 컴포넌트는 터미널 서버 상에서 실행되는 실행가능 프로그램이다. 클라이언트측 컴포넌트는 터미널 서비스 클라이언트 프로그램이 실행될 때 클라이언트 컴퓨터 상의 메모리 내로 로드되는 DLL이다.
가상 채널은 RDP 프로토콜에 독립적인 터미널 서비스 클라이언트에 대한 기능적 향상을 추가할 수 있다. 가상 채널 지원에 따라, 새로운 특징은 클라이언트 또는 서버 소프트웨어, 또는 RDP 프로토콜을 갱신할 필요없이 추가될 수 있다.
그밖의 몇가지 기능은 또한 T.120 표준 정의의 일부로서, 예를 들어 애플리케이션으로부터의 데이터가 다수의 당사자들에게 "실시간" 전달될 수 있게 하는 멀티포인트 데이터 전달을 포함한다. 멀티캐스트-가능 전달은 데이터 전송의 신뢰성있는 전달 서비스가 고려된 것이다. 이것은 네트워크 기반구조 상의 로드를 감소시키는 동시에 고객에 대한 성능을 증가시킨다. RDP는 더 많은 능력을 만들어내기 위한 확장가능 베이스(base)를 제공하기 때문에 접속 용도에 유익하다. 이것은 부분적으로, RDP가 멀티포인트 송신의 제공뿐만 아니라, 데이터 송신을 위한 64,000개까지의 분리된 채널을 제공한다.
RDP는 ISDN, POTS와 같은 다수의 상이한 유형의 네트워크 형태, 및 IPX, 넷바이오스, TCP/IP 등과 같은 다수의 LAN 프로토콜을 지원하도록 설계된다.
RDP 스택을 통한 데이터 송수신에 관련된 활동은 현재 통상의 LAN 네트워킹에 대한 7계층 OSI(오픈 시스템 상호접속) 모델 표준과 본질적으로 동일하다. 송신될 애플리케이션 또는 서비스로부터의 데이터는 프로토콜 스택을 통해 보내지고, 구분되며, 채널로 보내지고, 암호화되며, 랩핑되고, 프레임되며, 네트워크 프로토콜 상에 패키징되고, 최종적으로 어드레스되어, 와이어를 통해 클라이언트에게 보내진다.
복귀 데이터는 데이터가 사용하기 위한 애플리케이션에 표시될 때까지, 동일한 방식으로 반대로 동작되는데, 패킷이 그 어드레스에서 분리된 다음에, 랩핑 해제되고, 복호화 등이 이루어진다. 프로토콜 스택 변경의 몇몇 부분들은 4계층과 7계층 사이에서 발생하는데, 여기에서 데이터는 암호화되고, 랩핑 및 프레임되며, 채널로 보내져서, 우선순위가 부여된다.
RDP에 있어서는 유리하게, 프로토콜 스택을 처리하는 복잡도가 애플리케이션 개발자로부터 떨어져서 요약된다. 애플리케이션 개발자는 단순히 애플리케이션을 기입하고, 터미널 서버 및 그 클라이언트 접속에 의해 구현된 RDP 스택이 나머지를 처리한다.
기동시에, 터미널 서버는 부팅하여 코어 운영 체계를 로드하고, 터미널 서버 서비스는 개시되어 세션 접속을 대기하기 시작한다. 각 접속은 터미널 서버에 대한 개별 세션을 나타내기 위해 유일한 세션 식별자 또는"세션 ID"가 제공되고, 한 세션 내에서 생성된 각 프로세스는 그 명칭 공간을 다른 세션 명칭 공간과 구분하기 위해 연관된 세션 ID가 "태그"된다. 사용자가 터미널 서비스-가능 컴퓨터에 로그온(log on)할 때, 세션은 사용자에게 개시되어 유일한 세션 ID에 의해 식별된다. 터미널 서비스 클라이언트로의 각 로그온이 분리된 세션 ID를 수신하기 때문에, 사용자 경험은 동시에 다수의 컴퓨터, 예를 들어 사무실 컴퓨터 및 가정용 컴퓨터에 로그온되는 것과 유사하다.
콘솔(터미널 서버 키보드, 마우스 및 비디오) 세션은 맨먼저 로드하고, 특별 케이스의 클라이언트 접속으로 처리되어 SessionID0이 할당된다. 콘솔 세션은 정규 시스템 세션으로서 개시되어, 구성된 디스플레이, 마우스 및 키보드 드라이버가 로드된다.
콘솔 세션을 생성한 후, 터미널 서버 서비스는 클라이언트 접속을 대기하는 2개의(디폴트에 의한) 유휴(idle) 클라이언트 세션을 생성하기 위해 세션 매니저를 호출한다. 유휴 세션을 생성하기 위해, 세션 매니저는 클라이언트 서버 실행시간 서브시스템 프로세스를 실행하고, 새로운 세션 ID가 프로세스에 할당된다.
콘솔 세션과 달리, 클라이언트 세션은 디스플레이, 키보드 및 마우스용의 분리된 드라이버를 로드하도록 구성된다. 새로운 디스플레이 드라이버는 RDP 디스플레이 장치 드라이버이고, 마우스 및 키보드 드라이버는 RDP 드라이버로 대체된다. 이들 드라이버는 RDP 클라이언트 세션이 원격으로 이용가능하게 되고 상호작용될 수 있게 한다. 최종적으로, 터미널 서버는 또한 TCP 포트 상의 RDP 클라이언트 접속에 귀기울이는 RDP 프로토콜을 위한 접속 리스너 스레드(listener thread)를 불러낸다. 상이한 세션 ID를 갖는 프로세스는 다른 세션의 데이터를 억세스하는 것이 방지되다.
예시적인 구현에 있어서, 클라이언트는 TCP 포트를 통해 터미널 서버로의 접속을 개시한다. 터미널 서버 RDP 리스너 스레드는 세션 요청을 검출하고, 새로운 세션 요청을 다루기 위해 새로운 RDP 스택 인스턴스를 생성한다. 리스너 스레드는 인입 세션을 새로운 RDP 스택 인스턴스로 넘겨주고, 또 다른 접속 시도를 위해 TCP 포트 상에서 계속 경청한다. 각 RDP 스택은 클라이언트 세션이 세션 구성 상세의 교섭을 처리하기 위해 접속될 때 생성된다.
사용자 로그온 후, 데스크탑 또는 애플리케션은 단일 애플리케이션 모드인 경우에 사용자에게 표시되다. 사용자가 실행하기 위한 애플리케이션을 선택하면, 마우스 명령은 선택된 애플리케이션을 새로운 가상 메모리 공간으로 내보내는 터미널 서버로 보내진다.
사용자가 세션을 단절시키고자 결정하면, 프로세스 및 모든 가상 메모리 공간은 그대로 남아있고, 물리적 메모리가 다른 프로세스를 위해 요구되는 경우에 물리적 디스크로 페이지 오프된다. RDP의 추가 이점은 사용자가 세션에 대해 요청하는 것에 따라 세션 스크린 해상도를 변경할 수 있다는 것이다. 예를 들어, 사용자가 미리 800 x 600 해상도로 터미널 서버 세션에 접속되고 단절된 다음에, 640 x 480 해상도만을 지원한 다른 컴퓨터로 이동되어 현존하는 세션으로 재접속되었다면, 데스크탑은 새로운 해상도를 지원하기 위해 리드로우(redraw)될 수 있다.
로그오프는 전형적으로 매우 단순하게 구현된다. 일단 사용자가 세션으로부터 로그오프하면, 세션 ID와 연관된 모든 프로세스는 종료되고, 세션에 할당된 소정의 메모리는 해제된다.
원격 장치의 매체 능력의 선언 및 판정
상술된 바와 같이, 오늘날의 운영 체계 중의 Windows?? MCE(Media Center Edition)와 같은 운영 체계는 원격 매체 소모 장치의 에코시스템을 가능하게 하기 위해 풍부한 세트의 원격조정 특징을 전달한다. 이들 장치는 MCE PC와 같은 호스트에 접속하여, 터미널 서비스 또는 기타 원격조정 기술을 통해 원격조정된 매체 경험을 표시한다. 그러므로, 본 발명의 장치 능력 판정 메카니즘은 원격 장치에 원격조정되어야 하는 주문 세트의 매체 능력을 원격 장치가 지정할 수 있게 한다.
상술된 바와 같이, 매체 경험이 원격조정되는 세션의 클래스에 대해 호스트 PC 매체 경험을 최적화하기 위해, 장치에 기초한 세션의 능력은 본 발명에 따라 원격 장치에 의해 선언된다. 그러므로, 세션의 상이한 클래스들은 상이한 매체 경험이 제공된다. 본 발명에 따라 장치 능력을 선언하고 판정하는 메카니즘은 원격 장치에 적절하게 매체 경험의 구성을 가능하게 한다.
도 3a 및 3b는 각각 본 발명의 여러가지 실시예의 예시적인 블록도 및 흐름도를 도시한 것이다. 도 3a는 원격 매체 장치(310)가 호스트 PC(300)에 의해 알게된 프레임워크에 따른 자신의 매체 능력을 선언하는 것을 도시하고 있다. 그 다음, 호스트 PC(300)는 프레임워크에 의해 지시된 규정에 의해 능력 선언을 해석하여 주문 매체 경험을 원격 장치에 전달할 수 있다. 도 3b는 호스트 PC(300)와 원격 매체 장치(310) 간의 교환을 위한 예시적인 절차를 도시한 것이다. 단계(320)에서, 원격 컴퓨팅 세션은 호스트(300)와 장치(310) 사이에서 사용되는 RDP와 같은 프로토콜에 따라 생성된다. 단계(330)에서, 장치(310)는 본 발명의 메카니즘을 통해 자신이 갖고있는 한 세트의 매체 기능을 선언한다. 단계(340)에서, 호스트는 선언을 수신하고, 단계(350)에서, 호스트는 선언을, 세션 중에 원격 장치(310)로의 매체 경험의 전달에 적용하기 위해 호스트(300)에 의해 알게되는 맞춤 세트의 매체 기능으로 변환한다.
도 4의 흐름도에 도시된 예시적인 실시예에서, 능력 판정 메카니즘은 다음과 같이 행해진다. 단계(400)에서, RDP 세션이 초기화되고, 단계(410)에서, 호스트 PC는 가상 채널을 오픈하여, 타임아웃 기간, 예를 들어 60초가 종료될 때까지 단계(420)에서 채널을 모니터한다. 원격 클라이언트가 단계(430)에서 이 가상 채널을 통해 접속을 설정하여, 단계(440)에서 장치에 대한 능력 스트링을 보내면, 매체 센터 UI는 단계(450)에서 가능해진 적절한 기능을 가는 원격 장치에 제공된다. 단계(460)에서 판정되는 바와 같이 타임아웃 기간 내에 전달되는 유효 능력 스트링이 없으면, 일반 세트의 장치 능력이 단계(470)에서 추정된다. 예시적인 비제한 디폴트 세트는 아래의 표 1에 정의된다. 한 실시예에서, 능력 스트링은 RDP에 의해 정의된 가상 채널을 통해 호스트 PC에 보내진다.
표 1 - 예시적인 매체 능력 특성 및 장치 세팅
클라이언트의 능력 스트링의 작성을 용이하게 하기 위해, 다른 실시예에서, 본 발명은 도 5에 예시적인 UI로 도시된 바와 같이 클라이언트 능력 토큰 빌더(CCTB) 도구(500)를 제공한다. CCTB 도구(500)는 장치 능력을 호스트 PC에 통신하는 한 세트의 토큰(들)을 작성하기 위해 사용된다. 토큰(들)을 작성하기 위해서는, 단순히 리스트(510)로부터 관련 장치 능력을 선택하고, 이용가능하다면, 친화적 이름을 장치에 할당한다(도 5에서는 'Remote-Media-Device'가 친화적 이름으로서, 여기에서 본 발명과 관련하여 사용될 수 있는 예시적인 원격 매체 장치를 칭하기 위해 사용된다). 능력 토큰(들)에 대한 값들은 제1 필드(520) 내에 표시된다. 이 스트링의 UTF-8 인코드화 표명은 제2 필드(530)에 표시되다. 이 실시예에서, UTF-8 인코드화 스트링은 장치 능력을 지정하기 위해 가상 채널을 통해 호스트 PC에 보내진다. 본 실시예에서의 UTF-8 인코드화 스트링의 사용은 단지 디자인-선택일 뿐이다. 소정의 포맷이 제1 필드(520)의 값을 기재하기 위해 사용될 수 있으므로, 본 발명은 UTF-8 인코딩 방식의 사용에 제한되는 것으로 구성되어서는 안된다는 것을 알기바란다.
도 6은 호스트 PC 매체 환경이 "10-푸트(foot) UI" 매체 경험을 갖는 본 발명의 실시예를 도시한 것이다. 이 실시예에서, 호스트 PC(600)는 원격 제어 장치(620)로 작동하도록 설계되는 매체 셸(605)을 갖고있다. 그러므로, 호스트 PC(600)의 키보드, 마우스 등에서 동작되기보다 오히려, 사용자는 원격 제어 장치(620)를 통해 호스트 PC(600)의 매체 센터를 동작시킬 수 있다. 매체 경험의 원격조정이 본 발명에 따라 이음매없이 자동이 되도록 설계되기 때문에, 본 실시예에서, 원격 장치(610)가 그 매체 능력 스트링을 호스트 장치(600)에 보낸 후, 및 주문 매체 경험이 장치(610)에 원격조정된 후에, 원격 장치(620)는, 원격 경험이 "10 푸트 UI" 매체 셸(605)에 결합되기 때문에, 매체 경험의, 즉 호스트 PC(600) 또는 원격 장치(610)에서의 소정 부분을 제어하기 위해 이용될 수 있다.
본 발명의 다른 중요한 실시양상은 매체 능력을 선언하는 확장가능 메카니즘을 제공하는 것이다. RDP 자체는 소정의 장치 능력에 대한 방송 메카니즘을 갖는 반면에, 확장가능 매카니즘이 없으며, 원격 매체 경험을 위한 타깃이 되지 않는다. 이와 관련하여, 호스트와 원격 장치간의 매체 시나리오는 과거에 하드와이어링되었지만, 새로운 원격 매체 소모 장치가 설정될 새로운 클래스의 매체 특성을 필요로 하는 한도까지, 본 발명은 설정된 새로운 능력을 수용하도록 변경될 수 있다. 예를 들어, 도구(500)는 추가 특성을 포함하도록 변경될 수 있으므로, 대응하는 매체 능력 스트링이 생성되어 해석될 수 있다. 즉, 스트링 자체는 확장가능하여, 비제한된 수의 잠재적인 매체 특성을 가능하게 한다.
게다가, 본 발명은 동적이다. 즉, 원격 장치가 호스트 PC와 함께 설정된 세션을 갖고 있고, 원격 장치가 어떤 이유로 네트워크로부터 단절되는경우, 그 동안에 매체 특성이 변경되었다면, 재접속시에, 본 발명은 매체 능력 스트링을 장치의 새로운 조건에 동적으로 적응시킨다. 그러므로, 예를 들어, 원격 장치의 단절 후, 원격 장치가 더 큰 화면 해상도를 갖는 모니터에 부착되면, 재접속시에, 더 큰 화면 해상도는 본 발명에 따른 매체 능력 스트링을 통해 선언된다.
예시적인 장치에 대한 예시적인 원격조정 예외
표 1에 표시된 장치 및 특성의 차이에 의해 예시된 바와 같이, 원격 매체 장치(들)에 원격조정될 수 없거나, 또는 원격조정될 때 특별한 방식으로 처리되는 호스트 PC에 관한 몇가지 매체 특징이 있다. 본 발명의 매체 능력 판정 메카니즘(들)은 이러한 예외가 있을 수 있게 하고, 원격 매체 경험 세션 동안에 자동으로 동적으로 처리될 수 있게 한다.
구체적인 예로, Remote-Media-Device라고 하는 키보드 또는 마우스가 없는 원격 장치는 여기에서 고려되어, 사용자가 여러가지 시나리오로, 예를 들어 텔레비젼을 보고, 음악을 듣고, 사진을 보는 등등을 위해 Remote-Media-Device에 데스크탑 원격 경험을 무선으로 원격조정할 수 있게 한다. Remote-Media-Device에 있어서는, 일반 또는 디폴트 세션에 대해 다수의 잠재적인 예외가 있다. 따라서, 본 발명의 가치를 설명하기 위해, 다음 설명은 Remote-Media-Device라고 하는 장치의 일반 세션에 대한 예시적인 비제한 예외들을 나타낸 것으로, 이 예외들은 본 발명의 매체 능력 선언 메카니즘에 의해 자동으로 동적으로 처리된다.
애니메이트(animate)된 센터-잠금 시작 메뉴 디자인은 애니메이트되지 않은 Remote-Media-Device 세션 상에서 실행하지 않는다. 그러므로, Remote-Media -Device 세션은 비애니메이트화 시작 메뉴 디자인을 이용하고, 여기에서 하이라이트 커서가 메뉴 자체 대신에 이동된다. 윈도우 제어 및 사용자명과 관련하여, 민(min)/맥스(max)/클로즈(close)/로그오프(logoff) 버튼은 Remote-Media-Device 원격 경험으로 제거되고, Remote-Media-Device 사용자는 고속 사용자 스위칭 또는 제어 윈도우 세팅을 이용할 수 없다. CD 복사하기와 같은 CD 기능은 원격조정된 세션 상에서 지원되지 않는다. 비주얼리제이션(visualization)은 상당히 대역폭, 프로세서 및 메모리 집약적이기 때문에 Remote-Media-Device-원격조정된 세션 상에서 지원되지 않는다. '모아 인포(more info)' 버튼은 Remote-Media-Device-원격조정된 세션 상에서 사진에 대해 디스에이블된다. DVD 기능은 Remote-Media-Device에도 원격조정되지 않는다. 그러므로, "플레이(Play) DVD" 메뉴 아이템은 Remote-Media-Device-원격조정된 세션의 시작 메뉴로부터 제거되어야 하고, DVD-관련 세팅도 제거되어야 한다.
알파-블렌디드 애셋(alpha-blended assets)은 Remote-Media-Device 디스플레이 내에서 비디오를 통해 부정확하게 표시된다. 그러므로, 주문 애셋은 단일-픽셀 알파 문제를 방지하기 위해 Remote-Media-Device-원격조정된 세션에 사용된다. 알파 일립스(ellipses)는 상당량의 주문 알파 GDI 코딩을 요구하고, Remote-Media-Device 세션 중에 구현되지 않는다. 마키 스크롤링(marquee scrolling)은 D3D 렌더링을 필요로 하고, Remote-Media-Device 상에서 디스에이블된다. Remote- Media-Device는 디폴트에 의해 TV 스킨(skin)을 사용한다. 또한, 소정의 버튼 이름이 현재 버튼 컨테이너 내에서 알맞지 않기 때문에, 더 작은 텍스트 사이즈는 Remote-Media-Device-원격조정된 세션 상에 생략(truncated) 버튼 레이블을 어드레스하기 위해 사용된다.
HSC(Help and Support Center)는 키보드/마우스없이 HSC를 닫는 방식이 없으므로 Remote-Media-Device-원격조정된 세션 내에서 착수되고, HSC는 대부분의 TV 화면의 해상도에서 이용할 수 없다. 그러므로, HSC로의 무링크는 Remote-Media-Device-원격조정된 세션 상에서 표시된다. 헬프 링크는 모든 제1-실행/세팅 페이지에 대해 Remote-Media-Device-원격조정된 세션 중에 제거된다. Remote-Media - Device 상에서 이용가능한 키보드 또는 마우스가 없기 때문에, 표시되는 팝-업은 없다.
Remote-Media-Device 클라이언트는 호스트 기계 상에서 새로운 사용자로서 설정될 수 있다. Remote-Media-Device-원격조정된 세션은 오로지 전화면 내에서만 실행하도록 설정될 수 있고, 디폴트에 의해 "항상 상부에(always on top)"를 실행할 수 있어서, 소정의 불량 팝업이 UI를 통해 표시되지 않게 한다. 더우기, Remote-Media-Device 어카운트(account)는 소정의 ActiveX 제어의 설치를 허용하지 않는다.
완전히 애니메이트된 대기 커서는 Remote-Media-Device-원격조정된 세션에서 표시되지 않는다. 그 대신에, 주문 버전이 표시되는데, 이것은 훨씬 느린 프레임 속도로 애니메이트되고, D3D 기반 애니메이션 방식에 의존하지 않는다. 마우스 이동 시에 표시되는 오버레이(overlay)는 마우스가 없기 때문에 Remote-Media-Device-원격조정된 세션에서 표시되지 않아야 한다. Remote-Media-Device 장치의 경우, 모든 FPD(Front Panel Display) 이벤트들은 이들이 호스트 PC의 FPD에 확실하게 보내지지 않게 하기 위해 "널(null)" FPD 장치에 보내질 수 있다.
그러므로, 호스트 장치에 대한 매체 능력을 선언하는 본 발명의 프레임워크에 의해 자동으로 설정될 수 있는 무수한 매체 능력 특성이 있다는 것은 명백하다. 본 발명은 추가 매체 능력으로 확장가능한 프레임워크를 제공하기 때문에, 그리고 본 발명은 원격 매체 경험 세션의 개시시에 동적으로 사용되기 때문에, 호스트 PC와 협력하여 원격으로 동작하는 상이한 매체 장치 시나리오의 수는 무제한적이다. 본 발명은 한 세션동안 자동으로 동작하기 때문에, 사용자는 원격 장치만을 턴온하여, 원격 장치에 전달된 주문화 매체 경험을 관찰하면 된다. 예를 들어, 상술된 Remote-Media-Device에 있어서, 모든 상기 예외는 자동으로 처리될 수 있다. Remote-Media-Device는 호스트 PC에 대해 자신의 매체 능력 스트링을 선언할 수 있고, 이것에 기초하여 호스트 PC가 장치의 매체 능력을 해석할 수 있으므로, 원격 매체 경험을 전달할 수 있다.
본 발명을 구현하는 여러가지 방식이 있는데, 예를 들어, 애플리케이션 및 서비스가 본 발명의 매체 능력 선언 메카니즘을 사용할 수 있게 하는 적절한 API, 툴 키트(tool kit), 드라이버 코드, 운영 체계, 제어, 자립형 또는 다운로드가능 소프트웨어 오브젝트 등이 있다. 본 발명은 본 발명의 메카니즘을 통해 매체 능력을 수신 또는 송신하는 소프트웨어 또는 하드웨어 오브젝트로부터뿐만 아니라, API(또는 기타 소프트웨어 오브젝트)의 관점에서 본 발명의 사용을 고려한 것이다. 그러므로, 여기에 설명된 본 발명의 여러가지 구현예는 소프트웨어로뿐만아니라, 전적으로 하드웨어, 부분적으로 하드웨어 및 부분적으로 소프트웨어 상태의 실시양상을 가질 수 있다.
상술된 바와 같이, 본 발명의 예시적인 실시예는 여러가지 컴퓨팅 장치 및 네트워크 아키텍처와 관련하여 설명되었지만, 매체 경험을 원격조정하기에 바람직한 여러가지 컴퓨팅 장치 또는 시스템에 하위 개념이 적용될 수 있다. 예를 들어, 본 발명의 알고리즘(들) 및 하드웨어 구현은 장치 상의 분리된 오브젝트로서, 다른 오브젝트의 부분으로서, 재사용가능한 제어로서, 서버로부터의 다운로드가능한 오브젝트로서, 장치 또는 오브젝트와 네트워크 간의 "미들 맨"으로서, 분산 오브젝트로서, 메모리 내의 하드웨어로서, 상술한 것의 소정의 조합 등으로서 제공되면, 컴퓨팅 장치의 운영 체계에 적용될 수 있다. 예시적인 프로그래밍 언어, 이름 및 예들이 여러가지 선택사항을 대표하여 여기에서 선택되었지만, 이들 언어, 이름 및 예들은 제한적인 의도로 사용된 것은 아니다. 본 분야에 숙련된 기술자라면 본 발명의 여러가지 실시예에 의해 달성된 것과 동일하거나, 유사하거나, 대등한 기능을 달성하는 오브젝트 코드 및 명명(nomenclature)을 제공하는 여러가지 방식이 있다는 것을 이해할 수 있을 것이다.
상술된 바와 같이, 여기에 설명된 여러가지 기술은 하드웨어 또는 소프트웨어, 또는 적절한 경우에 이 둘의 조합과 관련하여 구현될 수 있다. 그러므로, 본 발명의 방법 및 장치, 또는 소정의 실시양상 또는 그 일부는 플로피 디스크, CD-ROM, 하드 드라이브, 또는 소정의 다른 기계 판독가능 저장 매체와 같은 유형의 매체 내에 구현된 프로그램 코드(즉, 명령어)의 형태를 취할 수 있는데, 프로그램 코드가 컴퓨터와 같은 기계로 로드되어 그 기계에 의해 실행될 때, 그 기계는 본 발명을 실시하는 장치가 된다. 프로그램가능한 컴퓨터 상에서의 프로그램 코드 실행의 경우에, 컴퓨팅 장치는 일반적으로, 프로세서, 프로세서에 의해 판독가능한 저장 매체(휘발성 및 비휘발성 메모리 및/또는 저장 소자를 포함), 최소한 하나의 입력 장치 및 최소한 하나의 출력 장치를 포함한다. 예를 들어, 데이터 프로세싱 API, 재사용가능 제어 등을 사용하여 본 발명의 매체 능력 메카니즘(들)을 구현하거나 이용할 수 있는 하나 이상의 프로그램은 컴퓨터 시스템과 통신하기 위해 하이 레벨 절차 또는 오브젝트 지향 프로그래밍 언어로 바람직하게 구현된다. 그러나, 프로그램(들)은 원한다면 어셈블리어 또는 기계어로 구현될 수 있다. 어떤 경우에, 언어는 컴파일형 또는 해석형 언어일 수 있고, 하드웨어 구현물과 결합될 수 있다.
본 발명의 방법 및 장치는 또한 전선이나 케이블선, 또는 광섬유와 같은 소정의 송신 매체를 통하거나, 또는 소정의 다른 형태의 송신을 통해 송신되는 프로그램 코드 형태로 구현된 통신을 통해 실시될 수 있는데, 프로그램 코드가 EPROM, 게이트 어레이, 프로그램가능 로직 장치(PLD), 클라이언트 등과 같은 기계에 수신되어 로드되고, 그 기계에 의해 실행될 때, 그 기계는 본 발명을 실시하는 장치가 된다. 범용 프로세서 상에서 구현될 때, 프로그램 코드는 프로세서와 결합하여, 본 발명의 기능을 불러내는 동작을 하는 유일한 장치를 제공한다. 부수적으로, 본 발명과 관련하여 사용된 소정의 저장 기술은 항상 하드웨어와 소프트웨어의 결합으로 이루어질 수 있다.
본 발명은 여러 도면들의 양호한 실시예와 관련하여 설명되었지만, 기타 유사한 실시예들이 사용될 수 있거나, 또는 본 발명을 벗어나지 않고 본 발명과 동일한 기능을 실행하기 위해 상술된 실시예에 변경 및 추가가 행해질 수 있다는 것을 이해하기 바란다. 예를 들어, 본 발명의 예시적인 네트워크 환경은 피어 투 피어 또는 분산 네트워크 환경과 같은 네트워크 환경과 관련하여 설명되었지만, 본 분야에 숙련된 기술자는, 본 발명이 이것에 제한되지 않고, 본 출원에 설명된 방법이 유선이든 무선이든, 게이밍 콘솔, 핸드헬드 컴퓨터, 휴대용 컴퓨터 등과 같은 소정의 컴퓨팅 장치 또는 환경에 적용할 수 있고, 통신 네트워크를 통해 접속되어 그 네트워크를 통해 상호작용하는 소정 수의 이러한 컴퓨팅 장치에 적용될 수 있다는 것을 알 수 있을 것이다. 더우기, 특히 무선 네트워크 장치의 수가 계속 늘어남에 따라, 핸드헬드 장치 운영 체계 및 기타 애플리케이션 특정 운영 체계를 포함하는 여러가지 컴퓨터 플랫폼이 고려될 수 있다는 점이 강조되어야 된다.
예시적인 실시예는 RDP와 관련된 본 발명의 사용에 대해 언급하고 있지만, 본 발명은 그 정도에 제한되지 않고, 오히려 소정의 프로토콜은 원격 매체 경험을 장치에 전달하기 전에, 예를 들어 원격 컴퓨팅 세션의 개시시에, 장치 매체 능력을 선언하는 일반적인 프레임워크를 제공하도록 구현될 수 있다. 또한, 본 발명은 다수의 프로세싱 칩 또는 장치 내에서 또는 그 칩 또는 장치를 통해 구현될 수 있고, 저장장치는 다수의 장치 저반에 유사하게 영향을 미칠 수 있다. 그러므로, 본 발명은 소정의 단일의 실시예에 한정되지 않아야 되고, 첨부된 청구범위에 따른 범위 내에서 구성되어야 된다.
도 1a는 예시적인 종래의 원격 컴퓨팅 환경을 도시한 도면.
도 1b는 원격 장치로의 매체 경험을 원격조정하는 예시적인 원격 컴퓨팅 환경을 도시한 도면.
도 1c는 얼마나 다양한 매체 유형 및 매체 장치가 어떤 경우에 매체 경험을 제공하게 되는지를 도시한 도면.
도 2a는 본 발명이 구현될 수 있는 여러가지 컴퓨팅 장치를 갖는 예시적인 네트워크 환경을 나타내는 블록도.
도 2b는 본 발명이 구현될 수 있는 예시적인 비제한 서버 컴퓨팅 장치를 나타내는 블록도.
도 2c는 일반 원격 장치가 그 매체 능력을 선언할 수 있도록 하는 것과 관련하여 본 발명이 구현될 수 있는 일반 원격 장치의 블록도.
도 3a 및 3b는 각각 본 발명의 확장가능 매체 능력 선언 메카니즘의 예시적인 실시예를 도시한 블록도 및 흐름도.
도 4는 본 발명의 매체 능력 선언 메카니즘의 예시적인 비제한 실시예의 흐름도.
도 5는 본 발명의 매체 능력 토큰(들)을 설정하기 위한 툴(tool)의 예시적인 비제한 사용자 인터페이스를 도시한 도면.
도 6은 일반적으로 로컬 원격 제어 경험과 함께 사용하기 위한 셸(shell)을 갖는 호스트 장치와 관련된 본 발명의 사용예를 도시한 도면.
<도면의 주요 부분에 대한 부호의 설명>
14 : 통신 네트워크/버스
20 : 데이터베이스
130, 130a : 시스템 메모리
160a, 170 : 네트워크 인터페이스
170a, 180 : 원격 컴퓨터
202 : 컴퓨팅 경험
204 : 사용자 인터페이스 컴포넌트
206 : 매체 컴포넌트
208 : 매체 채널
210 : UI 채널
212 : 원격 컴포넌트
300 : 호스트 PC
310 : 원격 매체 장치
600 : 호스트 장치
605 : 매체 센터 셸
610 : 원격 장치
620 : 원격 제어 장치

Claims (33)

  1. 한 호스트 장치에서 한 원격 장치로의 사이에서처럼 주문 원격 컴퓨팅 매체 경험을 가능하게 하는 방법에 있어서,
    원격 세션(session) 프로토콜에 따라 상기 호스트 장치로 원격 세션을 인스턴스화하는 단계;
    상기 원격 장치의 매체 능력에 기초한 최소한 하나의 매체 능력 토큰을 상기 호스트 장치에 자동으로 송신하는 단계; 및
    상기 송신에 응답하여, 원격 장치에 맞추어진 주문 원격 매체 경험 사용자 인터페이스를 상기 원격 장치에서 수신하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 접속에 응답하여, 상기 원격 장치의 매체 능력에 기초하여 상기 최소한 하나의 매체 능력 토큰(token)을 자동으로 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서, 상기 원격 세션은 터미널 서버(Terminal Server) 세션이고, 상기 원격 세션 프로토콜은 원격 데스크탑 프로토콜인 것을 특징으로 하는 방법.
  4. 제1항에 있어서, 상기 원격 세션으로부터 상기 원격 장치를 단절시키는 단계, 및 상기 원격 세션으로의 재접속에 있어서, 재접속시의 원격 장치의 매체 능력에 기초하여 상기 최소한 하나의 매체 능력 토큰을 자동으로 재생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서, 상기 최소한 하나의 매체 능력 토큰은 하나의 스트링(string)인 것을 특징으로 하는 방법.
  6. 제1항에 있어서, 원격 세션의 상기 인스턴스화 단계는 원격 제어 능력을 갖는 호스트 장치의 셸(shell)과 상기 원격 장치 사이에 원격 세션을 설정하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서, 상기 최소한 하나의 매체 능력 토큰은 제3자 도구(tool)에 의해 생성되고, 상기 원격 장치의 원격조정 소프트웨어와 함께 포함되는 것을 특징으로 하는 방법.
  8. 제1항의 방법을 실행하기 위한 컴퓨터 실행가능 명령어들을 갖고있는 컴퓨터 실행가능 모듈들을 포함하는 것을 특징으로 하는 애플리케이션 프로그래밍 인터페이스.
  9. 제1항의 방법을 실행하기 위한 수단을 포함하는 것을 특징으로 하는 컴퓨팅 장치.
  10. 제1항의 방법을 실행하기 위한 컴퓨터 실행가능 명령어들을 전달하는 것을 특징으로 하는 변조된 데이터 신호.
  11. 한 호스트 장치에서 한 원격 장치로의 사이에서처럼 주문 원격 컴퓨팅 매체 경험을 가능하게 하는 방법에 있어서,
    상기 호스트 장치의 원격 데스크탑 프로토콜 세션을 초기화하는 단계;
    가상 채널을 오픈하는 단계;
    접속을 설정하기 위해 원격 장치에 대한 가상 채널을 모니터하는 단계;
    가상 채널을 통한 원격 장치 접속 시에, 원격 장치에 대한 최소한 하나의 매체 능력 토큰을 수신하는 단계; 및
    상기 최소한 하나의 매체 능력 토큰에 기초하여 주문 매체 경험 사용자 인터페이스를 원격 장치에 송신하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  12. 제11항에 있어서, 타임아웃 기간 내에 수신되는 유효한 능력 토큰이 없으면, 일반 세트의 장치 능력이 추정되고, 상기 송신 단계는 일반 매체 경험 사용자 인터페이스를 상기 원격 장치에 송신하는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 제11항에 있어서, 상기 모니터 단계는 타임아웃 기간이 종료될 때까지 가상 채널을 모니터하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 제11항에 있어서, 상기 접속은 원격 제어 능력을 갖고있는 상기 호스트 장치의 셸로의 접속을 포함하는 것을 특징으로 하는 방법.
  15. 제11항에 있어서, 상기 원격 데스크탑 프로토콜 세션은 터미널 서버 세션인 것을 특징으로 하는 방법.
  16. 제11항의 방법을 실행하기 위한 컴퓨터 실행가능 명령어들을 갖고있는 컴퓨터 실행가능 모듈들을 포함하는 것을 특징으로 하는 애플리케이션 프로그래밍 인터페이스.
  17. 제11항의 방법을 실행하기 위한 수단을 포함하는 것을 특징으로 하는 컴퓨팅 장치.
  18. 제11항의 방법을 실행하기 위한 컴퓨터 실행가능 명령어들을 전달하는 것을 특징으로 하는 변조된 데이터 신호.
  19. 최소한 하나의 매체 능력 토큰을 구성하는 도구에 있어서,
    사용자가 원격 장치의 최소한 하나의 매체 특성을 지정할 수 있게 하는 능력 명세(specification) 컴포넌트; 및
    상기 원격 장치의 지정된 최소한 하나의 매체 특성을, 원격 매체 경험 세션에 적용될 때의 원격 장치의 매체 능력을 기술하는 최소한 하나의 매체 능력 토큰으로 변환하는 프로세싱 컴포넌트
    를 포함하는 것을 특징으로 하는 도구.
  20. 제19항에 있어서, 상기 원격 장치의 상기 최소한 하나의 매체 특성을 지정하는 것에 관한 옵션들을 표시하고, 상기 변환에 의해 생성된 최소한 하나의 매체 능력 토큰을 표시하는 사용자 인터페이스를 더 포함하는 것을 특징으로 하는 도구.
  21. 제19항에 있어서, 상기 변환 후에, 상기 최소한 하나의 매체 능력 토큰은 스트링 포맷에 따라 인코드되는 것을 특징으로 하는 도구.
  22. 호스트 장치로부터 원격 장치에 제공된 원격 매체 경험의 목적을 위해 원격 장치의 매체 능력을 정의하는 확장가능 데이터 구조에 있어서,
    최소한 하나의 토큰을 포함하고, 각각의 토큰은 원격 매체 경험의 목적을 위해 원격 장치의 매체 능력을 정의하는 것을 특징으로 하는 확장가능 데이터 구조.
  23. 한 호스트 장치에서 한 원격 장치로의 사이에서처럼 주문 원격 컴퓨팅 매체 경험을 가능하게 하는 컴퓨터 실행가능 명령어들을 갖고있는 컴퓨터 실행가능 모듈들을 포함하는 컴퓨터 판독가능 매체에 있어서,
    원격 세션 프로토콜에 따라 호스트 장치로 원격 세션을 인스턴스화하는 수단;
    상기 원격 장치의 매체 능력에 기초한 최소한 하나의 매체 능력 토큰을 상기 호스트 장치에 자동으로 송신하는 수단; 및
    상기 송신에 응답하여 상기 원격 장치에 맞추어진 주문 원격 매체 경험 사용자 인터페이스를 상기 원격 장치에서 수신하는 수단
    을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  24. 제23항에 있어서, 상기 접속에 응답하여 상기 원격 장치의 매체 능력에 기초하여 상기 최소한 하나의 매체 능력 토큰을 자동으로 생성하는 수단을 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  25. 제23항에 있어서, 상기 원격 세션은 터미널 서버 세션이고, 상기 원격 세션 프로토콜은 원격 데스크탑 프로토콜인 것을 특징으로 하는 컴퓨터 판독가능 매체.
  26. 제23항에 있어서, 상기 원격 세션으로부터 상기 원격 장치를 단절시키는 수단, 및 상기 원격 세션으로의 재접속시, 재접속시의 원격 장치의 매체 능력에 기초하여 상기 최소한 하나의 매체 능력 토큰을 자동으로 재생성하는 수단을 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  27. 제23항에 있어서, 상기 최소한 하나의 매체 능력 토큰은 하나의 스트링인 것을 특징으로 하는 컴퓨터 판독가능 매체.
  28. 제23항에 있어서, 원격 세션의 상기 인스턴스화 수단은 원격 제어 능력을 갖는 호스트 장치의 셸과 원격 장치 사이에 원격 세션을 설정하는 수단을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  29. 한 호스트 장치에서 한 원격 장치로의 사이에서처럼 주문 원격 컴퓨팅 매체 경험을 가능하게 하는 컴퓨터 판독가능 매체에 있어서,
    상기 호스트 장치의 원격 데스크탑 프로토콜 세션을 초기화하는 수단;
    가상 채널을 오픈하는 수단;
    접속을 설정하기 위해 상기 원격 장치에 대한 가상 채널을 모니터하는 수단;
    가상 채널을 통한 상기 원격 장치 접속 시에 원격 장치에 대한 최소한 하나의 매체 능력 토큰을 수신하는 수단; 및
    상기 최소한 하나의 매체 능력 토큰에 기초하여 주문 매체 경험 사용자 인터페이스를 상기 원격 장치에 송신하는 수단
    을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  30. 제29항에 있어서, 타임아웃 기간 내에 수신되는 유효한 최소한 하나의 매체 능력 토큰이 없으면, 일반 세트의 장치 능력이 추정되고, 상기 송신 수단은 일반 매체 경험 사용자 인터페이스를 상기 원격 장치에 송신하는 수단을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  31. 제29항에 있어서, 상기 모니터 수단은 타임아웃 기간이 종료될 때까지 상기 가상 채널을 모니터하는 수단을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  32. 제29항에 있어서, 상기 접속은 원격 제어 능력을 갖고있는 상기 호스트 장치의 셸로의 접속을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  33. 제29항에 있어서, 상기 원격 데스크탑 프로토콜 세션은 터미널 서버 세션인 것을 특징으로 하는 컴퓨터 판독가능 매체.
KR1020040057647A 2003-09-30 2004-07-23 원격 장치 매체 능력을 판정하는 시스템 및 방법 KR20050031866A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/674,706 2003-09-30
US10/674,706 US7418472B2 (en) 2003-09-30 2003-09-30 Systems and methods for determining remote device media capabilities

Publications (1)

Publication Number Publication Date
KR20050031866A true KR20050031866A (ko) 2005-04-06

Family

ID=34313966

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040057647A KR20050031866A (ko) 2003-09-30 2004-07-23 원격 장치 매체 능력을 판정하는 시스템 및 방법

Country Status (5)

Country Link
US (1) US7418472B2 (ko)
EP (1) EP1521427B1 (ko)
JP (2) JP2005108188A (ko)
KR (1) KR20050031866A (ko)
CN (1) CN100544259C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101301092B1 (ko) * 2007-02-22 2013-08-27 아마데우스 에스.에이.에스. 원격 커스터마이제이션 모듈 및 상기 모듈을 포함하는 시스템

Families Citing this family (190)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9116544B2 (en) * 2008-03-26 2015-08-25 Pierre Bonnat Method and system for interfacing with an electronic device via respiratory and/or tactual input
US8701015B2 (en) * 2008-03-26 2014-04-15 Pierre Bonnat Method and system for providing a user interface that enables control of a device via respiratory and/or tactual input
CN1248090C (zh) * 1999-02-12 2006-03-29 皮埃尔·博纳 借助于流体流监控电子或计算机系统的方法和装置
US7302634B2 (en) 2001-03-14 2007-11-27 Microsoft Corporation Schema-based services for identity-based data access
US20030167318A1 (en) * 2001-10-22 2003-09-04 Apple Computer, Inc. Intelligent synchronization of media player with host computer
JP4204977B2 (ja) * 2001-10-22 2009-01-07 アップル インコーポレイテッド メディアプレーヤーのためのインテリジェントなシンクロ操作
US9715500B2 (en) * 2004-04-27 2017-07-25 Apple Inc. Method and system for sharing playlists
US8150937B2 (en) 2004-10-25 2012-04-03 Apple Inc. Wireless synchronization between media player and host device
US7827259B2 (en) * 2004-04-27 2010-11-02 Apple Inc. Method and system for configurable automatic media selection
US7797446B2 (en) * 2002-07-16 2010-09-14 Apple Inc. Method and system for updating playlists
US7680849B2 (en) * 2004-10-25 2010-03-16 Apple Inc. Multiple media type synchronization between host computer and media device
US9412417B2 (en) 2002-04-05 2016-08-09 Apple Inc. Persistent group of media items for a media device
US9886309B2 (en) 2002-06-28 2018-02-06 Microsoft Technology Licensing, Llc Identity-based distributed computing for device resources
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
US7166791B2 (en) * 2002-07-30 2007-01-23 Apple Computer, Inc. Graphical user interface and methods of use thereof in a multimedia player
US7956272B2 (en) * 2002-07-30 2011-06-07 Apple Inc. Management of files in a personal communication device
JP4136771B2 (ja) * 2003-04-23 2008-08-20 キヤノン株式会社 通信システム、通信装置、及びその制御方法、並びにコンピュータプログラム
EP1621004A1 (en) * 2003-05-05 2006-02-01 Behruz Vazvan A communication method, system, devices and software arranged to operate in this system and devices
US7873742B1 (en) * 2003-11-20 2011-01-18 Microsoft Corporation Providing content per delivery endpoint
CA2489999A1 (en) * 2003-12-09 2005-06-09 Lorne M. Trottier A secure integrated media center
US9117063B2 (en) 2004-02-27 2015-08-25 Wyse Technology L.L.C. Session manager for secured remote computing
US8117651B2 (en) 2004-04-27 2012-02-14 Apple Inc. Method and system for authenticating an accessory
US7441062B2 (en) 2004-04-27 2008-10-21 Apple Inc. Connector interface system for enabling data communication with a multi-communication device
US7529872B1 (en) 2004-04-27 2009-05-05 Apple Inc. Communication between an accessory and a media player using a protocol with multiple lingoes
US7526588B1 (en) 2004-04-27 2009-04-28 Apple Inc. Communication between an accessory and a media player using a protocol with multiple lingoes
US7529870B1 (en) 2004-04-27 2009-05-05 Apple Inc. Communication between an accessory and a media player with multiple lingoes
US20060026638A1 (en) * 2004-04-30 2006-02-02 Vulcan Inc. Maintaining a graphical user interface state that is based on a selected type of content
US20060085825A1 (en) * 2004-04-30 2006-04-20 Vulcan Inc. Controlling content presentation
US20070110074A1 (en) 2004-06-04 2007-05-17 Bob Bradley System and Method for Synchronizing Media Presentation at Multiple Recipients
US10972536B2 (en) 2004-06-04 2021-04-06 Apple Inc. System and method for synchronizing media presentation at multiple recipients
US8443038B2 (en) 2004-06-04 2013-05-14 Apple Inc. Network media device
US8797926B2 (en) 2004-06-04 2014-08-05 Apple Inc. Networked media station
US7590710B1 (en) * 2004-06-17 2009-09-15 Wavetrix, Inc. Method and system for extending a communication port via a general purpose network
US8762540B2 (en) * 2004-09-01 2014-06-24 Hewlett-Packard Development Company, L.P. Managing multiple remote computing sessions displayed on a client device
US8261246B1 (en) 2004-09-07 2012-09-04 Apple Inc. Method and system for dynamically populating groups in a developer environment
US7664872B2 (en) * 2005-01-05 2010-02-16 Divx, Inc. Media transfer protocol
US20060168291A1 (en) * 2005-01-05 2006-07-27 Van Zoest Alexander Interactive multichannel data distribution system
US7958441B2 (en) * 2005-01-07 2011-06-07 Apple Inc. Media management for groups of media items
US11314378B2 (en) 2005-01-07 2022-04-26 Apple Inc. Persistent group of media items for a media device
US7823214B2 (en) 2005-01-07 2010-10-26 Apple Inc. Accessory authentication for electronic devices
WO2006099406A2 (en) * 2005-03-11 2006-09-21 The Regents Of The University Of California Customizable user interface for electronic devices
US20060253782A1 (en) * 2005-04-01 2006-11-09 Vulcan Inc. Interface for manipulating multimedia playlists
US20060235950A1 (en) * 2005-04-18 2006-10-19 Sbc Knowledge Ventures, Lp Personal internet portal (PIP)
US20060232592A1 (en) * 2005-04-18 2006-10-19 Faso Paul L Method of Internet surfing to eliminate the risk of receiving malicious code
US7627645B2 (en) * 2005-06-27 2009-12-01 Microsoft Corporation Remotely controlling playback of content on a stored device
US8209344B2 (en) 2005-09-14 2012-06-26 Jumptap, Inc. Embedding sponsored content in mobile applications
US7912458B2 (en) 2005-09-14 2011-03-22 Jumptap, Inc. Interaction analysis and prioritization of mobile content
US8812526B2 (en) 2005-09-14 2014-08-19 Millennial Media, Inc. Mobile content cross-inventory yield optimization
US8819659B2 (en) 2005-09-14 2014-08-26 Millennial Media, Inc. Mobile search service instant activation
US10592930B2 (en) 2005-09-14 2020-03-17 Millenial Media, LLC Syndication of a behavioral profile using a monetization platform
US8195133B2 (en) 2005-09-14 2012-06-05 Jumptap, Inc. Mobile dynamic advertisement creation and placement
US8989718B2 (en) 2005-09-14 2015-03-24 Millennial Media, Inc. Idle screen advertising
US10038756B2 (en) 2005-09-14 2018-07-31 Millenial Media LLC Managing sponsored content based on device characteristics
US20120010978A1 (en) * 2005-09-14 2012-01-12 Jorey Ramer System for targeting advertising content to a plurality of mobile communication facilities
US7769764B2 (en) 2005-09-14 2010-08-03 Jumptap, Inc. Mobile advertisement syndication
US9058406B2 (en) 2005-09-14 2015-06-16 Millennial Media, Inc. Management of multiple advertising inventories using a monetization platform
US8364521B2 (en) 2005-09-14 2013-01-29 Jumptap, Inc. Rendering targeted advertisement on mobile communication facilities
US8229914B2 (en) 2005-09-14 2012-07-24 Jumptap, Inc. Mobile content spidering and compatibility determination
US8688671B2 (en) 2005-09-14 2014-04-01 Millennial Media Managing sponsored content based on geographic region
US10911894B2 (en) 2005-09-14 2021-02-02 Verizon Media Inc. Use of dynamic content generation parameters based on previous performance of those parameters
US8660891B2 (en) 2005-11-01 2014-02-25 Millennial Media Interactive mobile advertisement banners
US7676394B2 (en) 2005-09-14 2010-03-09 Jumptap, Inc. Dynamic bidding and expected value
US8666376B2 (en) 2005-09-14 2014-03-04 Millennial Media Location based mobile shopping affinity program
US7660581B2 (en) 2005-09-14 2010-02-09 Jumptap, Inc. Managing sponsored content based on usage history
US8463249B2 (en) 2005-09-14 2013-06-11 Jumptap, Inc. System for targeting advertising content to a plurality of mobile communication facilities
US8615719B2 (en) 2005-09-14 2013-12-24 Jumptap, Inc. Managing sponsored content for delivery to mobile communication facilities
US8503995B2 (en) 2005-09-14 2013-08-06 Jumptap, Inc. Mobile dynamic advertisement creation and placement
US7752209B2 (en) 2005-09-14 2010-07-06 Jumptap, Inc. Presenting sponsored content on a mobile communication facility
US8238888B2 (en) 2006-09-13 2012-08-07 Jumptap, Inc. Methods and systems for mobile coupon placement
US8103545B2 (en) 2005-09-14 2012-01-24 Jumptap, Inc. Managing payment for sponsored content presented to mobile communication facilities
US7702318B2 (en) 2005-09-14 2010-04-20 Jumptap, Inc. Presentation of sponsored content based on mobile transaction event
US20110313853A1 (en) 2005-09-14 2011-12-22 Jorey Ramer System for targeting advertising content to a plurality of mobile communication facilities
US8805339B2 (en) 2005-09-14 2014-08-12 Millennial Media, Inc. Categorization of a mobile user profile based on browse and viewing behavior
US9703892B2 (en) 2005-09-14 2017-07-11 Millennial Media Llc Predictive text completion for a mobile communication facility
US7793206B2 (en) * 2005-11-02 2010-09-07 Creative Technology Ltd System for downloading digital content published in a media channel
US8099508B2 (en) * 2005-12-16 2012-01-17 Comcast Cable Holdings, Llc Method of using tokens and policy descriptors for dynamic on demand session management
CA2636010A1 (en) * 2006-01-17 2007-07-17 Baker Hughes Inc SYSTEM AND METHOD FOR REMOTE DATA ACQUISITION AND DISTRIBUTION
US8601189B2 (en) * 2006-01-27 2013-12-03 Lg Electronics Inc. Method for processing information of an object for presentation of multiple sources
US7933964B2 (en) * 2006-02-16 2011-04-26 Microsoft Corporation Shell sessions
US8090838B2 (en) 2006-02-16 2012-01-03 Microsoft Corporation Shell operation flow change
US20070235283A1 (en) * 2006-04-07 2007-10-11 Collins Mark A Digital home ecosystem validator & process
CN100540047C (zh) * 2006-04-17 2009-09-16 中国人民解放军军事医学科学院基础医学研究所 Trap蛋白在制备治疗金黄色葡萄球菌感染的药品中的应用
US8073984B2 (en) * 2006-05-22 2011-12-06 Apple Inc. Communication protocol for use with portable electronic devices
US7415563B1 (en) * 2006-06-27 2008-08-19 Apple Inc. Method and system for allowing a media player to determine if it supports the capabilities of an accessory
US9015334B2 (en) * 2006-07-26 2015-04-21 Harris Technology, Llc Media player with automatic streaming of media files
US8888592B1 (en) 2009-06-01 2014-11-18 Sony Computer Entertainment America Llc Voice overlay
US7558894B1 (en) 2006-09-11 2009-07-07 Apple Inc. Method and system for controlling power provided to an accessory
JP4886463B2 (ja) 2006-10-20 2012-02-29 キヤノン株式会社 通信パラメータ設定方法、通信装置及び通信パラメータを管理する管理装置
US8195749B2 (en) * 2006-11-13 2012-06-05 Bindu Rama Rao Questionnaire server capable of providing questionnaires based on device capabilities
US8700014B2 (en) 2006-11-22 2014-04-15 Bindu Rama Rao Audio guided system for providing guidance to user of mobile device on multi-step activities
US8478250B2 (en) 2007-07-30 2013-07-02 Bindu Rama Rao Interactive media management server
US10803474B2 (en) 2006-11-22 2020-10-13 Qualtrics, Llc System for creating and distributing interactive advertisements to mobile devices
US11256386B2 (en) 2006-11-22 2022-02-22 Qualtrics, Llc Media management system supporting a plurality of mobile devices
TW200825830A (en) * 2006-12-01 2008-06-16 Wistron Corp Monitoring device for host of computer system, computer system capable of connecting remote control device with host, and method of monitoring host of computer system
JP4281798B2 (ja) * 2006-12-22 2009-06-17 ソニー株式会社 コンテンツ再生システム、電子機器、再生制御方法、およびプログラム
US10083184B2 (en) * 2007-01-07 2018-09-25 Apple Inc. Widget synchronization in accordance with synchronization preferences
US8631088B2 (en) 2007-01-07 2014-01-14 Apple Inc. Prioritized data synchronization with host device
US8850140B2 (en) 2007-01-07 2014-09-30 Apple Inc. Data backup for mobile device
US20080168185A1 (en) * 2007-01-07 2008-07-10 Robbin Jeffrey L Data Synchronization with Host Device in Accordance with Synchronization Preferences
WO2009100444A1 (en) * 2008-02-08 2009-08-13 Verbal World, Inc. Methods and apparatus for exhange of electronic communications
US20090232032A1 (en) * 2007-01-17 2009-09-17 Verbal World, Inc. Methods and Apparatus for the Manipulation of Conferenced Data
US7664993B2 (en) 2007-02-27 2010-02-16 Microsoft Corporation Automation of testing in remote sessions
US8201218B2 (en) * 2007-02-28 2012-06-12 Microsoft Corporation Strategies for securely applying connection policies via a gateway
US20080256468A1 (en) * 2007-04-11 2008-10-16 Johan Christiaan Peters Method and apparatus for displaying a user interface on multiple devices simultaneously
JP2008269198A (ja) * 2007-04-19 2008-11-06 Ize:Kk シンクライアント用オペレーティングシステム、シンクライアント装置、サーバ・シンクライアントシステム、及びシンクライアント用オペレーティングシステムの実行方法
US8331294B2 (en) 2007-07-20 2012-12-11 Broadcom Corporation Method and system for managing information among personalized and shared resources with a personalized portable device
JP2009009330A (ja) * 2007-06-27 2009-01-15 Fujitsu Ltd 情報処理装置、情報処理システム及び情報処理装置の制御方法
US20090006537A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Virtual Desktop Integration with Terminal Services
US8046369B2 (en) 2007-09-04 2011-10-25 Apple Inc. Media asset rating system
US9239666B2 (en) * 2007-09-12 2016-01-19 Citrix Systems, Inc. Methods and systems for maintaining desktop environments providing integrated access to remote and local resources
US8209673B1 (en) * 2007-09-25 2012-06-26 Nvidia Corporation SLI approval policy database
US20090150817A1 (en) * 2007-12-06 2009-06-11 Ati Technologies Ulc Method and Apparatus Utilizing Profiles to Reduce Software Complexity
US8613673B2 (en) 2008-12-15 2013-12-24 Sony Computer Entertainment America Llc Intelligent game loading
US8147339B1 (en) 2007-12-15 2012-04-03 Gaikai Inc. Systems and methods of serving game video
US8968087B1 (en) 2009-06-01 2015-03-03 Sony Computer Entertainment America Llc Video game overlay
US20090160762A1 (en) * 2007-12-20 2009-06-25 Apple Inc. User input device with expanded functionality
JP2009199441A (ja) * 2008-02-22 2009-09-03 Ntt Docomo Inc 映像編集装置、端末装置及びguiプログラム送信方法
US8683062B2 (en) * 2008-02-28 2014-03-25 Microsoft Corporation Centralized publishing of network resources
US8266637B2 (en) 2008-03-03 2012-09-11 Microsoft Corporation Privacy modes in a remote desktop environment
US20090259757A1 (en) * 2008-04-15 2009-10-15 Microsoft Corporation Securely Pushing Connection Settings to a Terminal Server Using Tickets
US8645579B2 (en) * 2008-05-29 2014-02-04 Microsoft Corporation Virtual media device
JP4661907B2 (ja) * 2008-05-30 2011-03-30 ソニー株式会社 情報処理システム、情報処理装置及び情報処理方法、並びにプログラム
US8612862B2 (en) * 2008-06-27 2013-12-17 Microsoft Corporation Integrated client for access to remote resources
JP2010056966A (ja) * 2008-08-28 2010-03-11 Toshiba Corp 画像コンテンツ送信サーバ、画像表示装置、画像コンテンツ送信方法、及び、画像表示方法
US8238811B2 (en) 2008-09-08 2012-08-07 Apple Inc. Cross-transport authentication
US8208853B2 (en) 2008-09-08 2012-06-26 Apple Inc. Accessory device authentication
US8645559B2 (en) * 2008-09-22 2014-02-04 Microsoft Corporation Redirection of multiple remote devices
WO2010050927A1 (en) * 2008-10-28 2010-05-06 Hewlett-Packard Development Company, L.P. File type association in a remote computing session
US9154942B2 (en) * 2008-11-26 2015-10-06 Free Stream Media Corp. Zero configuration communication between a browser and a networked media device
US8926435B2 (en) 2008-12-15 2015-01-06 Sony Computer Entertainment America Llc Dual-mode program execution
US20100173585A1 (en) * 2009-01-08 2010-07-08 Microsoft Corporation Seamless data communication experience
US9241062B2 (en) * 2009-05-20 2016-01-19 Citrix Systems, Inc. Methods and systems for using external display devices with a mobile computing device
WO2010138124A1 (en) * 2009-05-29 2010-12-02 Displaylink Corporation Loopback proxy
US8506402B2 (en) * 2009-06-01 2013-08-13 Sony Computer Entertainment America Llc Game execution environments
WO2010141492A1 (en) * 2009-06-01 2010-12-09 Andrew Buchanan Gault Game execution environments
US8621098B2 (en) * 2009-12-10 2013-12-31 At&T Intellectual Property I, L.P. Method and apparatus for providing media content using a mobile device
FI20096399A0 (fi) * 2009-12-28 2009-12-28 Valtion Teknillinen Järjestelmä ja menetelmä sähkölaitteiden etäkäyttämiseksi
US20110173292A1 (en) * 2010-01-11 2011-07-14 Interdigital Patent Holdings, Inc. Push based inter-operator inter-device transfer
US9684424B2 (en) 2010-07-08 2017-06-20 Red Hat Israel, Ltd. Transforming cursor graphics information
US9798436B2 (en) * 2010-07-08 2017-10-24 Red Hat Israel, Ltd. Remote computing with a low latency mouse mode
US8560331B1 (en) 2010-08-02 2013-10-15 Sony Computer Entertainment America Llc Audio acceleration
US10013137B2 (en) 2010-08-31 2018-07-03 Datapath Limited System and method for unlimited multi-user computer desktop environment
US9043706B2 (en) * 2010-08-31 2015-05-26 Anders Nancke-Krogh System and method for using state replication between application instances to provide a collaborative desktop environment
KR20130090898A (ko) 2010-09-13 2013-08-14 소니 컴퓨터 엔터테인먼트 아메리카 엘엘씨 2중 모드 프로그램 실행 및 로딩
KR102000618B1 (ko) 2010-09-13 2019-10-21 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 부가기능의 관리
KR101471366B1 (ko) * 2010-09-30 2014-12-10 에스케이플래닛 주식회사 단말기에 따른 적응적 화면 가상화 방법 및 시스템
KR101824647B1 (ko) * 2010-10-12 2018-02-02 삼성전자주식회사 디바이스간 동기화 방법, 유저 디바이스, 및 컴퓨터로 읽을 수 있는 저장 매체
US8886699B2 (en) * 2011-01-21 2014-11-11 Cloudium Systems Limited Offloading the processing of signals
TW201249135A (en) * 2011-05-30 2012-12-01 Wistron Corp Remote management method and remote management system
US9600350B2 (en) * 2011-06-16 2017-03-21 Vmware, Inc. Delivery of a user interface using hypertext transfer protocol
US9304662B2 (en) 2011-08-25 2016-04-05 Vmware, Inc. User interface virtualization techniques
US9549045B2 (en) 2011-08-29 2017-01-17 Vmware, Inc. Sharing remote sessions of a user interface and/or graphics of a computer
US9514242B2 (en) 2011-08-29 2016-12-06 Vmware, Inc. Presenting dynamically changing images in a limited rendering environment
WO2013077887A1 (en) * 2011-11-21 2013-05-30 Medtronic, Inc. Medical device communications system with communication controller using interface device
US9454617B1 (en) 2011-12-30 2016-09-27 hopTo Inc. Client rendering
US9367931B1 (en) 2011-12-30 2016-06-14 hopTo Inc. Motion vectors for cross-platform display
US8775545B1 (en) 2011-12-30 2014-07-08 hop To Inc. Image hosting for cross-platform display over a communication network
US8856262B1 (en) 2011-12-30 2014-10-07 hopTo Inc. Cloud-based image hosting
US9218107B1 (en) 2011-12-30 2015-12-22 hopTo Inc. Cloud-based text management for cross-platform display
US9223534B1 (en) 2011-12-30 2015-12-29 hopTo Inc. Client side detection of motion vectors for cross-platform display
US9542080B2 (en) 2012-04-25 2017-01-10 Vmware, Inc. User interface virtualization of context menus
US8990363B1 (en) * 2012-05-18 2015-03-24 hopTo, Inc. Decomposition and recomposition for cross-platform display
US9124562B1 (en) 2012-05-18 2015-09-01 hopTo Inc. Cloud-based decomposition and recomposition for cross-platform display
US9106612B1 (en) * 2012-05-18 2015-08-11 hopTo Inc. Decomposition and recomposition for cross-platform display
US10353718B2 (en) * 2012-07-23 2019-07-16 Vmware, Inc. Providing access to a remote application via a web client
US8924972B2 (en) * 2012-09-27 2014-12-30 Oracle International Corporation Method and system for logging into a virtual environment executing on a host
US8763054B1 (en) 2012-11-02 2014-06-24 hopTo Inc. Cross-platform video display
US8776152B1 (en) 2012-11-02 2014-07-08 hopTo Inc. Cloud-based cross-platform video display
FR3000794B1 (fr) * 2013-01-07 2015-08-07 Sagemcom Energy & Telecom Sas Procede d'initialisation d'un dispositif de telereleve
WO2014120179A1 (en) * 2013-01-31 2014-08-07 Hewlett-Packard Development Company, L.P. Remote client application
US9311041B2 (en) * 2013-02-22 2016-04-12 Blackberry Limited Device, system and method for generating data
US9686323B1 (en) * 2013-03-14 2017-06-20 Teradici Corporation Method and apparatus for sequencing remote desktop connections
US9430134B1 (en) 2013-03-15 2016-08-30 hopTo Inc. Using split windows for cross-platform document views
US9292157B1 (en) 2013-03-15 2016-03-22 hopTo Inc. Cloud-based usage of split windows for cross-platform document views
CN103281365B (zh) * 2013-05-20 2016-12-28 深圳市京华科讯科技有限公司 分布式虚拟化架构
CA2918586A1 (en) * 2013-05-30 2014-12-04 Aliphcom System and constituent media device components and media device-based ecosystem
US20140379778A1 (en) * 2013-06-20 2014-12-25 Microsoft Corporation Asynchronous transport setup and selection for interactive applications
US9342331B2 (en) * 2013-10-21 2016-05-17 International Business Machines Corporation Secure virtualized mobile cellular device
US9339159B2 (en) 2014-06-13 2016-05-17 Aerus Llc Vacuum brush drive
US10621276B2 (en) 2013-10-24 2020-04-14 Wmware, Inc. User interface virtualization for web applications
US20160373927A1 (en) * 2014-03-31 2016-12-22 Felica Networks, Inc. Information processing device, information processing method, and program
MX357843B (es) 2014-04-27 2018-07-26 Lg Electronics Inc Aparato transmisor de señal de difusión, aparato receptor de señal de difusión, método para transmitir una señal de difusión, y método para recibir una señal de difusión.
US10318320B1 (en) * 2015-12-07 2019-06-11 Amazon Technologies, Inc. Virtual desktop access using device-native user interfaces
KR102468763B1 (ko) * 2016-02-05 2022-11-18 삼성전자 주식회사 영상처리장치 및 그 제어방법
US10783929B2 (en) 2018-03-30 2020-09-22 Apple Inc. Managing playback groups
US11297369B2 (en) 2018-03-30 2022-04-05 Apple Inc. Remotely controlling playback devices
US10993274B2 (en) 2018-03-30 2021-04-27 Apple Inc. Pairing devices by proxy
US10630864B2 (en) * 2018-04-30 2020-04-21 Kyocera Document Solutions Inc. Image forming apparatus, image forming system, and communication processing method allowing log storage of remote maintenance connection
US10614857B2 (en) 2018-07-02 2020-04-07 Apple Inc. Calibrating media playback channels for synchronized presentation
US11032157B2 (en) * 2019-05-16 2021-06-08 Microsoft Technology Licensing, Llc Adaptable real-time communications plugin for virtual desktop infrastructure solutions

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6965682B1 (en) * 1999-05-19 2005-11-15 Digimarc Corp Data transmission by watermark proxy
US20020075301A1 (en) * 1997-07-15 2002-06-20 Andrea Basso Interaction modalities for multimedia delivery and presentation using nodes
EP1717696A1 (en) * 1997-11-14 2006-11-02 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions
US6078961A (en) * 1998-01-15 2000-06-20 International Business Machines Corporation Method for real-time delivery of multimedia information requiring a very high bandwidth path over the internet
US6509913B2 (en) * 1998-04-30 2003-01-21 Openwave Systems Inc. Configurable man-machine interface
US6412008B1 (en) * 1999-01-28 2002-06-25 International Business Machines Corporation System and method for cooperative client/server customization of web pages
JP2004531780A (ja) * 2000-06-22 2004-10-14 マイクロソフト コーポレーション 分散型コンピューティングサービスプラットフォーム
US20030046401A1 (en) * 2000-10-16 2003-03-06 Abbott Kenneth H. Dynamically determing appropriate computer user interfaces
US6915486B2 (en) * 2001-02-13 2005-07-05 International Business Machines Corporation Customizing a graphical user interface of a host application
US7155681B2 (en) * 2001-02-14 2006-12-26 Sproqit Technologies, Inc. Platform-independent distributed user interface server architecture
JP2003143670A (ja) * 2001-10-31 2003-05-16 Sony Corp リモートコントロールシステム、電子機器、及びプログラム
US7136909B2 (en) * 2001-12-28 2006-11-14 Motorola, Inc. Multimodal communication method and apparatus with multimodal profile

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101301092B1 (ko) * 2007-02-22 2013-08-27 아마데우스 에스.에이.에스. 원격 커스터마이제이션 모듈 및 상기 모듈을 포함하는 시스템

Also Published As

Publication number Publication date
EP1521427A3 (en) 2014-06-18
CN1604531A (zh) 2005-04-06
JP2011204274A (ja) 2011-10-13
JP2005108188A (ja) 2005-04-21
JP5385340B2 (ja) 2014-01-08
US7418472B2 (en) 2008-08-26
US20050080915A1 (en) 2005-04-14
EP1521427A2 (en) 2005-04-06
CN100544259C (zh) 2009-09-23
EP1521427B1 (en) 2020-05-20

Similar Documents

Publication Publication Date Title
EP1521427B1 (en) Systems and methods for determining remote device media capabilities
AU2004218616B2 (en) Systems and methods for projecting content from computing devices
US10721282B2 (en) Media acceleration for virtual computing services
US7716273B2 (en) Systems and methods for projecting content from computing devices
KR101596530B1 (ko) 원격 세션에서의 멀티미디어 동작을 관리하는 시스템 및 방법
US8463912B2 (en) Remote displays in mobile communication networks
US7447740B2 (en) Internet video conferencing on a home television
JP4637458B2 (ja) 色管理を実現するためのシステムおよび方法
US20070078987A1 (en) Multi-mode remote user interface server
US20160014450A1 (en) Virtual user interface including playback control provided over computer network for client device playing media from another source
US20140250460A1 (en) Virtual desktop services
TWI513318B (zh) 資源共享方法
US20030236889A1 (en) Data projection system and method
KR20050027091A (ko) 범용 스테이트리스 디지털 및 연산 서비스 제공 시스템 및방법
US20030110217A1 (en) Method and apparatus for a networked projection system
WO2001091482A1 (en) Remote displays in mobile communication networks

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application