KR20150140631A - 신호 송신 장치, 신호 송신 방법 및 신호 송수신 시스템 - Google Patents

신호 송신 장치, 신호 송신 방법 및 신호 송수신 시스템 Download PDF

Info

Publication number
KR20150140631A
KR20150140631A KR1020157021789A KR20157021789A KR20150140631A KR 20150140631 A KR20150140631 A KR 20150140631A KR 1020157021789 A KR1020157021789 A KR 1020157021789A KR 20157021789 A KR20157021789 A KR 20157021789A KR 20150140631 A KR20150140631 A KR 20150140631A
Authority
KR
South Korea
Prior art keywords
uri
application
companion
companion device
hbbtv
Prior art date
Application number
KR1020157021789A
Other languages
English (en)
Inventor
강동현
이선아
오세진
최종성
권영환
안승주
박정욱
김진필
양승률
문경수
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Publication of KR20150140631A publication Critical patent/KR20150140631A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • 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/4126The peripheral being portable, e.g. PDAs or mobile phones
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43615Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video stream to a specific local network, e.g. a Bluetooth® network
    • H04N21/43637Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wireless protocol, e.g. Bluetooth, RF or wireless LAN [IEEE 802.11]
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/437Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4432Powering on the client, e.g. bootstrap loading using setup parameters being stored locally or received from the server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/64Addressing
    • H04N21/6405Multicasting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8126Monomedia components thereof involving additional data, e.g. news, sports, stocks, weather forecasts
    • H04N21/8133Monomedia components thereof involving additional data, e.g. news, sports, stocks, weather forecasts specifically related to the content, e.g. biography of the actors in a movie, detailed information about an article seen in a video program
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8173End-user applications, e.g. Web browser, game

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

신호 송신 방법, 신호 송신 장치 및 신호 송수신 시스템이 개시된다. 신호 송신 방법은 멀티캐스트 방식을 이용하여 컴패니언 장치(companion device)를 검색(discovery)하는 단계, 검색된 컴패니언 장치로부터 장치 타입 정보를 수신하여 저장하는 단계, 어플리케이션 URI(Uniform Resource Identifier)를 수신하고 장치 타입 정보에 대응시켜 저장하는 단계 및 사용자에 의해 선택된 컴패니언 장치의 장치 타입 정보를 확인하고, 장치 타입 정보에 대응되는 어플리케이션 URI를 선택된 컴패니언 장치로 전송하는 단계를 포함한다.

Description

