KR20170059474A - 다수의 디바이스 상에 컴퓨팅 환경의 제시 - Google Patents

다수의 디바이스 상에 컴퓨팅 환경의 제시 Download PDF

Info

Publication number
KR20170059474A
KR20170059474A KR1020177011043A KR20177011043A KR20170059474A KR 20170059474 A KR20170059474 A KR 20170059474A KR 1020177011043 A KR1020177011043 A KR 1020177011043A KR 20177011043 A KR20177011043 A KR 20177011043A KR 20170059474 A KR20170059474 A KR 20170059474A
Authority
KR
South Korea
Prior art keywords
computing environment
auxiliary
application
user
devices
Prior art date
Application number
KR1020177011043A
Other languages
English (en)
Other versions
KR102394296B1 (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 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority to KR1020227014260A priority Critical patent/KR102570799B1/ko
Publication of KR20170059474A publication Critical patent/KR20170059474A/ko
Application granted granted Critical
Publication of KR102394296B1 publication Critical patent/KR102394296B1/ko

Links

Images

Classifications

    • G06F9/4445
    • 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/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • H04L65/4076
    • H04L65/607
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • 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/70Media network packetisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/549Remote execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

사용자는, 각각이 특정의 디바이스 속성들을 나타내는, 디바이스들의 컬렉션과 상호작용할 수 있다. 각각의 디바이스가 격리된 컴퓨팅 환경을 실행하고 제시하는 경우, 상이한 디바이스들과 사용자 간의 사용자 상호작용에서 일관성 없음이 발생할 수 있다. 대안적으로, 터미널 서버는 컴퓨팅 환경을 다양한 보조 디바이스들에 제시할 수 있지만, 이러한 제시는 일부 디바이스들의 일부 디바이스 속성들들을 이용하지 못할 수 있고, 그리고/또는 일부 디바이스들에 적당하지 않는 컴퓨팅 환경을 제시할 수 있다. 그 대신에, 디바이스 컬렉션의 주 디바이스는 주 컴퓨팅 환경을, 보조 디바이스의 디바이스 속성들에 기초하여, 각각의 보조 디바이스에 대한 보조 컴퓨팅 환경에 대하여 조정할 수 있다. 애플리케이션을 실행하라는 요청을 수신할 때, 주 디바이스는 보조 컴퓨팅 환경 내에서 애플리케이션을 실행할 수 있고, 디바이스 속성들에 기초하여 애플리케이션을 조정할 수 있다. 주 디바이스는 각각의 보조 컴퓨팅 환경을 각자의 보조 디바이스로 스트리밍할 수 있다.

Description

다수의 디바이스 상에 컴퓨팅 환경의 제시{PRESENTATION OF COMPUTING ENVIRONMENT ON MULTIPLE DEVICES}
관련 출원
본 출원은 2014년 9월 24일에 출원된, 발명의 명칭이 "PRESENTATION OF COMPUTING ENVIRONMENT ON MULTIPLE DEVICES"인 미국 특허 출원 제14/495,420호 - 참고로 본원에 포함됨 - 를 우선권 주장한다.
컴퓨팅 분야 내에서, 많은 시나리오들은 사용자와, 랩톱, 휴대폰, 태블릿 및 미디어 서버와 같은, 디바이스 컬렉션 간의 상호작용을 수반한다. 사용자는, 문서를 편집하는 것, 영화를 보는 것, 차량을 운전하는 것, 및 친구와 상호작용하는 것과 같은, 사용자의 관심 분야들 및 작업들을 담당하기 위해 디바이스 컬렉션을 위한 각종의 디바이스들을 취득할 수 있다. 각각의 디바이스는, 한 세트의 사용자 계정들 및 자격 증명들, 이용가능한 그리고/또는 실행 중인 애플리케이션들, 애플리케이션 구성들 및 상태, 문서들, 미디어 객체들, 및 디바이스 컬렉션 내에 있는 그리고 그 밖에 있는 다른 디바이스들과의 연결들을 포함하는, 컴퓨팅 환경을 제시할 수 있다.
이 발명의 내용은 이하에서 발명을 실시하기 위한 구체적인 내용에 추가로 기술되는 일련의 개념들을 간략화된 형태로 소개하기 위해 제공된다. 이 발명의 내용은 청구된 발명 요지의 핵심적인 요소들 또는 필수적인 특징들을 확인하려는 것으로 의도되어 있지도 않고, 청구된 발명 요지의 범주를 제한하기 위해 사용되려는 것으로 의도되어 있지도 않다.
컴퓨팅 환경을 제시하도록 디바이스들을 구성하는 것은 상호 연관성이 없는 경험을 가져올 수 있고, 여기서 디바이스 컬렉션의 각각의 디바이스는 디바이스의 디바이스 속성들에 기초하여 컴퓨팅 환경을 제시한다. 그렇지만, 이 모델은 상호 연관성이 없는 컴퓨팅 환경을 가져올 수 있고, 여기서 사용자는 각각의 디바이스의 구성을 개별적으로 구성하고 유지하며, 여기서 컴퓨팅 환경들 간의 차이들은, 디바이스의 아키텍처에 대해 이용가능하고 그와 호환되는 애플리케이션들과 같은, 각각의 디바이스의 속성들의 차이에 의해 주도된다. 그에 부가하여, 하나의 디바이스와의 상호작용이 다른 디바이스에 대한 변경을 수반하지 않을 수 있고; 예컨대, 사용자는 디바이스 컬렉션의 제1 디바이스 상에서 애플리케이션을 설치하거나, 애플리케이션 구성을 조절하거나, 문서를 생성 또는 편집할 수 있지만, 이러한 변경들이 디바이스 컬렉션의 제2 디바이스 상에 나타나지 않을 수 있다.
디바이스 컬렉션의 다양한 디바이스들 상의 컴퓨팅 환경의 제시를 조율하기 위해 다른 기법들이 이용될 수 있다. 제1 이러한 예로서, 디바이스들 사이의 파일 동기화는 제1 디바이스를 통한 파일 컬렉션에 대한 변경들이 제2 디바이스 상에 자동으로 반영될 수 있게 할 수 있다. 그렇지만, 이러한 파일 동기화는 비효율을 나타낼 수 있고(예컨대, 특정의 디바이스 상의 파일의 업데이트는 업데이트의 전파를 보장하기 위해 모든 다른 디바이스들로의 파일의 전송을 수반함), 동시성 오류들을 야기할 수 있다(예컨대, 특정의 파일의 업데이트가 제1 디바이스와 제2 디바이스 상에서 일어날 수 있고, 이러한 동시적 업데이트를 해결하는 것이 어려울 수 있음). 대안적으로, 터미널 서비스 모델에서, 주 디바이스는 각종의 디바이스들 상의 컴퓨팅 환경을 전송할 수 있다. 그렇지만, 각각의 디바이스가 디바이스의 속성들에 관계없이 동일한 컴퓨팅 환경을 제시하면, 일부 디바이스들은 디바이스에서의 일부 디바이스 속성들을 이용할 수 없을지도 모르는 반면, 다른 디바이스는 컴퓨팅 환경을 적당한 방식으로 렌더링할 수 없을지도 모른다.
디바이스 컬렉션이 주 디바이스에 의해 호스팅되는 컴퓨팅 환경을 제시할 수 있게 하는 기법들이 본원에서 제시된다. 이러한 기법들에 따르면, 디바이스 컬렉션의 주 디바이스는 디바이스 컬렉션의 몇 개의 보조 디바이스들 각각 상에 제시되어야 하는 주 컴퓨팅 환경을 저장하고 유지할 수 있다. 각각의 보조 디바이스에 대해, 주 디바이스는 보조 디바이스의 특정의 디바이스 속성들 - 그의 계산 자원들, 입력 및 출력 능력, 통신 능력, 전원, 및 사용자 컨텍스트 등 - 에 기초하여 조정되는(adapted) 보조 컴퓨팅 환경에 대하여 주 컴퓨팅 환경을 조정할(adapt) 수 있다. 그에 부가하여, 보조 디바이스 상에서 애플리케이션을 실행하라는 요청이 수신될 때, 주 디바이스는 보조 디바이스를 대신하여 보조 컴퓨팅 환경 내에서 애플리케이션을 실행할 수 있고, 보조 디바이스의 디바이스 속성들에 대하여 애플리케이션을 조정할 수 있다.
전술한 목적들 및 관련 목적들을 달성하기 위해, 이하의 설명 및 첨부 도면들은 특정의 예시적인 양태들 및 구현들을 기재하고 있다. 이들은 하나 이상의 양태들이 이용될 수 있는 다양한 방식들 중 단지 몇 개만을 나타내고 있다. 본 개시내용의 다른 양태들, 장점들 및 새로운 특징들이, 첨부 도면들과 관련하여 살펴볼 때, 이하의 상세한 설명으로부터 명백하게 될 것이다.
도 1은 사용자와 디바이스 컬렉션의 한 세트의 디바이스들 간의 상호작용을 나타내는 예시적인 시나리오를 예시한 도면.
도 2는 본원에서 제시되는 기법들에 따른, 보조 디바이스들의 디바이스 컬렉션 상에 컴퓨팅 환경을 제시하는 것을 나타내는 예시적인 시나리오를 예시한 도면.
도 3은 본원에서 제시되는 기법들에 따른, 주 디바이스가 디바이스 컬렉션의 보조 디바이스들 상에 컴퓨팅 환경을 제시할 수 있게 하는 예시적인 방법의 흐름도.
도 4는 본원에서 제시되는 기법들에 따른, 디바이스 컬렉션의 주 디바이스 및 보조 디바이스가 컴퓨팅 환경을 사용자에게 제시할 수 있게 하는 예시적인 시스템들의 컴포넌트 블록도.
도 5는 본원에 기재되는 발명 내용들 중 하나 이상을 구현하도록 구성된 프로세서 실행가능 명령어들을 포함하는 예시적인 컴퓨터 판독가능 매체를 예시한 도면.
도 6은 본원에서 제시되는 기법들에 따른, 디바이스 컬렉션의 선택된 보조 디바이스 내에 애플리케이션을 인스턴스화하는 다양한 기법들을 나타내는 예시적인 시나리오를 예시한 도면.
도 7은 본원에서 제시되는 기법들에 따른, 디바이스 컬렉션의 한 세트의 선택된 보조 디바이스들에 걸쳐 애플리케이션의 사용자 인터페이스를 배포하는 것을 나타내는 예시적인 시나리오를 예시한 도면.
도 8은 본원에서 제시되는 기법들에 따른, 제1 보조 디바이스의 입력을 제2 보조 디바이스의 제2 보조 컴퓨팅 환경으로 전환시키는 것을 나타내는 예시적인 시나리오를 예시한 도면.
도 9는 본원에서 제시되는 기법들에 따른, 동적 디바이스 컬렉션의 보조 디바이스들 간에 애플리케이션 사용자 인터페이스를 재매핑하는 것을 나타내는 예시적인 시나리오를 예시한 도면.
도 10은 본원에 기재되는 발명 내용들 중 하나 이상이 구현될 수 있는 예시적인 컴퓨팅 환경을 예시한 도면.
청구된 발명 요지가 이제부터 도면들을 참조하여 기술되고, 도면들에 걸쳐 유사한 참조 번호들은 유사한 요소들을 가리키는 데 사용되고 있다. 이하의 설명에서, 설명의 목적상, 청구된 발명 요지에 대한 완전한 이해를 제공하기 위해 수많은 구체적 상세들이 기재되어 있다. 그렇지만, 청구된 발명 요지가 이러한 구체적 상세들 없이도 실시될 수 있다는 것이 명백할 수 있다. 다른 경우에, 청구된 발명 요지를 설명하는 것을 용이하게 하기 위해 구조들 및 디바이스들이 블록도 형태로 도시되어 있다.
A. 서론
도 1은 사용자(102)가 디바이스 컬렉션(104) 내의 한 세트의 디바이스들(106)과 상호작용할 수 있게 하기 위한 다양한 기법들을 나타내는 예시적인 시나리오(100)의 예시이다. 이 예시적인 시나리오(100)에서, 사용자(102)는 워크스테이션, 홈시어터 컴퓨터, 휴대용 태블릿, 및 휴대폰과 같은, 상이한 유형들의 각종의 디바이스들(106)을 취득하였다. 디바이스 컬렉션(104)의 각자의 디바이스들(106)은, 특정의 처리 용량을 가지며 특정의 명령어 세트 아키텍처를 지원하는 프로세서; 전력선(utility line)에의 연결, 배터리, 및/또는 UPS(uninterruptible power supply)와 같은, 전원; 및 사용자(102)와의 상호작용을 가능하게 하는 한 세트의 입력 및 출력 컴포넌트들과 같은, 한 세트의 디바이스 속성들(108)을 나타낸다. 다른 이러한 디바이스 속성들(108)은, 예컨대, 비디오를 렌더링하고, 다양한 형태들의 데이터를 인코딩 또는 디코딩하기 위한 코프로세서들; 휘발성 및 비휘발성 메모리 컴포넌트들; 유선 및 무선 네트워크 어댑터들 및 NFC(near field communication) 어댑터들과 같은, 통신 컴포넌트들; 프린터들 및 스캐너들과 같은, 주변기기들; 및 차량 제어 시스템의 자동차 컴포넌트들과 같은, 임베디드 디바이스 시나리오들에서의 연관된 컴포넌트들을 포함한다. 각각의 디바이스들(106)은 또한, 디바이스(106)의 기본 운영 체제(native operating system); 운영 체제 내에서 실행되는 애플리케이션들(112)의 컬렉션; 및 각각의 디바이스(106) 상에 저장된 한 세트의 파일들(114)과 같은, 기본 컴퓨팅 환경(native computing environment)(110)을 나타낸다.
디바이스 컬렉션(104)의 사용자(102)는 특정의 방식으로 각각의 디바이스(106)와 상호작용할 수 있고, 따라서 각각의 디바이스(106)를 그의 의도된 용도에 따라 구성할 수 있다. 제1 예로서, 워크스테이션 디바이스(106)는 강력한 데스크톱 운영 체제와, 텍스트 편집기, 컴파일러, 및 미디어 편집 소프트웨어와 같은, 그를 위해 선택된 한 세트의 애플리케이션들(112)을 특징으로 할 수 있다. 제2 예로서, 홈시어터 디바이스(106)는 대면적 디스플레이; 미디어 플레이어 및 미디어 라이브러리와 같은, 비교적 제한된 한 세트의 애플리케이션들(112)을 제시하는 미디어 중심 운영 체제; 및 미디어를 렌더링하는 데 적당하지만 강력한 병렬 처리를 할 수 없는 상용 프로세서(commodity processor)와 같은, 비교적 제한된 한 세트의 디바이스 속성들(108)을 특징으로 할 수 있다. 제3 예로서, 태블릿 디바이스(106)는 휴대용 컴퓨팅 경험을 제시할 수 있고, 고용량 프로세서 상에서 실행되고 주로 용량성 터치 감응 디스플레이를 통해 사용자(102)와 상호작용하는 강력한 운영 체제를 제시할 수 있다. 제4 예로서, 제4 디바이스(106)는 에너지 절감 하드웨어, 배터리, 및 통신 지향 운영 체제 - 이를 통해 모바일 애플리케이션(mobility application)들(112)이 실행될 수 있음 - 를 특징으로 하는 휴대폰을 포함할 수 있다.
이 예시적인 시나리오(100)에서, 이 디바이스 컬렉션(104)과 상호작용하는 동안, 사용자(102)는 각자의 디바이스(106)와 상호작용하면서 현저한 차이들을 관찰할 수 있다. 제1 예로서, 사용자와 한 세트의 디바이스들(106)을 포함하는 디바이스 컬렉션(104) 간의 사용자 상호작용. 이 예시적인 시나리오(100)에서, 사용자(102)는, 문서들을 편집하는 것; 다양한 형태들의 미디어를 보는 것; 게임들을 플레이하는 것; 직업적 및 사회적 연락처들과 통신하는 것; 및 차량 매핑(vehicle mapping) 및 내비게이션과 같은, 사용자의 일상 활동들을 용이하게 하는 정보를 발견하는 것과 같은, 광범위한 일단의 관심 분야들 및 작업들을 담당할 디바이스들(106)을 취득한다. 디바이스 컬렉션(104)의 각각의 디바이스(106)는, 각각의 디바이스(106) 상에 설치되고 실행가능한 애플리케이션들(112)의 컬렉션; 사용자 파일들, 미디어 객체들, 및 웹 링크들과 같은, 다양한 데이터 컬렉션들; 및 평소의 및/또는 직업상 사용자 상호작용들에 대하여 조정되어 있는 운영 체제들과 같은, 다양한 형태들의 사용자 인터페이스들과 같은, 컴퓨팅 환경(114)을 제시할 수 있다. 각각의 디바이스(106)는 또한, 다양한 품질 및 해상도의 디스플레이; 오디오 출력을 사용자(102)에게 제공하는 스피커, 헤드폰, 및/또는 이어폰; 키보드, 마우스, 및 터치 감응 디스플레이와 같은, 입력 디바이스들; 및 카메라 및 통신 디바이스와 같은, 다른 주변기기들과 같은, 상이한 한 세트의 컴포넌트들을 특징으로 할 수 있다. 제2 예로서, 운영 체제의 변동은 각각의 디바이스(106)를 통해 상이한 유형들의 기능(예컨대, 운영 체제 사용자 인터페이스의 외관 및 거동의 차이; 이용가능한 도구 및 동작의 차이; 및 각각의 디바이스(106)에 명령을 발행하기 위해 사용가능한 키보드 단축키 및 제스처와 같은, 각각의 디바이스(106) 상에서 인식되는 입력의 차이)을 노출시킬 수 있다. 제3 이러한 예로서, 제1 디바이스(106) 상에서 실행가능한 애플리케이션(112)은, 예컨대, 디바이스들(106)의 운영 체제들 및 명령어 세트 아키텍처들 사이의 호환성 문제들로 인해, 제2 디바이스(106) 상에서 실행가능하지 않을 수 있다. 사용자(102)는 각각의 디바이스(106) 상에 비슷한 한 세트의 애플리케이션들(112)(예컨대, 상이한 플랫폼들을 위해 개발된 동일한 애플리케이션의 상이한 변형들, 또는 동일한 작업을 수행하는 상이한 개발자들에 의한 애플리케이션들)을 설치하려고 노력할 수 있지만, 겉으로는 유사하지만 아키텍처적으로 상이한 애플리케이션들(112) 간에 바람직하지 않은 차이들이 지속될 수 있다.
디바이스 컬렉션(104)의 디바이스들(106) 사이의 일관성을 확립하고 유지하기 위해 사용자(102)에 의해 수행되는 디바이스 구성 및 관리의 정도에서 추가적인 어려움들이 발생할 수 있고; 즉, 사용자(102)가 제1 디바이스(106)를 구성(예컨대, 애플리케이션(112)을 설치하거나 애플리케이션 구성을 업데이트)할 때, 사용자(102)는 유사한 방식으로 하나 이상의 다른 디바이스들(106), 그리고 아마도 디바이스들(106) 모두의 수동 재구성을 수행해야만 할지도 모른다. 제1 이러한 예로서, 제1 디바이스(106)가 패스워드에 의해 보호되는 서비스를 사용하고, 사용자(102)가 제1 디바이스(106)를 통해 서비스 패스워드를 변경하면, 사용자(102)는 동일한 업데이트된 패스워드를 사용하는 다른 디바이스들(106)을 재구성해야만 할지도 모른다. 제2 이러한 예로서, 사용자(102)가 제1 디바이스(106) 상에서 애플리케이션(112)을 설치하거나 파일(114)을 생성 또는 편집할 때, 사용자(102)가 이러한 업데이트들을 조율하도록 양 디바이스들(106)을 구성하지 않는 한, 이러한 변경들이 제2 디바이스(106) 상에서 자동으로 반영되지 않는다. 예를 들어, 사용자(102)는, 제2 디바이스(106) 상에서 생성, 수정 또는 삭제되는 파일(114)이 제4 디바이스와 자동으로 동기화되도록, 파일 동기화 프로세스(116)를 구성할 수 있다. 그렇지만, 이러한 기법들은, 구현하고 유지하기 위해, 사용자(102)에 의한 아마도 광범위하고 어쩌면 좌절감을 느낄 정도의 개입 및 관리를 수반할 수 있다. 더욱이, 이러한 기법들이 동기성(synchrony)의 모습을 부여하는 경우에도(예컨대, 디바이스들(106)이 단일의 세트의 파일들(114)을 이용하고 있다는 것을 암시할 정도로 성능 기준에 맞는 방식으로 디바이스들(106)이 파일 동기화(116)를 수행할 수 있음), 이러한 추상성이 "누출"되게 하는 문제들이 발생할 수 있다. 제1 이러한 예로서, 특정의 파일(114)이 제2 디바이스(106)와 제4 디바이스(106) 상에서 동시에 편집될 수 있다. 어느 한 버전을 선택하는 것은 다른 버전에서의 데이터 손실을 야기할지도 모르고, 디바이스들(106)은 이러한 변경들을 어떻게 병합할지를 결정하기 위한 용량을 갖지 않을 수 있다. 제2 이러한 예로서, 제3 디바이스(106)가 디바이스 컬렉션(104)으로부터 연결 해제되는 동안, 제3 디바이스(106)를 통해 액세스될 때 다양한 파일들(114)이 이용가능하지 않고 그리고/또는 오래되어 쓸모없게(outdated) 될 수 있다. 제3 이러한 예로서, 버전 관리 충돌과 같은 한계들을 완화시키는 것은 다른 바람직하지 않은 효과들과 연관되어 있는 보다 엄격한 대책들을 수반할 수 있고; 예컨대, 파일(114)에 대한 배타적 액세스 권한을 가지는 제1 디바이스(106)만이 파일(114)을 보거나 수정할 수 있도록 하기 위해 잠금 메커니즘이 이용될 수 있지만, 이러한 잠금 메커니즘은 동일한 파일(114)에 액세스하려고 시도하는 제2 디바이스(106)를 정지(stall)시키고 그리고/또는 작동 중단(crash)시킬 수 있다.
각각의 디바이스(106)에 의한 격리된 컴퓨팅 환경(110)의 제시로부터 발생하는 이들 및 다른 한계들을 고려하여, 디바이스들(106) 사이의 통일성(uniformity)을 용이하게 하기 위해 기법들이 이용될 수 있다. 예를 들어, 터미널 서버(118)는, 운영 체제 설정들을 제공하는 단일의 사용자 계정, 단일의 세트의 애플리케이션들(112) 및 애플리케이션 구성들, 그리고 터미널 서버(118)에 의해 액세스가능한 단일의 세트의 파일들(114) 및 하드웨어 컴포넌트들과 같은, 터미널 컴퓨팅 환경(120)을 발생시킬 수 있다. 터미널 서버(118)는 이어서 터미널 컴퓨팅 환경(120)의 제시를 디바이스들(106) 각각으로 전송할 수 있고(예컨대, 터미널 컴퓨팅 환경(120)의 비디오를 각각의 디바이스(106)로 전송하고 각각의 디바이스(106)로부터 입력을 수신함), 이는 동일한 터미널 컴퓨팅 환경(120)을 사용자(102)에 대해 통일되게 만들어줄 수 있다.
그렇지만, 이러한 터미널 서비스 기법들은, 터미널 서버(118)가 몇 개의 디바이스들(106)에 의한 하나의 터미널 컴퓨팅 환경(120)의 동시 사용을 가능하게 할 수 없는 것과 같은, 추가의 한계들을 나타낼 수 있다. 그에 부가하여, 하나의 터미널 컴퓨팅 환경(120)을 각종의 디바이스들(106) 상에 제시하는 것은 디바이스들(106) 간에 통일성을 제공할 수 있지만, 어쩌면 차선적 경험을 가져올 수 있다. 각각의 디바이스(106)의 디바이스 속성들(108)에 관계없이, 통일된 터미널 컴퓨팅 환경(120)이 각각의 디바이스(106)로 전송되면, 터미널 컴퓨팅 환경(120) 내에서 일부 디바이스 속성들(108)이 노출되지 않을 수 있다. 예를 들어, 특정의 디바이스(106)는 카메라를 포함할 수 있지만, 터미널 컴퓨팅 환경(120)은 카메라의 제공을 인식하지 못할 수 있고, 드라이버들 및 카메라 지향 애플리케이션들(112)과 같은 적당한 소프트웨어가 설치되어 있지 않을 수 있으며, 따라서 터미널 컴퓨팅 환경(120) 내에서 카메라를 이용할 수 없게 만들 수 있다. 이와 달리, 일부 디바이스들(106)은 터미널 컴퓨팅 환경(120)을 제시하는 데 적당한 디바이스 속성들(108)이 없을 수 있고; 예컨대, 터미널 컴퓨팅 환경(120)은 일부 디바이스들(106)의 디바이스 속성들(108)에 의해 지원되지 않는 애플리케이션(108)을 제공할 수 있거나, 특정의 디바이스(106)에 의해 만족스러운 사용자 경험으로 결코 렌더링되지 않을 수 있다. 예를 들어, 저성능 휴대폰 상에 터미널 컴퓨팅 환경(120)을 제시하는 것은 데스크톱 공간의 작은 비율이 디스플레이되는 일을 야기할 수 있어, 그의 임의의 부분을 보기 위해 상당한 정도의 스크롤링을 수반할 수 있고, 그리고/또는 디바이스(106)의 전력 절감 프로세서로 인해 쓸모없이 낮은 프레임 레이트 및 높은 사용자 입력 지연시간을 나타낼 수 있다. 이러한 한계들은 사용자 경험 통일성을 위해 단일의 터미널 컴퓨팅 환경(120)을 각종의 디바이스들(106)에 제공하는 데 있어서의 제한된 유연성으로 인해 생길 수 있다.
B. 제시된 기법들
각종의 디바이스들을 통해, 그러나 각각의 디바이스(106)의 디바이스 속성들(108)에 대하여 조정되어 있는 일관성있는 컴퓨팅 환경을 제시하도록 디바이스 컬렉션(104)을 구성하는 기법들이 본원에서 제시된다.
도 2는 일관성있는 컴퓨팅 환경을 사용자(102)에게 제시하기 위해 상호연동하는 디바이스들(106)의 디바이스 컬렉션(104)을 나타내는 예시적인 시나리오(200)의 예시이다. 이 예시적인 시나리오(200)에서, 디바이스 컬렉션(104) 중에서, 특정의 디바이스(104)가, 운영 체제 설정들, 애플리케이션들(112), 애플리케이션 구성들, 파일들(114), 그리고 사용자 계정들 및 자격 증명들의 주 컬렉션과 같은, 주 컴퓨팅 환경(204)을 발생시키고 유지하는, 주 디바이스(202)로서 지정된다. 디바이스 컬렉션(104)의 각각의 보조 디바이스(206)에 대해, 주 디바이스(202)는 보조 디바이스(106)의 디바이스 속성들(108)에 따라 보조 컴퓨팅 환경(208)에 대하여 주 컴퓨팅 환경(204)을 조정할 수 있다. 예를 들어, 주 디바이스(202)는 각각의 보조 디바이스(206)의 디바이스 속성들(108)에 따라 디스플레이 색 구성표, 아이콘과 글꼴 종류 및 크기, 입력 방식, 전체 화면 대 창 상호작용 모델, 그리고 컴포넌트 이용가능성 및 구성(예컨대, 포인터 거동)을 선택할 수 있다. 각각의 보조 디바이스(206)에 대해, 주 디바이스(202)는 그 보조 디바이스(206)에 대한 특정의 보조 컴퓨팅 환경(208)을 스트림(214)으로서 전송할 수 있다. 보조 컴퓨팅 환경(208)의 스트리밍(214)은 보조 디바이스(206)에 의한 렌더링을 위한 오디오, 비디오, 및 다른 형태들의 출력은 물론, 보조 디바이스(206)의 디바이스 속성들(108) 및 컴포넌트들에 대한 명령들의 주 디바이스(202)에 의한 전송을 수반할 수 있다. 보조 컴퓨팅 환경(208)의 스트리밍(214)은 또한 보조 컴퓨팅 환경(208)에 적용하기 위한, 사용자 입력, 보조 디바이스(206)에 의해 검출된 성능 메트릭, 및 보조 디바이스(206)의 디바이스 속성들(108)에 의해 발생된 데이터와 같은, 보조 디바이스(206)로부터의 입력을 수신하는 것을 수반할 수 있다.
그에 부가하여, 주 디바이스(202)는 또한, 주 컴퓨팅 환경(204)의 애플리케이션들 중에서, 각각의 보조 디바이스(206) 상에 제시될 애플리케이션 세트(210)를 선택할 수 있다. 사용자가 보조 디바이스(206)를 사용하려고 의도하고 있는 시나리오들에 관련된 애플리케이션들(206)을 선택하는 것과 같은, 이러한 선택은 보조 디바이스(206)의 디바이스 유형(예컨대, 보조 디바이스(206)의 폼 팩터), 보조 디바이스(206)의 디바이스 속성들(108), 및/또는 사용자(102)에 의한 보조 디바이스(206)의 의도된 용도를 수반할 수 있다. 각각의 보조 디바이스(206)로의 스트림(214)은 애플리케이션 세트(210)를, 예컨대, 리스트 또는 메뉴로서 제시하는 것을 포함할 수 있다. 그에 부가하여, 각자의 보조 디바이스들(206)에 대해, 주 디바이스(202)는 보조 디바이스(206)를 대신하여 애플리케이션들(112)을 실행할 수 있다(예컨대, 이러한 애플리케이션들(112)은 주 디바이스(202)의 프로세서, 메모리, 및 다른 계산 능력을 이용할 수 있다). 주 디바이스(202)가 특정의 보조 디바이스(206)에 대한 애플리케이션(112)을 인스턴스화하라는 요청을 수신할 때, 주 디바이스(202)는 애플리케이션(112)을 주 디바이스(202) 상에 인스턴스화할 수 있고, 애플리케이션(112)을 보조 컴퓨팅 환경(208)에 삽입할 수 있다(예컨대, 보조 컴퓨팅 환경(208)의 데스크톱 공간에 애플리케이션(112)에 대한 사용자 인터페이스를 생성하고; 입력 디바이스를 사용자 인터페이스에 바인딩시키며; 애플리케이션(112)을 보조 컴퓨팅 환경(208)에 대한 실행 중 애플리케이션들 목록(212)에 추가함). 더욱이, 주 디바이스(202)는 특정의 보조 디바이스(206)의 디바이스 속성들(108)에 대하여 애플리케이션(112)의 실행을 조정할 수 있고; 예컨대, 애플리케이션(112)의 사용자 인터페이스는 보조 디바이스(106)의 특정의 입력 능력, 출력 능력, 그리고 다른 이용가능한 컴포넌트들 및 자원들을 이용하도록 조정될 수 있다. 보조 컴퓨팅 환경(208)의 스트림(214)은 따라서, 디바이스(106)로 전송되어 그에 의해 제시되는, 보조 컴퓨팅 환경(208) 내에서의 애플리케이션(112)의 제시를 포함한다. 이러한 방식으로, 본원에서 제시되는 기법들에 따르면, 주 디바이스(202)는 주 컴퓨팅 환경(204)을 디바이스 컬렉션(104)의 보조 디바이스들(206)을 통해 사용자(102)에게 제시하는 것을 가능하게 할 수 있다.
C. 기술적 효과
주 컴퓨팅 환경(204)을 디바이스 컬렉션(104)의 보조 디바이스들(206)을 통해 사용자(102)에게 제시하기 위해 본원에서 제시되는 기법들을 사용하는 것은, 일부 실시예들에서, 각종의 기술적 효과들을 가져올 수 있다.
본원에서 제시되는 기법들에 의해 달성가능할 수 있는 기술적 효과의 제1 예로서, 애플리케이션들(112)이 주 디바이스(202) 상에서 실행되는 경우, 애플리케이션들(112)은 한 세트의 공유 파일들(114)을 이용할 수 있고, 주 디바이스(202) 상에 설치된 한 세트의 공유 애플리케이션들(112)로부터 도출되며; 예컨대, 주 디바이스(202) 상에서 애플리케이션(112)을 설치하고 업데이트하는 것은 각각의 보조 디바이스(206)에 대한 애플리케이션 세트(210)에 애플리케이션(112)을 포함시키는 것을 가능하게 한다. 더욱이, 애플리케이션(112)의 실행 및 호환성은 각각의 보조 디바이스(206)의 특정의 아키텍처 상세들(예컨대, 보조 디바이스(206)의 프로세서 용량 및 명령어 세트 아키텍처)에 의존하지 않고 주 디바이스(202)의 아키텍처 상세들에만 의존한다. 이러한 방식으로, 애플리케이션들(112) 및 주 컴퓨팅 환경(204)이 보다 일관성있는 방식으로 사용자(102)에게 제시될 수 있다 - 즉, 의도적이지 않고 아키텍처 차이들, 컴퓨팅 컴포넌트들의 비호환성, 또는 다른 이러한 저해요인들에 의해 주도되는, 이러한 보조 디바이스들(206) 사이의 제시의 차이들을 감소시킴 -.
본원에서 제시되는 기법들에 의해 달성가능할 수 있는 기술적 효과의 제2 예로서, 보조 컴퓨팅 환경(208)을, 주 컴퓨팅 환경(202)을 조정한 것으로서, 제시하는 것은 사용자(102)에 의해 수행될 구성 및 유지관리의 양을 감소시킬 수 있다. 예를 들어, 이러한 애플리케이션(112)이 요망되는 디바이스 컬렉션(104)의 각각의 보조 디바이스(206) 상에서 애플리케이션(112)을 취득, 설치 및 구성하는 것이 아니라, 본원에서 제시되는 기법들은 사용자(102)가 주 디바이스(202) 상에서 애플리케이션(112)을 한 번 설치하고 구성하며, 그 후에 임의의 보조 디바이스(206)의 보조 컴퓨팅 환경(208)을 통해 애플리케이션에 액세스할 수 있게 한다. 더욱이, 본원에서 제시되는 기법들은 디바이스 컬렉션(104)의 중앙집중식 관리를 가능하게 할 수 있고; 예컨대, 사용자(102)는, 단순히 선택된 보조 디바이스(206)에 대해 주 디바이스(202)에 의해 주 컴퓨팅 환경(204)을 조정(adaptation)하는 것을 조절하는(adjust) 것에 의해, 각각의 보조 디바이스(206)의 보조 컴퓨팅 환경들(208)을 조절할 수 있다. 이러한 감소된 관리 비용은 디바이스 컬렉션(104)의 확장성을 용이하게 할 수 있고; 예컨대, 각각의 이러한 보조 디바이스(206)가 개별적으로 구성되고 유지될 필요가 없고 이러한 부가의 보조 디바이스들(206)에 대해 부가의 보조 컴퓨팅 환경들(208)을 제공하도록 주 디바이스(204)를 구성하기만 하면 되는 경우, 사용자(102)가 보조 디바이스들(206)을 디바이스 컬렉션(104)에 보다 쉽게 추가할 수 있다.
본원에서 제시되는 기법들에 의해 달성가능할 수 있는 기술적 효과의 제3 예로서, 보조 컴퓨팅 환경들(208) 및 애플리케이션들(112)의 실행은 보조 디바이스(206)의 디바이스 속성들(108)을 이용하도록 조정될 수 있고; 예컨대, 애플리케이션(112)은 주 디바이스(202)에의 용량이 큰 네트워크 연결 및 전력선으로부터의 풍부한 전력 공급을 갖는 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내의 동적이고 애니메이션화된 사용자 인터페이스를 제공할 수 있고, 주 디바이스(202)에의 제한된 네트워크 연결 및 배터리로부터의 제한된 전력 공급을 갖는 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내의 간단하고 정적인 사용자 인터페이스를 제공할 수 있다. 이러한 방식으로(그리고 터미널 서비스 시나리오들과 달리), 주 컴퓨팅 환경(204)의 제시는, 그를 제공하는 데 수반되는 유지관리의 양을 감소시키면서, 각각의 보조 디바이스(206)의 디바이스 속성들(108)을 보다 충분히 이용할 수 있다.
본원에서 제시되는 기법들에 의해 달성가능할 수 있는 기술적 효과의 제4 예로서, 주 디바이스(202)는 디바이스 컬렉션(104)의 보조 디바이스들(206) 간의 애플리케이션들(112)의 유연한 실행을 가능하게 할 수 있고; 예컨대, 애플리케이션(112)에 대한 사용자 인터페이스가 복수의 보조 디바이스들(206)에 걸쳐 분산될 수 있거나, 디바이스 컬렉션(104)이 변하는 경우에, 제1 보조 디바이스(206)로부터 제2 보조 디바이스(206)로 즉각 이동될 수 있다.
본원에서 제시되는 기법들에 의해 달성가능할 수 있는 기술적 효과의 제5 예로서, 다수의 보조 디바이스들(206)의 보조 컴퓨팅 환경들(208) 내에서 실행되는 애플리케이션들(112)의 상호작용이, 보조 디바이스들(206) 사이의 디바이스 및/또는 네트워크 상호연결을 이용하기보다는, 주 디바이스(202) 내의 프로세스간 통신 또는 파일 공유 메커니즘을 통해 쉽게 상호작용할 수 있다. 이러한 상호작용성은 이러한 상호연동적 애플리케이션들(112)의 개발 및 사용의 효율 및/또는 용이성을 용이하게 할 수 있다. 하나의 이러한 예로서, 사용자(102)는 제2 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내에서 실행 중인 애플리케이션(112)과 상호작용하기 위해 제1 보조 디바이스(206)에 부착된 입력 디바이스를 사용할 수 있다.
본원에서 제시되는 기법들에 의해 달성가능할 수 있는 기술적 효과의 제6 예로서, 주 디바이스(202) 상에서 주 컴퓨팅 환경(204)을 제시하고 애플리케이션들(112)을 실행하는 것은 전체적인 효율 이득을 제공할 수 있다. 예를 들어, 애플리케이션(112)의 다수의 인스턴스들을 실행하기 위해 다수의(어쩌면 많은 수의) 보조 디바이스들(206)을 사용하기보다는, 주 디바이스(202)는 많은 수의 이러한 보조 디바이스들(206)을 위해 애플리케이션(112)을 실행할 수 있을 것이다 - 예컨대, 다수의 보조 디바이스들(206)에 걸친 일부 계산 프로세스들의 중복 실행을 감소시킴 -. 예를 들어, 몇 개의 보조 디바이스들(206) 각각이 메일이 있는지 메일 서버를 일상적으로 폴링하는 것(이에 따라 어쩌면 많은 양의 이메일 요청들이 발생됨) 대신에, 주 디바이스(202)는 주기적으로 메일 서버에 질의할 수 있고, 새로운 메시지를 수신할 때, 다수의 보조 디바이스들(206)을 통해 통지를 전송할 수 있다. 이러한 효율 이득은 유리하게도 계산 자원들(예컨대, 프로세서 사용량, 저장소, 및 네트워크 대역폭)을 절감할 수 있고, 심지어 디바이스 컬렉션(104)을 관리하는 것의 총 유지관리 및 전력 비용을 감소시킬 수 있다.
본원에서 제시되는 기법들에 의해 달성가능할 수 있는 기술적 효과의 제7 예로서, 비교적 저성능의 보조 디바이스들(206)의 디바이스 컬렉션(104)에서 고품질 컴퓨팅 경험이 제공될 수 있다. 예를 들어, 보조 컴퓨팅 환경(208)을 렌더링하고 애플리케이션들(112)을 실행하는 것의 계산 부담을 주 디바이스(202)로 넘기는 것에 의해, 이 기법들은 로컬 컨텍스트에서 동일한 품질 레벨로 이러한 보조 컴퓨팅 환경(208)을 렌더링하기에 충분한 계산 자원들을 갖지 않을 수조차 있는 보조 디바이스(206) 상에서 고품질 보조 컴퓨팅 환경(208)을 제시하는 것을 가능하게 한다. 오래된 하드웨어가 따라서, 그를 통해 제시되는 컴퓨팅 환경의 품질을 꼭 떨어뜨리지는 않으면서, 디바이스 컬렉션(104)에 포함될 수 있다. 그에 부가하여, 디바이스 컬렉션(104) 전체의 성능이, 단순히 주 디바이스(202)의 자원들을 스케일링 업하는 것에 의해, 스케일링 업될 수 있고; 예컨대, 디바이스 컬렉션(104)에 걸친 컴퓨팅 환경의 고품질 렌더링들이 주 디바이스(202)의 프로세서 및 메모리 용량을 업그레이드하는 것에 의해 달성가능할 수 있다.
본원에서 제시되는 기법들에 의해 달성가능할 수 있는 기술적 효과의 제8 예로서, 본원에서 제시되는 기법들의 사용은 사용자(102)가, 사용자(102)에 의해 꼭 소유되는 것은 아닌 그리고/또는 주 디바이스(202)에 의해 정기적으로 액세스되는, 보조 디바이스들(206)의 디바이스 컬렉션(104) 상에 주 컴퓨팅 환경(204)을 제시하는 것을 달성할 수 있게 할 것이다. 예를 들어, 공개적으로 액세스가능한 컴퓨팅 작업 영역은 사용자(102)의 주 디바이스(202)와 인터페이싱할 때 주 디바이스(202) 상에 저장된 주 컴퓨팅 환경(204)을 제시하는 것을 가능하게 하는, 디스플레이들, 키보드들, 스피커들, 및 프린터들과 같은 주변기기 디바이스들을 비롯한, 보조 디바이스들(206)의 컬렉션을 포함할 수 있다. 이들 및 다른 기술적 효과들이 본원에서 제시되는 기법들의 다양한 구현들을 통해 달성가능할 수 있다.
D. 예시적인 실시예들
도 3은, 디바이스 컬렉션(104)의 보조 디바이스들(206)을 통해 주 컴퓨팅 환경(204)을 사용자(102)에게 제시하도록 주 디바이스(202)를 구성하는 예시적인 방법(300)으로서 예시되는, 본원에서 제시되는 기법들의 제1 예시적인 실시예를 제시한다. 예시적인 방법(300)은, 예컨대, 메모리 회로, 하드 디스크 드라이브의 플래터, 솔리드 스테이트 저장 디바이스, 또는 자기 또는 광학 디스크와 같은, 주 디바이스(202)의 메모리 컴포넌트에 저장되고, 디바이스의 프로세서 상에서 실행될 때, 주 디바이스(202)로 하여금 본원에서 제시되는 기법들에 따라 동작하게 하는 한 세트의 명령어들로서 구현될 수 있다.
예시적인 방법(300)은 302에서 시작되고, 주 디바이스(202)의 프로세서 상에서 명령어들을 실행하는 단계(304)를 포함한다. 구체적으로는, 프로세서 상에서 명령어들을 실행하는 단계(304)는 주 디바이스(202)로 하여금, 디바이스 컬렉션(104)의 각자의(306) 보조 디바이스들(206)에 대해, 보조 디바이스(206)에 대한 보조 컴퓨팅 환경(208)을 발생시키기 위해, 주 컴퓨팅 환경(204)을 보조 디바이스(206)의 한 세트의 디바이스 속성들(108)에 따라 조정하도록 한다(308). 프로세서 상에서 명령어들을 실행하는 단계(304)는 또한 주 디바이스(202)로 하여금, 선택된 애플리케이션(112)을 각자의(306) 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내에서 인스턴스화하라는 요청을 수신한 것에 응답하여(310), 보조 디바이스(206)의 디바이스 속성들(108)에 따라 선택된 애플리케이션(112)을 보조 컴퓨팅 환경(208) 내에서 조정하도록 하고(312), 보조 디바이스(206)를 대신하여 선택된 애플리케이션(112)을 실행하게 한다. 프로세서 상에서 명령어들을 실행하는 단계(304)는 또한 주 디바이스(202)로 하여금 보조 컴퓨팅 환경(208)의 제시를 각자의 보조 디바이스(206)로 스트리밍하게 한다(214). 이러한 방식으로, 명령어들은 주 디바이스(202)로 하여금 주 컴퓨팅 환경(204)을 디바이스 컬렉션(104)의 보조 디바이스들(206)을 통해 사용자(102)에게 제시하게 하고, 따라서 318에서 종료한다.
본원에서 제시되는 기법들의 제2 예시적인 실시예(예시되지 않음)는 디바이스 컬렉션(104)의 주 디바이스(202)에 의해 전송된 주 컴퓨팅 환경(204)을 사용자(102)에게 제시하도록 보조 디바이스(206)를 구성하는 예시적인 방법을 포함한다. 이 효과를 달성하는 예시적인 방법은, 예컨대, 보조 디바이스(206)로 하여금 보조 디바이스(206)의 한 세트의 디바이스 속성들(108)을 주 디바이스(202)로 전송하게 하고; 애플리케이션(112)을 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내에서 인스턴스화하라는 요청을 수신한 것에 응답하여, 요청을 주 디바이스(202)로 전송하게 하며; 주 디바이스(202)에 의해 실행되는 애플리케이션(112)을 포함하고 보조 디바이스(206)의 디바이스 속성들(108)에 따라 조정된 보조 컴퓨팅 환경(208)의 제시를 포함하는 스트림(214)을 주 디바이스(202)로부터 수신한 것에 응답하여, 보조 컴퓨팅 환경(208)을 사용자(102)에게 제시하게 하는 명령어들을, 보조 디바이스(206)의 프로세서 상에서, 실행하는 단계를 포함할 수 있다. 이러한 방식으로, 예시적인 방법은, 본원에서 제시되는 기법들에 따라, 보조 디바이스(206)가 주 컴퓨팅 환경(204)을 사용자(102)에게 제시할 수 있게 할 것이다.
도 4는, 본원에서 제시되는 기법들의 적어도 일부분을 구현하는 예시적인 주 디바이스(402) 및 예시적인 보조 디바이스(406) 상에서 각각 구현되는 예시적인 시스템들로서 예시된, 본원에서 제시되는 기법들의 추가의 예시적인 실시예들을 제시하고 있다. 예시적인 주 디바이스(402)는 주 컴퓨팅 환경(204)(예컨대, 한 세트의 애플리케이션들(112), 애플리케이션 구성들, 디바이스 드라이버들, 문서들 및 미디어 객체들과 같은 파일들(114), 사용자 계정들 및 자격 증명들, 그리고 애플리케이션 상태들)을 호스팅 및/또는 관리한다. 예시적인 보조 디바이스(404)는 적어도 하나의 디바이스 속성(108)(예컨대, 디바이스 유형, 하드웨어 또는 소프트웨어 컴포넌트들 및/또는 그의 능력, 그리고/또는 사용자(102)가 예시적인 보조 디바이스(404)와 상호작용하는 상황들), 및 예시적인 주 디바이스(402)로부터 보조 컴퓨팅 환경(208)을 수신하지 않을 때 예시적인 보조 디바이스(404)가 전형적으로 제시하는 기본 컴퓨팅 환경(432)을 나타낸다. 게다가, 이 예시적인 시나리오(400)에서, 예시적인 주 디바이스(402) 및 예시적인 보조 디바이스(404) 각각은 프로세서(406) 및 메모리(408)를 포함하고, 여기서 예시적인 시스템은 본원에서 제시되는 기법들에 따라 각자의 예시적인 디바이스로 하여금 컴퓨팅 환경을 사용자(102)에게 제시하게 한다. 각자의 예시적인 시스템들은, 예컨대, 각자의 예시적인 디바이스들의 메모리(408)에 저장된 한 세트의 명령어들을 각각 포함하는 한 세트의 컴포넌트들로서, 구현될 수 있고, 여기서 각자의 컴포넌트들의 명령어들은, 프로세서(406) 상에서 실행될 때, 예시적인 디바이스로 하여금 본원에서 제시되는 기법들에 따라 동작하게 한다. 대안적으로, 각자의 컴포넌트들은, 본원에서 제시되는 기법들에 따라 동작하는, 개별 회로 또는 하드웨어 디바이스, 또는 이들의 조합으로서 구현될 수 있다.
예시적인 주 디바이스(402)는 예시적인 보조 디바이스(404)에 대한 보조 컴퓨팅 환경(208)을 발생시키기 위해, 예시적인 보조 디바이스(404)에 대해, 예시적인 보조 디바이스(404)의 디바이스 속성들(108)에 따라 주 컴퓨팅 환경(204)을 조정하는(426), 보조 컴퓨팅 환경 발생기(412)를 포함하는 제1 예시적인 시스템(410)을 포함한다. 제1 예시적인 시스템(410)은, 선택된 애플리케이션(112)을 예시적인 보조 디바이스(404)의 보조 컴퓨팅 환경(208) 내에서 인스턴스화하라는 요청(428)을 수신한 것에 응답하여, 예시적인 보조 디바이스(404)의 디바이스 속성들(108)에 따라 선택된 애플리케이션(108)을 보조 컴퓨팅 환경(208) 내에서 조정하도록 하고, 예시적인 보조 디바이스(404)를 대신하여 선택된 애플리케이션(112)을 실행(430)하는 보조 디바이스 애플리케이션 인스턴스화기(414)를 추가로 포함한다. 제1 예시적인 시스템(410)은, 보조 컴퓨팅 환경(208)의 제시를 예시적인 보조 디바이스(404)로 스트리밍(214)하는, 보조 컴퓨팅 환경 송신기(416)를 추가로 포함한다.
예시적인 보조 디바이스(404)는, 예시적인 보조 디바이스(404)의 한 세트의 디바이스 속성들(108)을 예시적인 주 디바이스(402)로 전송하는 디바이스 속성 송신기(420)를 포함하는, 제2 예시적인 시스템(418)을 포함한다. 제2 예시적인 시스템은 예시적인 주 디바이스(402)에 의해 실행되는 애플리케이션(112)을 포함하고 예시적인 보조 디바이스(404)의 디바이스 속성들(108)에 따라 조정된 보조 컴퓨팅 환경(208)의 제시를 포함하는 스트림(214)을 예시적인 주 디바이스(202)로부터 수신한 것에 응답하여, 보조 컴퓨팅 환경(208)을 사용자(102)에게 제시하는 보조 환경 제시기(424)를 추가로 포함한다. 보조 디바이스(404)는, 예시적인 보조 디바이스(404) 상에 보조 컴퓨팅 환경(208)을 제시하라는 요청을 수신한 것에 응답하여, 예시적인 보조 디바이스(404)를 기본 컴퓨팅 환경(432)을 제시하는 것으로부터 보조 컴퓨팅 환경(208)을 제시하는 것으로 전환시키는, 기본 환경 인스턴스화기(420)를 추가로 포함한다. 이러한 방식으로, 이러한 예시적인 시스템을 이용하는 예시적인 주 디바이스(402) 및 예시적인 보조 디바이스(404)의 상호연동은 본원에서 제시되는 기법들에 따라 컴퓨팅 환경을 사용자(102)에게 협력하여 제시하는 것을 가능하게 할 수 있다.
또 다른 실시예는 본원에서 제시된 기법들을 적용하도록 구성된 프로세서 실행가능 명령어들을 포함하는 컴퓨터 판독가능 매체를 포함한다. 이러한 컴퓨터 판독가능 매체는, 다양한 물리적 현상들을 통해 전파될 수 있는 신호(예컨대, 전자기 신호, 음파 신호, 또는 광학 신호) 그리고 다양한 유선 시나리오들(예컨대, 이더넷 또는 광 섬유 케이블) 및/또는 무선 시나리오들(예컨대, WiFi와 같은 WLAN(wireless local area network), 블루투스와 같은 PAN(personal area network), 또는 셀룰러 또는 무선 네트워크)에서 전파될 수 있고, 디바이스의 프로세서에 의해 실행될 때, 디바이스로 하여금 본원에서 제시되는 기법들을 구현하게 하는 한 세트의 컴퓨터 판독가능 명령어들을 인코딩하는 신호와 같은, 다양한 유형들의 통신 매체를 포함할 수 있다. 이러한 컴퓨터 판독가능 매체는 또한 (통신 매체를 배제하는 한 부류의 기술들로서), 디바이스의 프로세서에 의해 실행될 때, 디바이스로 하여금 본원에서 제시되는 기법들을 구현하게 하는 한 세트의 컴퓨터 판독가능 명령어들을 인코딩하는, 메모리 반도체(예컨대, SRAM(static random access memory), DRAM(dynamic random access memory), 및/또는 SDRAM(synchronous dynamic random access memory) 기술들을 이용하는 반도체), 하드 디스크 드라이브의 플래터, 플래시 메모리 디바이스, 또는 자기 또는 광학 디스크(CD-R, DVD-R, 또는 플로피 디스크 등)와 같은 컴퓨터 판독가능 메모리 디바이스들을 포함할 수 있다.
이러한 방식으로 고안될 수 있는 예시적인 컴퓨터 판독가능 매체가 도 5에 나타내어져 있으며, 여기서 구현(500)은 컴퓨터 판독가능 데이터(504)가 인코딩되어 있는 컴퓨터 판독가능 메모리 디바이스(502)(예컨대, CD-R, DVD-R 또는 하드 디스크 드라이브의 플래터)를 포함한다. 컴퓨터 판독가능 데이터(504)는 차례로, 디바이스(510)의 프로세서(406) 상에서 실행될 때, 디바이스(510)로 하여금 본원에 기재되는 원리들에 따라 동작하게 하는 한 세트의 컴퓨터 명령어들(506)을 포함한다. 제1 이러한 실시예에서, 도 3의 예시적인 방법(300)과 같이, 프로세서 실행가능 명령어들(506)은 주 디바이스(202)로 하여금 디바이스 컬렉션(104)의 하나 이상의 보조 디바이스들(206)을 통해 컴퓨팅 환경을 사용자(102)에게 제시하게 할 수 있다. 제3 이러한 실시예에서, 프로세서 실행가능 명령어들(506)은, 도 4의 예시적인 시나리오(400)에 제시된 예시적인 시스템들과 같은, 주 디바이스(202) 및/또는 보조 디바이스(206)로 하여금 컴퓨팅 환경을 사용자(102)에게 제시하는 시스템을 구현하게 할 수 있다. 본원에서 제시되는 기법들에 따라 동작하도록 구성되어 있는 많은 이러한 컴퓨터 판독가능 매체가 본 기술 분야의 통상의 기술자에 의해 고안될 수 있다.
E. 변형들
본원에서 논의되는 기법들은 많은 양태들에서의 변형들로 고안될 수 있으며, 일부 변형들은 이들 및 다른 기법들의 다른 변형들에 관련하여 부가의 장점들을 제공할 수 있고 그리고/또는 단점들을 감소시킬 수 있다. 더욱이, 일부 변형들은 조합하여 구현될 수 있고, 일부 조합들은 상승적 협력을 통해 부가의 장점들 및/또는 감소된 단점들을 특징으로 할 수 있다. 변형들은 다양한 실시예들(예컨대, 도 3의 예시적인 방법(300); 도 4의 예시적인 시스템들(410, 418); 및 도 5의 예시적인 메모리 디바이스(502))에 포함되어 이러한 실시예들 개별적 및/또는 상승적 장점들을 부여할 수 있다.
E1. 시나리오들
이 기법들의 실시예들 간에 변할 수 있는 제1 양태는 이러한 기법들이 이용될 수 있는 시나리오들을 관한 것이다.
이 제1 양태의 제1 변형으로서, 워크스테이션, 랩톱, 태블릿, 휴대폰, 게임 콘솔, 휴대용 게임 디바이스, 휴대용 또는 비휴대용 미디어 플레이어, 텔레비전과 같은 디어 디스플레이 디바이스, 가전제품, 홈 오토메이션 디바이스, 접안경 또는 손목시계와 같은 웨어러블 디바이스와 통합된 컴퓨팅 컴포넌트, 그리고 SCADA(supervisory control and data acquisition) 디바이스와 같은, 디바이스 컬렉션(104)의 각종의 디바이스들(106)의 구성을 달성하기 위해, 본원에서 제시되는 기법들이 이용될 수 있다.
이 제1 양태의 제2 변형으로서, 본원에서 제시되는 기법들은, 사무실 생산성 애플리케이션들; 오디오 및 비디오 플레이어들과 같은, 미디어 제시 애플리케이션들; 웹 브라우저, 이메일 클라이언트, 채팅 클라이언트, 및 VoIP(voice over IP) 클라이언트와 같은 통신 애플리케이션들; 지리 위치, 지도 제작, 및 경로 안내(routing) 애플리케이션들과 같은, 내비게이션 애플리케이션들; 경보들을 사용자(102)에게 제시하는 날씨 및 뉴스 모니터링 애플리케이션들과 같은, 유틸리티들; 및 게임들과 같은, 각자의 보조 디바이스들(206)의 보조 컴퓨팅 환경들(208) 내에 제시되는 각종의 애플리케이션들(112)들에서 이용될 수 있다. 더욱이, 보조 컴퓨팅 환경들(208)의 애플리케이션들(112)은, 텍스트, 영상, 라이브 및/또는 사전 녹화된 비디오, 사운드 효과, 음악, 음성, 촉각적 피드백, 3차원 렌더링, 그리고 상호작용적 및/또는 비상호작용적 사용자 인터페이스와 같은 하나 이상의 제시 방식들은 물론, 텍스트 입력, 포인팅 입력, 촉각적 입력, 제스처 입력, 구두 입력, 및 시선 추적 입력과 같은, 사용자(102)로부터 사용자 입력을 수신하는 다양한 기법들을 통해 콘텐츠를 제시하는 것을 포함할 수 있다.
이 제1 양태의 제3 변형으로서, 디바이스 컬렉션(104)의 디바이스들(106) 내에서 그리고/또는 그들 사이에서 각종의 아키텍처들에 대해 본원에서 제시되는 기법들이 이용될 수 있다. 제1 이러한 예로서, 주 디바이스(202)는 또한 디바이스 컬렉션(104)의 일부(예컨대, 사용자(102)의 휴대폰)일 수 있고, 따라서 또한 보조 디바이스(206)로서 동작할 수 있다. 사용자(102)는 상이한 때에 그리고/또는 상이한 상황들에서 다양한 보조 디바이스들(206)을 주 디바이스(202)로서 지정할 수 있다. 대안적으로, 주 디바이스(202)는 디바이스 컬렉션(104) 밖에 있을 수 있고, 각자의 보조 디바이스(108)에 대해 보조 컴퓨팅 환경들(208)을 구동하기 위해 디바이스 컬렉션(104)과 상호작용할 수 있다. 제2 이러한 예로서, 주 디바이스(202) 및/또는 각자의 보조 디바이스들(206)은, 유선 디스플레이, 스피커, 및 헤드폰과 같은, 각각의 이러한 디바이스와 직접 그리고 물리적으로 연결되는 컴포넌트들을 이용할 수 있다. 제3 이러한 예로서, 주 디바이스(202) 및/또는 각자의 보조 디바이스들(206)은, 무선 주파수와 같은, 무선 연결을 통해 액세스가능한 하나 이상의 컴포넌트들을 이용할 수 있다. 제4 이러한 예로서, 주 디바이스(202) 및/또는 각자의 보조 디바이스들(206)은 본원에서 제시되는 기법들에 따라 상호 연동하기 위해 PAN(personal-area network), LAN(local-area network), 및/또는 WAN(wide-area network)을 통해 통신할 수 있다. 제5 이러한 예로서, 주 디바이스(202) 및/또는 각자의 보조 디바이스들(206)은, 클라이언트/서버 또는 피어-투-피어 아키텍처에서와 같이, 디바이스 컬렉션(104)의 다른 디바이스를 통해 액세스가능한 하나 이상의 컴포넌트들을 이용할 수 있다. 더욱이, 디바이스 컬렉션(104)의 주 디바이스(202) 및/또는 각자의 보조 디바이스들(206)은 하나의 사용자(102)에 의해 또는 일군의 사용자들(102)에 의해 이용될 수 있고, 그리고/또는 적어도 하나의 제2 사용자(102)를 대신하여 적어도 하나의 제1 사용자(102)에 의해 제어될 수 있다. 본원에서 제시되는 기법들에 따라 디바이스 컬렉션(104)의 주 디바이스(202)와 각자의 보조 디바이스들(206)의 상호연동을 통해 컴퓨팅 환경을 제시하는 데 이들 및 다른 시나리오들이 적당할 수 있다.
E2. 보조 컴퓨팅 환경의 발생 및 전송
본원에서 제시되는 기법들의 실시예들 사이에서 변할 수 있는 제2 양태는 주 디바이스(202)가 보조 컴퓨팅 환경(208)을 포함하는 스트림(214)을 각자의 보조 디바이스들(206)로 전송하고, 각자의 보조 디바이스들(206)이 보조 컴퓨팅 환경(208)을 사용자(102)에게 제시하는 방식에 관한 것이다.
이 제2 양태의 제1 변형으로서, 보조 컴퓨팅 환경(208) 및/또는 보조 디바이스(206)를 위해 그 안에서 실행되는 애플리케이션들(112)을 발생시키고 조정하기 위해 보조 디바이스(206)의 많은 유형들의 디바이스 속성들(108)이 식별되고 사용될 수 있다. 제1 이러한 예로서, 보조 디바이스(206)의 디바이스 속성들(108)은, 다양한 프로세서들 및 코프로세서들의 계산 처리율, 병렬 처리 지원, 및 명령어 세트 아키텍처들; 메모리 및 저장소의 용량, 속도, 및 휘발성; 키보드, 마우스, 터치 감응 디스플레이, 마이크로폰, 및 카메라와 같은, 다양한 입력 디바이스들의 방식, 감도, 및 인식 능력; 다양한 시각적 출력 디바이스의 크기, 해상도, 및 응답성; 다양한 오디오 출력 디바이스의 볼륨 및 품질; 다양한 통신 디바이스의 처리율, 지연시간, 및 버퍼 용량; 그리고 프린터, 스캐너, 및 생체 인식 센서와 같은, 다양한 다른 주변기기 디바이스들의 속성들과 같은, 다양한 하드웨어 컴포넌트들의 존재 및 기능을 포함할 수 있다. 제2 이러한 예로서, 보조 디바이스(206)의 디바이스 속성들(108)은, 다양한 형태들의 미디어를 인코딩 및/또는 디코딩하는 것; 다양한 유형들의 데이터를 암호화, 압축, 압축 해제, 복호화, 및/또는 검증하는 것; 하드웨어 및/또는 소프트웨어 에뮬레이션 또는 다양한 유형들의 언어 파싱 또는 번역 자원들의 액세스가능성을 통하는 것과 같이, 다양한 명령어 세트들 및 가상 디바이스들을 이용하는 것; 3차원 그래픽 렌더링과 같은, 다양한 유형들의 그래픽 요청들을 처리하는 것; 그리고 사용자 인증과 같은, 다양한 보안 대책들을 적용하는 것과 같이, 부분적으로 또는 전체적으로 소프트웨어를 통해 달성가능한 계산 능력을 포함할 수 있다. 제3 이러한 예로서, 보조 디바이스(206)의 디바이스 속성들(108)은, 전력의 이용가능성(예컨대, 전력선, 배터리, 및 UPS(uninterruptible power supply)의 존재 및 동작 상태)과 같은, 보조 디바이스(206)가 사용되는 상황들을 포함할 수 있다. 제4 이러한 예로서, 보조 디바이스(206)의 디바이스 속성들(108)은, NAS(network-attached storage)의 액세스가능성과 같은, 보조 디바이스(206)와 다른 디바이스들 사이의 상호관계들과, 다른 디바이스들과의 그의 피어-투-피어, 클라이언트/서버, 및/또는 지배-종속(superior-subordinate) 관계들과 같은, 네트워크에서의 보조 디바이스(206)의 역할을 포함할 수 있다. 제5 이러한 예로서, 보조 디바이스(206)의 디바이스 속성들(108)은, 보조 디바이스(206)의 공개, 비밀, 및/또는 보안된 성질, 그리고 특정의 사용자(102)가 수행하기 위해 전형적으로 보조 디바이스(206)와 연계하는 작업들과 같은, 하나 이상의 사용자들(102)이 보조 디바이스(206)와 상호작용하는 컨텍스트를 포함할 수 있다.
이 제2 양태의 제2 변형으로서, 주 디바이스(202)는 각종의 방식들로 보조 디바이스(206)의 디바이스 속성들(108)을 결정할 수 있다. 제1 이러한 예로서, 보조 디바이스(206)는, 보조 디바이스(206)의 각각의 하드웨어 컴포넌트에 질의하고 그를 식별하는 것에 의해서와 같이, 보조 디바이스(206)의 다양한 디바이스 속성들을 검출할 수 있고, 이러한 정보를 주 디바이스(202)로 전송할 수 있다. 제2 이러한 예로서, 보조 디바이스(206)는 보조 디바이스 식별자(예컨대, 제품 번호, 모델 번호, 및/또는 일련 번호)를 포함할 수 있고, 주 디바이스(202) 및/또는 보조 디바이스(206)는 보조 디바이스 식별자와 연관된 이러한 보조 디바이스(206)의 디바이스 속성들(108)을 식별하기 위해 디바이스 카탈로그에서 보조 디바이스(206)의 디바이스 속성들(108)을 탐색할 수 있다. 제3 이러한 예로서, 보조 디바이스(206) 및/또는 주 디바이스(202)는 특정의 동작 조건들 하에서 보조 디바이스(206)의 동작을 측정할 수 있다(예컨대, 테스트 조건들 하에서 또는 정상적인 사용 동안 보조 디바이스(206)의 처리 용량 및/또는 네트워크 용량을 평가함). 제4 이러한 예로서, 보조 디바이스(206) 및/또는 주 디바이스(202)는 보조 디바이스(206)의 디바이스 속성들(108)을 예측 및/또는 추론할 수 있고; 예컨대, 사용자(102)가 보조 디바이스(206)와 상호작용하는 컨텍스트는 보조 디바이스(206)에서 종종 수행되는 작업들을 모니터링하는 것에 의해 달성되는 추론에 의해 결정될 수 있다. 제5 이러한 예로서, 보조 디바이스(206) 및/또는 주 디바이스(202)는 보조 디바이스(206)의 디바이스 속성들(108)에 관한 정보를 하나 이상의 사용자들(102)로부터 수신할 수 있다. 제6 이러한 예로서, 주 디바이스(202)는 (예컨대, 보조 디바이스(206)에 대한 애플리케이션(112)을 인스턴스화하라는 요청을 수신할 때) 이러한 정보가 있는지 보조 디바이스(206)에 폴링할 수 있고, 그리고/또는 보조 디바이스(206)는 정보를 (예컨대, 디바이스 컬렉션(104)에 합류하라는 요청의 일부로서) 주 디바이스(202)로 푸시할 수 있다.
이 제2 양태의 제3 변형으로서, 주 디바이스(402)는 주 컴퓨팅 환경(204)으로부터 조정된 보조 컴퓨팅 환경(208)을 다수의 방식들로 발생시킬 수 있다. 제1 이러한 예로서, 주 디바이스(202)는 주 컴퓨팅 환경(204)을 템플릿 이미지로서 저장할 수 있고, 보조 컴퓨팅 환경(208)을, 보조 디바이스(206)의 디바이스 속성들(108)을 고려하여 적용되는 조절들을 갖는 주 컴퓨팅 환경(204)의 클론(clone)으로서, 발생시킬 수 있다. 제2 이러한 예로서, 주 디바이스(202)는 주 컴퓨팅 환경(204)을 능동적으로 이용할 수 있고, 특정의 보조 디바이스(206)에 대해 조정된 보조 컴퓨팅 환경(208)을 발생시키기 위해, diff 파일(diff file)과 같은, 변환을 발생시키고, 저장하며, 적용할 수 있다. 제3 이러한 예로서, 주 컴퓨팅 환경(204)은 모든 보조 디바이스들(206)에서 이용가능한 기능의 수퍼셋(예컨대, 운영 체제 및 컴퓨팅 환경 설정들, 애플리케이션들(112), 애플리케이션 구성들, 애플리케이션 상태들, 및 사용자 계정들의 전체 세트)을 포함할 수 있고, 주 디바이스(202)는 주 컴퓨팅 환경(204)의 기능의 서브셋을 특정의 보조 디바이스(206)의 보조 컴퓨팅 환경(208)으로서 선택할 수 있다. 예를 들어, 특정의 애플리케이션(112)은 주 컴퓨팅 환경(204) 내에서 다양한 유형들의 보조 디바이스들(206)에 대해, 각각, 조정되어 있는 한 세트의 애플리케이션 변형들(예컨대, 워크스테이션 폼 팩터 사용자 인터페이스; 대형 디스플레이 사용자 인터페이스; 및 다양한 모바일 디바이스들에 대한 소형 디스플레이 사용자 인터페이스)로서 저장될 수 있고, 주 디바이스(202)는 각각의 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내에서 제시하는 데 적당한 애플리케이션 변형을 선택할 수 있다. 이러한 기법들은 주 디바이스(202)의 자원들의 재사용(예컨대, 많은 수의 보조 디바이스들(206)을 대신하여 특정의 애플리케이션 또는 애플리케이션 라이브러리의 단일의 사본을 저장하고 사용하는 것)을 가능하게 할 수 있다.
이 제2 양태의 제4 변형으로서, 주 디바이스(202)는 다수의 방식들로 보조 컴퓨팅 환경(208)의 스트림(214)을 보조 디바이스(206)에 렌더링 및/또는 전송할 수 있다. 제1 이러한 예로서, 주 디바이스(202)는 보조 디바이스(206)로부터 입력 스트림을 수신할 수 있고, 그리고/또는 비디오 및/또는 오디오 출력을 보조 디바이스(206)로 스트리밍할 수 있다. 제2 이러한 예로서, 주 디바이스(202)는, 스트림(214)에서의 다음 비디오 프레임을 생성하기 위해, 현재 제시된 비디오 프레임의 차분 업데이트(differential update)와 같은, 그래픽 프리미티브 명령어들의 스트림을 보조 디바이스(206)로 전송할 수 있다. 제3 이러한 예로서, 주 디바이스(202)는, 보조 디바이스(206)의 보조 컴퓨팅 환경(208)의 일부 또는 전부를 렌더링하기 위해, 보조 디바이스(206) 상에서 실행될 수 있는 하위 애플리케이션(subordinate application)을 보조 디바이스(206)로 전송할 수 있다. 제4 이러한 예로서, 주 디바이스(202)는 보조 컴퓨팅 환경(208)의 일부분 또는 전체에 대한 스트림(214)을 2개 이상의 보조 디바이스들(206) 상에 제시하기 위해 그들로 멀티캐스팅할 수 있다. 제5 이러한 예로서, 주 디바이스(202)는, 사용자(102)에게 보조 컴퓨팅 환경(208)을 제시하는 제2 보조 디바이스(206)로 재전송하기 위해, 제1 보조 디바이스(206)에 대한 보조 컴퓨팅 환경(208)의 일부분을 전송할 수 있다.
이 제2 양태의 제5 변형으로서, 주 디바이스(202)는 각자의 보조 디바이스들(206) 상에서의 적절한 사용자 경험을 제공하기 위해 보조 컴퓨팅 환경들(208)의 제공을 조정할 수 있다. 예를 들어, 주 디바이스(202)는 특정의 수의 보조 디바이스들(206)에 대한 적당히 응답성 좋은 사용자 경험을 제공하기 위해 적절한 계산 자원들을 가질 수 있지만, 너무 많은 보조 디바이스들(206)로 과부하를 겪으면, 주 디바이스(202)는, 일부 보조 디바이스들(206)에 대한 보조 컴퓨팅 환경들(208)의 스트림(214)의 전송에서의 지연 및/또는 중단과 같은, 저하되고 만족스럽지 않는 성능을 나타낼 수 있다. 저하되고 만족스럽지 않은 서비스 품질을 완화시키기 위해 다양한 기법들이 이용될 수 있다. 제1 이러한 예로서, 주 디바이스(202)는 주 디바이스(202)가 동시에 구동할 수 있는 보조 디바이스들(206)의 최대 보조 디바이스 개수를 추정할 수 있고(예컨대, 최대 6개의 동시에 서비스되는 보조 디바이스들(206)), 디바이스 컬렉션(104)을 구성하는 보조 디바이스들(206)의 보조 디바이스 개수를 최대 보조 디바이스 개수로 한정할 수 있다. 이러한 추정은, 주 디바이스(202)가 각자의 보조 디바이스들(206)에 대한 보조 컴퓨팅 환경(208)의 최소 사용자 경험 품질로(예컨대, 각각의 보조 디바이스(208)가 초당 20 프레임 이상의 스트림(214)을 일관성있게 수신할 수 있도록 보장함) 구동할 수 있는 보조 디바이스들의 최대 보조 디바이스 개수의 추정과 같은, 각종의 상황들을 포함할 수 있다. 이러한 추정은, 예컨대, 다양한 상황들에서 보조 디바이스들(206) 상에서의 달성가능한 서비스 품질을 측정하는 것에 의해 통보될 수 있고, 변하는 상황들을 반영하도록 되어 있을 수 있다(예컨대, 보다 풍부한 처리 및/또는 네트워크 용량이 제공되는 경우 최대 보조 디바이스 개수를 확장함). 보조 디바이스들(206)에 대한 보조 컴퓨팅 환경(208)의 발생, 제시, 및 전송에서의 많은 이러한 구성들이 본원에서 제시되는 기법들에 따라 이용될 수 있다.
E3. 애플리케이션의 인스턴스화 및 실행
본원에서 제시되는 기법들의 실시예들 간에 변할 수 있는 제3 양태는 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내에서 애플리케이션(112)을 인스턴스화 및/또는 실행하는 방식을 포함한다.
이 제3 양태의 제1 변형으로서, 특정의 보조 디바이스(206)의 사용자(102)에 의한 사용자 선택에 따라 보조 컴퓨팅 환경(208) 내에서 애플리케이션(112)을 인스턴스화하라는 요청. 예를 들어, 특정의 보조 디바이스(206)에 대해, 주 디바이스(202)는, 주 컴퓨팅 환경(204)의 애플리케이션 세트로부터, 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내에서 제시될 애플리케이션들(112)의 애플리케이션 서브셋을 선택할 수 있다. 주 디바이스(202)는 보조 컴퓨팅 환경(208) 내의 애플리케이션 서브셋을 보조 디바이스(206)에 (예컨대, 이용가능한 애플리케이션들(112)의 리스트 또는 메뉴로서) 제시할 수 있고, 보조 컴퓨팅 환경(208) 내에 제시되는 애플리케이션 서브셋으로부터의 애플리케이션(112)의 선택을 수신할 수 있다(예컨대, 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내에 제시되는 메뉴로부터의 애플리케이션(112)의 사용자 선택을 사용자(102)로부터 수신함).
이 제3 양태의 제2 변형으로서, 제1 보조 디바이스의 제1 보조 컴퓨팅 환경(208) 내에서 애플리케이션(112)을 인스턴스화하라는 요청(428)이 수신될 수 있고, 여기서 요청(428)은 디바이스 컬렉션(104)의 제2 보조 디바이스(206)의 사용자(102)로부터 수신된다. 그에 따라, 주 디바이스(202)는 제1 보조 디바이스(206)의 제1 보조 컴퓨팅 환경(208) 내에서 선택된 애플리케이션(112)을 인스턴스화하는 것에 의해 요청(428)을 이행할 수 있다.
이 제3 양태의 제3 변형으로서, 디바이스 컬렉션(104)의 사용자(102)는 처음에 디바이스 컬렉션(104)의 하나 이상의 보조 디바이스들(206)을 통해 그리고/또는 그들을 대신하여 실행가능한 애플리케이션들(112)의 컬렉션 전체를 제시받을 수 있다. 사용자(102)가 애플리케이션 세트의 선택된 애플리케이션의 선택을 제공할 때, 사용자(102)는 이어서 애플리케이션(112)을 실행할 수 있는 보조 디바이스들(206)의 리스트를 제시받을 수 있고; 선택된 보조 디바이스(206)의 선택을 수신한 것에 응답하여, 주 디바이스(202)는 선택된 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내에서 애플리케이션(112)을 인스턴스화할 수 있다. 다른 이러한 예로서, 사용자(102)는 처음에 디바이스 컬렉션(104)을 구성하는 보조 디바이스들(206)의 리스트를 제시받을 수 있다. 선택된 보조 디바이스(208)의 선택을 수신한 것에 응답하여, 사용자는 선택된 보조 디바이스(208) 상에서 실행가능한 애플리케이션들(112)의 애플리케이션 서브셋을 제시받을 수 있고; 애플리케이션 서브셋의 선택된 애플리케이션(112)의 선택을 수신한 것에 응답하여, 주 디바이스(202)는 선택된 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내에서 선택된 애플리케이션(112)을 인스턴스화할 수 있다.
이 제3 양태의 제4 변형으로서, 디바이스 컬렉션(104)의 사용자(102)는 특정의 보조 디바이스(206)에 대한 애플리케이션 서브셋(예컨대, 보조 디바이스(206)에 대한 추천된 애플리케이션들(112)의 세트)의 선택을 번복할 수 있다. 보조 디바이스(206)에 대해 선택된 애플리케이션 서브셋만이 아니라, 보조 컴퓨팅 환경(208) 내에서 주 컴퓨팅 환경(204)의 애플리케이션 세트 전체를 제시하라는 요청을 수신한 것에 응답하여, 사용자(102)는 애플리케이션 세트 전체를 제시받을 수 있다. 보조 디바이스(206)에 대해 선택된 애플리케이션 서브셋 내에 있지 않은 보조 디바이스(206)에 대한 선택된 애플리케이션(112)의 선택을 수신한 것에 응답하여, 주 디바이스(202)는 그럼에도 불구하고 선택된 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내에서 선택된 애플리케이션(112)을 인스턴스화할 수 있다.
이 제3 양태의 제5 변형으로서, 주 디바이스(202)는 선택된 애플리케이션(112)을 인스턴스화하기 위해 디바이스 컬렉션(104)의 보조 디바이스(206)를 자동으로 선택할 수 있다. 예를 들어, 선택된 애플리케이션(112)을 인스턴스화하라는 요청(428)을, 사용자(102)로부터, 수신한 것에 응답하여, 그러나 요청(428)이 애플리케이션(112)이 보조 컴퓨팅 환경(208) 내에서 실행되어야 하는 디바이스 컬렉션(104)의 선택된 보조 디바이스(208)를 나타내지 않는 경우, 주 디바이스(202)는, 디바이스 컬렉션(104) 중에서, 후보 보조 디바이스(206)의 디바이스 속성들(108)이 선택된 애플리케이션(112)와 호환되는, 적어도 하나의 후보 보조 디바이스(206)를 식별할 수 있다. 주 디바이스(202)는 이어서 후보 보조 디바이스들206) 중에서 선택된 보조 디바이스(206)를 선택할 수 있고, 선택된 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내에서 선택된 애플리케이션(112)을 인스턴스화할 수 있다.
도 6은 특정의 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내에서 애플리케이션들(112)을 인스턴스화하는 것을 가능하게 하기 위한 부가의 기법을 나타내는 예시적인 시나리오들의 예시를 제시한다. 도 6의 제1 예시적인 시나리오(600)에서, 사용자(102)는 처음에 보조 디바이스 애플리케이션 세트들(602)의 리스트, 예컨대, 각자의 보조 디바이스들(206) 및 각각의 보조 디바이스(206) 상에서 이용가능한 애플리케이션 서브셋(604)의 리스트를 제시받을 수 있다. 특정의 보조 디바이스(206)의 선택된 애플리케이션 서브셋(604) 내에서의 선택된 애플리케이션(112)의 선택(606)을 사용자(102)로부터 수신할 때, 주 디바이스(202)는 선택된 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내에서 애플리케이션(112)을 인스턴스화할 수 있다.
도 6의 제2 예시적인 시나리오(610)에서, VoIP(voice-over-IP) 애플리케이션과 같은 애플리케이션(112)은, 사용자(102)에게 제시되어야 하는 착신 전화(612)와 같은, 이벤트에 의해 개시될 수 있다. 주 디바이스(202)는 이벤트에 대해, 먼저 애플리케이션(112)에 의해 이용되는 컴포넌트들 및 능력들(예컨대, 마이크로폰 및 스피커들)과 같은, 애플리케이션의 다양한 애플리케이션 기준들(614); 이벤트를 핸들링하는 데 보조 디바이스(108)의 이용가능성과 같은, 보조 디바이스(206)에 관한 기준들; 및/또는 보조 디바이스(206)에 대한 사용자(102)의 근접성과 같은, 사용자(102)에 관한 기준들을 평가하는 것으로 응답할 수 있다. 디바이스 속성들 평가(616)은 애플리케이션(112)의 애플리케이션 기준들(614)에 부합하는 후보 보조 디바이스들(206)을 식별하기 위해 수행될 수 있다. 예를 들어, 사용자(102)가 회의에 참가하고 있는 동안 각종의 보조 디바이스들(206)을 이용하고 있는 경우, 제1 보조 디바이스(206)는 마이크로폰 및 스피커를 가질 수 있고, 사용자(102)로부터 근접 범위 내에 있을 수 있지만, 이벤트를 핸들링하는 데 이용가능하지 않을 수 있다(예컨대, 보조 디바이스(206)는 사용자(102)가 회의 동안 프레젠테이션을 디스플레이하는 데 사용하고 있는 랩톱 컴퓨터, 또는 사용자의 주머니에 들어 있지만 사용자(102)가 "방해 금지" 옵션을 활성화시켜둔 전화기를 포함할 수 있다). 제2 보조 디바이스(206)는 또한 마이크로폰 및 스피커들을 포함할 수 있고, 이벤트를 핸들링하는 데 이용가능할 수 있지만, 사용자(102)로부터 근접 범위 내에 있지 않을 수 있다(예컨대, 보조 디바이스(206)는, 유휴 상태일 수 있지만, 사용자(102)가 회의로 자리를 비우는 동안 사용자의 사무실에 역시 위치되어 있을 수 있는, 사용자의 워크스테이션을 포함할 수 있다). 제3 보조 디바이스(206)는 애플리케이션 기준들(614)에 부합하는 디바이스 속성들(108)을 나타낼 수 있다(예컨대, 명시된 컴포넌트들을 가지는, 회의 동안 사용자(102)에 의해 착용되는 이어폰은 사용자(102)에 근접해 있고, 착신 전화(612)를 제시하는 데 이용가능하다). 주 디바이스(202)는 따라서 (디바이스 컬렉션(104)의 유일한 후보 보조 디바이스(206)로서) 이벤트를 위해 제3 보조 디바이스(206)의 선택(618)을 수행할 수 있고, 착신 전화(612)를 사용자(102)에게 제시하기 위해 제3 보조 디바이스로 라우팅할 수 있다.
이 제3 양태의 제6 변형으로서, 주 디바이스(202)는 특정의 보조 디바이스(206)의 보조 컴퓨팅 환경(208)에 대한 애플리케이션(112) 전체를 로컬적으로 실행할 수 있고, 사용자 인터페이스의 영상들만을 보조 디바이스(206)로 전송할 수 있다. 대안적으로, 주 디바이스(202)는 애플리케이션(112)의 일부 컴포넌트들을, 보조 디바이스(208)에 의한 사용을 위해, 보조 디바이스(208)에 배포할 수 있다. 예를 들어, 주 디바이스(202)는 제1 그래픽 코프로세서를 포함할 수 있고, 특정의 보조 디바이스(208)는 제2 그래픽 코프로세서를 포함할 수 있다. 보조 디바이스(208)를 대신하여 애플리케이션(112)을 실행하기 위해, 주 디바이스(202)는 제1 그래픽 코프로세서 상에서 애플리케이션(112)에 대한 그래픽을 렌더링할 수 있고; 애플리케이션(112)에 포함시키기 위한 이러한 그래픽을 렌더링하기 위해 보조 디바이스(208)의 제2 그래픽 코프로세서로 전달될 명령어들을 스트림(214)에 포함시킬 수 있으며; 그리고/또는 이들의 조합을 이용할 수 있고, 여기서 그래픽 렌더링의 일부는 제1 그래픽 코프로세서 상에서 수행되고, 나머지는 제2 그래픽 코프로세서 상에서 수행된다. 이러한 결정들은, 예컨대, 각각의 이러한 그래픽 코프로세서의 능력의 비교, 각각의 그래픽 코프로세서의 현재 부하(예컨대, 주 디바이스(202)는, 그의 그래픽 코프로세서가 다른 애플리케이션들(112)에 의해 과도하게 이용되는 경우, 일부 처리를 오프로드할 수 있음), 및/또는 각각의 프로세스의 효율의 비교(예컨대, 그래픽 명령어들의 스트림(214)을 송신하는 경우 대 전체적으로 또는 부분적으로 렌더링된 비디오를 송신하는 경우 달성가능한 네트워크 처리율)에 기초하여, 결정될 수 있다. 애플리케이션들(112)의 실행의 분산에서의 다른 이러한 변형들은, 예컨대, 보조 컴퓨팅 환경(208)에 적용하기 위해 보조 디바이스(206)로부터의 원시 디바이스 입력(마우스 움직임 등)을 수신하도록 주 디바이스(202)를 구성하는 것, 또는 사용자 입력의 일부 초기 분석을 수행하고 보조 컴퓨팅 환경(208)에 적용하기 위해 외삽된 결과들(포인터 관련 이벤트 메시지들 등)을 주 디바이스(202)로 송신하도록 보조 디바이스(206)를 구성하는 것; 및 보조 디바이스(208)에 의해 렌더링되어야 하는 애플리케이션(112)의 사용자 인터페이스의 일부 상위 레벨 상세들을 제공하는 것(XAML(Extensible Application Markup Language) 문서를 보조 디바이스(208)로 송신하는 것, 및 그 안에 기술된 사용자 인터페이스를 보조 컴퓨팅 환경(208) 내에서 렌더링하는 명령어 등)을 포함할 수 있다.
이 제3 양태의 제7 변형으로서, 디바이스 컬렉션(104) 내에 인스턴스화될 애플리케이션(112)이 2개 이상의 보조 디바이스들(206)에 걸쳐 분산될 수 있다. 예를 들어, 제1 보조 디바이스(206) 및 제2 보조 디바이스(206)의 디바이스 속성들(108)에 따라, 애플리케이션(112)의 애플리케이션 기준들(612)이 제1 애플리케이션 부분과 제2 애플리케이션 부분으로 파티셔닝될 수 있다. 예를 들어, 화상 채팅 애플리케이션(112)은, 화상 채팅 세션에 대한 사용자(102)의 입력이 포착될 수 있는, 카메라 및 마이크로폰을 특징으로 하는 제1 보조 디바이스(206)와, 화상 채팅 세션의 사용자 인터페이스 및 출력이 사용자(102)에 제시될 수 있는, 디스플레이 및 스피커들을 특징으로 하는 제2 보조 디바이스(206) 상에 파티셔닝될 수 있다. 제1 애플리케이션 부분은 제1 보조 디바이스(206)의 제1 보조 컴퓨팅 환경(208) 내에 인스턴스화될 수 있고(그리고 제1 보조 디바이스(206)로 전송되는 스트림(214)은 제1 애플리케이션 부분을 포함하고 제2 애플리케이션 부분을 배제할 수 있음), 제2 애플리케이션 부분은 제2 보조 디바이스(206)의 제2 보조 컴퓨팅 환경(208) 내에서 인스턴스화될 수 있다. 주 디바이스(202)가 애플리케이션(112)을 실행하고 있기 때문에, 주 디바이스(202)는 파티셔닝을 조율할 수 있다. 그에 따라, 심지어 애플리케이션(112)에 통보조차 하지 않고 그리고/또는 심지어 애플리케이션(112)이 파티셔닝을 가능하게 하거나 지원하도록 특별히 구성되어 있지 않더라고, 파티셔닝이 일어날 수 있다.
이 제3 양태의 제8 변형으로서, 주 디바이스(202)는 제1 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내에서 실행 중인 애플리케이션(112)을 대신하여 사용자 입력을 수신하라는 요청을 수신할 수 있고, 애플리케이션(112)을 제2 보조 디바이스(206)의 입력 컴포넌트에 바인딩시키는 것에 의해 이러한 요청을 이행할 수 있다. 예를 들어, 주 디바이스(202)는 이러한 요청을 애플리케이션(112)으로부터(예컨대, 애플리케이션(112)이 실행되는 보조 디바이스(206)에 의해 지원되지 않는 특정 유형의 사용자 입력을 수신하라는 요청) 그리고/또는 사용자(102)로부터(예컨대, 제1 보조 디바이스(108)의 입력 컴포넌트를 제2 보조 디바이스(206)의 제2 보조 컴퓨팅 환경(208) 내에서 실행 중인 애플리케이션(112)에 바인딩시키라는 사용자(102)로부터의 요청) 수신할 수 있다. 요청을 이행할 때, 주 디바이스(202)는, 디바이스 컬렉션(104)의 보조 디바이스들(206) 중에서, 요청과 부합하는 디바이스 속성들(108)을 나타내는 선택된 보조 디바이스(206)를 식별할 수 있다. 주 디바이스(202)는 이어서 선택된 보조 디바이스(206)의 사용자 입력을 애플리케이션(112)에 바인딩시킬 수 있다. 애플리케이션(112)이 제1 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내에서 실행 중이고 사용자 입력이 제2 보조 디바이스(206)의 입력 컴포넌트에 바인딩되어 있더라도, 이러한 식별 및 바인딩이 일어날 수 있고 달성될수 있다.
도 7은 하나의 이러한 파티셔닝을 나타내는 예시적인 시나리오(700)의 예시를 제시하고, 여기서 애플리케이션 요청(428)은 선택된 애플리케이션(112)을 다수의 보조 디바이스(206)에 걸쳐 파티셔닝하는 것에 의해 이행된다. 이 예시적인 시나리오(700)에서, 주 디바이스(202)는 사용자 입력(702)의 적어도 2개의 소스들(예컨대, 2개의 포인팅 디바이스들, 또는 키보드와 마우스, 또는 카메라와 마이크로폰)을 이용할 수 있는 특정의 애플리케이션(112)을 인스턴스화하라는 요청(428)을 수신한다. 주 디바이스(202)는 제1 보조 디바이스(206)가 사용자 입력(702)의 제1 소스를 제공할 수 있다고 그리고 제2 보조 디바이스(206)가 사용자 입력(702)의 제2 소스를 제공할 수 있는 것은 물론, 애플리케이션 사용자 인터페이스를 사용자(102)에게 제시할 수 있다고 결정할 수 있다. 그에 따라, 주 디바이스(202)는 애플리케이션(112)을 인스턴스화하고 애플리케이션(112)을 로컬적으로 실행할 수 있지만, 사용자 입력(702)의 제1 소스를, 제1 보조 디바이스(206)의 제1 보조 컴퓨팅 환경(208) 내에(예컨대, 사용자(102) 근방에 배치되어 있는 마이크로폰의 사용을 예약함), 그리고 사용자 입력(702)의 제2 소스를, 제2 보조 디바이스(206)의 제2 보조 컴퓨팅 환경(208) 내에(예컨대, 사용자(102)의 영상들을 포착하기 위해 카메라의 사용을 예약하고 또한 애플리케이션(112)의 사용자 인터페이스를 제시할 디스플레이를 예약함), 배포할 수 있다. 주 디바이스(202)는 이러한 사용자 입력(702)을 각각의 보조 디바이스(206)로부터 수신할 수 있고, 이러한 사용자 입력(702)을 애플리케이션(112)으로 전달할 수 있으며, 애플리케이션(112)의 애플리케이션 사용자 인터페이스를 제2 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내로 전송할 수 있다.
도 8은 디바이스 컬렉션(104)의 보조 디바이스들(206) 간의 입력 바인딩의 다른 이러한 적용을 나타내는 예시적인 시나리오(800)의 예시를 제시한다. 이 예시적인 시나리오(800)에서, 각자의 보조 디바이스들(206)은, 애플리케이션들(112)의 각자의 보조 컴퓨팅 환경들(208) 및 사용자 인터페이스들이 제시될 수 있는 데스크톱 환경 또는 제시 영역과 같은, 환경 공간(804)을 나타낼 수 있다. 더욱이, 주 디바이스(202)는 이러한 환경 공간들(804)을 레이아웃(802), 예컨대, 입력 공간들(804)의 서로에 대한 공간적 배열, 배향, 및/또는 관계로 배열할 수 있다. 더욱이, 제1 보조 디바이스(206)는 입력 컴포넌트, 그리고 또한 제1 보조 디바이스(206)를 대신하여 주 디바이스(202)에 의해 실행되는 제1 애플리케이션(112)의 애플리케이션 사용자 인터페이스를 포함할 수 있고, 제2 보조 디바이스(206)는 제2 보조 디바이스(206)를 대신하여 주 디바이스(202)에 의해 실행되는 제2 애플리케이션(112)의 애플리케이션 사용자 인터페이스를 포함할 수 있다. 사용자(102)는 제1 보조 디바이스(206)의 입력 컴포넌트를 조작할 수 있고(예컨대, 마우스, 터치패드, 터치 감응 디스플레이, 제스처, 및/또는 시선 추적을 통해 포인터 움직임을 제공함), 주 디바이스(202)는 먼저 제1 보조 디바이스(206)의 제1 보조 컴퓨팅 환경(208)의 환경 공간(804) 내에서 포인터(808)를 렌더링할 수 있다. 그렇지만, 제1 보조 컴퓨팅 환경(208)의 제1 환경 공간(804)은 레이아웃 경계(806), 예컨대, 레이아웃(802) 내의 다른 환경 공간(804)에 물리적으로 그리고/또는 개념적으로 인접해 있는 각각의 환경 공간(804)의 경계에 의해 제2 보조 컴퓨팅 환경(208)의 제2 환경 공간(804)과 분리되어 있을 수 있다. 사용자(102)는, 예컨대, 포인터(808)를 레이아웃 경계(806)를 가로질러 제1 환경 공간(804)으로부터 제2 환경 공간(804)으로 전환시키는 것(810)을 개시하는 것에 의해, 제1 보조 디바이스(206)의 입력 컴포넌트의 사용자 입력을 제1 환경 공간(804)으로부터 제2 환경 공간(804)으로 전환하라고 요청할 수 있다. 포인터(808)를 레이아웃 경계(806)을 가로질러 전환시키는 것(810)에 응답하여, 주 디바이스(202)는 제1 보조 디바이스(206)의 입력 컴포넌트를 제2 디바이스(206)의 보조 컴퓨팅 환경(208) 내에서 실행 중인 애플리케이션(112)의 사용자 인터페이스에 바인딩시킬 수 있다.
이 제3 양태의 제9 변형으로서, 제1 보조 컴퓨팅 환경(208)은 제1 애플리케이션(112)의 인스턴스를 추가로 포함할 수 있고, 제2 보조 컴퓨팅 환경(208)은 제2 애플리케이션(112)의 인스턴스를 포함할 수 있다. 주 디바이스(202)는 제1 보조 컴퓨팅 환경(208) 내에서 실행 중인 제1 애플리케이션(112)과 제1 보조 컴퓨팅 환경(208) 내에서 실행 중인 제2 애플리케이션(112) 사이의 통신을 가능하게 할 수 있다. 이러한 상호연동은, 네트워크의 보다 복잡한 통신 모델을 통해 상호 통신할 수 있는 상이한 보조 디바이스들(206) 상에서 실행 중인 애플리케이션들(112)로서보다는, 예컨대, 양 애플리케이션들(112)을 실행하는 주 디바이스(202) 내에서의 프로세스간 통신을 통해, 쉽게 달성가능할 수 있다. 본원에서 제시되는 기법들에 따라 각자의 보조 디바이스(206)의 보조 컴퓨팅 환경들(208) 내에서 다양한 애플리케이션들(112)을 인스턴스화하고 실행하기 위해 많은 이러한 기법들이 이용될 수 있다.
E4. 보조 디바이스에 대한 보조 컴퓨팅 환경 및 애플리케이션들을 조정하는 것
본원에서 제시되는 기법들의 실시예들 간에 변할 수 있는 제4 양태는 보조 컴퓨팅 환경(208) 및/또는 그 안에서의 애플리케이션(112)의 실행을 특정의 보조 디바이스(206)에 대해 조정하기 위해 주 디바이스(202)를 구성하는 것을 포함한다.
이 제4 양태의 제1 변형으로서, 보조 컴퓨팅 환경(208)을 조정하는 것은 운영 체제의 각종의 설정들 및 속성들을 포함할 수 있다. 제1 이러한 예로서, 조정은, 보조 디바이스(206)의 시각적 스타일, 색 구성표, 글꼴 및 아이콘 스타일 및 크기, 그리고 입력 방식과 같은, 사용자 인터페이스 설정들을 포함할 수 있다. 제2 이러한 예로서, 조정은 특정의 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내에서 사용자(102)에게 제시되어야 하는 애플리케이션들(112)의 애플리케이션 세트(210)(예컨대, 사용자(102)가 보조 디바이스(206)와 상호작용하는 특정의 사용자 컨텍스트와 연관되어 있는 제1 세트의 애플리케이션들(112))를 포함할 수 있다. 제3 이러한 예로서, 이러한 조정은 또한 보조 컴퓨팅 환경(208) 내에서 제시되는 애플리케이션들(112)의 애플리케이션 구성들 및/또는 모드들일 수 있다(예컨대, 사용자(102)가 생성 또는 편집 모드에서 미디어 객체들과 상호작용하기 위해 제1 보조 디바이스(206) 상의 애플리케이션들(112)을 이용하지만, 보기 또는 읽기 모드에서 제2 보조 디바이스(206) 상의 동일한 미디어 객체들과 상호작용하는 것으로 결정함). 제4 이러한 예로서, 조정은, 문서들 및 미디어 객체들과 같은, 보조 컴퓨팅 환경(208) 내에서 제공되는 주 컴퓨팅 환경(204)의 파일들(114)의 세트 또는 서브셋의 선택을 포함할 수 있다(예컨대, 사용자(102)와 이용가능한 문서들 및/또는 미디어 객체들의 서브셋과의 상호작용만을 제한함). 제5 이러한 예로서, 조정은 특정의 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내에서 액세스가능할 수 있는 주 컴퓨팅 환경(204) 내에서 제공되는 사용자 계정들의 선택(예컨대, 특정의 보조 디바이스(206)를 사용하도록 허가되어 있는 사용자 세트의 사용자들(102)의 표시)을 포함할 수 있다. 제6 이러한 예로서, 조정은 북마크 리스트들을 포함할 수 있다(예컨대, 사용자(102)가 제1 보조 디바이스(206)와 상호작용하는 동안 제1 세트의 웹사이트들을 빈번히 방문하고, 제2 보조 디바이스(206)와 상호작용하는 동안 제2 세트의 웹사이트들을 빈번히 방문한다고 결정함).
이 제4 양태의 제2 변형으로서, 특정의 보조 디바이스(206)의 보조 컴퓨팅 환경(208) 내에서 실행 중인 다양한 애플리케이션들(112)의 사용자 인터페이스들의 조정은 각자의 보조 디바이스들(206)의, 또는 심지어 디바이스 컬렉션(104)의 다른 보조 디바이스들(206)의 다양한 디바이스 속성들(108)을 이용하거나 이용하지 않을 수 있다. 예를 들어, 제1 보조 디바이스(206)와 제2 보조 디바이스(206) 각각은 오디오를 재생하기 위한 한 세트의 스피커들을 특징으로 할 수 있지만, 주 디바이스(202)는 제1 보조 디바이스(206)가, 오디오 경고들에 의한 방해가 바람직하지 않을 수 있는, 직업적 컨텍스트(예컨대, 고객에게 프레젠테이션을 제시함)에서 사용되고 제2 보조 디바이스(206)가, 사용자(102)가 오디오 경고들을 수용하는, 일상적 사용자 컨텍스트에서(예컨대, 집에서) 사용된다고 결정할 수 있다. 주 디바이스(202)는 따라서 제1 보조 디바이스(206)로 전송되는 보조 컴퓨팅 환경(208)을 스피커들을 사용하는 것을 보류하도록 조정할 수 있고, 제2 보조 디바이스(206)로 전송되는 보조 컴퓨팅 환경(208)을 사용자(102)에게 오디오 경고들을 제시하기 위해 빈번히 스피커들을 이용하도록 조정할 수 있다.
이 제4 양태의 제3 변형으로서, 다양한 보조 디바이스들(206)의 보조 컴퓨팅 환경들(208) 내에서 실행되는 애플리케이션들(112)은 다양한 제시 방식들을 통해 사용자(102)와 상호작용하도록 조정될 수 있다. 예를 들어, 사용자(102)는 전체 시각적 인터페이스를 사용하여 제1 보조 디바이스(206)(예컨대, 워크스테이션)와 상호작용하고; 축소된 시각적 인터페이스를 사용하여 제2 보조 디바이스(206)(예컨대, 휴대폰)와 상호작용하며; 오디오 전용 인터페이스를 사용하여 제3 보조 디바이스(206)(예컨대, 차량 컴퓨터)와 상호작용하는 것을 선호할 수 있다. 각자의 보조 디바이스들(206)의 보조 컴퓨팅 환경들(208)과, 그 안에서 실행되는 애플리케이션들(112)은 따라서 각각의 보조 디바이스(206) 상에서 각자의 제시 방식들을 이용하도록 조정될 수 있다(예컨대, 제1 보조 디바이스(206) 상에서는, 전체 영상들 및 비디오를 갖는, 기사의 전문 버전을 제시하고; 제2 보조 디바이스(206) 상에서는, 영상들 및 비디오가 제거된, 기사의 요약 텍스트 버전을 제시하며; 제3 보조 디바이스(206) 상에서는 기사의 오디오 전사(audio transcript)를 제시함).
이 제4 양태의 제4 변형으로서, 보조 컴퓨팅 환경들(208) 및 그 안에서 실행되는 애플리케이션들(112)은, 각자의 보조 디바이스들(206)을 이용하면서, 사용자(102)와 상호작용하는 다른 사람들의 존재 여부, ID, 및/또는 상황을 반영하도록 조정될 수 있다. 즉, 주 디바이스(202)는, 사용자(102)와 보조 디바이스(206) 간의 사용자 상호작용과 동시에 그리고 그와 관련하여, 사용자(102)와 특정의 사람 간의 개별적 상호작용을(예컨대, 사용자(102)가 홈시어터 디바이스에 있는 다른 사람과 빈번히 게임을 플레이한다고) 결정할 수 있다. 주 디바이스(202)는 따라서, 보조 디바이스(206) 상에 제시되는 보조 컴퓨팅 환경(208) 내에서, (예컨대, 사용자(102)와 개인이 함께 플레이하는 것을 즐기고 있을 수 있는 2인 게임들의 선택을 보조 디바이스(206) 상에 제시하는) 사용자(102)와 개인 간의 개별적인 상호작용에 관련되어 있는 애플리케이션(112)을 제공할 수 있다. 다른 이러한 예로서, 보조 디바이스(206)의 보조 컴퓨팅 환경(208)은 사용자(102)에 의한 보조 디바이스(206)의 사용의 공개적 및/또는 개인적 성질을 반영하도록 조절될 수 있고; 예컨대, 개인적으로 사용되는 보조 디바이스(206)는, 사용자의 패스워드의 평문 버전 및 개인 사진과 같은, 사용자(102)의 개인적 콘텐츠를 제시할 수 있는 반면, 공개적으로 사용되는 보조 디바이스(206)는 사용자의 패스워드를 가릴 수 있고 개인적 콘텐츠를 제시하는 것을 보류할 수 있다.
이 제4 양태의 제5 변형으로서, 주 디바이스(202)는 보조 컴퓨팅 환경(208)의 다양한 설정들 및 속성들의 조정을 각종의 방식들로 달성할 수 있다. 예를 들어, 주 디바이스(202)는 사용자(102)와 보조 디바이스(206) 간의 사용자 상호작용의 사용자 컨텍스트(108)에 적당한 애플리케이션 구성으로 실행하기 위해 애플리케이션(112)을 보조 디바이스(206)로 전송할 수 있다. 하나의 이러한 예로서, 각자의 보조 디바이스들(206) 상의 보조 컴퓨팅 환경(208) 내에 제시되어야 하는 각자의 애플리케이션들(112)에 대해, 주 디바이스(202)는 애플리케이션(112)의 적어도 2개의 애플리케이션 변형들을 저장할 수 있고, 여기서 각자의 애플리케이션 변형들은 사용자(102)와 보조 디바이스(206) 간의 사용자 상호작용의 선택된 사용자 컨텍스트(108)과 연관되어 있다. 주 디바이스(202)는 따라서 적어도 2개의 애플리케이션 변형들 중에서, 사용자와 보조 디바이스(206) 간의 사용자 상호작용의 사용자 컨텍스트(108)와 연관되어 있는 선택된 애플리케이션 변형을 식별하는 것, 및 보조 디바이스(206)의 보조 컴퓨팅 환경(208)에 제시되는 각자의 애플리케이션들(112)의 선택된 애플리케이션 변형을 포함하는 보조 컴퓨팅 환경(208)을, 보조 디바이스(206)로, 전송하는 것에 의해 특정의 보조 디바이스(206)에 대한 보조 컴퓨팅 환경(208) 내에서 애플리케이션(112)의 요소들(422)을 조정할 수 있다.
이 제4 양태의 제6 변형으로서, 주 디바이스(202)는 다양한 조건들을 고려하여 보조 컴퓨팅 환경(208) 및/또는 그 안에서 실행되는 애플리케이션들(112)의 아키텍처를 조정할 수 있다. 예를 들어, 주 디바이스(202)는 처음에 애플리케이션(112) 또는 보조 컴퓨팅 환경(208)의 일부분에 대해 제1 아키텍처를 선택할 수 있지만(예컨대, 주 디바이스(202) 상에서 애플리케이션(112) 전체를 실행하고 사용자 인터페이스의 영상들만을 보조 디바이스(206)에 배포함), 나중에 제2 아키텍처가 보조 컴퓨팅 환경(208)의 더 높은 품질의 제시를 달성할 수 있다고 결정할 수 있다(예컨대, 지연시간 또는 네트워크 전송을 감소시키기 위해 일부 처리를 보조 디바이스(206)에 할당함).
이 제4 양태의 제7 변형으로서, 주 디바이스(202)는 사용자(102)가 제2 보조 디바이스(206)의 보조 컴퓨팅 환경(208)을 제시하도록 제1 보조 디바이스(206)를 재구성할 수 있게 할 것이다(예컨대, 제1 보조 디바이스(206)로 하여금 제2 보조 디바이스(206)를 구현하게 함). 예를 들어, 제1 보조 디바이스(206)의 제1 보조 컴퓨팅 환경(208)을 제2 보조 컴퓨팅 환경(208)으로 대체하라는 요청을 수신한 것에 응답하여, 주 디바이스(202)는 제2 보조 컴퓨팅 환경(208) 대신에 제2 보조 컴퓨팅 환경(208)을 제1 보조 디바이스(206) 상에 제시할 수 있다. 이러한 제시는, 예컨대, 제2 보조 컴퓨팅 환경(208)에 대한 동일한 스트림(214)을 제1 보조 디바이스(208)는 물론 제2 보조 디바이스(206)로 멀티캐스팅하는 것에 의해, 달성될 수 있고, 그리고/또는 일시적 또는 영속적 방식으로 구현될 수 있다.
이 제4 양태의 제8 변형으로서, 주 디바이스(202)는 각자의 보조 디바이스(206)의 보조 컴퓨팅 환경들(208) 간에 애플리케이션들(112)을 재배치할 수 있다. 제1 이러한 예로서, 디바이스 컬렉션(104)에의 제3 보조 디바이스(206)의 추가를 검출한 것에 응답하여, 주 디바이스(202)는, 제3 보조 디바이스(206)를 포함시키기 위해, 부분적으로 또는 전체적으로 제1 보조 디바이스(206)의 제1 보조 컴퓨팅 환경(208) 내에서 현재 실행 중인 적어도 하나의 애플리케이션(112)을 재파티셔닝할 수 있다(예컨대, 처음에 제1 보조 디바이스(206) 상에서 실행 중인 애플리케이션(112)의 제1 애플리케이션 부분의 추가의 부분을 제3 보조 디바이스(206) 상으로 파티셔닝하고 그리고/또는 애플리케이션 부분을 제1 보조 디바이스(206)로부터 애플리케이션(112)에 보다 적당한 한 세트의 디바이스 속성들(108)을 제시하는 추가된 제3 보조 디바이스(206)로 완전히 전송함). 제2 이러한 예로서, 디바이스 컬렉션(104)으로부터의 보조 디바이스(206)의 제거(예컨대, 일시적 연결 해제, 또는 디바이스 컬렉션(104)으로부터의 보조 디바이스(206)의 영속적 배제)를 검출한 것에 응답하여, 주 디바이스(202)는 제1 보조 디바이스(206)의 제1 보조 컴퓨팅 환경(208) 내에 제시된 애플리케이션(112)의 적어도 일부분을 제2 보조 디바이스(206)의 제2 보조 컴퓨팅 환경(208)으로 이동시킬 수 있다. 이러한 애플리케이션들(112)은 나중에, 제1 보조 디바이스(206)를 디바이스 컬렉션(104)에 한번 더 편입시키는 연결이 재구축되면, 다시 제1 보조 디바이스(206)로 전송될 수 있다.
도 9는 본원에서 제시되는 기법들의 변형들의 하나의 이러한 사용을 나타내는 예시적인 시나리오(900)의 예시를 제시한다. 이 예시적인 시나리오(900)에서, 주 디바이스는 처음에 3개의 보조 디바이스들(206)을 포함하는 디바이스 컬렉션(104)을 통해 화상 채팅 애플리케이션(112)을 실행하고, 처음에 애플리케이션(112)에 대해 적절한 보조 디바이스 속성들(108)을 특징으로 하는 제1 보조 디바이스(206) 상에 화상 채팅 인터페이스(902)를 제시한다. 그렇지만, 디바이스 컬렉션(104)으로부터의 제1 보조 디바이스(206)의 제거(904)는, 예컨대, 현재 화상 채팅 세션을 중단 없이 계속하기 위해, 주 디바이스(202)로 하여금 화상 채팅 인터페이스(902)의 전송을 시도하게 할 수 있다. 주 디바이스(202)는 따라서 디바이스 컬렉션(104)의 다른 보조 디바이스들(206)의 보조 디바이스 속성들(108)을 검사할 수 있고, 제2 보조 디바이스(206)는 적당하지 않고(예컨대, 디바이스 속성들(108)이 카메라를 포함하지 않기 때문임) 제3 보조 디바이스(206)가 적당하다(예컨대, 디바이스 속성들(108)이 카메라를 포함하기 때문임)고 결정할 시에, 화상 채팅 인터페이스(902)를 제1 보조 컴퓨팅 환경(208)으로부터 제3 보조 디바이스(206)의 제3 보조 컴퓨팅 환경(208)으로 자동으로 전환(906)시킬 수 있다. 그에 부가하여, 제4 보조 디바이스(206)가 나중에 디바이스 컬렉션(104)에 합류(908)할 때, 주 디바이스(202)는 제4 보조 디바이스(206)의 디바이스 속성들(108)을 검사할 수 있고, 디바이스 속성들(108)이 제3 보조 디바이스(206)의 디바이스 속성들(108)보다 애플리케이션(112)을 더 완전히 용이하게 한다고 결정할 수 있다(예컨대, 제4 보조 디바이스(206)는 제3 보조 디바이스(206)의 카메라보다 더 높은 품질의 화상 채팅 인터페이스(902)를 가능하게 하는 고선명 카메라를 제공할 수 있다). 그에 따라, 주 디바이스(202)는 (임의로 추천을 사용자(102)에게 먼저 제시하고 이러한 전송을 개시하기 전에 제2 전송(910)의 수락을 기다리는 것에 의해) 제3 보조 컴퓨팅 환경(208)으로부터 제4 보조 디바이스(206)의 제4 보조 컴퓨팅 환경(208)으로의 애플리케이션(112)의 화상 채팅 인터페이스(902)의 제2 전송(910)을 개시할 수 있다. 본원에서 제시되는 기법들에 따라 디바이스 컬렉션(104)의 보조 디바이스들(104) 간에 애플리케이션들(112)의 실행을 파티셔닝 및/또는 조정하기 위해 많은 이러한 기법들이 이용될 수 있다.
F. 컴퓨팅 환경
도 10 및 이하의 논의는 본원에 기재되는 발명 내용들 중 하나 이상의 발명 내용들의 실시예들을 구현하는 데 적합한 컴퓨팅 환경에 대한 간략하고 개괄적인 설명을 제공한다. 도 10의 운영 환경은 적당한 운영 환경의 일 예에 불과하며 운영 환경의 용도 또는 기능의 범주에 관한 어떤 제한을 암시하려는 것으로 의도되어 있지 않다 예시적인 컴퓨팅 디바이스들은, 개인용 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩톱 디바이스, 모바일 디바이스(휴대폰, PDA(Personal Digital Assistant), 미디어 플레이어, 기타 등등), 멀티프로세서 시스템, 가전 제품, 미니 컴퓨터, 메인프레임 컴퓨터, 이상의 시스템들 또는 디바이스들 중 임의의 것을 포함하는 분산 컴퓨팅 환경 등을 포함하지만, 이들로 제한되지 않는다.
꼭 그럴 필요는 없지만, 실시예들이 일반적으로 하나 이상의 컴퓨팅 디바이스들에 의해 실행되는 "컴퓨터 판독가능 명령어들"과 관련하여 기술되어 있다. 컴퓨터 판독가능 명령어들은 컴퓨터 판독가능 매체(이하에서 논의됨)를 통해 배포될 수 있다. 컴퓨터 판독가능 명령어들은 특정의 작업들을 수행하거나 특정의 추상 데이터 유형들을 구현하는 함수, 객체, API(Application Programming Interface), 데이터 구조 등과 같은 프로그램 모듈로서 구현될 수 있다. 전형적으로, 컴퓨터 판독가능 명령어들의 기능이 다양한 실시예들에서 원하는 바에 따라 결합되거나 분산될 수 있다.
도 10은 본원에서 제공되는 하나 이상의 실시예들을 구현하도록 구성되어 있는 컴퓨팅 디바이스(1002)를 포함하는 시스템(1000)의 일 예를 나타내고 있다. 하나의 구성에서, 컴퓨팅 디바이스(1002)는 적어도 하나의 처리 유닛(1006) 및 메모리(1008)를 포함한다. 컴퓨팅 디바이스의 정확한 구성 및 유형에 따라, 메모리(1008)는 휘발성(예를 들어, RAM 등), 비휘발성(예를 들어, ROM, 플래시 메모리, 기타 등등), 또는 이 둘의 어떤 조합일 수 있다. 이러한 구성이 도 10에서 파선(1004)으로 나타내어져 있다.
다른 실시예들에서, 디바이스(1002)는 또한 부가의 특징들 및/또는 기능을 포함할 수 있다. 예를 들어, 디바이스(1002)는 또한 자기 저장소, 광학 저장소 등(이들로 제한되지 않음)을 비롯한 부가의 저장소(예컨대, 이동식 및/또는 비이동식)도 포함할 수 있다. 이러한 부가의 저장소가 도 10에서 저장소(1010)에 의해 도시되어 있다. 일 실시예에서, 본원에서 제공되는 하나 이상의 실시예들을 구현하는 컴퓨터 판독가능 명령어들이 저장소(1010)에 있을 수 있다. 저장소(1010)는 또한 운영 체제, 애플리케이션 프로그램 등을 구현하는 다른 컴퓨터 판독가능 명령어들도 저장할 수 있다. 컴퓨터 판독가능 명령어들은, 예를 들어, 처리 유닛(1006)에 의해 실행하기 위해 메모리(1008)에 로딩될 수 있다.
용어 "컴퓨터 판독가능 매체"는, 본원에서 사용되는 바와 같이, 신호들과 같은, 통신 매체를 포함하는 다른 형태들의 컴퓨터 판독가능 매체를 배제하는 컴퓨터 판독가능 메모리 디바이스들을 포함한다. 이러한 컴퓨터 판독가능 메모리 디바이스들은 휘발성 및/또는 비휘발성, 이동식 및/또는 비이동식일 수 있고, 컴퓨터 판독가능 명령어들 또는 다른 데이터를 저장하는 다양한 유형들의 물리 디바이스들을 포함할 수 있다. 메모리(1008) 및 저장소(1010)는 컴퓨터 저장 매체의 예들이다. 컴퓨터 저장 디바이스들은 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(Digital Versatile Disk) 또는 다른 광학 저장소, 자기 카세트, 자기 테이프, 그리고 자기 디스크 저장소 또는 다른 자기 저장 디바이스를 포함하지만, 이들로 제한되지 않는다.
디바이스(1002)는 또한 디바이스(1002)가 다른 디바이스들과 통신할 수 있게 하는 통신 연결(들)(1016)도 포함할 수 있다. 통신 연결(들)(1016)은 모뎀, NIC(Network Interface Card), 통합형 네트워크 인터페이스(integrated network interface), 무선 주파수 송신기/수신기, 적외선 포트, USB 연결, 또는 컴퓨팅 디바이스(1002)를 다른 컴퓨팅 디바이스들에 연결시키는 다른 인터페이스들을 포함할 수 있지만, 이들로 제한되지 않는다. 통신 연결(들)(1016)은 유선 연결 또는 무선 연결을 포함할 수 있다. 통신 연결(들)(1016)은 통신 미디어를 전송 및/또는 수신할 수 있다.
용어 "컴퓨터 판독가능 매체"는 통신 매체를 포함할 수 있다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어들 또는 다른 데이터를 반송파 또는 다른 전송 메커니즘과 같은 "피변조 데이터 신호(modulated data signal)"에 구현하고 임의의 정보 전달 매체를 포함한다. 용어 "피변조 데이터 신호"는 신호의 특성들 중 하나 이상이 정보를 그 신호에 인코딩하는 방식으로 설정되거나 변경된 신호를 포함할 수 있다.
디바이스(1002)는 키보드, 마우스, 펜, 음성 입력 디바이스, 터치 입력 디바이스, 적외선 카메라, 비디오 입력 디바이스, 및/또는 임의의 다른 입력 디바이스와 같은 입력 디바이스(들)(1014)를 포함할 수 있다. 하나 이상의 디스플레이들, 스피커들, 프린터들, 및/또는 임의의 다른 출력 디바이스와 같은 출력 디바이스(들)(1012)도 디바이스(1002)에 포함될 수 있다. 입력 디바이스(들)(1014) 및 출력 디바이스(들)(1012)는 유선 연결, 무선 연결, 또는 이들의 임의의 조합을 통해 디바이스(1002)에 연결될 수 있다. 일 실시예에서, 다른 컴퓨팅 디바이스로부터의 입력 디바이스 또는 출력 디바이스가 컴퓨팅 디바이스(1002)에 대한 입력 디바이스(들)(1014) 또는 출력 디바이스(들)(1012)로서 사용될 수 있다.
컴퓨팅 디바이스(1002)의 컴포넌트들은, 버스와 같은, 다양한 상호연결부들에 의해 연결될 수 있다. 이러한 상호연결부들은, PCI Express와 같은, PCI(Peripheral Component Interconnect), USB(Universal Serial Bus), 파이어와이어(Firewire)(IEEE 1394), 광학 버스 구조(optical bus structure) 등을 포함할 수 있다. 다른 실시예에서, 컴퓨팅 디바이스(1002)의 컴포넌트들은 네트워크에 의해 상호연결될 수 있다. 예를 들어, 메모리(1008)는 네트워크에 의해 상호연결된 상이한 물리적 장소들에 위치된 다수의 물리적 메모리 유닛들로 이루어져 있을 수 있다.
본 기술분야의 통상의 기술자라면 컴퓨터 판독가능 명령어들을 저장하는 데 이용되는 저장 디바이스들이 네트워크에 걸쳐 분산될 수 있다는 것을 잘 알 것이다. 예를 들어, 네트워크(1018)를 통해 액세스할 수 있는 컴퓨팅 디바이스(1020)는 본원에서 제공되는 하나 이상의 실시예들을 구현하는 컴퓨터 판독가능 명령어들을 저장할 수 있다. 컴퓨팅 디바이스(1002)는 컴퓨팅 디바이스(1020)에 액세스하고, 실행을 위한 컴퓨터 판독가능 명령어들의 일부 또는 전부를 다운로드할 수 있다. 대안적으로, 컴퓨팅 디바이스(1002)는 필요에 따라 컴퓨터 판독가능 명령어들의 일부를 다운로드할 수 있거나, 일부 명령어들은 컴퓨팅 디바이스(1002)에서 실행될 수 있고 일부 명령어는 컴퓨팅 디바이스(1020)에서 실행될 수 있다.
G. 용어들의 용례
발명 요지가 구조적 특징들 및/또는 방법 동작들과 관련하여 기술되어 있지만, 첨부된 청구항들에 한정된 발명 요지가 앞서 기술된 구체적인 특징들 또는 동작들로 꼭 제한되는 것은 아님을 잘 알 것이다. 오히려, 앞서 기술된 구체적인 특징들 및 동작들은 청구항들을 구현하는 예시적인 형태들로서 개시되어 있다.
본 출원에서 사용되는 바와 같이, 용어들 "컴포넌트", "모듈", "시스템", "인터페이스" 등은 일반적으로 컴퓨터 관련 엔티티(computer-related entity), 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어를 지칭하려는 것으로 의도되어 있다. 예를 들어, 컴포넌트는 프로세서 상에서 실행 중인 프로세스, 프로세서, 객체, 실행 파일(executable), 실행 스레드(thread of execution), 프로그램, 및/또는 컴퓨터일 수 있지만, 이들로 제한되지 않는다. 예시로서, 제어기 상에서 실행 중인 애플리케이션 및 그 제어기 둘 다가 컴포넌트일 수 있다. 하나 이상의 컴포넌트들이 프로세스 및/또는 실행 스레드 내에 존재할 수 있고, 컴포넌트가 하나의 컴퓨터 상에 로컬화될 수 있고 그리고/또는 2개 이상의 컴퓨터들 간에 분산될 수 있다.
게다가, 청구된 발명 요지가 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 임의의 조합을 생성하는 표준 프로그래밍 및/또는 엔지니어링 기법들을 사용하여 컴퓨터를 제어해 개시된 발명 요지를 구현하는 방법, 장치, 또는 제조 물품으로서 구현될 수 있다. 용어 "제조 물품"은, 본원에서 사용되는 바와 같이, 임의의 컴퓨터 판독가능 디바이스, 캐리어(carrier), 또는 매체로부터 액세스가능한 컴퓨터 프로그램을 포괄하려는 것으로 의도되어 있다. 물론, 본 기술분야의 통상의 기술자라면 청구된 발명 요지의 범주 또는 사상을 벗어나지 않고 이 구성에 많은 수정들이 이루어질 수 있다는 것을 잘 알 것이다.
실시예들의 다양한 동작들이 본원에서 제공된다. 일 실시예에서, 기술된 동작들 중 하나 이상이 하나 이상의 컴퓨터 판독가능 매체 상에 저장된 컴퓨터 판독가능 명령어들을 구성할 수 있으며, 이 명령어들은, 컴퓨팅 디바이스에 의해 실행되는 경우, 컴퓨팅 디바이스로 하여금 기술된 동작들을 수행하게 할 것이다. 동작들 중 일부 또는 전부가 기술되는 순서가 이 동작들이 꼭 순서 의존적이라는 것을 암시하는 것으로 해석되어서는 안된다. 대안의 순서가 이 설명의 혜택을 받는 본 기술 분야의 통상의 기술자에 의해 이해될 것이다. 게다가, 동작들 모두가 본원에서 제공되는 각각의 실시예에 꼭 존재하는 것은 아님을 잘 알 것이다.
본 명세서에서 "예"로서 기술된 임의의 양태 또는 설계가 꼭 다른 양태 또는 설계보다 이점이 있는 것으로 해석되어야 하는 것은 아니다. 오히려, 단어 "예"의 사용은 본원에서 제시되는 기법들에 관련되어 있을 수 있는 하나의 가능한 양태 및/또는 구현을 제시하려는 것으로 의도되어 있다. 이러한 예들은 이러한 기법들에 대해 필요하지도 않고 제한하려는 것으로 의도되어 있지도 않다. 이러한 기법들의 다양한 실시예들은 이러한 예를 단독으로 다른 특징들과 조합하여 포함할 수 있고, 그리고/또는 예시된 예를 변화시키고 및/또는 생략할 수 있다.
본 출원에서 사용되는 바와 같이, 용어 "또는"은 배타적인 "논리합"(exclusive "or")이라기 보다는 포함적인 "논리합"(inclusive "or")을 의미하려는 것으로 의도되어 있다. 즉, 달리 언급하지 않는 한 또는 문맥으로부터 명확하지 않는 한, "X가 A 또는 B를 이용한다"는 포함적인 자연 순열(natural inclusive permutation)들 중 어느 하나를 의미하려는 것으로 의도되어 있다. 즉, X가 A를 이용하는 경우, X가 B를 이용하는 경우, 또는 X가 A 및 B 둘 다를 이용하는 경우, 이상의 경우들 중 어느 하나의 경우에서 "X가 A 또는 B를 이용한다"는 충족된다. 그에 부가하여, 본 출원 및 첨부된 청구항들에서 사용되는 단수 표현 "한" 및 "어떤"은, 달리 언급하지 않는 한 또는 단수 형태에 관한 것이라고 문맥으로부터 명확하지 않는 한, 일반적으로 "하나 이상"을 의미하는 것으로 해석될 수 있다.
또한, 본 개시내용이 하나 이상의 구현들과 관련하여 도시되고 기술되어 있지만, 본 명세서 및 첨부 도면들을 읽고 이해하면 등가의 변경들 및 수정들이 본 기술분야의 통상의 기술자들에게 안출될 것이다. 본 개시내용은 모든 이러한 수정들 및 변경들을 포함하며, 이하의 청구항들의 범주에 의해서만 제한된다. 상세하게는, 이상에서 기술한 컴포넌트들(예컨대, 요소, 자원 등)에 의해 수행되는 다양한 기능들과 관련하여, 이러한 컴포넌트들을 기술하는 데 사용되는 용어들이, 달리 언급하지 않는 한, 본원에서 설명된 본 개시내용의 예시적인 구현들에서 기능을 수행하는 개시된 구조와 구조상으로 등가이지는 않지만, (예컨대, 기능적으로 등가인) 기술된 컴포넌트의 명시된 기능을 수행하는 임의의 컴포넌트에 대응하는 것으로 의도되어 있다. 그에 부가하여, 본 개시내용의 특정의 특징이 몇 개의 구현들 중 단지 하나와 관련하여 개시되었을 수 있지만, 임의의 주어진 또는 특정의 응용분야에서 요망되고 유리할 수 있는 바와 같이, 이러한 특징이 다른 구현들의 하나 이상의 다른 특징들과 결합될 수 있다. 게다가, 용어들 "포함한다", "가지는", "가진다", "갖는" 또는 이들의 변형들이 상세한 설명이나 청구항들에서 사용되는 한, 이러한 용어들이 용어 "포함하는(comprising)"과 유사한 방식으로 포함적인 것으로 의도되어 있다.

