KR20150134324A - 멀티-스크린 애플리케이션들 위한 스크린캐스팅 - Google Patents

멀티-스크린 애플리케이션들 위한 스크린캐스팅 Download PDF

Info

Publication number
KR20150134324A
KR20150134324A KR1020157023182A KR20157023182A KR20150134324A KR 20150134324 A KR20150134324 A KR 20150134324A KR 1020157023182 A KR1020157023182 A KR 1020157023182A KR 20157023182 A KR20157023182 A KR 20157023182A KR 20150134324 A KR20150134324 A KR 20150134324A
Authority
KR
South Korea
Prior art keywords
display
web page
remote
presentation
render
Prior art date
Application number
KR1020157023182A
Other languages
English (en)
Other versions
KR102210369B1 (ko
Inventor
유리 제임스 위탈라
힌청 람
지아오양 린
마크 폴츠
니콜라스 카터
마크 데이비드 스코트
Original Assignee
구글 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 인코포레이티드 filed Critical 구글 인코포레이티드
Publication of KR20150134324A publication Critical patent/KR20150134324A/ko
Application granted granted Critical
Publication of KR102210369B1 publication Critical patent/KR102210369B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • G06F17/2247
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0464Positioning
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/14Solving problems related to the presentation of information to be displayed
    • G09G2340/145Solving problems related to the presentation of information to be displayed related to small screens
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

일 전반적 측면에 따라, 방벙은 로컬 컴퓨팅 디바이스의 프로세서에 의해, 원격 디바이스의 원격 디스플레이를 통한 디스플레이를 위해 렌더링할 웹페이지의 부분을 결정하는 단계를 포함할 수 있다. 방법은 원격 디바이스의 적어도 하나의 특성에 기초하여 웹 페이지의 부분을 렌더링함으로써 렌더링된 프리젠테이션 정보를 생성하는 단계를 또한 포함할 수 있다. 방법은 렌더링된 프리젠테이션 정보를 원격 디바이스로 송신하는 단계를 포함할 수 있다.

Description

멀티-스크린 애플리케이션들 위한 스크린캐스팅 {SCREENCASTING FOR MULTI-SCREEN APPLICATIONS}
관련 출원에 대한 상호 참조
본 출원은 2013년 3월 15일에 출원된 "SCREENCASTING FOR MULTI-SCREEN APPLICATIONS"라는 명칭의 미국 정규 특허 출원번호 제13/843,693호에 대한 우선권을 주장하고, 그것의 계속 출원이며, 그 개시 내용의 전체는 참조로서 본 명세서에 포함된다.
기술 분야
본 명세서는 이미지들 또는 컨텐츠를 디스플레이 하는 것에 관한 것이며, 및 보다 구체적으로 로컬 컴퓨팅 디바이스에 의해 생성된 이미지를 원격 디스플레이상에 디스플레이 하는 것에 관한 것이다.
전통적으로 원격 데스크탑 구현예들은 클라이언트/서버 컴퓨팅 환경들로 동작한다. 제어 컴퓨터 (이 문맥에서 클라이언트로 지칭됨)는 제어되는 컴퓨터의 (이 문맥에서 서버) 디스플레이 스크린으로부터 수신된 이미지의 복사본(copy)를 디스플레이한다. 복사본은 일반적으로 시간 간격에 기초하여 또는 원격 제어 소프트웨어에 의해 스크린상에서 변화가 통지된 때 업데이트된다. 제어 컴퓨터상의 소프트웨어는 제어되는 컴퓨터로 그것 자체의 키보드 및 마우스 활동을 송신하고, 원격 제어 소프트웨어가 이들 동작들을 구현한다. 제어되는 컴퓨터는 그런 다음 마치 동작들이 직접 해당 컴퓨터에서 직접 수행되는 것 처럼 행동한다. 많은 경우들에서, 원격 세션이 시청될 수 없거나 또는 방해 받지 않도록 로컬 디스플레이 및 입력 디바이스들이 사용 금지될 수 있다.
일 전반적 측면에 따라, 방벙은 로컬 컴퓨팅 디바이스의 프로세서에 의해, 원격 디바이스의 원격 디스플레이를 통한 디스플레이를 위해 렌더링할 웹페이지의 부분을 결정하는 단계를 포함할 수 있다. 상기 방법은 상기 원격 디바이스의 적어도 하나의 특성에 기초하여 상기 웹 페이지의 부분을 렌더링함으로써 렌더링된 프리젠테이션 정보를 생성하는 단계를 또한 포함할 수 있다. 상기 방법은 상기 렌더링된 프리젠테이션 정보를 상기 원격 디바이스로 송신하는 단계를 포함할 수 있다.
구현예들은 다음의 특징들 중 하나 이상을 포함할 수 있다. 예를 들어, 상기 렌더링된 프리젠테이션 정보를 생성하는 단계는 상기 원격 디스플레이와 관련된 일련의 프리젠테이션 특성 정보를 선택하는 단계 및 상기 원격 디스플레이와 관련된 상기 일련의 프리젠테이션 특성 정보에 기초하여 상기 웹 페이지의 부분을 렌더링하는 단계를 포함할 수 있다. 상기 송신하는 단계는 실시간 통신 프로토콜에 따라 상기 렌더링된 프리젠테이션 정보를 재포맷팅(reformating)하는 단계를 포함할 수 있다. 상기 실시간 통신 프로토콜은 WebRTC(Web Real-Time Communication)에 실질적으로 부합할 수 있다. 디스플레이를 위해 렌더링할 상기 웹페이지의 부분은 오디오 부분을 포함할 수 있다. 렌더링된 프리젠테이션 정보를 생성하는 단계는 상기 원격 디바이스의 오디오 컴포넌트의 적어도 하나의 특성에 기초하여 오디오 신호를 생성하는 단계를 포함할 수 있다.
예를 들어, 상기 방법의 단계들은 상기 로컬 컴퓨팅 디바이스의 로컬 디스플레이를 통한 디스플레이를 위해 렌더링할 상기 웹 페이지의 제 2 부분을 결정하는 단계, 상기 로컬 디스플레이의 적어도 하나의 특성에 기초하여 상기 웹 페이지의 상기 제 2 부분을 렌더링함으로써 제 2 렌더링된 프리젠테이션 정보를 생성하는 단계, 및/또는 상기 제 2 렌더링된 프리젠테이션 정보를 상기 로컬 디스플레이를 통하여 디스플레이하는 단계를 더 포함할 수 있다. 더구나, 상기 로컬 디스플레이를 통한 상기 제 2 렌더링된 프리젠테이션 정보를 디스플레이하는 단계는 상기 렌더링된 프리젠테이션 정보를 상기 원격 디바이스로 송신하면서 상기 디스플레이하는 상기 제 2 렌더링된 프리젠테이션 정보를 동기화하는 단계를 포함할 수 있다. 더 나아가, 상기 로컬 디스플레이를 통한 디스플레이를 위해 렌더링할 상기 웹 페이지의 제 2 부분은 적어도 상기 원격 디스플레이를 통한 디스플레이를 위해 렌더링 할 상기 웹 페이지의 부분을 포함할 수 있다. 상기 방법의 단계들은 상기 로컬 컴퓨팅 디바이스를 통해 유저 입력을 수신하는 단계를 더 포함할 수 있다. 더구나, 상기 원격 디스플레이를 통한 디스플레이를 위해 렌더링할 상기 웹페이지의 부분을 결정하는 것은 적어도 부분적으로 상기 유저 입력에 기초될 수 있다.
다른 전반적 측면에 따라, 장치는 프로세서 및 네트워크 인터페이스를 포함할 수 있다. 상기 프로세서는 원격 디바이스의 원격 디스플레이를 통한 디스플레이를 위해 렌더링할 웹페이지의 부분을 결정하고; 및 상기 원격 디바이스의 적어도 하나의 특성에 기초하여 상기 웹 페이지의 부분을 렌더링함으로써 렌더링된 프리젠테이션 정보를 생성하도록 구성될 수 있다. 상기 네트워크 인터페이스는 상기 렌더링된 프리젠테이션 정보를 상기 원격 디바이스로 송신하도록 구성될 수 있다.
구현예들은 다음의 특징들 중 하나 이상을 포함할 수 있다. 예를 들어, 상기 프로세서는 상기 원격 디스플레이와 관련된 일련의 프리젠테이션 특성 정보를 선택하고 및 상기 원격 디스플레이와 관련된 상기 일련의 프리젠테이션 특성 정보에 기초하여 상기 웹 페이지의 부분을 렌더링하도록 구성될 수 있다. 상기 프로세서는 실시간 통신 프로토콜에 따라 상기 렌더링된 프리젠테이션 정보를 재포맷팅(reformating)하도록 구성될 수 있다. 상기 실시간 통신 프로토콜은 WebRTC(Web Real-Time Communication)에 실질적으로 부합할 수 있다. 상기 디스플레이를 위해 렌더링할 적어도 상기 웹페이지의 부분은 오디오 부분을 포함할 수 있다. 상기 프로세서는 상기 원격 디바이스의 오디오 컴포넌트의 적어도 하나의 특성에 기초하여 오디오 신호를 생성하도록 구성될 수 있다.
예를 들어, 상기 프로세서는 상기 장치의 로컬 모니터를 통한 디스플레이를 위해 렌더링할 상기 웹 페이지의 제 2 부분을 결정하고, 및/또는 상기 로컬 모니터의 적어도 하나의 특성에 기초하여 상기 웹 페이지의 상기 제 2 부분을 렌더링함으로써 제 2 렌더링된 프리젠테이션 정보를 생성하도록 더 구성될 수 있다. 상기 로컬 모니터는 상기 제 2 렌더링된 프리젠테이션 정보를 디스플레이 하도록 구성될 수 있다. 상기 프로세서는 상기 렌더링된 프리젠테이션 정보를 상기 원격 디바이스로 송신하면서 상기 제 2 렌더링된 프리젠테이션 정보의 디스플레이하는 것을 동기화하도록 더 구성될 수 있다. 상기 로컬 모니터를 통한 디스플레이를 위해 렌더링할 상기 웹 페이지의 제 2 부분은 적어도 상기 원격 디스플레이를 통한 디스플레이를 위해 렌더링 할 상기 웹 페이지의 부분을 포함할 수 있다. 상기 프로세서는 상기 장치를 통해 상기 유저 입력 수신하고 및/또는 적어도 부분적으로 상기 유저 입력에 기초하여 상기 원격 디스플레이를 통한 디스플레이를 위해 렌더링할 상기 웹페이지의 부분을 결정하도록 더 구성될 수 있다.
다른 전반적 측면에 따라, 기계-실행 가능한 프로그램의 실행 가능한 코드를 포함하는 유형의 구체화된 컴퓨터 판독가능 매체로서, 실행될 때 장치로 하여금:상기 장치의 프로세서에 의해 원격 장치의 원격 프리젠테이션 하드웨어 컴포넌트를 통한 프리젠테이션을 위해 렌더링할 웹페이지의 부분을 결정하고; 상기 원격 장치의 적어도 하나의 특성에 기초하여 상기 웹 페이지의 부분을 렌더링함으로써 렌더링된 프리젠테이션 정보를 생성하고; 및 상기 렌더링된 프리젠테이션 정보를 상기 원격 디바이스를 송신하도록 구성될 수 있다.
구현예들은 다음의 특징들 중 하나 이상을 포함할 수 있다. 예를 들어, 상기 렌더링된 프리젠테이션 정보를 생성하는 단계는 상기 원격 디스플레이와 관련된 일련의 프리젠테이션 특성 정보를 선택하는 단계 및 상기 원격 디스플레이와 관련된 상기 일련의 프리젠테이션 특성 정보에 기초하여 상기 웹 페이지의 부분을 렌더링하는 단계를 포함할 수 있다. 상기 송신하는 단계는 실시간 통신 프로토콜에 따라 상기 렌더링된 프리젠테이션 정보를 재포맷팅(reformatting)하는 단계를 포함할 수 있다. 상기 실시간 통신 프로토콜은 WebRTC(Web Real-Time Communication)에 실질적으로 부합할 수 있다. 디스플레이를 위해 렌더링할 상기 웹페이지의 부분은 오디오 부분을 포함할 수 있다. 렌더링된 프리젠테이션 정보를 생성하는 단계는 상기 원격 디바이스의 오디오 컴포넌트의 적어도 하나의 특성에 기초하여 오디오 신호를 생성하는 단계를 포함할 수 있다.
예를 들어, 상기 방법의 단계들은 상기 로컬 컴퓨팅 디바이스의 로컬 디스플레이를 통한 디스플레이를 위해 렌더링할 상기 웹 페이지의 제 2 부분을 결정하는 단계, 상기 로컬 디스플레이의 적어도 하나의 특성에 기초하여 상기 웹 페이지의 상기 제 2 부분을 렌더링함으로써 제 2 렌더링된 프리젠테이션 정보를 생성하는 단계, 및/또는 상기 제 2 렌더링된 프리젠테이션 정보를 상기 로컬 디스플레이를 통하여 디스플레이하는 단계를 더 포함할 수 있다. 더구나, 상기 로컬 디스플레이를 통한 상기 제 2 렌더링된 프리젠테이션 정보를 디스플레이하는 단계는 상기 렌더링된 프리젠테이션 정보를 상기 원격 디바이스로 송신하면서 상기 디스플레이하는 상기 제 2 렌더링된 프리젠테이션 정보를 동기화하는 단계를 포함할 수 있다. 더 나아가, 상기 로컬 디스플레이를 통한 디스플레이를 위해 렌더링할 상기 웹 페이지의 제 2 부분은 적어도 상기 원격 디스플레이를 통한 디스플레이를 위해 렌더링 할 상기 웹 페이지의 부분을 포함할 수 있다. 상기 방법의 단계들은 상기 로컬 컴퓨팅 디바이스를 통해 유저 입력을 수신하는 단계를 더 포함할 수 있다. 더구나, 상기 원격 디스플레이를 통한 디스플레이를 위해 렌더링할 상기 웹페이지의 부분을 결정하는 것은 적어도 부분적으로 상기 유저 입력에 기초될 수 있다.
하나 이상의 구현들의 세부사항들은 첨부한 도면들 및 이하의 설명에 제시된다. 다른 특징들은 설명 및 도면들로부터, 및 청구항들로부터 명백해질 것이다.
정보를 디스플레이 하기 위한 시스템 및/또는 방법은, 실질적으로 적어도 하나의 도면들로 도시되고 및/또는 도면들과 관련하여 설명되고, 청구항들에서 보다 완벽하게 개시된다.
도 1은 개시된 발명 내용에 따른 시스템의 예시적인 실시예의 블록 다이어그램이다.
도 2는 개시된 발명 내용에 따른 시스템의 예시적인 실시예의 블록 다이어그램이다.
도 3은 개시된 발명 내용에 따른 시스템의 예시적인 실시예의 블록 다이어그램이다.
도 4는 개시된 내용에 따른 기술의 예시적인 실시예의 플로우 차트이다.
도 5는 본 출원에서 설명된 기술들을 구현하기 위해 사용될 수 있는 컴퓨터 디바이스 및 모바일 컴퓨터 디바이스의 일 예를 예시한다.
다양한 도면들에서의 같은 도면 부호들은 같은 요소들을 나타낸다.
도 1은 개시된 발명 내용에 따른 시스템(100)의 예시적인 실시예의 블록 다이어그램이다. 일 실시예에서, 시스템 (100)은 유저 (190)에 의해 사용되거나 또는 운용되는 컴퓨팅 디바이스 (102)를 포함할 수 있다. 일부 실시예들에서, 시스템 (100)은 하나 이상의 오디오 및/또는 시각의 신호들 또는 정보 피스(piece)들을 제공하거나 또는 디스플레이 하도록 구성된 디스플레이 디바이스 (104)를 또한 포함할 수 있다. 또 다른 실시예들에서, 시스템 (100)은 하나 이상의 웹 페이지들 (170)을 제공하도록 구성된 하나 이상의 서버 디바이스들 (106)을 포함할 수 있다.
다양한 실시예들에서, 클라이언트 또는 프로세싱 디바이스 (102)는 컴퓨팅 디바이스, 예컨대, 예를 들어, 랩탑, 데스크탑, 워크스테이션, 개인 디지털 보조장치, 스마트폰, 태블릿, 및 다른 적절한 컴퓨터들, 등. 또는 그것의 가상의(virtual) 기계 또는 가상의 컴퓨팅 디바이스를 포함할 수 있다. 이런 실시예에서, 프로세싱 디바이스 (102)는 디스플레이 디바이스 (104)에 의한 디스플레이를 위한 프리젠테이션 정보를 생성하는데 충분한 컴퓨팅 자원들 (예를 들어, 프로세싱 파워, 메모리, 등.)를 포함할 수 있다.
이런 실시예에서, 프로세싱 디바이스 (102)는 유저 (191) 및/또는 유저 (190)에게 정보를 제공하기 위해 필요한 프리젠테이션 정보를 생성하기 위해 웹 페이지 (142) 또는 다른 미가공(raw) 셋의 정보를 취하거나 및 해당 정보를 사용하도록 구성될 수 있다. 그런 다음 이 프리젠테이션 정보 (146), 그것이 유저 (191)에게 제공되는 디스플레이 디바이스 (104)로 통신될 수 있다.
이 문맥에서, 용어 “프리젠테이션(presentation)” 및 그것의 다양한 용어 형태들(word-forms) (예를 들어, “프리젠트(present)”, “프리젠팅(presenting)”, 등.)은 정보를 감각 지각 형태와 관련된 적어도 하나의 하드웨어 컴포넌트 (예를 들어, 액정 디스플레이 (LCD), 헤드폰들, 햅틱 하드웨어, 등.)를 통하여 유저 (예를 들어, 유저 (191), 등.)에게 출력하는 것을 포함할 수 있다. 예를 들어, 일 실시예에서, 정보를 유저에게 프리젠팅하는 것은 간단하게 유저에게 비디오 신호 또는 시각적 정보를 디스플레이 하는 것을 포함할 수 있다. 다른 실시예에서, 프리젠팅하는 것은 라우드스피커(loudspeaker)를 통하여 유저에게 비디오 신호 또는 시각 정보를 디스프레이 하는 것과 오디오 신호를 플레이 하는 것을 포함할 수 있다. 또 다른 실시예들에서, 디스플레이 또는 제공 디바이스의 출력 하드웨어는 이런 햅틱 디바이스와 관련된 신호 또는 정보에 따라 햅틱 하드웨어를 제어하는 것을 포함할 수 있는 햅틱 하드웨어 (예를 들어, 럼블(rumble) 제어기, 햅틱 터치스크린, 등.) 프리젠팅을 포함한다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 몇개의 예시적인 예들이라는 것이 이해되어야 한다.
본 출원에 다양한 실시예들에서 용어 “디스플레이(display)”는 개시된 내용을 논할 때 예시적인 용도로 사용될 수 있고, 이런 것은 단지 예시적이고 개시된 내용은 단지 정보의 시각적 프리젠테이션에 제한되지 않는다는 것이 이해되어야 한다.
다양한 실시예들에서, 컴퓨팅 디바이스 (102)는 소프트웨어, 펌웨어, 또는 그것의 조합의 하나 이상의 기계 실행 가능한 명령들 또는 피스들을 실행하도록 구성된 프로세서 (112)를 포함할 수 있다. 컴퓨팅 디바이스 (102)는 일부 실시예들에서, 일시적으로, 영구적으로, 반-영구적으로, 또는 그것의 조합으로 하나 또는 그 이상 피스들의 데이터를 저장하도록 구성된 메모리 (114)를 포함할 수 있다. 더구나, 메모리 (114)는 휘발성 메모리, 비 휘발성 메모리 또는 그것의 조합을 포함할 수 있다. 다양한 실시예들에서, 컴퓨팅 디바이스 (102)는 반-영구적 또는 실질적으로 영구적 형태로 데이터를 저장하도록 구성된 스토리지 매체 (115)를 포함할 수 있다. 다양한 실시예들에서, 스토리지 매체 (115)는 메모리 (114)에 의해 포함될 수 있다. 일부 실시예들에서, 컴퓨팅 디바이스 (102)는 하나 이상의 통신 네트워크들 (예를 들어, 유선 네트워크, 무선 네트워크, 셀룰러 네트워크, 등.)를 통하여 통신하거나 그리고 통신 네트워크들과 관련되도록 구성된 하나 이상의 네트워크 인터페이스들 (116)을 포함할 수 있다. 일부 실시예들에서, 컴퓨팅 디바이스 (102)가 정보 유저에게 (190) 정보를 제공할 수 있는 모니터, 디스플레이, 라우드스피커, 헤드폰들, 등.과 같은 인체 출력 디바이스 (HOD : human output device) (118)를 컴퓨팅 디바이스 (102)는 포함할 수 있다. 다양한 실시예들에서, 컴퓨팅 디바이스 (102)는 하나 이상의 다른 하드웨어 컴포넌트들 (113) (예를 들어, 키보드, 터치스크린, 카메라, 핑거프린트(fingerprint) 리더기, 비디오 프로세서, 등.)를 포함할 수 있다.
다양한 실시예들에서, 컴퓨팅 디바이스 (102)는 하나 이상의 서비스들을 애플리케이션 (120)에 제공하고 그리고 컴퓨팅 디바이스 (102)의 다양한 하드웨어 컴포넌트들 (예를 들어, 프로세서 (112), 네트워크 인터페이스 (116), 등.) 및 애플리케이션들 (예를 들어, 애플리케이션 (120), 등.)간의 중개자(intermediary)로서 역할을 하거나 또는 관리 하도록 구성된 운용 시스템 (OS : operating system) (117)를 포함할 수 있다.
이런 실시예에서, 컴퓨팅 디바이스 (102)는 로컬에 인스톨된 (예를 들어, 스토리지 매체 (115), 등.내에) 될 수 있고 및 프로세서 (112)에 직접 실행되고 및 OS (117)와 직접 상호 작용(interact)하도록 구성될 수 있는 하나 이상의 고유의 애플리케이션들 (예를 들어, 애플리케이션 (120), 등.)를 포함할 수 있다. 이런 실시예에서, 고유 애플리케이션들은 미리-컴파일된 기계 실행 가능한 코드를 포함할 수 있다. 일부 실시예들에서, 고유의 애플리케이션들은 소스 또는 객체 코드(object code)를 프로세서 (112)에 의해 실행되는 실행 가능한 코드로 번역하도록 구성된 스크립트 번역기 (예를 들어, C shell (csh), AppleScript, AutoHotKey, 등.) 또는 가상 기계 (예를 들어, Java Virtual Machine, Microsoft Common Language Runtime, 등.)를 포함할 수 있다.
일부 실시예들에서, 컴퓨팅 디바이스 (102)는 물리적인 원격 서버 또는 웹 서버 (예를 들어, 서버 (106), 등.)로부터 웹 사이트 또는 웹 페이지들, 스크립트들의 콜렉션(collection), 등을 액세스하도록 구성된 웹 브라우저 (120)를 포함할 수 있다. 일부 실시예들에서, 웹 브라우저 (120)는 고유의 애플리케이션들의 하나로서 또는 운용 시스템 (117)의 일부로서 포함될 수 있다.
다양한 실시예들에서, 웹 애플리케이션 (120)은 그래픽 유저 인터페이스 (GUI)에 한번에 몇몇의 문서들 또는 웹 페이지들을 디스플레이 하도록 구성될 수 있다. GUI들의 영역에서, 탭 문서 인터페이스(TDI : tabbed document interface) 또는 다중 문서 인터페이스 (MDI : multiple document interface)는 다수의 문서들이 단일 윈도우 내에 수용되는 것을 허용한다. 종종 탭(tab)들은 애플리케이션의 단일 윈도우 내에서 유저(190)에게 상이한 컨텐츠 (예를 들어, 문서들, 웹페이지들, 등)를 제공하고, 그리고 유저가 상이한 탭들에서 상이한 컨텐츠를 보고 그리고 상호 작용시켜 용이하게 스위치 시키는 것을 허용하는 컨테이너(container)들로서 사용될 수 있다. TDI 들 및 MDI들은 대부분 통상적으로 웹 브라우저들, 웹 애플리케이션들, 문자 편집기들 및 프레퍼런스 페인(preference pane)에 포함되는 인터페이스 스타일들이다.
다양한 실시예들에서, 웹 브라우저 (124)는 하나 이상의 브라우저 익스텐션(extension)들 (132)과 상호 작용하도록 구성될 수 있거나 브라우저 익스텐션들을 포함할 수 있다. 이 문맥에서, “브라우저 익스텐션(browser extension)(132)”은 브라우저 (120)에 기능을 추가하도록 구성되고 그리고 정의 가능한 전체로서 함께 패키지 되거나 또는 그룹화된 하나 이상의 웹 페이지들 (예를 들어, 웹 페이지 (142), 등.)를 포함할 수 있다. 일 실시예에서, 브라우저 익스텐션(132)은 웹 페이지 (142) 또는 웹 사이트가 웹 브라우저 (120)에 의해 디스플레이 되거나 또는 렌더링되는(rendered) (예를 들어, 광고들을 차단함으로써, 하이퍼링크들을 추가함으로써, 등.) 방식을 변경함으로써 기능을 추가할 수 있다. 예시된 실시예에서, 브라우저 익스텐션(132)은 디스플레이 또는 프리젠테이션 디바이스 (104)와 통신함으로써 웹 애플리케이션 (120)에 기능을 추가할 수 있다. 다른 실시예에서, 브라우저 익스텐션(132)은 이하에서 설명될 웹 브라우저 (120)의 렌더링 엔진(rendering engine)을 허용하거나 재구성할 수 있다. 또 다른 실시예들에서, 웹 애플리케이션 (120)은 본 출원에서 설명된 하나 이상의 성능들을 포함할 수 있고 이런 브라우저 익스텐션(132)을 포함하지 않을 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 몇개의 예시적인 예들이라는 것이 이해되어야 한다.
이 문맥에서, “웹 페이지(web page)”는 웹사이트의 부분은 파일 또는 문서를 포함한다. 다양한 실시예들에서, 이런 웹 페이지들은 XHTML (Extensible HyperText Markup Language) 파일, Adobe Flash 파일, 이미지들, 비디오들, 등과 같은 XML(Extensible Markup Language), HTML(Hypertext Markup Language), CSS(Cascading Style Sheets), 자바스크립트(JavaScript)로 포맷된 파일을 포함할 수 있다. 다양한 실시예들에서, 웹 브라우저 (120)는 하나의 웹 페이지를 렌더링하기 위해서 하나 이상의 웹 페이지들을 프로세스 할 수 있다. 예를 들어, HTML 웹 페이지는 다른 웹 페이지들, 예컨대, JavaScripts, CSS 파일, 다양한 이미지들, 등을 포함할 수 있거나 또는 그것들에 의해 변형될 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 하나의 예시적인 예라는 것이 이해되어야 한다.
이 문맥에서, “웹 사이트”는 (웹 브라우저 (120)에 의해 렌더링되면) 유저에게 (190) (또는 유저 (191), 등.) 일반적으로 보여질 수 있거나 또는 이해할 수 있는 관련된 웹 페이지들의 콜렉션 또는 그룹화를 포함할 수 있다. 다양한 실시예들에서, 웹 사이트 (예를 들어, 웹 페이지들 (170)가 통신 네트워크를 통하여 액세스될 때, 웹 사이트는 HTTP(Hypertext Transfer Protocol) 또는 HTTPS(Hypertext Transfer Protocol Secure)를 통하여 액세스될 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 하나의 예시적인 예라는 것이 이해되어야 한다.
예시된 실시예에서, 웹 애플리케이션 (120)은 하나 이상의 서버 디바이스들 (106)로부터 웹 페이지 (142)를 액세스하도록 구성될 수 있다. 일부 실시예들에서, 웹 페이지 (142)는 프로세싱 디바이스 (102)에 의해 로컬에 저장될 수 있다. 다른 실시예에서, 웹 페이지 (142)는 다른 애플리케이션 (예를 들어, 비디오 게임, 등.)에 의해 생성될 수 있다.
다양한 실시예들에서, 서버 디바이스 (106)는 컴퓨팅 디바이스, 예컨대, 예를 들어, 랩탑, 데스크탑, 워크스테이션, 개인 디지털 보조장치, 스마트폰, 태블릿, 및 다른 적절한 컴퓨터들, 등. 또는 그것의 가상의(virtual) 기계 또는 가상의 컴퓨팅 디바이스를 포함할 수 있다. 이런 실시예에서, 서버 디바이스 (106)는 클라이언트 디바이스 (102) (예를 들어, 프로세서, 메모리, 동작 시스템, 등.)에 관하여 상기에서 설명된 하드웨어 컴포넌트들에 유사한 및/또는 비슷한 다양한 하드웨어 및 소프트웨어 컴포넌트들 (172)를 포함할 수 있다. 예시된 실시예에서, 서버 디바이스 (106)는 요청시 (예를 들어, 웹 애플리케이션 (120) 또는 다른 애플리케이션, 등으로부터.) 하나 이상의 웹 페이지들 (142)을 클라이언트 디바이스 (102)에 제공하도록 구성될 수 있다. 다양한 실시예들에서, 웹 페이지 (142)는 서버 디바이스 (106)에 의해 동적으로 생성될 수 있거나 또는 복수개의 정적 웹 페이지들 (170) 중 하나, 또는 그것의 조합일 수 있다.
예시된 실시예에서, 웹 애플리케이션 (120)이 웹 페이지 (142) (서버 디바이스 (106) 또는 다른 소스로부터)을 수신한 때, 웹 애플리케이션 (120) (또는 그것의 컴포넌트, 예컨대 브라우저 익스텐션(132)는 웹 페이지 (142)의 임의의 부분이 원격에서 (예를 들어, 프리젠테이션 디바이스 (104)를 통하여) 제공된 것인지를 결정할 수 있다. 일부 실시예들에서, 전체 웹 페이지 (142)는 원격에서 (프로세싱 디바이스 (102)에 대하여) 제공될 수 있다.
일 실시예에서, 웹 페이지 (142) (또는 그것의 일부)는 (예를 들어, 디스플레이 (118))를 통하여 로컬에서 제공될 수 있다. 이런 실시예에서, 유저 (190)는 웹 페이지 (예를 들어, 비디오, 이미지, 오디오 신호, 등.)의 일부 또는 컴포넌트가 원격에서 디스플레이 되도록 표시할 수 있다(예를 들어, 유저 인터페이스 (UI) 엘리먼트를 통하여). 일부 실시예들에서, 이것은 로컬에서 그리고 원격에서 둘 모두에서 제공되는 표시 부분(indicated portion)으로 귀결될 수 있다. 다른 실시예에서, 웹 페이지 (142)의 표시 부분의 로컬 프리젠테이션이 정지될 수 있고 해당 부분의 원격 프리젠테이션이 시작 또는 개시될 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 몇 개의 예시적인 예들이라는 것이 이해되어야 한다.
다른 실시예에서, 웹 페이지 (142) 그 자체 또는 웹 페이지 (142)와 관련된 다른 웹 페이지는 웹 페이지 (142) 또는 그것의 일부가 원격에서 제공되는지의 표시를 포함할 수 있다. 일 실시예에서, 이 표시는 HTML 태그 또는 속성(attribute) (예를 들어, “타겟(target)” 속성, 등.)를 통하여 발생할 수 있다. 다른 실시예에서, 표시는 프로그램매틱 함수(programmatic function) 예컨대 스크립트(script) (예를 들어, JavaScript, 등.) 콜(call) (예를 들어, window.open() 방법 또는 서브루틴(subroutine) 또는 그것의 파생물(derivative), 등.)을 통하여 발생할 수 있다. 이런 실시예에서, 새로운 스크립트 방법 또는 서브루틴이 현존하는 스크립트 방법 또는 서브루틴에 기초하여 생성될 수 있다. 이런 새로운 방법 또는 서브루틴은 추가 파라미터들 (예를 들어, 디스플레이 유형, 목적지 프리젠테이션 디바이스 식별자 또는 어드레스, 등.)를 포함할 수 있다. 또 다른 실시예들에서, 표시는 멀티-모니터 또는 원격 프리젠테이션 웹 페이지들 또는 애플리케이션들의 사용 및 생성을 가능하게 하도록 구성된 API(application programming interface)를 통하여 일어날 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 몇 개의 예시적인 예들이라는 것이 이해되어야 한다.
다양한 실시예들에서, 웹 페이지 (142) 부분은 웹 애플리케이션 (120)의 전체 탭(tab) 또는 윈도우 및 해당 탭 또는 윈도우와 관련된 임의의 다른 웹 페이지들을 포함할 수 있다. 일부 실시예들에서, 웹 페이지 (142) 부분은 웹 애플리케이션의 숨겨지거나 또는 비-가시적인(non-visible) 탭을 포함할 수 있다. 이런 실시예에서, 히든 탭(hidden tab)은 유저 (190)에 의해 로컬에서 가시적이지 않을 수 있지만 관련된 숨겨지지 않거나 또는 가시적인 탭 또는 브라우저 익스텐션(132) 또는 웹 애플리케이션 (120)의 UI 엘리먼트를 통하여 유저 (190)에 의해 제어 가능할 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 몇 개의 예시적인 예들이라는 것이 이해되어야 한다.
다른 실시예에서, 웹 페이지 (142)는 하나 이상의 DOM(Document Object Model) 엘리먼트들 또는 비슷한 계층적이거나 또는 분리 가능한 엘리먼트들을 포함할 수 있다. 일부 실시예들에서, 웹 페이지 (142) 부분은 DOM 엘리먼트 또는 DOM 엘리먼트 및 그것의 자식들(children) 또는 하위(subordinate) DOM 엘리먼트들을 포함할 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 몇 개의 예시적인 예들이라는 것이 이해되어야 한다.
한편, 다양한 실시예들에서, 웹 페이지 (142)는 로컬에서, 원격에서, 일부 원격에서, 및/또는 일부 로컬에서 제공될 수 있지만, 도 1의 나머지 설명은 웹 페이지 (142)가 로컬에서 그리고 원격에서 제공되는 경우, 설명되고 대비될 로컬 프리젠테이션의 메커닉스(mechanics) 및 원격 프리젠테이션의 메커닉스를 허용하는 경우를 설명할 것이다. 이하의 내용은 개시된 내용에 제한되지 않는 단지 하나의 예시적인 예라는 것이 이해되어야 한다.
예시된 실시예에서, 웹 애플리케이션 (120)은 웹 페이지 (142)가 로컬에서 및 원격에서 (프리젠테이션 디바이스 (104)를 통하여) 제공될 것인지를 결정할 수 있다. 일 실시예에서, 웹 페이지 (142)는 프로세싱 태블릿 또는 다른 디바이스 (102) 상에서 디스플레이 될 그리고 텔레비전 또는 다른 프리젠테이션 디바이스 (104)상에서 디스플레이 될 비디오 또는 영화를 포함할 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 하나의 예시적인 예라는 것이 이해되어야 한다.
다양한 실시예들에서, 디스플레이 또는 프리젠테이션 디바이스 (104)는 컴퓨팅 디바이스, 예컨대, 예를 들어, 랩탑, 데스크탑, 워크스테이션, 개인 디지털 보조장치, 스마트폰, 태블릿, 텔레비전, 프로젝터, 라우드 스피커들,및 감각 지각(sensory perception) 등의 형태를 통하여 유저에게 정보를 제공하도록 구성된 다른 적절한 디바이스 또는 그것의 가상의(virtual) 기계 또는 가상의 컴퓨팅 디바이스를 포함할 수 있다. 이런 실시예에서, 프리젠테이션 디바이스 (104)는 클라이언트 디바이스 (102) (예를 들어, 프로세서, 메모리, 동작 시스템, 등.)에 관하여 상기에서 설명된 하드웨어 컴포넌트들에 유사한 및/또는 비슷한 다양한 하드웨어 및 소프트웨어 컴포넌트들 (182)를 포함하거나 포함하지 않을 수 있다.
예시된 실시예에서, 웹 애플리케이션 (120)은 로컬 렌더러(render) 또는 렌더링 엔진 (122)을 포함할 수 있다. 다양한 실시예들에서, 이 로컬 렌더러 (122)는 웹 페이지 (142) 또는 다른 형태의 기계 및/또는 인체 판독 가능한 데이터를 입력으로서 취하고 일련의 프리젠테이션 정보 (144)를 출력으로 생성하도록 구성될 수 있다. 이런 실시예에서, 렌더링된 프리젠테이션 정보 (144)는 디스플레이, 라우드스피커 또는 다른 프리젠테이션 하드웨어 컴포넌트 (118) (또는 드라이버 또는 펌웨어 그것의)에 의해 수신될 수 있는 하나 이상의 데이터 구조들 또는 신호들 (예를 들어, 비디오 신호, 오디오 신호, 등.)을 포함할 수 있다. 디스플레이 (118)는 그런 다음 감각 출력을 유저에게 (190) 제공하기 위해 이 프리젠테이션 정보 (144)를 사용할 수 있다.
일 실시예에서, 프리젠테이션 정보 (144)의 셋은 RGB(Red-Green-Blue) 값들의 일련의 어레이들을 포함할 수 있고, 각각의 RGB 값은 시간에 소정의 지점에서 생성될 디스플레이 (118)의 픽셀의 색상이고, 각각의 어레이는 시간에 소정의 지점에 대하여 디스플레이 (118)의 각각의 픽셀에 대한 색상 정보를 포함한다. 다른 실시예에서, 셋의 프리젠테이션 정보 (144)는 각각의 값이 시간에 소정의 지점에서 스피커에 의해 생성되거나 또는 출력될 볼륨 진폭(volume amplitude)과 같은 일련의 값들을 포함할 수 있다. 일부 실시예들에서, 프리젠테이션 정보 (144)의 셋은 디코딩된(예를 들어, 드라이버, 동작 시스템, 또는 펌웨어, 등에 의해.)때 프리젠테이션 하드웨어 컴포넌트 (118) 또는 (188)에 색상 값들, 볼륨 진폭들, 유사한 명령들의 어레이로 귀결되는 인코딩된 값들을 포함할 수 있다. 다양한 실시예들에서, 다른 감각적 형태들은 프리젠테이션 정보 (144)의 셋 또는 프리젠테이션 정보의 다른 셋들에 의해 포함될 수 있다.
예시된 실시예에서, 로컬 렌더러 (122)는 웹 페이지 (142) (예를 들어, 텍스트 정보, 폰트 정보, 인코딩된 비디오 스트림, 인코딩된 오디오 파일, 등.)에 포함된 정보 또는 데이터를 취하여 해당 정보를 프리젠테이션 정보 (144)로 변환 또는 번역하도록 구성될 수 있다. 다양한 실시예들에서, 이것은 압축 해제(decompressing) 비디오 또는 오디오 파일을 포함할 수 있다. 다양한 실시예들에서, 이것은 트랜스코딩(transcoding) 비디오 또는 오디오 파일을 포함할 수 있다. 다른 실시예에서, 이것은 문서 또는 웹 페이지 (142)의 레이아웃 및 페인팅(painting)을 형성하기 위해서 그래픽 라이브러리(libraries) (예를 들어, Skia Graphics Engine, OpenGL (Open Graphics Library), Cairo, 등.)를 사용하는 것을 포함할 수 있다.
다양한 실시예들에서, 이 렌더링은 최종 프리젠테이션 디바이스 (118)와 관련된 하나 이상의 제약(constraint)들에 기초하여 수행될 수 있다. 예를 들어, 로컬 디스플레이 (118)는 프리젠테이션 특성들, 예컨대, 예를 들어, 1600 x 1200 픽셀들의 해상도, 4:3의 종횡비, 픽셀 당 32 피트(pits)의 색상 깊이(color depth), 등을 가질 수 있다. 이런 실시예에서, 웹 페이지 (142)의 렌더링은 이들 프리젠테이션 특성들에 주의하여 수행될 수 있다. 예를 들어, 고유의 또는 원래의 종횡비 16:9를 갖는 비디오 (예를 들어, 디지털 비디오 디스크 (DVD : Digital Video Disc) 영화 파일, 등.)가 렌더러에 의해 레터박스(letterbox)될 수 있다. 고유의 또는 원래의 해상도 720 x 405 픽셀들을 갖는 비디오는 고 프리젠테이션 해상도를 이용하기 위해 렌더러 (122)에 의해 업스케일될 수 있다. 반대로, 만약 로컬 스피커들 (118)이 단지 스테레오이고, 원래의 오디오 소스가 6 (5.1로 알려진) 채널 오디오 신호를 포함한다면, 렌더러 (122)는 원래의 오디오 신호를 스테레오로 리믹스(re-mix)하거나 또는 축소시킬 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 몇 개의 예시적인 예들이라는 것이 이해되어야 한다.
일단 로컬 렌더러 (122)가 타겟 (이 경우에서 로컬) 프리젠테이션 하드웨어 (118)의 물리적 또는 프리젠테이션 특성들에 적어도 부분적으로 기초하여 렌더링된 프리젠테이션 정보 (144)를 생성하면, 프리젠테이션 정보 (144)는 로컬 프리젠테이션 하드웨어 (118)로 입력 또는 송신될 수 있다. 다양한 실시예들에서, 로컬 프리젠테이션 하드웨어 (118)는 그런 다음 렌더링된 웹 페이지 (142)를 (프리젠테이션 정보 (144)를 통하여) 유저에게 (190) 제공할 수 있다. 일부 실시예들에서, 유저(190)에게로의 프리젠테이션은 다른 원격 프리젠테이션 디바이스들 (104)과 동기화될 수 있다.
반대로, 예시된 실시예에서, 웹 애플리케이션 (120)은 원격 렌더러(render) 또는 렌더링 엔진 (124)을 포함할 수 있다. 다양한 실시예들에서, 이 원격 렌더러 (124)는 웹 페이지 (142) 또는 다른 형태의 기계 및/또는 인체 판독가능한 데이터를 입력으로서 취하고 일련의 프리젠테이션 정보 (146)를 출력으로 생성하도록 구성될 수 있다. 이런 실시예에서, 렌더링된 프리젠테이션 정보 (146)는 로컬 프리젠테이션 정보 (144)처럼 디스플레이, 라우드스피커 또는 다른 프리젠테이션 하드웨어 컴포넌트 (188) (또는 드라이버 또는 펌웨어 그것의)에 의해 수신될 수 있는 하나 이상의 데이터 구조들 또는 신호들 (예를 들어, 비디오 신호, 오디오 신호, 등.)을 포함할 수 있다. 디스플레이 (188)는 그런다음 감각 출력을 프리젠테이션 디바이스 (104)의 유저에게 (191) 제공하기 위해 이 프리젠테이션 정보 (146)를 사용할 수 있다.
이런 실시예에서, 원격 렌더러 (124)는 로컬 렌더러 (122)에 유사하게 웹 페이지 (142) (또는 그것의 일부)에 기초하여 원격 프리젠테이션 정보 (146)를 생성할 수 있다. 그러나, 원격 렌더러 (124)는 원격 프리젠테이션 하드웨어 (188)의 하나 이상의 프리젠테이션 특성들에 기초하여 원격 프리젠테이션 정보 (146)의 생성 또는 그것의 렌더링에 기반을 둘 수 있다.
예를 들어, 원래의 또는 소스 비디오 영화 파일 (예를 들어, DVD 파일, 등.)은 720 x 405 픽셀들의 해상도, 16:9의 종횡비, 25 fps(frames per second) 의 프레임 레이트, 및 5.1 오디오 트랙 또는 신호를 포함할 수 있다. 그러나, 이 시간 원격 디스플레이 및 오디오 프리젠테이션 하드웨어 (188)는 이하의 프리젠테이션 특성들의 셋을 지원 또는 포함할 수 있다: 1280 x 720 픽셀들의 해상도, 16:9의 종횡비, 프레임 레이트 of 29.97 fps의 프레임 레이트, 및 이용 가능한 5.1 서라운드 사운드 (5 전통적인 스피커들 및 서브-우퍼(sub-woofer)로 알려진).
이런 실시예에서, 원격 렌더러 (124)는 비디오를 업스케일 할 수 있거나 또는 업스케일 할 수 없고, (기본 렌더링 외에) 오디오 부분 (원래의 소스 비디오 및 프리젠테이션 하드웨어 지원 5.1 오디오 채널들 둘 모두에)을 변경할 수 없다. 그러나, 다양한 실시예들에서, 원래의 비디오 또는 웹 페이지 (142)의 종횡비들이 원격 프리젠테이션 하드웨어 (188)의 종횡비와 같을 때 원격 렌더러 (124)는 레터박스(letterbox)를 추가하지 않을 수 있다. 이것은 레터박싱을 추가하고 그리고 상이한 프리젠테이션 디바이스 (118)에 대하여 비디오를 렌더링 하는 로컬 렌더러 (122)에 비교된다. 마찬가지로, 원격 렌더러 (124)는 고유의 또는 원래의 25 fps로부터 프리젠테이션 디바이스 (188)의 지원 29.97 fps로 비디오 파일을 재동기(re-sync)하도록 구성될 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 하나의 예시적인 예라는 것이 이해되어야 한다.
다양한 실시예들에서, 다른 프리젠테이션 특성들 또는 사용(usage) 시나리오들이 고려될 수 있다. 예를 들어, 디스플레이 (118)의 랩탑 스크린은 일반적으로 유저 (190)로부터 단지 몇 피트이다. 반대로, 텔레비전의 유저 (191)는 디스플레이 (188)로부터 수십 피트(dozens of feet)에 앉을 수 있다. 다양한 실시예들에서, 원격 및 로컬 렌더러들 (122) 및 (124)은 웹 페이지 (142)를 렌더링할 때 이들 사용 시나리오들을 계정 내에 취할 수 있다. 예를 들어, 원격 렌더러 (124)는 그것이 로컬 렌더러 (122)가 (텍스트가 더 짧은 거리에서 읽혀질 것인) 읽혀지는 것보다 훨씬 더 멀리로부터 읽혀질 때 텍스트를 더 크게 (예를 들어, 폰트 사이즈를 증가시키고, 등.) 또는 더 선명하게 (예를 들어, 폰트를 변경하고, 디스플레이 되는 색상을 변경하고, 등.) 만들 수 있다. 다양한 실시예들에서, 다른 비-수학적, 비-수치적, 또는 질적인(qualitative) 프리젠테이션 특성들이 프리젠테이션 정보 (144 & 146)의 생성에 영향을 미치거나 또는 고려될 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 하나의 예시적인 예라는 것이 이해되어야 한다.
상기에서 설명된 것 처럼, 일단 원격 렌더러 (124)가 렌더링된 원격 프리젠테이션 정보 (146)을 생성하면, 원격 프리젠테이션 정보 (146)는 프리젠테이션 디바이스 (104)로 송신될 수 있다. 이하에서 도 3를 참고로 하여 설명될, 다양한 실시예들에서, 원격 프리젠테이션 정보 (146)는 송신 프로토콜로 포맷되거나 또는 인캡슐레이션(encapsulated)될 수 있다.
다양한 실시예들에서, 프리젠테이션 디바이스 (104)는 원격 프리젠테이션 정보 (146)를 수신하도록 구성된 애플리케이션, 드라이버, 또는 펌웨어 (180)를 포함할 수 있다. 다양한 실시예들에서, 애플리케이션, 드라이버, 또는 펌웨어 (180)는 원격 프리젠테이션 정보가 이런 포맷팅을 포함하고 있다면 수신된 원격 프리젠테이션 정보 (146)로부터 인캡슐레이션 또는 포맷팅을 제거하도록 구성될 수 있다. 일부 실시예들에서, 애플리케이션, 드라이버, 또는 펌웨어 (180)는 유저(191)에 프리젠테이션을 위해 프리젠테이션 하드웨어 또는 디스플레이 (188)로 원격 프리젠테이션 정보 (146)를 제공하도록 구성될 수 있다.
도 2는 개시된 발명 내용에 따른 시스템(200)의 예시적인 실시예의 블록 다이어그램이다. 예시된 실시예에서, 시스템 (200)은 로컬 또는 프로세싱 디바이스 또는 디스플레이 (202) 및 원격 또는 프리젠테이션 디스플레이 또는 디바이스 (204)를 포함할 수 있다. 다양한 실시예들에서, 시스템 (200)은 유저 (290)에 의해 제어 또는 유지될 수 있다.
예시된 실시예에서, 유저 (290)는 원격 디스플레이 (204)상에서 이미지들의 슬라이드쇼를 디스플레이 하기를 원하고 로컬 디스플레이 (202)를 포함하는 로컬 컴퓨팅 또는 프로세싱 디바이스로부터 슬라이드쇼를 제어하기를 원한다. 이런 실시예에서, 웹 페이지의 제 1 부분 (212)은 로컬 디스플레이 (202) 상에 디스플레이 될 수 있고 웹 페이지의 제 2 부분 (214)은 원격 디스플레이상에 (204) 제공되거나 또는 디스플레이 될 수 있다. 다양한 실시예들에서, 웹 페이지의 제 2 부분은 복수개의 다른 웹 페이지들 (예를 들어, 복수개의 이미지 파일들, 등.)를 포함할 수 있다. 일부 실시예들에서, 웹 페이지의 제 2 부분은 복수개의 이미지들 중 하나를 디스플레이 되게 하는 스크립트를 포함할 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 하나의 예시적인 예라는 것이 이해되어야 한다.
일 실시예에서, 로컬 디스플레이 (202)를 통하여 제공되거나 또는 디스플레이되는 제 1 부분 (212)은 유저 (290)로 하여금 제 2 부분 (214)의 컨텐츠들을 제어하는 것을 허용하는 유저 인터페이스 (UI)를 포함할 수 있다. 예시된 실시예에서, UI 는 백 버튼(back button), 정지 버튼(stop button), 및 포워드 버튼(forward button)을 포함할 수 있다. 각각의 버튼은 유저 (290)로 하여금 원격 디스플레이(204) 상에 디스플레이 될 슬라이드 쇼를, 개별적으로, 하나의 이미지를 뒤로 움직이고, 슬라이드 쇼를 끝내고, 또는 하나의 이미지를 포워드(forward)로 움직이게 하는 것을 허용한다.
다양한 실시예들에서, 일단 유저 (290)가 UI 버튼을 선택하면, 명령어가 제 1 부분 (212)에 의해 생성될 수 있다. 이 명령어는 프로세싱 디바이스에 의해 수신될 수 있고 제 2 부분 (214)에 의해 수행될 동작들을 발생 시킬 수 있다. 예를 들어, 제 1 부분 (212)은 실행될 제 2 부분 (214)의 스크립트 함수, 방법 또는 서브루틴 (예를 들어, NextImage(), 등.)을 야기할 수 있다. 이 스크립트 함수는 유저에게 제공되거나 또는 디스플레이 되는 제 2 부분 (214)의 일부를 변경할 수 있다. 예를 들어, 제 2 부분 (214)은 제 1 이미지를 디스플레이 하는 것을 중단할 수 있고 제 2 이미지를 디스플레이 하는 것을 시작할 수 있다. 다양한 실시예들에서, 이것은 제 2 부분 (214)을 재-렌더링(re-render)되도록 하게 할 수 있다.
상기에서 설명된 것 처럼, 프로세싱 디바이스의 원격 렌더러 또는 렌더링 엔진은 현재 변경된 제 2 부분 (214)을 렌더링할 수 있다. 렌더링 엔진(rendering engine)은 원격 디스플레이 (204)의 특성들 및 제 2 부분 (214)의 이 새로운 버전에 기초하여 새로운 프리젠테이션 정보의 셋을 생성할 수 있다. 이 새로운 또는 업데이트된 프리젠테이션 정보는 원격 디스플레이(204)로 송신될 수 있다. 원격 디스플레이 (204)가 이 업데이트된 프리젠테이션 정보를 유저 (290)에게 제공할 때, 슬라이드쇼는 다음 이미지로 이동되는 것으로 보여질 수 있다.
다양한 실시예들에서, 프로세싱 디바이스는 프리젠테이션 정보를 업데이틀 할 수 있고 원격 디스플레이 또는 프리젠테이션 하드웨어 (204)로 하여금 유저 (290)로의 프리젠테이션을 동적으로 변경하게 할 수 있다. 다양한 실시예들에서, 원격에서 제공되거나 또는 디스플레이되는 웹 페이지의 부분은 프로세싱 디바이스에 의해 수신된 하나 이상의 명령어들에 기초하여 변경되거나 또는 업데이트될 수 있다. 예시된 실시예에서, 명령어들은 프로세싱 디바이스 그 자체 (예를 들어, 제 1 부분 (212)를 통하여, 등.)로부터 발생할 수 있다. 다른 실시예에서, 명령어들은 원격 디바이스 (204)로부터 송신되거나 또는 발원될 수 있다(예를 들어, 프로세싱 디바이스로 텔레비전을 통하여 송신된 TV 원격 제어로부터의 명령어 등.). 또 다른 실시예들에서, 명령어들은 제 3 또는 다른 디바이스 (미도시)로부터 송신될 수 있거나 또는 발원될 수 있다.
예를 들어, 멀티-플레이어 게임은 다양한 플레이어 디바이스들 (예를 들어, 스마트폰들, 등.)상에서 게임패드(gamepad)들 또는 제어들을 디스플레이 하는 것, 공동으로 볼 수 있는 텔레비전상에서의 중앙 집중된 게임 보드(centralized game board)를 디스플레이 하는 것, 및 프로세싱 디바이스를 통하여 디스플레이들의 전부를 렌더링하고 프로세싱 하는 것을 포함할 수 있다. 이런 실시예에서, 프로세싱 디바이스는 각각의 플레이어 디바이스들로부터 명령어들을 수신할 수 있고 게임 보드 및/또는 플레이어의 게임패드들의 디스플레이들 또는 프리젠테이션들을 변경할 수 있다. 이런 실시예에서, 각각의 플레이어 게임패드들 및 게임 보드는 게임 웹 페이지의 다양한 부분들을 포함할 수 있다. 더구나, 일부 실시예들에서, 프로세싱 디바이스는 게임 규칙들 및 메커닉스를 고려하기 위한 추가의 웹 페이지 부분 (어쩌면 히든 탭(hidden tab) 또는 웹 페이지)를 포함하거나 또는 유지할 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 하나의 예시적인 예라는 것이 이해되어야 한다.
예시된 실시예에서, 로컬 디스플레이 (216) 또는 제 1 부분 (212)은 UI 엘리먼트 (216)를 또한 포함할 수 있다. 다양한 실시예들에서, UI 엘리먼트 (216)는 원격에서 제공되거나 또는 디스플레이 될 부분 (214)의 선택을 가능하게 할 수 있고 및/또는 복수개의 원격 프리젠테이션 디바이스들 중에서의 선택이 제 2 부분 (214)을 제공하거나 또는 디스플레이 하기 위해 사용될 것이다. 다양한 실시예들에서, 엘리먼트 (216)의 선택은 메뉴 또는 다른 UI 엘리먼트를 디스플레이 되게 할 수 있다. 예를 들어, 다양한 실시예들에서, 가능한 타겟 또는 프리젠테이션 디바이스들의 리스트(list) (로컬 및/또는 원격에서)가 유저 (290)에게 디스플레이 될 수 있고 그리고 유저 (290)는 그들이 제 2 부분 (214)을 제공하기 위해 사용하기를 원하는 어느 하나를 선택할 수 있다. 다른 실시예에서, UI 엘리먼트 (216)는 웹 페이지 엘리먼트 (예를 들어, 비디오, 이미지, HTML 오디오 태그, 플래시 오브젝트와 관련된 웹 페이지 엘리먼트, 등.) 다음에 디스플레이 될 수 있다. 이런 실시예에서, UI 엘리먼트 (216)를 선택하는 것은 원격에서 (예를 들어, 프리젠테이션 디바이스들의 유사한 리스트를 통하여, 등.) 제공될 웹 페이지 엘리먼트를 포함하는 웹 페이지의 부분 또는 웹 페이지 엘리먼트를 발생시킬 수 있다. 마찬가지로, UI 엘리먼트 (216)의 제 2 선택은 로컬에서 제공될 웹 페이지 부분을 발생시킬 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 몇 개의 예시적인 예들이라는 것이 이해되어야 한다.
도 3은 개시된 발명 내용에 따른 시스템(300)의 예시적인 실시예의 블록 다이어그램이다. 예시된 실시예에서, 시스템 (300)은 로컬 또는 프로세싱 디바이스 (302) 및 하나 이상의 원격 또는 프리젠테이션 디바이스들 (304)을 포함할 수 있다. 다양한 실시예들에서, 시스템 (300)은 유저 (390)에 의해 사용되거나 또는 동작될 수 있다. 일 실시예에서, 시스템 (300)은 유저가 원격 디바이스 상에 슬라이드쇼를 디스플레이하였고 로컬 디바이스상에 제어 UI를 디스플레이 하였던 도 2의 시스템 (200)을 생성하기 위해 채용될 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 하나의 예시적인 예라는 것이 이해되어야 한다.
다양한 실시예들에서, 로컬 또는 프로세싱 디바이스 (302)는 도 1의 프로세싱 디바이스 (102) (예를 들어, 프로세서, 메모리, 동작 시스템, 등.)를 참고로 하여 설명된 하드웨어 및/또는 소프트웨어 컴포넌트들에 비슷하거나 또는 유사한 하나 이상의 하드웨어 및/또는 소프트웨어 컴포넌트들 (미도시)를 포함할 수 있다. 마찬가지로, 일 실시예들에서, 원격 또는 프리젠테이션 디바이스 (304)는 도 1의 프리젠테이션 디바이스 (104) (예를 들어, 프로세서, 메모리, 동작 시스템, 등.)를 참고로 하여 설명된 하드웨어 및/또는 소프트웨어 컴포넌트들에 비슷하거나 또는 유사한 하나 이상의 하드웨어 및/또는 소프트웨어 컴포넌트들 (미도시)를 포함할 수 있다.
상기에서 설명된 것 처럼, 프로세싱 디바이스 (302)는 로컬에서 또는 원격에서의 프리젠테이션을 위해 웹 페이지 (또는 적어도 그것의 하나의 부분 ) 렌더링 하도록 구성된 웹 애플리케이션 (332)를 포함할 수 있다. 상기에서 설명된 것 처럼, 다양한 실시예들에서, 웹 페이지 (342)는 로컬에서, 원격에서, 일부 원격에서, 및/또는 일부 로컬에서 제공될 수 있지만, 도 3의 나머지 설명은 웹 페이지 (342)가 로컬에서 그리고 원격에서 제공되는 경우, 설명되고 대비될 로컬 프리젠테이션의 메커닉스(mechanics) 및 원격 프리젠테이션의 메커닉스를 허용하는 경우를 설명할 것이다. 이하의 내용은 개시된 내용에 제한되지 않는 단지 하나의 예시적인 예라는 것이 이해되어야 한다.
다양한 실시예들에서, 웹 애플리케이션 (332)은 웹 페이지 또는 그것의 일부로부터의 프리젠테이션 정보의 하나 이상의 세트들을 생성하도록 구성된 렌더러 (310)를 포함할 수 있다. 예시된 실시예에서, 웹 애플리케이션 (332)은 개별 프리젠테이션 디바이스 또는 하드웨어 (예를 들어, 로컬 디스플레이 (322), 원격 디스플레이 (324d), 원격 스피커 (324s), 등.)와 관련된 입력 프리젠테이션 구성 정보 (312)를 취하거나 구성되도록 할 수 있는 단일 렌더러 (310)를 포함할 수 있다. 다양한 실시예들에서, 웹 애플리케이션(332)는 원격 프리젠테이션 디바이스와 관련된 렌더링된 프리젠테이션 정보를 적어도 일시적으로 저장하도록 구성된 히든 백 저장소(hidden backing store)를 포함할 수 있거나 또는 그것과 관련될 수 있다. 일부 실시예들에서, 이 히든 백 저장소(hidden backing store) (314)는 로컬 디스플레이 또는 출력 (322)를 통하여 정보를 제공하는 책임이 있는 그래픽 (또는 다른 감각적 프리젠테이션) 하드웨어 컴포넌트에 숨겨지거나 또는 알려지지 않도록 구성될 수 있다. 일부 실시예들에서, 웹 애플리케이션은 원격 프리젠테이션 디바이스에 송신을 위해 렌더링된 프리젠테이션 정보 (344r)를 포맷하거나 또는 인캡슐레이션하도록 구성된 캐스팅(casting) 또는 송신 인터페이스 (316l)를 포함할 수 있다.
상기에서 설명된 것 처럼, 일 실시예에서, 웹 페이지 (342)는 로컬에서 제공되는 부분 (342l)을 포함할 수 있다. 이 로컬 부분 (342l)은 렌더러 (310)에 의해 렌더링 될 수 있다. 이런 실시예에서, 렌더러 (310)는 로컬 디스플레이 (322)와 관련된 일련의 프리젠테이션 특성들 또는 정보 (312)를 사용할 수 있거나 또는 로드(load)할 수 있다. 렌더러 (310)는 로컬 프리젠테이션 정보 (344l)를 생성할 수 있고, 로컬 프리젠테이션 정보는 그런다음 로컬 디스플레이 (322)에 의해 제공되거나 또는 디스플레이될 수 있다.
마찬가지로, 일 실시예에서, 웹 페이지 (342)는 원격에서 제공되는 부분 (342r)을 포함할 수 있다. 이 원격 부분 (342r)은 렌더러 (310)에 의해 렌더링 될 수 있다. 이런 실시예에서, 렌더러 (310)는 원격 디스플레이 (324d) 또는 원격 스피커들 (324s)와 관련된 일련의 프리젠테이션 특성들 또는 정보 (312)를 사용할 수 있거나 또는 로드(load)할 수 있다.
다양한 실시예들에서, 렌더러 (310)는 원격 디바이스 (304)로부터 프리젠테이션 하드웨어 (324)와 관련된 프리젠테이션 특성들 (312)을 수신하거나 또는 획득할 수 있다. 이런 실시예에서, 디스플레이를 위해서 프리젠테이션 디바이스 (304)로 웹 페이지 (342r)의 원격 부분을 발송하도록 지시된 때, 원격 디바이스 (304)가 송신된 프리젠테이션 정보 (346)를 수용한 것을 확인하기 위해 로컬 디바이스 (302)는 원격 디바이스 (304)와 다른 프로토콜 또는 요청/응답 핸드쉐이크(handshake)에 관여할 수 있다. 이런 실시예에서, 해당 핸드쉐이크 프로세스 동안에 프리젠테이션 특성 정보 (312)의 관련 셋이 프로세싱 디바이스 (302)로 발송될 수 있다.
다른 실시예에서, 프리젠테이션 특성 정보 (312) 그 자체는 프로세싱 디바이스 (302)로 발송되지 않을 수 있으나, 그러나 대신 식별자가 렌더러로 하여금 복수개의 미리-저장되거나 또는 획득 가능한 정보 (312)의 셋으로부터 프리젠테이션 특성들 (312)의 적절한 셋을 선택하는 것을 허용할 수 있다. 예를 들어, 원격 디바이스 (304)는 원격 디바이스가 실질적으로 부합하는 원격 디바이스 (304)의 모델 번호 또는 표준 식별자 (예를 들어, 고화질 텔레비전 (HDTV) 표준, 예컨대, “1080p”, 등.)를 로컬 디바이스 (302)에 제공할 수 있다.
또 다른 실시예들에서, 로컬 디바이스 (302)에 제공되는 원격 프리젠테이션 요청에 앞서서 또는 그 동안에 유저 (390)는 프리젠테이션 특성들 (312)의 적절한 셋을 식별하기에 충분한 정보를 가질 수 있다. 예를 들어, 유저 (390)는 원격 디바이스 (304)를 디바이스의 클래스 또는 유형에 의해 (예를 들어, “720p 부합 텔레비전”, 등.), 모델 번호들의 특정 모델 번호 또는 그룹 (예를 들어, RCA 텔레비전 모델 12345, 등.)에 의해 또는 프리젠테이션 특성들 (예를 들어, “제네릭(Generic) 5.1 채널 오디오 수신기”, 등.)의 복수개의 미리 정의된 셋들 중 하나와 호환 가능한 것으로 식별할 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 몇개의 예시적인 예들이라는 것이 이해되어야 한다.
상기에서 설명된 것 처럼, 다양한 실시예들에서, 렌더러 (310)는 프리젠테이션 정보 (344r)의 렌더링된 셋을 생성하기 위해서 특정 원격 프리젠테이션 하드웨어 (예를 들어, 하드웨어 (324d) 또는 (324s), 등.)와 관련된 프리젠테이션 특성들 (312)의 선택되거나 도는 결정된 셋을 사용하도록 구성될 수 있다. 웹 페이지 (342r)의 원격 부분이 복수의 감각적 프리젠테이션들 (예를 들어, 비디오 및 오디오, 등.)로 귀결되거나 또는 다수의 프리젠테이션 디바이스들 (예를 들어, LCD 및 라우드스피커, 등.)에 의해 제공될 엘리먼트들 또는 컨텐츠를 포함하는 다양한 실시예들에서, 렌더러 (310)는 프리젠테이션 정보 (344r)의 복수개의 셋을 (각각의 프리젠테이션 디바이스에 대하여 하나) 생성하도록 구성될 수 있다. 이런 실시예에서, 각각의 프리젠테이션 정보 (344r)의 셋은 각각의 개별 프리젠테이션 하드웨어 컴포넌트와 관련된 일련의 프리젠테이션 특성들 (312)에 기초하여 생성될 수 있다. 다른 실시예에서, 렌더러 (310)는 다수의 하드웨어 컴포넌트들 (예를 들어, 원격 디스플레이 (324d) 및 원격 스피커 (324s), 등.)을 위한 프리젠테이션을 포함하는 조합되거나 또는 공통이 원격 프리젠테이션 정보 (344r)의 셋을 생성하기 위해서 다수의 프리젠테이션 특성들 (312)의 관련된 셋들을 사용할 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 몇개의 예시적인 예들이라는 것이 이해되어야 한다.
일부 실시예들에서, 원격 프리젠테이션 정보 (344r)가 생성되면, 히든 백 저장소(314)내에 저장될 수 있다(적어도 일시적으로). 다양한 실시예들에서, 백 저장소(backing store)(314)는 메모리의 일부일 수 있거나 메모리 일부에 포함될 수 있다. 일부 실시예들에서, 이 메모리는 로컬 디바이스 (302)의 범용 메모리일 수 있지만, 반면 로컬 프리젠테이션 정보 (344l)는 로컬 디스플레이 (322)의 사용을 위해 전용되는 특화된 메모리 내에 또는 유사한 프리젠테이션 하드웨어 (예를 들어, 그래픽 카드의 메모리, 등.)내에 저장될 수 있다. 다양한 실시예들에서, 로컬 프리젠테이션 하드웨어 (322)에 의해 사용되거나 또는 채용되는 메모리와 별개로 존재함으로써 백 저장소(314)는 로컬 프리젠테이션 하드웨어 (322)로부터 효율적으로 효율적으로 숨겨질 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 하나의 예시적인 예라는 것이 이해되어야 한다.
다양한 실시예들에서, 원격 프리젠테이션 정보 (344r)는 캐스팅 인터페이스 (316l)를 통하여 원격 또는 프리젠테이션 디바이스 (304)로 송신될 수 있다. 다양한 실시예들에서, 캐스팅 인터페이스 (316l)는 원격 프리젠테이션 정보 (344r)를 미리 정의된 송신 프로토콜에 따라 재포맷하거나 또는 인캡슐레이션하도록 구성될 수 있다. 일부 실시예들에서, 미리 정의된 송신 프로토콜은 실시간 통신 프로토콜을 포함할 수 있다. 일부 실시예들에서, 이것은 WebRTC(Web Real-Time Communication)를 포함하거나 또는 WebRTC(Web Real-Time Communication)에 실질적으로 부합하는 프로토콜을 포함할 수 있다.
다른 실시예들에서, 캐스팅 인터페이스 (316l)는 원격 프리젠테이션 정보 (344r)를 미리 정의된 포맷에 따라 인코딩하거나 또는 압축하도록 구성될 수 있다. 다양한 실시예들에서, 미리 정의된 포맷은 수신 원격 디바이스 (304)에 의해 지원되는 인코딩 포팻에 의존할 수 있다. 다양한 실시예들에서, 실질적으로 VP8 비디오 압축 포맷에 부합하는 비디오 압축 포맷이 사용될 수 있거나 또는 채용될 수 있다. 다른 실시예들에서, 실질적으로 H.264 비디오 압축 포맷에 부합하는 비디오 압축 포맷이 사용될 수 있거나 또는 채용될 수 있다. 또 다른 실시예들에서, 다른 비디오 압축 포맷들 (예를 들어, Opus, H.265, 등.)이 사용될 수 있거나 또는 채용될 수 있다. 마찬가지로, 다양한 실시예들에서, 다양한 오디오 압축 포맷들 (예를 들어, MPEG-2 오디오 계층 III (MP3로 알려진), 어드밴스드 오디오 코딩 (AAC), 등.)이 채용될 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 몇개의 예시적인 예들이라는 것이 이해되어야 한다.
다양한 실시예들에서, 캐스팅 인터페이스 (316l)에 의해 프로세스되면, 인캡슐레이션 또는 재-포맷된 프리젠테이션 정보 (346)은 프리젠테이션 디바이스 (304)로 송신될 수 있다. 예시된 실시예에서, 프리젠테이션 디바이스 (304)은 캐스팅 인터페이스 (316r)를 포함할 수 있다. 이런 실시예에서, 원격 캐스팅 인터페이스 (316r)은 캐스팅 인터페이스 (316l)에 의한 송신을 위해 적용된 포맷팅(formatting)을 인캡슐레이션 해제(de-encapsulate), 디코딩, 또는 제거하도록 구성될 수 있다. 다양한 실시예들에서, 일단 프리젠테이션 정보 (344r)가 인캡슐레이션 또는 재 포맷된 프리젠테이션 정보 (346)로부터 복원되면, 유저 (390)에게로의 프리젠테이션을 위해 개별 원격 디스플레이 (324d) 또는 원격 스피커 (324s)로 전달될 수 있다.
상기에서 설명된 것 처럼, 다양한 실시예들에서, 하나 이상의 메시지들 또는 명령어 메시지들 (348)은 프로세싱 디바이스 (302) 및 프리젠테이션 디바이스 (304)간에 통신될 수 있다. 일 실시예에서, 이들 메시지들 (348)은 프리젠테이션 디바이스 (304)를 위한 프리젠테이션 구성 정보 (312)를 포함할 수 있다. 다른 실시예에서, 메시지들 (348)은 유저 (390)가 원격 디스플레이 (324d)를 통하여 디스플레이 되는 하나 이상의 UI 엘리먼트들을 선택한 것을 나타낼 수 있다. 다른 실시예에서, 메시지들 (348)은 원격 디바이스 (304)상에서의 하드웨어 변화를 나타낼 수 있다 (예를 들어, 헤드폰 셋들이 플러그 인 되거나 또는 제거되는, 등.). 또 다른 실시예들에서, 메시지들 (348)은 동기화 또는 업데이팅 정보를 포함할 수 있다. 다양한 실시예들에서, 메시지들 (348)은 단방향, 양방향, 또는 멀티-방향(multi-directional)성 일 수 있다. 상기의 내용은 개시된 내용에 제한되지 않는 단지 몇개의 예시적인 예들이라는 것이 이해되어야 한다.
도 4는 개시된 내용에 따른 기술의 예시적인 실시예의 플로우 차트이다. 다양한 실시예들에서, 기술 (400)은 도면들 1, 3 및/또는 5의 것들과 같은 시스템들에 의해 생성될 수 있거나 사용될 수 있다. 더구나, 기술 (400)의 부분들은 도 2의 것들과 같은 시스템에 의해 생성될 수 있거나 사용될 수 있다. 하지만, 상기의 내용은 개시된 내용에 제한되지 않는 단지 몇개의 예시적인 예들이라는 것이 이해되어야 한다. 개시된 내용은 기술 (400)에 예시된 동작들의 순서화 도는 번호에 제한되지 않는다는 것이 이해되어야 한다.
블럭 (402)은 상기에서 설명된 것 처럼, 일 실시예에서, 원격 디바이스의 원격 디스플레이를 통한 디스플레이를 위해 렌더링할 웹페이지의 부분이 결정될 수 있다는 것을 예시한다. 일부 실시예들에서, 유저 입력은 상기에서 설명된 것 처럼 로컬 컴퓨팅 디바이스를 통하여 수신될 수 있다. 이런 실시예에서, 원격 디스플레이를 통한 디스플레이를 위해 렌더링할 웹페이지의 부분을 결정하는 것은 상기에서 설명된 것 처럼 적어도 부분적으로 유저 입력에 기초될 수 있다. 다양한 실시예들에서, 이 블럭에 의해 예시된 하나 이상의 동작(들)은 상기에서 설명된 것 처럼 도면들 1 또는 3의 장치들 또는 시스템들, 도 1의 웹 애플리케이션 (120) 또는 도 3의 애플리케이션 (332)에 의해 수행될 수 있다.
블럭 (404)은 상기에서 설명된 것 처럼, 일 실시예에서, 렌더링된 프리젠테이션 정보는 원격 디바이스의 적어도 하나의 특성에 기초하여 웹 페이지의 부분을 렌더링함으로써 생성될 수 있다는 것을 예시한다. 일부 실시예들에서, 렌더링된 프리젠테이션 정보를 생성하는 것은 상기에서 설명된 것 처럼 원격 디스플레이와 관련된 일련의 프리젠테이션 특성 정보를 선택하는 것 및 원격 디스플레이와 관련된 프리젠테이션 특성 정보 셋에 기초하여 웹 페이지의 부분을 렌더링하는 것을 포함할 수 있다. 다양한 실시예들에서, 디스플레이를 위해서 렌더러할 웹페이지의 부분은 오디오 부분을 포함할 수 있고, 그리고 렌더링된 프리젠테이션 정보를 생성하는 것은 상기에서 설명된 것 처럼 원격 디바이스의 오디오 컴포넌트의 적어도 하나의 특성에 기초하여 오디오 신호를 생성하는 것을 또한 포함할 수 있다. 이런 실시예에서, 원격 디스플레이를 통한 디스플레이를 위해 렌더링할 웹페이지의 부분을 결정하는 것은 상기에서 설명된 것 처럼 적어도 부분적으로 유저 입력에 기초될 수 있다. 다양한 실시예들에서, 이 블럭에 의해 예시된 하나 이상의 동작(들)은 상기에서 설명된 것 처럼 도면들 1 또는 3의 장치들 또는 시스템들, 도 1의 원격 렌더러 (124) 또는 도 3의 렌더러 (310)에 의해 수행될 수 있다.
블럭 (406)은 상기에서 설명된 것 처럼, 일 실시예에서, 렌더링된 프리젠테이션 정보가 원격 디바이스로 송신될 수 있다는 것을 예시한다. 다양한 실시예들에서, 송신하는 것은 상기에서 설명된 것 처럼 실시간 통신 프로토콜에 따라 렌더링된 프리젠테이션 정보를 재포맷팅하는 것을 포함할 수 있다. 일부 이런 실시예들에서, 실시간 통신 프로토콜은 상기에서 설명된 것 처럼 실질적으로 WebRTC(Web Real-Time Communication)에 부합할 수 있다. 다양한 실시예들에서, 이 블럭에 의해 예시된 하나 이상의 동작(들)은 상기에서 설명된 것 처럼 도면들 1 또는 3의 장치들 또는 시스템들, 도 1의 웹 애플리케이션 (120)에 의해 수행될 수 있다.
블럭 (412)은 상기에서 설명된 것 처럼, 일 실시예에서, 웹 페이지의 제 2 부분이 로컬 컴퓨팅 디바이스의 로컬 디스플레이를 통한 디스플레이를 위해서 렌더링되도록 결정되거나 또는 식별될 수 있다는 것을 예시한다. 일부 실시예들에서, 로컬 디스플레이를 통한 디스플레이를 위해 렌더링할 웹 페이지의 제 2 부분은 상기에서 설명된 것 처럼 적어도 원격 디스플레이를 통한 디스플레이를 위해 렌더링 할 웹 페이지의 부분을 포함할 수 있다. 다양한 실시예들에서, 이 블럭에 의해 예시된 하나 이상의 동작(들)은 상기에서 설명된 것 처럼 도면들 1 또는 3의 장치들 또는 시스템들, 도 1의 웹 애플리케이션 (120) 또는 도 3의 애플리케이션 (332)에 의해 수행될 수 있다.
블럭 (414)은 상기에서 설명된 것 처럼, 일 실시예에서, 제 2 렌더링된 프리젠테이션 정보는 로컬 디바이스의 적어도 하나의 특성에 기초하여 웹 페이지의 제 2 부분을 렌더링함으로써 생성될 수 있다는 것을 예시한다. 다양한 실시예들에서, 이 블럭에 의해 예시된 하나 이상의 동작(들)은 상기에서 설명된 것 처럼 도면들 1 또는 3의 장치들 또는 시스템들, 도 1의 로컬 렌더러 (122) 또는 도 3의 렌더러 (310)에 의해 수행될 수 있다.
블럭 (416)은 상기에서 설명된 것 처럼, 일 실시예에서, 제 2 렌더링된 프리젠테이션 정보가 로컬 디스플레이를 통하여 제공되거나 또는 디스플레이될 수 있는 것을 예시한다 . 다양한 실시예들에서, 이 블럭에 의해 예시된 하나 이상의 동작(들)은 상기에서 설명된 것 처럼 도면들 1 또는 3의 장치들 또는 시스템들, 도 1의 웹 애플리케이션 (120)에 의해 수행될 수 있다.
도 5는 여기에 설명된 기술들과 함께 사용될 수 있는, 일반 컴퓨터 디바이스(500) 및 일반 이동 컴퓨터 디바이스(550)의 일 예를 도시한다. 컴퓨팅 디바이스(500)는 랩탑들, 데스크탑들, 워크스테이션들, 개인용 디지털 보조기들, 서버들, 블레이드 서버들, 메인프레임들, 및 다른 적절한 컴퓨터들과 같은, 다양한 형태들의 디지털 컴퓨터들을 나타내도록 의도된다. 컴퓨팅 디바이스(550)는 개인용 디지털 보조기들, 셀룰러 전화기들, 스마트 폰들, 및 다른 유사한 컴퓨팅 디바이스들과 같은, 다양한 형태들의 이동 디바이스들을 나타내도록 의도된다. 여기에 도시된 구성요소들, 그것들의 연결들 및 관계들, 및 그것들의 기능들은 단지 예시적인 것으로 의도되며 본 문서에 설명되고 및/또는 주장된 발명들의 구현들을 제한하도록 의도되지 않는다.
컴퓨팅 디바이스(500)는 프로세서(502), 메모리(504), 저장 디바이스(506), 메모리(504) 및 고속 확장 포트들(510)에 연결한 고속 인터페이스(508), 및 저속 버스(514) 및 저장 디바이스(506)에 연결한 저속 인터페이스(512)를 포함한다. 구성요소들(502,504,506,508,510), 및 (512)의 각각은 다양한 버스들을 사용하여 상호 연결되며, 공통 마더보드 상에 또는 다른 방식들로 적절하게 장착될 수 있다. 프로세서(502)는 고속 인터페이스(508)에 결합된 디스플레이(516)와 같은, 외부 입력/출력 디바이스 상에서의 GUI를 위한 그래픽 정보를 디스플레이하기 위해 메모리(504)에 또는 저장 디바이스(506) 상에 저장된 지시들을 포함한, 컴퓨팅 디바이스(500) 내에서의 실행을 위한 지시들을 프로세싱할 수 있다. 다른 구현들에서, 다수의 프로세서들 및/또는 다수의 버스들이 다수의 메모리들 및 유형들의 메모리와 함께, 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(500)이 연결될 수 있으며, 각각의 디바이스는 필요한 동작들의 부분들을 제공한다(예로서, 서버 뱅크, 블레이드 서버들의 그룹, 또는 다중-프로세서 시스템으로서).
메모리(504)는 컴퓨팅 디바이스(500) 내에 정보를 저장한다. 일 구현에서, 메모리(504)는 휘발성 메모리 유닛 또는 유닛들이다. 또 다른 구현에서, 메모리(504)는 비-휘발성 메모리 유닛 또는 유닛들이다. 메모리(504)는 또한 자기 또는 광 디스크와 같은, 또 다른 형태의 컴퓨터-판독 가능한 매체일 수 있다.
저장 디바이스(506)는 컴퓨팅 디바이스(500)를 위한 대량 저장을 제공할 수 있다. 일 구현에서, 저장 디바이스(506)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스, 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성들에서의 디바이스들을 포함한, 디바이스들의 어레이와 같은, 컴퓨터-판독 가능한 매체일 수 있거나 또는 이를 포함할 수 있다. 컴퓨터 프로그램 제품은 정보 캐리어에서 유형으로 구체화될 수 있다. 컴퓨터 프로그램 제품은 또한, 실행될 때, 상기 설명된 것들과 같은, 하나 이상의 방법들을 수행하는 지시들을 포함할 수 있다. 정보 캐리어는 메모리(504), 저장 디바이스(506), 프로세서(502) 상에서의 메모리와 같은, 컴퓨터- 또는 기계-판독 가능한 매체이다.
고속 제어기(508)는 컴퓨팅 디바이스(500)를 위한 대역폭-집중 동작들을 관리하는 반면, 저속 제어기(512)는 보다 낮은 대역폭-집중 동작들을 관리한다. 기능들의 이러한 할당은 단지 대표적이다. 일 구현에서, 고속 제어기(508)는 메모리(504), 디스플레이(516)(예로서, 그래픽스 프로세서 또는 가속도계를 통해), 및 다양한 확장 카드들(도시되지 않음)을 수용할 수 있는, 고속 확장 포트들(510)에 결합된다. 구현에서, 저속 제어기(512)는 저장 디바이스(506) 및 저속 확장 포트(514)에 결합된다. 다양한 통신 포트들(예로서, USB, 블루투스, 이더넷, 무선 이더넷)을 포함할 수 있는, 저속 확장 포트가 키보드, 포인팅 디바이스, 스캐너, 또는 스위치 또는 라우터와 같은 네트워킹 디바이스와 같은, 하나 이상의 입력/출력 디바이스들에, 예로서 네트워크 어댑터를 통해 결합될 수 있다.
컴퓨팅 디바이스(500)는 도면에 도시된 바와 같이, 다수의 상이한 형태들로 구현될 수 있다. 예를 들면, 그것은 표준 서버(520)로서, 또는 이러한 서버들의 그룹에서 다수 회 구현될 수 있다. 그것은 또한 랙 서버 시스템(524)의 일부로서 구현될 수 있다. 또한, 그것은 랩탑 컴퓨터(522)와 같은 개인용 컴퓨터에 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(500)로부터의 구성요소들은 디바이스(550)와 같이, 이동 디바이스(도시되지 않음)에서의 다른 구성요소들과 조합될 수 있다. 이러한 디바이스들의 각각은 컴퓨팅 디바이스(500,550) 중 하나 이상을 포함할 수 잇으며, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스들(500,550)로 이루어질 수 있다.
컴퓨팅 디바이스(550)는 다른 구성요소들 중에서, 프로세서(552), 메모리(564), 디스플레이(554)와 같은 입력/출력 디바이스, 통신 인터페이스(566), 및 트랜시버(568)를 포함한다. 디바이스(550)는 또한 부가적인 저장 장치를 제공하기 위해, 마이크로드라이브 또는 다른 디바이스와 같은, 저장 디바이스를 제공받을 수 있다. 구성요소들(550,552,564,554,566), 및 (568)의 각각은 다양한 버스들을 사용하여 상호 연결되며, 구성요소들 중 여러 개가 공통 마더보드 상에 또는 다른 방식들로 적절하게 장착될 수 있다.
프로세서(552)는 메모리(564)에 저장된 지시들을 포함하여, 컴퓨팅 디바이스(550) 내에서의 지시들을 실행할 수 있다. 프로세서는 별개의 및 다수의 아날로그 및 디지털 프로세서들을 포함하는 칩들의 칩셋으로서 구현될 수 있다. 프로세서는, 예를 들면, 사용자 인터페이스들, 디바이스(550)에 의해 구동된 애플리케이션들, 및 디바이스(550)에 의한 무선 통신의 제어와 같이, 디바이스(550)의 다른 구성요소들의 조정을 위해 제공할 수 있다.
프로세서(552)는 디스플레이(554)에 결합된 제어 인터페이스(558) 및 디스플레이 인터페이스(556)를 통해 사용자와 통신할 수 있다. 디스플레이(554)는 예를 들면, TFT LCD(박막 트랜지스터 액정 디스플레이) 또는 OLED(유기 발광 다이오드) 디스플레이, 또는 다른 적절한 디스플레이 기술일 수 있다. 디스플레이 인터페이스(556)는 사용자에게 그래픽 및 다른 정보를 제공하도록 디스플레이(554)를 구동하기 위한 적절한 회로를 포함할 수 있다. 제어 인터페이스(558)는 사용자로부터 명령어들을 수신하며 프로세서(552)로의 제출을 위해 그것들을 변환할 수 있다. 또한, 외부 인터페이스(562)는 다른 디바이스들과의 디바이스(550)의 근거리 통신을 가능하게 하기 위해, 프로세서(552)와 통신하여 제공할 수 있다. 외부 인터페이스(562)는 예를 들면, 몇몇 구현들에서 유선 통신을 위해, 또는 다른 구현들에서 무선 통신을 위해 제공할 수 있으며 다수의 인터페이스들이 또한 사용될 수 있다.
메모리(564)가 컴퓨팅 디바이스(550) 내에 정보를 저장한다. 메모리(564)는 컴퓨터-판독 가능한 매체 또는 미디어, 휘발성 메모리 유닛 또는 유닛들, 또는 비-휘발성 메모리 유닛 또는 유닛들 중 하나 이상으로서 구현될 수 있다. 확장 메모리(574)는 또한 확장 인터페이스(572)를 통해 디바이스(550)에 제공되고 연결될 수 있으며, 이것은 예를 들면, SIMM(단일 인 라인 메모리 모듈) 카드 인터페이스를 포함할 수 있다. 이러한 확장 메모리(574)는 디바이스(550)를 위한 추가의 저장 공간을 제공할 수 있거나, 또는 디바이스(550)를 위한 애플리케이션들 또는 다른 정보를 저장할 수 있다. 구체적으로, 확장 메모리(574)는 상기 설명된 프로세스들을 실행하거나 또는 보완하기 위한 지시들을 포함할 수 있으며, 또한 보안 정보를 포함할 수 있다. 따라서, 예를 들면, 확장 메모리(574)는 디바이스(550)를 위한 보안 모듈로서 제공할 수 있으며, 디바이스(550)의 안전한 사용을 허용하는 지시들을 갖고 프로그램될 수 있다. 또한, 보안 애플리케이션들은 비-해킹 가능한 방식으로 SIMM 카드상에 식별 정보를 두는 것과 같이, 부가적인 정보와 함께, SIMM 카드들을 통해 제공될 수 있다.
메모리는 예를 들면, 이하에 논의된 바와 같이, 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 구현에서, 컴퓨터 프로그램 제품은 정보 캐리어에 유형으로 구체화된다. 컴퓨터 프로그램 제품은 실행될 때, 상기 설명된 것들과 같은, 하나 이상의 방법들을 수행하는 지시들을 포함한다. 정보 캐리어는 예를 들면, 트랜시버(568) 또는 외부 인터페이스(562)를 통해 수신될 수 있는 메모리(564), 확장 메모리(574), 또는 프로세서(552) 상에서의 메모리와 같은, 컴퓨터- 또는 기계-판독 가능한 매체이다.
디바이스(550)는 필요한 경우 디지털 신호 프로세싱 회로를 포함할 수 있는, 통신 인터페이스(566)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(566)는 다른 것들 중에서, GSM 음성 호출들, SMS, EMS, 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA(2000), 또는 GPRS와 같은, 다양한 모드들 또는 프로토콜들 하에서 통신들을 위해 제공할 수 있다. 이러한 통신은, 예를 들면, 라디오-주파수 트랜시버(568)를 통해 발생할 수 있다. 또한, 단거리 통신이 블루투스, 와이파이, 또는 다른 이러한 트랜시버(도시되지 않음)를 사용하여서와 같이, 발생할 수 있다. 또한, GPS(전역적 위치 결정 시스템) 수신기 모듈(570)이 부가적인 내비게이션- 및 위치-관련 무선 데이터를 디바이스(550)에 제공할 수 있으며, 이것은 디바이스(550) 상에서 구동하는 애플리케이션들에 의해 적절하게 사용될 수 있다.
디바이스(550)는 또한 사용자로부터 구어 정보를 수신하며 그것을 사용 가능한 디지털 정보로 변환할 수 있는, 오디오 코덱(560)을 사용하여 청취 가능하게 전달할 수 있다. 오디오 코덱(560)은 마찬가지로 예로서, 디바이스(550)의 핸드셋에서, 스피커를 통해서와 같이, 사용자에 대한 가청 사운드를 생성할 수 있다. 이러한 사운드는 음성 전화 호출들로부터의 사운드를 포함할 수 있고, 녹음된 사운드(예로서, 음성 메시지들, 음악 파일들 등)를 포함할 수 있으며 또한 디바이스(550) 상에서 동작하는 애플리케이션들에 의해 생성된 사운드를 포함할 수 있다.
컴퓨팅 디바이스(550)는 도면에 도시된 바와 같이, 다수의 상이한 형태들로 구현될 수 있다. 예를 들면, 그것은 셀룰러 전화기(580)로서 구현될 수 있다. 그것은 또한 스마트 폰(582), 개인용 디지털 보조기, 또는 다른 유사한 이동 디바이스의 일부로서 구현될 수 있다.
여기에 기술된 시스템들 및 기술들의 각종 구현들은, 디지털 전자 회로, 집적 회로, 특수 설계된 ASIC(애플리케이션 특정 집적 회로), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합들로 실현될 수 있다. 이들 다양한 구현들은 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스로부터 데이터 및 지시들을 수신하기 위해, 및 그것으로 데이터 및 지시들을 송신하기 위해 결합된, 특수 또는 일반 목적일 수 있는, 적어도 하나의 프로그램 가능한 프로세서를 포함한 프로그램 가능한 시스템상에서 실행 가능하고 및/또는 해석 가능한 하나 이상의 컴퓨터 프로그램들에서의 구현을 포함할 수 있다.
이들 컴퓨터 프로그램들(또한 프로그램, 소프트웨어, 소프트웨어 애플리케이션들 또는 코드로서 알려진)은 프로그램 가능한 프로세서에 대한 기계 지시들을 포함하며, 고-레벨 절차 및/또는 오브젝트-지향 프로그래밍 언어로, 및/또는 어셈블리/기계 언어로 구현될 수 있다. 본 명세서에서 사용된, 용어들 "기계-판독가능 매체" "컴퓨터-판독가능 매체"는 프로그래머블 프로세서에게 기계 명령들 및/또는 데이터를 제공하기 위해 사용되는 컴퓨터 프로그램 제품, 장치 및/또는 디바이스(예컨대, 자기 디스크, 광 디스크, 메모리, 프로그래머블 로직 디바이스(PLD)를 지칭하며, 이것은 기계-판독가능 신호로서 기계 명령들을 수신하는 기계-판독가능 매체를 포함한다. 용어 "기계-판독 가능한 신호"는 기계 지시들 및/또는 데이터를 프로그램 가능한 프로세서에 제공하기 위해 사용된 임의의 신호를 나타낸다.
사용자와의 상호작용을 제공하기 위해, 여기에 설명된 시스템들 및 기술들은 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스(예로서, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터) 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예로서, 마우스 또는 트랙볼)를 가진 컴퓨터상에 구현될 수 있다. 다른 종류들의 디바이스들이 또한 사용자와의 상호작용을 위해 제공하기 위해 사용될 수 있다; 예를 들면, 사용자에게 제공된 피드백은 임의의 형태의 감각 피드백(예로서, 영상 피드백, 음성 피드백, 또는 촉각 피드백)일 수 있으며; 사용자로부터의 입력은 음향, 스피치, 또는 촉각 입력을 포함한, 임의의 형태로 수신될 수 있다.
여기에 설명된 시스템들 및 기술들은 백 엔드 구성요소(예로서, 데이터 서버로서)를 포함하는, 또는 미들웨어 구성요소(예로서, 애플리케이션 서버)를 포함하거나, 또는 프론트 엔드 구성요소(예로서, 그래픽 사용자 인터페이스 또는 사용자가 여기에 설명된 시스템들 및 기술들의 구현과 상호 작용할 수 있는 웹 브라우저를 가진 클라이언트 컴퓨터), 또는 이러한 백 엔드, 미들웨어, 또는 프론트 엔드 구성요소들의 임의의 조합을 포함하는 컴퓨팅 시스템에 구현될 수 있다. 시스템의 구성요소들은 임의의 형태 또는 매체의 디지털 데이터 통신(예로서, 통신 네트워크)에 의해 상호 연결될 수 있다. 통신 네트워크들의 예들은 근거리 네트워크 "LAN", 광역 네트워크 "WAN", 및 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로로부터 원격이며 통상적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트 및 서버의 관계는 각각의 컴퓨터들 상에서 구동하며 서로에 대해 클라이언트-서버 관계를 가진 컴퓨터 프로그램들에 의해 발생한다.
다수의 실시예들이 설명되었다. 하지만, 본 발명의 사상 및 범위로부터 일탈하지 않는 범위 내에서 다양한 수정들이 이루어질 수 있다는 것이 이해될 것이다.
또한, 도면들에 묘사된 논리 흐름들은 바람직한 결과들을 달성하기 위해, 도시된 특정한 순서, 또는 순차적인 순서를 요구하지 않는다. 또한, 다른 단계들이 제공될 수 있거나, 또는 단계들이 설명된 흐름들로부터 제거될 수 있으며, 다른 구성요소들이 설명된 시스템들에 부가되거나 또는 그로부터 제거될 수 있다. 따라서, 다른 실시예들은 이하의 청구항들의 범위내에 있다.

Claims (20)

  1. 방법으로서,
    로컬 컴퓨팅 디바이스의 프로세서에 의해, 원격 디바이스의 원격 디스플레이를 통한 디스플레이를 위해 렌더링할 웹페이지의 부분을 결정하는 단계;
    상기 원격 디바이스의 적어도 하나의 특성에 기초하여 상기 웹 페이지의 부분을 렌더링함으로써 렌더링된 프리젠테이션 정보를 생성하는 단계; 및
    상기 렌더링된 프리젠테이션 정보를 상기 원격 디바이스로 송신하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서,
    상기 렌더링된 프리젠테이션 정보를 생성하는 단계는
    상기 원격 디스플레이와 관련된 일련의 프리젠테이션 특성 정보를 선택하는 단계; 및
    상기 원격 디스플레이와 관련된 상기 일련의 프리젠테이션 특성 정보에 기초하여 상기 웹 페이지의 부분을 렌더링하는 단계를 포함하는, 방법.
  3. 청구항 1 내지 2 중 어느 한 항에 있어서, 송신하는 단계는
    실시간 통신 프로토콜에 따라 상기 렌더링된 프리젠테이션 정보를 재포맷팅(reformatting)하는 단계를 포함하는, 방법.
  4. 청구항 1 내지 3 중 어느 한 항에 있어서, 상기 실시간 통신 프로토콜은 WebRTC(Web Real-Time Communication)에 실질적으로 부합하는, 방법.
  5. 청구항 1 내지 청구항 4 중 어느 한 항에 있어서, 디스플레이를 위해 렌더링 할 상기 웹 페이지의 부분은 오디오 부분을 포함하고; 및
    렌더링된 프리젠테이션 정보를 생성하는 단계는 상기 원격 디바이스의 오디오 컴포넌트의 적어도 하나의 특성에 기초하여 오디오 신호를 생성하는 단계를 포함하는, 방법.
  6. 청구항 1 내지 5 중 어느 한 항에 있어서,
    상기 로컬 컴퓨팅 디바이스의 로컬 디스플레이를 통한 디스플레이를 위해 렌더링할 상기 웹페이지의 제 2 부분을 결정하는 단계;
    상기 로컬 디스플레이의 적어도 하나의 특성에 기초하여 상기 웹 페이지의 제 2 부분을 렌더링함으로써 제 2 렌더링된 프리젠테이션 정보를 생성하는 단계; 및
    상기 로컬 디스플레이를 통해 상기 제 2 렌더링된 프리젠테이션 정보를 디스플레이하는 단계를 더 포함하는, 방법.
  7. 청구항 1 내지 청구항 6 중 어느 한 항에 있어서, 상기 로컬 디스플레이를 통한 상기 제 2 렌더링된 프리젠테이션 정보를 디스플레이하는 단계는
    상기 렌더링된 프리젠테이션 정보를 상기 원격 디바이스로 송신하면서 상기 디스플레이하는 상기 제 2 렌더링된 프리젠테이션 정보를 동기화하는 단계를 포함하는, 방법.
  8. 청구항 1 내지 7 중 어느 한 항에 있어서, 상기 로컬 디스플레이를 통한 디스플레이를 위해 렌더링할 상기 웹 페이지의 제 2 부분은 상기 원격 디스플레이를 통한 최소한의 디스플레이를 위해 렌더링 할 상기 웹 페이지의 부분을 포함하는, 방법.
  9. 청구항 1 내지 8 중 어느 한 항에 있어서,
    상기 로컬 컴퓨팅 디바이스를 통해 유저 입력을 수신하는 단계;를 더 포함하되,
    상기 원격 디스플레이를 통한 디스플레이를 위해 렌더링할 상기 웹페이지의 부분을 결정하는 단계는 적어도 부분적으로 상기 유저 입력에 기초되는, 방법.
  10. 장치에 있어서,
    프로세서로서:
    원격 디바이스의 원격 디스플레이를 통한 디스플레이를 위해 렌더링할 웹페이지의 부분을 결정하고; 및
    상기 원격 디바이스의 적어도 하나의 특성에 기초하여 상기 웹 페이지의 부분을 렌더링함으로써 렌더링된 프리젠테이션 정보를 생성하도록 구성된, 상기 프로세서; 및
    상기 렌더링된 프리젠테이션 정보를 상기 원격 디바이스로 송신하도록 구성된 네트워크 인터페이스를 포함하는, 장치.
  11. 청구항 10에 있어서, 상기 프로세서는,
    상기 원격 디스플레이와 관련된 일련의 프리젠테이션 특성 정보를 선택하고; 및
    상기 원격 디스플레이와 관련된 상기 일련의 프리젠테이션 특성 정보에 기초하여 상기 웹 페이지의 부분을 렌더링하도록 구성된, 장치.
  12. 청구항 10 내지 11 중 어느 한 항에 있어서, 상기 프로세서는:
    실시간 통신 프로토콜에 따라 상기 렌더링된 프리젠테이션 정보를 재포맷(reformat)하도록 구성된, 장치.
  13. 청구항 10 내지 12 중 어느 한 항에 있어서, 상기 실시간 통신 프로토콜은 WebRTC(Web Real-Time Communication)에 실질적으로 부합하는, 장치.
  14. 청구항 10 내지 13 중 어느 한 항에 있어서, 디스플레이를 위해 렌더링 할 최소한의 상기 웹페이지의 부분은 오디오 부분을 포함하고,.
    상기 프로세서는 상기 원격 디바이스의 오디오 컴포넌트의 적어도 하나의 특성에 기초하여 오디오 신호를 생성하도록 구성된, 장치.
  15. 청구항 10 내지 14 중 어느 한 항에 있어서, 상기 프로세서는:
    상기 장치의 로컬 모니터를 통한 디스플레이를 위해 렌더링할 상기 웹페이지의 제 2 부분을 결정하고; 및
    상기 로컬 모니터의 적어도 하나의 특성에 기초하여 상기 웹 페이지의 제 2 부분을 렌더링함으로써 제 2 렌더링된 프리젠테이션 정보를 생성하도록 구성되고; 및
    상기 로컬 모니터가 상기 제 2 렌더링된 프리젠테이션 정보를 디스플레이 하도록 구성되는 것을 더 포함하는, 장치.
  16. 청구항 10 내지 15 중 어느 한 항에 있어서, 상기 프로세서는:
    상기 렌더링된 프리젠테이션 정보를 상기 원격 디바이스로 송신하면서 상기 디스플레이하는 상기 제 2 렌더링된 프리젠테이션 정보를 동기화하도록 구성된, 장치.
  17. 청구항 10 내지 16 중 어느 한 항에 있어서, 상기 로컬 모니터를 통한 디스플레이를 위해 렌더링할 상기 웹 페이지의 제 2 부분은 상기 원격 디스플레이를 통한 최소한의 디스플레이를 위해 렌더링 할 상기 웹 페이지의 부분을 포함하는, 장치.
  18. 청구항 10 내지 17 중 어느 한 항에 있어서, 상기 프로세서는:
    상기 장치를 통하여 유저 입력을 수신하고; 및
    적어도 부분적으로 상기 유저 입력에 기초하여 상기 원격 디스플레이를 통한 디스플레이를 위해 렌더링할 상기 웹페이지의 부분을 결정하도록 구성된, 장치.
  19. 기계-실행 가능한 프로그램의 실행 가능한 코드를 포함하는 유형의 구체화된 컴퓨터 판독가능 매체로서, 실행될 때 장치로 하여금:
    상기 장치의 프로세서에 의해, 원격 장치의 원격 프리젠테이션 하드웨어 컴포넌트를 통한 프리젠테이션을 위해 렌더링할 웹페이지의 부분을 결정하고;
    상기 원격 장치의 적어도 하나의 특성에 기초하여 상기 웹 페이지의 부분을 렌더링함으로써 렌더링된 프리젠테이션 정보를 생성하고; 및
    상기 렌더링된 프리젠테이션 정보를 상기 원격 디바이스로 송신하도록 구성된, 컴퓨터 판독가능 매체.
  20. 청구항 19에 있어서, 실행될 때 상기 기계-실행 가능한 프로그램은 상기 장치로 하여금:
    상기 원격 프리젠테이션 하드웨어 컴포넌트와 관련된 일련의 프리젠테이션 특성 정보를 선택하고; 및
    상기 원격 장치와 관련된 상기 일련의 프리젠테이션 특성 정보에 기초하여 상기 웹 페이지의 부분을 렌더링하도록 구성된, 컴퓨터 판독가능 매체.
KR1020157023182A 2013-03-15 2014-02-27 멀티-스크린 애플리케이션들 위한 스크린캐스팅 KR102210369B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/843,693 2013-03-15
US13/843,693 US9836437B2 (en) 2013-03-15 2013-03-15 Screencasting for multi-screen applications
PCT/US2014/018979 WO2014149492A1 (en) 2013-03-15 2014-02-27 Screencasting for multi-screen applications

Publications (2)

Publication Number Publication Date
KR20150134324A true KR20150134324A (ko) 2015-12-01
KR102210369B1 KR102210369B1 (ko) 2021-02-01

Family

ID=50349858

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157023182A KR102210369B1 (ko) 2013-03-15 2014-02-27 멀티-스크린 애플리케이션들 위한 스크린캐스팅

Country Status (5)

Country Link
US (1) US9836437B2 (ko)
EP (1) EP2972759A1 (ko)
KR (1) KR102210369B1 (ko)
CN (1) CN105518614B (ko)
WO (1) WO2014149492A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10095663B2 (en) 2012-11-14 2018-10-09 Amazon Technologies, Inc. Delivery and display of page previews during page retrieval events
US9836437B2 (en) 2013-03-15 2017-12-05 Google Llc Screencasting for multi-screen applications
US20150006288A1 (en) * 2013-06-29 2015-01-01 Ten Farms, Inc. Online advertising integration management and responsive presentation
US9514136B2 (en) * 2013-10-23 2016-12-06 Verizon Patent And Licensing Inc. Cloud based management for multiple content markers
US9720888B1 (en) 2014-05-22 2017-08-01 Amazon Technologies, Inc. Distributed browsing architecture for the delivery of graphics commands to user devices for assembling a plurality of layers of a content page
US10042521B1 (en) 2014-05-22 2018-08-07 Amazon Technologies, Inc. Emulation of control resources for use with converted content pages
US9922007B1 (en) 2014-05-22 2018-03-20 Amazon Technologies, Inc. Split browser architecture capable of determining whether to combine or split content layers based on the encoding of content within each layer
US11169666B1 (en) 2014-05-22 2021-11-09 Amazon Technologies, Inc. Distributed content browsing system using transferred hardware-independent graphics commands
US9454515B1 (en) 2014-06-17 2016-09-27 Amazon Technologies, Inc. Content browser system using graphics commands and native text intelligence
US9589543B2 (en) * 2015-03-18 2017-03-07 Intel Corporation Static frame image quality improvement for sink displays
US9532099B2 (en) 2015-03-24 2016-12-27 Intel Corporation Distributed media stream synchronization control
TWI629653B (zh) * 2016-05-16 2018-07-11 盧舜年 匯流視訊與商務程序之單頁購物系統及其方法
CN106055239B (zh) * 2016-06-02 2019-10-29 北京金山安全软件有限公司 录屏方法及装置
US10565287B2 (en) * 2016-06-17 2020-02-18 International Business Machines Corporation Web content layout engine instance sharing across mobile devices
US9971826B1 (en) 2016-09-14 2018-05-15 SyncRTC Inc. Methods and apparatus for a distributed shared memory for device synchronization
KR20180060328A (ko) * 2016-11-28 2018-06-07 삼성전자주식회사 멀티 모달 입력을 처리하는 전자 장치, 멀티 모달 입력을 처리하는 방법 및 멀티 모달 입력을 처리하는 서버
CN107426606B (zh) * 2017-06-26 2020-07-24 联想(北京)有限公司 录制屏幕的方法、装置、电子设备和***
US11457483B2 (en) 2020-03-30 2022-09-27 Citrix Systems, Inc. Managing connections between a user device and peripheral devices
CN115373778A (zh) * 2021-05-19 2022-11-22 华为技术有限公司 投屏方法及相关装置
US11513757B1 (en) * 2021-06-04 2022-11-29 Citrix Systems, Inc. Display screen casting to target device using casting extension

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060109283A (ko) * 2003-10-23 2006-10-19 마이크로소프트 코포레이션 그래픽 원격화 시스템을 위한 동기화된 그래픽 및 영역데이터
KR20120061965A (ko) * 2009-09-14 2012-06-13 퀄컴 인코포레이티드 애플리케이션 인터페이스 부분들을 주변의 컴퓨터 디바이스들 상에 제공하기 위한 방법 및 장치
US20120297292A1 (en) * 2011-05-16 2012-11-22 Microsoft Corporation Informed partitioning of data in a markup-based document

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560637B1 (en) * 1998-12-02 2003-05-06 Polycom, Inc. Web-enabled presentation device and methods of use thereof
US6594773B1 (en) * 1999-11-12 2003-07-15 Microsoft Corporation Adaptive control of streaming data in a graph
US20020180727A1 (en) * 2000-11-22 2002-12-05 Guckenberger Ronald James Shadow buffer control module method and software construct for adjusting per pixel raster images attributes to screen space and projector features for digital warp, intensity transforms, color matching, soft-edge blending, and filtering for multiple projectors and laser projectors
US7346698B2 (en) * 2000-12-20 2008-03-18 G. W. Hannaway & Associates Webcasting method and system for time-based synchronization of multiple, independent media streams
US7831992B2 (en) * 2002-09-18 2010-11-09 General Instrument Corporation Method and apparatus for forwarding television channel video image snapshots to an auxiliary display device
WO2003096669A2 (en) * 2002-05-10 2003-11-20 Reisman Richard R Method and apparatus for browsing using multiple coordinated device
US7433915B2 (en) * 2002-08-01 2008-10-07 Xerox Corporation System and method for controlling communication
US10613817B2 (en) * 2003-07-28 2020-04-07 Sonos, Inc. Method and apparatus for displaying a list of tracks scheduled for playback by a synchrony group
US8290603B1 (en) * 2004-06-05 2012-10-16 Sonos, Inc. User interfaces for controlling and manipulating groupings in a multi-zone media system
US20050039133A1 (en) * 2003-08-11 2005-02-17 Trevor Wells Controlling a presentation of digital content
JP2005244931A (ja) * 2004-01-26 2005-09-08 Seiko Epson Corp マルチ画面映像再生システム
JP4977950B2 (ja) * 2004-02-04 2012-07-18 セイコーエプソン株式会社 マルチ画面映像再生システム、映像再生方法及び表示装置
JP4059214B2 (ja) * 2004-03-04 2008-03-12 ソニー株式会社 情報再生システムの制御方法、情報再生システム、情報提供装置、および情報提供プログラム
JP4586389B2 (ja) * 2004-03-22 2010-11-24 セイコーエプソン株式会社 マルチ画面映像再生装置およびマルチ画面映像再生装置における映像再生方法
US7460126B2 (en) * 2004-08-24 2008-12-02 Silicon Graphics, Inc. Scalable method and system for streaming high-resolution media
US20060079214A1 (en) * 2004-10-12 2006-04-13 Nokia Corporation Method and apparatus for showing wireless mobile device data content on an external viewer
US20060203758A1 (en) * 2005-03-11 2006-09-14 Samsung Electronics Co., Ltd. Mobile terminal for relaying multimedia data to an external display device
CN1897671A (zh) * 2005-12-16 2007-01-17 中国科学院长春光学精密机械与物理研究所 视频信号多显示设备同步输出接口模块
US8166390B2 (en) * 2006-02-15 2012-04-24 Microsoft Corporation Figure sizing and positioning on dynamic pages
US10452756B2 (en) 2006-09-29 2019-10-22 Oath Inc. Platform for rendering content for a remote device
US8280980B2 (en) 2006-10-16 2012-10-02 The Boeing Company Methods and systems for providing a synchronous display to a plurality of remote users
KR101299683B1 (ko) * 2006-10-20 2013-08-26 삼성전자주식회사 디스플레이장치, 디스플레이 시스템 및 그 제어방법
JP2008211379A (ja) 2007-02-23 2008-09-11 Fujitsu Ltd 表示制御プログラムおよび携帯端末装置
JP5151211B2 (ja) * 2007-03-30 2013-02-27 ソニー株式会社 多画面同期再生システム、表示制御端末、多画面同期再生方法、及びプログラム
KR101449025B1 (ko) * 2008-03-19 2014-10-08 엘지전자 주식회사 다중-소스 스트리밍을 위한 오브젝트에 대한 정보 관리 및처리 방법 그리고 그 장치
US8850045B2 (en) * 2008-09-26 2014-09-30 Qualcomm Incorporated System and method for linking and sharing resources amongst devices
CN101727302A (zh) * 2008-10-20 2010-06-09 英业达股份有限公司 具双屏幕简报功能的手持式电子装置与其电子式简报方法
WO2010065107A1 (en) * 2008-12-04 2010-06-10 Packetvideo Corp. System and method for browsing, selecting and/or controlling rendering of media with a mobile device
US20100238188A1 (en) * 2009-03-20 2010-09-23 Sean Miceli Efficient Display of Virtual Desktops on Multiple Independent Display Devices
US9472939B1 (en) * 2010-01-05 2016-10-18 Amazon Technologies, Inc. Remote display
JP2011141615A (ja) 2010-01-05 2011-07-21 Fujifilm Corp webページ閲覧システム及び中継サーバ
US8554938B2 (en) * 2010-08-31 2013-10-08 Millind Mittal Web browser proxy-client video system and method
US20140019891A1 (en) * 2011-03-31 2014-01-16 Lukup Media Pvt Ltd System and method for creating and delivering platform independent interactive applications on user devices
US9247182B2 (en) * 2011-10-10 2016-01-26 Eyeview, Inc. Using cluster computing for generating personalized dynamic videos
CN102572567A (zh) * 2011-12-28 2012-07-11 惠州Tcl移动通信有限公司 一种手持设备和电视机的ui界面交互***及方法
CN102547179B (zh) * 2011-12-29 2014-06-25 惠州Tcl移动通信有限公司 一种手持设备及与电视同步显示的方法
US9721036B2 (en) * 2012-08-14 2017-08-01 Microsoft Technology Licensing, Llc Cooperative web browsing using multiple devices
US8798598B2 (en) * 2012-09-13 2014-08-05 Alain Rossmann Method and system for screencasting Smartphone video game software to online social networks
US9112975B2 (en) * 2012-11-05 2015-08-18 Genesys Telecommunications Laboratories, Inc. System and method for web-based real time communication with contact centers
US9836437B2 (en) 2013-03-15 2017-12-05 Google Llc Screencasting for multi-screen applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060109283A (ko) * 2003-10-23 2006-10-19 마이크로소프트 코포레이션 그래픽 원격화 시스템을 위한 동기화된 그래픽 및 영역데이터
KR20120061965A (ko) * 2009-09-14 2012-06-13 퀄컴 인코포레이티드 애플리케이션 인터페이스 부분들을 주변의 컴퓨터 디바이스들 상에 제공하기 위한 방법 및 장치
US20120297292A1 (en) * 2011-05-16 2012-11-22 Microsoft Corporation Informed partitioning of data in a markup-based document

Also Published As

Publication number Publication date
US20140281896A1 (en) 2014-09-18
EP2972759A1 (en) 2016-01-20
KR102210369B1 (ko) 2021-02-01
WO2014149492A1 (en) 2014-09-25
CN105518614B (zh) 2019-05-31
US9836437B2 (en) 2017-12-05
CN105518614A (zh) 2016-04-20

Similar Documents

Publication Publication Date Title
KR102210369B1 (ko) 멀티-스크린 애플리케이션들 위한 스크린캐스팅
US11632576B2 (en) Live video broadcast method, live broadcast device and storage medium
US10068364B2 (en) Method and apparatus for making personalized dynamic emoticon
TWI479332B (zh) 視訊播放系統中的選擇性硬體加速
CN107770626A (zh) 视频素材的处理方法、视频合成方法、装置及存储介质
TWI502367B (zh) 使用Javascript及HTML5在裝置間串流元資料的方法與設備
CN110446114B (zh) 多媒体数据的处理装置、方法、电子设备及存储介质
US20170324998A1 (en) Method for playing video, client, and computer storage medium
US20230217081A1 (en) Screen Casting Method and Terminal
US10631048B2 (en) Methods, systems, and media for remote rendering of web content on a television device
KR20160031403A (ko) 멀티 윈도우 어플리케이션을 지원하는 멀티 스크린 제어 방법 및 디바이스
Lee et al. FLUID-XP: Flexible user interface distribution for cross-platform experience
CN114302176A (zh) 视频播放方法及装置
CN114095769B (zh) 一种应用级播放器的直播低延迟处理方法及显示设备
US20140297720A1 (en) Client apparatus, server apparatus, multimedia redirection system, and method thereof
JP6395971B1 (ja) グラフィカルコマンドトークンの修正
KR102547320B1 (ko) 전자 장치 및 전자 장치의 제어 방법
US20240244278A1 (en) Live video broadcast method, live broadcast device and storage medium
JP6343451B2 (ja) 動画再生装置、動画再生方法、及び動画再生プログラム
CN115396717B (zh) 显示设备及显示画质调节方法
JP6412893B2 (ja) 動画配信システム、動画送信装置、通信端末、及びプログラム
JP2016024760A (ja) 表示制御装置、表示端末、及び表示制御プログラム
CN113313799A (zh) 动态图像处理方法、动态图像处理装置、终端应用及电子设备
CN117939213A (zh) 显示设备、多窗口显示方法及存储介质
KR20120112952A (ko) 컨텐츠 제공 방법 및 이를 위한 장치

Legal Events

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