신호 송신 장치, 신호 송신 방법 및 신호 송수신 시스템{SIGNAL TRANSMITTING APPARATUS, SIGNAL TRANSMITTING METHOD, AND SYSTEM FOR TRANSMITTING AND RECEIVING SIGNAL}
본 발명은 신호 송신 장치, 신호 송신 방법 및 신호 송수신 시스템에 관한 것이다.
방송 및 통신 기술의 발전에 따라 다양한 방송 장치 및 방송 서비스에 대한 연구가 진행되고 있다. 현재에는 인터넷 망에 연결되어 인터넷 망을 통해 새로운 컨텐츠를 제공받을 수 있는 방송 장치 및 방송 서비스가 구현되어 있다. 이러한 방송 장치는 방송사로부터 제공되는 방송 프로그램에 적합한 부가 서비스를 인터넷 망을 통해 수신하여 화면에 출력한다.
그러나, 방송 컨텐츠의 출력 중에 부가 서비스 컨텐츠가 화면에 출력되는 경우, 부가 서비스 컨텐츠는 방송 컨텐츠의 출력 화면을 방해한다. 일반적으로 복수의 사람들이 하나의 방송 장치를 통해 방송 컨텐츠를 시청할 수 있다. 하지만, 그 중 일부의 사람들만이 부가 서비스에 대해 관심을 가질 수 있다.
따라서, 부가 서비스는 주변 장치를 통해 출력됨으로써 방송 컨텐츠는 방해받지 않고 방송 장치를 통해 출력될 수 있는 기술이 필요하다.
본 발명의 목적은 방송 컨텐츠를 시청하면서 부가 서비스를 주변 기기로 출력하는 신호 송신 장치, 신호 송신 방법 및 신호 송수신 시스템을 제공하는 것이다.
본 발명의 다른 목적은 부가 서비스를 제공받을 수 있는 주변 기기를 확인하고, 부가 서비스를 제공받을 수 있는 정보를 주변 기기로 전송하는 신호 송신 장치, 신호 송신 방법 및 신호 송수신 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 주변 기기에서 제공되는 부가 서비스를 출력하는 신호 송신 장치, 신호 송신 방법 및 신호 송수신 시스템을 제공하는 것이다.
본 발명의 일 실시 예에 따르면, 신호 송신 방법은 멀티캐스트 방식을 이용하여 컴패니언 장치(companion device)를 검색(discovery)하는 단계, 검색된 컴패니언 장치로부터 장치 타입 정보를 수신하여 저장하는 단계, 어플리케이션 URI(Uniform Resource Identifier)를 수신하고 상기 장치 타입 정보에 대응시켜 저장하는 단계 및 사용자에 의해 선택된 컴패니언 장치의 장치 타입 정보를 확인하고, 상기 장치 타입 정보에 대응되는 어플리케이션 URI를 상기 선택된 컴패니언 장치로 전송하는 단계를 포함한다.
그리고, 상기 저장하는 단계는 상기 어플리케이션 URI를 포함하는 AIT(Application Information Table)를 수신하고, 상기 수신된 AIT를 파싱(parsing)하여 상기 장치 타입 정보에 대응되는 상기 어플리케이션 URI를 검출하여 저장할 수 있다.
또한, 상기 저장하는 단계는 거치 URI(deferred URI)를 포함하는 AIT를 수신하고, 상기 수신된 AIT를 파싱하여 상기 거치 URI를 검출하며, 상기 거치 URI에 대응되는 서버에 접속하고 상기 장치 타입 정보에 대응되는 상기 어플리케이션 URI를 수신하여 저장할 수 있다.
그리고, 상기 저장하는 단계는 HbbTV 어플리케이션이 서버와 통신을 수행하여 상기 컴패니언 장치 어플리케이션(companion device application)의 이용 가능 여부(available)를 확인하고, 사용자에 의해 선택된 컴패니언 장치의 장치 타입 정보에 대응되는 상기 어플리케이션 URI를 서버로부터 수신하여 저장할 수 있다.
한편, 상기 어플리케이션 URI는 각각의 컴패니언 장치마다 서로 다른 URI 값이 할당되는 특정(specific) URI 또는 동일한 URI 값이 할당되는 일반(generic) URI일 수 있다.
본 발명의 일 실시 예에 따르면, 신호 송신 장치는 멀티캐스트 방식을 이용하여 컴패니언 장치를 검색(discovery)하고, 검색된 컴패니언 장치로부터 장치 타입 정보를 수신하는 UPnP부, 어플리케이션 URI를 수신하는 통신부, 상기 장치 타입 정보와 상기 어플리케이션 URI를 대응시켜 저장하고, 사용자에 의해 선택된 컴패니언 장치의 장치 타입 정보를 확인하는 장치관리부를 포함하며, 상기 UPnP부는 상기 장치 타입 정보에 대응되는 어플리케이션 URI를 상기 선택된 컴패니언 장치로 전송한다.
본 발명의 일 실시 예에 따르면, 신호 송수신 시스템은 멀티캐스트 방식을 이용하여 컴패니언 장치를 검색(discovery)하고, 검색된 컴패니언 장치로 장치 타입 정보를 요청하는 제어 신호를 전송하는 신호 송신 장치 및 상기 신호 송신 장치로 장치 타입 정보를 전송하는 컴패니언 장치를 포함하고, 상기 신호 송신 장치는 어플리케이션 URI를 수신하여 상기 장치 타입 정보와 상기 어플리케이션 URI를 대응시켜 저장하고, 사용자에 의해 선택된 컴패니언 장치의 장치 타입 정보를 확인하며, 상기 장치 타입 정보에 대응되는 어플리케이션 URI를 상기 선택된 컴패니언 장치로 전송하고, 상기 컴패니언 장치는 상기 신호 송신 장치로부터 전송된 상기 어플리케이션 URI를 수신하고, 상기 어플리케이션 URI에 대응되는 서버로부터 URI 페이지를 수신하여 디스플레이한다.
본 발명의 실시 예에 따르면, 방송 컨텐츠와 관련된 부가 서비스를 주변 기기에서 수신하여 출력할 수 있다.
그리고, 부가 서비스를 제공받을 수 있는 주변 기기를 확인하고, 부가 서비스를 제공받을 수 있는 정보를 주변 기기로 전송할 수 있다.
또한, 본 발명의 실시 예에 따르면, 주변 기기에서 제공되는 부가 서비스를 신호 송신 장치에서 출력할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 신호 송신 방법의 흐름도.
도 2는 본 발명의 일 실시 예에 따른 신호 송수신 시스템을 설명하는 도면.
도 3 내지 도 7은 본 발명의 다양한 실시 예에 따른 컴패니언 장치(companion device)에서 부가 서비스를 실행하는 방법을 설명하는 도면.
도 8은 본 발명의 제1 실시 예에 따른 컴패니언 장치(companion device)에서 부가 서비스를 실행하는 방법을 설명하는 타이밍도.
도 9는 본 발명의 제2 실시 예에 따른 컴패니언 장치(companion device)에서 부가 서비스를 실행하는 방법을 설명하는 타이밍도.
도 10은 본 발명의 제3 실시 예에 따른 컴패니언 장치(companion device)에서 부가 서비스를 실행하는 방법을 설명하는 타이밍도.
도 11은 본 발명의 제4 실시 예에 따른 컴패니언 장치(companion device)에서 부가 서비스를 실행하는 방법을 설명하는 타이밍도.
도 12는 본 발명의 제5 실시 예에 따른 컴패니언 장치(companion device)에서 부가 서비스를 실행하는 방법을 설명하는 타이밍도.
도 13은 본 발명의 제6 실시 예에 따른 컴패니언 장치(companion device)에서 부가 서비스를 실행하는 방법을 설명하는 타이밍도.
도 14는 본 발명의 일 실시 예에 따른 URI 디스크립터를 설명하는 도면.
도 15는 본 발명의 다른 실시 예에 따른 URI 디스크립터를 설명하는 도면.
도 16은 장치 타입 정보를 시그널링하는 실시 예를 설명하는 도면.
도 17은 컴패니언 장치 정보를 시그널링하는 실시 예를 설명하는 도면.
도 18은 URI 타입 정보를 시그널링하는 실시 예를 설명하는 도면.
도 19는 컴패니언 어플리케이션(companion application)을 실행하는 방식에 대한 정보를 시그널링하는 실시 예를 설명하는 도면.
도 20은 본 발명의 일 실시 예에 따른 거치 URI(deferred URI)의 GET 요청 헤더 정보를 설명하는 도면.
도 21은 본 발명의 일 실시 예에 따른 GET 응답 정보를 설명하는 도면.
도 22는 본 발명의 일 실시 예에 따른 컴패니언 어플리케이션 URI를 인코딩하기 위한 JSON schema를 설명하는 도면.
도 23은 컴패니언 장치에 따른 URI를 인코딩하는 실시 예를 설명하는 도면.
도 24는 본 발명의 일 실시 예에 따른 컴패니언 장치에서 부가 서비스를 실행하기 위한 신호 송신 장치의 UI를 설명하는 도면.
도 25 내지 도 26은 본 발명의 다양한 실시 예에 따른 컴패니언 장치의 부가 서비스를 신호 송신 장치에서 실행하는 방법을 설명하는 도면.
도 27은 본 발명의 제1 실시 예에 따른 컴패니언 장치의 부가 서비스를 신호 송신 장치에서 실행하는 방법을 설명하는 타이밍도.
도 28은 본 발명의 제2 실시 예에 따른 컴패니언 장치의 부가 서비스를 신호 송신 장치에서 실행하는 방법을 설명하는 타이밍도.
도 29는 본 발명의 일 실시 예에 따른 컴패니언 장치의 부가 서비스를 신호 송신 장치에서 실행하기 위한 신호 송신 장치의 UI를 설명하는 도면.
도 30은 본 발명의 일 실시 예에 따른 신호 송신 장치의 블록도.
도 31은 본 발명의 일 실시 예에 따른 컴패니언 장치의 블록도.
이하 상기의 목적을 구체적으로 실현할 수 있는 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 설명한다. 이때 도면에 도시되고 또 이것에 의해서 설명되는 본 발명의 구성과 작용은 적어도 하나의 실시 예로서 설명되는 것이며, 이것에 의해서 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 이는 당해 기술 분야에 종사하는 기술자의 의도 또는 관례 또는 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 함을 밝혀두고자 한다.
도 1은 본 발명의 일 실시 예에 따른 신호 송신 방법의 흐름도이다.
도 1을 참조하면, 신호 송신 장치는 멀티캐스트 방식을 이용하여 컴패니언 장치(companion device)(또는 세컨드 장치)를 검색(discovery)한다(S110). 예를 들어, 신호 송신 장치는 TV 등이 될 수 있다. 그리고, 컴패니언 장치는 스마트폰, 스마트 패드, 랩탑 컴퓨터 등과 같이 개인용 휴대 장치일 수 있다.
신호 송신 장치는 검색된 컴패니언 장치로부터 장치 타입 정보를 수신하여 저장한다(S120). 장치 타입 정보는 컴패니언 장치가 어떤 종류의 휴대 장치인지 확인할 수 있는 정보일 수 있다. 신호 송신 장치는 장치 타입 정보를 수신하여 장치 테이블에 저장하여 관리할 수 있다.
신호 송신 장치는 어플리케이션 URI를 수신하고 장치 타입 정보에 대응시켜 저장한다(S130). URI(Uniform Resource Identifier)는 인터넷에 있는 자원을 나타내는 주소로서, URL(Uniform Resource Locator) 및 URN(Uniform Resource Name)을 포함할 수 있다. 어플리케이션 URI는 컴패니언 장치가 부가 서비스를 수행하기 위해 필요한 자원이 있는 장소일 수 있다.
일 실시 예로서, 신호 송신 장치는 어플리케이션 URI를 포함하는 AIT(Application Information Table)를 수신하고, 수신된 AIT를 파싱(parsing)하여 장치 타입 정보에 대응되는 어플리케이션 URI를 검출하여 저장할 수 있다.
또는, 신호 송신 장치는 거치 URI(deferred URI)를 포함하는 AIT를 수신하고, 수신된 AIT를 파싱하여 상기 거치 URI를 검출할 수 있다. 신호 송신 장치는 거치 URI에 대응되는 서버에 접속하고 장치 타입 정보에 대응되는 어플리케이션 URI를 수신하여 저장할 수 있다.
또는, 신호 송신 장치는 HbbTV 어플리케이션이 서버와 통신을 수행하여 컴패니언 장치 어플리케이션(companion device application)의 이용 가능 여부(available)를 확인할 수 있다. 그리고, 신호 송신 장치는 사용자에 의해 선택된 컴패니언 장치의 장치 타입 정보에 대응되는 어플리케이션 URI를 서버로부터 수신하여 저장할 수 있다.
신호 송신 장치는 사용자에 의해 선택된 컴패니언 장치의 장치 타입 정보를 확인하고, 장치 타입 정보에 대응되는 어플리케이션 URI를 선택된 컴패니언 장치로 전송한다(S140).
도 2는 본 발명의 일 실시 예에 따른 신호 송수신 시스템을 설명하는 도면이다.
신호 송수신 시스템은 신호 송신 장치(100), 컴패니언 장치(Companion Device)(200) 및 방송 서버(Broadcast Server)(300)를 포함할 수 있다.
신호 송신 장치(100)는 방송 수신부(Broadcast Reciver)(110), 장치 관리부(Device Manager)(120), UPnP부(130) 및 브라우저부(Brower)(140)를 포함할 수 있다. 예를 들어, 신호 송신 장치(100)는 TV일 수 있다.
컴패니언 장치(200)는 네이티브 어플리케이션부(Native App)(210) 및 시스템 웹 브라우저부(System Web Browser)(220)를 포함할 수 있다. 네이티브 어플리케이션부(Native App)(210)는 UPnP(211) 및 웹 뷰(Web View)(212)를 포함할 수 있다.
신호 송신 장치(100)는 현재 방송 프로그램과 관련된 컴패니언 장치 어플리케이션(Companion Device Application) 서비스가 있다는 내용을 포함한 AIT를 방송 수신부(110)를 수신할 수 있다. 또는, 신호 송신 장치(100)는 방송 서버로부터 HbbTV 어플리케이션을 통해 컴패니언 장치 어플리케이션의 존재를 인식할 수 있다.
즉, 신호 송신 장치(100)는 방송 신호로부터 현재 프로그램과 연관된 컴패니언 장치 어플리케이션의 존재 여부 정보를 포함하는 AIT를 수신하면서 이러한 과정를 수행할 수 있다. 신호 송신 장치(100)는 현재 프로그램과 연관된 어플리케이션을 이용 가능함을 사용자에게 알려줄 수 있다. 컴패니언 장치 어플리케이션을 설치하기 위한 URI를 발견하는 과정은 AIT에 포함된 URI를 이용해 직접 또는 컴패니언 장치 어플리케이션을 이용할 수 있는 원격 방송 서버(300)를 통해 수행될 수 있다. (The process is triggered by the TV receiving an AIT from the broadcast, which contains information that there is a companion device application related to the current programme. Then, users are notified that an associated application is available. The resolution process for finding the URI to launch the application can be either direct (URI given in the AIT), or defer to querying a remote Broadcast Server for the availability of the application.)
방송 수신부(Broadcast Reciver)(110)는 방송 컨텐츠를 포함하는 방송 신호를 수신할 수 있다.
방송 수신부(110)는 플랫폼의 TV 미들웨어를 나타낼 수 있다. 방송 수신부(110)는 컴패니언 장치와 연결을 위한 방송 AIT을 필터링할 수 있고, 연결이 발견되면 장치 관리부(120)에게 알려줄 수 있다. (The Broadcast Receiver represents the TV middleware of the platform. It filters the broadcast AIT for links to companion applications and notifies the Device Manager if any such link is found. The interface between the Broadcast Receiver and the Device Manager is outside the scope of the present document.)
장치 관리부(Device Manager)(120)는 UPnP부(130)로부터 가용한 장치에 관한 정보를 수집하고, 자바스크립트 API를 통해 HbbTV 어플리케이션으로 수집된 정보를 알려줄 수 있다. 장치 관리부(Device Manager)(120)는 AIT로부터 제공되는 컴패니언 어플리케이션 링크에 관한 정보를 방송 수신부(110)로부터 수집하고, DOM 이벤트에 의해 이용 가능성을 HbbTV로 알려줄 수 있다. (The Device Manager collects information about the available devices from the UPnP instance and exposes this information to HbbTV applications through a JavaScript API. It also collects information from the Broadcast Receiver about companion application links provided in the AIT, and notifies HbbTV applications about their availability by firing a DOM event.)
UPnP부(130)는 TV 플랫폼의 UPnP를 구현할 수 있다. UPnP부(130)는 컴패니언 장치(200)의 존재 여부를 검색하고, 신호 송신 장치(100)와 컴패니언 장치(200)간의 컴패니언 어플리케이션 URI를 전달할 수 있다. (The UPnP Instance is the UPnP implementation of the TV platform. It tracks the presence of companion devices, and conveys companion app URIs between the TV and the companion device. Any APIs it provides are outside the scope of the present document.)
브라우저부(Brower)(140)는 HbbTV 어플리케이션을 포함할 수 있다. 브라우저부(Brower)(140)는 HbbTV 어플리케이션을 이용하여 특정 URI의 방송 서버(300)에 접속할 수 있다. 브라우저부(140)는 방송 서버(300)로부터 장치 타입에 따른 어플리케이션 URI를 수신할 수 있다. 또는 브라우저부(140)는 컴패니언 장치 어플리케이션의 이용 가능 여부를 확인할 수 있다.
네이티브 어플리케이션부(Native App)(210)는 컴패니언 장치(200) 상에서 구동되고, UPnP 동작을 제공할 수 있다. 그리고, 컴패니언 어플리케이션을 로딩하고 구동할 수 있는 웹 뷰를 제공할 수 있다. (The Native App runs on the companion device and provides a UPnP implementation (as this is not usually part of Smartphone and similar platforms), and may also provides a WebView element with which it can load and run companion applications.)
시스템 웹 브라우저부(System Web Browser)(220)는 컴패니언 장치(200) 상에서 구동되고, 컴패니언 장치(200)에서 설정되는 표준 웹 브라우저일 수 있다. 네이티브 어플리케이션부(210)에 의해 선택적으로 제공될 수 있는 웹 뷰(212)와 달리 시스템 웹 브라우저부(System Web Browser)(220)는 일반적인 웹 용도에 적당한 일반 웹 브라우저일 수 있다. (The System Web Browser runs on the companion device and is the standard Web browser that is configured on the device. As opposed to the WebView optionally provided by the Native App, this is a general Web browser providing all the features appropriate for general Web usage. Note that embedded WebViews may provide restricted functionality on some platforms.)
UPnP(211)는 신호 송신 장치(100)의 UPnP부(130)와 연결되어 통신을 수행할 수 있고, 웹 뷰(Web View)(212)는 접속된 URI의 서버에서 제공하는 부가 서비스를 표시할 수 있다.
컴패니언 어플리케이션을 위해 획득되는 URI의 타입은 아래와 같이 고려될 수 있다.
(1) AIT는 컴패니언 장치의 각각의 클래스(예, 스마트폰, 태블릿 등)를 위한 특정 URI를 포함할 수 있다. (The broadcast AIT contains a specific URI for each class of companion device (phone, tablet, etc.).)
(2) AIT는 컴패니언 장치의 모든 클래스에서 이용 가능한 일반 URI를 포함할 수 있다. (The broadcast AIT contains a generic URI that is applicable to all classes of devices.)
(3) AIT는 어플리케이션 URI를 수신할 수 있는 방송 서버를 가리키는 거치 URI(deferred URI)를 포함할 수 있다. (The Broadcast AIT contains a deferred URI that points to a broadcaster server. In this case, the terminal will retrieve specific and/or generic URIs from the designated URI.)
도 3은 본 발명의 일 실시 예에 따른 CP(Control Point)가 신호 송신 장치에 있는 경우 컴패니언 장치에서 부가 서비스를 실행하는 방법을 설명하는 도면이다.
UPnP 장치 구조는 CP(Control Point)만이 장치로 명령을 보내거나(control) 장치의 상태 변경을 듣는 것(Eventing)으로 정의될 수 있다. (The UPnP Device Architecture defines that only Control Points can send commands to devices (Control), or listen to state changes in devices (Eventing).)
도 3을 참조하면, 신호 송신 장치(100)(예, TV)만이 CP를 가진다. 컴패니언 장치(200)는 두 가지 상태 변수에 대한 접근을 제공한다. - 컴패니언 장치 클래스, 시작을 위한 URI. AIT에 포함된 컴패니언 어플리케이션 URI를 수신하면, 신호 수신 장치(100)는 컴패니언 장치(200)에 의해 제공되는 서비스를 통하여 직접 어플리케이션 URI를 세팅할 수 있다. (Figure 3 shows that only the TV has a Control Point, and the companion device provides access to two state variables: the companion’s device class, and the URI to launch. In this case the TV, upon receiving a companion application URI in the broadcast AIT, can directly set the application URI via the service provided by the companion device.)
도 4는 본 발명의 일 실시 예에 따른 CP가 컴패니언 장치에 있는 경우 컴패니언 장치에서 부가 서비스를 실행하는 방법을 설명하는 도면이다.
도 4를 참조하면, 컴패니언 장치(200)만이 CP를 가진다. 신호 송신 장치(100)는 두 가지 상태 변수를 위한 접근을 제공한다. - 컴패니언 장치 클래스, 시작을 위한 URI. CP가 없는 장치는 어떤 서비스도 제공할 수 없기 때문에 컴패니언 장치(200)는 능동적으로 자신의 장치 클래스를 신호 송신 장치(100)에 세팅하고 어플리케이션 URI 서비스를 조회(poll)하는 것이 필요하다. (Figure 4 shows that only the companion device has a Control Point, and the TV provides access to two state variables: the companion's device class, and the URI to launch. Since devices without a Control Point can not invoke any services, the companion device needs to actively set it's device class to the TV, and then needs to constantly poll the application URI service for any results.)
도 4에서 설명하는 방법은 두 가지 점을 고려할 수 있다.
먼저, 신호 송신 장치(100)에서 장치 클래스 상태 변수의 사용은 UPnP의 독창적 사용이다. UPnP는 상태 변수를 주변 장치를 기술(GET)하거나 제어(SET)하는 파라미터로 생각할 수 있다. 그러나, 이 경우, 신호 송신 장치(100)의 상태 변수는 컴패니언 장치(200)를 기술하기 위해 사용될 수 있다. 이렇게 장치 클래스 변수가 set을 얻을 때 특별한 핸들링은 각각의 컴패니언 장치(200)를 위한 별개 값을 저장하기 위해 수행되는 것이 필요할 수 있다. (Firstly, the use of the device class state variable in the TV is a “creative use” of UPnP. Conceptually, UPnP thinks of state variables as parameters that describe (GET), or control (SET) a peripheral. In this use-case, the TV’s state variable is however used to describe the companion device. Hence, a special handling needs to be implemented when the device class variable gets set, to store a separate value for each companion device. This would imply a special implementation of UPnP.)
다음으로, CP없는 신호 송신 장치(100)는 어떤 동작도 능동적으로 트리거할 수 없기 때문에 컴패니언 장치(200)는 어플리케이션 URI 상태 변수를 조회하는 것이 필요할 수 있다. UPnP 장치 구조는 적용 서비스가 거의 30초 후에 리턴되어야 하고 만일 동작이 더 오래 걸릴 것이 명확하다면 그보다 일찍 리턴되어야 하는 것으로 정의될 수 있다. 이것은 서비스 적용으로부터 언제 리턴할 것인지, 언제 AIT에 트리거가 존재하지 않는지에 대한 것은 신호 송신 장치(100)의 재량이라는 것을 의미한다. 이러한 케이스에서 신호 송신 장치(100)가 빨리 리턴한다면, 부당한 프로세싱 부담와 시스템 부하가 컴패니언 장치(200)에 발생될 수 있다. (Secondly, since the CP-less TV device can never trigger any action actively, the companion device needs to poll the application URI state variable. The UPnP device architecture defines that a service invocation shall return after at most 30s, and that if it is clear that the action will take longer should return earlier than that. This implies that it is at the TV's discretion as to when to return from the service invocation when no trigger is present in the broadcast AIT. If the TV returns quickly in such cases, an unreasonable processing burden and system load may be imposed on the companion device.)
도 5는 본 발명의 다른 실시 예에 따른 CP가 컴패니언 장치에 있는 경우 컴패니언 장치에서 부가 서비스를 실행하는 방법을 설명하는 도면이다.
도 5를 참조하면, 어플리케이션 URI는 신호 송신 장치(100)로부터 이벤트형 상태 변수를 통해 획득될 수 있다. 도 5의 방법은 어플리케이션 URI 상태 변수를 위한 조회의 단점을 극복할 수 있다. (Figure 5 shows a variation of Figure 4, in which the application URI is obtained through an evented state variable from the TV. This removes the polling penalty for the application URI state variable.)
도 5의 방법은 Set을 사용하여 컴패니언 장치(200)가 신호 송신 장치(100)로 정보를 주는 것이고, 도 4의 방법은 Get을 사용하여 신호 송신 장치(100)가 컴패니언 장치(200)로부터 정보를 가지고 오는 것이다.
도 6은 본 발명의 일 실시 예에 따른 CP가 신호 송신 장치 및 컴패니언 장치 모두에 있는 경우 컴패니언 장치에서 부가 서비스를 실행하는 방법을 설명하는 도면이다.
CP가 양쪽 장치 모두에 있기 때문에 상호 간에 자유로은 통신이 가능하다.
컴패니언 장치(200)는 get-able 상태 변수를 통해 자신의 장치 클래스에 대한 접근을 제공할 수 있고, 신호 송신 장치(100)는 이벤트형 상태 변수를 통해 어플리케이션 URI에 대한 접근을 제공할 수 있다. 신호 송신 장치(100)가 AIT내의 컴패니언 URI를 감지할 때마다 신호 송신 장치(100)는 어플리케이션 URI 상태 변수를 위한 이벤츠를 생성할 수 있다. (The companion device provides access to its device class via a get-able state variable, and the TV provides access to the application URI via an evented state variable. Whenever the TV detects a companion URI in the broadcast AIT, it generates an event for the application URI state variable.)
어플리케이션 URI는 컴패니언 장치(200)마다 별개의 값을 가지는 것이 필요하기 때문에 어플리케이션 URI 상태 변수는 이벤트의 독창적 사용일 수 있는 반면에, UPnP는 모든 메시지를 모든 가입자에게 보내는 것으로 정의될 수 있다. (The application URI state variable is a “creative use” of eventing, since again the application URI would need to have a separate value per companion device, weheras UPnP defines that all subscribers are sent all event messages. This would imply a special implementation of UPnP.)
도 7은 본 발명의 일 실시 예에 따른 CP가 제3의 장치에 있는 경우 컴패니언 장치에서 부가 서비스를 실행하는 방법을 설명하는 도면이다.
도 7을 참조하면 신호 송신 장치(100) 및 컴패니언 장치(200)는 CP를 가지고 있지 않다. 따라서, 신호 송신 장치(100)와 컴패니언 장치(200)는 상호 간에 통신을 할 수 없고, 제3의 장치(400)는 프락시(proxy)로 동작되는 것을 기대할 수 없다. 그러나, CP가 신호 송신 장치(100) 및 컴패니언 장치(200) 중 적어도 하나에 포함된다면, 상술한 도 3 내지 도 6 중 하나의 방법으로 신호 송수신 시스템은 동작할 수 있다. (Figure 7 shows that neither the TV, nor the companion device have a Control Point, but only some 3rd party device has one. In this scenario, the TV and the companion device cannot communicate with each other, and the 3rd party device can not be expected to act as a proxy. If a Control Point were added to the TV, or the companion device, or both, one of the use-cases described under Figure 3 through Figure 6 would result.)
도 8은 본 발명의 제1 실시 예에 따른 컴패니언 장치(companion device)에서 부가 서비스를 실행하는 방법을 설명하는 타이밍도이다.
도 8에는 모든 컴패니언 장치(또는 세컨드 장치)에 대한 어플리케이션 URI가 AIT에 포함되고, CP가 신호 송신 장치(예, TV)에 위치한 실시 예가 도시되어 있다.
도 8을 참조하면, AIT를 이용하여 특정 URI 또는 일반 URI가 전송되는 경우 이벤트의 흐름이 도시되어 있다. 따라서, 추가적인 URI 해상도(또는 분해능(resolution))는 필요하지 않으며, 시작 URI(launching URI)는 직접 컴패니언 장치로 전송될 수 있다. (Figure 8 depicts the flow of events when a specific or a generic URI is conveyed in the broadcast AIT. This means that no further URI resolution in the TV is necessary, and the launching URI can be transferred to the companion device directly.)
CP인 TV는 UPnP(17)를 통해 컴패니언 장치(19)에게 멀티캐스트 서치를 보내서 검색(discovery) 작업을 진행한다(S1110). 컴패니언 장치(19)에 대한 디스커버리가 완료되면, UPnP(17)는 컴패니언 장치(19)로 장치 타입 정보를 Get하라는 제어 신호를 전송한다(S1115). 컴패니언 장치(19)는 제어 신호에 대한 응답으로 장치 정보를 TV의 UPnP(17)로 전송한다(S1120). 전송된 장치 정보는 장치 관리부(15)로 전달된다(S1125). 장치 관리부(15)는 장치 테이블을 작성하고, 장치 ID, 장치 타입 및 URI를 관리한다(S1130).
TV(11)는 AIT를 수신한다(S1135). AIT는 컴패니언 장치에서 시작될 어플리케이션 URI를 포함할 수 있다. TV(11)는 수신한 AIT를 파싱하여 장치 타입에 따른 어플리케이션 URI를 장치 관리부(15)로 전달한다(S1140). 장치 관리부(15)는 장치 테이블의 컴패니언 장치에 해당하는 URI를 업데이트한다. 장치 관리부(15)는 컴패니언 스크린 어플리케이션의 존재를 HbbTV 어플리케이션(13)에게 알린다(S1145). HbbTV 어플리케이션(13)은 모든 컴패니언 장치 정보를 요청한다(S1150). 장치 관리부(15)는 요청에 대한 응답으로 컴패니언 장치 정보를 전달한다(S1155).
TV(11)는 방송중인 프로그램과 관련된 부가 서비스가 존재하면 사용자에게 부가 서비스의 존재를 알리고, 사용자는 부가 서비스 및 부가 서비스를 실행할 컴패니언 장치 타입을 선택할 수 있다.
HbbTV 어플리케이션(13)은 선택된 컴패니언 장치와 관련된 정보를 장치 관리부(15)로 전달한다(S1160). 장치 관리부(15)는 선택된 컴패니언 장치와 대응되는 어플리케이션 URI를 TV의 UPnP(17)로 전달한다(S1165). TV의 UPnP(17)는 Set URI라는 제어 신호를 선택된 컴패니언 장치(19)로 전송한다(S1170). 컴패니언 장치(19)는 전송된 URI를 웹뷰(21)로 전달한다(S1175). 웹뷰(21)는 인터넷 망을 이용하여 URI 페이지를 표시한다(S1180).
다시 말하면, CP인 TV의 UPnP를 통해 컴패니언 장치들에게 멀티캐스트 서치를 보내서 디스커버리 작업을 진행한다. 컴패니언 장치들에 대한 디스커버리가 완료되면, TV는 컴패니언 장치로 장치 타입을 Get하라는 컨트롤을 보낸다. 컴패니언 장치는 컨트롤에 대한 응답으로 장치 정보를 전달한다. 전달된 장치 정보는 장치 관리부의 장치 테이블로 전달되어 장치 ID와 장치 타입을 관리한다. (The UPnP Control Point in the TV begins its discovery work by broadcasting a multicast search for available HbbTV companion devices. When the discovery is complete, the Device Manager in the TV receives a list of available HbbTV companion devices, and sends a “GET” control to each HbbTV companion device to learn its name and device class. This information is stored in the Device Table by the Device Manager.)
AIT는 컴패니언 장치에서 시작될 어플리케이션 URI를 포함하고, TV는 AIT를 수신한다. 수신한 AIT는 파싱되고 장치 관리부로 전달되어 장치 테이블에 있는 컴패니언 장치에 대응되는 URI를 업데이트한다. 장치 테이블은 컴패니언 장치와 대응되는 어플리케이션 URI를 포함하게 된다. 만일, AIT에서 장치 타입을 지정하지 않은 경우(예, 일반 URI), 공통되는 URI가 컴패니언 장치로 전달된다. 컴패니언 장치 어플리케이션이 존재하는 경우, AIT를 통해 이용가능함을 TV를 통해 알린다. 사용자는 이를 확인하고, 연결하고자 하는 컴패니언 장치를 선택한다. 선택된 장치는 장치 관리부로 전달되고, 컴패니언 장치로 전달될 준비가 완료된다. (The AIT contains one or more launching URIs for a companion application, and the class of devices each URI is applicable to. The TV first receives the AIT from the broadcast, then searches the AIT for companion URI descriptors, and (if any are found) then sends these URIs to the Device Manager to update the URIs for all devices of the given device classes. Device Table is now storing all available HbbTV companion devices, their device class, and any application URI that is currently available for each device. If AIT contains a generic URI which does not specify which device class the URI is intended for, then all companion device classes share the same launching URI for the application. If none of the available HbbTV companion devices now have a launching URI associated with them via the AIT, the process ends at this point. If one or more of the available HbbTV companion devices now do have a launching URI associated with them via the AIT, the TV should prompt the user to select a device on which the companion application is to be launched. After a decision has been made - whether by consulting the user or otherwise - the TV is ready for sending the launching URI to the selected HbbTV companion device.)
장치 관리부는 사용자로부터 선택된 컴패니언 장치와 대응되는 어플리케이션 URI를 TV의 UPnP로 전달한다. 전달된 URI는 TV(CP)에서 컴패니언 장치로 "Set URI"라는 컨트롤을 통해 사용자가 선택한 컴패니언 장치로 전달된다. 수신된 URI는 컴패니언 장치에서 웹뷰를 통해 사용자에게 표시된다. (When the Device Manager is instructed by the HbbTV application on the TV to send the launching URI to the selected companion device, it will use the UPnP module to invoke a "SET" action on the AppURI state variable on the selected HbbTV companion device. On the HbbTV companion device, the received URI is launched in a WebView, and displayed to the user.)
장치 테이블(Device Table)은 TV가 AIT를 통해 검출한 각각의 컴패니언 장치에 따른 URI 또는 서버(예, 방송사 서버)의 주소를 저장할 수 있다. 그리고, 장치 테이블은 TV가 컴패니언 장치와 연결하면서 얻은 장치 정보를 저장할 수 있다. 또한, 장치 테이블은 서버를 통해 검출한 컴패니언 장치별 URI를 저장할 수 있다. 따라서, 장치 테이블은 HbbTV(browser 레벨)와 UPnP(physical 레벨)에서 수집된 컴패니언 장치를 동작시키는데 필요한 정보를 통합적으로 관리하는 저장 공간이다.
한편, 장치 정보는 컴패니언 장치의 기기 종류 등에 대한 정보를 포함할 수 있다. TV는 UPnP의 CP(Control Point)이다. 일 실시 예로서, HbbTV 2.0 수신기는 urn:hbbtv-org:device:hbbtv2.0rcvr의 UPnP 장치 타입을 가지는 논리적 UPnP 장치를 이행해야 한다. 그리고, HbbTV 2.0 컴패니언 장치는 urn:hbbtv-org:device:hbbtv2.0rcvr의 UPnP 장치 타입을 가지는 논리적 UPnP 장치를 이행해야 한다. 위의 URN의 Namespace Identifier(NID) prefix를 형성하기 위해 hbbtv.org의 DNS 이름은 RFC2141에서 요구하는 바와 같이 hbbtv-org로 전환된다. hbbtv-org 뒤의 잔여 부분은 Namespace Specific String(NSS)이다. (An HbbTV 2.0 Receiver shall implement a logical UPnP device with a UPnP device type of urn:hbbtv-org:device:hbbtv2.0rcvr. An HbbTV 2.0 companion device shall implement a logical UPnP device with a UPnP device type of urn:hbbtv-org:device:hbbtv2.0rcvr. To form the Namespace Identifier (NID) prefix in the above URN, the DNS name of hbbtv.org has been converted to hbbtv-org as required by RFC 2141. The remaining part after hbbtv-org is therefore the Namespace Specific String (NSS).)
HbbTV 2.0 수신기는 아래와 같은 Devinfo 서비스 및 서비스 타입 및 서비스 ID를 가지는 AppURI 서비스를 지원한다.
Figure pct00001
DevInfo 서비스를 이용하여 TV는 컴패니언 장치로부터 장치 정보를 가져올 수 있다. TV는 UPnP의 GET 제어를 통해 컴패니언 장치 정보를 수신할 수 있다. DevInfo 서비스를 위한 프로토콜은 아래에서 정의된 파라미터를 사용한다. (Using the DevInfo Service, the TV gets the device information from the Companion Device. The TV receives the companion device information via the "GET" control of UPnP. The protocol for the DevInfo service shall use the parameters defined as below.)
Figure pct00002
표 2는 Devinfo Service state variable이다.
Figure pct00003
표 3은 DevClass Service action이다.
Figure pct00004
표 4는 GetDevClass action arguments이다.
DevClass state variable을 사용하기 위해 다음의 규칙이 적용된다.
a) 컴패니언 장치는 "Phone", "Tablet" 또는 "PC" 클래스로서 자신을 식별한다.
b) TV는 "TV" 클래스로서 자신을 식별한다.
(For using the DevClass state variable, the following rules shall apply:
a) Companion devices shall identify themselves as being of the "Phone", "Tablet" or "PC" class.
b) TV devices shall identify themselves as being of the "TV" class.)
AppURI 서비스는 TV에서 컴패니언 장치로 어플리케이션을 위한 시작 URI를 보내기 위해 사용될 수 있다. 복수의 컴패니언 장치가 이용 가능할 때, HbbTV 어플리케이션은 하나를 선택하도록 사용자를 유도하고, 선택된 장치를 위한 URI는 UPnP의 SET 제어를 통해 전송될 수 있다. APPURI 서비스를 위한 프로토콜은 아래에서 정의된 파라미터를 사용한다. (The AppURI Service is used for sending the launching URI for the application from the TV to the companion device. When several companion devices are available, the HbbTV application will prompt the user to select one, and the URI for that device is sent to it via the "SET" control of UPnP. The protocol for the AppURI service shall use the parameters defined as below.)
Figure pct00005
표 5는 AppURI Service state variable이다.
Figure pct00006
표 6은 AppURI Service action이다.
Figure pct00007
표 7은 SetAppURI action arguments이다.
DisplayIntnet state variable 및 action argument를 사용하기 위해서 다음의 규칙이 적용된다.
a) WebView 또는 SystemBrower 중 하나가 세팅된다.
b) WebView가 전송되면, 연관된 URI는 컴패니언 어플리케이션 안에 임베디드된 WebView에서 시작될 수 있다. 다른 경우에는, URI는 컴패니언 장치의 기본 Web browser에서 시작될 수 있다.
c) 임베디드된 WebView가 제공되지 않는 컴패니언 장치는 모든 URI를 기본 Web browser에서 시작한다.
(For using the DisplayIntent state variable and action argument, the following rules shall apply:
a) It shall be set to either "WebView" or "SystemBrowser".
b) if it is set to "WebView", the associated URI may be launched in a WebView embedded in the companion application; in all other cases, the URI shall be launched in the default Web browser of the companion device.
c) companion devices that do not provide an embedded WebView, shall launch all URIs in the default Web browser.)
도 9는 본 발명의 제2 실시 예에 따른 컴패니언 장치(companion device)에서 부가 서비스를 실행하는 방법을 설명하는 타이밍도이다.
도 9에는 모든 컴패니언 장치에 대한 어플리케이션 URI가 AIT에 포함되고, CP가 컴패니언 장치에 위치한 실시 예가 도시되어 있다.
도 9를 참조하면, CP인 컴패니언 장치(19)는 TV로 멀티캐스트 방식을 이용하여 검색(discovery) 작업을 수행한다(S1210). 검색 작업이 완료되면, 컴패니언 장치(19)에서 TV로 컴패니언 장치의 장치 정보를 Set하라는 제어 신호를 전송한다(S1215). TV의 UPnP(17)는 컴패니언 장치 정보를 장치 관리부(15)로 전달한다(S1220). 장치 관리부(15)는 장치 테이블을 작성하고, 장치 ID, 장치 타입 및 URI를 관리한다(S1225).
TV(11)는 AIT를 수신한다(S1230). AIT는 컴패니언 장치에서 시작될 어플리케이션 URI를 포함할 수 있다. TV(11)는 수신한 AIT를 파싱하여 장치 타입에 따른 어플리케이션 URI를 장치 관리부(15)로 전달한다(S1235). 장치 관리부(15)는 장치 테이블의 컴패니언 장치에 해당하는 URI를 업데이트한다. 장치 관리부(15)는 컴패니언 스크린 어플리케이션의 존재를 HbbTV 어플리케이션(13)에게 알린다(S1240). HbbTV 어플리케이션(13)은 모든 컴패니언 장치 정보를 요청한다(S1245). 장치 관리부(15)는 요청에 대한 응답으로 컴패니언 장치 정보를 전달한다(S1250).
TV(11)는 방송중인 프로그램과 관련된 부가 서비스가 존재하면 사용자에게 부가 서비스의 존재를 알리고, 사용자는 부가 서비스 및 부가 서비스를 실행할 컴패니언 장치 타입을 선택할 수 있다.
HbbTV 어플리케이션(13)은 선택된 컴패니언 장치와 관련된 정보를 장치 관리부(15)로 전달한다(S1255). 장치 관리부(15)는 선택된 컴패니언 장치와 대응되는 어플리케이션 URI를 TV의 UPnP(17)로 전달한다(S1260). 전달된 URI가 있으면 TV의 UPnP(17)는 컴패니언 장치로 전달된 URI를 알려준다(S1265). 컴패니언 장치(19)는 전송된 URI를 웹뷰(21)로 전달한다(S1270). 웹뷰(21)는 인터넷 망을 이용하여 URI 페이지를 표시한다(S1275).
다시 말하면, CP인 컴패니언 장치의 UPnP를 통해 TV에게 멀티캐스트 서치를 보내서 디스커버리 작업을 진행한다. TV에 대한 디스커버리가 완료되면, 컴패니언 장치는 TV로 컴패니언 장치의 장치 타입을 Set하라는 컨트롤을 보낸다. TV는 컴패니언 장치에서 Set한 장치 정보를 장치 관리부로 전달한다. 장치 테이블은 모든 컴패니언 장치의 장치 ID와 장치 타입을 관리한다.
AIT는 컴패니언 장치에서 시작될 어플리케이션 URI를 포함하고, TV는 AIT를 수신한다. 수신한 AIT는 파싱되고 장치 관리부로 전달되어 장치 테이블에 있는 컴패니언 장치에 대응되는 URI를 업데이트한다. 장치 테이블은 컴패니언 장치와 대응되는 어플리케이션 URI를 포함하게 된다. 만일, AIT에서 장치 타입을 지정하지 않은 경우(예, 일반 URI), 공통되는 URI가 컴패니언 장치로 전달된다. 컴패니언 장치 어플리케이션이 존재하는 경우, AIT를 통해 이용가능함을 TV를 통해 알린다. 사용자는 이를 확인하고, 연결하고자 하는 컴패니언 장치를 선택한다. 선택된 장치는 장치 관리부로 전달되고, 컴패니언 장치로 전달될 준비가 완료된다.
장치 관리부는 사용자로부터 선택된 컴패니언 장치와 대응되는 어플리케이션 URI를 TV의 UPnP로 전달한다. 전달된 URI가 있을 경우, 사용자가 선택한 컴패니언 장치(CP)는 TV에서 변경된(전달된) URI를 notify 받게 되고, 어플리케이션 URI를 전달받는다. 수신된 URI는 컴패니언 장치에서 웹뷰를 통해 사용자에게 표시된다.
한편, 장치 정보는 컴패니언 장치의 기기 종류 등에 대한 정보를 포함할 수 있다. 컴패니언 장치는 UPnP의 CP(Control Point)이다. 일 실시 예로서, HbbTV 2.0 수신기의 UPnP 장치 타입은 urn:hbbtv.org:device:hbbtv2.0rcvr이다. 경우에 따라, Namespace Identifier(NID) prefix를 형성하기 위해 hbbtv.org의 DNS 이름은 RFC2141에서 요구하는 바와 같이 hbbtv-org로 전환될 수 있다. hbbtv-org 뒤의 잔여 부분은 Namespace Specific String(NSS)이다. HbbTV 2.0 수신기는 아래와 같은 Devinfo 서비스 및 서비스 타입 및 서비스 ID를 가지는 AppURI 서비스를 지원한다.
Figure pct00008
표 8은 Service type 및 Service ID를 나타낸다.
DevInfo 서비스를 이용하여, TV는 CP인 컴패니언 장치로부터 장치 정보를 수신할 수 있다. 컴패니언 장치가 CP이므로 UPnP의 특성상 Set Control을 통해 TV로 정보를 전달한다.
AppURI 서비스는 TV에서 컴패니언 장치(CP)로 어플리케이션을 시작하는 URI를 전달학 위한 서비스이다. 사용자가 선택한 컴패니언 장치에 해당하는 URI를 HbbTV 어플리케이션을 통해 얻어서 해당 컴패니언 장치에 notify하여 UPnP를 통해 전달한다.
Figure pct00009
표 9는 DevInfo Service state variable이다.
Figure pct00010
표 10은 DevInfo Service action이다.
Figure pct00011
표 11은 Argument of GetDevInfo action이다.
Figure pct00012
표 12는 AppURI Service state variable이다.
Figure pct00013
표 13은 AppURI Service Actions이다.
Figure pct00014
표 14는 Argument of SetAppURI action이다.
도 10은 본 발명의 제3 실시 예에 따른 컴패니언 장치(companion device)에서 부가 서비스를 실행하는 방법을 설명하는 타이밍도이다.
도 10에는 AIT를 이용하여 거치 URI(deferred URI)가 전송되는 경우 이벤트의 흐름이 도시되어 있다. 따라서, 어플리케이션 URI가 컴패니언 장치로 전송되기 전에 원격 서버로부터 검색되는 과정을 필요로 한다. (Figure 10 depicts the flow of events when a deferred URI is conveyed in the broadcast AIT. This means that the URI needs to be retrieved from a remote server before it can be transferred to the companion device.)
CP인 TV는 UPnP(17)를 통해 컴패니언 장치(19)에게 멀티캐스트 서치를 보내서 검색(discovery) 작업을 진행한다(S1310). 컴패니언 장치(19)에 대한 디스커버리가 완료되면, UPnP(17)는 컴패니언 장치(19)로 장치 타입 정보를 Get하라는 제어 신호를 전송한다(S1315). 컴패니언 장치(19)는 제어 신호에 대한 응답으로 장치 정보를 TV의 UPnP(17)로 전송한다(S1320). 전송된 장치 정보는 장치 관리부(15)로 전달된다(S1325). 장치 관리부(15)는 장치 테이블을 작성하고, 장치 ID, 장치 타입 및 URI를 관리한다(S1330).
TV(11)는 AIT를 수신한다(S1335). AIT는 서버에 접속 가능한 거치 URI를 포함할 수 있다. TV(11)는 수신한 AIT를 파싱하여 서버에 접속할 수 있는 거치 URI를 장치 관리부(15)로 전달한다(S1340). 장치 관리부(15)는 컴패니언 스크린 어플리케이션의 존재를 HbbTV 어플리케이션(13)에게 알린다(S1345). HbbTV 어플리케이션(13)은 모든 컴패니언 장치 정보를 요청한다(S1350). 장치 관리부(15)는 요청에 대한 응답으로 컴패니언 장치 정보를 전달한다(S1355). HbbTV 어플리케이션(13)은 거치 URI를 통해 컴패니언 장치의 장치 타입에 대응되는 어플리케이션 URI를 요청한다(S1360). 서버(31)는 요청에 대한 응답으로 장치 타입별 어플리케이션 URI를 TV로 전송한다(S1365). HbbTV 어플리케이션(13)은 수신한 어플리케이션 URI를 장치 관리부(15)로 전달한다(S1370). 장치 관리부(15)는 전달된 어플리케이션 URI를 장치 테이블에 저장한다(S1375).
TV(11)는 방송중인 프로그램과 관련된 부가 서비스가 존재하면 사용자에게 부가 서비스의 존재를 알리고, 사용자는 부가 서비스 및 부가 서비스를 실행할 컴패니언 장치 타입을 선택할 수 있다.
장치 관리부(15)는 선택된 컴패니언 장치와 대응되는 어플리케이션 URI를 TV의 UPnP(17)로 전달한다(S1380). TV의 UPnP(17)는 Set URI라는 제어 신호를 선택된 컴패니언 장치(19)로 전송한다(S1385). 컴패니언 장치(19)는 전송된 URI를 웹뷰(21)로 전달한다(S1390). 웹뷰(21)는 인터넷 망을 이용하여 URI 페이지를 표시한다(S1395).
다시 말하면, CP인 TV의 UPnP를 통해 컴패니언 장치들에게 멀티캐스트 서치를 보내서 디스커버리 작업을 진행한다. 컴패니언 장치들에 대한 디스커버리가 완료되면, TV는 컴패니언 장치로 장치 타입을 Get하라는 컨트롤을 보낸다. 컴패니언 장치는 컨트롤에 대한 응답으로 장치 정보를 전달한다. 전달된 장치 정보는 장치 관리부의 장치 테이블로 전달되어 장치 ID와 장치 타입을 관리한다. (The UPnP Control Point in the TV begins its discovery work by broadcasting a multicast search for available HbbTV companion devices. When the discovery is complete, the Device Manager in the TV receives a list of available HbbTV companion devices, and sends a "GET" control to each HbbTV companion device to learn its name and device class. This information is stored in the Device Table by the Device Manager.)
AIT는 서버에 접속 가능한 거치 URI를 포함하고, TV는 AIT를 수신한다. 수신한 AIT는 파싱되고 장치 관리부로 전달된다. 장치 관리부는 모든 컴패니언 장치를 위해 URI를 업데이트한다. 거치 URI는 장치 클래스에 따라 식별되지 않기 때문에 장치 클래스별로 식별될 수 있는 URI가 필요하다. 장치 관리부는 거치 URI가 이용 가능한 DOM 이벤트를 통해 HbbTV 어플리케이션에게 알린다. 이때 HbbTV 어플리케이션은 거치 URI를 해석하고, 장치 테이블에 최종 URI를 저장한다. 이후, HbbTV 어플리케이션은 URI가 업데이트되었다는 것을 장치 관리부에게 알리고, 장치 관리부는 두번째 DOM 이벤트를 생성한다. 컴패니언 장치 어플리케이션이 존재하는 경우, AIT를 통해 이용가능함을 TV를 통해 알린다. 사용자는 이를 확인하고, 연결하고자 하는 컴패니언 장치를 선택한다. 선택된 장치는 장치 관리부로 전달되고, 컴패니언 장치로 전달될 준비가 완료된다. (The AIT contains one launching URIs for a companion application, and labels it as a deferred URI. The TV first receives the AIT from the broadcast, then searches the AIT for companion URI descriptors, and (if any are found) then sends these URIs to the Device Manager to update the URIs for all devices of the given device classes. Since the information in the AIT for a deferred URI does not specify to which device classes it is applicable, this information will only be available after the deferred URI has been resolved. Hence, the Device Manager stores the deferred URI in the AppURI column for all available companion devices, and marks them as deferred by setting the IsDeferredURI flag for each of them. Then, the Device Manager notifies the HbbTV application on the TV via a DOM event that deferred URIs are available. The HbbTV application on the TV then resolves the deferred URIs, and stores the final URIs in the device table. After this is finished, the HbbTV application notifies the Device Manager that the URIs have been update, and the Device Manager generates a second DOM event, this time with the final URIs. As in the previous use case, the HbbTV application chooses (possibly with help from the user) a device to launch the companion application. The TV is now ready for sending the launching URI to the selected HbbTV companion device.)
장치 관리부는 사용자로부터 선택된 컴패니언 장치와 대응되는 어플리케이션 URI를 TV의 UPnP로 전달한다. 전달된 URI는 TV(CP)에서 컴패니언 장치로 "Set URI"라는 컨트롤을 통해 사용자가 선택한 컴패니언 장치로 전달된다. 수신된 URI는 컴패니언 장치에서 웹뷰를 통해 사용자에게 표시된다. (When the Device Manager is instructed by the HbbTV application on the TV to send the launching URI to the selected companion device, it will use the UPnP module to invoke a "SET" action on the AppURI state variable on the selected HbbTV companion device. On the HbbTV companion device, the received URI is launched in a WebView, and displayed to the user.)
도 11은 본 발명의 제4 실시 예에 따른 컴패니언 장치(companion device)에서 부가 서비스를 실행하는 방법을 설명하는 타이밍도이다.
도 11을 참조하면, CP인 컴패니언 장치(19)는 TV로 멀티캐스트 방식을 이용하여 검색(discovery) 작업을 수행한다(S1410). 검색 작업이 완료되면, 컴패니언 장치(19)에서 TV로 컴패니언 장치의 장치 정보를 Set하라는 제어 신호를 전송한다(S1415). TV의 UPnP(17)는 컴패니언 장치 정보를 장치 관리부(15)로 전달한다(S1420). 장치 관리부(15)는 장치 테이블을 작성하고, 장치 ID, 장치 타입 및 URI를 관리한다(S1425).
TV(11)는 AIT를 수신한다(S1430). AIT는 서버에 접속 가능한 거치 URI를 포함할 수 있다. TV(11)는 수신한 AIT를 파싱하여 서버에 접속할 수 있는 거치 URI를 장치 관리부(15)로 전달한다(S1435). 장치 관리부(15)는 컴패니언 스크린 어플리케이션의 존재를 HbbTV 어플리케이션(13)에게 알린다(S1440). HbbTV 어플리케이션(13)은 모든 컴패니언 장치 정보를 요청한다(S1445). 장치 관리부(15)는 요청에 대한 응답으로 컴패니언 장치 정보를 전달한다(S1450). HbbTV 어플리케이션(13)은 거치 URI를 통해 컴패니언 장치의 장치 타입에 대응되는 어플리케이션 URI를 요청한다(S1455). 서버(31)는 요청에 대한 응답으로 장치 타입별 어플리케이션 URI를 TV로 전송한다(S1460). HbbTV 어플리케이션(13)은 수신한 어플리케이션 URI를 장치 관리부(15)로 전달한다(S1465). 장치 관리부(15)는 전달된 어플리케이션 URI를 장치 테이블에 저장한다(S1470).
TV(11)는 방송중인 프로그램과 관련된 부가 서비스가 존재하면 사용자에게 부가 서비스의 존재를 알리고, 사용자는 부가 서비스 및 부가 서비스를 실행할 컴패니언 장치 타입을 선택할 수 있다.
장치 관리부(15)는 선택된 컴패니언 장치와 대응되는 어플리케이션 URI를 TV의 UPnP(17)로 전달한다(S1475). 전달된 URI가 있으면 TV의 UPnP(17)는 컴패니언 장치로 전달된 URI를 알려준다(S1480). 컴패니언 장치(19)는 전송된 URI를 웹뷰(21)로 전달한다(S1485). 웹뷰(21)는 인터넷 망을 이용하여 URI 페이지를 표시한다(S1490).
다시 말하면, CP인 컴패니언 장치의 UPnP를 통해 TV에게 멀티캐스트 서치를 보내서 디스커버리 작업을 진행한다. TV에 대한 디스커버리가 완료되면, 컴패니언 장치는 TV로 컴패니언 장치의 장치 타입을 Set하라는 컨트롤을 보낸다. TV는 컴패니언 장치에서 Set한 장치 정보를 장치 관리부로 전달한다. 장치 테이블은 모든 컴패니언 장치의 장치 ID와 장치 타입을 관리한다.
AIT는 서버에 접속 가능한 거치 URI를 포함하고, TV는 AIT를 수신한다. 수신한 AIT는 파싱되고 장치 관리부로 전달된다. 장치 관리부는 모든 컴패니언 장치를 위해 URI를 업데이트한다. 거치 URI는 장치 클래스에 따라 식별되지 않기 때문에 장치 클래스별로 식별될 수 있는 URI가 필요하다. 장치 관리부는 거치 URI가 이용 가능한 DOM 이벤트를 통해 HbbTV 어플리케이션에게 알린다. 이때 HbbTV 어플리케이션은 거치 URI를 해석하고, 장치 테이블에 최종 URI를 저장한다. 이후, HbbTV 어플리케이션은 URI가 업데이트되었다는 것을 장치 관리부에게 알리고, 장치 관리부는 두번째 DOM 이벤트를 생성한다. 컴패니언 장치 어플리케이션이 존재하는 경우, AIT를 통해 이용가능함을 TV를 통해 알린다. 사용자는 이를 확인하고, 연결하고자 하는 컴패니언 장치를 선택한다. 선택된 장치는 장치 관리부로 전달되고, 컴패니언 장치로 전달될 준비가 완료된다.
장치 관리부는 사용자로부터 선택된 컴패니언 장치와 대응되는 어플리케이션 URI를 TV의 UPnP로 전달한다. 전달된 URI가 있을 경우, 사용자가 선택한 컴패니언 장치(CP)는 TV에서 변경된(전달된) URI를 notify 받게 되고, 어플리케이션 URI를 전달받는다. 수신된 URI는 컴패니언 장치에서 웹뷰를 통해 사용자에게 표시된다.
도 12는 본 발명의 제5 실시 예에 따른 컴패니언 장치(companion device)에서 부가 서비스를 실행하는 방법을 설명하는 타이밍도이다.
도 12에는 컴패니언 어플리케이션을 위한 트리거가 AIT가 아닌 방송 서버로부터 전송되는 경우 이벤트의 흐름이 도시되어 있다. 이 방법은 방송 신호의 수신없이 컴패니언 어플리케이션을 시작할 수 있다. TV의 HbbTV 어플리케이션은 능동적으로 방송 서버를 쿼리하는 것이 필요하다. AIT와 같은 자동 트리거링은 지원되지 않는다. (Figure 12 depicts the flow of events when the trigger for launching a companion applications comes from a broadcast server, instead of the broadcast AIT. This allows launching of companion applications without any broadcast reception. To enable this use case, the HbbTV application on the TV needs to actively query the broadcast server. An automatic triggering like for the broadcast AIT is not supported.)
CP인 TV는 UPnP(17)를 통해 컴패니언 장치(19)에게 멀티캐스트 서치를 보내서 검색(discovery) 작업을 진행한다(S1510). 컴패니언 장치(19)에 대한 디스커버리가 완료되면, UPnP(17)는 컴패니언 장치(19)로 장치 타입 정보를 Get하라는 제어 신호를 전송한다(S1515). 컴패니언 장치(19)는 제어 신호에 대한 응답으로 장치 정보를 TV의 UPnP(17)로 전송한다(S1520). 전송된 장치 정보는 장치 관리부(15)로 전달된다(S1525). 장치 관리부(15)는 장치 테이블을 작성하고, 장치 ID, 장치 타입 및 URI를 관리한다(S1530).
TV의 HbbTV 어플리케이션(13)은 방송 서버(31)에게 컴패니언 장치 어플리케이션의 이용 가능 여부를 요청한다(S1535). 이용 가능한 컴패니언 장치 어플리케이션이 존재하면, 방송 서버(31)는 HbbTV 어플리케이션(13)에게 응답을 준다(S1540). HbbTV 어플리케이션(13)은 모든 컴패니언 장치 정보를 요청한다(S1545). 장치 관리부(15)는 요청에 대한 응답으로 컴패니언 장치 정보를 전달한다(S1550).
TV(11)는 방송중인 프로그램과 관련된 부가 서비스가 존재하면 사용자에게 부가 서비스의 존재를 알리고, 사용자는 인스턴스(instance) 또는 장치 타입을 선택할 수 있다. HbbTV 어플리케이션(13)은 컴패니언 장치 타입에 대응되는 URI를 방송 서버(31)에게 요청한다(S1555). 방송 서버(31)는 HbbTV 어플리케이션에게 요청받은 URI를 전송한다(S1560).
HbbTV 어플리케이션(13)은 수신한 어플리케이션 URI를 장치 관리부(15)로 전달한다(S1565). 장치 관리부(15)는 전달된 어플리케이션 URI를 장치 테이블에 저장한다(S1570). 장치 관리부(15)는 선택된 컴패니언 장치와 대응되는 어플리케이션 URI를 TV의 UPnP(17)로 전달한다(S1575). TV의 UPnP(17)는 Set URI라는 제어 신호를 선택된 컴패니언 장치(19)로 전송한다(S1580). 컴패니언 장치(19)는 전송된 URI를 웹뷰(21)로 전달한다(S1585). 웹뷰(21)는 인터넷 망을 이용하여 URI 페이지를 표시한다(S1590).
다시 말하면, CP인 TV의 UPnP를 통해 컴패니언 장치들에게 멀티캐스트 서치를 보내서 디스커버리 작업을 진행한다. 컴패니언 장치들에 대한 디스커버리가 완료되면, TV는 컴패니언 장치로 장치 타입을 Get하라는 컨트롤을 보낸다. 컴패니언 장치는 컨트롤에 대한 응답으로 장치 정보를 전달한다. 전달된 장치 정보는 장치 관리부의 장치 테이블로 전달되어 장치 ID와 장치 타입을 관리한다. (The UPnP Control Point in the TV begins its discovery work by broadcasting a multicast search for available HbbTV companion devices. When the discovery is complete, the Device Manager in the TV receives a list of available HbbTV companion devices, and sends a “GET” control to each HbbTV companion device to learn its name and device class. This information is stored in the Device Table by the Device Manager.)
AIT에 포함된 컴패니언 어플리케이션 URI를 감지하기 위해 장치 관리부를 기다리는 대신, HbbTV 어플리케이션은 컴패니언 장치 어플리케이션이 현재 유용한 컴패니언 장치를 위해 이용 가능한지 여부에 대해 방송 서버를 쿼리한다. 만일 컴패니언 장치가 있으면, TV는 시작 URI를 제공받는다. 그때, 사용자는 어플리케이션 URI를 보내기 위한 연결된 장치를 선택할 수 있다. 장치 관리부의 장치 테이블에 등록된 컴패니언 장치는 방송 서버로부터 수신된 장치 타입에 대응되는 어플리케이션 URI를 업데이트할 수 있다. TV는 선택된 컴패니언 장치로 시작 URI를 전송할 준비를 완료한다. (Instead of waiting for the Device manager to detect companion application URIs in the broadcast AIT, the HbbTV application queries the broadcast server whether companion device applications are available for any of the currently available companion devices. If there is a companion device application, the TV is provided the launching URI. Then, the user selects to which connected device to send the URI of the application. The companion devices that are registered in Device Table of Device Manager update the URI of the application corresponding to the device type from the broadcast server. The TV is now ready for sending the launching URI to the selected HbbTV companion device.)
장치 관리부는 사용자로부터 선택된 컴패니언 장치와 대응되는 어플리케이션 URI를 TV의 UPnP로 전달한다. 전달된 URI는 TV(CP)에서 컴패니언 장치로 "Set URI"라는 컨트롤을 통해 사용자가 선택한 컴패니언 장치로 전달된다. 수신된 URI는 컴패니언 장치에서 웹뷰를 통해 사용자에게 표시된다. (When the Device Manager is instructed by the HbbTV application on the TV to send the launching URI to the selected companion device, it will use the UPnP module to invoke a "SET" action on the AppURI state variable on the selected HbbTV companion device. On the HbbTV companion device, the received URI is launched in a WebView, and displayed to the user.)
TV는 튜너를 통해 방송국으로부터 수신되는 방송 신호를 수신하는 경우도 있으나, IP로만 연결되는 경우도 있다. IP로만 연결되는 경우, TV는 HbbTV 어플리케이션과 방송 서버간의 통신을 통해 튜너없이도 컴패니언 장치 어플리케이션의 존재를 알릴 수 있다.
도 13은 본 발명의 제6 실시 예에 따른 컴패니언 장치(companion device)에서 부가 서비스를 실행하는 방법을 설명하는 타이밍도이다.
도 13을 참조하면, CP인 컴패니언 장치(19)는 TV로 멀티캐스트 방식을 이용하여 검색(discovery) 작업을 수행한다(S1610). 검색 작업이 완료되면, 컴패니언 장치(19)에서 TV로 컴패니언 장치의 장치 정보를 Set하라는 제어 신호를 전송한다(S1615). TV의 UPnP(17)는 컴패니언 장치 정보를 장치 관리부(15)로 전달한다(S1620). 장치 관리부(15)는 장치 테이블을 작성하고, 장치 ID, 장치 타입 및 URI를 관리한다(S1625).
TV의 HbbTV 어플리케이션(13)은 방송 서버(31)에게 컴패니언 장치 어플리케이션의 이용 가능 여부를 요청한다(S1630). 이용 가능한 컴패니언 장치 어플리케이션이 존재하면, 방송 서버(31)는 HbbTV 어플리케이션(13)에게 응답을 준다(S1635). HbbTV 어플리케이션(13)은 모든 컴패니언 장치 정보를 요청한다(S1640). 장치 관리부(15)는 요청에 대한 응답으로 컴패니언 장치 정보를 전달한다(S1645).
TV(11)는 방송중인 프로그램과 관련된 부가 서비스가 존재하면 사용자에게 부가 서비스의 존재를 알리고, 사용자는 인스턴스(instance) 또는 장치 타입을 선택할 수 있다. HbbTV 어플리케이션(13)은 컴패니언 장치 타입에 대응되는 URI를 방송 서버(31)에게 요청한다(S1650). 방송 서버(31)는 HbbTV 어플리케이션에게 요청받은 URI를 전송한다(S1655).
HbbTV 어플리케이션(13)은 수신한 어플리케이션 URI를 장치 관리부(15)로 전달한다(S1660). 장치 관리부(15)는 전달된 어플리케이션 URI를 장치 테이블에 저장한다(S1665). 장치 관리부(15)는 선택된 컴패니언 장치와 대응되는 어플리케이션 URI를 TV의 UPnP(17)로 전달한다(S1670). 전달된 URI가 있으면 TV의 UPnP(17)는 컴패니언 장치로 전달된 URI를 알려준다(S1675). 컴패니언 장치(19)는 전송된 URI를 웹뷰(21)로 전달한다(S1680). 웹뷰(21)는 인터넷 망을 이용하여 URI 페이지를 표시한다(S1685).
다시 말하면, CP인 컴패니언 장치의 UPnP를 통해 TV에게 멀티캐스트 서치를 보내서 디스커버리 작업을 진행한다. TV에 대한 디스커버리가 완료되면, 컴패니언 장치는 TV로 컴패니언 장치의 장치 타입을 Set하라는 컨트롤을 보낸다. TV는 컴패니언 장치에서 Set한 장치 정보를 장치 관리부로 전달한다. 장치 테이블은 모든 컴패니언 장치의 장치 ID와 장치 타입을 관리한다.
AIT에 포함된 컴패니언 어플리케이션 URI를 감지하기 위해 장치 관리부를 기다리는 대신, HbbTV 어플리케이션은 컴패니언 장치 어플리케이션이 현재 유용한 컴패니언 장치를 위해 이용 가능한지 여부에 대해 방송 서버를 쿼리한다. 만일 컴패니언 장치가 있으면, TV는 시작 URI를 제공받는다. 그때, 사용자는 어플리케이션 URI를 보내기 위한 연결된 장치를 선택할 수 있다. 장치 관리부의 장치 테이블에 등록된 컴패니언 장치는 방송 서버로부터 수신된 장치 타입에 대응되는 어플리케이션 URI를 업데이트할 수 있다. TV는 선택된 컴패니언 장치로 시작 URI를 전송할 준비를 완료한다.
장치 관리부는 사용자로부터 선택된 컴패니언 장치와 대응되는 어플리케이션 URI를 TV의 UPnP로 전달한다. 전달된 URI가 있을 경우, 사용자가 선택한 컴패니언 장치(CP)는 TV에서 변경된(전달된) URI를 notify 받게 되고, 어플리케이션 URI를 전달받는다. 수신된 URI는 컴패니언 장치에서 웹뷰를 통해 사용자에게 표시된다.
도 14는 본 발명의 일 실시 예에 따른 URI 디스크립터를 설명하는 도면이다.
상술한 도 8 내지 도 11에서는 URI를 AIT를 통해 수신하는 실시 예를 설명하였다. 도 14는 AIT가 한 개의 URI를 포함하고 있는 경우, URI를 전달하는 디스크립터를 설명한다. 예를 들어, 한 개의 URI는 일반 URI(generic URI), 거치 URI(deferred URI) 등이 될 수 있다. single URI descriptor에 포함되는 구체적인 정보는 아래와 같다.
descriptor_tag은 해당 디스크립터를 식별하는 8비트 식별자로서, single URI descriptor에서는 0x6F 값을 가진다. (The 8 bit integer with value Ox6F identifies this descriptor.)
descriptor_length는 8비트로서 다음에 위치하는 디스크립터 필드의 바이트 수를 나타낸다. (The 8 bit field indicates the number of bytes following the descriptor length field.)
URI_length는 16비트로서 다음에 위치하는 URI 필드의 바이트 수를 나타낸다. (he 16 bit field indicates the number of bytes following the URI length field.)
URI_char는 URI의 특성을 나타낸다. (The 8 bit integer identifies the characters of URI.)
도 15는 본 발명의 다른 실시 예에 따른 URI 디스크립터를 설명하는 도면이다.
도 15는 AIT가 복수 개의 URI를 포함하고 있는 경우, URI를 전달하는 디스크립터를 설명한다. 예를 들어, 복수 개의 URI는 특정 URI(specific URI) 등이 될 수 있다. multi URI descriptor에 포함되는 구체적인 정보는 아래와 같다.
descriptor_tag은 해당 디스크립터를 식별하는 8비트 식별자로서, single URI descriptor에서는 0x6F 값을 가진다. (The 8 bit integer with value Ox6F identifies this descriptor.)
descriptor_length는 8비트로서 다음에 위치하는 디스크립터 필드의 바이트 수를 나타낸다. (The 8 bit field indicates the number of bytes following the descriptor length field.)
device_number는 16비트로서 해당 디스크립터에서 가능한 컴패니언 장치의 수를 나타낸다. (The 16 bit field indicates the number of possible Companion Screen Device in the descriptor.)
device_type은 컴패니언 장치의 타입을 나타낸다. (The 8 bit field defines the type of the Companion Screen Device.) device_type에 대해서는 도 16에서 구체적으로 설명한다.
URI_length는 16비트로서 다음에 위치하는 URI 필드의 바이트 수를 나타낸다. (he 16 bit field indicates the number of bytes following the URI length field.)
URI_char는 URI의 특성을 나타낸다. (The 8 bit integer identifies the characters of URI.)
도 16은 장치 타입 정보를 시그널링하는 실시 예를 설명하는 도면이다.
device_type의 구체적인 정보는 아래와 같다.
device_type이 0인 경우, 컴패니언 장치는 PC 클래스를 나타낸다.
device_type이 1인경우, 컴패니언 장치는 태블릿 클래스를 나타낸다.
device_type이 2인 경우, 컴패니언 장치는 스마트폰 클래스를 나타낸다.
도 17은 컴패니언 장치 정보를 시그널링하는 실시 예를 설명하는 도면이다.
AIT는 컴패니언 장치의 이용 가능성을 시그널링하기 위해 URI linkage descriptor를 포함할 수 있다.
URI linkage descriptor의 URI linkage type 필드는 컴패니언 어플리케이션 URI가 전송되는 것을 나타내기 위해 0x80으로 세팅될 수 있다. 그리고, URI가 나타내는 수신 장치의 타입을 알리기 위해 private data 필드는 도 17과 같은 companion link info 구조를 인코딩할 수 있다.
link_target_type은 URI의 목적을 나타내는 8비트 필드이다. (This 8-bit field indicates the purpose of the URI.) 구체적인 정보는 도 18에서 설명한다.
display_intent는 URI를 통해 시작되는 어플리케이션을 디스플레이하는 방법을 나타낸다. (This 8-bit field indicates the intended way of displaying the application launched via the URI.) 구체적인 정보는 도 19에서 설명한다.
reserved는 나중에 사용할 수 있도록 남겨둔 6비트 필드로서, 0으로 세팅될 수 있다. (This 6-bit field is reserved for future use and shall be set to zero.)
AIT에 포함된 URI linkage descriptor의 전송을 위해 다음의 규칙이 적용된다. URI linkage type 필드 값이 0x80인 URI linkage descriptor의 전송은 선택적이다. 이러한 디스크립터는 디스크립터 루프의 각 인스턴스에서 한 번 이상 허용된다. 디스크립터 루프의 주어진 인스턴스 내의 동일한 link_target_type을 가지는 디스크립터의 멀티플 인스턴스는 없다. (For the transmission of the uri_linkage_descriptor in the broadcast AIT, the following rules shall apply: Transmission of a uri_linkage_descriptor with a uri_linkage_type value of 0x80 is optional. Such a descriptor is allowed more than once in each instance of a descriptor loop. There shall not be multiple instances of such a descriptor with the same link_target_type in a given instance of a descriptor loop.)
도 18은 URI 타입 정보를 시그널링하는 실시 예를 설명하는 도면이다.
link_target_type의 구체적인 정보는 다음과 같다.
link_target_type 값이 0x01이면 AIT에 포함된 URI는 거치 URI를 나타낸다.
link_target_type 값이 0x02이면 AIT에 포함된 URI는 모든 장치 클래스를 대상으로 하는 일반 URI를 나타낸다.
link_target_type 값이 0x03이면, AIT에 포함된 URI는 태블릿 장치 클래스를 대상으로 하는 특정 URI를 나타낸다.
link_target_type 값이 0x04이면, AIT에 포함된 URI는 TV 장치 클래스를 대상으로 하는 특정 URI를 나타낸다.
link_target_type 값이 0x05이면, AIT에 포함된 URI는 PC 장치 클래스를 대상으로 하는 특정 URI를 나타낸다.
도 19는 컴패니언 어플리케이션(companion application)을 실행하는 방식에 대한 정보를 시그널링하는 실시 예를 설명하는 도면이다.
display_intent의 구체적인 정보는 다음과 같다.
display_intent 값이 0이면, 컴패니언 어플리케이션은 시스템 웹 브라우저에서 디스플레이된다.
display_intent 값이 1이면, 컴패니언 어플리케이션은 임베디드 웹뷰에서 디스플레이된다.
도 20은 본 발명의 일 실시 예에 따른 거치 URI(deferred URI)의 GET 요청 헤더 정보를 설명하는 도면이다.
companion_link_info 구조에서 거치 URI가 전송되는 경우, 신호 송신 장치는 컴패니언 어플리케이션과 직접 연결되도록 제공되지 않는다. 대신, URI_linkage_descriptor를 통해 전송되는 URI가 컴패니언 장치 어플리케이션에 관한 정보를 다운로드받을 수 있는 원격 서버의 리소스를 식별할 수 있다. 이 경우, TV는 위치별로 URI를 구별하고, 구별된 위치로부터 리소스를 얻어야 한다. 거치 URI의 해상도는 장치 관리부 API를 이용하여 이행된다. http 또는 https URI 양식에 따르는 URI가 URI_linkage_descriptor 내의 거치 URI로서 사용된다. (When a deferred URI is conveyed in the companion_link_info structure (indicated by a link_target_type of 0x00), the terminal is not provided with a direct link to the companion application. Instead, the URI conveyed in the uri_linkage_descriptor identifies a resource on a remote server from which information about companion device applications can be downloaded. In this case, the terminal shall resolve the URI into a location (if needed), and obtain the resource from that location. Resolution of deferred URIs shall be implemented using the Device Manager APIs. Only URIs conforming to the "http" or "https" URI schemes shall be used as a deferred URI in the uri_linkage_descriptor.)
TV는 헤더 필드로 전송되는 HTTP GET 요청을 발부한다. 클라이언트는 추가적인 헤더 필드를 인코딩할 수 있다. 그리고, 서버는 이러한 추가적인 헤더 필드를 무시할 수 있다. 서버는 요청에 대해 응답할 수 있다. 재전송 상태 코드들 중 하나가 서버에 의해 리턴될 때, TV는 이러한 재전송을 따르기 위한 일반적인 정책을 다라야 한다. (The client shall issue an HTTP GET request carrying header fields. Clients may encode additional header fields, and servers may ignore those additional header fields. The server will respond. When one of the redirect status codes is returned by the server, clients should follow the usual policies for following such redirects.)
거치 URI를 구별하기 위한 GET 요청 헤더 정보는 도 20에 도시된 바와 같다.
도 21은 본 발명의 일 실시 예에 따른 GET 응답 정보를 설명하는 도면이다.
서버가 도 20에 정의된 바와 같은 거치 URI를 위한 요청을 수신하면, 서버는 도 20에서 설명하는 바와 같은 응답 중 하나를 보낸다. (When a server receives a request for a deferred URI as defined in Figure 20, it shall a react with one of the responses.)
서버에서 보내는 가능한 GET 응답 상태 코드는 도 21에 도시된 바와 같다.
도 22는 본 발명의 일 실시 예에 따른 컴패니언 어플리케이션 URI를 인코딩하기 위한 JSON schema를 설명하는 도면이다.
서버가 200 OK 상태 코드로 응답하는 경우, 서버는 도 22에 도시된 JSON 양식에 따라 JSON 개체(entity)를 전달한다. (When the server responds with a "200 OK" status code, it shall deliver a JSON entity according to the JSON schema defined in Figure 22.)
JSON 양식은 서버 응답은 하나 이상의 객체를 포함하는 어레이로 구성되는 것으로 정의될 수 있다. 이러한 객체는 타겟(target)과 URI의 두 멤버 요소를 포함할 수 있다. URI 멤버는 URI 타입이고, 어플리케이션 리소스를 얻을 수 있는 위치를 나타낸다. 타겟 멤버는 열거 타입이고, URI에 의해 타겟되는 장치 클래스를 나타낸다. (This JSON schema defines that the server response consists of an array, which contains one or more objects. These objects contain two member elements: target, and uri. The uri member is of the URI type, and indicates the location from which the application resource can be obtained. The target member is of an enumeration type, and indicates the device class being targeted by the uri member.)
도 23은 컴패니언 장치에 따른 URI를 인코딩하는 실시 예를 설명하는 도면이다.
일 실시 예로서, 하나의 타겟은 스마트폰, 다른 하나의 타겟은 테이블형 장치의 두 개의 URI를 인코딩하기 위해 도 23과 같은 JSON 객체가 리턴될 수 있다. (To encode two URIs, where one targets Smartphones, and the other targets tabled devices, a JSON object like the Figure 23 might be returned.)
한편, 장치 관리부(Device Manager)는 장치 테이블(Device Table)을 관리할 수 있다. 장치 관리부를 이용하여 현재 연결된 컴패니언 장치의 정보는 수집될 수 있다. 아래에 정의된 적어도 하나의 정보는 장치 테이블에 저장된다. (Device Manager manages a Device Table. Using the Device Manager, the information of currently connected companion devices is collected. At least the information defined as below shall be stored in the device table.)
장치 관리부가 장치 테이블을 이용하여 컴패니언 장치 정보를 관리하는 경우, 추후에 컴패니언 장치의 상태(status) 등을 추가 및 확장할 수 있다.
Figure pct00015
장치 테이블의 관리를 위해 다음의 규칙이 적용된다.
1) 새로운 컴패니언 장치가 이용 가능하게 될 때, 테이블상의 엔트리로 표현되고, AppURI는 최초에 초기화되지 않는 값으로 세팅된다. (예, null value, empty string)
2) 컴패니언 장치의 이용 가능함이 중지되면, 장치를 기술한 엔트리는 무효가된다.
3) 컴패니언 어플리케이션이 방송 AIT로 시그널링될 때, 장치 관리부는 매칭 클래스의 장치를 위한 테이블을 검색한다. 각각의 매칭 엔트리에 대해 대응되는 AppURI를 저장하고, 거치 URI인지 확인한다.
4) 방송 AIT로 시그널링되는 컴패니언 어플리케이션이 중지되면, 장치 관리부는 컴패니언 어플리케이션을 참조하는 엔트리를 위해 장치 테이블을 검색하고, 초기화되지 않는 값으로 AppURI를 세팅한다.
(For the management of the device table, the following rules shall apply.
1) When a new companion device becomes available, it shall be represented by an entry in the table, and the AppURI shall initially be set to the un-initialzed value (for example a null value or the empty string).
2) When a companion device seizes being available, the entry describing that device shall be invalidated.
3) When a companion application begins being signalled in the broadcast AIT, the Device Manager shall search the table for devices of matching classes. For each matching entry, it shall store the corresponding AppURI and whether it is a deferred URI in that entry.
4) When a companion application seizes being signalled in the broadcast AIT, the Device Manager shall search the device table for entries that reference this companion application, and shall set the AppURI to the un-initialzed value (for example a null value or the empty string) in these entries.)
TV가 방송 프로그램과 연관된 HbbTV 컴패니언 장치 어플리케이션을 구동하기 위해서는 플러그인 인터페이스가 필요하다. 일 실시 예로서, TV가 방송 서버에서 URI를 수신하는 경우에 대해 설명한다.
플러그인 API는 다음과 같은 MIME 타입으로 인식되는 HbbTV 객체(object)에서 제공될 수 있다.
MIME Type: appication/hbbtv2.0CompanionScreen
TV에서 실행되는 HbbTV 어플리케이션은 실시간 방송 프로그램과 연관된 컴패니언 장치 어플리케이션이 존재하면 컴패니언 장치 어플리케이션을 HbbTV 어플리케이션에게 알려줄 수 있는(notify) API를 필요로 한다. 그리고, HbbTV 어플리케이션은 TV와 페어링(paring)된 컴패니언 장치 목록을 얻어올 수 있는 API도 필요로 한다. 또한, HbbTV 어플리케이션에서 선정된 컴패니언 장치로 URI를 설정하는 API도 필요하다.
HbbTV 컴패니언 스크린 플러그인 객체는 다음과 같이 정의될 수 있다.
Figure pct00016
TV에서 실행되고 있는 HbbTV 어플리케이션은 방송 프로그램에 따라서 컴패니언 스크린 어플리케이션(또는 컴패니언 장치 어플리케이션)을 포함할 수도 있고 포함하지 않을 수도 있다. 컴패니언 스크린 어플리케이션이 있는 경우, HbbTV 어플리케이션이 notify받을 수 있는 플러그인 객체의 속성(property)의 실시 예는 다음과 같다.
Function onCompanionScreenAppPresent(CompanionParamList params)
HbbTV 컴패니언 스크린 플러그인 객체가 초기화될 때, 위의 속성을 통해 함수가 설정될 수 있고, 컴패니언 스크린 어플리케이션이 있을 경우, 등록된 함수가 브라우저의 플러그인 I/F에 의해 호출되며, 컴패니언 스크린의 타입에 맞는 AppURI 리스트가 CompanionParamList 파라미터로 전달된다. CompanionParamList는 AIT를 통해 전달받을 수 있다.
Figure pct00017
표 17은 typedef collection<CompanionParam>CompanionParamList이다.
Figure pct00018
표 18은 CompainonParam class이다.
본 실시 예에서는 장치 이름, 장치 타입, 장치 해상도를 얻어올 수 있다. TV에서 실행되고 있는 어플리케이션은 아래의 함수를 호출하여 paired Device list를 얻어올 수 있고, 이를 사용자에게 출력하여 사용자가 특정 장치를 선택하도록 할 수 있다.
DeviceList getPairedDeviceList()
이 함수는 TV와 페어링된 장치의 리스트를 얻어온다.
Figure pct00019
표 19는 typedef collection<Device>DeviceList이다.
Figure pct00020
표 20은 페어링된 컴패니언 장치의 개별 인스턴스이다.
다음은 TV에서 실행되고 있는 어플리케이션이 특정 장치에게 App URI을 전달하기 위한 API의 실시 예를 나타낸다. 사용자는 하나 또는 복수 개의 장치를 동시에 지정할 수 있다.
Boolean setCompanionUrl(DeviceParamList deviceList)
이 함수는 deviceID로 지정된 컴패니언 장치에 어플리케이션 또는 URI를 전달한다.
Figure pct00021
표 21은 typedef collection<DeviceParam> DeviceParamList 이다.
Figure pct00022
표 22는 DeviceParam class이다.
다른 실시 예로서, TV가 인터넷상의 서버에서 URI를 수신하는 경우에 대해 설명한다. 즉, 본 실시 예는 컴패니언 장치에서 TV 어플리케이션을 구동하기 위해서 TV 브라우저 환경에서 제공되는 플러그인 인터페이스에 관한 것이다.
플러그인 API는 다음과 같은 MIME 타입으로 인식되는 HbbTV 객체(object)에서 제공될 수 있다.
MIME Type: appication/hbbtv2.0CompanionScreen
현재 연결된 컴패니언 장치 정보를 통해, HbbTV 어플리케이션은 각 컴패니언 장치에 해당하는 URI를 검색할 수 있는 API를 필요로 한다. 그리고, TV에서 실행되는 HbbTV 어플리케이션은 실시간 방송 프로그램과 연관된 컴패니언 장치 어플리케이션이 존재하면 컴패니언 장치 어플리케이션을 HbbTV 어플리케이션에게 알려줄 수 있는(notify) API를 필요로 한다. 그리고, HbbTV 어플리케이션은 TV와 페어링(paring)된 컴패니언 장치 목록을 얻어올 수 있는 API도 필요로 한다. 또한, HbbTV 어플리케이션에서 선정된 컴패니언 장치로 URI를 설정하는 API도 필요하다.
HbbTV 컴패니언 스크린 플러그인 객체는 다음과 같이 정의될 수 있다.
Figure pct00023
TV에서 실행되고 있는 HbbTV 어플리케이션은 방송 프로그램에 따라서 컴패니언 스크린 어플리케이션(또는 컴패니언 장치 어플리케이션)을 포함할 수도 있고 포함하지 않을 수도 있다. 컴패니언 스크린 어플리케이션이 있는 경우, HbbTV 어플리케이션이 notify받을 수 있는 플러그인 객체의 속성(property)의 실시 예는 다음과 같다.
Function onCompanionScreenAppPresent()
HbbTV 컴패니언 스크린 플러그인 객체가 초기화될 때, 위의 속성을 통해 함수가 설정될 수 있고, 컴패니언 스크린 어플리케이션이 있을 경우, 등록된 함수가 브라우저의 플러그인 I/F에 의해 호출된다. 본 실시 예에서는 장치 이름, 장치 타입, 장치 해상도를 얻어올 수 있다.TV에서 실행되고 있는 어플리케이션은 아래의 함수를 호출하여 paired Device list를 얻어올 수 있고, 이를 사용자에게 출력하여 사용자가 특정 장치를 선택하도록 할 수 있다.
DeviceList getPairedDeviceList()
이 함수는 TV와 페어링된 장치의 리스트를 얻어온다. HbbTV 어플리케이션은 페이링된 장치 타입에 맞는 컴패니언 스크린 어플리케이션 URI를 인터넷상의 서버로부터 얻어올 수 있다.
Figure pct00024
표 24는 typedef collection<Device> DeviceList이다.
Figure pct00025
표 25는 페어링된 컴패니언 장치의 개별 인스턴스이다.
다음은 TV에서 실행되고 있는 어플리케이션이 특정 장치에게 App URI을 전달하기 위한 API의 실시 예를 나타낸다. 사용자는 하나 또는 복수 개의 장치를 동시에 지정할 수 있다.
Boolean setCompanionUrl(DeviceParamList deviceList)
이 함수는 deviceID로 지정된 컴패니언 장치에 어플리케이션 또는 URI를 전달한다.
Figure pct00026
표 26은 typedef collection<DeviceParam> DeviceParamList이다.
AIT를 통해 전송되는 컴패니언 어플리케이션 URI의 최신 정보를 유지하기 위해서 장치 관리부는 TV 플랫폼의 네이티브 방송 수신기 소프트웨어 모듈을 등록한다. (To be kept up to date with any companion application URIs being conveyed in the broadcast AIT, the Device Manager shall register with the native broadcast receiver software module of the TV platform.)
장치 관리부는 디스크립터의 새로운 컴패니언 어플리케이션 URI를 감지할 때 다음을 따른다.
1) 장치 관리부는 장치 테이블으 모든 유효한 엔트리 및 디스크립터에 의해 지적된 동일 장치 클래스를 가지는 엔트리를 검사하고, 디스크립터에서 제공되는 정보에 기초하여 AppURI 및 IsDeferredURI 칼럼을 업데이트한다.
2) 장치 테이블과 인터랙팅을 위한 API call을 받아들일 준비가 된다.
3) 장치 관리부는 HbbTV 어플리케이션에게 DOM 이벤트를 전달한다.
(Once the Device Manager detects a new companion application URI in a descriptor, it shall do the following.
1) It shall examine all valid entries in the device table, and for entries with the same device class as indicated by the descriptor, it shall update the AppURI and IsDeferredURI columns based on the information provided in the descriptor. If the device class indicated in the descriptor is "all devices", then all valid entries in the device table shall be updated.
2) It shall become ready for accepting API calls for interacting with the device table.
3) It shall deliver a DOM event to the HbbTV application.)
장치 관리부는 컴패니언 어플리케이션을 이용할 수 있는 장치에 대한 HbbTV 어플리케이션을 알리기 위해 아래와 같은 DOM 3 이벤트를 생성한다. HbbTV 어플리케이션이 이러한 정보를 이용하는 방법은 아래에서 구체적으로 설명한다.
Figure pct00027
표 27은 WebIDL defintion of the HbbtvCompanionAppAvailable event이다.
이러한 이벤트의 DOM 3 이벤트 속성은 다음과 같이 세팅된다.
Figure pct00028
표 28은 HbbtvCompanionAppAvailable event를 위한 DOM 3 event property settings이다.
HbbtvCompanionAppAvailable 이벤트를 생성하기 위해 다음의 규칙이 적용된다.
1) 컴패니언 어플리케이션이 AIT를 통해 시그널링되기 시작할 때, 장치 관리부는 장치 클래스와 매칭되는 장치를 위한 장치 테이블을 참고한다.
2) 매칭 클래스의 하나 이상의 장치가 발견되면, 장치 관리부는 장치 테이블에 각각의 URI를 저장하고 매칭 장치의 이름과 클래스를 전송하는 HbbtvCompanionAppAvailable 이벤트를 생성한다.
3) AIT를 통한 컴패니언 어플리케이션의 시그널링이 중지되면, 장치 관리부는 numDevices를 컴패니언 어플리케이션이 더 이상 동작하지 않는다는 것을 나타내는 0으로 세팅하는 HbbtvCompanionAppAvailable 이벤트를 생성한다.
4) 컴패니언 어플리케이션이 AIT를 통해 시그널링되는 동안, 적당한 컴패니언 장치는 이용 가능하게 되거나 중지되며, 장치 관리부는 적당한 컴패니언 장치의 업데이트된 리스트를 전송하는 HbbtvCompanionAppAvailable 이벤트를 생성한다.
(For gerenating HbbtvCompanionAppAvailable events, the following rules shall apply.
1) When a companion application begins being signalled in the broadcast AIT, the Device Manager shall consult the devie table for devices with matching device classes.
2) If one or more devices of matching classes are found, the Device manager shall store the respective URIs in the device table, and generate a HbbtvCompanionAppAvailable event conveying the names and classes of the matching devices.
3) When a companion application seizes being signalled in the broadcast AIT, the Device Manager shall generate a HbbtvCompanionAppAvailable event with numDevices set to zero to indicate that a companion application can no longer be launched.
4) If, during the period a companion application is being signalled in the broadcast AIT, suitable companion devices become available, or seize being available, the Device Manager shall generate a HbbtvCompanionAppAvailable event conveying an updated list of suitable companion devices.)
컴패니언 장치 어플리케이션을 이용하기 위한 HbbTV 어플리케이션은 HbbtvCompanionAppAvailable 이벤트를 위한 이벤트 핸들러를 등록한다. 이벤트가 생성되면, HbbTV 어플리케이션은 컴패니언 어플리케이션을 시작할 수 있는 장치 갯수, 장치 클래스, 이름에 관한 정보를 수신한다. 이 정보는 컴패니언 어플리케이션을 시작하길 원하는 장치를 선택하도록 사용자에게 표시하는데 사용될 수 있다. HbbTV 어플리케이션은 컴패니언 어플리케이션의 시작 여부를 결정한 후에 특정 장치에서 어플리케이션을 시작하도록 장치 관리부에 지시하는 API를 사용한다. (HbbTV applications that wish to make use of companion device applications should register an event handler for the HbbtvCompanionAppAvailable event. When the event is generated, the HbbTV application will receive information about the number of devices which could launch a companion application, their device classes, and their names. This information may for example be used to present the user with a choice as to whether he would like to launch the companion application, and if so on which device (if more than one are available). After the HbbTV application has decided whether to launch the companion application, it uses the API to instruct the Device Manager to launch the application on the specified device.)
Figure pct00029
표 29은 Device manager API이다.
장치 관리부 API를 사용하는 실시 예는 아래와 같다.
Figure pct00030
launchDefaultUriOnDeviceNamed Method
Figure pct00031
이 방법이 적용되면, 장치 관리부는 장치 테이블의 DevName 칼럼에 있는 장치 이름을 검색한다. 엔트리가 발견되면, AppURI 칼럼이 세팅되어 있는지, IsDeferredURI 플래그가 비어있는지 체크한다. 모든 조건이 만족되면, 장치 관리부는 명명된 컴패니언 장치의 AppURI 상태 변수를 세팅하기 위해 UPnP 메시지를 사용한다. (When this method is invoked, the Device Manager searches for the name of the device in the DevName column of the device table. If an entry is found, it checks whether the AppURI column has been set (i.e. is not set to the un-initialized value), and whether the IsDeferredURI flag is cleared. If all conditions are met the Device Manager will use UPnP messages to set the AppURI state variable on the named companion device.)
getDeferredUriForDeviceNamed Method
Figure pct00032
이 방법이 적용되면, 장치 관리부는 장치 테이블의 DevName 칼럼에 있는 장치 이름을 검색한다. 엔트리가 발견되면, IsDeferredURI 플래그가 세팅되어 있는지 체크한다. 모든 조건이 만족되면, 장치 관리부는 AppURI 칼럼의 컨텐트를 리턴한다. 그렇지않으면, 초기화되지 않은 값을 리턴한다. (When this method is invoked, the Device Manager searches for the name of the device in the DevName column of the device table. If an entry is found, it checks whether the IsDeferredURI flag is set. If all conditions are met, it returns the content of the AppURI column. Otherwise it returns the un-initialized value.)
setDefaultUriForDeviceNamed Method
Figure pct00033
이 방법이 적용되면, 장치 관리부는 장치 테이블의 DevName 칼럼에 있는 장치 이름을 검색한다. 엔트리가 발견되면, 장치 관리부는 AppURI 칼럼에 주어진 URI를 저장하고, 이전 컨텐트를 리턴한다. 제공된 어떤 URI는 거치 URI가 아니다. 따라서, 이 방법은 IsDeferredURI 플래그를 비운다. (When this method is invoked, the Device Manager searches for the name of the device in the DevName column of the device table. If an entry is found, it stores the given URI in the AppURI column, and returns the previous content. Any URI provided must not be a deferred URI, and therefore this method will also clear the IsDeferredURI flag.)
setDisplayIntentForDeviceNamed Method
Figure pct00034
이 방법이 적용되면, 장치 관리부는 장치 테이블의 DevName 칼럼에 있는 장치 이름을 검색한다. 엔트리가 발견되면, 장치 관리부는 DisplayIntent 칼럼의 주어진 intent를 저장하고, 이전 컨텐트를 리턴한다. 제공되는 intent는 WebView 또는 SystemBrower 중 하나이다. 만일, Webview가 특정되면, 컴패니언 장치는 컴패니언 어플리케이션에 임베디드된 Webview에서 URI를 시작할 수 있다. 다른 경우에는, 컴패니언 장치는 시스템의 기본 Web browser에서 URI를 시작한다. (When this method is invoked, the Device Manager searches for the name of the device in the DevName column of the device table. If an entry is found, it stores the given intent in the DsiplayIntent column, and returns the previous content. Any intent provided must either be "WebView" or "SystemBrowser". If "WebView" is specified, the companion device may launch the URI in a WebView that is embedded into the companion app. In all other cases, the companion device shall launch the URI in the default Web browser of the system.)
deviceTableUpdateCompleted Method
Figure pct00035
이 방법은 HbbTV 어플리케이션이 장치 테이블의 업데이트를 완료했다는 것을 장치 관리부에 알린다. 장치 관리부는 업데이트된 정보와 함께 새로운 이벤트를 생성하기 전에 현재 이벤트를 취소하기 위해 어플리케이션 이벤트 핸들러를 위해 짧은 딜레이를 허용한다. 이벤트 핸들러는 이 방법을 부른 후 즉시 리턴을 부른다. 새로운 이벤트는 장치 테이블에서 비거치 컴패니언 어플리케이션 URI가 유용한 모든 장치에 대한 정보를 AIT에서 공급된 것처럼 전달한다. (This method informs the Device Manager, that the HbbTV application is done with updating the device table. The Device Manager will allow a very short delay for the application’s event handler to cancel the current event before generating a new event with the updated information. Event handlers should therefore call return(false) immediately after calling this method. The new event will convey information about all devices for which a non-deferred companion application URI is available in the device table, just as if it had been provided in a broadcast AIT.)
getDeviceCollection Method
Figure pct00036
이 방법은 브라우징을 위한 현재 장치 테이블의 read-only copy의 리턴을 알린다. 이것은 두 멤버를 가진다 - 이름과 클래스. 둘 다 string이다. 이름은 장치의 이름을 포함하고, 클래스는 HbbtvCompanionClass enum 타입의 장치 클래스를 포함한다. (This method informs returns a read-only copy of the current device table for browsing. Its elements have two members: name and class. Both are strings. Name contains the device's name, and class contains a device class from the HbbtvCompanionClass enum type.)
브라우저(browser)와 UPnP간에는 직접적인 통신이 어려울 수 있다. 따라서, 장치 관리부(Device Manager)는 브라우저와 UPnP 간 인터페이싱의 역할을 수행할 수 있다. 장치 관리부는 브라우저의 API를 통해서 UPnP와 브라우저간의 통신 중간에 Daemon으로서 그 역할을 수행할 수 있다. Daemon은 브라우저에 포함될 수도 있지만, TV 내부의 하나의 모듈로서 독자적인 daemon으로 구현될 수도 있다.
도 24는 본 발명의 일 실시 예에 따른 컴패니언 장치에서 부가 서비스를 실행하기 위한 신호 송신 장치의 UI를 설명하는 도면이다.
신호 송신 장치는 상술한 바와 같이 컴패니언 장치와 연결하고, AIT 또는 서버로부터 타입에 따른 URI를 수신하여 장치 테이블을 생성할 수 있다. 신호 송신 장치는 방송 프로그램 내의 컴패니언 장치에서 이용 가능한 부가 서비스(또는 컴패니언 장치 어플리케이션)가 있으면 화면에 표시할 수 있다. 일 실시 예로서, 신호 송신 장치는 이용 가능한 HbbTV 어플리케이션이 있으면 레드 버튼을 표시할 수 있다. Hbb 어플리케이션이란 TV에서 실행되는 어플리케이션을 의미한다. 신호 송신 장치는 이용 가능한 HbbTV 컴패니언 장치 어플리케이션이 있으면 옐로우 버튼을 표시하거나, 화면의 일 영역에 컴패니언 장치가 이용 가능하다는 표시를 할 수 있다. HbbTV 컴패니언 장치 어플리케이션은 컴패니언 장치에서 실행되는 어플리케이션을 의미한다.
사용자가 컴패니언 장치 어플리케이션의 실행을 선택하면, 신호 송신 장치는 디스커버리된 이용 가능한 컴패니언 장치 리스트를 표시할 수 있다. 사용자가 장치 A를 선택하면, 신호 송신 장치는 부가 서비스를 위해 리소스가 위치하는 서버의 URI를 장치 A에게 전송하고, 장치 A가 연결되었다는 메시지를 출력할 수 있다.
장치 A는 신호 송신 장치로부터 수신한 URI를 이용하여 서버에 연결하고 부가 서비스를 실행할 수 있다.
도 25는 본 발명의 일 실시 예에 따른 컴패니언 장치의 부가 서비스를 신호 송신 장치에서 실행하는 방법을 설명하는 도면이다.
신호 송신 장치(예,TV)(100)상에 방송 독립적인 HbbTV 어플리케이션을 런칭하는 컴패니언 장치(200)를 승인하기 위해서 신호 송신 장치(100)는 도 8에서 설명한 UPnP 상태 변수 서비스를 이행할 수 있다. (To allow companion devices to launch broadcast-independent HbbTV applications on the TV, TV devices may also implement the UPnP state variable services defined in Figure 8.)
도 25에는 TV에 의해 제공될 수 있는 UPnP 서비스가 도시되어 있다. 컴패니언 장치는 AIT를 수신할 수 없기 때문에 그것들은 다른 매커니즘을 사용할 수 있다. (The configuration shown in Figure 25 depicts the UPnP services that may be offered by the TV. Since companion devices may not be able to receive the broadcast AIT, they may use other mechanisms.)
도 25의 구조는 도 4에서 설명한 방법과 유사하게 구현될 수 있다.
도 26은 본 발명의 다른 실시 예에 따른 컴패니언 장치의 부가 서비스를 신호 송신 장치에서 실행하는 방법을 설명하는 도면이다.
도 26은 CP가 신호 송신 장치(예, TV)(100) 및 컴패니언 장치(200)에 모두 존재하는 경우에 대한 실시 예이다.
TV(100)로 전달되는 AppURI는 XML AIT 또는 HTML 페이지를 가리킬 수 있다. TV(100)는 방송 독립적인 HbbTV 어플리케이션을 위한 런칭 요청을 컴패니언 장치로부터 수신하는 경우, 우선 순위와 동작을 결정하기 위해 일정한 규칙을 따를 수 있다. (The AppURI that is conveyed to the TV either points to an XML AIT, or to an HTML page. TV devices shall follow rules for determining priorities and behaviour when a launch request for a broadcast-independent HbbTV application is received from a companion device.)
도 27은 본 발명의 제1 실시 예에 따른 컴패니언 장치의 부가 서비스를 신호 송신 장치에서 실행하는 방법을 설명하는 타이밍도이다.
도 27을 참조하면, CP인 TV는 UPnP(17)를 통해 컴패니언 장치들에게 멀티캐스트 방식을 이용하여 검색(discovery)를 수행하여 컴패니언 장치와 연결한다(S2110). TV의 UPnP(17)은 컴패니언 장치로부터 장치 정보를 수신하고, 장치 관리부(15)로 전달한다(S2115). 장치 관리부(15)는 장치 테이블로 컴패니언 장치 정보를 관리하고, HbbTV 어플리케이션(13)으로 수집된 컴패니언 장치 정보를 전달한다. HbbTV 어플리케이션(13)은 수집된 각 컴패니언 장치를 위한 모든 어플리케이션 URI를 서버(31)로부터 수신한다(S2120). Hbb 어플리케이션(13)은 수신한 어플리케이션 URI를 장치 관리부(15)로 전달한다(S2125).
컴패니언 장치와 TV는 UPnP를 통해 연결된다. 그리고, 컴패니언 장치와 TV간에 상호 작용을 위한 준비가 완료된다.
사용자가 컴패니언 장치 어플리케이션을 TV로 전달할 것을 선택하면, 컴패니언 장치(19)는 UPnP를 통해 현재 어플리케이션 URI를 TV로 notify한다(S2130). TV의 UPnP(17)는 컴패니언 장치의 현재 어플리케이션 URI를 어플리케이션 관리부(23)로 전달한다(S2135). 어플리케이션 관리부(23)는 컴패니언 장치의 현재 어플리케이션 URI를 HbbTV 어플리케이션(13)으로 전달한다(S2140). HbbTV 어플리케이션(13)은 TV에서 컴패니언 장치의 현재 URI를 디스플레이한다(S2145).
즉, UPnP를 통해 CP인 TV는 컴패니언 장치들에게 멀티캐스트 서치를 보내서 디스커버리 작업을 진행한다. 컴패니언 장치에 대한 디스커버리가 완료되면, TV는 컴패니언 장치로 컴패니언 장치의 장치 타입을 Get하라는 컨트롤을 보낸다. 컴패니언 장치는 컨트롤에 대한 응답으로 장치 정보를 전송한다. 전송된 장치 정보는 장치 관리부의 장치 테이블로 전달되고, 장치 관리부는 장치 ID와 장치 타입을 관리한다. TV와 컴패니언 장치 간의 연결이 완료되고 통신 준비 상태가 된다.
사용자가 컴패니언 장치 어플리케이션을 TV로 전달하기를 선택하면, 컴패니언 장치는 현재 URI를 UPnP를 통해 TV로 notify한다. TV의 UPnP는 URI를 수신하고, 어플리케이션 관리부로 전달한다. 이때 다음의 두 가지 경우가 발생할 수 있다.
먼저, TV의 HbbTV 어플리케이션이 실행되고 있지 않은 경우, 어플리케이션 관리부가 HbbTV 어플리케이션을 런치시키고, 전달받은 URI를 HbbTV 어플리케이션 상에서 실행시킨다.
다음으로, TV의 HbbTV 어플리케이션이 실행되고 있을 경우, 어플리케이션 관리부가 HbbTV 어플리케이션에게 해당 URI를 전달하고, 사용자에게 컴패니언 장치로부터 전달받은 URI를 실행시켜도 되는지 여부를 팝업창 등을 이용하여 확인한다.
한편, 장치 정보는 컴패니언 장치의 기기 종류 등에 대한 정보를 포함할 수 있다. TV는 UPnP의 CP(Control Point)이다. 일 실시 예로서, HbbTV 2.0 수신기의 UPnP 장치 타입은 urn:hbbtv.org:device:hbbtv2.0rcvr이다. 경우에 따라, Namespace Identifier(NID) prefix를 형성하기 위해 hbbtv.org의 DNS 이름은 RFC2141에서 요구하는 바와 같이 hbbtv-org로 전환될 수 있다. hbbtv-org 뒤의 잔여 부분은 Namespace Specific String(NSS)이다. HbbTV 2.0 수신기는 아래와 같은 서비스 타입 및 서비스 ID를 가지는 CurrentURI를 지원한다.
Figure pct00037
CurrentURI 서비스는 컴패니언 장치에서 CP인 TV로 현재 컴패니언 장치에서 실행되는 어플리케이션의 URI를 notify하기 위한 서비스이다. 사용자가 선택한 컴패니언 장치에 해당하는 URI를 HbbTV 어플리케이션을 통해 얻어서, 이를 해당 컴패니언 장치에 Set Control을 통해 전달한다.
Figure pct00038
표 38은 CurrentURI service state variable이다.
Figure pct00039
표 39은 CurrentURI service actions이다.
Figure pct00040
표 40은 SetCurrentURI action의 Argument이다.
도 28은 본 발명의 제2 실시 예에 따른 컴패니언 장치의 부가 서비스를 신호 송신 장치에서 실행하는 방법을 설명하는 타이밍도이다.
도 28을 참조하면, CP인 컴패니언 장치는 UPnP(19)를 통해 TV에게 멀티캐스트 방식을 이용하여 검색(discovery)를 수행하여 TV와 연결한다(S2210). TV의 UPnP(17)은 컴패니언 장치로부터 장치 정보를 수신하고, 장치 관리부(15)로 전달한다(S2215). 장치 관리부(15)는 장치 테이블로 컴패니언 장치 정보를 관리하고, HbbTV 어플리케이션(13)으로 수집된 컴패니언 장치 정보를 전달한다. HbbTV 어플리케이션(13)은 수집된 각 컴패니언 장치를 위한 모든 어플리케이션 URI를 서버(31)로부터 수신한다(S2220). Hbb 어플리케이션(13)은 수신한 어플리케이션 URI를 장치 관리부(15)로 전달한다(S2225).
컴패니언 장치와 TV는 UPnP를 통해 연결된다. 그리고, 컴패니언 장치와 TV간에 상호 작용을 위한 준비가 완료된다.
사용자가 컴패니언 장치 어플리케이션을 TV로 전달할 것을 선택하면, 컴패니언 장치(19)는 UPnP를 통해 현재 어플리케이션 URI를 컴패니언 장치에서 TV로 Set 어플리케이션 URI라는 제어 신호를 TV로 전송한다(S2230). TV의 UPnP(17)는 컴패니언 장치의 현재 어플리케이션 URI를 어플리케이션 관리부(23)로 전달한다(S2235). 어플리케이션 관리부(23)는 컴패니언 장치의 현재 어플리케이션 URI를 HbbTV 어플리케이션(13)으로 전달한다(S2240). HbbTV 어플리케이션(13)은 TV에서 컴패니언 장치의 현재 URI를 디스플레이한다(S2245).
즉, UPnP를 통해 CP인 컴패니언 장치는 TV에게 멀티캐스트 서치를 보내서 디스커버리 작업을 진행한다. TV에 대한 디스커버리가 완료되면, 컴패니언 장치는 TV로 컴패니언 장치의 장치 타입을 Set하라는 컨트롤을 보낸다. TV는 Set한 장치 정보를 장치 관리부의 장치 테이블로 전달하고, 장치 관리부는 장치 ID와 장치 타입을 관리한다. TV와 컴패니언 장치 간의 연결이 완료되고 통신 준비 상태가 된다.
사용자가 컴패니언 장치 어플리케이션을 TV로 전달하기를 선택하면, 컴패니언 장치는 현재 URI를 UPnP를 통해 TV로 Set하라는 컨트롤 신호를 전송한다. TV의 UPnP는 URI를 수신하고, 어플리케이션 관리부로 전달한다. 이때 다음의 두 가지 경우가 발생할 수 있다.
먼저, TV의 HbbTV 어플리케이션이 실행되고 있지 않은 경우, 어플리케이션 관리부가 HbbTV 어플리케이션을 런치시키고, 전달받은 URI를 HbbTV 어플리케이션 상에서 실행시킨다.
다음으로, TV의 HbbTV 어플리케이션이 실행되고 있을 경우, 어플리케이션 관리부가 HbbTV 어플리케이션에게 해당 URI를 전달하고, 사용자에게 컴패니언 장치로부터 전달받은 URI를 실행시켜도 되는지 여부를 팝업창 등을 이용하여 확인한다.
한편, 장치 정보는 컴패니언 장치의 기기 종류 등에 대한 정보를 포함할 수 있다. 컴패니언 장치는 UPnP의 CP(Control Point)이다. 일 실시 예로서, HbbTV 2.0 수신기의 UPnP 장치 타입은 urn:hbbtv.org:device:hbbtv2.0rcvr이다. 경우에 따라, Namespace Identifier(NID) prefix를 형성하기 위해 hbbtv.org의 DNS 이름은 RFC2141에서 요구하는 바와 같이 hbbtv-org로 전환될 수 있다. hbbtv-org 뒤의 잔여 부분은 Namespace Specific String(NSS)이다. HbbTV 2.0 수신기는 아래와 같은 Devinfo 서비스 및 서비스 타입 및 서비스 ID를 가지는 AppURI 서비스를 지원한다.
Figure pct00041
CurrentURI 서비스는 TV에서 CP인 컴패니언 장치로 어플리케이션을 시작하는 URI를 전달하기 위한 서비스이다. 사용자가 선택한 컴패니언 장치에 해당하는 URI르 HbbTV 어플리케이션을 통해 수신하며, 수신한 URI를 해당 컴패니언 장치에 notify하여 UPnP를 통해 전달한다.
Figure pct00042
표 42은 CurrentURL Service state variable이다.
Figure pct00043
표 43은 CurrentURL Service Actions이다.
Figure pct00044
표 44는 NotifyCurrentURL action의 Argument이다.
도 29는 본 발명의 일 실시 예에 따른 컴패니언 장치의 부가 서비스를 신호 송신 장치에서 실행하기 위한 신호 송신 장치의 UI를 설명하는 도면이다.
TV와 컴패니언 장치는 디스커버리 과정을 통해 연결을 완료하고, TV는 컴패니언 장치와 관련된 어플리케이션 URI를 수신하여 관리할 수 있다. 구체적인 내용은 도 27 및 도 28에서 설명하였으므로 생략한다.
사용자가 컴패니언 장치 어플리케이션을 TV에서 실행하도록 선택한다. 이때, TV가 HbbTV 어플리케이션을 실행하고 있는 경우, 사용자에게 전달받은 URI의 실행 여부를 확인받을 수 있다. 사용자의 의사를 확인하는 방법은 팝업창을 이용할 수 있다.
도 30은 본 발명의 일 실시 예에 따른 신호 송신 장치의 블록도이다.
도 30을 참조하면, 신호 송신 장치는 통신부(610), 장치관리부(620), UPnP부(630)을 포함한다.
통신부(610)는 어플리케이션 URI를 수신할 수 있다. 어플리케이션 URI는 컴패니언 장치에서 부가 서비스(또는 컴패니언 장치 어플리케이션)를 실행할 수 있는 접속 서버의 위치 정보를 의미할 수 있다. 한편, 통신부(610)는 방송 수신 모듈을 포함하고, 방송 수신 모듈은 어플리케이션 URI를 포함하는 AIT를 수신할 수 있다. 상술한 실시 예는 CP가 TV에 있는 경우로서, 도 8, 도 14 내지 도 23에서 구체적으로 설명하였다. 그리고, CP가 컴패니언 장치에 있는 실시 예는 도 9, 도 14 내지 도 23에서 구체적으로 설명하였다.
그리고, 통신부(610)는 방송 수신 모듈 및 브라우저 모듈을 포함할 수 있다. 이 경우, 방송 수신 모듈은 거치 URI(deferred URI)를 포함하는 AIT를 수신하고, 브라우저 모듈은 HbbTV 어플리케이션을 통해 거치 URI에 대응되는 서버에 접속하여 장치 타입 정보에 대응되는 어플리케이션 URI를 수신할 수 있다. 상술한 실시 예는 CP가 TV에 있는 경우로서, 도 10, 도 15 내지 도 23에서 구체적으로 설명하였고, CP와 관련된 서비스에 대해서는 도 8에서 설명하였다. 그리고, CP가 컴패니언 장치에 있는 실시 예는 도 11, 도 15 내지 도 23에서 구체적으로 설명하였고, CP와 관련된 서비스에 대해서는 도 9에서 설명하였다.
또한, 통신부(610)는 브라우저 모듈을 포함할 수 있고, 브라우저 모듈은 HbbTV 어프릴케이션을 통해 서버와 통신을 수행하여 컴패니언 장치 어플리케이션의 이용 가능 여부를 확인하고, 사용자에 의해 선택된 컴패니언 장치의 장치 타입 정보에 대응되는 어플리케이션 URI를 서버로부터 수신하여 저장할 수 있다. 상술한 실시 예는 CP가 TV에 있는 경우로서, 도 12에서 구체적으로 설명하였다. 그리고, CP가 컴패니언 장치에 있는 실시 예는 도 13에서 구체적으로 설명하였다.
장치 관리부(620)는 장치 타입 정보와 어플리케이션 URI를 대응시켜 저장하고, 사용자에 의해 선택된 컴패니언 장치의 장치 타입 정보를 확인할 수 있다. 장치관리부(620)는 AIT를 통해 어플리케이션 URI를 수신하는 경우, 수신된 AIT를 파싱하여 장치 타입 정보에 대응되는 어플리케이션 URI를 검출하여 저장할 수 있다.
장치 관리부(620)를 호출하거나 HbbTV 어플리케이션을 위한 이벤트와 관련된 API는 도 23에서 설명하였다.
UPnP부(630)는 멀티캐스트 방식을 이용하여 컴패니언 장치를 디스커버리하고, 디스커버리된 컴패니언 장치로부터 장치 타입 정보를 수신할 수 있다. 이 경우는 TV의 UPnP부(630)가 CP(Control Point)로서 동작하는 경우이다. UPnP부(630)는 장치 타입 정보에 대응되는 어플리케이션 URI를 선택된 컴패니언 장치로 전송할 수 있다.
컴패니언 장치는 기본 브라우저 또는 웹뷰를 이용하여 수신한 어플리케이션 URI 페이지를 출력할 수 있다.
도 31은 본 발명의 일 실시 예에 따른 컴패니언 장치의 블록도이다.
도 31을 참조하면, 컴패니언 장치는 네이티브 어플리케이션부(Native App)(710) 및 시스템 웹 브라우저부(System Web Browser)(720)를 포함할 수 있다. 네이티브 어플리케이션부(Native App)(710)는 웹 뷰(Web View)(711) 및 UPnP(712)를 포함할 수 있다.
네이티브 어플리케이션부(Native App)(710)는 컴패니언 장치 상에서 구동되고, UPnP 동작을 제공할 수 있다. 그리고, 컴패니언 어플리케이션을 로딩하고 구동할 수 있는 웹 뷰를 제공할 수 있다.
시스템 웹 브라우저부(System Web Browser)(720)는 컴패니언 장치 상에서 구동되고, 컴패니언 장치에서 설정되는 표준 웹 브라우저일 수 있다. 네이티브 어플리케이션부(710)에 의해 선택적으로 제공될 수 있는 웹 뷰(711)와 달리 시스템 웹 브라우저부(System Web Browser)(720)는 일반적인 웹 용도에 적당한 일반 웹 브라우저일 수 있다.
UPnP(712)는 신호 송신 장치의 UPnP부와 연결되어 통신을 수행할 수 있고, 웹 뷰(Web View)(712)는 접속된 URI의 서버에서 제공하는 부가 서비스를 표시할 수 있다.
한편, 상술한 다양한 실시 예로부터 특성들을 결합할 때, UPnP CP의 위치에 따라, 그리고 접근 상태 변수를 위한 서비스의 위치에 따라 몇 가지 결합이 가능할 수 있다. 상호 운용의 최소 레벨 및 사용자 경험을 보장하기 위해 모든 TV와 모든 컴패니언 장치들은 아래에 정의된 프로파일 중 하나를 이행한다. (When combining the features, several combinations of where UPnP Control Points are located, and where services for accessing state variables are provided, are possible. To ensure a minimum level of interoperability and user experience, all TV sets, and all companion devices shall implement one of the profiles defined as below.)
Figure pct00045
이러한 프로파일을 가지고, 하기와 같은 기능이 가능할 수 있다. (With these profiles, the functionalities as shown in below will be possible.)
Figure pct00046
기본적으로 UPnP 프로토콜은 어떤 인증도 이행되지 않으므로 UPnP 장치 실시는 자체 인증 메커니즘을 이행하거나 장치 보호 서비스를 이행할 수 있다. 많은 UPnP 장치 실시는 인증 메커니즘이 부족하고 기본적으로 로컬 시스템과 사용자는 완전히 신뢰할 수 있다고 가정한다. UPnP의 특정 보안 프로파일 권한은 심하게 상호 운용을 제한한다. (The UPnP protocol, as default, does not implement any authentication, so UPnP device implementations will implement their own authentication mechanisms, or implement the Device Protection Service. Many UPnP device implementations lack authentication mechanisms, and by default assume local systems and their users are completely trustworthy. Mandating a specific security profile of UPnP could hence severely limit interoperability.)
본 발명에 따른 신호 송신 장치 및 방법은 상기한 바와 같이 설명된 실시 예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시 예들은 다양한 변형이 이루어질 수 있도록 각 실시 예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해돼서는 안 될 것이다.
본 발명은 방송 및 비디오 신호 처리 분야에서 사용 가능하고 반복 가능성이 있는 산업상 이용가능성이 있다.

Claims (15)

  1. 멀티캐스트 방식을 이용하여 컴패니언 장치(companion device)를 검색(discovery)하는 단계;
    검색된 컴패니언 장치로부터 장치 타입 정보를 수신하여 저장하는 단계;
    어플리케이션 URI(Uniform Resource Identifier)를 수신하고 상기 장치 타입 정보에 대응시켜 저장하는 단계; 및
    사용자에 의해 선택된 컴패니언 장치의 장치 타입 정보를 확인하고, 상기 장치 타입 정보에 대응되는 어플리케이션 URI를 상기 선택된 컴패니언 장치로 전송하는 단계;를 포함하는 신호 송신 방법.
  2. 제1항에 있어서,
    상기 저장하는 단계는,
    상기 어플리케이션 URI를 포함하는 AIT(Application Information Table)를 수신하고, 상기 수신된 AIT를 파싱(parsing)하여 상기 장치 타입 정보에 대응되는 상기 어플리케이션 URI를 검출하여 저장하는 것을 특징으로 하는 신호 송신 방법.
  3. 제1항에 있어서,
    상기 저장하는 단계는,
    거치 URI(deferred URI)를 포함하는 AIT를 수신하고, 상기 수신된 AIT를 파싱하여 상기 거치 URI를 검출하며, 상기 거치 URI에 대응되는 서버에 접속하고 상기 장치 타입 정보에 대응되는 상기 어플리케이션 URI를 수신하여 저장하는 것을 특징으로 하는 신호 송신 방법.
  4. 제1항에 있어서,
    상기 저장하는 단계는,
    HbbTV 어플리케이션이 서버와 통신을 수행하여 상기 컴패니언 장치 어플리케이션(companion device application)의 이용 가능 여부(available)를 확인하고, 사용자에 의해 선택된 컴패니언 장치의 장치 타입 정보에 대응되는 상기 어플리케이션 URI를 서버로부터 수신하여 저장하는 것을 특징으로 하는 신호 송신 방법.
  5. 제1항에 있어서,
    상기 어플리케이션 URI는 각각의 컴패니언 장치마다 서로 다른 URI 값이 할당되는 특정(specific) URI 또는 동일한 URI 값이 할당되는 일반(generic) URI인 것을 특징으로 하는 신호 송신 방법.
  6. 멀티캐스트 방식을 이용하여 컴패니언 장치를 검색(discovery)하고, 검색된 컴패니언 장치로부터 장치 타입 정보를 수신하는 UPnP부;
    어플리케이션 URI를 수신하는 통신부; 및
    상기 장치 타입 정보와 상기 어플리케이션 URI를 대응시켜 저장하고, 사용자에 의해 선택된 컴패니언 장치의 장치 타입 정보를 확인하는 장치관리부;를 포함하며,
    상기 UPnP부는,
    상기 장치 타입 정보에 대응되는 어플리케이션 URI를 상기 선택된 컴패니언 장치로 전송하는, 신호 송신 장치.
  7. 제6항에 있어서,
    상기 통신부는 방송 수신 모듈을 포함하고,
    상기 방송 수신 모듈은,
    상기 어플리케이션 URI를 포함하는 AIT(Application Information Table)를 수신하고,
    상기 장치관리부는,
    상기 수신된 AIT를 파싱(parsing)하여 상기 장치 타입 정보에 대응되는 상기 어플리케이션 URI를 검출하여 저장하는 것을 특징으로 하는 신호 송신 장치.
  8. 제6항에 있어서,
    상기 통신부는 방송 수신 모듈 및 브라우저 모듈을 포함하고,
    상기 방송 수신 모듈은,
    거치 URI(deferred URI)를 포함하는 AIT를 수신하고,
    상기 장치관리부는,
    상기 수신된 AIT를 파싱하여 상기 거치 URI를 검출하며,
    상기 브라우저 모듈은,
    상기 HbbTV 어플리케이션을 통해 거치 URI에 대응되는 서버에 접속하여 상기 장치 타입 정보에 대응되는 상기 어플리케이션 URI를 수신하는 것을 특징으로 하는 신호 송신 장치.
  9. 제6항에 있어서,
    상기 통신부는 브라우저 모듈을 포함하고,
    상기 브라우저 모듈은,
    HbbTV 어플리케이션을 통해 서버와 통신을 수행하여 상기 컴패니언 장치 어플리케이션(companion device application)의 이용 가능 여부(available)를 확인하고, 사용자에 의해 선택된 컴패니언 장치의 장치 타입 정보에 대응되는 상기 어플리케이션 URI를 서버로부터 수신하여 저장하는 것을 특징으로 하는 신호 송신 장치.
  10. 제6항에 있어서,
    상기 어플리케이션 URI는 각각의 컴패니언 장치마다 서로 다른 URI 값이 할당되는 특정(specific) URI 또는 동일한 URI 값이 할당되는 일반(generic) URI인 것을 특징으로 하는 신호 송신 장치.
  11. 멀티캐스트 방식을 이용하여 컴패니언 장치를 검색(discovery)하고, 검색된 컴패니언 장치로 장치 타입 정보를 요청하는 제어 신호를 전송하는 신호 송신 장치; 및
    상기 신호 송신 장치로 장치 타입 정보를 전송하는 컴패니언 장치;를 포함하고,
    상기 신호 송신 장치는,
    어플리케이션 URI를 수신하여 상기 장치 타입 정보와 상기 어플리케이션 URI를 대응시켜 저장하고, 사용자에 의해 선택된 컴패니언 장치의 장치 타입 정보를 확인하며, 상기 장치 타입 정보에 대응되는 어플리케이션 URI를 상기 선택된 컴패니언 장치로 전송하고,
    상기 컴패니언 장치는,
    상기 신호 송신 장치로부터 전송된 상기 어플리케이션 URI를 수신하고, 상기 어플리케이션 URI에 대응되는 서버로부터 URI 페이지를 수신하여 디스플레이하는, 신호 송수신 시스템.
  12. 제11항에 있어서,
    상기 신호 송신 장치는,
    상기 어플리케이션 URI를 포함하는 AIT(Application Information Table)를 수신하고 파싱(parsing)하여 상기 장치 타입 정보에 대응되는 상기 어플리케이션 URI를 검출하여 저장하는 것을 특징으로 하는 신호 송수신 시스템.
  13. 제11항에 있어서,
    상기 신호 송신 장치는,
    거치 URI(deferred URI)를 포함하는 AIT를 수신하고 파싱하여 상기 거치 URI를 검출하며, HbbTV 어플리케이션을 통해 상기 거치 URI에 대응되는 서버에 접속하여 상기 장치 타입 정보에 대응되는 상기 어플리케이션 URI를 수신하는 것을 특징으로 하는 신호 송수신 시스템.
  14. 제11항에 있어서,
    상기 신호 송신 장치는,
    HbbTV 어플리케이션을 통해 서버와 통신을 수행하여 상기 컴패니언 장치 어플리케이션(companion device application)의 이용 가능 여부(available)를 확인하고, 사용자에 의해 선택된 컴패니언 장치의 장치 타입 정보에 대응되는 상기 어플리케이션 URI를 서버로부터 수신하여 저장하는 것을 특징으로 하는 신호 송수신 시스템.
  15. 제11항에 있어서,
    상기 어플리케이션 URI는 각각의 컴패니언 장치마다 서로 다른 URI 값이 할당되는 특정(specific) URI 또는 동일한 URI 값이 할당되는 일반(generic) URI인 것을 특징으로 하는 신호 송수신 시스템.
KR1020157021789A 2013-03-19 2014-03-19 신호 송신 장치, 신호 송신 방법 및 신호 송수신 시스템 KR20150140631A (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201361803116P 2013-03-19 2013-03-19
US61/803,116 2013-03-19
US201361830642P 2013-06-04 2013-06-04
US61/830,642 2013-06-04
US201361836165P 2013-06-18 2013-06-18
US61/836,165 2013-06-18
US201361837187P 2013-06-20 2013-06-20
US61/837,187 2013-06-20
PCT/KR2014/002306 WO2014148813A1 (ko) 2013-03-19 2014-03-19 신호 송신 장치, 신호 송신 방법 및 신호 송수신 시스템

Publications (1)

Publication Number Publication Date
KR20150140631A true KR20150140631A (ko) 2015-12-16

Family

ID=51580416

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157021789A KR20150140631A (ko) 2013-03-19 2014-03-19 신호 송신 장치, 신호 송신 방법 및 신호 송수신 시스템

Country Status (7)

Country Link
US (1) US9699524B2 (ko)
EP (1) EP2978227A4 (ko)
JP (1) JP6174721B2 (ko)
KR (1) KR20150140631A (ko)
CN (1) CN105075274A (ko)
CA (1) CA2900485C (ko)
WO (1) WO2014148813A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019039748A1 (ko) * 2017-08-23 2019-02-28 삼성전자 주식회사 클라이언트 디바이스, 컴패니언 스크린 디바이스 및 그 동작방법
KR20190022307A (ko) * 2017-08-23 2019-03-06 삼성전자주식회사 클라이언트 디바이스, 컴패니언 스크린 디바이스 및 그 동작방법
WO2023106512A1 (ko) * 2021-12-06 2023-06-15 엘지전자 주식회사 복수의 디스플레이 장치간 콘텐츠를 공유하도록 하는 인공 지능 장치 및 콘텐츠 공유 방법

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140325027A1 (en) * 2013-04-24 2014-10-30 Xiaomi Inc. Method and terminal device for requesting and presenting data
JP6234291B2 (ja) * 2014-03-24 2017-11-22 Kddi株式会社 受信装置、端末連携システム及び端末連携方法
CN113411678A (zh) * 2014-10-29 2021-09-17 Lg 电子株式会社 广播信号发送设备和方法以及广播信号接收设备和方法
KR101827277B1 (ko) * 2015-03-01 2018-02-08 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
CN106464395B (zh) 2015-03-01 2019-07-05 Lg电子株式会社 发送广播信号的设备、接收广播信号的设备、发送广播信号的方法和接收广播信号的方法
US9872063B2 (en) 2015-03-01 2018-01-16 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method of transmitting broadcast signals and method of receiving broadcast signals
WO2017007260A1 (ko) * 2015-07-08 2017-01-12 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
US10917186B2 (en) 2015-07-21 2021-02-09 Lg Electronics Inc. Broadcasting signal transmitting apparatus, broadcasting signal receiving apparatus, broadcasting signal transmitting method, and broadcasting signal receiving method
KR102121535B1 (ko) * 2015-11-30 2020-06-10 삼성전자주식회사 전자 장치, 보조 장치 및 전자 장치의 동작 방법
JP6807214B2 (ja) * 2016-11-07 2021-01-06 日本放送協会 端末装置、受信装置及びプログラム
TWI640195B (zh) * 2016-12-14 2018-11-01 日商夏普股份有限公司 具有統一資源識別符訊息浮水印有效負載之廣播系統
CN107707988A (zh) * 2017-10-10 2018-02-16 青岛海信电器股份有限公司 一种下载应用的方法及装置
US10764640B2 (en) * 2018-11-23 2020-09-01 Sony Corporation Receiver device including native broadcaster application
CN112925494A (zh) * 2021-03-17 2021-06-08 众安信息技术服务有限公司 一种同屏演示的实现方法、装置、计算机设备及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330719B1 (en) * 1999-06-30 2001-12-11 Webtv Networks, Inc. Interactive television receiver unit browser that waits to send requests
KR20030036305A (ko) 2003-02-27 2003-05-09 이혁재 티브이 프로그램 식별자와 무선 단말기를 이용한 부가서비스 시스템
GB0307694D0 (en) 2003-04-03 2003-05-07 Koninkl Philips Electronics Nv Broadcast delivery to a wireless device
US20060041924A1 (en) * 2004-08-20 2006-02-23 Matsushita Electric Industrial Co., Ltd. Digital television middleware service for home networking domains
KR100658895B1 (ko) 2005-09-14 2006-12-15 엘지전자 주식회사 디지털 방송 수신기의 부가 서비스 제공 장치 및 방법.
US8775647B2 (en) * 2007-12-10 2014-07-08 Deluxe Media Inc. Method and system for use in coordinating multimedia devices
KR101639645B1 (ko) 2008-05-28 2016-07-14 삼성전자주식회사 컨텐트 송신 방법 및 장치와 컨텐트 수신 방법 및 장치
JP5559977B2 (ja) 2009-03-31 2014-07-23 日本放送協会 連携受信システム及びプログラム
EP2343881B1 (en) * 2010-01-07 2019-11-20 LG Electronics Inc. Method of processing application in digital broadcast receiver connected with interactive network, and digital broadcast receiver
KR101214515B1 (ko) 2010-12-08 2013-01-09 주식회사 아이플래테아코리아 방송콘텐츠의 부가정보 제공 시스템 및 그 방법
JP5773747B2 (ja) * 2011-05-18 2015-09-02 日本放送協会 端末連携システム、受信機及び情報処理端末
JP2013009355A (ja) * 2011-05-20 2013-01-10 Nippon Hoso Kyokai <Nhk> 放送通信連携受信装置
US20140214967A1 (en) 2011-08-26 2014-07-31 Nippon Hoso Kyokai Receiver and reception method
KR101952700B1 (ko) * 2012-07-31 2019-02-28 삼성전자주식회사 방송 통신 융합 서비스의 제공 방법 및 장치
US20140165112A1 (en) * 2012-12-11 2014-06-12 Samsung Electronics Company, Ltd. Launching a second-screen application related to a non-triggered first-screen application
US9143565B2 (en) * 2013-05-30 2015-09-22 Opentv, Inc. Synchronizing an application on a companion device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019039748A1 (ko) * 2017-08-23 2019-02-28 삼성전자 주식회사 클라이언트 디바이스, 컴패니언 스크린 디바이스 및 그 동작방법
KR20190022307A (ko) * 2017-08-23 2019-03-06 삼성전자주식회사 클라이언트 디바이스, 컴패니언 스크린 디바이스 및 그 동작방법
US11128926B2 (en) 2017-08-23 2021-09-21 Samsung Electronics Co., Ltd. Client device, companion screen device, and operation method therefor
WO2023106512A1 (ko) * 2021-12-06 2023-06-15 엘지전자 주식회사 복수의 디스플레이 장치간 콘텐츠를 공유하도록 하는 인공 지능 장치 및 콘텐츠 공유 방법

Also Published As

Publication number Publication date
WO2014148813A1 (ko) 2014-09-25
JP6174721B2 (ja) 2017-08-02
US20150382080A1 (en) 2015-12-31
JP2016513438A (ja) 2016-05-12
CN105075274A (zh) 2015-11-18
EP2978227A4 (en) 2016-08-17
EP2978227A1 (en) 2016-01-27
US9699524B2 (en) 2017-07-04
CA2900485C (en) 2018-01-09
CA2900485A1 (en) 2014-09-25

Similar Documents

Publication Publication Date Title
KR20150140631A (ko) 신호 송신 장치, 신호 송신 방법 및 신호 송수신 시스템
KR101761633B1 (ko) 신호 송신 장치 및 제어 방법
AU2013206552B2 (en) Application discovery
CA2925284C (en) Method and apparatus for executing application in wireless communication system
US8527987B2 (en) Method and device for installing applications on NFC-enabled devices
CN103583008B (zh) 对用于交互电视的触发器参数表的扩展
US9936036B2 (en) Method and system for indirectly establishing a unique communication channel between a plurality of devices
KR101775026B1 (ko) 페어 플레이 서비스 제공 방법 및 장치
AU2011245872C1 (en) Method for providing message and device therefor
US20140040424A1 (en) Method and apparatus of providing broadcasting and communication convergence service
EP3979071B1 (en) Method, user equipment, and application server for downloading application
EP3416351B1 (en) Implementation method, apparatus and system for remote access
US10394540B1 (en) Software incremental loader
KR102401691B1 (ko) 무선 통신 시스템에서 어플리케이션 실행 방법 및 장치
US12034993B2 (en) Method and apparatus for executing application in wireless communication system
EP2104313A1 (en) Method and apparatus for processing delivery of software items
Smith et al. Communications and Networking

Legal Events

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