Claims (15)

  1. 프로세서를 포함하는 주 디바이스를 디바이스 컬렉션을 통해 사용자에게 주 컴퓨팅 환경을 제시하도록 구성하는 방법에 있어서,
    상기 프로세서 상에서, 상기 주 디바이스로 하여금, 상기 디바이스 컬렉션의 각자의 보조 디바이스들에 대해,
    상기 보조 디바이스에 대한 보조 컴퓨팅 환경을 발생시키기 위해 상기 보조 디바이스의 한 세트의 디바이스 속성들에 따라 상기 주 컴퓨팅 환경의 컴퓨팅 환경 사용자 인터페이스를 조정하고(adapt);
    선택된 애플리케이션을 상기 보조 컴퓨팅 환경 내에서 인스턴스화하라는 요청을 수신한 것에 응답하여,
    상기 선택된 애플리케이션의 애플리케이션 사용자 인터페이스를 상기 보조 디바이스의 상기 디바이스 속성들에 따라 상기 보조 컴퓨팅 환경 내에서 조정하고,
    상기 선택된 애플리케이션을 상기 보조 디바이스를 대신하여 실행하게 하는 명령어들을 실행하는 단계; 및
    상기 애플리케이션 사용자 인터페이스를 포함하는, 상기 보조 컴퓨팅 환경의 상기 컴퓨팅 환경 사용자 인터페이스의 제시를 상기 보조 디바이스로 스트리밍하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 디바이스 컬렉션은,
    제1 보조 컴퓨팅 환경을 포함하는 제1 보조 디바이스; 및
    제2 보조 컴퓨팅 환경을 포함하는 제2 보조 디바이스
    를 추가로 포함하는 것인, 방법.
  3. 제2항에 있어서,
    상기 명령어들을 실행하는 단계는 추가로 상기 주 디바이스로 하여금, 상기 제1 보조 디바이스의 상기 제1 보조 컴퓨팅 환경을 상기 제2 보조 컴퓨팅 환경으로 대체하라는 요청을 수신한 것에 응답하여, 상기 제1 컴퓨팅 환경 대신에 상기 제2 보조 컴퓨팅 환경을 상기 제1 보조 디바이스 상에 제시하게 하는 것인, 방법.
  4. 제2항에 있어서,
    상기 선택된 애플리케이션의 상기 애플리케이션 사용자 인터페이스를 상기 제1 보조 디바이스의 상기 제1 보조 컴퓨팅 환경 내에서 조정하는 것은,
    상기 제1 보조 디바이스 및 상기 제2 보조 디바이스의 상기 디바이스 속성들에 따라, 상기 선택된 애플리케이션을 상기 제1 보조 디바이스의 상기 제1 보조 컴퓨팅 환경 내에서 제시될 제1 애플리케이션 부분과 상기 제2 보조 디바이스의 상기 제2 보조 컴퓨팅 환경 내에서 제시될 제2 애플리케이션 부분으로 파티셔닝하는 것; 및
    상기 제1 애플리케이션 부분만을 포함하고 상기 제2 애플리케이션 부분을 배제하는 상기 제1 보조 컴퓨팅 환경의 상기 제시를 상기 제1 보조 디바이스로 스트리밍하는 것
    을 추가로 포함하는 것인, 방법.
  5. 제4항에 있어서,
    상기 프로세서 상에서 상기 명령어들을 실행하는 단계는 추가로 상기 주 디바이스로 하여금, 상기 디바이스 컬렉션에의 제3 보조 디바이스의 추가를 검출한 것에 응답하여, 적어도 하나의 보조 디바이스의 보조 컴퓨팅 환경 내에서 실행 중인 적어도 하나의 애플리케이션을 상기 제3 보조 디바이스를 포함하도록 재파티셔닝하게 하는 것인, 방법.
  6. 제2항에 있어서,
    상기 프로세서 상에서 상기 명령어들을 실행하는 단계는 추가로 상기 주 디바이스로 하여금, 상기 디바이스 컬렉션으로부터의 상기 보조 디바이스의 제거를 검출한 것에 응답하여, 상기 제1 보조 디바이스의 상기 제1 보조 컴퓨팅 환경 내에 제시된 애플리케이션의 적어도 일부분을 상기 제2 보조 디바이스의 상기 제2 보조 컴퓨팅 환경으로 이동시키게 하는 것인, 방법.
  7. 제2항에 있어서,
    상기 선택된 애플리케이션을 인스턴스화하라는 상기 요청을 수신하는 것은, 상기 제2 보조 디바이스를 통해 상기 사용자로부터, 상기 선택된 애플리케이션을 실행할 상기 제1 보조 디바이스를 명시하는 요청을 수신한 것에 응답하여, 상기 선택된 애플리케이션을 상기 제1 보조 디바이스의 상기 제1 보조 컴퓨팅 환경 내에서 실행하는 것을 추가로 포함하는 것인, 방법.
  8. 제2항에 있어서,
    상기 제1 보조 컴퓨팅 환경은 제1 애플리케이션의 인스턴스를 추가로 포함하고;
    상기 제2 보조 컴퓨팅 환경은 제2 애플리케이션의 인스턴스를 추가로 포함하며;
    상기 프로세서 상에서 상기 명령어들을 실행하는 단계는 추가로 상기 주 디바이스로 하여금 상기 제1 보조 컴퓨팅 환경 내에서 실행 중인 상기 제1 애플리케이션과 상기 제1 보조 컴퓨팅 환경 내에서 실행 중인 상기 제2 애플리케이션 사이의 통신을 가능하게 하는 것인, 방법.
  9. 제1항에 있어서,
    상기 제1 보조 디바이스는 입력 컴포넌트를 추가로 포함하고;
    제2 보조 컴퓨팅 환경은 제2 애플리케이션의 인스턴스를 추가로 포함하며;
    상기 프로세서 상에서 상기 명령어들을 실행하는 단계는 추가로 상기 주 디바이스로 하여금, 상기 제1 보조 디바이스의 상기 입력 컴포넌트를 상기 제2 보조 디바이스의 상기 제2 보조 컴퓨팅 환경 내에서 실행 중인 애플리케이션에 바인딩하라는 요청을 상기 사용자로부터 수신한 것에 응답하여, 상기 제1 보조 디바이스의 상기 입력 컴포넌트를 상기 애플리케이션에 바인딩하게 하는 것인, 방법.
  10. 제9항에 있어서,
    상기 제1 보조 디바이스는 상기 제2 보조 디바이스의 상기 제2 보조 컴퓨팅 환경과 레이아웃 경계를 공유하는 제1 보조 컴퓨팅 환경을 추가로 포함하고;
    상기 사용자로부터 수신되는 상기 요청은 상기 제1 보조 컴퓨팅 환경과 상기 제2 보조 컴퓨팅 환경 사이의 레이아웃 경계를 넘는 상기 입력 컴포넌트의 상기 사용자 입력의 전환을 추가로 포함하는 것인, 방법.
  11. 제1항에 있어서,
    상기 각자의 보조 디바이스들에 대한 상기 보조 컴퓨팅 환경을 발생시키는 것은, 상기 주 컴퓨팅 환경의 애플리케이션 세트로부터, 상기 보조 디바이스에 대한 애플리케이션 서브셋을 선택하는 것을 추가로 포함하고;
    상기 보조 컴퓨팅 환경의 상기 제시를 상기 보조 디바이스로 스트리밍하는 것은 상기 보조 컴퓨팅 환경 내에서의 상기 애플리케이션 서브셋을 상기 보조 디바이스에 제시하는 것을 추가로 포함하며;
    상기 선택된 애플리케이션을 인스턴스화하라는 상기 요청을 수신하는 것은 상기 보조 컴퓨팅 환경 내에 제시된 상기 애플리케이션 서브셋으로부터 상기 선택된 애플리케이션의 선택을 수신하는 것을 추가로 포함하는 것인, 방법.
  12. 제11항에 있어서,
    상기 선택된 애플리케이션을 인스턴스화하라는 상기 요청을 수신하는 것은,
    처음에 상기 디바이스 컬렉션을 상기 사용자에게 제시하는 것;
    상기 디바이스 컬렉션으로부터의 선택된 보조 디바이스의 선택을, 상기 사용자로부터, 수신한 것에 응답하여, 상기 선택된 보조 디바이스의 상기 보조 컴퓨팅 환경에 대한 상기 애플리케이션 서브셋을 상기 사용자에게 제시하는 것; 및
    상기 선택된 보조 디바이스에 대한 상기 애플리케이션 서브셋으로부터 상기 선택된 애플리케이션의 선택을, 상기 사용자로부터, 수신하는 것
    을 추가로 포함하는 것인, 방법.
  13. 제11항에 있어서,
    상기 명령어들을 실행하는 단계는 추가로 상기 주 디바이스로 하여금, 상기 애플리케이션 서브셋 대신에 상기 보조 디바이스의 상기 보조 컴퓨팅 환경 내의 상기 애플리케이션 세트를 제시하라는 요청을 수신한 것에 응답하여, 상기 애플리케이션 서브셋 대신에 상기 보조 디바이스의 상기 보조 컴퓨팅 환경 내의 상기 애플리케이션 세트를 제시하게 하는 것인, 방법.
  14. 제1항에 있어서,
    상기 선택된 애플리케이션을 인스턴스화하라는 상기 요청을 수신하는 것은, 상기 선택된 애플리케이션을 인스턴스화하라는 요청 - 상기 요청은 상기 디바이스 컬렉션의 선택된 보조 디바이스를 표시하지 않음 - 을, 상기 사용자로부터, 수신한 것에 응답하여,
    상기 디바이스 컬렉션 중에서, 상기 디바이스 속성들이 상기 선택된 애플리케이션과 호환되는 적어도 하나의 후보 보조 디바이스를 식별하는 것; 및
    상기 적어도 하나의 후보 보조 디바이스 중으로부터, 선택된 보조 디바이스를 선택하는 것
    을 추가로 포함하는 것인, 방법.
  15. 제1항에 있어서,
    상기 프로세서 상에서 상기 명령어들을 실행하는 단계는 추가로 상기 주 디바이스로 하여금, 상기 사용자로부터의 사용자 입력을 요청하는 애플리케이션으로부터의 요청을 수신한 것에 응답하여,
    상기 디바이스 컬렉션의 상기 보조 디바이스들 중에서, 상기 요청과 호환되는 디바이스 속성들을 나타내는 선택된 보조 디바이스를 식별하게 하고;
    상기 선택된 보조 디바이스의 상기 사용자 입력을 상기 애플리케이션과 바인딩시키게 하는 것인, 방법.
