KR20140108542A - 개인 디바이스들을 이용한 공공 디스플레이들의 제어 - Google Patents

개인 디바이스들을 이용한 공공 디스플레이들의 제어 Download PDF

Info

Publication number
KR20140108542A
KR20140108542A KR1020147018197A KR20147018197A KR20140108542A KR 20140108542 A KR20140108542 A KR 20140108542A KR 1020147018197 A KR1020147018197 A KR 1020147018197A KR 20147018197 A KR20147018197 A KR 20147018197A KR 20140108542 A KR20140108542 A KR 20140108542A
Authority
KR
South Korea
Prior art keywords
public
display device
client device
public display
user
Prior art date
Application number
KR1020147018197A
Other languages
English (en)
Other versions
KR101952987B1 (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 KR20140108542A publication Critical patent/KR20140108542A/ko
Application granted granted Critical
Publication of KR101952987B1 publication Critical patent/KR101952987B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/107Network architectures or network communication protocols for network security for controlling access to devices or network resources wherein the security policies are location-dependent, e.g. entities privileges depend on current location or allowing specific operations only from locally connected terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41415Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance involving a public display, viewable by several users in a public space outside their home, e.g. movie theatre, information kiosk
    • 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/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42204User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor
    • H04N21/42206User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor characterized by hardware details
    • H04N21/4222Remote control device emulator integrated into a non-television apparatus, e.g. a PDA, media center or smart toy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/50Secure pairing of devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0846Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/18Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
    • 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
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/69Identity-dependent
    • H04W12/77Graphical identity

Abstract

네트워크를 통해 클라이언트 디바이스들로 공공 출력 디바이스들(예컨대, 공공 디스플레이 디바이스들)을 제어하기 위한 기술들 및 툴들이 제공된다. 몇몇의 예시들에서, 시간제한된 근접성 코드가 공공 디스플레이 디바이스에 의해 디스플레이되며, 클라이언트 디바이스가 근접 구역 내에 존재해 있고 공공 디스플레이를 제어하도록 허용되어 있다는 것을 입증하기 위해 클라이언트 디바이스는 이 코드를 공공 네트워크를 통해 제공할 수 있다. 일단 허가가 되면, 클라이언트 디바이스는 공공 디스플레이 상의 시각적 콘텐츠를 제어하기 위한 제어 데이터를 제공할 수 있다. 네트워크를 통해 클라이언트 디바이스들과 공공 디스플레이 디바이스들간의 통신 접속들을 거쳐 데이터를 중계하는데에 중계 서비스가 이용될 수 있다. 예를 들어, 중계 서비스는 네트워크에 접속된 서버 상에서 구현될 수 있고, 하나의 디바이스로부터 다른 디바이스로의 메시지들을 통해 제어 데이터와 같은 데이터를 중계하기 위해 HTTP(hypertext transfer protocol)를 이용할 수 있다.

Description

개인 디바이스들을 이용한 공공 디스플레이들의 제어{CONTROLLING PUBLIC DISPLAYS WITH PRIVATE DEVICES}
공공 지역에서 전자 디스플레이가 점차적으로 일반화되어 가고 있다. 이러한 디스플레이는 텍스트, 이미지, 비디오 또는 그래픽과 같은 콘텐츠를 보여줄 수 있고, 이러한 콘텐츠는 시간에 걸쳐(예컨대, 연속된 상이한 광고들에서) 변할 수 있다. 때때로, 공공 지역에 있는 전자 디스플레이는 고정된 위치의 키오스크(kiosk)에 있는 컴퓨터에 접속된다. 키오스크에서 사용자는 이러한 컴퓨터에 정보를 입력할 수 있고, 이렇게 입력된 정보에 응답하여 디스플레이는 변할 수 있다. 하지만, 이러한 키오스크는 일반적으로 한 번에 오직 한 명의 사용자만을 수용할 수 있을 뿐이므로, 이에 따라 디스플레이의 출력에 영향을 미칠 수 있는 사용자들의 수는 제한된다. 또한, 이러한 디스플레이는 일반적으로 다른 컴퓨팅 디바이스들로부터 입력을 받아들이지 않는다. 경기장과 같은 몇몇의 공공 장소들에서, 디스플레이는 모바일 폰에 의해 특정 전화번호(예컨대, 공공 디스플레이에 의해 제어되는 전화번호)로 보내지는 SMS 메시지들을 보여줄 수 있다. 하지만, SMS 메시지들의 콘텐츠는 평문(plain text)으로 제한되며, SMS 메시지들이 타겟 전화번호로 전달되는 것을 기다리는 동안, 또는 메시지들의 콘텐츠가 디스플레이되기 전에 해석되고 (예컨대, 인간 관리자에 의해) 필터링되는 것을 기다리는 동안, 상당한 레이턴시(예컨대, 수 초, 수 분 이상의 지연)가 발생할 수 있다.
모바일 컴퓨팅 디바이스들(예컨대, 태블릿 컴퓨터, 스마트 폰)의 대중화 및 복잡화가 증가함에 따라, 공공 디스플레이와의 강화된 실시간 상호작용에 대한 필요성이 존재한다.
본 요약은 아래의 상세한 설명에서 보다 상세하게 설명되는 개념들의 선택을 단순한 형태로 소개하기 위해 제공된 것이다. 본 요약은 청구된 발명주제의 중요한 특징들 또는 필수적인 특징들을 식별시키려고 의도된 것은 아니며, 또한 청구된 발명내용의 범위를 제한시킬 목적으로 이용되고자 하는 의도도 없다.
여기서의 예시들에서는 네트워크(예컨대, 인터넷)를 통해 클라이언트 디바이스들로 공공 디스플레이 디바이스들을 제어하기 위한 기술들 및 툴들을 설명한다. 몇몇의 예시들에서, 시간제한된 근접성 코드(time-limited proximity code)가 공공 디스플레이 디바이스에 의해 디스플레이되며, 클라이언트 디바이스가 근접 구역(예컨대, 시각적 근접 구역) 내에 존재해 있고 공공 디스플레이를 제어하도록 허용되어 있다는 것을 입증하기 위해 클라이언트 디바이스는 이 코드를 공공 네트워크를 통해 제공할 수 있다. 일단 허가가 되면, 클라이언트 디바이스는 공공 디스플레이 상의 시각적 콘텐츠를 제어하기 위한 제어 데이터를 제공할 수 있다. 클라이언트 디바이스들과 공공 디스플레이 디바이스들간의 네트워크를 통한 통신 접속들을 통해 데이터를 중계(relay)하는데에 중계 서비스가 이용될 수 있다. 예를 들어, 중계 서비스는 네트워크에 연결된 서버 상에서 구현될 수 있고, 하나의 디바이스로부터 다른 디바이스로의 메시지들을 통해 제어 데이터와 같은 데이터를 중계하기 위해 HTTP(hypertext transfer protocol)를 이용할 수 있다. 중계 서비스는, 예컨대, 보안 프로토콜이 공공 디스플레이 디바이스들 또는 클라이언트 디바이스들과의 통신을 제한시키는 경우(예컨대, 공공 디스플레이 디바이스들로의 직접 액세스 또는 클라이언트 디바이스들 상으로 수신되는 통신들을 제한시키는 경우)에 유용할 수 있다.
본 발명의 전술한 목적, 특징 및 장점과, 이와 다른 목적, 특징 및 장점은 첨부된 도면들을 참조하여 진행되는 아래의 상세한 설명으로부터 보다 명백해질 것이다.
도 1은 하나 이상의 설명된 실시예들이 구현될 수 있는 모바일 컴퓨팅 디바이스의 일반화된 예시를 나타낸다.
도 2는 하나 이상의 설명된 실시예들이 구현될 수 있는 일반화된 시스템을 도시하는 블록도이다.
도 3, 도 4, 도 5 및 도 6은 하나 이상의 설명된 실시예들에 따라, 공공 디스플레이 디바이스가 하나 이상의 모바일 디바이스들에 의해 제어될 수 있는 예시적인 배치들을 도시하는 다이어그램들이다.
도 7은 하나 이상의 설명된 실시예들에 따라, 공공 디스플레이 디바이스 상에서 디스플레이되는 콘텐츠를 클라이언트 디바이스가 제어하기 위한 허가(authorization)를 획득하는 예시적인 기술을 도시하는 흐름도이다.
도 8은 하나 이상의 설명된 실시예들에 따라, 근접 구역 내에 위치한 클라이언트 디바이스로부터 공공 네트워크를 통해 수신된 제어 데이터에 기초하여 시각적 콘텐츠를 디스플레이하기 위한 예시적인 기술을 도시하는 흐름도이다.
도 9는 하나 이상의 설명된 실시예들에 따라, 공공 디스플레이 디바이스를 제어하는 클라이언트 디바이스와 공공 디스플레이 디바이스간의 통신을 원활하게 해주기 위해 중계 서비스를 제공하기 위한 예시적인 기술을 도시하는 흐름도이다.
도 10은 하나 이상의 설명된 실시예들이 구현될 수 있는 적절한 컴퓨팅 환경의 일반화된 예시를 나타낸다.
네트워크(예컨대, 인터넷)를 통해 클라이언트 디바이스들(예컨대, 모바일 디바이스들과 같은 개인 컴퓨팅 디바이스들)로 공공 디스플레이 디바이스들(또는 다른 유형의 제어가능한 출력을 갖는 공공 출력 디바이스들)을 제어하기 위한 기술들 및 툴들을 설명한다. 설명되는 기술들 및 툴들은 공공 디스플레이들을 제어하도록 허용된 사용자들을 관리하기 위해 근접성 및/또는 인증(authentication) 정보를 이용한다. 원격 사용자 및/또는 익명의 사용자에 의한 액세스를 제한시킴으로써 보안은 강화될 수 있다. 몇몇의 예시들에서, 근접성 코드(예컨대, 문자열과 같은 시각적 근접성 코드 또는 바코드와 같은 이미지)가 공공 디스플레이 상에 디스플레이되고, 사용자는 (예컨대, 키보드로 코드를 타이핑하거나, 코드의 이미지를 캡쳐하거나, 또는 코드에 대한 적절한 다른 몇몇의 방법에 의해) 이러한 코드를 제공하여 사용자가 근접 구역 내에 존재하고 공공 디스플레이를 제어하도록 허용되어 있다는 것을 입증할 수 있다. 클라이언트 디바이스들과 공공 디스플레이 디바이스들간의 네트워크를 통한 통신 접속들을 통해 데이터를 중계(relay)하는데에 중계 서비스가 이용될 수 있다. 예를 들어, 중계 서비스는 네트워크에 연결된 서버 상에서 구현될 수 있고, 하나의 디바이스로부터 다른 디바이스로의 메시지들을 통해 데이터를 중계하기 위해 HTTP(hypertext transfer protocol)를 이용할 수 있다. 설명되는 기술들 및 툴들은 사용자들로 하여금 동기식 또는 동기 유사 방식으로 공공 디스플레이들을 제어할 수 있도록 하여, 매우 낮은 레이턴시를 가지면서 직접적 제어 및 상호작용을 가능하게 한다.
설명되는 기술들 및 툴들은 다양한 장소들(예컨대, 타임 스퀘어에서의 대형 전자 게시판; 경기장에서의 점수판; 갤러리, 박물관 또는 건물 로비에서의 인터랙티브 아트워크; 광고판; 또는 상점에서 물품들을 주문하기 위해 상인에 의해 제공되는 디바이스)에서 공공 출력 디바이스들과 함께 이용될 수 있다. 설명되는 기술들 및 툴들은 다양한 상호작용 상황들에서 이용될 수 있다. 예를 들어, 사용자는 공공 디스플레이가 사용자의 이름 또는 사진을 보여주도록 하게 하거나, 또는 게임을 하거나 또는 사용자와 연관된 아바타의 동작들(예컨대, 손 흔들기, 점프하기, 심볼들을 보여주기, 수화와 같은 손짓하기)을 제어하는 것과 같은 보다 복잡한 동작들을 수행하게 할 수 있다. 다른 예시로서, 레스토랑에 있는 사용자는 공공 디스플레이가 사용자의 주문서를 (예컨대, 텍스트로, 이미지로, 및/또는 그래픽으로) 보여주도록 하게 할 수 있다. 다른 예시에서, 상점에 있는 사용자는 공공 디스플레이 상에서 제품의 시연을 요청할 수 있거나 또는 사용자에 의해 선택된 옵션들로 제품을 구성시킬 수 있다. 다른 예시로서, 경기장에 있는 사용자는 선호하는 운동선수 또는 예술인의 사진을 경기장에 있는 디스플레이 상에 나타나게 할 수 있다. 이러한 동작들은 개인화될 수 있다. 예를 들어, 사용자가 희망하는 경우, 아바타, 레스토랑 주문서, 또는 선호하는 운동선수의 사진이 사용자의 개인 정보(예컨대, 이미지, 이름, 또는 사용자 ID)와 함께 디스플레이될 수 있다. 다수의 사용자들이 동일한 공공 디스플레이와 상호작용할 수 있거나(예컨대, 다수의 아바타들을 제어하는 것), 사용자들은 공공 디스플레이 상에서 서로 상호작용할 수 있다(예컨대, 테니스 또는 퐁(Pong)과 같은 게임을 하는 것). 사용자의 수는 무제한일 수 있지만, 스크린 크기, 시스템 자원들(예컨대, 메모리, 통신 대역폭), 및/또는 제어중인 콘텐츠(예컨대, 제한된 수의 플레이어들을 갖는 게임)와 같은 요소들에 기초하여 사용자의 수를 제한시키는 것(예컨대, 아바타 디스플레이 시나리오에서 처음 100명의 사용자들, 테니스 게임 시나리오에서 처음 두 명의 사용자들)이 바람직할 수 있다.
설명되는 기술들 및 툴들은 임의의 크기 또는 유형을 갖는 임의의 개수의 디스플레이들과 함께 이용될 수 있다(예컨대, 단일의 대형 가상 디스플레이로서 콘텐츠를 보여주도록 구성된 여러 개의 소형 디스플레이들의 매트릭스이며, 각각의 디스플레이들은 서로 링크된 상이한 위치들(예컨대, 방의 상이한 측면들)에 있고 관련된 콘텐츠를 보여줌). 설명되는 기술들 및 툴들은 시각적 출력에 더하여 다른 유형의 출력을 제어하는데 이용될 수 있다. 예를 들어, 사용자는 합성된 음성 또는 다른 사운드와 같은 오디오 출력을 야기시키는 입력을 제공할 수 있다.
설명되는 기술들 및 툴들은 공공 디스플레이들에 영향을 주는 다른 접근법들에 비해 이로움을 제공한다. 예를 들어, 공공 디스플레이들에 접속된 키오스크들은 사용자들이 공공 디스플레이들과 상호작용하도록 해주지만 공공 디스플레이들과 상호작용할 수 있는 사용자들의 수를 불필요하게 제한시킨다(일반적으로 키오스크 당 한 명). 설명되는 기술들 및 툴들은 공공 디스플레이에 접속될 수 있는, 키오스크와 같은 입력 하드웨어에 의해 제한되지 않는다. 다른 예시로서, 사용자들에 의해 모바일 폰들을 통해 보내진 SMS 메시지들은 공공 디스플레이들에 영향을 미치는데 이용될 수 있지만, SMS 메시지들의 자유분방한 형태의 콘텐츠는 종종 메시지들을 디스플레이하기 전에 이러한 메시지들을 승인하기 위한 사람의 개입을 필요하게 되고, 이에 따라, SMS 메시지들의 전달에서 존재하는 보통의 레이턴시를 훨씬 넘게 레이턴시를 증가시킨다. 설명되는 기술들 및 툴들은 공공 디스플레이들과의 부적절한 상호작용들을 회피하고 레이턴시(예컨대, 사람 필터링 공정들에 의해 도입된 레이턴시)를 감소시키는데 이용될 수 있는 커맨드(command)들의 이산(discrete) 세트를 가능하게 한다. 사용자들은 단지 특정한 SMS 메시지들만을 보내도록 명령받을 수 있지만(예컨대, "1"은 제1 동작을 수행하기 위한 것이고, "2"는 제2 동작을 수행하기 위한 것임), 이것은 사용자들에 있어서 다루기가 힘들어질 수 있다. 설명되는 기술들 및 툴들은 공공 디스플레이들을 제어하기 위한 보다 직관적이고 풍부한 인터페이스들을 제공한다. SMS 메시지들은, 사용자들이 원격 위치들로부터 메시지들을 보낼 수 있도록, 종종 공개적으로 이용가능한 전화 번호들로 보내진다. 설명되는 기술들 및 툴들은 근접 구역 내의 사용자의 존재를 입증하고 원격 사용자 및/또는 비허가된 사용자에 의한 액세스를 제한시키기 위해 이용될 수 있다.
여기서 설명되는 예시들은 어떠한 방법으로든지 제한적인 것으로서 해석되어서는 안된다. 대신에, 본 개시는 개시된 다양한 실시예들의 단독 형태, 서로의 다양한 조합 및 서브조합 형태들로서의, 모두 신규하고 비자명한 특징들 및 양태들에 관한 것이다. 개시된 시스템, 방법, 및 장치는 임의의 특정한 양태 또는 특징 또는 이들의 조합들로 제한되지 않으며, 또한 임의의 하나 이상의 특정한 장점들이 존재하거나 또는 문제점들이 해결될 것을 요구하는 실시예들을 개시하고 있지 않다.
개시된 방법들 중 몇몇의 방법들의 오퍼레이션들을 편리한 표현을 위해 특정한 순차적 순서로 설명하지만, 아래에 진술된 특정한 언어에 의해 특정한 순서가 요구되지 않는 한, 이러한 방식의 설명은 재배열을 망라한다는 것을 이해해야 한다. 예를 들어, 순차적으로 설명되는 오퍼레이션들은 몇몇의 경우들에서, 재배열되거나, 생략되거나, 반복되거나 또는 동시에 수행될 수 있다. 다른 예시로서, 시스템 도면들을 참조하여 설명되는 시스템들은 도면들에서 보여진 엘리먼트들 또는 프로세싱 스테이지들의 순서를 변경시키거나, 일정한 엘리먼트들 또는 프로세싱 스테이지들을 반복하거나 생략함으로써 변동될 수 있다. 또한, 단순화를 위해, 첨부된 도면들은 개시된 것들 및 방법들이 다른 것들 및 방법들과 함께 이용될 수 있는 다양한 방식들을 보여주지 않을 수 있다. 추가적으로, 본 설명에서는 때때로 개시된 방법들을 설명하기 위해 "결정하다", "보내다" 및 "수신하다"와 같은 용어들을 이용한다. 이러한 용어들은 수행되는 실제의 오퍼레이션들의 고도의 추상물들이다. 이러한 용어들에 대응하는 실제의 오퍼레이션들은 특정 구현에 따라 달라질 수 있고 본 업계의 당업자에 의해 손쉽게 인식된다.
임의의 개시된 방법들은 하나 이상의 컴퓨터 판독가능 저장 매체(예컨대, (DRAM 또는 SRAM과 같은) 하나 이상의 휘발성 메모리 컴포넌트들, 또는 (하드 드라이브들과 같은) 비휘발성 메모리 컴포넌트들과 같은, 비일시적 컴퓨터 판독가능 매체) 상에 저장되고 컴퓨터(예컨대, 스마트 폰 또는 컴퓨팅 하드웨어를 포함하는 다른 모바일 디바이스들을 비롯한, 상업적으로 입수가능한 임의의 컴퓨터) 상에서 실행되는 컴퓨터 실행가능 명령어들로서 구현될 수 있다. 개시된 기술들을 이행하기 위한 임의의 컴퓨터 실행가능 명령어들뿐만이 아니라 개시된 실시예들의 이행 동안에 생성되고 이용된 임의의 데이터는 하나 이상의 컴퓨터 판독가능 매체(예컨대, 비일시적 컴퓨터 판독가능 매체) 상에 저장될 수 있다. 컴퓨터 실행가능 명령어들은, 예컨대, 전용 소프트웨어 애플리케이션 또는 웹 브라우저를 통해 액세스되거나 다운로드되는 소프트웨어 애플리케이션 또는 (원격 컴퓨팅 애플리케이션과 같은) 다른 소프트웨어 애플리케이션의 일부일 수 있다. 이러한 소프트웨어는, 예컨대 단일 로컬 컴퓨터(예컨대, 상업적으로 입수가능한 임의의 적절한 컴퓨터) 상에서 실행될 수 있거나, 또는 하나 이상의 네트워크 컴퓨터들을 이용하는 (예컨대, 인터넷, 광대역 네트워크, 근거리 네트워크, (클라우드 컴퓨팅 네트워크와 같은) 클라이언트 서버 네트워크 또는 이러한 다른 네트워크를 통한) 네트워크 환경에서 실행될 수 있다.
명료함을 위해, 소프트웨어 기반 구현예들 중 선택된 일정한 양태들만을 설명한다. 본 업계에서 잘 알려진 다른 상세사항들은 생략한다. 예를 들어, 개시된 기술은 임의의 특정한 컴퓨터 언어 또는 프로그램으로 제한되지 않는다는 것을 이해해야 한다. 개시된 기술은 C++, C#, 자바(Java), 펄(Perl), 자바스크립트(JavaScript), HTML5, 또는 임의의 다른 적절한 프로그래밍 언어로 쓰여진 소프트웨어에 의해 구현될 수 있다. 마찬가지로, 개시된 기술은 임의의 특정한 컴퓨터 또는 하드웨어 유형으로 제한되지 않는다. 적절한 컴퓨터 및 하드웨어의 어떠한 상세사항들은 잘 알려진 것이여서 본 개시에서는 상세하게 설명될 필요가 없다.
더 나아가, (예컨대, 컴퓨터로 하여금 개시된 본 방법들 중 임의의 방법을 수행하게 하기 위한 컴퓨터 실행가능 명령어들을 비롯한) 소프트웨어 기반 실시예들 중 임의의 실시예들은 적절한 통신 수단을 통해 업로드되거나, 다운로드되거나, 또는 원격적으로 액세스될 수 있다. 이러한 적절한 통신 수단은, 예컨대, 인터넷, 월드 와이드 웹, 인트라넷, 소프트웨어 애플리케이션, (광섬유 케이블을 비롯한) 케이블, 마그네틱 통신, (RF, 마이크로파, 및 적외선 통신을 비롯한) 일렉트로마그네틱 통신, 전자 통신, 또는 이러한 다른 통신 수단들을 포함한다.
I. 예시적인 모바일 디바이스
도 1은 일반적으로 참조번호 102로 도시된, 다양한 택일적 하드웨어 및 소프트웨어 컴포넌트들을 포함하는 예시적인 모바일 디바이스(100)를 도시하는 시스템도이다. 모바일 디바이스 내의 임의의 컴포넌트들(102)은 임의의 다른 컴포넌트와 통신할 수 있지만, 도해의 용이성을 위해, 모든 접속들을 도시하지는 않는다. 모바일 디바이스는 임의의 다양한 컴퓨팅 디바이스들(예컨대, 셀 폰, 스마트 폰, 핸드헬드 컴퓨터, 태블릿 컴퓨터 등)일 수 있고, 셀룰러 또는 위성 네트워크와 같은, 하나 이상의 모바일 통신 네트워크들(104)과의 양방향 무선 통신을 허용할 수 있다.
도시된 모바일 디바이스(100)는 신호 코딩, 데이터 프로세싱, 입력/출력 프로세싱, 전력 제어, 및/또는 다른 기능들과 같은 태스크(task)들을 수행하기 위한 제어기 또는 프로세서(110)(예컨대, 신호 프로세서, 마이크로프로세서, ASIC, 또는 다른 제어 및 프로세싱 논리 회로)를 포함할 수 있다. 오퍼레이팅 시스템(112)은 컴포넌트들(102)의 할당 및 활용을 다양한 방식들로 제어할 수 있고, 하나 이상의 애플리케이션 프로그램들(114)을 위한 지원을 제공할 수 있다. 애플리케이션 프로그램들은 공통의 모바일 컴퓨팅 애플리케이션들(예컨대, 이미지 캡쳐 애플리케이션, 이메일 애플리케이션, 칼렌더, 연락처 매니저, 웹 브라우저, 메시징 애플리케이션), 또는 임의의 다른 컴퓨팅 애플리케이션을 포함할 수 있다.
도시된 모바일 디바이스(100)는 메모리(120)를 포함할 수 있다. 메모리(120)는 탈착불가능 메모리(122) 및/또는 탈착가능 메모리(124)를 포함할 수 있다. 탈착불가능 메모리(122)는 RAM, ROM, 플래시 메모리, 하드 디스크, 또는 잘 알려진 다른 메모리 저장 기술들을 포함할 수 있다. 탈착가능 메모리(124)는 GSM 통신 시스템에서 잘 알려져 있는 플래시 메모리 또는 가입자 식별 모듈(Subscriber Identity Module; SIM) 카드를 포함할 수 있거나, 또는 스마트 카드와 같은 잘 알려진 다른 메모리 저장 기술들을 포함할 수 있다. 메모리(120)는 오퍼레이팅 시스템(112) 및 애플리케이션 프로그램들(114)을 구동시키기 위한 데이터 및/또는 코드를 저장하기 위해 이용될 수 있다. 예시적인 데이터는 하나 이상의 유선 또는 무선 네트워크들을 통해 하나 이상의 네트워크 서버들 또는 다른 디바이스들로부터 수신되고/수신되거나, 이들에 보내질 웹 페이지들, 텍스트, 이미지들, 사운드 화일들, 비디오 데이터, 또는 다른 데이터 세트들을 포함할 수 있다. 메모리(120)는 국제 모바일 가입자 식별정보(International Mobile Subscriber Identity; IMSI)와 같은 가입자 식별자, 및 국제 모바일 장비 식별자(International Mobile Equipment Identifier; IMEI)와 같은 장비 식별자를 저장하는데 이용될 수 있다. 이러한 식별자들은 사용자들 및 장비를 식별하기 위해 네트워크 서버에 송신될 수 있다.
모바일 디바이스(100)는 터치스크린(132), 마이크로폰(134), 카메라(136), 물리적 키보드(138), 트랙볼(140), 및/또는 근접 센서(142)와 같은 하나 이상의 입력 디바이스들(130), 및 스피커(152)와 하나 이상의 디스플레이들(154)과 같은 하나 이상의 출력 디바이스들(150)을 지원할 수 있다. 가능할 수 있는 다른 출력 디바이스들(미도시됨)에는 압전기 출력 디바이스 또는 햅틱 출력 디바이스가 포함될 수 있다. 몇몇의 디바이스들은 하나보다 많은 입력/출력 기능을 서빙할 수 있다. 예를 들어, 터치스크린(132) 및 디스플레이(154)는 단일 입력/출력 디바이스로 결합될 수 있다.
무선 모뎀(160)은 안테나(미도시됨)에 결합될 수 있고, 본 업계에서 잘 이해되는 바와 같이, 프로세서(110)와 외부 디바이스들간의 양방향 통신들을 지원할 수 있다. 모뎀(160)은 포괄적으로 도시된 것이며 모바일 통신 네트워크(104) 및/또는 다른 무선 기반 모뎀들(예컨대, 블루투스(164) 또는 Wi-Fi(162))과 통신하기 위한 셀룰러 모뎀을 포함할 수 있다. 무선 모뎀(160)은 일반적으로, 셀룰러 네트워크들간, 또는 모바일 디바이스와 공중 전화망(public switched telephone network; PSTN)간의, 단일 셀룰러 네트워크 내에서의 데이터 및 음성 통신들을 위한 GSM 네트워크와 같은, 하나 이상의 셀룰러 네트워크들과의 통신을 위해 구성된다.
모바일 디바이스는 적어도 하나의 입력/출력 포트(180), 전원 공급기(182), 글로벌 위치추적 시스템(Global Positioning System; GPS) 수신기와 같은 위성 네비게이션 시스템 수신기(184), 가속도계(186), 자이로스코프(미도시됨), 및/또는 USB 포트, IEEE 1394(FireWire) 포트, 및/또는 RS-232 포트일 수 있는 물리적 커넥터(190)를 더 포함할 수 있다. 임의의 컴포넌트들이 삭제될 수 있고 다른 컴포넌트들이 추가될 수 있으므로, 도시된 컴포넌트들(102)은 필수적인 것이 아니거나 또는 총망라적인 것도 아니다.
II. 일반화된 시스템
도 2는 여기서 설명된 기술들이 구현될 수 있는 예시적인 시스템(200)의 블록도이다. 본 예시에서, 클라이언트 디바이스(210)(예컨대, 스마트폰 또는 태블릿 컴퓨터와 같은 모바일 디바이스)는 네트워크(230)(예컨대, 인터넷과 같이 대중적으로 액세스가능한 네트워크)를 통해 공공 출력 디바이스(220)(예컨대, 건물 로비 또는 시내도로와 같은 공공 장소에 있는 디스플레이 디바이스)와 통신한다. 여기서 이용되는 용어 "공공 출력 디바이스"는 시각적 출력, 오디오 출력, 시각적 및 오디오 출력의 조합, 또는 몇몇의 다른 유형의 출력과 같이, 사용자들에 의해 인식되는 출력을 제공하는 공공 디바이스를 가리킨다. 여기서 이용되는 바와 같이 디바이스들에 적용되는 용어 "공공"(예컨대, 공공 디스플레이 디바이스들)은 하나보다 많은 사용자 및 하나보다 많은 클라이언트 디바이스에 의해 제어가능한 디바이스들을 설명하는데 이용되지만, 이러한 디바이스들이 가능한 모든 사용자들에 의해 액세스가능할 것을 요구하거나 또는 일반 대중에 액세스가능한 위치에 있을 것을 요구하지 않는다. 예를 들어, 공공 디스플레이 디바이스는 개인 거주지 및 사업장에 위치될 수 있고, 이 경우 각각 거주자들 또는 고용인들에 대해서만 액세스가능할 수 있다.
클라이언트 디바이스(210)는 범용 컴퓨팅 디바이스(예컨대, 스마트폰 또는 태블릿 컴퓨터) 또는 특수목적용 디바이스(예컨대, 공공 출력 디바이스(220)와 상호작용하도록 특수 설계된 디바이스)일 수 있다. 클라이언트 디바이스(210)는 공공 출력 디바이스(220)를 제어하기를 원하는 사용자에 의해 소유될 필요가 없다. 예를 들어, 클라이언트 디바이스(210)는 공공 출력 디바이스(220)를 제어할 목적으로 사용자에게 대여될 수 있다. 대여된 디바이스들은, 공공 디스플레이 디바이스로 특정 전시품을 관망하는 사용자들이 (예컨대, 해당 전시품을 포함하고 있는 방 안에서의 사용자 자신의 존재를 입증함으로써) 근접성을 입증한 후 공공 출력 디바이스를 제어할 수 있는 박물관과 같은 장소들에서 이용될 수 있다. 공공 출력 디바이스(220)는 제어 데이터(예컨대, 클라이언트 디바이스(210)로부터의 디스플레이 제어 데이터)를 수신하고, 제어 데이터에 응답하여 출력 오퍼레이션들(예컨대, 콘텐츠를 디스플레이하는 것)을 수행한다. 수신기 모듈(222)은 공공 출력 디바이스(220)에서 제어 데이터를 해석할 수 있다. 예를 들어, 수신기 모듈(222)은 클라이언트 디바이스(210)로부터 제어 데이터를 수신하고 이를 해석하여 공공 출력 디바이스(220)에 의해 수행될 출력 오퍼레이션들(예컨대, 아바타를 디스플레이하는 것, 게임 속에서 사용자 동작들을 디스플레이하는 것)을 결정한다.
설명된 예시들 중 임의의 예시들에서는, 클라이언트 디바이스(210)와 공공 출력 디바이스(220)간의 네트워크(230)를 통한 통신 접속들을 통해 데이터를 중계하는데에 중계 서비스가 이용될 수 있다. 예를 들어, 중계 서비스는 네트워크(230)에 접속된 서버(미도시됨) 상에서 구현될 수 있다. 중계 서비스는 하나의 디바이스로부터 다른 디바이스로 데이터를 중계하기 위해 단순한 HTTP(hypertext transfer protocol)를 이용할 수 있다. 중계 서비스는 보안 문제가 클라이언트 디바이스(210)와 공공 출력 디바이스(220)간의 직접적 통신을 방해할 때와 같이, 몇몇의 시나리오들에서 디바이스들간의 통신시 유연성을 제공해 준다. 예를 들어, 모바일 폰 캐리어들은 때때로 인바운드 접속(inbound connection)을 제한시키기 위해 NAT(network address translation) 및/또는 방화벽을 모바일 폰들이 이용할 것을 요구한다. 공공 출력 디바이스들은 아웃바운드 접속들(outbound connection)에 보다 더 관대하면서 인바운드 접속들에 대해 유사한 제한들을 가질 수 있는데, 이것은 보다 덜한 정도의 보안 위험을 수반할 수 있다.
여기서 설명되는 몇몇의 예시들은 HTTP를 통해 보내진 메시지들을 이용하여 송신자들(예컨대, 클라이언트 디바이스(210))과 수신자들(예컨대, 공공 출력 디바이스(220))간의 접속을 구축하고 이러한 접속들을 이용하여 데이터를 보낸다. 예를 들어, 공공 출력 디바이스(220)의 수신기 모듈(222)은 통신 세션들을 개설하고, 통신 세션들을 폐쇄하며, 클라이언트 디바이스(210)로부터 제어 데이터를 수신하기 위한 메시지들을 생성할 수 있다. 클라이언트 디바이스(210)의 공공 출력 디바이스 제어 모듈(212)은 개설된 통신 세션들에 등록하고 제어 데이터를 공공 출력 디바이스(220)에 보내기 위한 메시지들을 생성할 수 있다. 공공 출력 디바이스 제어 모듈(212)과 수신기 모듈(222)은 상이한 방식들(예컨대, 하드웨어 또는 소프트웨어)로 구현될 수 있다. 예를 들어, 공공 출력 디바이스 제어 모듈(212)은 클라이언트 디바이스(210) 상에서 커스텀(custom) 제어 애플리케이션(미도시됨)으로서 구현될 수 있거나, 또는 사용자는 공공 출력 디바이스(220)의 제어와 연관된 웹페이지(미도시됨)로 네비게이팅할 수 있다. 커스텀 제어 애플리케이션 또는 웹페이지는 공공 출력 디바이스 제어 모듈(212)로서 동작하는 컴퓨터 프로그램 코드를 제공할 수 있다.
몇몇의 시나리오들에서, 공공 출력 디바이스들에 대한 액세스를 (예컨대, 원격 위치들에 있는 침입자들에 의한 중단을 막기 위해) 로컬 영역에 있는 사용자들로 한정시키는 것이 바람직하다. 여기서 이용되는 "근접성" 용어는 디바이스들(예컨대, 클라이언트 디바이스(210)와 공공 출력 디바이스(220))간의 가까움의 척도(예컨대, 물리적 거리)를 기술하는데 이용된다. 도 2에서 도시된 예시에서, 클라이언트 디바이스(210)는 공공 출력 디바이스(220)를 또한 포함하는 근접 구역(290) 내에 있다. 근접 구역(290) 내의 클라이언트 디바이스(210)의 존재는 클라이언트 디바이스가 공공 출력 디바이스(220)를 제어하기 위해 충분히 가까이에 있는 것으로서 간주된다는 것을 나타낸다.
여기서 설명되는 임의의 예시들에서, 근접성은 공공 출력 디바이스로부터의 거리, 상황(예컨대, 클라이언트 디바이스와 공공 출력 디바이스의 장소 내에서의 공동위치), 또는 거리 또는 상황의 몇몇의 조합에 기초될 수 있다. 예를 들어, 경기장의 맞은편에 있는 공공 디스플레이로부터 150m 거리 떨어진 상태에서 모바일폰을 쥐고 있는 경기장 내의 사용자는 근접 구역 내에 있는 것으로 간주될 수 있는 반면에, 공공 디스플레이로부터 100m밖에 떨어져 있지 않지만 경기장 외부에 있는 사용자는 근접 구역 외부에 있는 것으로 간주될 수 있다. 근접성은 명시적으로 측정될 수 있다. 예를 들어, 클라이언트 디바이스의 위치는 GPS 또는 네트워크 기반 위치결정(network-based localization)에 의해 계산될 수 있다. 클라이언트 디바이스의 위치는 또한 근사화될 수 있다. 예를 들어, 클라이언트 디바이스의 정확한 위치가 알려지지 않은 경우에도, 클라이언트 디바이스가 공공 출력 디바이스의 범위 내에 있는지 여부를 결정하기 위해 제한된 범위(예컨대, 50m)를 갖는 통신 기술(예컨대, 블루투스)이 이용될 수 있다. 다른 예시로서, 공공 출력 디바이스가 접속해 있는 근거리 무선 네트워크에 클라이언트 디바이스가 합류한 경우, 시스템은 클라이언트 디바이스가 근거리 무선 네트워크의 범위를 커버하는 근접 구역 내에 있다라고 암시할 수 있다. 클라이언트 디바이스의 사용자에게는 임의의 위치 데이터의 수집에 관한 통지와, 위치 데이터의 수집에 대한 동의를 제공하거나 거부할 기회가 주어질 수 있다. 동의는, 위치 데이터가 수집되기 전에 위치 데이터의 수집을 방지하기 위한 긍정적 동작(affirmative action)을 사용자가 취할 수 있는 옵트 아웃(opt-out) 동의, 또는 위치 데이터가 수집되기 전에 위치 데이터의 수집에 대한 동의를 주기 위한 긍정적 동작을 사용자가 취할 수 있는 옵트 인(opt-in) 동의의 형태로 주어질 수 있다.
상술한 많은 근접성 척도들은 유용하지만 또한 단점들을 갖는다. 예를 들어, 공공 출력 디바이스의 비허가된 제어를 얻으려고 시도할 수 있는 침입자들에 의해, 또는 근접성 제약들을 우회하려고 시도할 수 있는 적법한 사용자들에 의해 GPS 좌표들은 가장(impersonate)될 수 있다. 다른 예시로서, 근접성을 입증하기 위해 블루투스 및 로컬 네트워크 접속들을 요구하는 것은 몇몇의 사용자들에 있어서는 불편할 수 있다. 따라서, 설명된 예시들 중 임의의 예시들에서는 다른 근접성 척도들(예컨대, 시각적 근접성, 오디오 근접성, 또는 몇몇의 다른 근접성 척도)가 이용될 수 있다. 예를 들어, 공공 출력 디바이스들(예컨대, 디스플레이 디바이스들)에서 디스플레이되는 근접성 코드들은 시각적 근접성을 결정하는데 이용될 수 있다. 몇몇의 설명된 예시들에서, 공공 디스플레이 디바이스 상에서 근접성 코드를 디스플레이함으로써, 클라이언트 디바이스의 정확한 위치가 알려지지 않은 경우에도 사용자가 근접성 코드를 제공할 수 있다면 사용자는 시각적 근접 구역 내에 있다는 것을 시스템은 암시할 수 있다. 시각적 근접 구역의 크기 및 형상은 디스플레이되는 코드의 크기, 디스플레이 자체의 크기 또는 조망각도 범위와 같은 요소들에 기초하여 달라질 수 있다. 다른 예시로서, 톤(tone) 또는 (예컨대, 인간의 귀로 들을 수 있거나 또는 인간의 귀로 들을 수 없는) 다른 오디오 신호들이 오디오 근접성을 결정하는데 이용될 수 있다. 몇몇의 설명된 예시들에서, 공공 디스플레이 디바이스 또는 클라이언트 디바이스에 의해 송신된 톤들은 다른 디바이스에 의해 수신될 수 있고 오디오 근접성을 입증하는데 이용될 수 있다. 오디오 근접 구역의 크기 및 형상은 특정 장소의 오디오 신호 또는 음향의 세기와 같은 요소들에 기초하여 달라질 수 있다. 대안적으로, 다른 신호들 또는 프로토콜들이 근접성을 입증하기 위해 이용될 수 있다.
상이한 근접성 정도(예컨대, 공공 출력 디바이스들로부터의 상이한 거리 범위들 또는 방향들)를 입증하기 위해 상이한 근접성 척도들이 이용될 수 있다. 예를 들어, 공공 디스플레이 디바이스는 특정 장소(예컨대, 경기장) 내 및/또는 한정된 조망 각도 내에서 사용자에 의해 보여질 수 있는 코드를 디스플레이할 수 있다. 다른 예시로서, 공공 디스플레이 디바이스는 특정 장소 내부 또는 외부 및/또는 공공 디스플레이 디바이스로부터의 임의의 방향에 있는 클라이언트 디바이스에 의해 탐지될 수 있는 톤을 송신할 수 있다. 상이한 근접성 척도들은 독립적으로 또는 서로 조합하여 이용될 수 있다.
공공 출력 디바이스와 상호작용하고 있는 사용자는 공공 출력 디바이스를 제어하기 위한 커맨드(command)들을 보낼 수 있다. 이러한 커맨드들은 커맨드들의 한정된 세트(예컨대, 디스플레이 디바이스 상의 특정한 시각적 콘텐츠를 제어하기 위한 커맨드들)로부터 나올 수 있다. 다른 데이터(예컨대, 자유스런 형태의 텍스트 또는 이미지)가 또한 공공 출력 디바이스에 보내질 수 있지만, 커맨드들의 한정된 세트는 예컨대 콘텐츠를 공공 조망(public viewing)에 적절해지도록 유지하는데 유용될 수 있다.
예시적인 클라이언트 디바이스들, 공공 출력 디바이스들, 근접성 척도들, 사용자 인터페이스들, 제어가능 콘텐츠, 통신 프로토콜, 및 제어 시나리오들을 아래에서 자세하게 설명한다.
실제에서는, 시스템(200)과 같은 여기서 설명된 시스템들은 추가적인 기능성 및, 시스템 컴포넌트들간의 보다 복잡한 관계 등을 가지면서 보다 복잡할 수 있다. 여기서 설명된 기술들은 오퍼레이팅 시스템 또는 하드웨어의 특성들에 일반적일 수 있고, 설명한 특징들의 장점을 살려서 다양한 환경들에서 적용될 수 있다.
III. 예시적인 배치들
도 3은 여기서 설명된 기술들이 구현될 수 있는 예시적인 배치(300)의 다이어그램이다. 본 예시에서, 사용자(312)에 의해 제어되는 모바일 디바이스(310)(예컨대, 모바일폰, 태블릿 컴퓨터)는 네트워크(330)를 통해 (예컨대, 아바타(380)를 제어함으로써) 공공 디스플레이 디바이스(320)를 제어하는 것을 허가받는다. 공공 디스플레이 디바이스(320)는 제어가능한 디스플레이 영역(370)을 포함하고, 또한 명령어들(350)과 근접성 코드(360)를 디스플레이한다. 도시된 바와 같이, 명령어들(350)은 제어가능한 디스플레이 영역(370)에서 아바타(380)를 제어하기 위해 사용자들이 근접성 코드(360)를 입력하도록 안내한다. 대안적으로, 명령어들(350)은 도 3에서 도시된 것들과는 다르거나 또는 생략된다. 모바일 디바이스(310)는 디스플레이(314)(예컨대, 터치스크린 디스플레이) 및 사용자(312)에 의해 근접성 코드(360)가 입력중에 있는 것으로서 도시된 사용자 인터페이스(316)를 포함한다.
여기서 설명된 임의의 예시들에서, 공공 출력 디바이스를 제어하기 위한 사용자 및/또는 클라이언트 디바이스의 허가는 근접성 코드의 확인으로부터 결정될 수 있다. 근접성 코드의 확인은, 예컨대, 클라이언트 디바이스에 의해 송신된 근접성 코드와 하나 이상의 적법한 코드들(예컨대, 데이터베이스에 있는 단일의 적법한 코드, 적법한 근접성 코드들의 세트)를 (예컨대, 서버에 의해) 비교하는 것을 포함할 수 있다. 적법한 코드들이 생성될 수 있고 송신된 코드들은 공공 디스플레이 디바이스 또는 (서버와 같은) 몇몇의 다른 디바이스에 의해 확인될 수 있다. 적법한 코드들은 예컨대, 공공 디스플레이 디바이스 또는 (서버와 같은) 몇몇의 다른 디바이스의 메모리 또는 다른 저장소에 저장될 수 있다. 송신된 근접성 코드가 확인된 경우, 클라이언트 디바이스는 허가 데이터를 수신할 수 있다. 허가 데이터는, 예컨대 공공 디스플레이 디바이스와의 통신 세션을 위한 세션 ID와 같은 식별자 또는 허가 코드를 포함할 수 있다. 하나보다 많은 사용자에 의해 동일한 근접성 코드가 이용될 수 있다. 근접성 코드들은 근접성을 입증하기 위한 다른 정보와 함께 이용될 수 있다. 예를 들어, 경기장 내의 사용자의 존재를 입증하기 위해, 사용자는 근접성 코드와 더불어, 예컨대 GPS 위치 정보, 좌석 번호, 또는 인쇄된 티켓 상의 추가적인 코드를 제공할 수 있다.
여기서 설명된 임의의 예시들에서, 근접성 코드들은 제한된 시구간 동안 유효한 시간제한된 근접성 코드들일 수 있다. 시간이 경과함에 따라 상이한 시구간들에 대한 상이한 근접성 코드들이 디스플레이될 수 있다. 이러한 코드들을 회전 코드들이라고 칭할 수 있다. 시간제한된 근접성 코드의 확인은 사용자가 만료된 코드(예컨대, 이전날의 사용자에 의한 코드)를 이용하고 있지 않다는 것을 보여줄 수 있다. 현재의 사용자의 존재는 코드의 확인으로부터 암시될 수 있다.
여기서 설명된 임의의 예시들에서, 근접성 코드들은 텍스트, 그래픽(예컨대, 직선형 바코드 또는 QR 코드들과 같은 이차원 바코드), 이미지, 또는 임의의 다른 적절한 시각적 정보를 포함할 수 있다. 근접성 코드들은 또한 단일 톤 또는 톤들의 세트와 같은 오디오 정보, 또는 임의의 다른 적절한 오디오 정보를 포함할 수 있다. 여기서 설명된 임의의 예시들에서, 사용자들은 터치스크린 또는 키보드에 타이핑하거나, 마이크로폰에 대고 코드를 말하거나, 카메라를 이용하여 코드의 이미지를 캡쳐하거나, 또는 몇몇의 다른 사용자 입력 메커니즘에 의해 근접성 코드들을 입력할 수 있다. 이용되는 입력의 유형은, 예컨대 이용가능한 입력 디바이스들, 사용자 선호사항, 및 코드의 유형에 따라 달라질 수 있다. 예를 들어, 카메라 디바이스가 이차원 바코드의 이미지를 캡쳐하기 위해 이용될 수 있다. 대안적으로, 근접성 코드들은 (예컨대, 사용자 상호작용 없이) 몇몇의 다른 방식으로 클라이언트 디바이스들에 의해 획득될 수 있다.
도 3에서 도시된 예시에서, 모바일 디바이스(310)는 네트워크(330)를 통해 근접성 코드(360)를 송신한다. 송신된 근접성 코드가 (예컨대, 네트워크(330)상의 서버(미도시됨)에 의해) 확인된 경우, 모바일 디바이스(310)는 허가 데이터를 수신한다. 제어가능한 디스플레이 영역(370)에서 도시된 아바타(380)는 사용자(312)에 의해 제어될 준비가 된다. 아바타(380)는 사용자(312) 또는 다른 사용자와 연관될 수 있거나, 또는 특정한 사용자와 연관되지 않을 수 있다.
도 4는 여기서 설명된 기술들이 구현될 수 있는 다른 예시적인 배치(400)의 다이어그램이다. 본 예시에서, 사용자(412)에 의해 제어되는 모바일 디바이스(410)는 네트워크(430)를 통해 공공 디스플레이 디바이스(420)를 제어하기 위한 제어 데이터를 보낸다. 공공 디스플레이 디바이스(420)는 제어가능한 디스플레이 영역(470)을 포함하고, 또한 명령어들(450)과 근접성 코드(460)를 디스플레이한다. 도시된 바와 같이, 명령어들(450)은 사용자(412)가 "1" 또는 "2"로 라벨표시된 버튼들(예컨대, 그래픽 사용자 인터페이스에 있는 소프트웨어 버튼들)을 작동시켜서 각각 아바타(480)가 아바타 자신의 손을 흔들거나 또는 점프하게 하도록 안내한다. 대안적으로, 명령어들(450)은 도 4에서 도시된 것들과는 다르거나 또는 생략된다.
모바일 디바이스(410)는 디스플레이(414)(예컨대, 터치스크린 디스플레이), 및 "1"과 "2"로 라벨표시된 소프트웨어 버튼들이 도시되어 있고, 사용자(412)에 의한 작동을 보여주기 위해 "1"로 라벨표시된 버튼이 강조표시되어 있는 그래픽 사용자 인터페이스(416)를 포함한다. 사용자 인터페이스(416)는 커스텀 제어 애플리케이션, 웹 페이지, 또는 몇몇의 다른 소프트웨어 또는 하드웨어 컴포넌트에 의해 제공될 수 있다.
여기서 설명된 임의의 예시들에서, 사용자들은 터치스크린을 두드리거나 또는 키보드 상의 키를 누르거나, 또는 마이크로폰에 대고 말을 하거나, 또는 몇몇의 다른 입력 메커니즘에 의해 사용자 인터페이스들에서의 사용자 인터페이스 엘리먼트들(예컨대, 소프트웨어 버튼들)을 작동시킬 수 있다. 이용되는 입력의 유형은, 예컨대 이용가능한 입력 디바이스들 및 사용자 선호사항에 따라 달라질 수 있다.
도 4에서 도시된 예시에서, 모바일 디바이스(410)의 근접성은 근접성 코드(460)의 송신에 의해 확인되었다. 모바일 디바이스(410)는 네트워크(430)를 통해 제어 데이터(예컨대, "1"로 라벨표시된 버튼의 사용자 선택에 대응하는 제어 데이터)를 공공 디스플레이 디바이스(420)에 송신한다. 제어가능한 디스플레이 영역(470)에서 도시된 아바타(480)는 모바일 디바이스(410)에 의해 보내진 제어 데이터에 응답하여, 자신의 손을 흔들고 있다.
도 5는 여기서 설명된 기술들이 구현될 수 있는 다른 예시적인 배치(500)의 다이어그램이다. 본 예시에서, 사용자들(512, 542)에 의해 제어되는 모바일 디바이스들(510, 540)은 각각 공공 네트워크(530)(예컨대, 인터넷)를 통해 공공 디스플레이 디바이스(520)와 통신한다. 공공 디스플레이 디바이스(520)는 사용자들(512, 542)에 의해 제어될 수 있는 게임 엘리먼트들(580, 582)을 갖는 제어가능한 디스플레이 영역(570)을 포함한다. 공공 디스플레이 디바이스(520)는 또한 명령어들(550), 상태 영역(552), 및 근접성 코드(560)를 디스플레이한다. 도시된 바와 같이, 명령어들(550)은 제어가능한 디스플레이 영역(570)에서 도시된 게임에 합류하도록 하기 위해 사용자들이 근접성 코드(560)와 함께 사용자 ID(예컨대, "게이머태그")를 입력하도록 안내한다. 대안적으로, 명령어들(550)은 도 5에서 도시된 것들과는 다르거나 또는 생략된다.
도 5에서 도시된 예시에서, 사용자 ID들은 사용자들(512, 542)을 인증하는데 이용된다. 도 5에서 도시된 예시적인 사용자 ID들은 "게이머태그들"이며, 이것들은 사용자들(512, 542)에 고유하며 공개적으로 볼 수 있고 온라인 서비스(예컨대, 마이크로소프트사의 액스박스 라이브)에 사전에 등록한 사용자 ID들이다. 게이머태그들은 또한 공공 디스플레이 디바이스(520) 상에 랜더링되는 개인화된 아바타(도 5에서는 미도시됨)와 연관될 수 있다. 대안적으로, 다른 유형들의 사용자 ID들(예컨대, 공공 디스플레이 디바이스(520) 상에서 디스플레이되지 않는 개인 사용자 ID들)이 인증을 위해 이용될 수 있거나, 또는 사용자 ID들 이외의 다른 인증 데이터가 이용될 수 있다. 예를 들어, 보안 토큰(예컨대, 보안 토큰 서비스(security token service; STS)에 의해 발행된 보안 토큰), 클라이언트 디바이스 상에 저장된 인증 크레덴셜들과 같은 암호 정보 또는 다른 정보가 인증을 위해 이용될 수 있다. 상태 영역(552)에서 표시된 바와 같이, 게임 엘리먼트(580)("플레이어 1")는 사용자(542)(게이머태그: "게이머1")에 의해 제어중에 있다. 사용자(512)(게이머태그: "게이머2")는 게임 엘리먼트(582)("플레이어 2")를 제어하기 위해 게임에 합류중에 있다. 대안적으로, 상태 영역(552)에서의 정보는 도 5에서 도시된 정보와는 다르거나 또는 생략된다.
여기서 설명된 임의의 예시들에서는, 다양한 인증 메커니즘들(예컨대, OpenID, OAuth, 마이크로소프트 윈도우즈 라이브 ID)이 독립적으로 또는 서로 조합하여, 또는 여기서 설명된 다른 인증 메커니즘들과 함께 이용될 수 있다. 예를 들어, 마이크로소프트 윈도우즈 폰 플랫폼은 윈도우즈 라이브 ID 및 대응하는 게이머태그를 이용하여 몇몇의 애플리케이션들을 자동적으로 인증할 수 있다. 애플리케이션들은 또한 해당 애플리케이션에 특유적인 커스텀 인증 메커니즘들을 이용할 수 있다. 예를 들어, 모바일 디바이스로 다운로드된 커스텀 제어 애플리케이션은 커스텀 사용자 ID 및 패스워드를 이용하여 공공 디스플레이 디바이스를 제어하기를 원하는 사용자들을 인증할 수 있다. 여기서 설명된 통신 프로토콜을 통해 토큰들이 서버에 전달될 수 있고, 서버는 토큰들을 분석하여 특정 사용자 및 클라이언트 디바이스가 공공 디스플레이 디바이스를 제어하는 것을 허용할 것인지 여부를 결정할 수 있다. 대안적으로, 사용자들은 강력한 인증 크레덴셜들 없이 식별될 수 있다. 예를 들어, 사용자는 스크린 상에 디스플레이될, 본인 이름(예컨대, 공공 디스플레이 디바이스 서비스로 각자의 이름을 미리등록한 후), 미등록된 사용자 ID, 또는 다른 사람의 이름 또는 사용자 ID를 입력할 수 있다. 다른 대안구성으로서, 사용자들은 익명일 수 있다.
도 5에서 도시된 예시에서, 사용자들(512, 542)은 각자의 모바일 디바이스들(510, 540)을 이용하여 공공 네트워크(530) 상의 HTTP를 통해 공유형 통신 세션("세션_ID1"으로 라벨표시됨)에서 공공 디스플레이 디바이스(520)와 통신한다. 서버(532)는 공공 디스플레이 디바이스(520) 및 모바일 디바이스들(510, 540)에 의해 생성된 메시지들을 중계하기 위해 중계 서비스를 제공한다. 공공 디스플레이 디바이스(520)는 통신 세션들을 개설하고 폐쇄시키기 위한 메시지들 및 제어 데이터(예컨대, 모바일 디바이스들(510, 540)로부터의 제어 메시지들에서 보내진 제어 데이터)를 획득하기 위한 메시지들을 생성할 수 있다. 모바일 디바이스들(510, 540)은 개설된 통신 세션들에 등록하고, 공공 디스플레이 디바이스(520) 상의 콘텐츠를 제어하는데 이용될 수 있는 제어 데이터를 보내기 위한 메시지들을 생성할 수 있다.
모바일 디바이스(510)는 디스플레이(514)(예컨대, 터치스크린 디스플레이) 및 사용자(512)에 의해 근접성 코드(560) 및 게이머태그("게이머2")가 입력중에 있는 것으로서 도시된 사용자 인터페이스(516)를 포함한다. 대안적으로, 근접성 코드(560) 및 게이머태그(또는 다른 인증 정보)는 사용자 동작 없이 및/또는 디스플레이(514) 상에 디스플레이되는 것 없이 모바일 디바이스(510)에 제공될 수 있다. 도 5에서 도시된 예시에서, 모바일 디바이스(510)는 공공 네트워크(530)를 통해 인증 정보(예컨대, 사용자(512)와 연관된 게이머태그)와 함께 근접성 코드(560)를 송신한다. 모바일 디바이스(510)는 모바일 디바이스들(510, 540)과 공공 디스플레이 디바이스(520)간에 개설된 HTTP 세션에 대응하는 세션 식별자("세션_ID1")를 포함하는 응답을 (예컨대, 서버(532)로부터) 수신한다. 모바일 디바이스(510)는 개설된 통신 세션에 등록하고 사용자(512)가 게임에 합류하는 것을 허용하기 위해 세션 식별자를 포함하는 메시지를 (예컨대, 서버(532)에) 송신할 수 있다.
모바일 디바이스(540)는 그래픽 사용자 인터페이스(546)에서 상하방향 화살표 버튼들이 도시되어 있는 디스플레이(544)(예컨대, 터치스크린 디스플레이)를 포함한다. 그래픽 사용자 인터페이스(546)는 커스텀 제어 애플리케이션, 웹 페이지, 또는 몇몇의 다른 소프트웨어 또는 하드웨어 컴포넌트에 의해 제공될 수 있다. 도 5에서 도시된 예시에서, 모바일 디바이스(540)의 근접성은 (예컨대, 근접성 코드(560)의 송신에 의해) 이미 확인되었고, 사용자(542)가 게임에 합류하는 것을 허용하기 위해 모바일 디바이스(540)는 (예컨대, 세션 식별자를 갖는 메시지를 보냄으로써) 개설된 통신 세션에 등록하였다. 모바일 디바이스(540)는 공공 네트워크(530) 상의 제어 메시지들을 통해 제어 데이터(예컨대, 게임 엘리먼트(580)의 상방향 또는 하방향 움직임의 사용자의 선택에 대응하는 디스플레이 제어 데이터)를 송신한다. 모바일 디바이스(540)는 또한 예컨대, 제어 메시지가 공공 디스플레이 디바이스(520)에 성공적으로 중계되었다는 것을 나타낼 수 있는 응답 데이터를 (예컨대, 서버(532)로부터) 수신할 수 있다.
도 6은 여기서 설명된 기술들이 구현될 수 있는 다른 예시적인 배치(600)의 다이어그램이다. 본 예시에서, 사용자들(612, 642)에 의해 제어되는 모바일 디바이스들(610, 640)은 각각 공공 네트워크(630)(예컨대, 인터넷)를 통해 공공 디스플레이 디바이스(620)와 통신한다. 공공 디스플레이 디바이스(620)는 사용자들(612, 642) 각각과 연관된 아바타들(680, 682)을 갖는 제어가능한 디스플레이 영역(670)을 포함한다. 공공 디스플레이 디바이스(620)는 또한 명령어들(650, 654) 및 상태 영역(652)을 디스플레이한다. 도시된 바와 같이, 명령어들(650)은 제어가능한 디스플레이 영역(670)에서 사용자 ID와 연관된 아바타를 제어하기 위해 사용자들이 사용자 ID(예컨대, "게이머태그")를 입력하도록 안내한다. 명령어들(654)은 사용자들이 "1" 또는 "2"로 라벨표시된 버튼들(예컨대, 그래픽 사용자 인터페이스에 있는 소프트웨어 버튼들)을 작동시켜서 아바타들이 각각 손을 흔들거나 또는 점프하게 하도록 안내한다. 상태 영역(652)에서 표시된 바와 같이, 아바타(680)는 사용자(642)(게이머태그: "게이머1")에 의해 제어중에 있고, 사용자(612)(게이머태그: "게이머2")는 아바타(682)를 제어하기 위해 합류중에 있고, 제어가능한 디스플레이 영역(670)의 다른 부분은 다른 사용자(미도시됨)가 다른 아바타(미도시됨)를 디스플레이하고 제어하기 위해 이용가능한 것으로서 표시된다("지금 합류하세요!"라는 문구로 표시됨). 대안적으로, 상태 영역(652)에서의 명령어들(650, 654) 및/또는 정보는 도 6에서 도시된 정보와는 다르거나 또는 생략된다.
도 6에서 도시된 예시에서, 사용자들(612, 642)은 각자의 모바일 디바이스들(610, 640)을 이용하여 공공 네트워크(630) 상의 HTTP를 통해 개별적인 통신 세션들("세션_ID1" 및 "세션_ID2"로 각각 라벨표시됨)에서 공공 디스플레이 디바이스(620)와 통신한다. 서버(632)는 공공 디스플레이 디바이스(620) 및 모바일 디바이스들(610, 640)에 의해 생성된 메시지들을 중계하기 위해 중계 서비스를 제공한다. 공공 디스플레이 디바이스(620)는 통신 세션들을 개설하고 폐쇄시키기 위한 메시지들 및 제어 데이터(예컨대, 모바일 디바이스들(610, 640)로부터의 제어 메시지들에서 보내진 제어 데이터)를 획득하기 위한 메시지들을 생성할 수 있다. 모바일 디바이스들(610, 640)은 개설된 통신 세션들에 등록하고, 공공 디스플레이 디바이스(620) 상의 콘텐츠를 제어하는데 이용될 수 있는 제어 데이터를 보내기 위한 메시지들을 생성할 수 있다.
모바일 디바이스(610)는 사용자(612)와 연관된 게이머태그("게이머2")가 도시되어 있는 디스플레이(614)(예컨대, 터치스크린 디스플레이)를 포함한다. 대안적으로, 게이머태그(또는 다른 인증 정보)는 사용자 동작 없이 및/또는 디스플레이(614) 상에 디스플레이되는 것 없이 모바일 디바이스(610)에 제공될 수 있다. 도 6에서 도시된 예시에서, 모바일 디바이스(610)는 공공 네트워크(630)를 통해 게이머태그와 함께 근접성 데이터(예컨대, GPS 위치 데이터 및/또는 근접성 코드)를 송신한다. 모바일 디바이스(610)는 개설된 HTTP 통신 세션에 대응하는 세션 식별자("세션_ID2")를 포함하는 응답을 (예컨대, 서버(632)로부터) 수신한다. 모바일 디바이스(610)는 개설된 통신 세션에 등록하고 사용자(612)가 아바타(682)를 제어하는 것을 허용하기 위해 세션 식별자를 포함하는 메시지를 (예컨대, 서버(632)에) 송신할 수 있다.
모바일 디바이스(640)는 디스플레이(644)(예컨대, 터치스크린 디스플레이), 및 "1"과 "2"로 라벨표시된 소프트웨어 버튼들이 도시되어 있고, 사용자(642)에 의한 작동을 보여주기 위해 "1"로 라벨표시된 버튼이 강조표시되어 있는 그래픽 사용자 인터페이스(646)를 포함한다. 사용자 인터페이스(646)는 커스텀 제어 애플리케이션, 웹 페이지, 또는 몇몇의 다른 소프트웨어 또는 하드웨어 컴포넌트에 의해 제공될 수 있다. 도 6에서 도시된 예시에서, 모바일 디바이스(640)의 근접성은 (예컨대, 근접성 데이터의 송신에 의해) 이미 확인되었고, 사용자(642)가 아바타(680)를 제어하는 것을 허용하기 위해 모바일 디바이스(640)는 (예컨대, 연관된 세션 ID를 갖는 메시지를 보냄으로써) 세션_ID1과 연관된 개설된 통신 세션에 등록하였다. 모바일 디바이스(640)는 공공 네트워크(630) 상의 제어 메시지들을 통해 제어 데이터(예컨대, 아바타(680)에 의해 수행될 동작들의 사용자의 선택에 대응하는 제어 데이터)를 송신한다. 모바일 디바이스(640)는 또한 예컨대, 제어 메시지가 공공 디스플레이 디바이스(620)에 성공적으로 중계되었다는 것을 나타낼 수 있는 응답 데이터를 (예컨대, 서버(632)로부터) 수신할 수 있다.
배치들(300, 400, 500, 600)에서 도시된 예시들에 대한 대안구성들이 가능하다. 예를 들어, 공공 디스플레이 디바이스들(320, 420, 520, 620)은 사용자들에 의해 제어가능한 상이한 콘텐츠를 디스플레이할 수 있다. 다른 예시로서, 공공 디스플레이 디바이스들(320, 420, 520, 620)에 의해 디스플레이되는 콘텐츠는 몇몇의 다른 방식으로 제어될 수 있다. 실제에서는, 배치들(300, 400, 500, 600)과 같은 여기서 설명된 배치들은 추가적인 기능성 및, 디바이스들간의 보다 복잡한 관계 등을 가지면서 보다 복잡할 수 있다. 여기서 설명된 기술들은 오퍼레이팅 시스템 또는 하드웨어의 특성들에 일반적일 수 있고, 설명한 특징들의 장점을 살려서 다양한 환경들에서 적용될 수 있다.
IV. 예시적인 프로토콜
본 섹션은 개인 디바이스들로 공공 디스플레이들을 제어하기 위한 예시적인 통신 프로토콜을 설명한다. 예시적인 통신 프로토콜은 상술한 배치들(500, 600)과 같은 배치들, 또는 몇몇의 다른 배치에서 이용될 수 있다.
이러한 예시적인 통신 프로토콜에서는, 중계 서비스를 통한 메시지들 및 데이터의 교환에 대한 두 개의 종단점들, 즉 수신단(예컨대, 공공 디스플레이 디바이스) 및 송신단(예컨대, 공공 디스플레이 디바이스를 제어하기 위해 이용되는 클라이언트 디바이스)이 존재한다. 수신단은 수신자라고 칭해질 수 있고, 송신단은 송신자라고 칭해질 수 있다. 중계 서비스는 수신자 및 송신자와 HTTP를 통해 통신하는 중계 서버 상에서 구현된다. 수신자와 송신자간의 고속 통신을 달성하기 위해, 중계 서버는 접속 파킹(connection parking)을 수행한다. 예를 들어, 수신자가 송신자로부터 데이터를 수신하는 것을 시도할 때, (예컨대, 송신자가 어떠한 것도 송신하지 않았기 때문에) 수신할 데이터가 없는 경우, 중계 서버는 수신할 데이터가 있을 때 까지 수신자의 접속을 개방(open)시킴으로써 수신자의 접속을 파킹시킨다. 다른 예시로서, 중계 서비스는 송신자의 접속을 파킹시켜서 개방된 접속이 수신자로부터 이용가능해지기를 기다릴 수 있다. 접속들이 개방된 상태로 남아있을 수 있는 시간은 (예컨대, 실제로 이용중에 있지 않는 접속들을 파킹하는 것을 회피하기 위해) 송신자로부터 데이터를 기다릴 때의 수신자의 접속에 대한 수 분(a few minutes), 또는 수신자로부터 개방된 접속을 기다릴 때의 송신자의 접속에 대한 수 초(a few seconds)와 같은, 유한적인 시구간으로 제한될 수 있다. 클라이언트가 서버에게 요청을 하고 서버는 이 요청을 파킹할 때, 서버는 접속을 파킹시킬 시간량을 결정할 수 있다. 하지만, 클라이언트 상의 기본적인 오퍼레이팅 시스템 라이브러리들은 파킹된 접속이 복귀하기까지 얼마나 오랫동안(예컨대, 일 분) 클라이언트가 기다릴 것인지에 영향을 미칠 수 있다. 서버는, 파킹되었지만 여전히 어떠한 응답을 갖지 않는 요청에 대해 (예컨대, 클라이언트 라이브러리들에 의해 강제될 수 있는, 일 분 내, 또는 다른 몇몇의 적절한 시구간 내) 응답할 수 있다. 접속들을 파킹시킴으로써, 중계 서비스는 동기 유사 방식으로 비동기식 요청들을 효율적으로 프로세싱할 수 있다.
이러한 예시적인 통신 프로토콜에서, 수신자는 세 개의 메시지 유형들, 즉 OpenSession, CloseSession, 및 Receive를 갖는다. OpenSession은 송신자가 접속하려는 세션을 개설한다. 이것은 두 개의 파라미터들, 즉 세션 식별자(또는 세션 ID)와 액세스 토큰을 제출한다. 예를 들어, 세션 식별자는 사용자와의 상호작용 또는 세션에 대해 암호학적으로 고유한 GUID일 수 있고, 액세스 토큰은 문자열(string)(예컨대, 사용자에 의한 (예컨대, 타이핑에 의한) 손쉬운 입력을 촉진시키기 위한 짧은 텍스트 코드) 또는 몇몇의 다른 유형의 정보(예컨대, 바코드의 이미지, 톤 또는 톤들의 세트와 같은 오디오 정보)일 수 있다. CloseSession은 세션을 폐쇄시키고, 세션 식별자를 파라미터로서 취한다. OpenSession와 CloseSession은 동기식 콜들로서 행동하고 바로 복귀한다. Receive는 세션 식별자를 취하고 송신자로부터 보내진 데이터를 반환한다. Receive에 의해 반환된 데이터는 송신자로부터의 제어 데이터, 및 송신자의 아이덴티티를 포함한다. 반환할 데이터가 없는 경우, 중계 서버는 반환할 데이터가 있을 때 까지, 또는 타임아웃 문턱값에 도달될 때 까지 접속을 파킹시킨다. 수신자가 데이터(예컨대, 송신자가 생성한 데이터 또는 타임아웃 이후에 어떠한 데이터도 수신되지 않았다는 것을 나타내는 중계 서버로부터의 메시지)를 수신하면, 수신자는 동작을 수행할 수 있다. 예를 들어, 수신자는 송신자로부터 수신한 제어 데이터에 기초하여 디스플레이를 변경시키고, 비활성 세션을 폐쇄하고(예컨대, 타임아웃 문턱값에 도달된 후), (적절한 경우 파킹될 수도 있는) 새로운 세션을 개설하고, 및/또는 중계 서비스에 (예컨대, 다른 Receive 메시지를 통해) 추가적인 데이터를 문의할 수 있다. 만약 접속이 파킹되는 경우, 어떠한 데이터도 이용가능하지 않는 시구간(예컨대, 1분) 이후, 중계 서버는 어떠한 데이터도 이용가능하지 않다라는 것을 나타내는 코드를 반환시킬 수 있고, 수신자는 접속을 폐쇄시키는 것에 대한 대안책으로서 데이터에 대한 새로운 요청을 발행할 수 있어서, 수신자는 데이터에 대한 대기에 있어서 보다 관대해질 수 있게 된다.
이러한 예시적인 통신 프로토콜에서, 송신자는 두 개의 메시지 유형들, 즉 Register 및 Send를 갖는다. Register 메시지는 개설된 세션에 접속하는데 이용된다. Register 메시지는 파라미터로서 액세스 토큰을 취하고, 만약 이용가능한 경우 세션 식별자를 반환한다. 송신자는 예컨대 HTTP 쿠키에서 세션 식별자를 저장할 수 있다. 개설된 세션이 이용가능하지 않은 경우, 중계 서비스는 에러를 반환하거나 또는 개설된 세션이 수신자로부터 이용가능하게 되었는지를 알아보기 위해 시구간(예컨대, 수 초) 동안 송신자의 접속을 파킹시킬 수 있다. Send 메시지는 수신자에게 커맨드를 송신하는데 이용된다. Send 메시지는 커맨드(예컨대, 바이트 어레이 또는 문자열) 및 세션 식별자를 파라미터들로서 취하고, 커맨드가 수신자에게 보내졌던 경우에는 “true”를 나타내는 플래그를 반환하고, 커맨드가 수신자에게 보내지지 않았던 경우에는 “false”를 나타내는 플래그를 반환한다. 중계 서버는 “true”를 송신자에게 반환하기 전에 커맨드가 수신자에게 보내질 때 까지 대기한다. 데이터가 수신자에 보내지지 않았던 경우(예컨대, 대응하는 개설된 세션이 없었던 경우, 또는 수신자로부터 Receive 요청이 없었던 경우), 중계 서버는 (예컨대, 수 초와 같은, 타임아웃 문턱값에 도달한 후) “false”를 반환하고, 송신자는 적절한 동작을 취할 수 있다(예컨대, 커맨드가 수신되지 않았던 사용자를 사용자가 제어하고자 시도중인 디스플레이에 의해 변경시키는 것). 송신자로서 역할을 하는 클라이언트 디바이스는 제어 데이터를 생성하고 보내기 위해 클라이언트 디바이스 상에 설치된 클라이언트 애플리케이션을 이용할 수 있다. 대안적으로, 클라이언트 디바이스는 웹싸이트로 네비게이팅하기 위해 웹 브라우저를 이용하고 이 웹싸이트를 이용하여 제어 데이터를 생성하고 보낼 수 있다. 클라이언트 디바이스가 클라이언트 애플리케이션보다는 웹싸이트를 이용하는 경우, 웹싸이트는 클라이언트 디바이스를 대신하여 송신자로서 역할을 할 수 있다.
예시적인 시나리오에서, 건물의 로비 내에 있는 커다란 공공 LED 디스플레이는 시간제한된 근접성 코드를 보여주고, 이 디스플레이 자체가 이 시간제한된 근접성 코드를 갖는 세션을 기다리는 수신자로서 인터넷 상의 클라우드 서버에 등록한다. 수신자는 고유한 시간제한된 근접성 코드를 생성하고, 이 코드를 제출하는 중계 서버와의 세션을 개설하며, 이 코드를 디스플레이한다. 웹싸이트 또는 커스텀 클라이언트 애플리케이션에서, 사용자는 시간제한된 근접성 코드 및 자신의 게이머태그를 클라이언트 디바이스(예컨대, 스마트폰)에 입력시킨다. 대안적으로, 사용자는 상이한 사용자 ID를 입력할 수 있거나, 또는 사용자 ID의 사용자 입력 없이 사용자 식별이 수행될 수 있다. 근접성 코드와 게이머태그는 인터넷을 통해 중계 서버로서 역할을 하는 동일한 클라우드 서버에 (예컨대, Register 메시지에서 액세스 토큰을 통해) 전달된다. 그런 후 클라우드 서버는 시간제한된 근접성 코드의 정확성을 확인할 수 있다. 대안적으로, 다른 엔티티(예컨대, 수신자)가 근접성 코드의 정확성을 확인할 수 있다. 클라우드 서버는 고유 세션 식별자를 생성하고 이것을 클라이언트 디바이스에 보낸다. 클라우드 서버는 또한 사용자의 게이머태그와 연관된 아바타를 디스플레이하는 수신자에게 세션 식별자 및 사용자의 게이머태그를 보낸다. 대안적으로, 다른 엔티티(예컨대, 수신자)가 세션 식별자를 생성하고/생성하거나 보낼 수 있다. 아바타 데이터(예컨대, 개인화된 아바타 외관 데이터)는 클라우드 서버 또는 몇몇의 다른 엔티티로부터 획득될 수 있다. 이제 구축된 접속들로, 클라이언트 디바이스는 인터페이스(예컨대, 그래픽 사용자 인터페이스에서의 여섯 개의 버튼들)를 제공하며, 이 인터페이스를 통해 사용자는 아바타로 하여금 동작들(예컨대, 웃음짓기, 울부짓기, 점프하기)을 수행하게 하는 커맨드들을 발행할 수 있다. 사용자가 버튼을 작동시킬 때, Send 메시지는 클라우드 서버에 보내지고, 그 후 클라우드 서버는 사용자의 커맨드에 대응하는 제어 데이터를 수신자에게 중계한다. 그런 후 디스플레이는 아바타가 사용자의 커맨드에 응답하게 하는 오퍼레이션을 수행할 수 있다. 사용자에 의한 활동성 부족은 세션 타임아웃을 야기시킬 수 있다.
이러한 예시적인 통신 프로토콜에서, 공공 HTTP 중계 서비스는 송신자로부터 수신자로 전달되는 단방향 메시지로 송신자(예컨대, 폐쇄형 송신자)와 수신자(예컨대, 폐쇄형 수신자)간에 메시지들을 중계한다. 수신자는 하나의 송신자와의 하나의 활성 세션을 구축한다. 하지만, 설명한 예시적인 프로토콜에 대한 확장 및 대안구성들이 가능하다. 예를 들어, 몇몇의 설명된 예시들은 송신자로부터 수신자로의 일방향 통신을 실례로 보여주었지만, 프로토콜은 (예컨대, 양방향 통신 시나리오에서) 메시지들을 수신자로부터 송신자로 전달하는 것으로 확장될 수 있다. 다른 예시로서, 다중 세션들 또는 공유 세션들이 이용될 수 있다.
V. 예시적인 기술들
도 7은 공공 디스플레이 디바이스 상에서 디스플레이되는 콘텐츠를 클라이언트 디바이스가 제어하기 위한 허가를 획득하는 예시적인 기술(700)을 도시하는 흐름도이다. 모바일 디바이스(100)와 같은 클라이언트 디바이스 또는 다른 디바이스가 기술(700)을 수행한다.
도면부호 710에서, 클라이언트 디바이스는 공공 디스플레이 디바이스로부터 시간제한된 근접성 코드를 획득한다. 시간제한된 근접성 코드는, 예컨대 시각적 정보(예컨대, 텍스트, 그래픽들 또는 이미지들) 또는 오디오 정보(예컨대, 톤 또는 톤들의 세트)를 포함할 수 있다. 도면부호 720에서, 클라이언트 디바이스는 시간제한된 근접성 코드를 공공 네트워크를 통해 클라이언트 디바이스로부터 허가자에게 송신한다. 허가자는 예컨대, 공공 네트워크에 접속된 서버일 수 있다. 도면부호 730에서, 클라이언트 디바이스는 공공 네트워크를 통해 허가자로부터 허가 데이터를 수신한다. 허가 데이터는 클라이언트 디바이스가 공공 디스플레이 디바이스 상에 디스플레이되는 콘텐츠를 제어하는 것이 허가되었다는 것을 확인시킨다. 허가 데이터는 HTTP 세션을 식별하는 세션 식별자를 포함할 수 있다. 클라이언트 디바이스는 제어 데이터를 (예컨대, HTTP 세션을 통해) 공공 디스플레이 디바이스에 송신할 수 있다. 예를 들어, 클라이언트 디바이스는 공공 디스플레이 디바이스 상에 디스플레이되는 콘텐츠를 제어하기 위한 커맨드들에 대응하는 엘리먼트들(예컨대, 소프트웨어 버튼들)을 포함하는 (예컨대, 터치스크린 상의) 그래픽 사용자 인터페이스를 디스플레이할 수 있다. 클라이언트 디바이스는 그래픽 사용자 인터페이스를 통해 사용자 입력을 수신하고 이 사용자 입력에 기초하여 제어 데이터를 송신할 수 있다. 제어 데이터는, 예컨대 공공 디스플레이 디바이스가 아바타 동작(예컨대, 손흔들기, 점프하기)을 디스플레이하게 하도록 동작가능한 아바타 제어 커맨드 또는 공공 디스플레이 디바이스가 게임 내의 게임 동작(예컨대, 단일 플레이어 또는 멀티 플레이어 게임 내에서의 게임 엘리먼트를 움직이기)을 디스플레이하게 하도록 동작가능한 게임 제어 커맨드를 포함할 수 있다. 클라이언트 디바이스는 (예컨대, 프롬프트에 응답하여) 사용자에 의해 입력되거나 또는 몇몇의 다른 방식으로(예컨대, 클라이언트 디바이스 상의 저장소 상에 이미 있는 인증 크레덴셜들로부터) 획득될 수 있는 인증 데이터(예컨대, 게이머태그, 암호 정보와 같은 사용자 ID)를 송신할 수 있다. 클라이언트 디바이스는 공공 디스플레이 디바이스의 제어와 관련된 조작들을 수행하기 위해 커스텀 디스플레이 디바이스 제어 애플리케이션, 웹 브라우저 애플리케이션 또는 몇몇의 다른 애플리케이션을 이용할 수 있다.
도 8은 근접 구역 내에 위치한 클라이언트 디바이스로부터 공공 네트워크를 통해 수신된 제어 데이터에 기초하여 시각적 콘텐츠를 디스플레이하기 위한 예시적인 기술(800)을 도시하는 흐름도이다. 공공 디스플레이 디바이스 또는 다른 컴퓨팅 디바이스는 기술(800)을 수행한다.
도면부호 810에서, 공공 디스플레이 디바이스는 공공 디스플레이 디바이스를 위한 근접 구역과 연관된 근접성 코드를 디스플레이한다. 도면부호 820에서, 공공 디스플레이 디바이스는 근접 구역 내에 위치한 클라이언트 디바이스로부터 공공 네트워크를 통해 (예컨대, 아바타 제어 커맨드들과 같은 디스플레이 제어 데이터) 제어 데이터를 (예컨대, HTTP 세션을 통해) 수신한다. 도면부호 830에서, 공공 디스플레이 디바이스는 수신된 제어 데이터에 적어도 부분적으로 기초하여 (예컨대, 아바타, 아바타와 연관된 사용자 ID, 및/또는 다른 콘텐츠) 시각적 콘텐츠를 디스플레이한다. 공공 디스플레이 디바이스는 또한 근접 구역 내에 위치한 하나 이상의 추가적인 클라이언트 디바이스들로부터 다른 제어 데이터를 수신할 수 있고, 디스플레이된 시각적 콘텐츠는 또한 이러한 추가적인 클라이언트 디바이스들로부터 수신된 제어 데이터에 기초될 수 있다.
도 9는 공공 디스플레이 디바이스를 제어하는 클라이언트 디바이스와 공공 디스플레이 디바이스에 중계 서비스를 제공하기 위한 예시적인 기술(900)을 도시하는 흐름도이다. 서버 또는 다른 컴퓨팅 디바이스와 같은 컴퓨팅 디바이스는 기술(900)을 수행한다.
도면부호 910에서, 서버는 세션 식별자(예컨대, 공공 디스플레이 디바이스 또는 서버에 의해 생성된 세션 식별자)에 의해 식별된 HTTP 세션을 개설하기 위한 요청을 포함하는 제1 메시지를 공공 디스플레이 디바이스로부터 수신한다. 도면부호 920에서, 서버는 세션 식별자에 의해 식별된 HTTP 세션으로의 접속을 위한 요청을 포함하는 제2 메시지를 클라이언트 디바이스로부터 수신한다. 도면부호 930에서, 제2 메시지에 응답하여, 서버는 클라이언트 디바이스에게 세션 식별자를 보낸다. 도면부호 940에서, 서버는 공공 디스플레이 디바이스에 의해 디스플레이된 시각적 콘텐츠를 제어하기 위한 제어 데이터를 포함하는 제3 메시지를 클라이언트 디바이스로부터 수신한다. 도면부호 950에서, 서버는 이용가능한 제어 데이터를 위한 요청을 포함하는 제4 메시지를 공공 디스플레이 디바이스로부터 수신한다. 도면부호 960에서, 제4 메시지에 응답하여, 서버는 제3 메시지에 포함된 제어 데이터를 공공 디스플레이 디바이스에 보낸다.
위 기술들 중 임의의 기술에서, 여기서 설명한 커맨드들 및 오퍼레이션들의 임의의 조합이 적용될 수 있다. 희망하는 프로세싱의 유형 및 구현에 따라, 예시적인 기술들에서 도시된 프로세싱 단계들은 재배열되고, 추가되고, 생략되고, 여러 단계들로 분할되고, 다른 단계들과 결합되고/결합되거나 유사한 단계들로 대체될 수 있다.
VI. 예시적인 컴퓨팅 환경
도 10은 설명된 기술들이 구현될 수 있는 적절한 컴퓨팅 환경(1000)의 일반화된 예시를 나타낸다. 본 기술들은 다양한 범용목적 또는 특수목적의 컴퓨팅 환경들에서 구현될 수 있기 때문에, 컴퓨팅 환경(1000)은 이용성 또는 기능성의 범위에 대한 어떠한 제한을 제안하려고 의도된 것은 아니다.
도 10을 참조하면, 컴퓨팅 환경(1000)은 메모리(1020)에 결합된 적어도 하나의 프로세싱 유닛(1010)을 포함한다. 도 10에서, 이러한 기본적인 구성(1030)은 점선 내에 포함된다. 프로세싱 유닛(1010)은 컴퓨터 실행가능한 명령어들을 실행한다. 멀티 프로세싱 시스템에서는, 다중 프로세싱 유닛들이 프로세싱 파워를 증가시키기 위해 컴퓨터 실행가능 명령어들을 실행한다. 메모리(1020)는 휘발성 메모리(예컨대, 레지스터, 캐시, RAM), 비휘발성 메모리(예컨대, ROM, EEPROM, 플래시 메모리 등), 또는 이 둘의 몇몇의 조합과 같은 비일시적 메모리일 수 있다. 메모리(1020)는 여기서 설명된 임의의 기술들을 구현하는 소프트웨어(1080)를 저장할 수 있다.
컴퓨팅 환경은 추가적인 특징들을 가질 수 있다. 예를 들어, 컴퓨팅 환경(1000)은 저장소(1040), 하나 이상의 입력 디바이스들(1050), 하나 이상의 출력 디바이스들(1060), 및 하나 이상의 통신 접속들(1070)을 포함한다. 버스, 제어기, 또는 네트워크와 같은 상호접속 메커니즘(미도시됨)은 컴퓨팅 환경(1000)의 컴포넌트들을 상호접속시킨다. 일반적으로, 오퍼레이팅 시스템 소프트웨어(미도시됨)는 컴퓨팅 환경(1000)에서 실행되는 다른 소프트웨어를 위한 오퍼레이팅 환경을 제공하고, 컴퓨팅 환경(1000)의 컴포넌트들의 작동들을 조정한다.
저장소(1040)는 탈착가능하거나 비탈착가능할 수 있고, 마그네틱 디스크, 마그네틱 테잎 또는 카세트, CD-ROM, CD-RW, DVD, 또는 컴퓨팅 환경(1000) 내에 액세스될 수 있고 정보를 저장하는데 이용될 수 있는 임의의 다른 비일시적 컴퓨터 판독가능 매체를 포함한다. 저장소(1040)는 여기서 설명된 임의의 기술들을 위한 명령어들을 포함하는 소프트웨어(1080)를 저장할 수 있다.
입력 디바이스(들)(1050)은 키보드, 터치스크린, 마우스, 펜, 또는 트랙볼과 같은 터치 입력 디바이스, 음성 입력 디바이스, 스캐닝 디바이스, 또는 컴퓨팅 환경(1000)에 입력을 제공하는 다른 디바이스일 수 있다. 출력 디바이스(들)(1060)은 디스플레이, 프린터, 스피커, CD 라이터(writer) 또는 DVD 라이터, 또는 컴퓨팅 환경(1000)으로부터 출력을 제공하는 다른 디바이스일 수 있다. 터치스크린과 같은, 몇몇의 입력/출력 디바이스들은 입력 및 출력 기능 모두를 포함할 수 있다.
통신 접속(들)(1070)은 다른 컴퓨팅 엔티티로의 통신 메커니즘을 통한 통신을 가능하게 한다. 통신 메커니즘은 컴퓨터 실행가능 명령어들, 오디오/비디오 또는 다른 정보와 같은 정보, 또는 이와 다른 데이터를 운송한다. 비제한적인 예로서, 통신 메커니즘들은 전기적, 광학적, RF, 적외선, 음향, 또는 다른 캐리어로 구현된 유선 또는 무선 기술들을 포함한다.
여기서의 기술들은, 프로그램 모듈들에 포함되며 타겟 실제 또는 가상의 프로세서 상의 컴퓨팅 환경에서 실행되는 것과 같은, 컴퓨터 실행가능 명령어들의 일반적 상황에서 설명될 수 있다. 일반적으로, 프로그램 모듈들은 특정한 태스크들을 수행하거나 특정한 추상적 데이터 유형들을 구현하는, 루틴들, 프로그램들, 라이브러리들, 오브젝트들, 클래스들, 컴포넌트들, 데이터 구조들 등을 포함한다. 프로그램 모듈들의 기능은 다양한 환경들에서 희망하는 바에 따라 프로그램 모듈들간에 결합되거나 분할될 수 있다. 프로그램 모듈들을 위한 컴퓨터 실행가능 명령어들은 로컬 또는 분배형 컴퓨팅 환경 내에서 실행될 수 있다.
여기서 설명된 임의의 저장 동작들은 하나 이상의 컴퓨터 판독가능 매체(예컨대, 비일시적 컴퓨터 판독가능 저장 매체 또는 다른 유형적 매체)에서 저장함으로써 구현될 수 있다. 저장되는 것으로서 설명된 임의의 대상들은 하나 이상의 컴퓨터 판독가능 매체(예컨대, 컴퓨터 판독가능 저장 매체 또는 다른 유형적 매체)에 저장될 수 있다.
여기서 설명된 임의의 방법들은 하나 이상의 컴퓨터 판독가능 매체(예컨대, 비일시적 컴퓨터 판독가능 저장 매체 또는 다른 유형적 매체)에서(예컨대, 이러한 매체 상에 인코딩된) 컴퓨터 실행가능 명령어들에 의해 구현될 수 있다. 이러한 명령어들은 컴퓨터로 하여금 본 방법을 수행하게 할 수 있다. 여기서 설명된 기술들은 다양한 프로그래밍 언어들로 구현될 수 있다.
여기서 설명된 임의의 방법들은 하나 이상의 비일시적 컴퓨터 판독가능 저장 디바이스들(예컨대, 메모리, CD-ROM, CD-RW, DVD 등)에 저장된 컴퓨터 실행가능 명령어들에 의해 구현될 수 있다. 이러한 명령어들은 컴퓨터로 하여금 본 방법을 수행하게 할 수 있다.
VII. 확장들 및 대안구성들
여기서 설명된 구현예들에 대한 다양한 대안구성들이 가능하다. 예를 들어, 도면들을 참조하여 설명한 사용자 인터페이스들은 도면들에서 도시된 사용자 인터페이스 특징들의 콘텐츠 또는 배치를 변경하고, 일정한 특징들을 생략하는 것 등에 의해 변동될 수 있다. 다른 예시로서, 몇몇의 구현예들을 특정한 디바이스들 및 사용자 입력 메커니즘들(예컨대, 터치스크린 인터페이스를 갖는 모바일 디바이스들)을 참조하여 설명하였지만, 설명된 기술들 및 툴들은 다른 디바이스들 및/또는 사용자 입력 메커니즘들과 함께 이용될 수 있다.
개시된 본 발명의 원리들이 적용될 수 있는 많은 가능한 실시예들 관점에서, 설명된 실시예들은 본 발명의 단지 선호하는 예시들에 불과하며, 본 발명의 범위를 제한시키는 것으로서 간주되어서는 안된다는 것을 알아야 한다. 이보다는, 본 발명의 범위는 아래의 청구항들에 의해 정의된다. 따라서, 본 발명으로서 이러한 청구항들의 사상과 범위 내에 있는 모든 것을 청구한다.

Claims (10)

  1. 컴퓨터화된 방법에 있어서,
    클라이언트 디바이스에 의해, 공공 디스플레이 디바이스로부터 시간제한된(time-limited) 근접성 코드를 획득하는 단계;
    상기 클라이언트 디바이스로부터 상기 시간제한된 근접성 코드를 공공 네트워크를 통해 허가자(authorizer)에게 송신하는 단계; 및
    상기 송신된 시간제한된 근접성 코드에 적어도 부분적으로 기초하여, 상기 클라이언트 디바이스에 의해, 상기 공공 네트워크를 통해 상기 허가자로부터, 상기 공공 디스플레이 디바이스 상에 디스플레이되는 콘텐츠를 상기 클라이언트 디바이스가 제어하는 것에 대한 허가(authorization)를 확인해주는 허가 데이터를 수신하는 단계
    를 포함하는, 컴퓨터화된 방법.
  2. 제1항에 있어서, 상기 허가 데이터는 HTTP 세션을 식별하는 세션 식별자를 포함하며, 상기 방법은,
    상기 세션 식별자에 의해 식별된 상기 HTTP 세션을 통해 상기 클라이언트 디바이스로부터 상기 공공 디스플레이 디바이스에 제어 데이터를 송신하는 단계
    를 더 포함하는, 컴퓨터화된 방법.
  3. 제2항에 있어서, 상기 제어 데이터는, 상기 공공 디스플레이 디바이스가 게임 내의 게임 동작을 디스플레이하게 하도록 동작가능한 게임 제어 커맨드 또는 아바타 제어 커맨드 중 적어도 하나를 포함하는 것인, 컴퓨터화된 방법.
  4. 제3항에 있어서, 상기 제어 데이터는 상기 게임 제어 커맨드를 포함하며, 상기 게임은 멀티 플레이어 게임을 포함하는 것인, 컴퓨터화된 방법.
  5. 제1항에 있어서,
    상기 공공 네트워크를 통해 상기 클라이언트 디바이스로부터 인증(authentication) 데이터를 송신하는 단계
    를 더 포함하며, 상기 인증 데이터는 사용자 ID 또는 암호 정보 중 적어도 하나를 포함하는 것인, 컴퓨터화된 방법.
  6. 제1항에 있어서, 상기 시간제한된 근접성 코드는 시각적 정보 또는 오디오 정보를 포함하는 것인, 컴퓨터화된 방법.
  7. 제1항에 있어서, 상기 클라이언트 디바이스는 커스텀(custom) 디스플레이 디바이스 제어 애플리케이션 또는 웹 브라우저 애플리케이션 중 적어도 하나를 포함하고, 상기 클라이언트 디바이스는 상기 커스텀 디스플레이 디바이스 제어 애플리케이션 또는 상기 웹 브라우저 애플리케이션 중 적어도 하나를 이용하여 위에서 언급된 단계들 중 하나 이상을 수행하는 것인, 컴퓨터화된 방법.
  8. 제1항에 있어서, 상기 클라이언트 디바이스는 터치스크린을 갖는 모바일 디바이스를 포함하며, 상기 방법은,
    상기 터치스크린 상에 그래픽 사용자 인터페이스를 디스플레이하는 단계로서, 상기 그래픽 사용자 인터페이스는 상기 공공 디스플레이 디바이스 상에 디스플레이되는 콘텐츠를 제어하기 위한 커맨드들에 대응하는 하나 이상의 엘리먼트들을 포함하는 것인, 상기 디스플레이 단계;
    상기 그래픽 사용자 인터페이스를 통해 사용자 입력을 수신하는 단계; 및
    상기 클라이언트 디바이스로부터 제어 데이터를 상기 공공 디스플레이 디바이스에 송신하는 단계
    를 포함하며, 상기 제어 데이터는 상기 그래픽 사용자 인터페이스를 통해 수신된 상기 사용자 입력에 기초한 것인, 컴퓨터화된 방법.
  9. 공공 디스플레이 디바이스로 하여금 방법을 수행하게 하도록 동작가능한 컴퓨터 실행가능 명령어들이 저장되어 있는 하나 이상의 컴퓨터 판독가능 저장 매체에 있어서, 상기 방법은,
    상기 공공 디스플레이 디바이스를 위한 근접 구역과 연관된 근접성 코드를 디스플레이하는 단계;
    상기 근접 구역 내에 위치한 제1 클라이언트 디바이스로부터 공공 네트워크를 통해 제1 제어 데이터를 수신하는 단계; 및
    상기 수신된 제1 제어 데이터에 적어도 부분적으로 기초하여 시각적 콘텐츠를 디스플레이하는 단계
    를 포함하는 것인, 하나 이상의 컴퓨터 판독가능 저장 매체.
  10. 하나 이상의 프로세서들, 메모리 및 저장 매체를 포함하는 서버에 있어서, 상기 저장 매체는 상기 서버로 하여금 방법을 수행하게 하기 위한 컴퓨터 실행가능 명령어들을 저장하고, 상기 방법은,
    세션 식별자에 의해 식별된 HTTP 세션을 개설하기 위한 요청을 포함하는 제1 메시지를 상기 공공 디스플레이 디바이스로부터 수신하는 단계;
    상기 세션 식별자에 의해 식별된 상기 HTTP 세션으로의 접속을 위한 요청을 포함하는 제2 메시지를 클라이언트 디바이스로부터 수신하는 단계;
    상기 제2 메시지에 응답하여, 상기 HTTP 세션을 식별하는 상기 세션 식별자를 상기 클라이언트 디바이스에 보내는 단계;
    상기 공공 디스플레이 디바이스에 의해 디스플레이되는 시각적 콘텐츠를 제어하기 위한 제어 데이터를 포함하는 제3 메시지를 상기 클라이언트 디바이스로부터 수신하는 단계;
    이용가능한 제어 데이터를 위한 요청을 포함하는 제4 메시지를 상기 공공 디스플레이 디바이스로부터 수신하는 단계;
    상기 제4 메시지에 응답하여, 상기 제3 메시지의 제어 데이터를 상기 공공 디스플레이 디바이스에 보내는 단계
    를 포함하는 것인, 서버.
KR1020147018197A 2011-12-05 2012-11-29 개인 디바이스들을 이용한 공공 디스플레이들의 제어 KR101952987B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/311,362 2011-12-05
US13/311,362 US8910309B2 (en) 2011-12-05 2011-12-05 Controlling public displays with private devices
PCT/US2012/066914 WO2013085778A1 (en) 2011-12-05 2012-11-29 Controlling public displays with private devices

Publications (2)

Publication Number Publication Date
KR20140108542A true KR20140108542A (ko) 2014-09-11
KR101952987B1 KR101952987B1 (ko) 2019-02-27

Family

ID=47972140

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147018197A KR101952987B1 (ko) 2011-12-05 2012-11-29 개인 디바이스들을 이용한 공공 디스플레이들의 제어

Country Status (7)

Country Link
US (1) US8910309B2 (ko)
EP (1) EP2789121B1 (ko)
JP (1) JP6122028B2 (ko)
KR (1) KR101952987B1 (ko)
CN (1) CN103024016B (ko)
HK (1) HK1181936A1 (ko)
WO (1) WO2013085778A1 (ko)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10756918B2 (en) * 2008-12-02 2020-08-25 ioBridge, Inc. Activating a device via a module-based device interaction system
KR101763175B1 (ko) * 2011-10-21 2017-08-01 에스프린팅솔루션 주식회사 모바일 기기 및 인쇄 제어 방법
KR20140125760A (ko) * 2011-11-16 2014-10-29 찬드라사가란 무루간 원격 참여 시스템
US20140207576A1 (en) * 2013-01-23 2014-07-24 Brian B. Walker Digital advertising cellular display system
US8723796B2 (en) * 2012-02-02 2014-05-13 Kodak Alaris Inc. Multi-user interactive display system
US8810513B2 (en) 2012-02-02 2014-08-19 Kodak Alaris Inc. Method for controlling interactive display system
US9349131B2 (en) * 2012-02-02 2016-05-24 Kodak Alaris Inc. Interactive digital advertising system
US9022870B2 (en) * 2012-05-02 2015-05-05 Aquimo, Llc Web-based game platform with mobile device motion sensor input
US9263084B1 (en) * 2012-06-15 2016-02-16 A9.Com, Inc. Selective sharing of body data
US9256722B2 (en) 2012-07-20 2016-02-09 Google Inc. Systems and methods of using a temporary private key between two devices
US9881201B2 (en) * 2013-02-05 2018-01-30 Vynca, Inc. Method and apparatus for collecting an electronic signature on a first device and incorporating the signature into a document on a second device
JP2015018347A (ja) * 2013-07-09 2015-01-29 凸版印刷株式会社 情報中継サーバ、情報中継システム、および、情報中継方法
US10055752B2 (en) * 2013-07-30 2018-08-21 Here Global B.V. Method and apparatus for performing real-time out home advertising performance analytics based on arbitrary data streams and out of home advertising display analysis
US20150084838A1 (en) * 2013-09-23 2015-03-26 At&T Intellectual Property I, L.P. Public Signage
US9979837B2 (en) * 2013-10-31 2018-05-22 Francois Badeau Communication maximization structure and system
AU2014342290A1 (en) * 2013-11-01 2015-11-05 Aliphcom Proximity-based control of media devices for media presentations
US10867323B2 (en) * 2013-12-04 2020-12-15 Yassine Sbiti Social media merchandising and advertising platform
US10068101B2 (en) * 2013-12-23 2018-09-04 Intel Corporation Secure content sharing
US20150201236A1 (en) * 2014-01-15 2015-07-16 Khalifa Al Remeithi Display Proximity Control Device
US9265079B2 (en) 2014-03-13 2016-02-16 Microsoft Technology Licensing, Llc Authentication and pairing of devices using a machine readable code
JP2015219768A (ja) * 2014-05-19 2015-12-07 ソニー株式会社 情報処理システム、記憶媒体及び情報処理方法
US11026088B2 (en) * 2014-08-29 2021-06-01 Maxell, Ltd. Communication system, communication device and communication terminal device
US10747426B2 (en) * 2014-09-01 2020-08-18 Typyn, Inc. Software for keyboard-less typing based upon gestures
CN107077811A (zh) 2014-09-19 2017-08-18 通力股份公司 显示器语言装置
US9535495B2 (en) 2014-09-26 2017-01-03 International Business Machines Corporation Interacting with a display positioning system
EP3198881A4 (en) * 2014-09-26 2018-04-25 Hewlett-Packard Development Company, L.P. Content display
WO2016073035A1 (en) * 2014-11-05 2016-05-12 Super League Gaming, Inc. Game system
US10380375B2 (en) 2014-11-24 2019-08-13 Intel Corporation Technologies for presenting public and private images
US9841939B2 (en) 2014-12-18 2017-12-12 Google Inc. Methods, systems, and media for presenting requested content on public display devices
US11144959B2 (en) 2014-12-18 2021-10-12 Google Llc Methods, systems, and media for presenting advertisements relevant to nearby users on a public display device
US9916122B2 (en) 2014-12-18 2018-03-13 Google Llc Methods, systems, and media for launching a mobile application using a public display device
US9967320B2 (en) 2014-12-18 2018-05-08 Google Llc Methods, systems, and media for controlling information used to present content on a public display device
US20160212186A1 (en) * 2015-01-21 2016-07-21 Hewlett-Packard Development Company, L. P. Display server communications channel
US10002588B2 (en) 2015-03-20 2018-06-19 Microsoft Technology Licensing, Llc Electronic paper display device
JP6566673B2 (ja) * 2015-03-23 2019-08-28 学校法人 名古屋電気学園 端末機認証システム及び端末機認証方法
DE102015206733B4 (de) 2015-04-15 2017-10-26 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zur Wiedergabe von Inhalten basierend auf von einem Anwender autorisierten Daten
CN104794649A (zh) * 2015-05-12 2015-07-22 苏州壹世通科技有限公司 一种展示方法及装置
US20170213461A1 (en) * 2016-01-21 2017-07-27 Ford Global Technologies, Llc System and method for vehicle group communication via dedicated short range communication
US10475144B2 (en) * 2016-02-26 2019-11-12 Microsoft Technology Licensing, Llc Presenting context-based guidance using electronic signs
US9950795B2 (en) * 2016-06-10 2018-04-24 Panasonic Avionics Corporation Methods and systems for pairing a personal electronic device on a transportation vehicle
US11794094B2 (en) * 2016-10-17 2023-10-24 Aquimo Inc. Method and system for using sensors of a control device for control of a game
US11038870B2 (en) 2017-03-09 2021-06-15 Microsoft Technology Licensing, Llc Quick response (QR) code for secure provisioning
US10412027B2 (en) 2017-03-31 2019-09-10 Otis Elevator Company System for building community posting
US11865430B1 (en) * 2017-05-05 2024-01-09 Major Display, Inc. Scoreboard data adapter system and method
US11165771B2 (en) 2017-11-20 2021-11-02 At&T Intellectual Property I, L.P. Proximity based data access restrictions
CN108596713A (zh) * 2018-03-30 2018-09-28 深圳来电科技有限公司 一种展示信息的方法、装置、系统及服务器
KR101936178B1 (ko) * 2018-05-04 2019-01-08 (주) 알트소프트 기준 영역을 이용한 로컬 디바이스의 제어 서비스 시스템
US10666662B2 (en) * 2018-05-10 2020-05-26 Rovi Guides, Inc. Systems and methods for connecting a public device to a private device without pre-installed content management applications
US10652250B2 (en) * 2018-05-10 2020-05-12 Rovi Guides, Inc. Systems and methods for connecting a public device to a private device using mirroring applications
US10630692B2 (en) * 2018-05-10 2020-04-21 Rovi Guides, Inc. Systems and methods for connecting a public device to a private device providing a pre-installed content management application
EP3791596B1 (en) * 2018-05-10 2024-01-10 Rovi Guides, Inc. Systems and methods for connecting a public device to a private device without pre-installed content management applications
US10757109B2 (en) * 2018-05-10 2020-08-25 Rovi Guides, Inc. Systems and methods for connecting a public device to a private device with pre-installed content management applications
US10749852B2 (en) * 2018-05-10 2020-08-18 Rovi Guides, Inc. Systems and methods for connecting private devices to public devices according to connection parameters
US10579163B2 (en) * 2018-06-02 2020-03-03 Mersive Technologies, Inc. System and method of annotation of a shared display using a mobile device
US11260295B2 (en) 2018-07-24 2022-03-01 Super League Gaming, Inc. Cloud-based game streaming
JP7354702B2 (ja) * 2019-09-05 2023-10-03 富士通株式会社 表示制御方法、表示制御プログラムおよび情報処理装置
US20210392054A1 (en) * 2020-06-11 2021-12-16 Darren David Remote controlled information display systems
US20220103539A1 (en) * 2020-09-29 2022-03-31 Nvidia Corporation Verifying trusted communications using established communication channels
US20220174451A1 (en) * 2020-12-01 2022-06-02 Universal City Studios Llc Systems and methods for controlling an operation of an attraction system
WO2023041387A1 (en) * 2021-09-16 2023-03-23 Precisioned Ag Device for synchronous communication
US20230396458A1 (en) * 2022-06-07 2023-12-07 Canon U.S.A., Inc. Apparatus and method for managing an online meeting

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060189382A1 (en) * 2001-09-20 2006-08-24 Igt Method and apparatus for registering a mobile device with a gaming machine
US20100113148A1 (en) * 2008-11-04 2010-05-06 Quado Media Inc. Multi-player, multi-screens, electronic gaming platform and system
JP2011090482A (ja) * 2009-10-22 2011-05-06 Rakuten Inc 電子看板表示制御装置、電子看板表示制御方法、及び電子看板表示制御プログラム
US20110282727A1 (en) * 2010-05-14 2011-11-17 Minh Phan Content management in out-of-home advertising networks

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003574B1 (en) * 2000-11-01 2006-02-21 Microsoft Corporation Session load balancing and use of VIP as source address for inter-cluster traffic through the use of a session identifier
AU2001264525A1 (en) 2001-06-12 2002-12-23 Ranganatha Sitaram Smart interactive billboard device
EP1413080B1 (en) * 2001-08-01 2006-05-17 British Telecommunications Public Limited Company Interactive information delivery terminal and method of operating an interactive information delivery system
US7699703B2 (en) 2001-09-20 2010-04-20 Igt Method and apparatus for registering a mobile device with a gaming machine
DE10315269A1 (de) * 2002-04-04 2003-10-16 Asmo Co Ltd Gleichstrommotor vom Hybrid-Magnet-Typ
WO2003095050A2 (en) * 2002-05-13 2003-11-20 Consolidated Global Fun Unlimited, Llc Method and system for interacting with simulated phenomena
JP4394506B2 (ja) * 2003-05-22 2010-01-06 株式会社日立製作所 携帯端末、情報処理端末及び電子掲示板システム
CN101119782B (zh) * 2004-09-21 2010-11-17 时间游戏Ip公司 多玩家游戏的系统
EP1866043A1 (en) * 2005-04-06 2007-12-19 Eidgenössische Technische Hochschule Zürich (ETH) Method of executing an application in a mobile device
US8149530B1 (en) * 2006-04-12 2012-04-03 Winview, Inc. Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming
US20080004953A1 (en) 2006-06-30 2008-01-03 Microsoft Corporation Public Display Network For Online Advertising
EP3474520B1 (en) 2006-09-05 2020-12-30 Alcatel Lucent Smart artefact and user terminal having a short range interface and long range interface
US8538814B2 (en) 2007-07-11 2013-09-17 Hewlett-Packard Development Company, L.P. Systems and methods of providing advertising content
US7515136B1 (en) 2008-07-31 2009-04-07 International Business Machines Corporation Collaborative and situationally aware active billboards
US20100112148A1 (en) * 2008-10-31 2010-05-06 Steve Davidovici Lollipop Apparatus and Method
US9498711B2 (en) * 2008-11-04 2016-11-22 Quado Media Inc. Multi-player, multi-screens, electronic gaming platform and system
US20100123668A1 (en) 2008-11-18 2010-05-20 Kuhn Michael J Interactive and programmable media sign and graphical user interface for casino games
US20100136952A1 (en) 2008-12-02 2010-06-03 Broadcom Corporation Mobile communication device with video application for display on a remote monitor and methods for use therewith
US20100299213A1 (en) 2009-05-21 2010-11-25 Shervin Yeganeh System and method for providing internet based advertising in a retail environment
JP5666577B2 (ja) * 2009-07-09 2015-02-12 テレフオンアクチーボラゲット エル エム エリクソン(パブル) セッションの継続性を改善するための方法及びデバイス
JP2011123698A (ja) * 2009-12-11 2011-06-23 National Institute Of Information & Communication Technology 電子看板システム
CN102906623A (zh) * 2010-02-28 2013-01-30 奥斯特豪特集团有限公司 交互式头戴目镜上的本地广告内容
US20120221657A1 (en) * 2011-02-28 2012-08-30 Gur Zeevi System and method for remotely controlling web content with mobile devices
US8348752B2 (en) * 2011-05-02 2013-01-08 At&T Intellectual Property I, Lp Method and apparatus for managing a gaming application

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060189382A1 (en) * 2001-09-20 2006-08-24 Igt Method and apparatus for registering a mobile device with a gaming machine
US20100113148A1 (en) * 2008-11-04 2010-05-06 Quado Media Inc. Multi-player, multi-screens, electronic gaming platform and system
JP2011090482A (ja) * 2009-10-22 2011-05-06 Rakuten Inc 電子看板表示制御装置、電子看板表示制御方法、及び電子看板表示制御プログラム
US20110282727A1 (en) * 2010-05-14 2011-11-17 Minh Phan Content management in out-of-home advertising networks

Also Published As

Publication number Publication date
JP6122028B2 (ja) 2017-04-26
CN103024016B (zh) 2016-06-08
EP2789121A1 (en) 2014-10-15
WO2013085778A1 (en) 2013-06-13
EP2789121A4 (en) 2015-04-08
CN103024016A (zh) 2013-04-03
HK1181936A1 (zh) 2013-11-15
EP2789121B1 (en) 2016-12-28
JP2015509223A (ja) 2015-03-26
KR101952987B1 (ko) 2019-02-27
US8910309B2 (en) 2014-12-09
US20130143651A1 (en) 2013-06-06

Similar Documents

Publication Publication Date Title
KR101952987B1 (ko) 개인 디바이스들을 이용한 공공 디스플레이들의 제어
US11082504B2 (en) Networked device authentication, pairing and resource sharing
US20220021734A1 (en) Systems and methods for synchronizing content and information on multiple computing devices
JP6064050B2 (ja) ルータアクセス制御方法、ルータアクセス制御装置、及びネットワークシステム
KR102077354B1 (ko) 통신 시스템
US9071967B1 (en) Wireless credential sharing
US20180114004A1 (en) Methods and systems for data entry
CN107113309A (zh) 动态创建用于媒体控制的热点的方法和系统
JP6527535B2 (ja) 機械可読コードを使用したデバイスの認証およびペアリング
TW201112687A (en) Network aggregator
KR20170024170A (ko) 소셜 네트워킹 서비스들 및 어플리케이션들로의 감각 기능성들의 통합
US10419578B2 (en) Method and system for sharing data between terminals
CN107079031A (zh) 经由与第二设备的通信对第一设备的基于用户认证的批准
CN109691057A (zh) 经由私人内容分发网络可交换地取回敏感内容
JP6882924B2 (ja) 互いに異なるユーザ識別体系を利用して登録されたユーザを識別するサーバ間のサービス連動方法、システムおよびコンピュータプログラム
WO2018076685A1 (zh) 一种信息交互的方法及设备
KR20220081387A (ko) 원격 키보드 서비스 제공
CN115244957A (zh) 用于建立高度安全和弹性的持久通信连接的系统和方法
CN102970318A (zh) 信息处理装置、信息处理方法和程序
KR20210157741A (ko) 인증된 공간 상에서의 사용자 체크인을 위한 방법 및 시스템
KR20210157739A (ko) 가상현실 공간에서의 장치 인증을 위한 방법 및 시스템
JP6026703B2 (ja) ルータアクセス制御方法、装置、ルータ、プログラム、及び記録媒体
KR20210157740A (ko) 가상현실 공간에서의 공간 인증을 위한 방법 및 시스템
US20200349520A1 (en) Systems and methods for exchanging digital cards
KR20220152969A (ko) 분실 위험이 없고 보안성이 강화된 가상 타임캡슐을 제공하는 서버, 방법 및 프로그램

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant