KR101986839B1 - 클라이언트 디바이스들과 제1 스크린 디바이스들 사이의 발견 및 연결 프로토콜들의 상호운용성 - Google Patents

클라이언트 디바이스들과 제1 스크린 디바이스들 사이의 발견 및 연결 프로토콜들의 상호운용성 Download PDF

Info

Publication number
KR101986839B1
KR101986839B1 KR1020177023903A KR20177023903A KR101986839B1 KR 101986839 B1 KR101986839 B1 KR 101986839B1 KR 1020177023903 A KR1020177023903 A KR 1020177023903A KR 20177023903 A KR20177023903 A KR 20177023903A KR 101986839 B1 KR101986839 B1 KR 101986839B1
Authority
KR
South Korea
Prior art keywords
coupling
application
screen
client device
screen application
Prior art date
Application number
KR1020177023903A
Other languages
English (en)
Other versions
KR20170108105A (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 KR20170108105A publication Critical patent/KR20170108105A/ko
Application granted granted Critical
Publication of KR101986839B1 publication Critical patent/KR101986839B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • H04L67/16
    • H04L67/36
    • H04L67/42
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/75Indicating network or usage conditions on the user display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4122Peripherals receiving signals from specially adapted client devices additional display device, e.g. video projector
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/005Discovery of network devices, e.g. terminals

Abstract

클라이언트 디바이스 상에서 동작하는 제2 스크린 애플리케이션은, 사용자 인터페이스에 디바이스들의 중복제거된 리스팅을 제시하고, 각각의 리스팅된 디바이스는 하나 이상의 커플링 프로토콜들과 연관된다. 비디오 디스플레이 세션에 참여할 리스팅된 디바이스의 선택이 사용자 인터페이스를 통해 수신된다. 선택된 디바이스의 제1 스크린 애플리케이션에 대한 애플리케이션 상태 정보가 제어 서버로부터 획득되고, 애플리케이션 상태 정보는 제1 스크린 애플리케이션이 제2 클라이언트 디바이스와의 기존 비디오 디스플레이 세션에 있는지 여부를 나타낸다. 제1 스크린 애플리케이션의 하나 이상의 커플링 프로토콜들 및 클라이언트 디바이스에 이용가능한 커플링 프로토콜들 그리고 나타낸 애플리케이션 상태에 기초하여 커플링 방법론이 결정되고; 클라이언트 디바이스는 결정된 커플링 방법론을 통해 제1 스크린 애플리케이션에 커플링한다.

Description

클라이언트 디바이스들과 제1 스크린 디바이스들 사이의 발견 및 연결 프로토콜들의 상호운용성
설명된 실시예들은 일반적으로 클라이언트 디바이스들에 대한 발견 및 커플링 프로토콜들의 상호운용성에 관한 것으로, 더 구체적으로는, 제1 스크린 디바이스와의 비디오 세션들을 확립함에 있어서 클라이언트 디바이스 상호운용성을 용이하게 하는 것에 관한 것이다.
제2 디바이스(예컨대, 랩톱) 상의 애플리케이션을 통해 제1 디바이스(예컨대, 텔레비전) 상의 애플리케이션의 발견 및/또는 개시를 위해 사용되는 다수의 프로토콜들(예컨대, 단순 서비스 발견 프로토콜 기반 발견 및 개시(discovery and launch)("DIAL"), 멀티캐스트 도메인 네임 시스템 기반 CAST V2 API("CAST") 등)이 있다. CAST는 안드로이드(ANDROID) 및/또는 구글(GOOGLE) 디바이스들에 대한 일부 통신들의 기저를 이루는 미공개된 프로토콜이다. 프로토콜 사양을 구현하는 애플리케이션의 사용자는, 예를 들어, 랩톱 상의 브라우저에 의해 디스플레이되고 있는 콘텐츠가 텔레비전 상의 애플리케이션을 통해서도 또한 디스플레이되게 할 수 있다. 디바이스 중복 및 프로토콜 상호운용성 문제점들을 포함하여, 이들 프로토콜들을 사용하여 콘텐츠를 디스플레이하는 것에 의한 여러 문제점들이 존재한다.
디바이스 중복은 발견된 디바이스가 이용가능한 디스플레이 디바이스로서 발견한 디바이스 상에 다수 회 리스팅되는 문제점을 말한다. 일부 경우들에 있어서, 디바이스는 발견한 디바이스와의 비디오 세션을 확립하기 위한 다수의 프로토콜들을 지원한다. 이들 경우들에 있어서, 디바이스는 디바이스가 발견되는 각각의 경로를 통해 - 그리고 가능하다면 상이한 명칭들로 - 사용자에게 제시될 수 있다. 예를 들어, 랩톱 상의 애플리케이션은 DIAL 발견을 이용하여 텔레비전을 발견한 다음에 DIAL을 이용하여 텔레비전 상의 애플리케이션을 개시할 수 있다. 그러나, 텔레비전은 또한 다른 발견 프로토콜(예컨대, CAST)을 지원하거나 및/또는 랩톱과 이전에 수동으로 페어링되었을 수 있다. 수동 페어링은, 예를 들어, 사용자가 텔레비전에 의해 제공된 패스코드를 랩톱에 입력할 때, 또는 그 반대의 경우일 때 발생하는데, 이는 랩톱이 블루투스(BLUETOOTH) 연결을 통해 텔레비전에 무선으로 커플링되게 하는 것을 유발한다. 이 예에서는, 몇몇 추가적인 단계들 없이 텔레비전이 사용자에게 3회 - 그리고 가능하다면 상이한 명칭들 하에서 - 보여질 것이다. 이 상황은 혼란스럽고, 사용자 경험에 영향을 미치며, 준최적(sub-optimal) 프로토콜의 선택을 유발할 수 있다.
프로토콜 상호운용성은, 구체적으로는 디바이스가 2개의 다른 디바이스들 사이의 기존 세션에 조인하려고 시도한다는 맥락에서 발생하는 다른 문제점이다. 이 문제점에 대한 근본 원인은 특정 프로토콜을 사용하여 시작된 세션이 다른 프로토콜을 사용하여 조인될 수 없고 일부 디바이스들 상에서는 발견 모듈들이 독립적으로 기능한다는 것이다. 상이한 프로토콜을 사용하여 기존 세션에 조인하려고 시도하면 실패하거나 또는 현재 세션의 중단 및 새로운 세션의 생성을 초래할 수 있다. 예를 들어, 텔레비전은 DIAL 프로토콜과 CAST 프로토콜 양쪽 모두를 지원할 수 있고, 디바이스 A는 DIAL만 지원할 수 있고, 디바이스 B는 DIAL과 CAST 양쪽 모두를 지원할 수 있다. 디바이스 A는 DIAL 프로토콜을 사용하여 텔레비전과의 세션을 생성하고, 얼마간의 시간 후에 디바이스 B가 CAST를 사용하여 그 세션에 조인하려고 시도하면, 이는 세션의 중단을 유발한다. 텔레비전과의 세션이 DIAL과 CAST 양쪽 모두에서 동시에 동작할 수 없기 때문에 중단이 초래된다.
다양한 실시예들에서, 제어 서버는 제1 스크린 디바이스들(예컨대, 텔레비전들) 상에서 동작하는 제1 스크린 애플리케이션들과의 제2 스크린 디바이스들(예컨대, 랩톱들) 상에서 동작하는 제2 스크린 애플리케이션들의 상호운용성을 용이하게 한다. 제어 서버는 제1 스크린 애플리케이션들이 하나 이상의 제2 스크린 디바이스들과 이전에 수동으로 페어링되었는지 여부를 설명하는 페어링 정보를 유지한다. 제어 서버는 또한, 제1 스크린 애플리케이션들이 하나 이상의 제2 스크린 디바이스들과의 비디오 디스플레이 세션들에 참여하고 있는지 여부, 그리고 그렇다면, 비디오 세션들에 어떤 커플링 프로토콜들이 사용되고 있는지를 나타내는 정보를 유지한다.
제2 스크린 디바이스 상에서 동작하는 제2 스크린 애플리케이션은 각각의 디바이스로부터 수신된 발견 정보 및 제어 서버로부터 수신된 페어링 정보를 사용하여 연결을 위해 이용가능한 디바이스들의 중복제거된 리스팅을 생성한다. 디바이스들의 중복제거된 리스팅은, 예를 들어, 제1 스크린 디바이스들, 제2 스크린 디바이스들, 또는 이들의 일부 조합을 포함할 수 있다. 제2 스크린 애플리케이션은 사용자 인터페이스를 통해 디바이스들의 중복제거된 리스팅을 제2 스크린 디바이스의 사용자에게 제시한다.
일부 실시예들에서, 사용자는, 사용자 인터페이스를 통해, 비디오 디스플레이 세션에 참여할 리스팅된 제1 스크린 디바이스를 선택한다. 제2 스크린 애플리케이션은 선택된 디바이스의 제1 스크린 애플리케이션에 대한 애플리케이션 정보를 제어 서버로부터 획득한다. 애플리케이션 상태 정보는 제1 스크린 애플리케이션이 일부 다른 제2 스크린 디바이스와의 기존 비디오 디스플레이 세션에 있는지 여부를 나타낸다. 제2 스크린 애플리케이션은 제1 스크린 애플리케이션의 하나 이상의 커플링 프로토콜들 및 제2 스크린 디바이스에 이용가능한 커플링 프로토콜들 그리고 나타낸 애플리케이션 상태에 기초하여 커플링 방법론(coupling methodology)을 결정한다.
애플리케이션 상태가 제1 스크린 애플리케이션이 일부 다른 제2 스크린 디바이스와의 기존 세션에 있음을 그리고 세션이 특정 커플링 프로토콜을 사용하고 있음을 나타내는 실시예들에서, 그 후에 제2 스크린 애플리케이션은 특정 커플링 프로토콜이 제2 스크린 디바이스에 의해서도 또한 지원되는지를 결정한다. 지원되는 경우, 제2 스크린 디바이스는 특정 커플링 프로토콜을 통해 기존 세션에 커플링한다. 그렇지 않으면, 제2 스크린 디바이스는 제어 서버를 통해 기존 세션에 간접적으로 커플링하는데, 여기서 제2 스크린 디바이스 및 제어 서버는 제2 스크린 디바이스에 의해 지원되는 커플링 프로토콜을 사용하여 통신하고, 제어 서버 및 제1 스크린 디바이스는 기존 세션에 사용되고 있는 특정 커플링 프로토콜을 통해 커플링한다.
도 1은 제1 스크린 디바이스와의 클라이언트 디바이스 상호운용성을 용이하게 하기 위한 환경의 실시예를 예시하는 블록 다이어그램이다.
도 2는 실시예에 따른, 제1 스크린 디바이스의 발견 및 중복제거를 위한 방법의 상호작용 다이어그램이다.
도 3은 실시예에 따른, 제1 스크린 애플리케이션과 하나 이상의 제2 스크린 애플리케이션들 사이의 세션을 확립하기 위한 방법의 상호작용 다이어그램이다.
도 4는 일 실시예에 따른, 도 1의 제2 스크린 애플리케이션의 상세도를 예시하는 블록 다이어그램이다.
도 5는 일 실시예에 따른, 디바이스 발견의 일부로서 디바이스 중복제거를 수행하는 프로세스를 예시하는 흐름도이다.
도 6은 일 실시예에 따른, 제1 스크린 애플리케이션과 제2 스크린 애플리케이션 사이의 세션을 확립하기 위한 프로세스를 예시하는 흐름도이다.
도 7은 도 1에 도시된 엔티티들을 구현하기 위한 예시적인 컴퓨터를 예시하는 블록 다이어그램이다.
도면들 및 하기 설명은 단지 예시로서 특정 실시예들을 설명한다. 본 기술분야의 통상의 기술자는 하기 설명으로부터 본 명세서에 예시된 구조들 및 방법들의 대안적인 실시예들이 본 명세서에서 설명된 원리들로부터 벗어남이 없이 채용될 수 있음을 쉽게 인식할 것이다. 이제 여러 실시예들에 대한 참조가 상세히 이루어질 것이고, 그 예들이 첨부 도면들에 예시된다. 실시가능하다면 어디든지 유사한 또는 동일한 참조 부호들이 도면들에 사용될 수 있고 유사한 또는 동일한 기능성을 나타낼 수 있다는 것에 유의한다.
도 1은 제1 스크린 디바이스(120)와의 클라이언트 디바이스(100, 105) 상호운용성을 용이하게 하기 위한 환경의 실시예를 예시하는 블록 다이어그램이다. 환경은 클라이언트 디바이스(100) 및 클라이언트 디바이스(105)를 포함하고, 이들 각각은 네트워크(110)에 의해 제1 스크린 디바이스(120) 및 제어 서버(130)에 커플링된다. 여기서, 2개의 클라이언트 디바이스들, 하나의 스크린 디바이스 및 하나의 제어 서버만이 예시되지만, 이들 엔티티들 각각의 다수의 인스턴스들이 있을 수 있다. 예를 들어, 하나 이상의 제어 서버들(130)과 통신하는 수천 또는 수백만의 클라이언트 디바이스들(100, 105) 및 제1 스크린 디바이스들(120)이 있을 수 있다.
네트워크(110)는 클라이언트 디바이스들(100, 105), 제1 스크린 디바이스들(120), 및 제어 서버들(130) 사이의 통신 인프라스트럭처를 제공한다. 네트워크(110)는 전형적으로 인터넷이지만, 근거리 네트워크(Local Area Network)(LAN), 도시권 네트워크(Metropolitan Area Network)(MAN), 광역 네트워크(Wide Area Network)(WAN), 모바일 유선 또는 무선 네트워크, 사설 네트워크, 또는 가상 사설 네트워크, 또는 이들의 일부 조합을 포함하지만 이에 제한되지 않는 임의의 네트워크일 수 있다. 예를 들어, 클라이언트 디바이스들(100, 105) 및 제1 스크린 디바이스(120)는, 예컨대, WIFI 커플링을 사용하여 서로 통신할 수 있고, 인터넷 커플링을 사용하여 제어 서버(130)와 통신할 수 있다.
제1 스크린 디바이스(120) 및 클라이언트 디바이스들(100, 105)은 비일시적 컴퓨터 판독가능 매체 상에 저장되는 컴퓨터 프로그램 모듈들 - 예컨대, 웹 브라우저 또는 다른 클라이언트 애플리케이션 - 을 실행하고 사용자로 하여금 미디어 콘텐츠를 뷰잉 및 소비하게 하는 컴퓨팅 디바이스들이다. 제1 스크린 디바이스(120) 및 클라이언트 디바이스들(100)은 컴퓨팅 디바이스들 예컨대 안드로이드® 또는 애플® IOS®와 같은 운영 체제를 갖는 스마트폰들, 태블릿 컴퓨터들, 랩톱 컴퓨터들, 데스크톱 컴퓨터들, 텔레비전들, 게임 콘솔들, 또는 디지털 콘텐츠가 사용자에게 제시될 수 있는 임의의 다른 타입의 네트워크 가능 디바이스이다. 설명의 용이를 위해, 여기서는 제한 없이 제1 스크린 디바이스(120)가 텔레비전인 것으로 가정한다. 전형적인 제1 스크린 디바이스들(120) 및/또는 클라이언트 디바이스들(100, 105)은 (예컨대, Wi-Fi 및/또는 4G 또는 다른 무선 전기통신 표준들을 통해) 네트워크(110)에 커플링하고 이미지들 및 사운드를 입력 및 출력하는데 필요한 하드웨어 및 소프트웨어(예컨대, 스피커들 및 마이크로폰)를 포함한다.
제1 스크린 디바이스(120) 및 클라이언트 디바이스들(100, 105)은 하나 이상의 커플링 프로토콜들을 사용하여 세션들을 확립하기 위해 서로 커플링한다. 커플링 프로토콜은 다른 로컬 디바이스들(예컨대, 클라이언트 디바이스들(100, 105) 및/또는 제1 스크린 디바이스들(120))을 발견하거나 및/또는 발견된 로컬 디바이스들에 커플링하여 세션에 참여(예컨대, 생성 및/또는 조인)하는 데 사용되는 메커니즘이다. 커플링 프로토콜들은, 예컨대, DIAL, CAST, 수동 페어링, AIRPLAY, SMARTGLASS, MIRACAST, (전형적으로 홈 네트워크 상의) 애플리케이션을 발견 및 개시하기 위한 일부 다른 메커니즘, 또는 이들의 일부 조합을 포함할 수 있다. 제1 스크린 디바이스(120) 및 클라이언트 디바이스들(100, 105)은 특정 타입들의 커플링 프로토콜들로 동작가능하고, 일부 경우들에 있어서 제1 스크린 디바이스(120) 및 클라이언트 디바이스들(100, 105)에서 동작가능한 커플링 프로토콜들의 타입들은 상이할 수 있다. 예를 들어, 제1 스크린 디바이스(120)는 DIAL 및 CAST로 동작가능할 수 있고, 클라이언트 디바이스(100)는 CAST로, 그리고 클라이언트 디바이스(105)는 DIAL로 동작가능할 수 있다.
제1 스크린 디바이스(120)는 커플링된 클라이언트 디바이스로부터 제어될 수 있는 제1 스크린 애플리케이션(140)을 포함한다. 예를 들어, 제1 스크린 애플리케이션(140)과의 세션에서 클라이언트 디바이스(100)를 동작시키는 사용자는, 클라이언트 디바이스(100)를 사용하여, 클라이언트 디바이스(100) 상에 제시된 콘텐츠가 제1 스크린 애플리케이션(140)에 의해서도 또한 제시되게 할 수 있다. 제1 스크린 애플리케이션(140)은 그것이 제1 스크린 디바이스(120)의 애플리케이션인 것으로서 식별하는 애플리케이션 식별자를 생성한다. 제1 스크린 애플리케이션(140)은 제1 스크린 디바이스(120) 상에 제1 스크린 애플리케이션(140)의 설치의 일부로서 애플리케이션 식별자를 생성할 수 있다. 애플리케이션 식별자는, 예를 들어, 난수 생성기, 디바이스 식별자의 해시, 제1 스크린 애플리케이션(140)을 모호하지 않게 식별하는 식별자를 생성하는 일부 다른 방법 등을 사용하여 생성될 수 있다. 발견 요청을 수신한 것에 응답하여, 제1 스크린 애플리케이션(140)은 애플리케이션 식별자 및 이용가능한 연결 프로토콜들을 요청 클라이언트 디바이스에 제공한다.
추가적으로, 클라이언트 디바이스와의 세션을 설정함에 있어서, 제1 스크린 애플리케이션(140)은 세션을 설명하는 그의 애플리케이션 상태 정보(예컨대, 세션 식별, 세션에 사용되는 커플링 프로토콜 등)를 제어 서버(130)에 등록한다. 클라이언트 디바이스(100, 105)는 추후에 제어 서버(130)로부터 제1 스크린 애플리케이션(140)의 애플리케이션 상태를 요청할 수 있고, 이 정보를 사용하여 제1 스크린 애플리케이션(140)과의 세션에 참여하는 선호되는 방법을 결정할 수 있다. 이에 따라, 기존 세션에서 동작불가능한 연결 프로토콜을 사용하여 그 기존 세션에 조인할 위험성이 제거된다.
클라이언트 디바이스(100)는 제2 스크린 애플리케이션(160)과 유사한 기능성을 갖는 제2 스크린 애플리케이션(150)을 포함한다. 제2 스크린 애플리케이션(150)은, 예를 들어, WIFI, 블루투스 등을 통해, 클라이언트 디바이스(100)에 커플링하기 위해 이용가능한 디바이스들을 발견한다. 발견 프로세스의 일부로서, 제2 스크린 애플리케이션(150)은 발견된 디바이스들의 임의의 이전 수동 페어링들을 설명하는 정보를 제어 서버(130)로부터 획득한다. 수동 페어링은, 사용자에 의해 수동으로 수행되었던, 발견된 디바이스와 제2 스크린 애플리케이션(150) 사이의 커플링이다. 예를 들어, 사용자는 2개의 디바이스들을 발견 모드에 배치시킨 다음에, 디바이스들 중 하나에 의해 제공된 패스코드를 다른 디바이스에 입력할 수 있는데, 이는 디바이스들이 페어링되게 한다. 제2 스크린 애플리케이션(150)은 발견된 디바이스들의 디바이스 리스트를 유지한다. 제2 스크린 애플리케이션(150)은 발견된 디바이스들에 관한 정보(예컨대, 애플리케이션 식별자들, 커플링 프로토콜들 등)로 디바이스 리스트를 업데이트한다. 제2 스크린 애플리케이션(150)은 또한 발견된 디바이스들의 임의의 이전 수동 페어링들을 설명하는 제어 서버(130)로부터의 정보로 디바이스 리스트를 업데이트한다. 종종, 제1 스크린 애플리케이션(140)은 다수의 커플링 프로토콜들 및/또는 수동 페어링들과 연관될 수 있다(즉, 이들에 의해 발견가능할 수 있다). 업데이트된 디바이스 리스트는 이들 커플링 프로토콜들 및 수동 페어링들 각각에 대한 엔트리를 보여준다 - 이는 동일한 제1 스크린 애플리케이션(140)에 대해 업데이트된 디바이스 리스트에 다수의 엔트리들을 발생시킴 -. 제2 스크린 애플리케이션(150)은, 예를 들어 애플리케이션 식별자에 의해 디바이스 리스트 내의 엔트리들을 수집한 다음에, 각각의 애플리케이션 식별자에 대해, 제2 스크린 애플리케이션(150)과 인터페이싱하는 데 사용되는 세션 인터페이스에 단일 디바이스 엔트리를 생성함으로써, 업데이트된 디바이스 리스트에 대해 중복제거를 수행한다. 일부 실시예들에서, 사용자는 클라이언트 디바이스(100)에게 세션을 확립하도록 및/또는 제1 스크린 애플리케이션(140)과의 기존 세션에 조인하도록 요청하기 위해 이 엔트리를 선택하는 것이 가능하다.
세션 인터페이스는 사용자가 제2 스크린 애플리케이션(150)과 인터페이싱하는 데 사용하는 그래픽 사용자 인터페이스이다. 예를 들어, 사용자는 제2 스크린 애플리케이션(150)에게 세션 인터페이스를 사용하여 다른 디바이스들을 발견하는 것, 특정 제1 스크린 디바이스(120)에 커플링하는 것 등을 하라고 명령할 수 있다. 제2 스크린 애플리케이션(150)은 (예컨대, 세션 인터페이스를 통해) 발견된 디바이스들 및/또는 이들 디바이스들 상에서 동작하는 애플리케이션들의 리스팅을 제시한다. 발견된 디바이스들의 리스팅은 디바이스 리스트의 중복제거에 의해 생성된 엔트리들을 사용하여 생성된다. 이에 따라, 리스팅 내의 각각의 엔트리는 특정 디바이스에서 동작하는 특정 애플리케이션에 대응한다.
제2 스크린 애플리케이션(150)은 선택과 연관된 제1 스크린 디바이스(120)와의 세션에 참가하고자 하는 요구를 나타내는 그 선택을 사용자로부터 수신한다. 예를 들어, 사용자는 제1 스크린 디바이스(120) 상에서 동작하는 제1 스크린 애플리케이션(140)에 대응하는 엔트리를 발견된 디바이스들의 리스팅에서 선택할 수 있다. 제2 스크린 애플리케이션(150)은 디바이스가 이미 기존 세션에 있는지, 그리고 그렇다면, 기존 세션과 연관된 커플링 프로토콜이 무엇인지를 결정하기 위해 제어 서버(130)에 질의한다. 제2 스크린 애플리케이션(150)은 제1 스크린 디바이스(120)가 기존 세션에 있는지 여부 그리고 클라이언트 디바이스(100) 및 제1 스크린 디바이스(120)에 이용가능한 커플링 프로토콜들에 기초하여 클라이언트 디바이스(100)를 제1 스크린 디바이스(120)에 커플링하기 위한 커플링 방법론을 결정한다. 연결 방법론은, 예컨대, 제1 스크린 애플리케이션(140)에 대한 직접 커플링 또는 제어 서버(130)를 통한 제1 스크린 애플리케이션(140)에 대한 간접 커플링일 수 있다. 그 다음에, 제2 스크린 애플리케이션(150)은 결정된 커플링 방법론에 기초하여 제1 스크린 애플리케이션(140)에 커플링한다. 일단 제1 스크린 애플리케이션(140)에 커플링된다면, 제2 스크린 애플리케이션(150)의 사용자는 제1 스크린 애플리케이션(150)에 의해 제시된 콘텐츠에 대해 어떤 제어를 갖는 것이 가능하다. 예를 들어, 사용자는 제2 스크린 애플리케이션(150)에 의해 제시되고 있는 비디오가 제1 스크린 애플리케이션(140)에 의해서도 또한 제시되게 할 수 있다.
제어 서버(130)는 제1 스크린 애플리케이션들 및 클라이언트 디바이스들에 관한 정보를 유지한다. 유지된 정보는, 예컨대, 페어링 정보 및 애플리케이션 상태를 포함한다. 페어링 정보는 제1 스크린 애플리케이션(140)과 수동으로 페어링되는 임의의 디바이스들(예컨대, 클라이언트 디바이스들(100, 105))을 설명한다. 수동 페어링은 사용자가 제2 스크린 애플리케이션과 제1 스크린 애플리케이션(140) 사이의 커플링을 수동으로 확립할 때 발생한다. 제어 서버(130)는, 예컨대, 제2 스크린 애플리케이션들(150, 160) 및/또는 제1 스크린 애플리케이션들(140)로부터 페어링 정보를 수신할 수 있고, 그 다음에 제어 서버(130)는 수신된 페어링 정보로 데이터베이스를 업데이트한다. 애플리케이션 상태는 제1 스크린 애플리케이션(140)이 기존 세션에 있는지 여부, 그리고 그렇다면, 기존 세션에 어떤 커플링 프로토콜이 사용되고 있는지를 설명한다. 제어 서버(130)는 제1 스크린 애플리케이션(140)으로부터 애플리케이션 상태 정보를 수신한 다음에, 제어 서버(130)는 수신된 정보로 데이터베이스를 업데이트한다. 제2 스크린 애플리케이션(예컨대, 제2 스크린 애플리케이션(150))으로부터 요청을 수신한 것에 응답하여, 제어 서버(130)는 제2 스크린 애플리케이션들(150, 160)에 페어링 정보, 애플리케이션 상태 정보, 또는 양쪽 모두를 제공한다.
일부 실시예들에서, 제어 서버(130)는 세션에 참여하기 위한 제1 스크린 애플리케이션(140)에 제2 스크린 애플리케이션(150)을 간접적으로 커플링시킨다. 상술된 바와 같이, 제1 스크린 디바이스(120)는 제한된 세트의 커플링 프로토콜들과의 상호운용성을 갖는다. 클라이언트 디바이스(100)가 제1 스크린 디바이스(120)에 대해 작동하는 동일한 커플링 프로토콜들 중 적어도 하나와 동작가능하지 않은 경우들에 있어서, 클라이언트 디바이스(100)는 제어 서버(130)를 통해 제1 스크린 디바이스(120)에 간접적으로 커플링할 수 있다. 이 경우, 클라이언트 디바이스(100)는 클라이언트 디바이스(100)와 제어 서버(130) 양쪽 모두에 이용가능한 커플링 프로토콜을 사용하여 제어 서버(130)와 통신하고, 제어 서버(130)는 제1 스크린 애플리케이션(140)과 제어 서버(130) 양쪽 모두에 이용가능한 상이한 커플링 프로토콜을 사용하여 제1 스크린 애플리케이션(140)과 통신한다. 실제로, 제어 서버(130)는 클라이언트 디바이스(100)로부터의 통신들을 제어 서버(130)에 의해 수용가능한 포맷으로 변환하고, 그 반대의 경우도 마찬가지이다. 이에 따라, 제1 스크린 디바이스(120)와 다른 클라이언트 디바이스(예컨대, 클라이언트 디바이스(105)) 사이의 기존 세션에 사용되는 특정 커플링 프로토콜로 동작가능하지 않은 클라이언트 디바이스(100)는, 특정 커플링 프로토콜을 사용하는 제어 서버(130)를 통해 간접적으로 세션에 조인하는 것이 가능하다. 이러한 방식으로 기존 세션에 조인하면 클라이언트 디바이스(100)로 하여금 세션의 중단 없이 세션에 조인하게 한다. 예를 들어, 세션에 현재 사용되고 있는 것과는 상이한 커플링 프로토콜을 사용하여 세션에 조인하려고 시도하면 현재 세션을 실패하게 하거나, 상이한 커플링 프로토콜을 사용하여 재시작하게 하는 것 등으로 될 수 있다.
도 2는 발견 프로세스를 더 상세히 도시하는 상호작용 다이어그램으로, 구체적으로는, 도 2는 제1 스크린 디바이스의 발견 및 중복제거를 위한 방법의 일 실시예의 상호작용 다이어그램이다. 다양한 실시예들에서, 방법은 도 2와 관련하여 설명된 단계들과는 상이한 및/또는 추가적인 단계들을 포함할 수 있다. 추가적으로, 일부 실시예들에서, 단계들은 도 2와 관련하여 설명된 순서와는 상이한 순서로 수행될 수 있다.
제1 스크린 디바이스(120) 상에서 동작하는 제1 스크린 애플리케이션(140)은 제1 스크린 애플리케이션(140)에 고유한 애플리케이션 식별자를 생성한다(205). 제1 스크린 애플리케이션(140)은 애플리케이션 식별자를 다른 요청 애플리케이션들에게 발견가능하게 만든다(210).
제2 스크린 애플리케이션(150)은 발견 요청을 제1 스크린 애플리케이션(140)에 전송한다(215). 제2 스크린 애플리케이션(150)은 발견 요청을, 예를 들어, 근거리 네트워크를 통해 그 네트워크 상의 디바이스들로 전송할 수 있다. 발견 요청을 수신한 것에 응답하여, 제1 스크린 애플리케이션(140)은 제2 스크린 애플리케이션(150)에 발견 정보를 제공한다(220). 발견 정보는 클라이언트 디바이스(예컨대, 100, 105)가 어떻게 제1 스크린 애플리케이션(140)에 커플링할 수 있는지를 설명하는 정보이다. 발견 정보는, 예컨대, 제1 스크린 애플리케이션(140)과의 세션을 확립하는 데 사용될 수 있는 커플링 프로토콜들의 리스팅 및 애플리케이션 식별자 등을 포함한다.
제2 스크린 애플리케이션(150)은 수신된 발견 정보를 사용하여 디바이스 리스트를 업데이트한다. 디바이스 리스트는 제2 스크린 애플리케이션(150)이 발견한 디바이스들의 리스팅이다. 제2 스크린 애플리케이션(150)은 발견 정보와 연관된 모든 커플링 프로토콜에 대한 엔트리를 디바이스 리스트에 추가한다. 이에 따라, 단일 애플리케이션 식별자에 대해 다수의 엔트리들이 있을 수 있다. 예를 들어, 발견 정보가 애플리케이션 식별자 X 및 커플링 프로토콜들 DIAL 및 CAST를 포함한 경우, 디바이스 리스트는 제1 스크린 애플리케이션(140)에 대해 2개의 엔트리들을 포함할 것이다(예컨대, [애플리케이션 식별자 X: DIAL; 애플리케이션 식별자 X: CAST]).
제2 스크린 애플리케이션(150)은 제어 서버(130)로부터 제1 스크린 애플리케이션(140)에 대한 페어링 정보를 요청한다(230). 페어링 정보에 대한 요청은 제1 스크린 애플리케이션(140)에 대한 애플리케이션 식별자를 포함한다. 페어링 정보는 제1 스크린 애플리케이션(140)이 수동으로 페어링되었을 수 있는 임의의 디바이스들(예컨대, 클라이언트 디바이스들(105))을 설명하는 정보이다. 페어링 정보에 대한 요청은 애플리케이션 식별자를 포함한다. 제어 서버(130)는 애플리케이션 식별자를 사용하여 페어링 정보를 검색한다(235). 예를 들어, 제어 서버(130)는 다양한 제1 스크린 애플리케이션들에 대한 수동 페어링들의 리스팅을 저장하는 데이터베이스에 액세스할 수 있고, 관심있는 제1 스크린 애플리케이션과 연관된 애플리케이션 식별자를 사용하여 제1 스크린 애플리케이션과 이전에 페어링되었던 클라이언트 디바이스들의 특정 리스팅을 검색할 수 있다. 제어 서버(130)는 제2 스크린 애플리케이션(150)에 페어링 정보를 제공한다(240).
제2 스크린 애플리케이션(150)은 페어링 정보를 사용하여 디바이스 리스트를 업데이트한다(245). 제2 스크린 애플리케이션(150)은 페어링 정보에 리스팅된 모든 이전 수동 페어링에 대한 엔트리를 디바이스 리스트에 추가한다. 이에 따라, 단일 애플리케이션 식별자에 대해 다수의 엔트리들이 있을 수 있다. 따라서, 디바이스 리스트는, 특정 커플링 프로토콜들 및/또는 수동 페어링들에 대응하는, 단일 애플리케이션 식별자에 대한 다수의 엔트리들을 포함할 수 있다.
제2 스크린 애플리케이션(150)은 디바이스 리스트 내의 아이템들의 중복제거를 수행한다(250). 제2 스크린 애플리케이션(150)은 애플리케이션 식별자에 의해 디바이스 리스트 내의 엔트리들을 수집한 다음에, 애플리케이션 식별자와 연관되는 커플링 프로토콜들 및/또는 수동 페어링들에 맵핑되는 단일 디바이스 엔트리를 세션 인터페이스에 생성한다. 세션 인터페이스는 클라이언트 디바이스가 다른 디바이스들(예컨대, 제1 스크린 디바이스(130)) 상에서 동작하는 애플리케이션들과의 세션을 발견 및/또는 확립할 수 있게 하는 그래픽 사용자 인터페이스이다.
제2 스크린 애플리케이션(150)은 디바이스 엔트리를 포함하는 세션 인터페이스를 제시한다(255). 세션 인터페이스는, 발견되었고 세션을 확립하기 위해 이용가능한 각각의 디바이스(예컨대, 제1 스크린 디바이스(130))에 대한 단일 디바이스 엔트리를 제시한다. 예를 들어, 3개의 상이한 텔레비전들이 발견되었고 세션을 확립하기 위해 이용가능한 경우, 3개의 디바이스 엔트리들만이, 즉, 각각의 텔레비전에 대해 하나의 디바이스 엔트리가 있을 것이다. 일부 실시예들에서, 디바이스 엔트리의 선택은 세션 인터페이스로 하여금 제1 스크린 애플리케이션(140)에 커플링하기 위한 제2 스크린 애플리케이션(150)에 대한 상이한 옵션들을 제시하게 한다. 예를 들어, 제1 스크린 애플리케이션(140)에 대한 디바이스 엔트리의 선택은 세션 인터페이스로 하여금 제1 스크린 애플리케이션(140)에 커플링하기 위해 이용가능한 프로토콜들의 리스팅을 제시하게 할 수 있다.
이제 디바이스들 사이의 세션들을 확립하는 논의로 돌아가면, 도 3은 제1 스크린 애플리케이션과 하나 이상의 제2 스크린 애플리케이션들 사이의 세션을 확립하기 위한 방법의 일 실시예의 상호작용 다이어그램이다. 다양한 실시예들에서, 방법은 도 3과 관련하여 설명된 단계들과는 상이한 및/또는 추가적인 단계들을 포함할 수 있다. 추가적으로, 일부 실시예들에서, 단계들은 도 3과 관련하여 설명된 순서와는 상이한 순서로 수행될 수 있다.
제2 스크린 디바이스(105) 상의 제2 스크린 애플리케이션(160)은 제2 스크린 디바이스(105)에 대해 로컬인 발견된 디바이스들을 제시한다(305). 예를 들어, 제2 스크린 애플리케이션(160)은 각각의 발견된 디바이스에 대한 단일 디바이스 엔트리를 보여주는 세션 인터페이스를 제시할 수 있다. 디바이스 엔트리들의 리스팅은 도 2를 참조하여 상술된 프로세스를 사용하여 생성될 수 있다. 제2 스크린 애플리케이션(160)은 제1 스크린 애플리케이션(140)과 연관되는 디바이스 엔트리의 선택을 수신한다(310). 예를 들어, 사용자는 제1 스크린 디바이스(120)에 대한 디바이스 엔트리를 선택할 수 있고, 제1 스크린 애플리케이션(140)은 제1 스크린 디바이스(120) 상에서 동작하는 애플리케이션이다.
제2 스크린 애플리케이션(160)은 제어 서버(130)로부터 제1 스크린 애플리케이션(140)과 연관된 애플리케이션 상태 정보를 요청한다(315). 애플리케이션 상태 정보에 대한 요청은 제1 스크린 애플리케이션(140)과 연관된 애플리케이션 식별자를 포함한다. 제어 서버(130)는 애플리케이션 식별자를 사용하여 데이터베이스로부터 애플리케이션 상태 정보를 검색한다. 데이터베이스는 제1 스크린 애플리케이션이 기존 세션에 있는지 여부, 그리고 그렇다면, 기존 세션에 어떤 커플링 프로토콜이 사용되고 있는지를 설명하는 애플리케이션 상태 정보를 유지한다. 제어 서버(130)는 제1 스크린 애플리케이션(140)에 대한 애플리케이션 상태를 제2 스크린 애플리케이션(160)에 제공한다(320).
제2 스크린 애플리케이션(160)은 수신된 애플리케이션 상태 정보를 사용하여 일부 다른 클라이언트 디바이스와의 기존 세션이 있는지 여부를 결정한다(325). 기존 세션이 없는 경우, 제2 스크린 애플리케이션(160)은 제1 스크린 애플리케이션(140)과의 세션을 확립한다(330).
일부 경우들에 있어서, 제1 스크린 디바이스(120)에 의해 지원되는 다수의 커플링 프로토콜들이 있을 수 있는데, 이 커플링 프로토콜들은 클라이언트 디바이스(105)에 의해서도 또한 지원된다. 일부 실시예들에서, 제2 스크린 애플리케이션(160)은 등급화된 커플링 프로토콜들의 테이블을 포함한다. 일부 실시예들에서, 커플링 프로토콜들은 제2 스크린 애플리케이션(160)의 관리자에 의해 등급화된다. 관리자는 임의의 순서로 커플링 프로토콜들을 등급화할 수 있다. 일부 실시예들에서, 커플링 프로토콜들은 커플링 프로토콜들이 사용자에게 제공하는 세션에 대한 제어량에 의해 등급화될 수 있다. 예를 들어, CAST가 DIAL보다 더 큰 볼륨 조정 제어를 제공하므로, 테이블은 CAST를 DIAL보다 더 높이 등급화할 것이다. 일부 실시예들에서, 제2 스크린 애플리케이션(160)은 클라이언트 디바이스(105)와 제1 스크린 디바이스(120) 양쪽 모두에 이용가능한 테이블 내의 가장 높은 등급화 커플링 프로토콜(CAST)인 선호되는 커플링 프로토콜을 선택한다. 다른 실시예들에서, 제2 스크린 애플리케이션(160)은 세션을 확립하는 데 사용되는 커플링 프로토콜을 선택하도록 사용자에게 프롬프트할 수 있다.
세션을 확립함에 있어서의 단계들은 일반적으로 커플링 프로토콜 특정적이지만, 선택된 커플링 프로토콜에 관계없이, 제1 스크린 애플리케이션(140)은 제1 스크린 애플리케이션(140)이 제2 스크린 애플리케이션(160)과의 세션에 있음 그리고 세션이 특정 커플링 프로토콜을 사용하여 시작되었음을 나타내는 애플리케이션 상태 정보를 제어 서버(130)에 제공한다(335). 그 다음에, 제어 서버(130)는 수신된 애플리케이션 상태 정보로 제1 스크린 애플리케이션(120)과 연관된 애플리케이션 상태 정보를 업데이트한다(340). 예를 들어, 제어 서버(130)는 수신된 애플리케이션 상태 정보로 제1 스크린 애플리케이션(140)의 애플리케이션 식별자와 연관된 데이터베이스 엔트리를 업데이트할 수 있다.
일부 실시예들에서, 제2 스크린 애플리케이션(160)은 제어 서버(130)로부터의 애플리케이션 상태 정보를 사용하여 커플링 프로토콜을 통한 일부 다른 클라이언트 디바이스(예컨대, 제2 스크린 애플리케이션(150))와의 기존 세션(345)이 있다는 것을 결정한다. 제2 스크린 디바이스(160)는 커플링 프로토콜이 클라이언트 디바이스(105)에도 또한 이용가능한지(즉, 커플링 프로토콜이 클라이언트 디바이스(100)에 의해 지원되는지) 여부를 결정한다(350). 커플링 프로토콜이 지원되는 실시예들에서, 제2 스크린 애플리케이션(150)은 커플링 프로토콜을 사용하여 제1 스크린 애플리케이션(140)에 커플링한다(355). 제1 스크린 애플리케이션(140)에 대한 커플링이 기존 세션(345)에 사용되는 것과 동일한 프로토콜을 사용하므로, 제2 스크린 애플리케이션(150)은 기존 세션(345)을 중단시킴(예를 들어, 실패를 초래함, 세션을 재시작하게 함 등) 없이 기존 세션(345)에 커플링하는 것이 가능하다(355).
커플링 프로토콜이 이용가능하지 않은(즉, 클라이언트 디바이스(100)에 의해 지원되지 않는) 일부 실시예들에서, 제2 스크린 애플리케이션(150)은 제어 서버(130)를 통해 세션에 커플링한다. 제어 서버(130)에 대한 커플링(360)은 클라이언트 디바이스(100)에 의해 지원되는 일부 다른 프로토콜을 통한 것이다. 그 다음에, 제어 서버(130)는 기존 세션(345)에 사용되는 커플링 프로토콜을 사용하여 제1 스크린 애플리케이션에 커플링한다. 제어 서버(130)가 기존 세션에 대한 커플링 프로토콜을 사용하여 그 기존 세션(345)에 커플링하고 있으므로, 제어 서버(130)는, 제어 서버(130)를 통해, 중단 없이 제2 스크린 애플리케이션(150)을 기존 세션에 효과적으로 조인하는 것이 가능하다.
일부 경우들(도 3에 도시되지 않음)에 있어서, 제1 스크린 애플리케이션(140)과 다른 클라이언트 디바이스 사이에 기존 세션들이 없고, 클라이언트 디바이스(105)에 이용가능한 커플링 프로토콜들은 제1 스크린 디바이스(120)에 이용가능한 커플링 프로토콜들과는 상이하다. 이에 따라, 클라이언트 디바이스(105)는 제1 스크린 애플리케이션(140)에 직접 커플링하는 것 그리고 그와의 세션을 확립하는 것이 가능하지 않다. 일부 실시예들에서, 클라이언트 디바이스(105)는 제어 서버(130)를 통해 간접적으로 제1 스크린 애플리케이션(140)에 커플링한다. 예를 들어, 클라이언트 디바이스(105)는 클라이언트 디바이스(105) 및 제어 서버(130)에 이용가능한 커플링 프로토콜을 사용하여 제어 서버(130)와 통신하고, 제어 서버(130)는 클라이언트 디바이스(105)로부터 수신된 정보를, 제1 스크린 디바이스에 의해 지원되는 커플링 프로토콜과 호환가능한 포맷으로 변환하고, 커플링 프로토콜을 사용하여 제1 스크린 애플리케이션과 통신한다.
이제 제2 스크린 애플리케이션(150)의 구조의 논의로 돌아가면, 도 4는 일 실시예에 따른, 제2 스크린 애플리케이션(150) 내의 모듈들의 상세도를 예시하는 블록 다이어그램이다. 제2 스크린 애플리케이션(150)의 일부 실시예들은 여기에 설명된 것들과는 상이한 모듈들을 갖는다. 유사하게, 기능들은 여기에 설명된 것과는 상이한 방식으로 모듈들 간에 분산될 수 있다. 제2 스크린 애플리케이션(150)은 디바이스 데이터베이스(410), 발견 모듈(420), 중복제거 모듈(430), 인터페이스 모듈(440), 및 커플링 모듈(450)을 포함하는 모듈들로 구성된다. 더욱이, 하기의 논의가 제2 스크린 애플리케이션(150)의 맥락 내에 있지만, 제2 스크린 애플리케이션(160)에도 또한 동일하게 적용된다.
디바이스 데이터베이스(410)는 제1 스크린 디바이스들(120) 상의 제1 스크린 애플리케이션들(140)과의 발견 및 세션 참여에 관한 정보를 저장한다. 발견 및 세션 참여에 관한 정보는 디바이스 리스트를 포함한다. 디바이스 리스트는 발견되었던 디바이스들(예컨대, 클라이언트 디바이스들 및/또는 제1 스크린 디바이스들(120))과 연관된 정보의 리스팅이다. 디바이스 리스트 내의 각각의 디바이스와 연관된 정보는, 예컨대, 디바이스 상에서 동작하는 특정 애플리케이션에 대한 애플리케이션 식별자, 디바이스와 호환가능한 커플링 프로토콜들, 페어링 정보, 또는 이들의 일부 조합을 포함할 수 있다.
발견 모듈(420)은 제2 스크린 애플리케이션(150)에 대한 발견 동작들을 수행한다. 발견 모듈(420)은 발견을 위해 로컬로 이용가능한 디바이스들(예컨대, 제1 스크린 디바이스들(120) 및/또는 다른 클라이언트 디바이스들)을 식별하라는 발견 요청들을 (예컨대, WIFI, 블루투스 등을 통해) 로컬 디바이스들에 전송한다. 발견 모듈(420)은 임의의 발견된 제1 스크린 디바이스들(120)로부터 발견 정보를 수신한다. 발견 정보는 발견된 제1 스크린 애플리케이션(140)에 대한 애플리케이션 식별자, 및 제1 스크린 애플리케이션(140)과의 세션을 확립하는 데 사용될 수 있는 커플링 프로토콜들 양쪽 모두를 포함한다.
발견 모듈(420)은 수신된 발견 정보로 디바이스 리스트를 업데이트한다. 발견 모듈(420)은 발견 정보와 연관된 모든 커플링 프로토콜에 대한 엔트리를 디바이스 리스트에 추가한다. 이에 따라, 단일 애플리케이션 식별자에 대해 다수의 엔트리들이 있을 수 있다(예컨대, [애플리케이션 식별자 X: DIAL; 애플리케이션 식별자 X: CAST...]).
발견 모듈(420)은 발견된 제1 스크린 디바이스들(120)과 연관된 페어링 정보를 제어 서버(130)로부터 획득한다. 페어링 정보는 제1 스크린 애플리케이션(140)이 수동으로 페어링되었을 수 있는 임의의 클라이언트 디바이스들을 설명하는 정보이다. 발견 모듈(420)은 제어 서버(130)로부터 수신된 페어링 정보로 디바이스 리스트를 업데이트한다. 발견 모듈(420)은 페어링 정보에서 식별된 모든 수동 페어링에 대한 엔트리를 디바이스 리스트에 추가한다. 따라서, 단일 애플리케이션 식별자에 대해 커플링 프로토콜들 및/또는 수동 페어링들 양쪽 모두에 대한 다수의 엔트리들이 있을 수 있다(예컨대, [애플리케이션 식별자 X: DIAL; 애플리케이션 식별자 X: CAST; 애플리케이션 식별자 X: 클라이언트 디바이스 1에 대한 수동 페어링; 애플리케이션 식별자 X: 클라이언트 디바이스 2에 대한 수동 페어링; ...]).
추가적으로, 일부 실시예들에서, 발견 모듈(420)은 클라이언트 디바이스(100)에 고유한 식별자를 생성할 수 있다. 일부 다른 클라이언트 디바이스(예컨대, 클라이언트 디바이스(105))로부터 발견 요청을 수신한 것에 응답하여, 발견 모듈(420)은 클라이언트 디바이스(100)에 커플링하기 위해 이용가능한 커플링 프로토콜들의 리스팅 및 식별자를 요청 클라이언트 디바이스에 제공한다.
중복제거 모듈(430)은 업데이트된 디바이스 리스트를 사용하여 디바이스 중복제거를 수행한다. 중복제거 모듈(430)은 애플리케이션 식별자에 의해 업데이트된 디바이스 리스트 내의 엔트리들을 수집한 다음에, 애플리케이션 식별자와 연관되는 커플링 프로토콜들 및/또는 수동 페어링들에 맵핑되는 단일 디바이스 엔트리를 세션 인터페이스에 대해 생성한다.
인터페이스 모듈(440)은 하나 이상의 디바이스 엔트리들을 사용하여 세션 인터페이스를 생성한다. 세션 인터페이스는 클라이언트 디바이스(100)가 다른 디바이스들(예컨대, 제1 스크린 디바이스(130)) 상에서 동작하는 애플리케이션들과의 세션을 발견 및/또는 확립할 수 있게 하는 그래픽 사용자 인터페이스이다. 세션 인터페이스는 디바이스 엔트리들 중 하나 이상을 클라이언트 디바이스(100)의 사용자에게 제시한다. 각각의 디바이스 엔트리는 단일의 제1 스크린 디바이스(120)와 연관된다. 일부 실시예들에서, 디바이스 엔트리는 대안적으로 일부 다른 클라이언트 디바이스(예컨대, 클라이언트 디바이스(105))와 연관될 수 있다.
특정 디바이스(예컨대, 제1 스크린 디바이스(120))에 대한 디바이스 엔트리의 선택을 수신한 것에 응답하여, 커플링 모듈(350)은 선택된 디바이스와 연관된 애플리케이션의 애플리케이션 상태를 획득한다. 예를 들어, 커플링 모듈(350)은 선택된 제1 스크린 디바이스(120) 상에서 동작하는 제1 스크린 애플리케이션(140)에 대한 애플리케이션 상태 정보를 제어 서버(130)로부터 획득할 수 있다. 애플리케이션 상태 정보는 제1 스크린 애플리케이션이 기존 세션에 있는지 여부, 그리고 그렇다면, 기존 세션에 어떤 커플링 프로토콜이 사용되고 있는지를 설명하는 정보이다.
커플링 모듈(450)은 클라이언트 디바이스(100)에 이용가능한 커플링 프로토콜들 및 수신된 애플리케이션 상태 정보를 사용하여 커플링 방법론을 결정한다. 예를 들어, 애플리케이션 상태 정보가 기존 세션이 없음을 나타내는 경우, 커플링 모듈(450)은 선호되는 프로토콜을 사용하여 제1 스크린 애플리케이션(140)과의 세션을 확립할 수 있다. 일부 실시예들에서, 선호되는 프로토콜은 클라이언트 디바이스(100)의 사용자에 의해 선택된 커플링 프로토콜이다. 대안적인 실시예들에서, 커플링 모듈(450)은 제1 스크린 디바이스(120)와 클라이언트 디바이스(100) 양쪽 모두에 이용가능한 어떤 커플링 프로토콜이 클라이언트 디바이스(100)의 사용자에게 가장 많은 제어를 제공하는지에 기초하여 선호되는 커플링 프로토콜을 선택한다. 예를 들어, DIAL 및 CAST가 이용가능한 커플링 프로토콜들이라고 가정하면, 커플링 모듈(450)은 CAST를 커플링 프로토콜로서 선택할 수 있는데, 이는 그것이 DIAL 커플링 프로토콜보다 추가적인 볼륨 조정 제어를 제공할 것이기 때문이다. 추가적으로, 기존 세션들이 없고 클라이언트 디바이스(105)에 이용가능한 커플링 프로토콜들이 제1 스크린 디바이스(120)에 이용가능한 커플링 프로토콜들과는 상이한 실시예들에서, 커플링 모듈(450)은 제어 서버(130)를 통해 간접적으로 제1 스크린 애플리케이션(140)에 커플링한다.
제1 스크린 디바이스(120)가 특정 커플링 프로토콜을 사용하는 다른 클라이언트 디바이스(예컨대, 클라이언트 디바이스(105))와의 기존 세션에 있음을 애플리케이션 상태 정보가 나타내는 실시예들에서, 커플링 모듈(450)은 특정 커플링 프로토콜이 클라이언트 디바이스(100)에도 또한 이용가능한지(즉, 커플링 프로토콜이 클라이언트 디바이스(100)에 의해 지원되는지) 여부를 결정한다. 커플링 프로토콜이 지원되는 경우, 커플링 모듈(450)은 특정 커플링 프로토콜을 사용하여 제1 스크린 애플리케이션(140)에 커플링한다. 특정 커플링 프로토콜이 이용가능하지 않은(즉, 클라이언트 디바이스(100)에 의해 지원되지 않는) 경우, 커플링 프로토콜은 제어 서버(130)를 통해 세션에 커플링한다. 이 경우, 클라이언트 디바이스(100)가 클라이언트 디바이스(100)에 의해 지원되는 프로토콜을 사용하여 제어 서버(130)에 커플링한다는 의미로, 세션에 대한 커플링은 간접적이며, 제어 서버(130)는 그 다음에 특정 커플링 프로토콜을 사용하여 세션에 커플링한다. 어느 경우든, 클라이언트 디바이스(100)는 기존 세션에 사용되고 있는 특정 커플링 프로토콜을 통해 기존 세션에 조인하고 있다. 이에 따라, 클라이언트 디바이스(100)는 중단 없이 기존 세션에 효과적으로 조인하는 것이 가능한데, 그 중단은 이와 달리, 기존 세션에 사용되고 있는 커플링 프로토콜과의 커플링 프로토콜 차이를 이용하여 기존 세션에 대한 커플링이 시도된 경우 발생할 수 있다.
도 5는 일 실시예에 따른, 디바이스 발견의 일부로서 디바이스 중복제거를 수행하는 프로세스를 예시하는 흐름도이다. 일 실시예에서, 도 5의 프로세스는 클라이언트 디바이스(100)에 의해 수행된다. 다른 실시예들에서 다른 엔티티들은 프로세스의 단계들의 일부 또는 전부를 수행할 수 있다. 마찬가지로, 실시예들은 상이한 및/또는 추가적인 단계들을 포함할 수 있거나, 또는 단계들을 상이한 순서들로 수행할 수 있다.
클라이언트 디바이스(100)는 제1 스크린 디바이스(120) 상에서 동작하는 제1 스크린 애플리케이션(140) 및 제1 스크린 디바이스(120)에 커플링하기 위한 이용가능한 커플링 프로토콜들을 발견한다(510). 예를 들어, 클라이언트 디바이스(100)는, 예컨대, 블루투스, WIFI 등을 통해 하나 이상의 발견 요청들을 전송할 수 있다. 발견된 제1 스크린 디바이스(120)는 제1 스크린 디바이스(120)에 의해 지원되는 이용가능한 커플링 프로토콜들 및 애플리케이션 식별자를 포함하는 발견 정보를 클라이언트 디바이스(100)에 제공한다.
클라이언트 디바이스(100)는 제1 스크린 디바이스(120) 및 이용가능한 커플링 프로토콜들과 연관된 정보(예컨대, 발견 정보의 일부 또는 전부)를 사용하여 디바이스 리스트를 업데이트한다(520). 클라이언트 디바이스(100)는 각각의 커플링 프로토콜에 대한 엔트리를 디바이스 리스트에 추가하여, 각각의 엔트리가 또한 애플리케이션 식별자와 연관되도록 한다. 이에 따라, 단일 애플리케이션 식별자에 대해 다수의 엔트리들이 있을 수 있다(예컨대, [애플리케이션 식별자 X: DIAL; 애플리케이션 식별자 X: CAST]).
클라이언트 디바이스(100)는 제1 스크린 디바이스(120)에 대한 페어링 정보를 제어 서버(130)로부터 획득한다(530). 예를 들어, 클라이언트 디바이스(100)는 제어 서버(130)로부터 제1 스크린 애플리케이션(140) 및/또는 제1 스크린 디바이스(120)와 연관된 페어링 정보를 요청할 수 있다. 제어 서버(130)로부터 수신된 페어링 정보는 제1 스크린 애플리케이션(140)이 수동으로 페어링되었을 수 있는 임의의 디바이스들(예컨대, 클라이언트 디바이스들(105))을 설명한다. 클라이언트 디바이스(100)는 페어링 정보를 사용하여 디바이스 리스트를 업데이트한다(540). 클라이언트 디바이스(100)가 수동 페어링과 연관되는 모든 애플리케이션 식별자에 대한 엔트리를 디바이스 리스트에 추가함에 따라, 단일 애플리케이션 식별자에 대해 다수의 엔트리들이 있을 수 있다. 예를 들어, 디바이스 리스트는 동일한 애플리케이션 식별자와 연관된 커플링 프로토콜들과 수동 페어링들 양쪽 모두에 대한 엔트리들을 포함할 수 있다(예컨대, [애플리케이션 식별자 X: DIAL; 애플리케이션 식별자 X: CAST; 애플리케이션 식별자 X: 디바이스 1에 대한 수동 페어링; 애플리케이션 식별자 X: 디바이스 2에 대한 수동 페어링; ...]).
클라이언트 디바이스(100)는 업데이트된 디바이스 리스트를 사용하여 디바이스 중복제거를 수행한다(540). 클라이언트 디바이스(100)는 애플리케이션 식별자에 의해 디바이스 리스트 내의 엔트리들을 수집한 다음에, 애플리케이션 식별자와 연관되는 커플링 프로토콜들에 맵핑되는 단일 디바이스 엔트리를 세션 인터페이스에 생성한다. 클라이언트 디바이스(100)는, 이전에 발견되었던 임의의 다른 디바이스 엔트리들과 함께, 제1 스크린 디바이스(120)에 대한 단일 디바이스 엔트리를 포함하는 세션 인터페이스를 사용자에게 제시한다. 이에 따라, 세션 인터페이스에 의해 제시된 리스팅 디바이스 엔트리들은 디바이스들의 중복제거된 리스팅인데, 여기서 각각의 엔트리는 상이한 디바이스에 대응한다.
도 6은 일 실시예에 따른, 제1 스크린 애플리케이션과 제2 스크린 애플리케이션 사이의 세션을 확립하기 위한 프로세스를 예시하는 흐름도이다. 일 실시예에서, 도 6의 프로세스는 클라이언트 디바이스(100)에 의해 수행된다. 다른 실시예들에서 다른 엔티티들은 프로세스의 단계들의 일부 또는 전부를 수행할 수 있다. 마찬가지로, 실시예들은 상이한 및/또는 추가적인 단계들을 포함할 수 있거나, 또는 단계들을 상이한 순서들로 수행할 수 있다.
클라이언트 디바이스(100)는 클라이언트 디바이스(100)의 사용자에게 사용자 인터페이스 내의 디바이스들의 중복제거된 리스팅을 제시한다(610). 중복제거된 리스팅은, 예를 들어, 도 5를 참조하여 상술된 프로세스를 사용하여 생성될 수 있다.
클라이언트 디바이스(100)는 세션에 참여할 리스팅된 디바이스의 선택을 수신한다(620). 일부 실시예들에서, 세션은, 예를 들어, 비디오 디스플레이 세션일 수 있다. 이러한 맥락에서, 참여는 선택된 디바이스와의 기존 세션에 조인하는 것 또는 선택된 디바이스와의 세션을 확립하는 것을 지칭할 수 있다.
클라이언트 디바이스(100)는 선택된 디바이스 상의 제1 스크린 애플리케이션(140)의 애플리케이션 상태를 제어 서버(130)로부터 획득한다(630). 클라이언트 디바이스(100)는 클라이언트 디바이스(100)와 제1 스크린 디바이스(100) 양쪽 모두에 이용가능한 커플링 프로토콜들 및 애플리케이션 상태에 기초하여 커플링 방법론을 결정한다(640). 애플리케이션 상태가 기존 세션들이 없음을 나타내는 실시예들에서, 클라이언트 디바이스(100)는 클라이언트 애플리케이션(100)과 제1 스크린 애플리케이션(120) 양쪽 모두에 이용가능한 선호되는 커플링 프로토콜(예컨대, 클라이언트 디바이스(100)의 사용자에게 가장 많은 제어를 제공하는 것)을 사용하여 제1 스크린 애플리케이션(140)에 커플링한다(650). 애플리케이션 상태가 제1 스크린 애플리케이션(140)이 클라이언트 디바이스(105)와의 기존 세션에 있음 그리고 세션이 특정 커플링 프로토콜을 사용하고 있음을 나타내는 실시예들에서, 그 후에 클라이언트 디바이스(100)는 특정 커플링 프로토콜이 클라이언트 디바이스(100)에 의해서도 또한 지원되는지를 결정한다. 지원되는 경우, 클라이언트 디바이스(100)는 특정 커플링 프로토콜을 통해 기존 세션에 커플링한다(650). 그렇지 않으면, 클라이언트 디바이스(100)는 제어 서버(130)를 통해 기존 세션에 간접적으로 커플링하는데, 여기서 클라이언트 디바이스(100) 및 제어 서버(130)는 클라이언트 디바이스(100)에 의해 지원되는 커플링 프로토콜을 사용하여 통신하고, 제어 서버(130) 및 제1 스크린 애플리케이션(140)은 기존 세션에 사용되고 있는 특정 커플링 프로토콜을 통해 커플링한다.
이제 클라이언트 디바이스들(100, 105), 제1 스크린 디바이스(120), 및/또는 제어 서버(130)의 구현의 논의로 돌아가면, 도 7은 도 1에 도시된 엔티티들을 구현하기 위한 예시적인 컴퓨터(700)를 예시하는 블록 다이어그램이다. 컴퓨터(700)는 칩셋(704)에 커플링된 적어도 하나의 프로세서(702)를 포함한다. 칩셋(704)은 메모리 컨트롤러 허브(720) 및 입/출력(I/O) 컨트롤러 허브(722)를 포함한다. 메모리(706) 및 그래픽 어댑터(712)는 메모리 컨트롤러 허브(720)에 커플링되고, 디스플레이(718)는 그래픽 어댑터(712)에 커플링된다. 저장 디바이스(708), 입력 디바이스(714), 및 네트워크 어댑터(716)는 I/O 컨트롤러 허브(722)에 커플링된다. 컴퓨터(700)의 다른 실시예들은 상이한 아키텍처들을 갖는다.
저장 디바이스(708)는 하드 드라이브, 콤팩트 디스크 판독 전용 메모리(CD-ROM), DVD, 또는 솔리드-스테이트 메모리 디바이스와 같은 비일시적 컴퓨터 판독가능 저장 매체이다. 메모리(706)는 프로세서(702)에 의해 사용되는 명령어들 및 데이터를 보유한다. 입력 인터페이스(714)는 터치 스크린 인터페이스, 마우스, 트랙 볼, 또는 다른 타입의 포인팅 디바이스, 키보드, 또는 이들의 일부 조합이고, 컴퓨터(700)에 데이터를 입력하는 데 사용된다. 일부 실시예들에서, 컴퓨터(700)는 사용자로부터의 제스처들을 통해 입력 인터페이스(714)로부터 입력(예를 들어, 커맨드들)을 수신하도록 구성될 수 있다. 그래픽 어댑터(712)는 이미지들 및 다른 정보를 디스플레이(718) 상에 디스플레이한다. 네트워크 어댑터(716)는 컴퓨터(700)를 하나 이상의 컴퓨터 네트워크들에 커플링한다.
컴퓨터(700)는 본 명세서에서 설명된 기능성을 제공하기 위한 컴퓨터 프로그램 모듈들을 실행하도록 적응된다. 본 명세서에서 사용되는 바와 같이, 용어 "모듈"은 특정된 기능성을 제공하는 데 사용되는 컴퓨터 프로그램 로직을 지칭한다. 따라서, 모듈은 하드웨어, 펌웨어, 및/또는 소프트웨어로 구현될 수 있다. 일 실시예에서, 프로그램 모듈들은 저장 디바이스(708) 상에 저장되고, 메모리(706)에 로딩되며, 프로세서(702)에 의해 실행된다.
도 1의 엔티티들에 의해 사용되는 컴퓨터들(700)의 타입들은 엔티티에 의해 요청되는 프로세싱 능력 및 실시예에 따라 달라질 수 있다. 일부 실시예들에서, 클라이언트 디바이스(100)는 함께 작동하는 하나 이상의 서버들과 상호작용하여 본 명세서에서 설명된 기능성을 제공할 수 있다. 예를 들어, 제어 서버(130)는 서버 팜과 같은 네트워크를 통해 서로 통신하는 다수의 컴퓨터들(700)을 포함하여 본 명세서에서 설명된 기능성을 제공할 수 있다. 컴퓨터들(700)은 그래픽 어댑터들(712) 및 디스플레이들(718)과 같은 상술된 컴포넌트들 중 일부가 부족할 수 있다.
다른 고려사항들
상기 설명의 일부 부분들은 알고리즘적 프로세스들 또는 동작들의 관점에서 실시예들을 설명한다. 이들 알고리즘적 설명들 및 표현들은 데이터 프로세싱 분야의 통상의 기술자에 의해 통상적으로 사용되어 이들의 작업의 본질을 본 기술분야의 다른 통상의 기술자에게 효과적으로 전달한다. 이들 동작들은, 기능적으로, 계산적으로, 또는 논리적으로 설명되었지만, 프로세서 또는 등가의 전기 회로들, 마이크로코드 등에 의한 실행을 위한 명령어들을 포함하는 컴퓨터 프로그램들에 의해 구현되는 것으로 이해된다. 게다가, 기능적 동작들의 이들 배열들을 모듈들로서 지칭하는 것은, 일반성의 상실 없이, 때때로 편리하다는 것이 또한 입증되었다. 설명된 동작들 및 이들의 연관된 모듈들은 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 임의의 조합들로 구현될 수 있다.
본 명세서에서 사용되는 바와 같이, "일 실시예" 또는 "실시예"에 대한 임의의 언급은 실시예와 관련하여 설명되는 특정 엘리먼트, 미디어 특징, 구조, 또는 특성이 적어도 하나의 실시예에 포함된다는 것을 의미한다. 본 명세서의 다양한 곳에서의 "일 실시예에서"라는 어구의 출현들은 반드시 모두 동일 실시예를 지칭하는 것은 아니다.
일부 실시예들은 "커플링된" 및 "연결된"이라는 표현을 이들의 파생어들과 함께 사용하여 설명될 수 있다. 이들 용어들은 서로 동의어로서 의도된 것이 아님을 이해해야 한다. 예를 들어, 일부 실시예들은 2개 이상의 엘리먼트들이 서로 직접적인 물리적 또는 전기적 접촉 상태에 있음을 나타내기 위해 "연결된"이라는 용어를 사용하여 설명될 수 있다. 다른 예에서, 일부 실시예들은 2개 이상의 엘리먼트들이 직접적인 물리적 또는 전기적 접촉 상태에 있음을 나타내기 위해 "커플링된"이라는 용어를 사용하여 설명될 수 있다. 그러나, "커플링된"이라는 용어는 또한, 2개 이상의 엘리먼트들이 서로 직접적인 접촉 상태에 있지 않지만, 그래도 여전히 서로 협력 또는 상호작용한다는 것을 의미할 수 있다. 실시예들은 이러한 맥락에서 제한되지 않는다.
본 명세서에서 사용되는 바와 같이, 용어들 "포함하다", "포함하는", "구비하다", "구비하는", "갖는다", "갖는" 또는 이들의 임의의 다른 변형은 비배타적인 포함을 커버하도록 의도된다. 예를 들어, 엘리먼트들의 리스트를 포함하는 프로세스, 방법, 물품, 또는 장치는 반드시 오직 이들 엘리먼트들에만 제한되는 것은 아니라, 명백히 리스팅되지 않거나 이러한 프로세스, 방법, 물품, 또는 장치에 내재하는 다른 엘리먼트들을 포함할 수 있다. 추가로, 명백히 반대로 언급되지 않는 한, "또는"은 배타적인 또는(exclusive or)이 아니라 포함적인 또는(inclusive or)을 지칭한다. 예를 들어, 조건 A 또는 B는 하기의 것: A가 참이고(또는 존재하고) B가 거짓인 것(또는 존재하지 않는 것), A가 거짓이고(또는 존재하지 않고) B가 참인 것(또는 존재하는 것), 및 A와 B 양쪽 모두가 참인 것(또는 존재하는 것) 중 임의의 하나에 의해 충족된다.
추가적으로, 단수형 표현("a" 또는 "an")의 사용은 본 명세서에서의 실시예들의 엘리먼트들 및 컴포넌트들을 설명하기 위해 채용된다. 이것은 단지 편의를 위해 그리고 본 개시내용의 일반적 의미를 부여하기 위해 행해진다. 이러한 설명은 하나 또는 적어도 하나를 포함하도록 판독되어야 하고, 단수는 또한, 그것이 달리 의미된다는 것이 명백하지 않은 한 복수를 포함한다.
본 개시내용의 판독시에, 본 기술분야의 통상의 기술자는 제1 스크린 디바이스와의 클라이언트 디바이스 상호운용성을 용이하게 하기 위한 시스템 및 프로세스를 위한 더욱 추가적인 대안적인 구조적 및 기능적 설계들을 인식할 것이다. 따라서, 특정 실시예들 및 애플리케이션들이 예시 및 설명되었지만, 설명된 요지가 본 명세서에 개시된 정밀한 구성 및 컴포넌트들에 제한되지 않음, 그리고 본 기술분야의 통상의 기술자에게 명백해질 다양한 수정들, 변화들 및 변형들이 본 명세서에 개시된 방법 및 장치의 배열, 동작 및 세부사항들에서 이루어질 수 있음을 이해해야 한다.

Claims (20)

  1. 제1 스크린 디바이스와의 클라이언트 디바이스 상호운용성을 용이하게 하기 위한 컴퓨터 구현 방법으로서,
    클라이언트 디바이스 상에서 동작하는 제2 스크린 애플리케이션에 의해, 사용자 인터페이스에 디바이스들의 중복제거된 리스팅을 제시하는 단계 - 각각의 리스팅된 디바이스는 하나 이상의 커플링 프로토콜들과 연관됨 -;
    비디오 디스플레이 세션에 참여할 리스팅된 디바이스의 선택을 상기 사용자 인터페이스를 통해 수신하는 단계 - 상기 리스팅된 디바이스는 상기 제1 스크린 디바이스로서 선택됨 -;
    상기 선택된 디바이스의 제1 스크린 애플리케이션에 대한 애플리케이션 상태 정보를 제어 서버로부터 획득하는 단계 - 상기 애플리케이션 상태 정보는 상기 제1 스크린 애플리케이션이 제2 클라이언트 디바이스와의 기존 비디오 디스플레이 세션에 있는지 여부를 나타냄 - ;
    상기 제1 스크린 애플리케이션의 상기 하나 이상의 커플링 프로토콜들 및 상기 클라이언트 디바이스에 이용가능한 커플링 프로토콜들 그리고 상기 나타낸 애플리케이션 상태에 기초하여 커플링 방법론(coupling methodology)을 결정하는 단계; 및
    상기 결정된 커플링 방법론을 통해 상기 제1 스크린 애플리케이션에 커플링하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 제1 스크린 애플리케이션의 상기 하나 이상의 커플링 프로토콜들 및 상기 클라이언트 디바이스에 이용가능한 커플링 프로토콜들 그리고 상기 나타낸 애플리케이션 상태에 기초하여 커플링 방법론을 결정하는 단계는,
    상기 애플리케이션 상태 정보를 사용하여 상기 제1 스크린 애플리케이션이 제2 클라이언트 디바이스와의 기존 비디오 디스플레이 세션에 있다는 것을 결정하는 단계 - 상기 애플리케이션 상태 정보는 상기 하나 이상의 커플링 프로토콜들 중의, 상기 기존 비디오 디스플레이 세션에 사용된 특정 커플링 프로토콜을 추가로 나타냄 -; 및
    상기 특정 커플링 프로토콜이 상기 클라이언트 디바이스에 이용가능하지 않다는 것을 결정하는 단계
    를 추가로 포함하고;
    상기 결정된 커플링 방법론을 통해 상기 제1 스크린 애플리케이션에 커플링하는 단계는,
    상기 클라이언트 디바이스 및 제어 서버에 이용가능한 커플링 프로토콜을 사용하여 상기 클라이언트 디바이스가 상기 제어 서버와 통신하도록, 그리고 상기 특정 커플링 프로토콜을 사용하여 상기 제어 서버가 상기 제1 스크린 애플리케이션과 통신하도록, 상기 제어 서버를 통해 간접적으로 상기 제1 스크린 애플리케이션에 커플링하는 단계
    를 추가로 포함하는, 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 제1 스크린 애플리케이션의 상기 하나 이상의 커플링 프로토콜들 및 상기 클라이언트 디바이스에 이용가능한 커플링 프로토콜들 그리고 상기 나타낸 애플리케이션 상태에 기초하여 커플링 방법론을 결정하는 단계는,
    상기 애플리케이션 상태 정보를 사용하여 상기 제1 스크린 애플리케이션이 제2 클라이언트 디바이스와의 기존 비디오 디스플레이 세션에 있다는 것을 결정하는 단계 - 상기 애플리케이션 상태 정보는 상기 하나 이상의 커플링 프로토콜들 중의, 상기 기존 비디오 디스플레이 세션에 사용된 특정 커플링 프로토콜을 추가로 나타냄 -; 및
    상기 특정 커플링 프로토콜이 상기 클라이언트 디바이스에 이용가능하다는 것을 결정하는 단계
    를 추가로 포함하고;
    상기 결정된 커플링 방법론을 통해 상기 제1 스크린 애플리케이션에 커플링하는 단계는,
    상기 특정 커플링 프로토콜을 사용하여 상기 기존 비디오 디스플레이 세션에 커플링하는 단계
    를 추가로 포함하는, 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 제1 스크린 애플리케이션의 상기 하나 이상의 커플링 프로토콜들 및 상기 클라이언트 디바이스에 이용가능한 커플링 프로토콜들 그리고 상기 나타낸 애플리케이션 상태에 기초하여 커플링 방법론을 결정하는 단계는,
    상기 애플리케이션 상태 정보를 사용하여 상기 제1 스크린 애플리케이션이 다른 클라이언트 디바이스와의 기존 비디오 디스플레이 세션에 있지 않다는 것을 결정하는 단계; 및
    상기 하나 이상의 커플링 프로토콜들 중의, 상기 클라이언트 디바이스 및 상기 제1 스크린 디바이스에 이용가능한 선호되는 커플링 프로토콜을 결정하는 단계
    를 추가로 포함하고;
    상기 결정된 커플링 방법론을 통해 상기 제1 스크린 애플리케이션에 커플링하는 단계는,
    상기 선호되는 커플링 프로토콜을 사용하여 상기 제1 스크린 애플리케이션에 커플링하는 단계
    를 추가로 포함하는, 컴퓨터 구현 방법.
  5. 제4항에 있어서,
    상기 선호되는 커플링 프로토콜은, 상기 클라이언트 디바이스와 상기 제1 스크린 디바이스 양쪽 모두에 이용가능한 복수의 커플링 프로토콜들 중의, 상기 복수의 커플링 프로토콜들 중 다른 커플링 프로토콜들보다 사용자에게 더 많은 제어를 제공하는 커플링 프로토콜인, 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 제1 스크린 애플리케이션의 상기 하나 이상의 커플링 프로토콜들 및 상기 클라이언트 디바이스에 이용가능한 커플링 프로토콜들 그리고 상기 나타낸 애플리케이션 상태에 기초하여 커플링 방법론을 결정하는 단계는,
    상기 애플리케이션 상태 정보를 사용하여 상기 제1 스크린 애플리케이션이 다른 클라이언트 디바이스와의 기존 비디오 디스플레이 세션에 있지 않다는 것을 결정하는 단계; 및
    상기 제1 스크린 디바이스와 연관된 복수의 커플링 프로토콜들이 상기 클라이언트 디바이스에 이용가능하지 않다는 것을 결정하는 단계
    를 추가로 포함하고;
    상기 결정된 커플링 방법론을 통해 상기 제1 스크린 애플리케이션에 커플링하는 단계는,
    상기 클라이언트 디바이스 및 제어 서버에 이용가능한 커플링 프로토콜을 사용하여 상기 클라이언트 디바이스가 상기 제어 서버와 통신하도록, 그리고 상기 복수의 커플링 프로토콜들 중 한 커플링 프로토콜을 사용하여 상기 제어 서버가 상기 제1 스크린 애플리케이션과 통신하도록, 상기 제어 서버를 통해 간접적으로 상기 제1 스크린 애플리케이션에 커플링하는 단계
    를 추가로 포함하는, 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 제1 스크린 애플리케이션을 고유하게 식별하는 애플리케이션 식별자 및 상기 제1 스크린 디바이스에 커플링하는 데 사용될 수 있는 커플링 프로토콜들의 리스팅을 포함하는 발견 정보를 상기 제1 스크린 디바이스로부터 수신하는 단계;
    상기 수신된 발견 정보로 디바이스 리스트를 업데이트하는 단계;
    상기 제1 스크린 애플리케이션이 일부 다른 클라이언트 디바이스와 수동으로 이전에 페어링되었음을 나타내는 페어링 정보를 제어 서버로부터 요청하는 단계;
    상기 수신된 페어링 정보로 상기 디바이스 리스트를 업데이트하는 단계; 및
    상기 제1 스크린 디바이스에 대응하는 단일 디바이스 엔트리를 비디오 디스플레이 세션 인터페이스에 생성하기 위해 상기 업데이트된 디바이스 리스트를 사용하여 디바이스 중복제거를 수행하는 단계
    를 추가로 포함하는, 컴퓨터 구현 방법.
  8. 제1 스크린 디바이스와의 클라이언트 디바이스 상호운용성을 용이하게 하기 위한 실행가능 컴퓨터 프로그램 명령어들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령어들은 단계들을 수행하도록 실행가능하고,
    상기 단계들은,
    클라이언트 디바이스 상에서 동작하는 제2 스크린 애플리케이션에 의해, 사용자 인터페이스에 디바이스들의 중복제거된 리스팅을 제시하는 단계 - 각각의 리스팅된 디바이스는 하나 이상의 커플링 프로토콜들과 연관됨 -;
    비디오 디스플레이 세션에 참여할 리스팅된 디바이스의 선택을 상기 사용자 인터페이스를 통해 수신하는 단계 - 상기 리스팅된 디바이스는 상기 제1 스크린 디바이스로서 선택됨 -;
    상기 선택된 디바이스의 제1 스크린 애플리케이션에 대한 애플리케이션 상태 정보를 제어 서버로부터 획득하는 단계 - 상기 애플리케이션 상태 정보는 상기 제1 스크린 애플리케이션이 제2 클라이언트 디바이스와의 기존 비디오 디스플레이 세션에 있는지 여부를 나타냄 -;
    상기 제1 스크린 애플리케이션의 상기 하나 이상의 커플링 프로토콜들 및 상기 클라이언트 디바이스에 이용가능한 커플링 프로토콜들 그리고 상기 나타낸 애플리케이션 상태에 기초하여 커플링 방법론을 결정하는 단계; 및
    상기 결정된 커플링 방법론을 통해 상기 제1 스크린 애플리케이션에 커플링하는 단계
    를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  9. 제8항에 있어서,
    상기 제1 스크린 애플리케이션의 상기 하나 이상의 커플링 프로토콜들 및 상기 클라이언트 디바이스에 이용가능한 커플링 프로토콜들 그리고 상기 나타낸 애플리케이션 상태에 기초하여 커플링 방법론을 결정하는 단계는,
    상기 애플리케이션 상태 정보를 사용하여 상기 제1 스크린 애플리케이션이 제2 클라이언트 디바이스와의 기존 비디오 디스플레이 세션에 있다는 것을 결정하는 단계 - 상기 애플리케이션 상태 정보는 상기 하나 이상의 커플링 프로토콜들 중의, 상기 기존 비디오 디스플레이 세션에 사용된 특정 커플링 프로토콜을 추가로 나타냄 -; 및
    상기 특정 커플링 프로토콜이 상기 클라이언트 디바이스에 이용가능하지 않다는 것을 결정하는 단계
    를 추가로 포함하고;
    상기 결정된 커플링 방법론을 통해 상기 제1 스크린 애플리케이션에 커플링하는 단계는,
    상기 클라이언트 디바이스 및 제어 서버에 이용가능한 커플링 프로토콜을 사용하여 상기 클라이언트 디바이스가 상기 제어 서버와 통신하도록, 그리고 상기 특정 커플링 프로토콜을 사용하여 상기 제어 서버가 상기 제1 스크린 애플리케이션과 통신하도록, 상기 제어 서버를 통해 간접적으로 상기 제1 스크린 애플리케이션에 커플링하는 단계
    를 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  10. 제8항에 있어서,
    상기 제1 스크린 애플리케이션의 상기 하나 이상의 커플링 프로토콜들 및 상기 클라이언트 디바이스에 이용가능한 커플링 프로토콜들 그리고 상기 나타낸 애플리케이션 상태에 기초하여 커플링 방법론을 결정하는 단계는,
    상기 애플리케이션 상태 정보를 사용하여 상기 제1 스크린 애플리케이션이 제2 클라이언트 디바이스와의 기존 비디오 디스플레이 세션에 있다는 것을 결정하는 단계 - 상기 애플리케이션 상태 정보는 상기 하나 이상의 커플링 프로토콜들 중의, 상기 기존 비디오 디스플레이 세션에 사용된 특정 커플링 프로토콜을 추가로 나타냄 -; 및
    상기 특정 커플링 프로토콜이 상기 클라이언트 디바이스에 이용가능하다는 것을 결정하는 단계
    를 추가로 포함하고;
    상기 결정된 커플링 방법론을 통해 상기 제1 스크린 애플리케이션에 커플링하는 단계는,
    상기 특정 커플링 프로토콜을 사용하여 상기 기존 비디오 디스플레이 세션에 커플링하는 단계
    를 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  11. 제8항에 있어서,
    상기 제1 스크린 애플리케이션의 상기 하나 이상의 커플링 프로토콜들 및 상기 클라이언트 디바이스에 이용가능한 커플링 프로토콜들 그리고 상기 나타낸 애플리케이션 상태에 기초하여 커플링 방법론을 결정하는 단계는,
    상기 애플리케이션 상태 정보를 사용하여 상기 제1 스크린 애플리케이션이 다른 클라이언트 디바이스와의 기존 비디오 디스플레이 세션에 있지 않다는 것을 결정하는 단계; 및
    상기 하나 이상의 커플링 프로토콜들 중의, 상기 클라이언트 디바이스 및 상기 제1 스크린 디바이스에 이용가능한 선호되는 커플링 프로토콜을 결정하는 단계
    를 추가로 포함하고;
    상기 결정된 커플링 방법론을 통해 상기 제1 스크린 애플리케이션에 커플링하는 단계는,
    상기 선호되는 커플링 프로토콜을 사용하여 상기 제1 스크린 애플리케이션에 커플링하는 단계
    를 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  12. 제11항에 있어서,
    상기 선호되는 커플링 프로토콜은, 상기 클라이언트 디바이스와 상기 제1 스크린 디바이스 양쪽 모두에 이용가능한 복수의 커플링 프로토콜들 중의, 상기 복수의 커플링 프로토콜들 중 다른 커플링 프로토콜들보다 사용자에게 더 많은 제어를 제공하는 커플링 프로토콜인, 비일시적 컴퓨터 판독가능 저장 매체.
  13. 제8항에 있어서,
    상기 제1 스크린 애플리케이션의 상기 하나 이상의 커플링 프로토콜들 및 상기 클라이언트 디바이스에 이용가능한 커플링 프로토콜들 그리고 상기 나타낸 애플리케이션 상태에 기초하여 커플링 방법론을 결정하는 단계는,
    상기 애플리케이션 상태 정보를 사용하여 상기 제1 스크린 애플리케이션이 다른 클라이언트 디바이스와의 기존 비디오 디스플레이 세션에 있지 않다는 것을 결정하는 단계; 및
    상기 제1 스크린 디바이스와 연관된 복수의 커플링 프로토콜들이 상기 클라이언트 디바이스에 이용가능하지 않다는 것을 결정하는 단계
    를 추가로 포함하고;
    상기 결정된 커플링 방법론을 통해 상기 제1 스크린 애플리케이션에 커플링하는 단계는,
    상기 클라이언트 디바이스 및 제어 서버에 이용가능한 커플링 프로토콜을 사용하여 상기 클라이언트 디바이스가 상기 제어 서버와 통신하도록, 그리고 상기 복수의 커플링 프로토콜들 중 한 커플링 프로토콜을 사용하여 상기 제어 서버가 상기 제1 스크린 애플리케이션과 통신하도록, 상기 제어 서버를 통해 간접적으로 상기 제1 스크린 애플리케이션에 커플링하는 단계
    를 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  14. 제8항에 있어서,
    상기 제1 스크린 애플리케이션을 고유하게 식별하는 애플리케이션 식별자 및 상기 제1 스크린 디바이스에 커플링하는 데 사용될 수 있는 커플링 프로토콜들의 리스팅을 포함하는 발견 정보를 상기 제1 스크린 디바이스로부터 수신하는 단계;
    상기 수신된 발견 정보로 디바이스 리스트를 업데이트하는 단계;
    상기 제1 스크린 애플리케이션이 일부 다른 클라이언트 디바이스와 수동으로 이전에 페어링되었음을 나타내는 페어링 정보를 제어 서버로부터 요청하는 단계;
    상기 수신된 페어링 정보로 상기 디바이스 리스트를 업데이트하는 단계; 및
    상기 제1 스크린 디바이스에 대응하는 단일 디바이스 엔트리를 비디오 디스플레이 세션 인터페이스에 생성하기 위해 상기 업데이트된 디바이스 리스트를 사용하여 디바이스 중복제거를 수행하는 단계
    를 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  15. 제1 스크린 디바이스와의 클라이언트 디바이스 상호운용성을 용이하게 하기 위한 디바이스로서,
    모듈들을 실행하도록 구성되는 프로세서; 및
    제2 스크린 애플리케이션의 모듈들을 저장하는 메모리
    를 포함하고,
    상기 모듈들은,
    사용자 인터페이스에 디바이스들의 중복제거된 리스팅을 제시하도록 - 각각의 리스팅된 디바이스는 하나 이상의 커플링 프로토콜들과 연관됨 -, 그리고
    비디오 디스플레이 세션에 참여할 리스팅된 디바이스의 선택을 상기 사용자 인터페이스를 통해 수신하도록 - 상기 리스팅된 디바이스는 상기 제1 스크린 디바이스로서 선택됨 -
    구성되는 인터페이스 모듈;
    상기 선택된 디바이스의 제1 스크린 애플리케이션에 대한 애플리케이션 상태 정보를 제어 서버로부터 획득하도록 구성되는 발견 모듈 - 상기 애플리케이션 상태 정보는 상기 제1 스크린 애플리케이션이 제2 클라이언트 디바이스와의 기존 비디오 디스플레이 세션에 있는지 여부를 나타냄 -, 및
    상기 제1 스크린 애플리케이션의 상기 하나 이상의 커플링 프로토콜들 및 상기 클라이언트 디바이스에 이용가능한 커플링 프로토콜들 그리고 상기 나타낸 애플리케이션 상태에 기초하여 커플링 방법론을 결정하도록, 그리고
    상기 결정된 커플링 방법론을 통해 상기 제1 스크린 애플리케이션에 커플링하도록 구성되는 커플링 모듈
    을 포함하는, 디바이스.
  16. 제15항에 있어서,
    상기 커플링 모듈은,
    상기 애플리케이션 상태 정보를 사용하여 상기 제1 스크린 애플리케이션이 제2 클라이언트 디바이스와의 기존 비디오 디스플레이 세션에 있다는 것을 결정하도록 - 상기 애플리케이션 상태 정보는 상기 하나 이상의 커플링 프로토콜들 중의, 상기 기존 비디오 디스플레이 세션에 사용된 특정 커플링 프로토콜을 추가로 나타냄 -;
    상기 특정 커플링 프로토콜이 상기 클라이언트 디바이스에 이용가능하지 않다는 것을 결정하도록; 그리고
    상기 클라이언트 디바이스 및 제어 서버에 이용가능한 커플링 프로토콜을 사용하여 상기 클라이언트 디바이스가 상기 제어 서버와 통신하도록, 그리고 상기 특정 커플링 프로토콜을 사용하여 상기 제어 서버가 상기 제1 스크린 애플리케이션과 통신하도록, 상기 제어 서버를 통해 간접적으로 상기 제1 스크린 애플리케이션에 커플링하도록
    추가로 구성되는, 디바이스.
  17. 제15항에 있어서,
    상기 커플링 모듈은,
    상기 애플리케이션 상태 정보를 사용하여 상기 제1 스크린 애플리케이션이 제2 클라이언트 디바이스와의 기존 비디오 디스플레이 세션에 있다는 것을 결정하도록 - 상기 애플리케이션 상태 정보는 상기 하나 이상의 커플링 프로토콜들 중의, 상기 기존 비디오 디스플레이 세션에 사용된 특정 커플링 프로토콜을 추가로 나타냄 -;
    상기 특정 커플링 프로토콜이 상기 클라이언트 디바이스에 이용가능하다는 것을 결정하도록; 그리고
    상기 특정 커플링 프로토콜을 사용하여 상기 기존 비디오 디스플레이 세션에 커플링하도록
    추가로 구성되는, 디바이스.
  18. 제15항에 있어서,
    상기 커플링 모듈은,
    상기 애플리케이션 상태 정보를 사용하여 상기 제1 스크린 애플리케이션이 다른 클라이언트 디바이스와의 기존 비디오 디스플레이 세션에 있지 않다는 것을 결정하도록;
    상기 하나 이상의 커플링 프로토콜들 중의, 상기 클라이언트 디바이스 및 상기 제1 스크린 디바이스에 이용가능한 선호되는 커플링 프로토콜을 결정하도록; 그리고
    상기 선호되는 커플링 프로토콜을 사용하여 상기 제1 스크린 애플리케이션에 커플링하도록
    추가로 구성되는, 디바이스.
  19. 제15항에 있어서,
    상기 커플링 모듈은,
    상기 애플리케이션 상태 정보를 사용하여 상기 제1 스크린 애플리케이션이 다른 클라이언트 디바이스와의 기존 비디오 디스플레이 세션에 있지 않다는 것을 결정하도록;
    상기 제1 스크린 디바이스와 연관된 복수의 커플링 프로토콜들이 상기 클라이언트 디바이스에 이용가능하지 않다는 것을 결정하도록; 그리고
    상기 클라이언트 디바이스 및 제어 서버에 이용가능한 커플링 프로토콜을 사용하여 상기 클라이언트 디바이스가 상기 제어 서버와 통신하도록, 그리고 상기 복수의 커플링 프로토콜들 중 한 커플링 프로토콜을 사용하여 상기 제어 서버가 상기 제1 스크린 애플리케이션과 통신하도록, 상기 제어 서버를 통해 간접적으로 상기 제1 스크린 애플리케이션에 커플링하도록
    추가로 구성되는, 디바이스.
  20. 제15항에 있어서,
    상기 발견 모듈은,
    상기 제1 스크린 애플리케이션을 고유하게 식별하는 애플리케이션 식별자 및 상기 제1 스크린 디바이스에 커플링하는 데 사용될 수 있는 커플링 프로토콜들의 리스팅을 포함하는 발견 정보를 상기 제1 스크린 디바이스로부터 수신하도록;
    상기 수신된 발견 정보로 디바이스 리스트를 업데이트하도록;
    상기 제1 스크린 애플리케이션이 일부 다른 클라이언트 디바이스와 수동으로 이전에 페어링되었음을 나타내는 페어링 정보를 제어 서버로부터 요청하도록;
    상기 수신된 페어링 정보로 상기 디바이스 리스트를 업데이트하도록; 그리고
    상기 제1 스크린 디바이스에 대응하는 단일 디바이스 엔트리를 비디오 디스플레이 세션 인터페이스에 생성하기 위해 상기 업데이트된 디바이스 리스트를 사용하여 디바이스 중복제거를 수행하도록
    추가로 구성되는, 디바이스.
KR1020177023903A 2015-02-03 2016-01-20 클라이언트 디바이스들과 제1 스크린 디바이스들 사이의 발견 및 연결 프로토콜들의 상호운용성 KR101986839B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/613,229 2015-02-03
US14/613,229 US9992307B2 (en) 2015-02-03 2015-02-03 Interoperability of discovery and connection protocols between client devices and first screen devices
PCT/US2016/014011 WO2016126418A1 (en) 2015-02-03 2016-01-20 Interoperability of discovery and connection protocols between client devices and first screen devices

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020197015844A Division KR102030549B1 (ko) 2015-02-03 2016-01-20 클라이언트 디바이스들과 제1 스크린 디바이스들 사이의 발견 및 연결 프로토콜들의 상호운용성

Publications (2)

Publication Number Publication Date
KR20170108105A KR20170108105A (ko) 2017-09-26
KR101986839B1 true KR101986839B1 (ko) 2019-06-07

Family

ID=56554964

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020197015844A KR102030549B1 (ko) 2015-02-03 2016-01-20 클라이언트 디바이스들과 제1 스크린 디바이스들 사이의 발견 및 연결 프로토콜들의 상호운용성
KR1020177023903A KR101986839B1 (ko) 2015-02-03 2016-01-20 클라이언트 디바이스들과 제1 스크린 디바이스들 사이의 발견 및 연결 프로토콜들의 상호운용성

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020197015844A KR102030549B1 (ko) 2015-02-03 2016-01-20 클라이언트 디바이스들과 제1 스크린 디바이스들 사이의 발견 및 연결 프로토콜들의 상호운용성

Country Status (8)

Country Link
US (2) US9992307B2 (ko)
EP (2) EP3254446B1 (ko)
JP (1) JP6545824B2 (ko)
KR (2) KR102030549B1 (ko)
CN (2) CN107211046B (ko)
DE (1) DE112016000587T5 (ko)
GB (1) GB2552106A (ko)
WO (1) WO2016126418A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9992307B2 (en) * 2015-02-03 2018-06-05 Google Llc Interoperability of discovery and connection protocols between client devices and first screen devices
US10542327B2 (en) 2015-12-21 2020-01-21 Opentv, Inc. Interactive application server on a second screen device
US11184364B2 (en) * 2018-01-09 2021-11-23 Cisco Technology, Inc. Localized, proximity-based media streaming
US10356620B1 (en) 2018-05-07 2019-07-16 T-Mobile Usa, Inc. Enhanced security for electronic devices
US10721311B1 (en) * 2019-01-11 2020-07-21 Accenture Global Solutions Limited System and method for coupling two separate applications to an application session within a serverless infrastructure
CN110868335B (zh) * 2019-11-08 2023-05-09 彩讯科技股份有限公司 端到端的业务监控方法和装置
WO2021201863A1 (en) * 2020-04-01 2021-10-07 Google Llc Enabling media features provided on a first screen device to be presented on a second screen device
CN112261572A (zh) * 2020-10-14 2021-01-22 北京小米移动软件有限公司 一种信息交互的方法、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014514624A (ja) 2011-02-24 2014-06-19 ジャイブ モバイル 異なる端末のアプリケーション間の通信
EP2779709A2 (en) 2013-03-14 2014-09-17 Samsung Electronics Co., Ltd Application connection for devices in a network
US20140280981A1 (en) 2013-03-14 2014-09-18 Samsung Electronics Co., Ltd. Application connection for devices in a network

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7779097B2 (en) * 2000-09-07 2010-08-17 Sonic Solutions Methods and systems for use in network management of content
AU2002223811B8 (en) * 2000-11-20 2007-10-18 British Telecommunications Public Limited Company Method of managing resources
US7421471B2 (en) * 2002-05-17 2008-09-02 Sony Computer Entertainment America Inc. Configuration switching: dynamically changing between network communication architectures
US9047047B2 (en) * 2010-10-01 2015-06-02 Z124 Allowing multiple orientations in dual screen view
JP2008503011A (ja) 2004-06-08 2008-01-31 ダートデバイセズ コーポレーション ユニバーサルデバイスインタオペラビリティプラットフォームのためのデバイスチームリクルートメントおよびコンテンツレンディションのアーキテクチャ装置および方法
US8856665B2 (en) * 2009-04-23 2014-10-07 Avaya Inc. Setting user-preference information on the conference bridge
GB201005454D0 (en) * 2010-03-31 2010-05-19 Skype Ltd Television apparatus
US9143570B2 (en) * 2010-05-04 2015-09-22 Microsoft Technology Licensing, Llc Desktop screen sharing over HTTP
US8904289B2 (en) 2011-04-21 2014-12-02 Touchstream Technologies, Inc. Play control of content on a display device
US10931735B2 (en) 2012-06-28 2021-02-23 Netflix, Inc. Application discovery
US8937637B2 (en) * 2012-07-26 2015-01-20 Google Inc. Method and apparatus providing synchronization and control for server-based multi-screen videoconferencing
CN103067234B (zh) * 2012-12-24 2017-04-05 乐视致新电子科技(天津)有限公司 异构网络下智能设备的识别与发现方法和系统
US20140282677A1 (en) 2013-03-12 2014-09-18 Cbs Interactive Inc. Second screen application linked to media content delivery
US20140281988A1 (en) * 2013-03-12 2014-09-18 Tivo Inc. Gesture-Based Wireless Media Streaming System
US9247309B2 (en) 2013-03-14 2016-01-26 Google Inc. Methods, systems, and media for presenting mobile content corresponding to media content
EP2822285B1 (fr) 2013-07-04 2017-08-30 Nagravision S.A. Appariement de dispositifs au travers de réseaux distincts
KR102078867B1 (ko) * 2013-09-17 2020-02-18 삼성전자주식회사 제어권 관리 방법, 그에 따른 클라이언트 기기 및 그에 따른 마스터 기기
KR102084633B1 (ko) * 2013-09-17 2020-03-04 삼성전자주식회사 화면 미러링 방법 및 그에 따른 소스 기기
CN103475907B (zh) * 2013-09-23 2017-01-25 珠海迈科智能科技股份有限公司 一种多屏控制方法及系统
KR102263481B1 (ko) * 2014-02-07 2021-06-11 삼성전자 주식회사 사용자단말기 및 그 제어방법
US20150312648A1 (en) * 2014-04-23 2015-10-29 Verizon Patent And Licensing Inc. Mobile device controlled dynamic room environment using a cast device
CN104301400B (zh) * 2014-09-28 2017-10-03 四川长虹电器股份有限公司 基于Samba协议的多屏协同及资源共享方法
US9992307B2 (en) * 2015-02-03 2018-06-05 Google Llc Interoperability of discovery and connection protocols between client devices and first screen devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014514624A (ja) 2011-02-24 2014-06-19 ジャイブ モバイル 異なる端末のアプリケーション間の通信
EP2779709A2 (en) 2013-03-14 2014-09-17 Samsung Electronics Co., Ltd Application connection for devices in a network
US20140280981A1 (en) 2013-03-14 2014-09-18 Samsung Electronics Co., Ltd. Application connection for devices in a network

Also Published As

Publication number Publication date
EP3254446A4 (en) 2018-02-28
KR20170108105A (ko) 2017-09-26
EP3606013B1 (en) 2021-07-28
JP6545824B2 (ja) 2019-07-17
KR102030549B1 (ko) 2019-10-10
GB2552106A (en) 2018-01-10
US9992307B2 (en) 2018-06-05
US10771592B2 (en) 2020-09-08
CN111935236B (zh) 2023-07-25
CN111935236A (zh) 2020-11-13
DE112016000587T5 (de) 2017-12-21
GB201714105D0 (en) 2017-10-18
EP3606013A1 (en) 2020-02-05
CN107211046B (zh) 2020-08-11
JP2018511896A (ja) 2018-04-26
KR20190064689A (ko) 2019-06-10
WO2016126418A1 (en) 2016-08-11
CN107211046A (zh) 2017-09-26
EP3254446B1 (en) 2019-09-11
US20160226999A1 (en) 2016-08-04
EP3254446A1 (en) 2017-12-13
US20180288193A1 (en) 2018-10-04

Similar Documents

Publication Publication Date Title
KR101986839B1 (ko) 클라이언트 디바이스들과 제1 스크린 디바이스들 사이의 발견 및 연결 프로토콜들의 상호운용성
KR102242413B1 (ko) 앱을 다운로드하는 방법 및 앱을 실행시키는 방법
US20150009099A1 (en) Systems and methods for facilitating communication between mobile devices and display devices
US9332061B2 (en) Master device, integrated service management system, and integrated service management method
CN106796626B (zh) 共享会话技术
US10187474B2 (en) Method and device for resource sharing between devices
US20160127516A1 (en) Multi-operating system input device
US20160073249A1 (en) System and method for discovering a wireless device
TW201601584A (zh) 無線網路中的裝置隔離
US8943217B2 (en) Systems and methods for operating an appliance control device for an appliance
KR20150013860A (ko) 클라이언트 없는 클라우드 컴퓨팅
KR20150067240A (ko) 와이파이 네트워크 환경에서 와이파이 다이렉트 연결을 설정하기 위한 방법 및 시스템
KR20160014038A (ko) 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화
US10225141B2 (en) Application hierarchy specification with real-time functional selection
TWI684949B (zh) 用於參與及回應應用程式的邀約方法和裝置
KR20130123128A (ko) 서비스 컨텍스트의 연속성을 제공하는 단말 간 서비스 이동성 제공 방법 및 장치
WO2016084101A2 (en) A smart drive device
JP2015005183A (ja) 表示装置、表示システム、及び表示プログラム
GB2504725A (en) Resource sharing between devices
US20220141106A1 (en) Using Wireless Packets to Indicate Device Boot Status
KR20150058720A (ko) N-스크린 협업 서비스를 위한 스마트 단말 페어링 시스템 및 이의 작동 방법
KR20150096588A (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