KR1020177011043A 2014-09-24 2015-09-18 다수의 디바이스 상에 컴퓨팅 환경의 제시 KR102394296B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227014260A KR102570799B1 (ko) 2014-09-24 2015-09-18 다수의 디바이스 상에 컴퓨팅 환경의 제시

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/495,420 US9769227B2 (en) 2014-09-24 2014-09-24 Presentation of computing environment on multiple devices
US14/495,420 2014-09-24
PCT/US2015/050846 WO2016048809A1 (en) 2014-09-24 2015-09-18 Presentation of computing environment on multiple devices

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227014260A Division KR102570799B1 (ko) 2014-09-24 2015-09-18 다수의 디바이스 상에 컴퓨팅 환경의 제시

Publications (2)

Publication Number Publication Date
KR20170059474A true KR20170059474A (ko) 2017-05-30
KR102394296B1 KR102394296B1 (ko) 2022-05-03

Family

ID=54261080

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177011043A KR102394296B1 (ko) 2014-09-24 2015-09-18 다수의 디바이스 상에 컴퓨팅 환경의 제시
KR1020227014260A KR102570799B1 (ko) 2014-09-24 2015-09-18 다수의 디바이스 상에 컴퓨팅 환경의 제시

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020227014260A KR102570799B1 (ko) 2014-09-24 2015-09-18 다수의 디바이스 상에 컴퓨팅 환경의 제시

Country Status (11)

Country Link
US (2) US9769227B2 (ko)
EP (1) EP3198412A1 (ko)
JP (1) JP6598848B2 (ko)
KR (2) KR102394296B1 (ko)
CN (1) CN106687923B (ko)
AU (1) AU2015321697B2 (ko)
BR (1) BR112017004100A2 (ko)
CA (1) CA2961216C (ko)
MX (1) MX2017003838A (ko)
RU (1) RU2700188C2 (ko)
WO (1) WO2016048809A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10448111B2 (en) 2014-09-24 2019-10-15 Microsoft Technology Licensing, Llc Content projection
US10635296B2 (en) 2014-09-24 2020-04-28 Microsoft Technology Licensing, Llc Partitioned application presentation across devices
US10025684B2 (en) 2014-09-24 2018-07-17 Microsoft Technology Licensing, Llc Lending target device resources to host device computing environment
US9763024B2 (en) * 2015-04-09 2017-09-12 Yahoo Holdings, Inc. Mobile ghosting
KR20160125783A (ko) * 2015-04-22 2016-11-01 삼성전자주식회사 컨텐츠를 표시하기 위한 방법 및 전자 장치
US20150381694A1 (en) * 2015-05-08 2015-12-31 Bandwidth.Com, Inc. Bonding of Multiple Concurrent Data Streams Among Multiple Devices
US9898483B2 (en) * 2015-08-10 2018-02-20 American Express Travel Related Services Company, Inc. Systems, methods, and apparatuses for creating a shared file system between a mainframe and distributed systems
US10523646B2 (en) 2015-08-24 2019-12-31 Virtru Corporation Methods and systems for distributing encrypted cryptographic data
WO2018113977A1 (de) * 2016-12-22 2018-06-28 Volkswagen Aktiengesellschaft Anwenderendgerät, anwenderschnittstelle, computerprogrammprodukt, signalfolge, fortbewegungsmittel und verfahren zur einrichtung einer anwenderschnittstelle eines fortbewegungsmittels
US10461955B2 (en) * 2018-03-27 2019-10-29 Rovi Guides, Inc. Systems and methods for preemptively preventing interruptions from network-connected devices from occurring during media viewing
US11074116B2 (en) * 2018-06-01 2021-07-27 Apple Inc. Direct input from a remote device
US11531777B2 (en) * 2019-01-30 2022-12-20 Virtru Corporation Methods and systems for restricting data access based on properties of at least one of a process and a machine executing the process
US20220188168A1 (en) * 2020-12-15 2022-06-16 International Business Machines Corporation Adjunct processor command-type filtering
US11487556B2 (en) 2020-12-15 2022-11-01 International Business Machines Corporation Command-type filtering based on per-command filtering indicator

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007179108A (ja) * 2005-12-26 2007-07-12 Casio Comput Co Ltd コンピュータシステム、サーバ装置、端末装置
WO2009143294A2 (en) * 2008-05-20 2009-11-26 Citrix Systems, Inc. Methods and systems for using external display devices with a mobile computing device
US20110246891A1 (en) * 2008-05-13 2011-10-06 Apple Inc. Pushing a Graphical User Interface to a Remote Device with Display Rules Provided by the Remote Device
WO2013012654A2 (en) * 2011-07-15 2013-01-24 Vmware, Inc. Native viewer use for service results from a remote desktop
US20130055102A1 (en) * 2011-08-24 2013-02-28 Lenovo (Singapore) Pte, Ltd. Adapting a user interface of a remote desktop host

Family Cites Families (215)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6856960B1 (en) 1997-04-14 2005-02-15 At & T Corp. System and method for providing remote automatic speech recognition and text-to-speech services via a packet network
US5880732A (en) 1997-04-29 1999-03-09 Telefonaktiebolaget L M Ericsson Publ. Apparatus enabling usage of external display monitor with a mobile telephone
US9292111B2 (en) 1998-01-26 2016-03-22 Apple Inc. Gesturing with a multipoint sensing device
GB0027260D0 (en) 2000-11-08 2000-12-27 Koninl Philips Electronics Nv An image control system
US20100005396A1 (en) 2000-02-18 2010-01-07 Nason D David Method and system for controlling a comlementary user interface on a display surface
US8903737B2 (en) 2000-04-25 2014-12-02 Accenture Global Service Limited Method and system for a wireless universal mobile product interface
SE522878C2 (sv) 2000-06-16 2004-03-16 Ericsson Telefon Ab L M Datakommunikationssystem
CA2413657A1 (en) 2000-06-16 2001-12-20 Healthetech, Inc. Speech recognition capability for a personal digital assistant
US6952676B2 (en) 2000-07-11 2005-10-04 Sherman William F Voice recognition peripheral device
US6748195B1 (en) 2000-09-29 2004-06-08 Motorola, Inc. Wireless device having context-based operational behavior
TW594556B (en) * 2000-11-03 2004-06-21 Synq Technology Inc Computer system for displaying multiple window screens
US6915262B2 (en) 2000-11-30 2005-07-05 Telesector Resources Group, Inc. Methods and apparatus for performing speech recognition and using speech recognition results
WO2002082387A1 (en) 2001-04-04 2002-10-17 Microcell I5 Inc. Method and system for effecting an electronic transaction
JP2002323986A (ja) 2001-04-25 2002-11-08 Hitachi Ltd コンピュータリソース流通システム及び方法
FI111494B (fi) 2001-06-29 2003-07-31 Nokia Corp Langaton käyttöliittymän laajennus
US6941356B2 (en) 2001-06-29 2005-09-06 International Business Machines Corporation Automated configuration enabled via interrogation over network
US20030036927A1 (en) 2001-08-20 2003-02-20 Bowen Susan W. Healthcare information search system and user interface
US20130024778A1 (en) 2011-07-13 2013-01-24 Z124 Dynamic cross-environment application configuration/orientation
US9268518B2 (en) 2011-09-27 2016-02-23 Z124 Unified desktop docking rules
US9405459B2 (en) 2011-08-24 2016-08-02 Z124 Unified desktop laptop dock software operation
US7345671B2 (en) 2001-10-22 2008-03-18 Apple Inc. Method and apparatus for use of rotational user inputs
CN100350351C (zh) 2002-03-08 2007-11-21 设计展示公司 电装置控制设备
US7010755B2 (en) 2002-04-05 2006-03-07 Microsoft Corporation Virtual desktop manager
US20030214458A1 (en) 2002-05-20 2003-11-20 Vladimir Giemborek Multiple display configuration
US7398209B2 (en) 2002-06-03 2008-07-08 Voicebox Technologies, Inc. Systems and methods for responding to natural language speech utterance
US7733366B2 (en) 2002-07-01 2010-06-08 Microsoft Corporation Computer network-based, interactive, multimedia learning system and process
US20040138467A1 (en) 2002-11-26 2004-07-15 French Roger Harquail Aromatic and aromatic/heteroaromatic molecular structures with controllable electron conducting properties
CZ294898B6 (cs) 2002-12-16 2005-04-13 České Vysoké Učení Technické Fakulta Elektrotechnická Zapojení pro generování multiplikativní inverze nad konečným tělesem GF(p)
US7574691B2 (en) 2003-03-17 2009-08-11 Macrovision Corporation Methods and apparatus for rendering user interfaces and display information on remote client devices
US7840509B1 (en) 2003-03-26 2010-11-23 Edmund Messina Computer-based system for interrogating a user and generating a result
US8504936B2 (en) 2010-10-01 2013-08-06 Z124 Changing stack when swapping
US8150945B2 (en) 2003-09-22 2012-04-03 Broadcom Corporation Host arbitrated user interface resource sharing
US7209116B2 (en) 2003-10-08 2007-04-24 Universal Electronics Inc. Control device having integrated mouse and remote control capabilities
US7716273B2 (en) 2003-10-24 2010-05-11 Microsoft Corporation Systems and methods for projecting content from computing devices
EP1735986B1 (en) * 2004-03-17 2013-05-22 Qualcomm, Incorporated High data rate interface apparatus and method
EP2000894B1 (en) 2004-07-30 2016-10-19 Apple Inc. Mode-based graphical user interfaces for touch sensitive input devices
US8606186B2 (en) 2004-12-22 2013-12-10 Dragonwave, Inc. Wireless communication path management methods and systems
US20060203758A1 (en) 2005-03-11 2006-09-14 Samsung Electronics Co., Ltd. Mobile terminal for relaying multimedia data to an external display device
US20060236255A1 (en) 2005-04-18 2006-10-19 Microsoft Corporation Method and apparatus for providing audio output based on application window position
DE602005016236D1 (de) 2005-06-30 2009-10-08 Nokia Corp Kontextsensitive Datenbehandlung
US9286388B2 (en) 2005-08-04 2016-03-15 Time Warner Cable Enterprises Llc Method and apparatus for context-specific content delivery
US8769408B2 (en) 2005-10-07 2014-07-01 Apple Inc. Intelligent media navigation
US7523226B2 (en) 2005-11-09 2009-04-21 Microsoft Corporation Controlling an auxiliary display user interface based on usage context
US7962552B2 (en) * 2005-11-14 2011-06-14 Red Hat, Inc. Borrow and give back of windows
US9395905B2 (en) 2006-04-05 2016-07-19 Synaptics Incorporated Graphical scroll wheel
US7620610B2 (en) 2006-06-27 2009-11-17 Microsoft Corporation Resource availability for user activities across devices
US7676761B2 (en) 2006-06-30 2010-03-09 Microsoft Corporation Window grouping
RU2417391C2 (ru) * 2006-08-24 2011-04-27 Сименс Энерджи Энд Отомейшн, Инк. Устройства, системы и способы конфигурирования программируемого логического контроллера
CN101536520B (zh) 2006-09-29 2011-08-17 联合视频制品公司 交互式媒体指南应用程序的配置文件的管理
US7937075B2 (en) 2006-10-06 2011-05-03 At&T Intellectual Property I, L.P. Mode changing of a mobile communications device and vehicle settings when the mobile communications device is in proximity to a vehicle
US20080084400A1 (en) 2006-10-10 2008-04-10 Outland Research, Llc Touch-gesture control of video media play on handheld media players
US8354997B2 (en) 2006-10-31 2013-01-15 Navisense Touchless user interface for a mobile device
KR100816498B1 (ko) 2006-12-07 2008-03-24 한국전자통신연구원 표면 처리된 층을 포함하는 유기 인버터 및 그 제조 방법
US7956847B2 (en) 2007-01-05 2011-06-07 Apple Inc. Gestures for controlling, manipulating, and editing of media files using touch sensitive devices
US8861898B2 (en) 2007-03-16 2014-10-14 Sony Corporation Content image search
US20080248834A1 (en) 2007-04-03 2008-10-09 Palm, Inc. System and methods for providing access to a desktop and applications of a mobile device
US20080250424A1 (en) 2007-04-04 2008-10-09 Ms1 - Microsoft Corporation Seamless Window Implementation for Windows Presentation Foundation based Applications
WO2008148222A1 (en) 2007-06-07 2008-12-11 E-Lane Systems Inc. A host controlling an interfaced pda's applications directly
CA2695194C (en) 2007-07-30 2014-07-15 Telcordia Technologies, Inc. Method and system for presenting a mash-up, or personalized mixture, and associated contextual suggestions to mobile users
US8943425B2 (en) 2007-10-30 2015-01-27 Google Technology Holdings LLC Method and apparatus for context-aware delivery of informational content on ambient displays
US8185539B1 (en) 2008-08-12 2012-05-22 Foneweb, Inc. Web site or directory search using speech recognition of letters
US8161403B2 (en) 2007-12-05 2012-04-17 International Business Machines Corporation Returning passed objects in a surface based computing environment using a virtual bungee
US9767681B2 (en) 2007-12-12 2017-09-19 Apple Inc. Handheld electronic devices with remote control functionality and gesture recognition
US8194037B2 (en) 2007-12-14 2012-06-05 Apple Inc. Centering a 3D remote controller in a media system
US8418072B1 (en) 2007-12-24 2013-04-09 Emc Corporation UI data model abstraction
US8417764B2 (en) 2008-02-18 2013-04-09 International Business Machines Corporation Dynamic mashup creation from a set of resources and resource relationships
US9448814B2 (en) * 2008-02-19 2016-09-20 Google Inc. Bridge system for auxiliary display devices
US9513704B2 (en) 2008-03-12 2016-12-06 Immersion Corporation Haptically enabled user interface
US20090248737A1 (en) * 2008-03-27 2009-10-01 Microsoft Corporation Computing environment representation
WO2009122518A1 (ja) 2008-03-31 2009-10-08 富士通株式会社 受信装置、送信装置、受信方法および送信方法
US20090284476A1 (en) * 2008-05-13 2009-11-19 Apple Inc. Pushing a user interface to a remote device
JP5292948B2 (ja) 2008-06-30 2013-09-18 富士通株式会社 表示及び入力機能を備えた装置
US8520000B2 (en) 2008-07-02 2013-08-27 Icharts, Inc. Creation, sharing and embedding of interactive charts
US8312032B2 (en) 2008-07-10 2012-11-13 Google Inc. Dictionary suggestions for partial user entries
US20100060588A1 (en) 2008-09-09 2010-03-11 Microsoft Corporation Temporally separate touch input
US20100060572A1 (en) 2008-09-11 2010-03-11 Ely Tsern Display device for interfacing with a handheld computer device that dynamically generates a different user environment for the display device
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US8538324B2 (en) 2009-02-03 2013-09-17 Sony Corporation Mobile phone dock for TV
US9241062B2 (en) 2009-05-20 2016-01-19 Citrix Systems, Inc. Methods and systems for using external display devices with a mobile computing device
US20100304783A1 (en) 2009-05-29 2010-12-02 Logan James R Speech-driven system with headset
KR101566353B1 (ko) 2009-06-02 2015-11-05 엘지전자 주식회사 이동 단말기 및 이동 단말기의 정보 표시 방법
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
KR101498078B1 (ko) 2009-09-02 2015-03-03 엘지전자 주식회사 이동 단말기 및 디지털 액자 및 그 제어 방법
US20110066971A1 (en) 2009-09-14 2011-03-17 Babak Forutanpour Method and apparatus for providing application interface portions on peripheral computing devices
US20110126119A1 (en) 2009-11-20 2011-05-26 Young Daniel J Contextual presentation of information
KR20110058975A (ko) 2009-11-27 2011-06-02 삼성전자주식회사 슬라이딩형 휴대용 단말기
US9865263B2 (en) 2009-12-01 2018-01-09 Nuance Communications, Inc. Real-time voice recognition on a handheld device
US20110145817A1 (en) * 2009-12-16 2011-06-16 Grzybowski Carl E Adaptive virtual environment management system
US9465532B2 (en) 2009-12-18 2016-10-11 Synaptics Incorporated Method and apparatus for operating in pointing and enhanced gesturing modes
US8661361B2 (en) 2010-08-26 2014-02-25 Sitting Man, Llc Methods, systems, and computer program products for navigating between visual components
US20110185369A1 (en) * 2010-01-25 2011-07-28 Canon Kabushiki Kaisha Refresh of auxiliary display
US20110231796A1 (en) 2010-02-16 2011-09-22 Jose Manuel Vigil Methods for navigating a touch screen device in conjunction with gestures
US9253306B2 (en) 2010-02-23 2016-02-02 Avaya Inc. Device skins for user role, context, and function and supporting system mashups
US20110214162A1 (en) 2010-02-26 2011-09-01 Nokia Corporation Method and appartus for providing cooperative enablement of user input options
US8589936B2 (en) 2010-03-16 2013-11-19 Alcatel Lucent Method and apparatus for managing reallocation of system resources
US8463908B2 (en) 2010-03-16 2013-06-11 Alcatel Lucent Method and apparatus for hierarchical management of system resources
US8634873B2 (en) 2010-03-17 2014-01-21 Microsoft Corporation Mobile communication device having multiple, interchangeable second devices
EP2553561A4 (en) 2010-04-01 2016-03-30 Citrix Systems Inc INTERACTION WITH REMOTE APPLICATIONS DISPLAYED ON A VIRTUAL DESKTOP OF A TABLET COMPUTER DEVICE
CN101835020A (zh) 2010-04-20 2010-09-15 惠州Tcl移动通信有限公司 手机与电视机通信的方法及装置
US9998580B2 (en) 2010-04-26 2018-06-12 Hu-Do Ltd. Computing device operable to work in conjunction with a companion electronic device
US8266551B2 (en) 2010-06-10 2012-09-11 Nokia Corporation Method and apparatus for binding user interface elements and granular reflective processing
US8817642B2 (en) 2010-06-25 2014-08-26 Aliphcom Efficient pairing of networked devices
GB201011146D0 (en) 2010-07-02 2010-08-18 Vodafone Ip Licensing Ltd Mobile computing device
US9134799B2 (en) 2010-07-16 2015-09-15 Qualcomm Incorporated Interacting with a projected user interface using orientation sensors
US20120050183A1 (en) 2010-08-27 2012-03-01 Google Inc. Switching display modes based on connection state
US8453186B2 (en) 2010-09-15 2013-05-28 At&T Intellectual Property I, L.P. Method and system for remote control
US9123058B2 (en) 2011-11-16 2015-09-01 Flextronics Ap, Llc Parking space finder based on parking meter data
US8711552B2 (en) 2010-10-06 2014-04-29 Compal Electronics Inc. Modular system having expandable form factor
US8782240B2 (en) 2010-10-18 2014-07-15 Avaya Inc. Resource allocation using shared resource pools
US20120095643A1 (en) 2010-10-19 2012-04-19 Nokia Corporation Method, Apparatus, and Computer Program Product for Modifying a User Interface Format
US8549425B2 (en) 2010-12-02 2013-10-01 Sony Corporation Visual treatment for a user interface in a content integration framework
US9086839B2 (en) 2010-12-15 2015-07-21 Userful Corporation Multiple user computing method and system for same
KR101821197B1 (ko) 2010-12-21 2018-01-23 엘지전자 주식회사 이동단말기 및 그 제어방법
KR101662726B1 (ko) 2010-12-29 2016-10-14 삼성전자주식회사 전자 기기의 스크롤 방법 및 장치
US8793730B2 (en) 2010-12-30 2014-07-29 Yahoo! Inc. Entertainment companion content application for interacting with television content
JP5102899B2 (ja) 2011-01-11 2012-12-19 シャープ株式会社 映像表示装置および映像表示方法
US8963799B2 (en) 2011-01-11 2015-02-24 Apple Inc. Mirroring graphics content to an external display
US10631246B2 (en) 2011-02-14 2020-04-21 Microsoft Technology Licensing, Llc Task switching on mobile devices
AT512381B1 (de) 2011-03-18 2018-12-15 Dipl Ing Cebrat Gerfried Fensterbalken (Fensterläden) mit beidseitig ausstellbaren Solarpanelen
EP2509292A1 (en) 2011-04-06 2012-10-10 Research In Motion Limited Remote user input
US20120266079A1 (en) 2011-04-18 2012-10-18 Mark Lee Usability of cross-device user interfaces
WO2012144632A1 (ja) 2011-04-20 2012-10-26 Necカシオモバイルコミュニケーションズ株式会社 情報処理装置、情報処理方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体
US9239837B2 (en) 2011-04-29 2016-01-19 Logitech Europe S.A. Remote control system for connected devices
US20120282914A1 (en) 2011-05-06 2012-11-08 Lael Andrew Alexander Smart phone companion loop
US9501531B2 (en) 2011-05-18 2016-11-22 Microsoft Technology Licensing, Llc Contextual relevance engine for activity feeds
US9167020B2 (en) 2011-06-10 2015-10-20 Microsoft Technology Licensing, Llc Web-browser based desktop and application remoting solution
US20130018659A1 (en) 2011-07-12 2013-01-17 Google Inc. Systems and Methods for Speech Command Processing
US20130027315A1 (en) 2011-07-25 2013-01-31 Arther Sing Hook Teng Techniques to display an input device on a mobile device
US20130031261A1 (en) 2011-07-29 2013-01-31 Bradley Neal Suggs Pairing a device based on a visual code
WO2013028569A2 (en) 2011-08-19 2013-02-28 Apple Inc. Interactive content for digital books
US20130050222A1 (en) 2011-08-25 2013-02-28 Dov Moran Keyboard with embedded display
US20130057572A1 (en) 2011-09-07 2013-03-07 Microsoft Corporation Multiple Display Device Taskbars
US9712847B2 (en) 2011-09-20 2017-07-18 Microsoft Technology Licensing, Llc Low-complexity remote presentation session encoder using subsampling in color conversion space
US20130080932A1 (en) 2011-09-27 2013-03-28 Sanjiv Sirpal Secondary single screen mode activation through user interface toggle
US20130103770A1 (en) 2011-10-25 2013-04-25 Microsoft Corporation Distributed semi-synchronized event driven playback of multimedia
WO2013067526A1 (en) 2011-11-04 2013-05-10 Remote TelePointer, LLC Method and system for user interface for interactive devices using a mobile device
WO2013076530A1 (en) 2011-11-23 2013-05-30 Freescale Semiconductor, Inc. Microprocessor device, and method of managing reset events therefor
WO2013079771A1 (en) 2011-12-02 2013-06-06 Nokia Corporation Method and apparatus for sharing a communication among wireless devices
CA2798291C (en) 2011-12-07 2016-11-01 Research In Motion Limited Presenting context information in a computing device
EP2798554B1 (en) 2011-12-29 2021-06-02 Koninklijke KPN N.V. Method and system for content distribution
US20130179838A1 (en) 2012-01-05 2013-07-11 Microsoft Corporation Maintanence of terminated applications within the backstack
US9032292B2 (en) 2012-01-19 2015-05-12 Blackberry Limited Simultaneous display of multiple maximized applications on touch screen electronic devices
EP2807539A1 (en) 2012-01-25 2014-12-03 Technicolor Licensing Directional control using a touch sensitive device
KR101900319B1 (ko) 2012-02-07 2018-09-19 삼성전자 주식회사 서비스 연동 수행 방법과 이를 위한 시스템
US10209954B2 (en) 2012-02-14 2019-02-19 Microsoft Technology Licensing, Llc Equal access to speech and touch input
EP2632131A1 (en) 2012-02-21 2013-08-28 Research In Motion Limited Method, apparatus, and system for providing a shared user interface
EP2631738B1 (en) 2012-02-24 2016-04-13 BlackBerry Limited Method and apparatus for adjusting a user interface to reduce obscuration
AU2013239179B2 (en) 2012-03-26 2015-08-20 Apple Inc. Enhanced virtual touchpad and touchscreen
KR101901720B1 (ko) 2012-04-02 2018-11-13 삼성전자주식회사 더미 장치와의 연동 방법 및 그 전자 장치
US20130276015A1 (en) 2012-04-17 2013-10-17 Cox Communications, Inc. Virtual set-top boxes
KR101952682B1 (ko) 2012-04-23 2019-02-27 엘지전자 주식회사 이동 단말기 및 그 제어방법
US8923760B2 (en) 2012-04-26 2014-12-30 Qualcomm Incorporated Orientational collaboration of data between multiple devices
GB2502082B (en) 2012-05-15 2014-04-16 Displaylink Uk Ltd A display system
US20130331116A1 (en) 2012-06-06 2013-12-12 Microsoft Corporation Transmitting initiation details from a mobile device
US9003299B2 (en) 2012-06-08 2015-04-07 Apple Inc. Extensible application state preservation architecture
US9674331B2 (en) 2012-06-08 2017-06-06 Apple Inc. Transmitting data from an automated assistant to an accessory
US20130328667A1 (en) 2012-06-10 2013-12-12 Apple Inc. Remote interaction with siri
JP5877374B2 (ja) 2012-06-13 2016-03-08 パナソニックIpマネジメント株式会社 操作表示装置、プログラム
US20130335340A1 (en) 2012-06-19 2013-12-19 International Business Machines Corporation Controlling display of images received from secondary display devices
US20130347018A1 (en) 2012-06-21 2013-12-26 Amazon Technologies, Inc. Providing supplemental content with active media
US9268424B2 (en) 2012-07-18 2016-02-23 Sony Corporation Mobile client device, operation method, recording medium, and operation system
KR20140011857A (ko) 2012-07-20 2014-01-29 삼성전자주식회사 이동 단말에서 디스플레이 장치의 디스플레이를 제어하기 위한 방법 및 이를 위한 이동 단말
KR101971624B1 (ko) 2012-07-25 2019-04-23 삼성전자주식회사 이동 단말의 정보 표시 방법, 디스플레이 장치의 정보 제공 방법, 이동 단말의 제어 신호 생성 방법
KR102003938B1 (ko) 2012-08-10 2019-07-25 엘지전자 주식회사 이동 단말기 및 그것의 제어 방법
CN103677711B (zh) 2012-09-10 2018-07-20 三星电子株式会社 连接移动终端和外部显示器的方法和实现该方法的装置
EP2712152B1 (en) 2012-09-24 2016-09-14 Denso Corporation Method and Device
FR2996086B1 (fr) 2012-09-25 2014-10-24 Kadrige Procede de presentation a distance entre au moins deux terminaux connectes a travers un reseau
US9007426B2 (en) 2012-10-04 2015-04-14 Blackberry Limited Comparison-based selection of video resolutions in a video call
KR101919794B1 (ko) 2012-10-17 2018-11-19 엘지전자 주식회사 이동 단말기, 방송 단말기 및 이들의 제어 방법
US20140118222A1 (en) 2012-10-30 2014-05-01 Cloudcar, Inc. Projection of content to external display devices
US20140129695A1 (en) 2012-11-02 2014-05-08 Gface Gmbh Connected devices
US20160261921A1 (en) 2012-11-21 2016-09-08 Dante Consulting, Inc Context based shopping capabilities when viewing digital media
US9659298B2 (en) 2012-12-11 2017-05-23 Nuance Communications, Inc. Systems and methods for informing virtual agent recommendation
US20140173529A1 (en) 2012-12-14 2014-06-19 Barnesandnoble.Com Llc Circular gesture for touch sensitive ui control feature
US9613011B2 (en) 2012-12-20 2017-04-04 Cable Television Laboratories, Inc. Cross-reference of shared browser applications
US20140181715A1 (en) 2012-12-26 2014-06-26 Microsoft Corporation Dynamic user interfaces adapted to inferred user contexts
TW201431364A (zh) 2013-01-28 2014-08-01 Hon Hai Prec Ind Co Ltd 手持設備及控制方法
US20140218289A1 (en) 2013-02-06 2014-08-07 Motorola Mobility Llc Electronic device with control interface and methods therefor
US20140229858A1 (en) 2013-02-13 2014-08-14 International Business Machines Corporation Enabling gesture driven content sharing between proximate computing devices
US9672822B2 (en) 2013-02-22 2017-06-06 Next It Corporation Interaction with a portion of a content item through a virtual assistant
US9172747B2 (en) 2013-02-25 2015-10-27 Artificial Solutions Iberia SL System and methods for virtual assistant networks
US9344868B2 (en) 2013-02-25 2016-05-17 Here Global B.V. Method and apparatus for contextual content and service forwarding for mobile devices
CN104035565A (zh) 2013-03-04 2014-09-10 腾讯科技(深圳)有限公司 输入方法、输入装置、辅助输入方法及辅助输入系统
US20140267074A1 (en) 2013-03-14 2014-09-18 Qualcomm Incorporated System and method for virtual user interface controls in multi-display configurations
US9357250B1 (en) 2013-03-15 2016-05-31 Apple Inc. Multi-screen video user interface
US20140282103A1 (en) 2013-03-16 2014-09-18 Jerry Alan Crandall Data sharing
US9965174B2 (en) 2013-04-08 2018-05-08 Rohde & Schwarz Gmbh & Co. Kg Multitouch gestures for a measurement system
WO2014168984A1 (en) 2013-04-08 2014-10-16 Scott Andrew C Media capture device-based organization of multimedia items including unobtrusive task encouragement functionality
JP2014229272A (ja) 2013-05-27 2014-12-08 株式会社東芝 電子機器
US20140365336A1 (en) 2013-06-07 2014-12-11 Bby Solutions, Inc. Virtual interactive product display with mobile device interaction
US9440143B2 (en) 2013-07-02 2016-09-13 Kabam, Inc. System and method for determining in-game capabilities based on device information
US20150025976A1 (en) 2013-07-17 2015-01-22 LotusFlare, Inc. Systems and methods for providing mobile applications to users at a predetermined data rate
US20150066897A1 (en) 2013-08-27 2015-03-05 eweware, inc. Systems and methods for conveying passive interest classified media content
KR102034587B1 (ko) 2013-08-29 2019-10-21 엘지전자 주식회사 이동 단말기 및 이의 제어 방법
US9507482B2 (en) 2013-10-07 2016-11-29 Narsys, LLC Electronic slide presentation controller
US20150103015A1 (en) 2013-10-10 2015-04-16 Blackberry Limited Devices and methods for generating tactile feedback
US9912724B2 (en) 2013-12-06 2018-03-06 Vmware, Inc. Moving objects of a remote desktop in unstable network environments
US9721570B1 (en) 2013-12-17 2017-08-01 Amazon Technologies, Inc. Outcome-oriented dialogs on a speech recognition platform
US20150169550A1 (en) 2013-12-17 2015-06-18 Lenovo Enterprise Solutions (Singapore) Pte, Ltd. Translation Suggestion
JP6131412B2 (ja) 2014-03-20 2017-05-24 コニカミノルタ株式会社 定着装置
US20150324067A1 (en) 2014-05-07 2015-11-12 Honda Motor Co., Ltd. Vehicle infotainment gateway - multi-application interface
US9244748B2 (en) 2014-06-04 2016-01-26 International Business Machines Corporation Operating system user activity profiles
US10782787B2 (en) 2014-06-06 2020-09-22 Adobe Inc. Mirroring touch gestures
US9812056B2 (en) 2014-06-24 2017-11-07 Google Inc. Display resolution negotiation
US9729591B2 (en) 2014-06-24 2017-08-08 Yahoo Holdings, Inc. Gestures for sharing content between multiple devices
US20160070580A1 (en) 2014-09-09 2016-03-10 Microsoft Technology Licensing, Llc Digital personal assistant remote invocation
US20160085396A1 (en) 2014-09-24 2016-03-24 Microsoft Corporation Interactive text preview
US10448111B2 (en) 2014-09-24 2019-10-15 Microsoft Technology Licensing, Llc Content projection
US20160088060A1 (en) 2014-09-24 2016-03-24 Microsoft Technology Licensing, Llc Gesture navigation for secondary user interface
US9860306B2 (en) 2014-09-24 2018-01-02 Microsoft Technology Licensing, Llc Component-specific application presentation histories
US10635296B2 (en) 2014-09-24 2020-04-28 Microsoft Technology Licensing, Llc Partitioned application presentation across devices
US20160085698A1 (en) 2014-09-24 2016-03-24 Microsoft Corporation Device-specific user context adaptation of computing environment
US9678640B2 (en) 2014-09-24 2017-06-13 Microsoft Technology Licensing, Llc View management architecture
US20160085430A1 (en) 2014-09-24 2016-03-24 Microsoft Corporation Adapting user interface to interaction criteria and component properties
US10025684B2 (en) 2014-09-24 2018-07-17 Microsoft Technology Licensing, Llc Lending target device resources to host device computing environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007179108A (ja) * 2005-12-26 2007-07-12 Casio Comput Co Ltd コンピュータシステム、サーバ装置、端末装置
US20110246891A1 (en) * 2008-05-13 2011-10-06 Apple Inc. Pushing a Graphical User Interface to a Remote Device with Display Rules Provided by the Remote Device
WO2009143294A2 (en) * 2008-05-20 2009-11-26 Citrix Systems, Inc. Methods and systems for using external display devices with a mobile computing device
WO2013012654A2 (en) * 2011-07-15 2013-01-24 Vmware, Inc. Native viewer use for service results from a remote desktop
US20130055102A1 (en) * 2011-08-24 2013-02-28 Lenovo (Singapore) Pte, Ltd. Adapting a user interface of a remote desktop host

Also Published As

Publication number Publication date
RU2017109689A (ru) 2018-09-24
MX2017003838A (es) 2017-06-29
AU2015321697B2 (en) 2020-05-28
KR102394296B1 (ko) 2022-05-03
US20160088040A1 (en) 2016-03-24
EP3198412A1 (en) 2017-08-02
WO2016048809A1 (en) 2016-03-31
US9769227B2 (en) 2017-09-19
KR102570799B1 (ko) 2023-08-24
CN106687923B (zh) 2020-12-04
AU2015321697A1 (en) 2017-03-16
RU2700188C2 (ru) 2019-09-13
JP6598848B2 (ja) 2019-10-30
CN106687923A (zh) 2017-05-17
CA2961216C (en) 2023-08-29
KR20220061273A (ko) 2022-05-12
BR112017004100A2 (pt) 2017-12-05
RU2017109689A3 (ko) 2019-04-03
CA2961216A1 (en) 2016-03-31
JP2017538177A (ja) 2017-12-21
US20180007104A1 (en) 2018-01-04
US10277649B2 (en) 2019-04-30

Similar Documents

Publication Publication Date Title
US10277649B2 (en) Presentation of computing environment on multiple devices
US11722860B2 (en) Messaging system interacting with dynamic extension app
CN107077348B (zh) 跨设备的经分割的应用呈现
CN107077661B (zh) 跨越使用共享工作空间的设备的任务完成
US20190073377A1 (en) Utilizing version vectors across server and client changes to determine device usage by type, app, and time of day
Yu et al. Application mobility in pervasive computing: A survey
KR20180006966A (ko) 써드 파티 애플리케이션으로의 디지털 어시스턴트 확장성
US20150088966A1 (en) Service activity user interface
US20200126513A1 (en) System and method for web enabled application execution and management
US11979941B2 (en) Data transmission method and terminal
US11016717B1 (en) Selective electronic content casting

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant