本発明では、デバイス間通信(communication)の際に、メッセージ(message)、命令語(command)、コール(call)、アクション(action)、或いは要求/応答(request/response)を交換すると表現することができる。
本発明では、デバイス間通信(communication)の際に使用されるメッセージ(message)を所望の対象デバイスに安定的に伝達するために、IP(Internet Protocol)だけでなく、ICMP(Internet Control Message Protocol)、IGMP(Internet Group Management Protocol)などの種々のプロトコルを適用でき、特定プロトコルに限定して適用しない。
本発明では、デバイス間通信の際に使用されるメッセージ(message)を安定的に伝達し、メッセージフロー(message flow)を制御し、複数のメッセージ(message)間の衝突や混雑(congestion)を解決し、マルチプレキシング(multiplexing)を支援するために、TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)だけでなく、DCCP(Datagram Congestion Control Protocol)、SCTP(Stream Control Transmission Protocol)などの種々のプロトコルを適用でき、特定プロトコルに限定して適用しない。
本発明では、デバイス間通信の際に使用されるメッセージ(message)に種々の情報を入れて種々の目的で伝達するために、HTTP(Hypertext Transfer Protocol)、RTP(Real−time Transport Protocol)、XMPP(Extensible Messaging and Presence Protocol)、FTP(File Transfer Protocol)などの種々のプロトコルを適用でき、特定プロトコルに限定して適用しない。
本発明では、デバイス間通信の際に使用されるメッセージを上記の種々のプロトコルを介して伝達するとき、各プロトコルで定義するメッセージコンポーネント(components)のうち、メッセージヘッダ(message header)、メッセージボディ(message body)等、様々なメッセージコンポーネントに所望のメッセージデータを入れて伝達することができ、特定メッセージコンポーネントに限定されない。
本発明では、デバイス間通信の際に使用されるメッセージを上記の種々のプロトコルを介して伝達するとき、伝達するデータを各プロトコルで定義する様々なタイプで(string、integer、floating point、boolean、character、array、list等)伝達することができる。複雑な内容のデータをより構造的に表現し、伝達し、格納するために、XML(Extensible Markup Language)、HTML(Hypertext Markup Language)、XHTML(Extensible Hypertext Markup Language)、JSON(JavaScript Object Notation)などのマークアップ(Markup)方式、或いはテキスト(text)、イメージフォーマット(image format)などを適用でき、特定方式に限定されない。
本発明では、デバイス間通信の際に使用されるメッセージに含まれるデータを、「gzip」(RFC 1952)、「deflate」(RFC 1950)、「compress」(RFC 2616)などの種々のデータ圧縮機術を適用して伝達でき、特定方式に限定されない。
本発明の実施形態において適用されたデバイス間通信の1つの方案であるUPnP方式は、前記種々の技術のうち、IP−TCP/UDP−HTTPのプロトコルが組み合わせられたデバイス間通信プロトコルである。
本発明において提案する全てのUPnPアクションは、前記種々のレイヤ(layer)の技術の様々な形態の組み合わせを介して適用されることができ、本発明において提案する全ての内容は、UPnP方式に限定されない。すなわち、本明細書では、ネットワークを構成する1つの実施形態としてUPnP方式を基準として説明するが、本発明は、これに限定されず、上記で説明した他の方式の技術に対しても適用可能であろう。
図1は、本発明が適用される実施形態であって、IP基盤の次世代ハイブリッド放送システムの放送受信デバイスの構造を示す。
本発明が適用されるIP基盤の次世代ハイブリッド放送システムにおいて、放送受信デバイス100は、ブロードキャストネットワークとブロードバンドネットワークとに連結されていることができる。本明細書において、前記放送受信デバイス100は、DVB端末、ハイブリッド端末、ハイブリッドDVB端末、またはノン−ハイブリッドDVB端末などを意味できる。また、前記放送受信デバイス100は、ウェブ基盤ハイブリッドブロードキャストブロードバンド端末を意味することもでき、アプリケーションのダウンロード及び実行が可能でありうる。
また、本明細書において、アプリケーションは、ブロードキャストと関係ないアプリケーション(broadcast−independent application)とブロードキャスト関連アプリケーション(broadcast−related application)の2つのタイプを有することができる。
前記ブロードキャストと関係ないアプリケーション(broadcast−independent application)は、ブロードバンドを介してダウンロードされることができ、関連データに接続することができる。例えば、前記ブロードキャストと関係ないアプリケーション(broadcast−independent application)は、ブロードキャストリソースを必要としないアプリケーションでありうるし、具体的な例としてゲームなどを挙げることができる。
また、前記ブロードキャスト関連アプリケーション(broadcast−related application)は自動的に実行されることができるか、ユーザ要求により実行されることができる。前記ブロードキャスト関連アプリケーション(broadcast−related application)は、ブロードバンドまたはブロードキャストを介してダウンロードされることができ、いかなる方式でも関連データに接続することができる。例えば、前記ブロードキャスト関連アプリケーション(broadcast−related application)は、電子プログラムガイド、テレテキスト(teletext)サービスなどを含むことができる。
前記放送受信デバイス100は、2個のネットワークに並列的に連結されることができる。1つは、ブロードキャストDVBネットワークでありうるし、他の1つは、ブロードバンドネットワークでありうる。前記ブロードキャストDVBネットワークは、DVB−T、DVB−S、DVB−Cなどを含むことができる。
ブロードキャストネットワーク連結を介して、前記放送受信デバイス100は、通常的なブロードキャストA/Vコンテンツ、非実時間A/Vコンテンツ、アプリケーションデータ、及びアプリケーションシグナリング情報などを受信することができる。
ブロードバンドネットワーク連結を介して、前記放送受信デバイス100は、アプリケーション提供者と双方向通信を行うことができる。そして、前記放送受信デバイス100は、ブロードバンドインターフェースを介してアプリケーションデータ、非線形A/Vコンテンツを受信でき、A/Vコンテンツの非実時間ダウンロードも支援することができる。また、前記ブロードバンドインターフェースは、同じネットワーク上にある同伴デバイスと連結されることができる。
前記図1に示すように、本発明が適用されるIP基盤の次世代ハイブリッド放送システムの放送受信デバイス100は、ブロードキャストインターフェース111、デマルチプレキシング部113、AIT(Application Information Table)フィルタ115、DSM−CC(Digital Storage Media−Command and Control)クライアント117、ブロードキャストプロセシング部119、ブロードバンドインターフェース121、IP(Internet Protocol)プロセシング部123、アプリケーション管理部130、ブラウザ140、及びメディアプレーヤー150を備えることができる。
前記放送受信デバイス100は、前記ブロードキャストインターフェース111を介してAITデータ、線形A/Vコンテンツ(linear Audio−Visual content)、非実時間A/Vコンテンツ(non−realtime Audio−Visual content)、アプリケーションデータ(application data)、及びストリームイベント(stream event)を受信することができる。ここで、前記アプリケーションデータ(application data)及びストリームイベント(stream event)は、DSM−CCオブジェクトカルーセル(object carousel)を用いて送信されることができる。そして、前記非実時間A/Vコンテンツは、ファイルダウンロードプロトコルデコーダ(図示せず)により受信されることができる。
したがって、前記DSM−CC(Digital Storage Media−Command and Control)クライアント117は、前記オブジェクトカルーセル(object carousel)からデータ(例えば、アプリケーションデータ、ストリームイベント)を復旧し、それらを実行環境部(runtime environment unit)に提供することができる。ここで、実行環境部(runtime environment unit)は、双方向アプリケーション(interactive application)が存在し実行される抽象的な要素を意味できる。例えば、前記実行環境部(runtime environment unit)は、前記アプリケーション管理部130と前記ブラウザ140とを備えることができる。
前記デマルチプレキシング部113は、受信された信号を各ユニットにデマルチプレキシングすることができる。例えば、前記デマルチプレキシング部113は、AITデータを前記AIT(Application Information Table)フィルタ115に送信し、線形A/Vコンテンツ(linear Audio−Visual content)を前記ブロードキャストプロセシング部119に送信し、前記アプリケーションデータ(application data)と前記ストリームイベント(stream event)とを前記DSM−CC(Digital Storage Media−Command and Control)クライアント117に送信することができる。
前記ブロードキャストプロセシング部119は、前記デマルチプレキシング部113から受信した線形A/Vコンテンツを標準ノン−ハイブリッドDVB端末(standard non−hybrid DVB terminal)のような方式で処理することができる。前記ブロードキャストプロセシング部119は、通常的なノン−ハイブリッドDVB端末(common non−hybrid DVB terminal)で提供される全てのDVB機能を含むことができる。
前記ブロードキャストプロセシング部119から出力される他のデータは、前記実行環境部(runtime environment unit)により処理されることができる。例えば、前記他のデータは、チャンネルリスト情報、EIT p/f(Event Information Table present/following)、チューニングのための機能(functions for tuning)を含むことができる。
前記ブロードキャストプロセシング部119から出力される線形A/Vコンテンツは、アプリケーションにより提供されるユーザインターフェースに埋め込まれることができ、このような機能は、前記メディアプレーヤー150により提供されることができる。
前記アプリケーション管理部130は、双方向アプリケーション(interactive application)のライフサイクル(life cycle)を制御するために、AIT(Application Information Table)を考慮できる。
前記ブラウザ140は、双方向アプリケーション(interactive application)を出力(presenting)し、実行(executing)することができる。
一方、前記放送受信デバイス100は、前記ブロードバンドインターフェース121を介してインターネットに連結することができる。前記連結は、アプリケーション提供者のサーバからアプリケーションデータを要求するための2つの方式を提供する。
前記IP(Internet Protocol)プロセシング部123は、インターネットから来るデータを処理するための全ての機能を含むことができる。前記IP(Internet Protocol)プロセシング部123から出力されたA/Vコンテンツは、前記メディアプレーヤー150に送信され、アプリケーションにより提供されるユーザインターフェースに埋め込まれることができる。前記ブロードバンドインターフェース121を介して送信されたコンテンツと前記ブロードキャストインターフェース111を介して送信されたコンテンツとは、同期化部(図示せず)により同期化することができる。
また、同伴スクリーンインターフェース(図示せず)は、前記放送受信デバイス100をして同伴デバイスを発見させることができる。
前記ブラウザ140で実行中である双方向アプリケーションは、前記同伴デバイスに実行または設置されるアプリケーションを要求できる。そして、前記同伴デバイスで実行中であるアプリケーションは、前記ブラウザ140に双方向アプリケーションを実行することを要求できる。
ウェブソケットサーバは、前記放送受信デバイス100のアプリケーションと前記同伴デバイス(または、他の放送受信デバイス)のアプリケーションとの間の通信を可能とすることができる。
本発明が適用されるIP基盤の次世代ハイブリッド放送システムは、HbbTV(Hybrid Broadcast Broadband TV)システムを含み、このとき、前記放送受信デバイス100は、HbbTVターミナルを意味できる。そして、前記放送受信デバイス100は、同伴デバイスを管理するための同伴デバイス管理部(図示せず)を含むことができる。前記同伴デバイス管理部は、前記放送受信デバイス100内の別のユニットで動作することができる。または、前記アプリケーション管理部130に対応するか、含まれることもできる。
本発明が適用される一実施形態として、同伴デバイスのアプリケーションは、放送受信デバイス100の要求により始まることができる。この場合、前記放送受信デバイス100の同伴デバイス管理部は、同伴デバイスを発見でき、前記同伴デバイスにアプリケーション設置情報または開始情報を送信できる。前記同伴デバイスは、前記アプリケーション設置情報または開始情報に基づいて、アプリケーションを設置したり始めることができる。
本発明が適用される他の一実施形態として、前記放送受信デバイス100のアプリケーションは、同伴デバイスにより遠隔で始まることができる。この場合、前記放送受信デバイス100は、同伴デバイスから発見要求(discovery request)情報を受信するか、アプリケーション開始要求(launch request)情報を受信できる。前記放送受信デバイス100の同伴デバイス管理部は、発見要求(discovery request)情報またはアプリケーション開始要求(launch request)情報を受信した場合、これに応答して前記放送受信デバイス100のアプリケーション位置情報を送信するか、アプリケーションを始めることができる。
本発明が適用される他の一実施形態として、放送受信デバイス100のアプリケーションは、同伴デバイスのアプリケーションと直接通信することができる。この場合、前記放送受信デバイス100の同伴デバイス管理部は、アプリケーション間通信のためのサービス終端(service end points)に関する情報を提供できる。例えば、前記放送受信デバイス100は、API(Application Program Interface)を介してサービス終端の位置を発見できる。一方、同伴デバイスのアプリケーションが前記放送受信デバイス100により始まった場合、前記同伴デバイスのアプリケーションは、前記放送受信デバイス100から送信されたパラメータに基づいてサービス終端の位置を確認できる。それに対し、前記同伴デバイスのアプリケーションが独立的に始まった場合には、サービス終端の位置を発見する必要がある。
上記のような方法を介して放送受信デバイスと同伴デバイスとは、相互動作を行うことができるようになる。
図2は、本発明が適用される実施形態であって、同伴デバイス(companion device)と放送受信デバイスとの間のウェブソケット通信を行う過程を説明するための基本アーキテクチャを示す。
本発明において、タブレット、スマートフォンのようなパーソナルスマートデバイスは、放送サービスを利用可能とする。前記放送サービスは、放送受信デバイスとパーソナルデバイス上のアプリケーション間の通信が必要でありうる。
アプリケーションやサービスを提供するためには、通信を行うネットワーク住所を知らなければならない。しかし、ユーザが常にネックワーク住所を知らなければならないか、直接入力することは不便である。
したがって、本発明では、ネットワーク住所の割当に関する情報がなくても、放送受信デバイスと同伴デバイスとの間の通信を設定するための方法を提供する。
前記放送受信デバイスと前記同伴デバイスとの間のインターフェースは、CSS−CII(interface for metadata exchange、including content identification)、CSS−WC(interface for Wall Clock synchronization)、CSS−TS(interface for Timeline Synchronisation)、CSS−TE(interface for notification of Trigger Events)を含むことができる。
マルチスクリーンサービス(Multi−Screen Service)または双方向サービス(interactive service)を提供するネットワークに種々のデバイスが連結されていると仮定しよう。ネットワーク上に連結されたデバイスは、特定アプリケーションの役割及び/又は使用法によりメインデバイス(main device)と同伴デバイス(companion device)とに分類(categorize)されて説明されることができる。
まず、メインデバイス(main device)は、同伴デバイス(companion device)により制御されるデバイスを表す。例えば、前記メインデバイスは、TV、セットトップボックス(set−top box)などのようなリーンバック(lean−back)ディスプレイデバイスを含むことができる。また、いかなるディスプレイデバイスも使用シナリオによって前記メインデバイスとなることができ、例えば、スマートフォン、タブレットのようなデバイスも前記メインデバイスとなることができる。
同伴デバイス(companion device)は、メインデバイス(main device)を制御するデバイスを表す。例えば、前記同伴デバイスは、スマートフォン、タブレットなどのようなリーンフォワード(lean−forward)ディスプレイデバイスや小型ディスプレイデバイス(handheld display device)を含むことができる。また、いかなるディスプレイデバイスも使用シナリオによって前記メインデバイスとなることができ、例えば、TV、セットトップボックス(set−top box)のようなデバイスも前記同伴デバイスとなることができる。
一方、スクリーンデバイス(screen device)とは、スクリーンコントロールポイント(screen control point)とともに行われる、他のディスプレイデバイスに種々の双方向サービス(various interactive service)を提供するために用いられる要素(component)を意味できる。前記スクリーンデバイスは、前記スクリーンコントロールポイントにより制御され、前記スクリーンコントロールポイントと相互動作をするようにデザインされることができる。マルチスクリーンサービス(Multi−Screen Service)を支援するためには、同伴デバイスにより制御されるメインデバイス(例えば、TV、セットトップボックス(set−top box)などのようなリーンバック(lean−back)ディスプレイデバイス)で行われることが勧められる。さらに、拡張されたマルチスクリーンサービス(extended Multi−Screen Service)を支援するためには、メインデバイスを制御する同伴デバイス(例えば、スマートフォン、タブレットなどのようなリーンフォワード(lean−forward)ディスプレイデバイスや小型ディスプレイデバイス(handheld display device))でも行われることが勧められる。
スクリーンコントロールポイント(screen control point)とは、スクリーンデバイス(screen device)とともに行われる、他のディスプレイデバイスに種々の双方向サービス(various interactive service)を提供するために用いられる要素(component)を表す。前記スクリーンコントロールポイントは、ユーザの入力により前記スクリーンデバイスを制御し、前記スクリーンデバイスと相互動作をするようにデザインされることができる。マルチスクリーンサービス(Multi−Screen Service)を支援するためには、メインデバイスを制御する同伴デバイス(例えば、スマートフォン、タブレットなどのようなリーンフォワード(lean−forward)ディスプレイデバイスや小型ディスプレイデバイス(handheld display device))で行われることが勧められる。さらに、拡張されたマルチスクリーンサービス(extended Multi−Screen Service)を支援するためには、同伴デバイスにより制御されるメインデバイス(例えば、TV、セットトップボックス(set−top box)などのようなリーンバック(lean−back)ディスプレイデバイス)でも行われることが勧められる。
本明細書において使用されるスクリーンデバイス、同伴デバイス、同伴スクリーンデバイス、メインデバイス、物理デバイス(physical device)、コントロールデバイス、スクリーンコントロールポイント、コントロールポイントなどは、用語自体の意味に限定されて解析されてはならず、当該実施形態の内容によって流動的に解析可能であろう。
前記図2に示すように、ネットワーク上に連結された種々のデバイスのうち、2個のデバイス、例えば、同伴デバイス(companion device)210と放送受信デバイス(broadcast reception device)220とに基づいて、双方向サービスを提供するための構造を表す。ここで、前記同伴デバイス(companion device)210は、スクリーンコントロールポイント(screen control point)、すなわち、アプリケーション管理コントロールポイント211として動作されることができ、前記放送受信デバイス(broadcast reception device)220は、スクリーンデバイス(screen device)、すなわち、アプリケーション管理サービス221を提供するデバイスとして動作されることができる。
前記同伴デバイス(companion device)210は、前記放送受信デバイス(broadcast reception device)220に要求メッセージを送信し、前記放送受信デバイス(broadcast reception device)220は、前記要求メッセージに応答してイベントメッセージを送信できる。
前記アプリケーション管理サービス221は、あるアプリケーションが支援されるかを決定でき、あるアプリケーションが現在実行中であるかを決定できる。そして、前記アプリケーション管理サービス221は、アプリケーションに関する詳細情報を呼び起こすことができる。前記詳細情報は、ある種類のアプリケーション間プロトコルが各アプリケーションにより支援されるかを表す情報を含むことができる。また、前記アプリケーション間プロトコルに対する通信を設定するために必要な情報を呼び起こすこともできる。
前記アプリケーション管理コントロールポイント211は、前記同伴デバイス210をして放送受信デバイスを探索可能とすることができる。このとき、前記放送受信デバイスは、アプリケーション管理サービス221を提供するUPnPデバイスとして動作されることができる。
前記アプリケーション管理サービス221は、DVB CSS−CIIアプリケーションをリストすることができる。このとき、前記DVB CSS−CIIアプリケーションは、マッチングプロトコル名称(matching protocol name)情報により識別されることができる。そして、ネックワークインターフェース(例えば、CSS−CIIインターフェース)は、アプリケーション管理サービス内にマッチングプロトコル名称(matching protocol name)情報を有したアプリケーションを探すことにより発見されることができる。このとき、前記ネットワークインターフェースは、ウェブソケット基盤でありうる。そして、他のCSSインターフェースは、ウェブソケットでない他の送信メカニズムを利用できる。
図3は、本発明が適用される実施形態であって、IP基盤の次世代ハイブリッド放送システムで適用可能なプロトコルスタックを示す。
本発明の一実施形態に係る放送サービスは、視聴覚データ(Auido/Video、A/V)だけでなく、HTML5アプリケーション、双方向サービス、ACRサービス、セカンドスクリーン(second screen)サービス、個人化(personalization)サービスなどの付加サービスを提供できる。このような放送サービスは、地上波、ケーブル衛星などの放送信号である物理層(physical layer)を介して送信されることができる。また、本発明の一実施形態に係る放送サービスは、インターネット通信網(broadband)を介して送信されることができる。
前記図3に示すように、UPnPデバイスアーキテクチャを構成する要素を示す。UPnPデバイスアーキテクチャは、コントロールポイントがネットワーク上でどのようにUPnPデバイスを探索するかを記述できる。このとき、前記コントロールポイントは、UDP(301)を介して発生するSSDP(Simple Service Discovery Protocol)303を用いてデバイスのIP住所を知っていない状態でありうる。そして、前記UPnPデバイスアーキテクチャは、探索されたUPnPデバイスがいかなる能力を履行するかを記述できる。これは、HTTP(305)によるXMLデバイス説明文書とXMLサービス制御プロトコル説明文書とをダウンロードすることにより行われることができる。
また、前記UPnPデバイスアーキテクチャは、どのようにコントロールポイントがHTTP(305)を介してSOAP(306)要求メッセージを用いてアクションを呼び起こすことにより機能を交流できるかを記述できる。
前記UPnPデバイスアーキテクチャは、どのようにコントロールポイントがTCP(302)を介してGENA(304)を用いてイベントを受信できるかを記述できる。
ドメイン特定された機能は、DCP(308)内のドメイン毎に記述されることができる。前記DCP(308)は、UPnPデバイス内でUPnPサービスとして具体化されることができる。
図4は、本発明が適用される実施形態であって、同伴デバイス(companion device)と放送受信デバイスとの間のウェブソケット通信を行う過程を説明するためのフローチャートを示す。
同伴デバイス420は、ネットワークに連結されたデバイスを探索できる(S410)。このとき、探索アクションが用いられ得る。前記ネットワークに連結された放送受信デバイス410は、前記探索アクションに応答して応答メッセージを前記同伴デバイス420に送信することができる。このとき、前記同伴デバイス420は、前記放送受信デバイス410の他に、前記ネットワークに連結された他のデバイスからも応答メッセージを受信できる。
前記同伴デバイス420は、受信された応答メッセージをフィルタリングすることにより、前記放送受信デバイス410を選択できる(S420)。
前記同伴デバイス420は、前記選択された放送受信デバイス410から説明文書(description document)をダウンロードできる(S430)。ここで、前記説明文書(description document)は、前記放送受信デバイス410のデバイス情報を含むことができる。そして、前記同伴デバイス420は、サービスコントロールプロトコル説明情報を前記放送受信デバイス410と交換することができる。
前記同伴デバイス420は、前記放送受信デバイス410にアプリケーション識別子リストを取得するための第1の要求メッセージを送信できる(S440)。例えば、前記第1の要求メッセージは、GetAppIDList()アクションに表現されることができ、前記要求メッセージは、検索情報と検索フィールド情報を含むことができる。
前記同伴デバイス420は、前記第1の要求メッセージを送信することにより、前記検索情報にマッチングされるアプリケーションが存在するか否かを決定できる。
前記放送受信デバイス410は、前記第1の要求メッセージに応答してアプリケーション識別子を前記同伴デバイス420に送信することができる。ここで、前記アプリケーション識別子は、前記検索情報にマッチングされる特定アプリケーションを識別できる。
例えば、前記検索フィールド情報がマッチングプロトコル名称(matching protocol name)を表し、前記検索情報が特定プロトコル名称(例えば、CSS−CII.TVDevice.CSS.DVB.org_v1)を表す場合、前記アプリケーション識別子は、前記特定プロトコル名称にマッチングされるアプリケーションを識別できる。
前記同伴デバイス420が前記アプリケーション識別子を取得すれば、前記同伴デバイス420は、前記放送受信デバイス410に特定アプリケーション情報を取得するための第2の要求メッセージを送信できる(S450)。例えば、前記第2の要求メッセージは、GetAppInfoByID()アクションに表現されることができ、前記第2の要求メッセージは、前記アプリケーション識別子を含むことができる。前記特定アプリケーション情報は、前記アプリケーション識別子により識別されるアプリケーションの情報を表し、前記特定アプリケーション情報は、ウェブソケット住所または実行状態情報のうち、少なくとも1つを含むことができる。
前記放送受信デバイス410は、前記第2の要求メッセージに応答して特定アプリケーション情報を前記同伴デバイス420に送信することができる。前記送信される特定アプリケーション情報は、XML形態の文書でありうるし、前記放送受信デバイス410のアプリケーション情報を含むことができる。ここで、アプリケーション情報は、本明細書において説明される他の実施形態が適用され得る。
前記同伴デバイス420は、前記特定アプリケーション情報に基づいてウェブソケット連結を設定できる(S460)。
前記設定されたウェブソケット連結に基づいて、前記同伴デバイス420と前記放送受信デバイス410とは通信を行うことができる(S470)。
図5は、本発明が適用される実施形態であって、同伴デバイス(companion device)と放送受信デバイスとの間のウェブソケットサーバを介して連結する過程を説明するためのアーキテクチャを示す。
図5を参照すれば、放送受信デバイス510と同伴デバイス520が図示されている。放送受信デバイス510は、アプリケーションプロセッサとネットワークプロセッサとを備えることができる。前記ネットワークプロセッサは、放送受信デバイス510のアプリケーションApp#1(512)及び同伴デバイス520のアプリケーションApp#1(521)を連結できる。ここで、前記ネットワークプロセッサは、ウェブソケットサーバ511を表すことができ、前記アプリケーションプロセッサは、アプリケーションApp#1(512)またはアプリケーションApp#1(521)を表すことができる。
新しく生成されたストリームヘッドが現在連結のために待機するストリームヘッドの集合内のストリームヘッドとして同じホストヘッダフィールド値段及び同じURI要求(Request−URI)と連関されているならば、ウェブソケットサーバ511は、その集合からマッチングされるストリームヘッドを除去し、2個のストリームヘッド間の双方向通信チャンネルを設立できる。
2個のストリームヘッドが連結されれば、サーバは、直ちに1つのストリームヘッドから受信した全てのデータを出力し、各々他のストリームヘッドに変更しないことができる。これにより、2つのクライアント間の透明な通信チャンネル(a transparent communications channel)が設立され得る。
2つのクライアントのうち、1つがクローズフレーム(Close frame)を送信すれば、サーバは、他のクライアントに対応するクローズフレームを送信できる。2つのクライアントのうち、1つがクローズフレームを送信せずに連結を解除すれば、サーバは、クローズフレームを生成し、他のクライアントに送信することができる。
すなわち、サーバは、アプリケーションプロセッサの連結要求があるとき、アプリケーションプロセッサのストリームヘッドを生成してストリームヘッドグループに含めることができる。例えば、前記図5に示すように、ウェブソケットサーバ511は、同伴デバイス520から連結要求を受けると、同伴デバイス520のストリームヘッドを生成してマッチングされるストリームヘッドの存在可否を検索できる。マッチングされるストリームヘッドが存在すれば、ウェブソケットサーバ511は、ストリームヘッドグループからマッチングされるアプリケーションApp#1(512)のストリームヘッドと同伴デバイス520のアプリケーションApp#1(521)のストリームヘッドとを連結できる。このとき、ウェブソケットサーバ511は、マッチングされたアプリケーションApp#1(512)のストリームヘッドまたは同伴デバイス520のアプリケーションApp#1(521)のストリームヘッドをストリームヘッドグループから除去することができる。
図6は、本発明が適用される実施形態であって、同伴デバイス(companion device)と放送受信デバイスとの間のアプリケーション連結のための過程を説明するためのフローチャートを示す。
本実施形態は、同伴デバイスが放送受信デバイスのアプリケーションを始めるように制御した場合とか、または前記放送受信デバイスのアプリケーションと関係なく、前記同伴デバイスのアプリケーションが始まった場合に行われることができる。
このような方法は、前記放送受信デバイス上で実行中であるアプリケーションと通信するか、コンテンツ同期化を望む他のデバイスにより行われることができる。
例えば、同伴デバイスと放送受信デバイスとの間にネットワークで連結されている場合、前記同伴デバイスは、前記放送受信デバイスにアプリケーション情報を取得するための要求メッセージを送信できる(S610)。
前記要求メッセージに応答して、前記同伴デバイスは、前記放送受信デバイスからアプリケーション情報を含む応答メッセージを受信できる(S620)。
ここで、前記アプリケーション情報は、アプリケーション間の通信のための住所情報とデバイス間シンクのためのシンク住所情報を含むことができる。例えば、前記アプリケーション間の通信のための住所情報は、ウェブソケットサーバURLを表し、前記シンク住所情報は、デバイス間シンクのために用いられるURLを表すことができる。
前記応答メッセージは、XMLタイプの情報を含むことができ、前記XMLタイプの情報は、必須要素及び属性情報を含むことができ、追加的に付加要素をさらに含むことができる。このとき、前記付加要素は、前記アプリケーション間の通信のための住所情報及びデバイス間シンクのためのシンク住所情報のうち、少なくとも1つを含むことができる。
図7は、本発明が適用される実施形態であって、同伴デバイス(companion device)により放送受信デバイスのアプリケーションを実行する過程を説明するためのフローチャートを示す。
デバイス間アプリケーションを介しての連結は、いずれか1つのデバイスの要求により始まることができる。
例えば、同伴デバイスは、特定プロトコルを介して他のデバイスのアプリケーションの開始を要求できる。このとき、前記要求は、前記他のデバイスのアプリケーションリソースURLに要求メッセージを送信することにより行われることができる。前記アプリケーションリソースURLは、サービス探索メカニズムにより取得されることができる。
具体的な例として、同伴デバイスと放送受信デバイスとの間にネットワークで連結されている場合、前記同伴デバイスは、前記放送受信デバイスのアプリケーション住所を取得できる(S710)。このとき、前記放送受信デバイスのアプリケーション住所は、サービス探索メカニズムにより取得されることができる。
前記同伴デバイスは、前記取得された放送受信デバイスのアプリケーション住所に前記放送受信デバイスのアプリケーション実行を要求する要求メッセージを送信できる(S720)。
このとき、前記要求メッセージのボディデータは、XMLタイプのアプリケーション情報テーブルを含むことができ、前記アプリケーション情報テーブルは、前記放送受信デバイスのアプリケーションに関する説明情報を含むことができる。例えば、前記アプリケーション情報テーブルは、アプリケーション識別子、アプリケーション説明情報のタイプ、制御コード、及びバージョン情報のうち、少なくとも1つを含むことができる。
前記同伴デバイスは、前記要求メッセージに応答して、前記放送受信デバイスから応答メッセージを受信できる(S730)。ここで、前記応答メッセージは、アプリケーションの実行に対する状態を表すコード情報を含むことができる。前記コード情報については、図8において具体的に説明する。
図8は、本発明が適用される実施形態であって、アプリケーション実行要求メッセージに対する応答コードを示す。
アプリケーション実行を要求する要求メッセージを受信したデバイスは、図8のような応答コードを含む応答メッセージを送信できる。
例えば、前記応答コードは、アプリケーションの実行が成功であることを表す応答コード、アプリケーションの実行が失敗であることを表す応答コードを含むことができる。また、前記失敗であることを表す応答コードは、失敗理由によって他の応答コードを有することができる。
前記図8に示すように、応答コード「201 Running」は、アプリケーションが成功裏に実行されたことを表すコードであり(S810)、応答コード「401 Unauthorized」は、アプリケーションがユーザにより始まることができないことを表すコードであり(S820)、応答コード「403 Forbidden」は、アプリケーションがデバイスにより始まることができないことを表すコードであり(S830)、応答コード「500 Error」は、アプリケーションがデバイスの状態により始まることができないことを表すコードである(S840)。
図9〜図13は、本発明が適用される実施形態であって、デバイス間アプリケーション連結のためのメッセージにアプリケーション情報を挿入する種々の方法を示す。
図9は、アプリケーション情報をデバイス間アプリケーション連結のためのメッセージのサービスリストセクションに挿入する方法を示す。
まず、デバイス間アプリケーション連結のためのメッセージは、デバイスセクション(S910)とサービスリストセクションとを含むことができ、前記サービスリストセクションは、サービスタイプによるサービス(S920、S930)を含むことができる。
例えば、S920サービスの場合、アプリケーション管理サービスに関する情報を含み、S930サービスの場合、連結設定サービスに関する情報を含むことができる。
このとき、前記図6の実施形態で説明したアプリケーション間の通信のための住所情報は、前記連結設定サービスセクションに含まれることができる。例えば、S940のように、「<ApptoAppConnectionAddress(or ApptoAppEndPoint)>URL for App−to−App Connection」のように挿入されることができる。
そして、デバイス間シンクのためのシンク住所情報も前記連結設定サービスセクションに含まれることができる。このとき、前記シンク住所情報は、システム同期化のための住所情報及びコンテンツ同期化のための住所情報のうち、少なくとも1つを含むことができる。
例えば、S950及びS960をみると、各々「<SystemSyncEndPoint>URL for System Synchronization」及び「<ContentSyncEndPoint>URL for Content Synchronization」のように挿入されることができる。
図10は、アプリケーション情報をデバイス間アプリケーション連結のためのメッセージのデバイスセクションに挿入する方法を示す。
前記デバイスセクションは、デバイスタイプ情報と住所情報とを含むことができる。
前記デバイスタイプ情報は、メインデバイス、スクリーンデバイス、同伴デバイスのうち、いずれか1つを表すことができる(S1010)。
そして、前記図6の実施形態で説明したアプリケーション間の通信のための住所情報は、前記デバイスセクションに含まれることができる。例えば、S1020のように、「<ApptoAppConnectionAddress(or ApptoAppEndPoint)>URL for App−to−App Connection」のように挿入されることができる。
そして、デバイス間シンクのためのシンク住所情報も前記デバイスセクションに含まれることができる。このとき、前記シンク住所情報は、システム同期化のための住所情報及びコンテンツ同期化のための住所情報のうち、少なくとも1つを含むことができる。
例えば、S1030及びS1040をみると、各々「<SystemSyncEndPoint>URL for System Synchronization」及び「<ContentSyncEndPoint>URL for Content Synchronization」のように挿入されることができる。
図11は、アプリケーション住所情報をアプリケーションメッセージのデバイスセクションに挿入する方法を示す。
例えば、前記アプリケーション住所情報は、アプリケーション開始のための住所情報、アプリケーション停止のための住所情報、またはアプリケーションモニタリングのための住所情報のうち、少なくとも1つを含むことができる。
前記アプリケーション住所情報のうち、少なくとも1つは、前記デバイスセクションに含まれることができ、例えば、S1110をみると、「<AppLaunchAddress>URL for Launching/Stopping/Monitoring</AppLaunchAddress>」のように挿入されることができる。
図12は、デバイスタイプがHbbTV(Hybrid Broadcast Broadband TV)である場合、アプリケーション情報をアプリケーションメッセージのサービスリストセクションに挿入する方法を示す。
例えば、サービスタイプが「urn:hbbtv:service:HbbTVCompanionScreen:1」である場合、前記図6の実施形態で説明したアプリケーション間の通信のための住所情報は、サービスセクションに含まれることができる。例えば、S1210をみると、「<X_HbbTV_App2AppURL xmlns=”urn:hbbtv:HbbTVCompanionScreen”>URL of App2Appcommunication service endpoint」のように挿入されることができる。
そして、デバイス間シンクのためのシンク住所情報も前記デバイスセクションに含まれることができる。このとき、前記シンク住所情報は、メディア同期化のための住所情報及び時間同期化のための住所情報のうち、少なくとも1つを含むことができる。
例えば、S1220及びS1230をみると、各々「<X_HbbTV_MediaSyncURL xmlns=”urn:hbbtv:HbbTVCompanionScreen”>URL of Media Sychronisation communication service endpoint」及び「<X_HbbTV_TimeSyncURL xmlns=”urn:hbbtv:HbbTVCompanionScreen”>URL of Time Sychronisation communication service endpoint」のように挿入されることができる。
また、アプリケーション開始のための住所情報も前記サービスセクションに挿入することができる。例えば、S1240をみると、「<X_HbbTV_AppLaunchURL xmlns=”urn:hbbtv:HbbTVCompanionScreen”>URL of Application Launch service endpoint」のように挿入されることができる。
図13は、デバイスタイプがHbbTV(Hybrid Broadcast Broadband TV)である場合、アプリケーション情報をアプリケーションメッセージのデバイスセクションに挿入する方法を示す。
S1310をみると、「<X_HbbTV_App2AppURL xmlns=”urn:hbbtv:HbbTVCompanionScreen”>URL of App2App communication service endpoint」のように挿入されることができ、S1320及びS1330をみると、各々「<X_HbbTV_MediaSyncURL xmlns=”urn:hbbtv:HbbTVCompanionScreen”>URL of Media Sychronisation communication service endpoint」及び「<X_HbbTV_TimeSyncURL xmlns=”urn:hbbtv:HbbTVCompanionScreen”>URL of Time Sychronisation communication service endpoint」のように挿入されることができる。
また、S1340をみると、アプリケーション開始のための住所情報も、「<X_HbbTV_AppLaunchURL xmlns=”urn:hbbtv:HbbTVCompanionScreen”>URL of Application Launch service endpoint」のように挿入されることができる。
本発明が適用される他の実施形態として、同伴デバイス(companion device)と放送受信デバイスとの間のアプリケーション連結のための過程を説明する。
同伴デバイスは、放送受信デバイスにアプリケーション識別子リストを取得するための第1の要求メッセージを送信できる。例えば、前記第1の要求メッセージは、GetAppIDList()アクションに表現されることができ、前記要求メッセージは、検索情報と検索フィールド情報とを含むことができる。
前記同伴デバイスは、前記第1の要求メッセージを送信することにより、前記検索情報にマッチングされるアプリケーションが存在するか否かを決定できる。
前記第1の要求メッセージに応答して、前記同伴デバイスは、前記放送受信デバイスから特定アプリケーションの識別子を受信できる。ここで、前記特定アプリケーションの識別子は、前記検索情報にマッチングされる特定アプリケーションを識別できる。
前記同伴デバイスは、前記特定アプリケーションの識別子に基づいて、特定アプリケーション情報を取得できる。このとき、前記特定アプリケーション情報は、特定アプリケーション情報を取得するための第2の要求メッセージを送信することにより取得されることができる。例えば、前記第2の要求メッセージは、GetAppInfoByID()アクションに表現されることができ、前記第2の要求メッセージは、前記特定アプリケーションの識別子を含むことができる。前記特定アプリケーション情報は、前記アプリケーション識別子により識別されるアプリケーションの情報を表し、前記特定アプリケーション情報は、ウェブソケット住所または実行状態情報のうち、少なくとも1つを含むことができる。また、前記特定アプリケーション情報は、XML形態の文書でありうるし、前記放送受信デバイスのアプリケーション情報を含むことができる。ここで、アプリケーション情報は、本明細書において説明される他の実施形態が適用され得る。
前記特定アプリケーション情報に基づいて、前記同伴デバイスと放送受信デバイスとの間のアプリケーション連結を行うことができる。このとき、前記アプリケーション連結は、ウェブソケットサーバに基づくことができる。
本発明が適用される他の実施形態として、同伴デバイス(companion device)と放送受信デバイスとの間のウェブソケットサーバを介して連結する過程を説明する。
同伴デバイスは、特定プロトコル名称にマッチングされるアプリケーションが存在するか否かを決定できる。このとき、前記決定は、アプリケーション識別子リストを取得するための要求メッセージを送信することにより行われることができる。
前記特定プロトコル名称にマッチングされるアプリケーションが存在する場合、前記同伴デバイスは、ウェブソケット住所または実行状態情報のうち、少なくとも1つを取得できる。
前記同伴デバイスは、前記ウェブソケット住所または前記実行状態情報のうち、少なくとも1つに基づいてウェブソケット連結を設定できる。
前記設定されたウェブソケット連結に基づいて、前記同伴デバイスと前記放送受信デバイスとは通信を行うことができる。
図14は本発明が適用される実施形態であって、UPnP(Universal Plug and Play)メカニズムを説明するためのブロックダイアグラムを示す。
本発明で提案するUPnPアクションは、デバイス間の通信の多様な方式の例の1つであって、UPnP探索(Discovery)及び説明情報(Description information)転送過程で獲得した制御URLを示す。前記UPnPアクションは、HTTPで定義したPOST方式を使用して、実際に伝達しようとするデータをHTTP POSTメッセージボディー(body)にXMLの形態に伝達することができる。UPnPプロトコルの場合、各アクションに対してアクション名称(action name)を定義して使用し、XML形態に伝達されるHTTP POSTメッセージボディー(body)にアクション名称(action name)も共に伝達されるため、通信対象デバイスに対するURLが1つのみ存在し、HTTP POST方式1つだけ使用しても無限の種類のアクション(メッセージ)の交換が可能である。
図15は本発明が適用される実施形態であって、REST(REpresentational State Transfer)メカニズムを説明するためのブロックダイアグラムを示す。
例えば、本発明で提案するデバイス間の通信は、HTTP方式のうち、POSTだけでなく、GET、HEAD、PUT、DELETE、TRACE、OPTIONS、CONNECT、PATCHなどのいろいろな方式を活用し、通信対象デバイスに接近する複数のURIを定義すれば、アクション名称(action name)の定義無しでも適用できる。伝達が必要なデータは該当URIに付加して伝達されることができ、あるいはHTTPボディー(body)に多様な形態に含まれて伝達できる。但し、このようなREST方式に必要な複数のURI値は探索(Discovery)及び説明情報(Description information)転送過程で獲得できる。
図16は本発明が適用される実施形態であって、UPnP(Universal Plug and Play)AV(Audio-Visual)ネットワークの概略的な構成図を示す。
汎用プラグアンドプレイ(universal plug and play;以下、‘UPnP’という)技術とディジタルリビングネットワークアライアンス(digital living network alliance;以下、‘DLNA’という)技術は、多様な製造業体の家電デバイス間のサービスと制御を可能にする。特に、UPnP技術は視聴覚(audio-visual;AV)デバイス間の互換可能なAVサービスと制御を可能にする。この互換可能なAVサービスには、メディアストリーミング、アップローディング、ダウンローディングなどがある。
ホームネットワーキングのために提案されたUPnP基盤のネットワークは、論理的に多数のUPnPデバイス(device)、サービス(service)、及び制御ポイント(CP:Control Point)を基本に構成される。UPnPネットワークにおけるサービス(service)とは、ネットワーク上の最も小さな小規模制御単位を意味するが、状態変数を通じてモデリングされる。
UPnP基盤のネットワークにおける制御ポイント(Control Point)とは、他のデバイス及び/又はサービスを感知し制御する機能を備えた制御アプリケーション(application)を意味し、任意のデバイス、例えばユーザが取り扱いやすいモバイルデバイスのような物理的なデバイスで運用できる。
UPnP基盤のAVホームネットワークは、ホームネットワークにメディアデータを提供するメディアサーバー(MS:Media Server)、ホームネットワークを介してメディアデータを再生するメディアレンダラー(MR:Media Renderer)、及び前記メディアサーバーとメディアレンダラーを制御するAV制御ポイント(CP:Control Point)を含んで構成される。前記メディアサーバーとメディアレンダラーは、前記制御ポイントにより制御される被制御(controlled)デバイスである。
前記メディアサーバー(正確にはメディアサーバー内のCDS(Content Directory Service))は、自身に収録されているメディアファイルとコンテナ(ディレクトリに該当)の情報を各オブジェクト(object)情報として予め構築しておく。‘オブジェクト’は1つ以上のメディアファイル、例えば停止映像(picture)、動映像、またはオーディオファイルに対する情報を有するアイテム(item)及び、ディレクトリに対する情報を有するコンテナ(container)を包括して称する用語であり、場合によって、オブジェクトの用語は適切に‘アイテム’または‘コンテナ’と称する用途として使用できる。
そして、1つのアイテムは1つまたは多数のメディアファイルに対応する。例えば、それぞれ異なるビットレートの同一内容のコンテンツを有する多数のメディアファイルは1つのアイテムに管理できる。
オブジェクトの情報は‘メタデータ’とも呼称され、このメタデータには、関連されたコンテンツに対する各種の情報が記載される。例えば、コンテンツに対応するオブジェクトに割り当てられたID、そのオブジェクトが属するコンテナに対する識別情報、タイトル、そのオブジェクトがアイテムかコンテナかに対する情報及びメディアの類型、関連したコンテンツ(例えば、メディアファイル)を獲得できるプロトコル及びアクセス位置情報などがメタデータに記載される。そして、このようなメタデータはマークアップ(mark-up)言語形態に作成され、関連したメディアファイルなどが格納されているストレージとは関わらず、前記CDSが管理するストレージに格納される。勿論、移動性記録媒体に格納されて前記CDSに提供されることもできる。このように作成されているコンテンツに対するメタデータは、前記制御ポイントが呼び出すアクションに従って提供され、また前記制御ポイントを媒介にしてメタデータの全部または一部が前記メディアレンダラーに提供されることもできる。
本発明において、UPnPはこのような装置を制御ポイント(control point:CP)装置と制御ターゲット装置に分類できる。ディジタルメディアコントローラ(DMC)、ディジタルメディアプレーヤー(DMP)は制御ポイント装置に分類され、ディジタルメディアレンダラー(DMR)、ディジタルメディアサーバー(DMS)、ディジタルメディアプリンタ(DMPr)は、制御ターゲット装置に分類できる。
また、UPnPの制御ポイント(CP)装置またはDLNAのディジタルメディアプレーヤー(DMP)、ディジタルメディアコントローラ(DMC)がUPnPの制御ターゲット装置またはDLNAのディジタルメディアサーバー(DMS)にコンテンツメタデータを要求すれば、制御ターゲット装置またはディジタルメディアサーバー(DMS)は格納されたコンテンツの各々に対応する複数のコンテンツメタデータを収集して(生成したコンテンツリストを)制御ポイント(CP)装置またはディジタルメディアプレーヤー(CMP)、ディジタルメディアコントローラ(DMC)に転送することができる。
一方、DLNAはホームネットワーク装置として、ディジタルメディアサーバー(digital media server:DMS)、ディジタルメディアプレーヤー(digital media player:DMP)、ディジタルメディアレンダラー(digital media renderer:DMR)、ディジタルメディアコントローラ(digital media controller:DMC)、及びディジタルメディアプリンタ(digital media printer:DMPr)を規定し、モバイル携帯装置として、モバイルディジタルメディアサーバー(mobile digital media server:M−DMS)、モバイルディジタルメディアプレーヤー(mobile digital media player:M−DMP)、モバイルディジタルメディアアップローダー(mobile digital media uploader:M−DMU)、モバイルディジタルメディアダウンローダー(mobile digital media downloader:M−DMD)、及びモバイルディジタルメディアコントローラ(mobile digital media controller:M−DMC)を規定することができる。以下、ディジタルメディアサーバー(DMS)はM−DMSをカバーする概念として使用し、ディジタルメディアプレーヤー(DMP)はM−DMPをカバーする概念として使用し、ディジタルメディアコントローラ(DMC)はM−DMCをカバーする概念として使用できる。
また、DLNAは2ボックスモデル(2 Box Model)と3ボックスモデル(3 Box Model)として定義できる。2ボックスモデルはディジタルメディアプレーヤー(DMP)とディジタルメディアサーバー(DMS)を含む。2ボックスモデルでディジタルメディアプレーヤー(DMP)はユーザがディジタルメディアサーバー(DMS)によりブラウジングされ(browsed)配布される(distributed)コンテンツを探して再生できるようにする。3ボックスモデルはディジタルメディアコントローラ(DMC)、ディジタルメディアサーバー(DMS)、ディジタルメディアレンダラー(DMR)を含む。3ボックスモデルで、ディジタルメディアコントローラ(DMC)はユーザがディジタルメディアレンダラー(DMR)で再生されるディジタルメディアサーバー(DMS)のコンテンツを探すことができるようにする。
UPnP基盤のAVネットワークは、図16に示すように、ネットワークにメディアデータを提供するメディアサーバー(MS:Media Server)1620と、ネットワークを介してメディアデータを再生するメディアレンダラー(MR:Media Renderer)1630と、前記メディアサーバー1620とメディアレンダラー1630を制御する制御ポイント(CP:Control Point)1610を含んで構成できる。前記メディアサーバー1620とメディアレンダラー1630は前記制御ポイント1610により制御される被制御(controlled)機器である。
前記メディアサーバー1620は、CDS(Content Directory Service)部1621、連結管理部(Connection Manager)1622、及び転送部(AV Transport)1623を含むことができる。
前記メディアサーバー1620が前記制御ポイント1610にディレクトリ情報を知らせるために、UPnPアクション(action)、例えばブラウジング(browsing)アクションがある度に自身のファイルシステムを用いてメディアファイルに対する情報を知らせることができる。そして、前記制御ポイント1610のユーザインターフェースを介して選択されたメディアファイルのデータは、前記メディアサーバー1620と前記メディアレンダラー1630との間にストリーミング(streaming)方式により転送されて前記メディアレンダラー1630を通じて再生できる。
この際、前記ストリーミング方式は既に公知されている多様な方式のうち、如何なる方式も使用可能である。例えば、前記ストリーミング方式は帯域外転送プロトコル(Out-of-Band transfer protocol)を用いることができる。具体的な例に、メディア転送にリアルタイム転送プロトコル(Real-time Transport Protocol:RTP)を使用する場合には、リアルタイム制御プロトコル(Real Time Control Protocol:RTCP)を用いてメディアデータの転送状態を監視することができ、これに基づいて転送パラメータ(parameter)を調整することができる。
一方、前記制御ポイント1610は前記メディアサーバー1620と前記メディアレンダラー1630を制御することができ、例えば、標準化されたSOAP(Simple Object Access Protocol)基盤に提供されるUPnPアクションを呼び出すことにより遂行できる。また、前記制御ポイント1610はデバイスが提供するイベントサービスに加入してデバイスの状態情報変化の報告を受けることができる。
前記メディアサーバー1620は、自身が管理するメディアデータを探索するサービスを提供するコンテンツディレクトリ(Content Directory)サービス1621と、他機器、即ち前記メディアレンダラー1630とのコネクションを管理する連結管理(Connection Manager)サービス1622と、メディアの再生に対するコントロール、例えば再生(Play)、中止(Stop)のようなコントロールを可能にするAV転送(Audio-Visual Transport)サービス1623を含むことができる。
前記メディアレンダラー1630は、メディアのプレゼンテーション時の画面の明るさ、明度などの制御を可能にするレンダリング制御(Rendering Control)サービス1631と、他機器とのコネクションを管理する連結管理(Connection Manager)サービス1632、及びAV転送(AV Transport)サービス1633を含むことができる。
前記制御ポイント1610は、前記メディアサーバー1620のコンテンツディレクトリ(Content Directory)サービス1621を用いてサーバー内のメディアファイル情報を確認することができる。この情報に基づいてユーザが特定メディアファイルを選択すれば、各機器の連結管理(Connection Manager)サービス1622、1632を通じて前記メディアサーバー1620と前記メディアレンダラー1630との間にメディア転送のための連結を結ぶようにすることができる。そして、前記AV転送サービス(1623または1633)を用いて該当メディアファイルの再生(play)コントロールのための変数を設定した後、再生アクションを前記メディアサーバー(pushモードの場合)、または前記メディアレンダラー(pullモードの場合)に要求することによって、再生がなされるようにする。再生中には、前記メディアレンダラー1630のレンダリング制御(Rendering Control)サービス1631を通じて画面の明るさや明度、ボリュームなどを調節することが可能である。
そして、前記AVコントロールポイント1610はメディアサーバー1620のコンテンツが変更されるか、または現在メディアストリーム(stream)の状態変化などの情報を、各サービスが提供するイベントに加入することによって、モニタリングすることもできる。
したがって、ユーザはホームネットワークを介して複数の機器、即ち複数のレンダラーでメディアの再生を要求することもでき、1つのレンダラーを通じてメディアを視聴する途中に場所を移して、その場所にあるレンダラーを通じて視聴していたメディアを続いて視聴することができる。
図17は本発明が適用される一実施形態であって、マルチスクリーンサービス(Multi-Screen Service)が適用されるUPnP(Universal Plug and Play)AV(Audio-Visual)ネットワークの一例を示す。
本発明が適用されるマルチスクリーンサービス(Multi-Screen Service)を提供するネットワークは多様なデバイスに連結されていることができる。例えば、前記図17のように、スマートフォン1710とTV1720をはじめとして、コンピュータ、カメラ、プリンタ、電子額縁など、相互サービス(interactive service)が可能な電子機器が連結されている場合、前記マルチスクリーンサービス(Multi-Screen Service)の提供が可能である。
ここで、前記マルチスクリーンサービス(Multi-Screen Service)とは、多様なディスプレイデバイス(various display devices)の間に提供される時間に敏感な両方向サービス(time-sensitive and interactive service)を意味することができる。例えば、前記マルチスクリーンサービス(Multi-Screen Service)は具現特定アプリケーション(implementation-specific application)を含むことができる。
図18及び図19は本発明が適用される一実施形態であって、前記図18はマルチスクリーンサービス(Multi-Screen Service)が適用される基本アーキテクチャーを示し、前記図19は拡張されたマルチスクリーンサービス(extended Multi-Screen Service)が適用されるアーキテクチャーを示す。
マルチスクリーンサービス(Multi-Screen Service)を提供するネットワークに多様なデバイスが連結されていると仮定する。ネットワーク上に連結されたデバイスは、特定アプリケーションの役割及び/又は使用法によりメインスクリーンデバイス(main screen device)とコンパニオンスクリーンデバイス(companion screen device)とに分類(categorize)されて説明できる。
まず、メインスクリーンデバイス(main screen device)はコンパニオンスクリーンデバイス(companion screen device)により制御されるデバイスを示す。例えば、前記メインスクリーンデバイスは、TV、セットトップボックス(set-top box)などのリーンバック(lean-back)ディスプレイデバイスを含むことができる。また、如何なるディスプレイデバイスも使用シナリオによって前記メインスクリーンデバイスになることができ、例えば、スマートフォン、タブレットのようなデバイスも前記メインスクリーンデバイスになることができる。
コンパニオンスクリーンデバイス(companion screen device)は、メインスクリーンデバイス(main screen device)を制御するデバイスを示す。例えば、前記コンパニオンスクリーンデバイスは、スマートフォン、タブレットなどのリーンフォワード(lean-forward)ディスプレイデバイスや小型ディスプレイデバイス(handheld display device)を含むことができる。また、如何なるディスプレイデバイスも使用シナリオによって前記メインスクリーンデバイスになることができ、例えば、TV、セットトップボックス(set-top box)のようなデバイスも前記コンパニオンスクリーンデバイスになることができる。
前記図18はネットワーク上に連結された多様なデバイスのうちの2つのデバイス、例えば、コンパニオンスクリーンデバイス(companion screen device)1810とメインスクリーンデバイス(main screen device)1820に基づいて、両方向サービスを提供するための構造を示す。ここで、前記コンパニオンスクリーンデバイス(companion screen device)1810はスクリーンコントロールポイント(screen control point)1811として動作されることができ、前記メインスクリーンデバイス(main screen device)1820はスクリーンデバイス(screen device)1821として動作できる。例えば、前記図18を説明すると、前記コンパニオンスクリーンデバイス(companion screen device)1810は、前記メインスクリーンデバイス(main screen device)1820を制御するためのアクションを転送することができ、前記メインスクリーンデバイス(main screen device)1820は、前記コンパニオンスクリーンデバイス(companion screen device)1810にイベントメッセージを転送するか、または前記アクションに対する応答メッセージを転送することができる。この際、前記コンパニオンスクリーンデバイス(companion screen device)1810はスクリーンコントロールポイント(screen control point)1811として動作し、前記メインスクリーンデバイス(main screen device)1820はスクリーンデバイス(screen device)1812として動作するものである。
延いては、本発明は拡張されたマルチスクリーンサービス(extended Multi-Screen Service)を提供することができる。ここで、前記拡張されたマルチスクリーンサービス(extended Multi-Screen Service)はより精巧な相互動作(more sophisticated interactions)を必要とするサービスを意味することができる。
前記図19はネットワーク上の連結された2つのデバイス、例えば、コンパニオンスクリーンデバイス(companion screen device)1910とメインスクリーンデバイス(main screen device)1920に基づいて、拡張されたマルチスクリーンサービス(extended Multi-Screen Service)を提供するための構造を示す。
例えば、前記図19を説明すると、前記第1スクリーンコントロールポイント(screen control point)1911と前記第1スクリーンデバイス(screen device)1912との間の動作は、前記図18で説明した通りである。延いては、前記メインスクリーンデバイス(main screen device)1920は前記コンパニオンスクリーンデバイス(companion screen device)1910を制御するためのアクションを転送することができ、前記コンパニオンスクリーンデバイス(companion screen device)1910は前記メインスクリーンデバイス(main screen device)1920にイベントメッセージを転送するか、または前記アクションに対する応答メッセージを転送することができる。この場合、前記メインスクリーンデバイス(main screen device)1920は第2スクリーンコントロールポイント(screen control point)1911として動作し、前記コンパニオンスクリーンデバイス(companion screen device)1910は第2スクリーンデバイス(screen device)1912として動作するものである。
即ち、前記コンパニオンスクリーンデバイス(companion screen device)1910は前記メインスクリーンデバイス(main screen device)1920に対応して、第1スクリーンコントロールポイント(screen control point)1911として動作されることができ、また第2スクリーンデバイス(screen device)1912として動作できる。そして、前記メインスクリーンデバイス(main screen device)1920も前記コンパニオンスクリーンデバイス(companion screen device)1910に対応して、第1スクリーンデバイス(screen device)1921として動作されることができ、または第2スクリーンコントロールポイント(screen control point)1922として動作できる。
一方、スクリーンデバイス(screen device)とは、スクリーンコントロールポイント(screen control point)と共に遂行される、他のディスプレイデバイスに多様な両方向サービス(various interactive service)を提供するために用いられる要素(component)を意味することができる。前記スクリーンデバイスは、前記スクリーンコントロールポイントにより制御されて前記スクリーンコントロールポイントと相互動作をするようにデザインできる。
マルチスクリーンサービス(Multi-Screen Service)をサポートするためには、コンパニオンスクリーンデバイスにより制御されるメインスクリーンデバイス(例えば、TV、セットトップボックス(set-top box)などのリーンバック(lean-back)ディスプレイデバイス)で遂行されることが推奨される。
延いては、拡張されたマルチスクリーンサービス(extended Multi-Screen Service)をサポートするためには、メインスクリーンデバイスを制御するコンパニオンスクリーンデバイス(例えば、スマートフォン、タブレットなどのリーンフォワード(lean-forward)ディスプレイデバイスや小型ディスプレイデバイス(handheld display device))でもまた遂行されることが推奨される。
そして、スクリーンコントロールポイント(screen control point)とは、スクリーンデバイス(screen device)と共に遂行される、他のディスプレイデバイスに多様な両方向サービス(various interactive service)を提供するために用いられる要素(component)を示す。前記スクリーンコントロールポイントは、ユーザの入力により前記スクリーンデバイスを制御して前記スクリーンデバイスと相互動作をするようにデザインできる。
マルチスクリーンサービス(Multi-Screen Service)をサポートするためには、メインスクリーンデバイスを制御するコンパニオンスクリーンデバイス(例えば、スマートフォン、タブレットなどのリーンフォワード(lean-forward)ディスプレイデバイスや小型ディスプレイデバイス(handheld display device))で遂行されることが推奨される。
延いては、拡張されたマルチスクリーンサービス(extended Multi-Screen Service)をサポートするためには、コンパニオンスクリーンデバイスにより制御されるメインスクリーンデバイス(例えば、TV、セットトップボックス(set-top box)などのリーンバック(lean-back)ディスプレイデバイス)でもまた遂行されることが推奨される。
例えば、前記図19を説明すると、前記メインスクリーンデバイス(main screen device)1920と前記コンパニオンスクリーンデバイス(companion screen device)1910は全てスクリーンデバイスとして動作できるだけでなく、スクリーンコントロールポイントとして動作されることもできる。
本発明では、新たな種類のサービスをネットワーク連結されたデバイスの間に連動させるために別途のプロトコル無しでアプリケーション形態に両方向サービスを提供するための方法及び装置を提供しようとする。より具体的に、マルチスクリーンサービス(Multi-Screen Service)を提供するネットワークにおけるアプリケーションを管理する方法及び装置を提供しようとする。
例えば、前記ネットワークに連結されたデバイスAとBを通じてユーザが如何なる両方向サービスXを利用しようとする時、該当サービスXを2つデバイスで常に実行しているように具現することができる。または、ユーザが2つデバイスで該当サービスXのためのアプリケーションを直接探して設置したり実行させたりする必要無しで、特定アプリケーションの設置及び/又は実行が必要であるかに対してデバイスがユーザに知らせることによって、ユーザは楽に該当サービスXを使用できるようになる。
他の例に、デバイスAとBは各々同一なアプリケーションを有していることもあり、そうでないこともある。同一なアプリケーションを有している場合、アプリケーション実行を通じてデバイスAとBは両方向サービスを提供することができる。同一なアプリケーションを有していない場合には、各デバイスでは必要なアプリケーションが何かを確認し、前記アプリケーションをダウンロード及び/又は実行して両方向サービスを提供することができる。
また、本発明は、1つのデバイスを通じて他のデバイスのアプリケーションを設置、実行、実行中止、削除などの管理を可能にすることで、ユーザの便宜性を高めることができる。
また、本発明は、許可された特定のユーザまたはデバイスのみ該当サービスXを利用できるようにID及びパスワードを含んでメッセージを転送することができる。
また、本発明は、デバイスに設置されたアプリケーション間の連結を遂行する方法を提供する。例えば、相互作用が可能なアプリケーションがデバイスAとBに設置された場合、2つデバイスA、Bは相互作用のために必要な情報を共有することができ、前記情報を共有することによって、アプリケーション間の直接的なコミュニケーションが可能である。
また、1つのデバイスは他のデバイスと複数の連結を構成することができる。この際、前記他のデバイスは1つのデバイス、または複数のデバイスでありうる。デバイスは前記複数の連結を同時にサポートすることができ、前記複数の連結を制御することができる。また、前記複数の連結のうち、特定連結に対する情報または全ての連結に対する情報は更に他のデバイスが知ることができるように転送できる。
本発明は、許可された特定ユーザまたは特定デバイスのみ本明細書で説明される実施形態を遂行するように許容されることができ、このためにメッセージにID及びパスワードを含んで転送することができる。
本発明は、ネットワーク連結されたデバイス間の両方向サービスを用いるためにユーザはアプリケーション管理サービスに加入することができる。また、別途の権限設定過程を通じて、ユーザのアプリケーション管理サービスに対する使用権限を許容または制限することができる。
本発明は、ネットワーク連結されたデバイス間の時間に敏感な両方向サービス(time-sensitive interactive service)を用いるために、デバイス間の同期化過程が必要である。例えば、基本クロック同期化及びコンテンツ同期化のような同期化メカニズムが必要である。
本発明は、ディスカバリーメカニズムを通じてアプリケーション管理サービス(application management service)、連結設定サービス(connection establishment service)、同期化サービス(synchronization service)をサポートするデバイスをネットワーク上で発見することができる。そして、説明メカニズム(description mechanism)を通じて各サービスに対する付加的な情報をデバイス間に交換することができる。
以下、各図面の説明を通じて前記実施形態に対して詳細に説明する。多様な実施形態で重複する内容は省略されることがあり、本明細書内で用いられる用語や実施形態に対する具体的な説明は他の実施形態でも適用可能である。
図20は本発明が適用される一実施形態であって、マルチスクリーンサービス(Multi-Screen Service)が適用されるデバイスの概略的な構造を示す。
前記図20はマルチスクリーンサービス(extended Multi-Screen Service)を提供するコンパニオンスクリーンデバイス(companion screen device)2010とメインスクリーンデバイス(main screen device)2020の内部ブロック図を示す。
前記コンパニオンスクリーンデバイス(companion screen device)2010は、ディスプレイ2011、ユーザインターフェース2012、コントローラ2013、ネットワークインターフェース2014、メモリ2015、ストレージ2016、マルチメディア部2017、及び電源供給部2018を含むことができる。
前記ディスプレイ2011は、ネットワークインターフェース2014を介して受信されたデータまたはストレージ2016に格納されているデータを前記コントローラ2013の制御により画面上にディスプレイする。
前記ユーザインターフェース2012はユーザから入力される信号を前記コントローラ2013に転送し、前記コントローラ2013から制御される信号を前記ディスプレイ2011を通じて出力することによって、ユーザに情報を提供する通路の役割をする。
前記コントローラ2013は前記コンパニオンスクリーンデバイス(companion screen device)2010の全般的な動作を制御する役割をし、本明細書で説明される多様な実施形態は前記コントローラ2013を通じて遂行できる。
前記ネットワークインターフェース2014は、命令(command)、要求(request)、アクション(action)、応答(response)、イベントメッセージ、広告メッセージ、データのうち、少なくとも1つが含まれたメッセージを外部デバイスから受信するか、または外部デバイスに転送することができる。また、前記ネットワークインターフェース2014は前記コンパニオンスクリーンデバイス(companion screen device)2010の物理的要素でありうる。
前記メモリ2015は多様な種類のデバイスに具現される選択的な装置であって、多様な種類のデータが臨時に格納できる。例えば、前記メモリ2015は揮発性の物理的装置でありうる。
前記ストレージ2016は、多様な種類の情報を格納することができる。例えば、前記ストレージ2016はSDカードのような不揮発性の物理的装置でありうる。前記ストレージ2016は、コンテンツ格納部(図示せず)、メタデータ格納部(図示せず)、バッファ(図示せず)を含むことができる。コンテンツ格納部(図示せず)は、メディアコンテンツデータを格納することができる。メタデータ格納部(図示せず)は、コンテンツに関する付加情報を示すメタデータを格納することができる。メタデータ格納部(図示せず)は、メタデータを分類して格納することができる。バッファ(図示せず)は、多様な種類のデータを臨時に格納することができる。
前記マルチメディア部2017は多様な種類のマルチメディア再生のための装置であって、格納されたコンテンツを再生するか、または外部から受信したコンテンツを再生することができる。前記マルチメディア部2017は前記コントローラ2013内に具現されることができ、または前記コントローラ2013と別途に具現されることもできる。
前記電源供給部2018は前記コントローラ2013の制御により外部の電源、または内部の電源の印加を受けて各構成要素の動作に必要な電源を供給する。
そして、メインスクリーンデバイス(main screen device)2020は、ディスプレイ2021、ユーザインターフェース2022、コントローラ2023、ネットワークインターフェース2024、メモリ2025、ストレージ2026、マルチメディア部2027、及び電源供給部2028を含むことができる。前記メインスクリーンデバイス(main screen device)2020内の各構成要素は、前記コンパニオンスクリーンデバイス(companion screen device)2010内の各構成要素と同一または類似の機能を遂行できるので、詳細な説明は省略する。
図21は本発明が適用される一実施形態であって、マルチスクリーンサービス(Multi-Screen Service)がスクリーンデバイスで始まる場合、デバイス間の相互作用を説明するためのフローチャートである。
スクリーンコントロールポイントは、マルチスクリーンサービスを提供するためにアプリケーション管理サービスに加入することができる(S2110)。
スクリーンデバイスは、前記スクリーンコントロールポイントがアプリケーション管理サービスに加入されていることを確認すれば、サービス初期化を遂行することができる(S2120)。
サービス初期化の以後、前記スクリーンデバイスは利用可能なアプリケーション情報を転送することができる(S2130)。この際、前記利用可能なアプリケーション情報は前記スクリーンデバイスにより直接イベントメッセージとして転送されるか、または前記スクリーンコントロールポイントの要求に対する応答メッセージとして転送できる。但し、この過程はアプリケーション間の連結のために必須でないことがある。
前記スクリーンコントロールポイントは、特定アプリケーション情報を前記スクリーンデバイスに要求することができる(S2140)。前記スクリーンデバイスは前記要求に応答して、前記特定アプリケーション情報を前記スクリーンコントロールポイントに転送することができる(S2140)。ここで、前記特定アプリケーション情報は、全体アプリケーション情報、または指定されたアプリケーションの情報でありうる。
前記スクリーンコントロールポイントは、前記特定アプリケーション情報を受信し、それに基づいてサービス提供のためのアプリケーションを設置し、これを実行することができる(S2150)。
前記アプリケーションが実行されれば、前記スクリーンコントロールポイントは前記スクリーンデバイスにアプリケーション間の連結を要求することができる(S2160)。この際、アプリケーション間の連結アクションが利用できる。前記スクリーンデバイスは前記要求に応答して、連結識別子を前記スクリーンコントロールポイントに転送することができる(S2160)。
前記のような過程を通じてアプリケーション間の連結が設定されれば、前記スクリーンコントロールポイントと前記スクリーンデバイスはアプリケーションを通じて通信を遂行することができる(S2170)。
以後、追加通信が必要なくなった場合、前記スクリーンコントロールポイントは前記スクリーンデバイスにアプリケーション間の連結解除を要求することができる(S2180)。この際、アプリケーション間の連結解除アクション(DisconnectApptoApp())が利用できる。前記スクリーンデバイスは、前記要求に応答して、連結解除情報を前記スクリーンコントロールポイントに転送することができる(S2180)。
図22は本発明が適用される一実施形態であって、マルチスクリーンサービス(Multi-Screen Service)がコントローラで始まる場合、デバイス間の相互作用を説明するためのフローチャートである。
スクリーンコントロールポイントは、マルチスクリーンサービスを提供するためにサービス初期化を遂行することができる(S2210)。
サービス初期化の以後、前記スクリーンコントロールポイントはアプリケーション情報を前記スクリーンデバイスに要求することができる(S2220)。この際、アプリケーション情報要求アクションが利用できる。前記スクリーンデバイスは前記要求に応答して、前記アプリケーション情報を前記スクリーンコントロールポイントに転送することができる(S2220)。
前記スクリーンコントロールポイントは、前記スクリーンデバイスにアプリケーション設置を要求することができる(S2230)。この際、アプリケーション設置アクションが用いられることができ、前記アクションはアプリケーション識別子に基づいて、または設置URI(Uniform Resource Identifier)に基づいて遂行できる。
前記スクリーンデバイスは前記アプリケーション設置要求によって、サービス提供のためのアプリケーションを設置することができる(S2240)。
そして、前記スクリーンコントロールポイントは前記スクリーンデバイスにアプリケーション活性化を要求することができる(S2250)。この際、アプリケーション活性化アクションが用いられることができ、前記アクションは活性化されるアプリケーション識別子を含むことができる。前記要求に基づいて、前記スクリーンデバイスはアプリケーションを実行することができる(S2260)。
前記のようにアプリケーションが実行されれば、前記スクリーンコントロールポイントは前記スクリーンデバイスにアプリケーション間の連結を要求することができる(S2270)。この際、アプリケーション間の連結アクションが利用できる。前記スクリーンデバイスは前記要求に応答して、連結識別子を前記スクリーンコントロールポイントに転送することができる(S2270)。
前記のような過程を通じてアプリケーション間の連結が設定されれば、前記スクリーンコントロールポイントと前記スクリーンデバイスはアプリケーションを通じて通信を遂行することができる(S2280)。
以後、追加通信が必要なくなった場合、前記スクリーンコントロールポイントは前記スクリーンデバイスにアプリケーション間の連結解除を要求することができる(S2290)。この際、アプリケーション間の連結解除アクションが利用できる。前記スクリーンデバイスは前記要求に応答して、連結解除情報を前記スクリーンコントロールポイントに転送することができる(S2290)。
図23は本発明が適用される一実施形態であって、デバイス間のアプリケーション連結を管理するための相互作用を説明するためのフローチャートである。
スクリーンコントロールポイントは、マルチスクリーンサービスを提供するためにスクリーンデバイスを探索することができる(S2310)。この際、探索アクションが利用できる。前記探索結果、スクリーンデバイスが探索されれば、探索されたスクリーンデバイスは前記探索アクションに対する応答メッセージを転送することができる。例えば、前記スクリーンデバイスは自身がスクリーンデバイスであることを広告(advertise)することができ、自身の情報を入れたデバイス説明文書(device description document)に接近できるアドレスを広告することができる(S2320)。
そして、前記スクリーンデバイスは前記スクリーンコントロールポイントに説明情報を転送することができる(S2330)。例えば、前記説明情報は、基本的なデバイス情報、自身がどんなデバイスなのかに対する情報(例えば、スクリーンデバイス、スクリーンコントロールポイントなど)、自身が提供することができるサービスに対する情報(例えば、アプリケーション管理サービス、アプリケーション連結サービスなど)を含むことができる。
スクリーンコントロールポイントは、マルチスクリーンサービスを提供するためにアプリケーション管理サービスに加入することができる(S2340)。但し、スクリーンデバイスからのイベントメッセージ受信が必要でない場合、前記スクリーンコントロールポイントは前記アプリケーション管理サービスに加入しないことがある。このような場合、前記スクリーンコントロールポイントは周期的に前記スクリーンデバイスに関連した情報を確認する必要がある。
前記スクリーンデバイスはアプリケーション情報を前記スクリーンコントロールポイントに転送することができる(S2350)。ここで、前記アプリケーション情報は前記スクリーンデバイスの全体アプリケーション情報、または指定されたアプリケーションの情報でありうる。
図24は本発明が適用される一実施形態であって、外部サーバーからコンテンツが提供される場合、コンテンツと共に用いられるアプリケーションを制御する過程を説明するためのフローチャートである。
スクリーンデバイスは外部サーバーからコンテンツの提供を受けることができ、また、前記コンテンツを用いるためには特定アプリケーションが必要である。ここで、前記コンテンツは放送コンテンツ、またはインターネットからダウンロードすることができるコンテンツでありうる。
前記スクリーンデバイスは、外部サーバーから利用可能な特定アプリケーションに対する情報を受信することができる(S2410)。
前記スクリーンデバイスは、前記情報を受信する場合、特定サービスが特定アプリケーションと共に利用可能であることをディスプレイすることができる(S2420)。そして、前記スクリーンデバイスは前記特定アプリケーションを活性化させることができる(S2430)。前記活性化は前記スクリーンデバイスにより自動的に遂行されるか、またはユーザ入力により遂行できる。
前記スクリーンデバイスは、マルチスクリーンサービスを提供するために、前記特定アプリケーション情報をスクリーンコントロールポイントに転送することができる(S2440)。
図25は本発明が適用される一実施形態であって、デバイス間のアプリケーション連結のために必要な認証過程を説明するためのフローチャートである。
スクリーンデバイスは認証される必要があるスクリーンコントロールポイントのみにイベントメッセージを転送することができる(S2510)。例えば、認証が必要なスクリーンコントロールポイントが存在する場合、スクリーンデバイスは認証変数値を変更し、変更された値を前記スクリーンコントロールポイントに転送する。この際、前記認証変数値はスクリーン上にディスプレイできる(S2520)。
一方、前記スクリーンコントロールポイントは前記イベントメッセージを受信すれば、認証が必要であることを認識することができる。そして、前記スクリーンコントロールポイントは前記スクリーンデバイスにピンコード(pin-code)認証を要求することができる。この際、前記要求はピンコード認証アクションにより遂行できる。前記ピンコード認証アクションはアクション転送デバイスを認証するか、またはアクション転送デバイスのユーザを認証するために用いられる。
前記スクリーンデバイスは、前記ピンコード認証アクションを受信すれば、受信されたピンコードが前記スクリーンデバイスのピンコードと同一か否かを確認することができる(S2540)。
仮に、アクション転送デバイスにより転送されたピンコードがアクション受信デバイスに表示されたピンコードと同一であれば、前記アクション転送デバイスは認証され、そうでない場合には認証が拒絶される(S2550)。
一方、前記ピンコードのような認証情報は限定された時間の間のみに有効である。例えば、サービス加入が満了する場合やサービス加入されていない場合、前記スクリーンコントロールポイントは、またサービスを加入する時、また認証手続きを経なければならない。
図26は本発明が適用される一実施形態であって、デバイス間のアプリケーション連結を通じて同期化された通信を遂行する過程を説明するためのフローチャートである。
スクリーンコントロールポイントは、スクリーンデバイスにアプリケーション活性化を要求することができる(S2610)。この際、アプリケーション活性化アクションが用いられることができ、前記アクションは活性化されるアプリケーション識別子を含むことができる。前記要求に基づいて、前記スクリーンデバイスはアプリケーションを実行することができる。
上記のようにアプリケーションが実行されれば、前記スクリーンコントロールポイントは、前記スクリーンデバイスにアプリケーション連結情報を要求することができる(S2620)。この際、連結情報獲得アクションが利用できる。前記スクリーンデバイスは前記要求に応答して、連結情報を前記スクリーンコントロールポイントに転送することができる。ここで、前記連結情報はアプリケーション情報リストの特定部分を含むことができる。前記連結情報はアプリケーション間の情報(apptoappinfo)を示すことができ、例えば、前記アプリケーション間の情報(apptoappinfo)は特定プロトコル名称情報、転送プロトコル情報、及び連結アドレス情報のうち、少なくとも1つを含むことができる。ここで、前記連結アドレス情報はアプリケーション間の通信のためのアクセス情報を意味することができる。
前記スクリーンコントロールポイントは、前記連結情報に基づいて、前記スクリーンデバイスにアプリケーション間の連結を要求することができる(S2630)。この際、アプリケーション間の連結アクションが利用できる。前記スクリーンデバイスは前記要求に応答して、連結識別子を前記スクリーンコントロールポイントに転送することができる。
前記のような過程を通じてアプリケーション間の連結が設定されれば(S2640)、前記スクリーンコントロールポイントと前記スクリーンデバイスはアプリケーション間のシステム同期化及び/又はコンテンツ同期化を遂行することができる(S2650)。
そして、前記スクリーンコントロールポイントと前記スクリーンデバイスはアプリケーションを通じて同期化された通信を遂行することができる(S2660)。
図27から図43は本発明が適用される一実施形態であって、アプリケーション管理のために必要とするアクション(actions)とそのアーギュメント(argument)を示す。
前記図27から図43に記載されたアクション名称は一実施形態に過ぎず、本発明はアクション名称に限定されて解析されず、本明細書で説明される意味として解析されなければならない。そして、アーギュメントの方向(direction)のうち、“IN”は入力情報として解析されることができ、“OUT”は出力情報として解析されることができる。
図27は本発明が適用される実施形態であって、第1アプリケーション情報獲得アクションとそのアーギュメントを示す。
前記第1アプリケーション情報獲得アクションは、スクリーンコントロールポイントをしてアプリケーション識別子により特定されたアプリケーション情報を獲得することを可能にすることができる。そして、前記第1アプリケーション情報獲得アクションの名称はSearchAppInfo()またはGetAppInfo()として表示できる(2700)。
前記第1アプリケーション情報獲得アクションのアーギュメントは、アプリケーション識別子2710、基準情報2720、デバイスプロファイル情報2730、フィルター情報2740、及びアプリケーション情報2750のうち、少なくとも1つを含むことができる。
ここで、前記アプリケーション識別子2710は情報を獲得しようとするアプリケーションを識別する情報を示す。例えば、特定値“XYZ”が入力されれば、前記特定値“XYZ”により識別されるアプリケーションを示し、特定値“*”または“(empty string)”が入力されれば、アプリケーション情報リストの全てのアプリケーションを意味することができる。
前記基準情報2720は、アプリケーションの状態を区別するための情報を示す。例えば、前記基準情報2720は利用可能なアプリケーションの情報なのか、活性化アプリケーションの情報なのか、または特定アプリケーションの情報なのかを区別することができる。
前記デバイスプロファイル情報2730は、該当デバイスのプロファイル情報を示す。例えば、前記デバイスプロファイル情報が解像度“1920x1080”を示す場合、前記解像度を満たすアプリケーション情報を獲得することができる。
前記フィルター情報2740は、特定条件を満たすアプリケーション情報を獲得するために用いられる情報を示す。
前記アプリケーション情報2750は多様なアクション内のアーギュメントに対するタイプ情報を示す。例えば、前記アプリケーション情報2750はアプリケーション情報リスト変数の特定部分でありうる。前記アプリケーション情報リスト変数は、図44で詳細に説明する。
前記図27の実施形態は、前記図20の構成要素により遂行できる。例えば、第1スクリーンデバイス2010のコントローラ2013は、ネットワークインターフェース2014を介して前記第1アプリケーション情報獲得アクションを第2スクリーンデバイス2020に転送することができる。
前記第2スクリーンデバイス2020のコントローラ2023は、ネットワークインターフェース2024を介して前記第1アプリケーション情報獲得アクションを受信することができる。そして、前記第2スクリーンデバイス2020のコントローラ2023は、前記第1アプリケーション情報獲得アクションに応答して、前記第1スクリーンデバイス2010にアプリケーション情報を転送することができる。この際、前記アプリケーション情報は前記第1アプリケーション情報獲得アクションの入力情報に基づいて決定された特定アプリケーションに関する情報でありうる。前記入力情報は、アプリケーション識別子2710、基準情報2720、デバイスプロファイル情報2730、またはフィルター情報2740のうち、少なくとも1つを含むことができる。
図28は本発明が適用される実施形態であって、第2アプリケーション情報獲得アクションとそのアーギュメントを示す。
前記第2アプリケーション情報獲得アクションは、スクリーンコントロールポイントをしてアプリケーション識別子により特定されたアプリケーション情報のみを獲得することを可能にすることができる。そして、前記第2アプリケーション情報獲得アクションの名称はSimpleGetAppInfo()として表示できる(2800)。
前記第2アプリケーション情報獲得アクションのアーギュメントは、アプリケーション識別子2810及びアプリケーション情報2820のうち、少なくとも1つを含むことができる。
ここで、前記アプリケーション識別子2810と前記アプリケーション情報2820は前記図21の説明が適用できる。
前記図28の実施形態は、前記図20の構成要素により遂行できる。例えば、第1スクリーンデバイス2010のコントローラ2013はネットワークインターフェース2014を介して前記第2アプリケーション情報獲得アクションを第2スクリーンデバイス2020に転送することができる。
前記第2スクリーンデバイス2020のコントローラ2023は、ネットワークインターフェース2024を介して前記第2アプリケーション情報獲得アクションを受信することができる。そして、前記第2スクリーンデバイス2020のコントローラ2023は、前記第2アプリケーション情報獲得アクションに応答して、前記第1スクリーンデバイス2010にアプリケーション情報を転送することができる。この際、前記アプリケーション情報は前記第2アプリケーション情報獲得アクションの入力情報に基づいて決定された特定アプリケーションに関する情報でありうる。前記入力情報はアプリケーション識別子2810を含むことができる。
図29は本発明が適用される実施形態であって、利用可能なアプリケーション情報獲得アクションとそのアーギュメントを示す。
前記利用可能なアプリケーション情報獲得アクション2900は、アクション受信デバイスから利用可能なアプリケーションの情報を獲得することを可能にすることができる。そして、前記利用可能なアプリケーション情報獲得アクション2900の名称はGetAvailableApp()として表示できる(2900)。
前記利用可能なアプリケーション情報獲得アクション2900のアーギュメントは、アプリケーション識別子2910、基準情報2920、デバイスプロファイル情報2930、フィルター情報2940、及び利用可能なアプリケーション情報2950のうち、少なくとも1つを含むことができる。
ここで、前記アプリケーション識別子2910、前記基準情報2920、前記デバイスプロファイル情報2930、及び前記フィルター情報2940は、前記図27で説明した内容が適用できる。
前記利用可能なアプリケーション情報2950は、マルチスクリーンサービスを提供するために利用可能なアプリケーションの情報を意味することができる。
前記図29の実施形態は前記図20の構成要素により遂行できる。例えば、第1スクリーンデバイス2010のコントローラ2013は、ネットワークインターフェース2014を介して利用可能なアプリケーション情報獲得アクション2000を第2スクリーンデバイス2020に転送することができる。
前記第2スクリーンデバイス2020のコントローラ2023は、ネットワークインターフェース2024を介して前記利用可能なアプリケーション情報獲得アクション2000を受信することができる。そして、前記第2スクリーンデバイス2020のコントローラ2023は、前記利用可能なアプリケーション情報獲得アクション2900に応答して、前記第1スクリーンデバイス2010に利用可能なアプリケーション情報を転送することができる。この際、前記利用可能なアプリケーション情報は、前記第2アプリケーション情報獲得アクションの入力情報に基づいて決定できる。前記入力情報は、前記アプリケーション識別子2910、前記基準情報2920、前記デバイスプロファイル情報2930、及び前記フィルター情報2940のうち、少なくとも1つを含むことができる。
図30は本発明が適用される実施形態であって、実行アプリケーション情報獲得アクション(running application information obtaining action)とそのアーギュメントを示す。
前記実行アプリケーション情報獲得アクション3000は、スクリーンコントロールポイントをして実行中のアプリケーションのリストを獲得することを可能にすることができる。そして、前記実行アプリケーション情報獲得アクション3000の名称はGetRunningApp()として表示できる(3000)。
前記実行アプリケーション情報獲得アクション3000のアーギュメントは実行中のアプリケーション情報3010を含むことができる。
ここで、前記実行中のアプリケーション情報3010は、実行中のアプリケーションのリストを意味することができる。例えば、前記実行中のアプリケーション情報3010は、アプリケーション情報リストに含まれた変数“実行状態情報(“RunningStatus”)が実行中(Running)”に設定されたアプリケーションの識別子のリストを意味することができる。
前記図30の実施形態は、前記図20の構成要素により遂行できる。例えば、第1スクリーンデバイス2010のコントローラ2013は、ネットワークインターフェース2014を介して実行アプリケーション情報獲得アクション3000を第2スクリーンデバイス2020に転送することができる。
前記第2スクリーンデバイス2020のコントローラ2023は、ネットワークインターフェース2024を介して前記実行アプリケーション情報獲得アクション3000を受信することができる。そして、前記第2スクリーンデバイス2020のコントローラ2023は、前記実行アプリケーション情報獲得アクション3000に応答して、前記第1スクリーンデバイス2010に実行中のアプリケーション情報を転送することができる。
図31は本発明が適用される実施形態であって、実行状態情報獲得アクション(running status information obtaining action)とそのアーギュメントを示す。
前記実行状態情報獲得アクション3100は、スクリーンコントロールポイントをしてアプリケーション識別子により特定されたアプリケーションの実行状態情報を獲得することを可能にすることができる。そして、前記実行状態情報獲得アクション3100の名称はGetRunningStatus()として表示できる(3100)。
前記実行状態情報獲得アクション3100のアーギュメントはアプリケーション識別子3110と実行状態情報3120を含むことができる。
ここで、前記アプリケーション識別子3110は実行状態情報を獲得するためのアプリケーションを示し、先の実施形態で説明した内容が同様に適用できる。
前記実行状態情報(“RunningStatus”)3120は、アプリケーション情報リストの特定部分を示すことができる。前記実行状態情報3120は、前記アプリケーション識別子3110により特定されたアプリケーションの要素、その属性及びその実行状態要素を含むことができる。
前記図31の実施形態は前記図20の構成要素により遂行できる。例えば、第1スクリーンデバイス2010のコントローラ2013はネットワークインターフェース2014を介して実行状態情報獲得アクション3100を第2スクリーンデバイス2020に転送することができる。
前記第2スクリーンデバイス2020のコントローラ2023は、ネットワークインターフェース2024を介して前記実行状態情報獲得アクション3100を受信することができる。そして、前記第2スクリーンデバイス2020のコントローラ2023は、前記実行状態情報獲得アクション3100に応答して、前記第1スクリーンデバイス2010に実行中のアプリケーションの実行状態情報3120を転送することができる。
図32は本発明が適用される実施形態であって、第1アプリケーション活性化アクションとそのアーギュメントを示す。
前記第1アプリケーション活性化アクション3200は、スクリーンデバイス上でアプリケーション情報リストに含まれたアプリケーションを実行するようにすることができる。前記アプリケーションは、アプリケーション識別子により識別できる。その上、前記第1アプリケーション活性化アクション3200は実行中のアプリケーションの活性化パラメータ情報を提供するために用いられることもできる。そして、前記第1アプリケーション活性化アクション3200の名称はActivateAppByID()として表示できる(3200)。
前記第1アプリケーション活性化アクション3200のアーギュメントは、アプリケーション識別子3210とパラメータ情報3220を含むことができる。
ここで、前記アプリケーション識別子3210は活性化されるアプリケーションを示し、先の実施形態で説明した内容が同様に適用できる。
前記パラメータ情報3220はパラメータタイプを示すことができ、例えば、前記パラメータタイプは活性化パラメータ情報または設置パラメータ情報のうちの1つを示すことができる。
前記図32の実施形態は、前記図20の構成要素により遂行できる。例えば、第1スクリーンデバイス2010のコントローラ2013はネットワークインターフェース2014を介して第1アプリケーション活性化アクション3200を第2スクリーンデバイス2020に転送することができる。
前記第2スクリーンデバイス2020のコントローラ2023は、ネットワークインターフェース2024を介して前記第1アプリケーション活性化アクション3200を受信することができる。そして、前記第2スクリーンデバイス2020のコントローラ2023は、前記第1アプリケーション活性化アクション3200に応答して、前記第2スクリーンデバイス2020内のアプリケーションを活性化することができる。
図33は本発明が適用される実施形態であって、第2アプリケーション活性化アクションとそのアーギュメントを示す。
前記第2アプリケーション活性化アクション3300は、スクリーンデバイス上でURIを用いてアプリケーションを実行するようにすることができる。その上、前記第2アプリケーション活性化アクション3300は転移ペンディング入力(transitioning pending input)中のアプリケーションの活性化パラメータ情報を提供するために利用できる。そして、前記第2アプリケーション活性化アクション3300の名称はActivateAppByURI()として表示できる(3300)。
前記第2アプリケーション活性化アクション3300のアーギュメントは、活性化URI情報3310、アプリケーション情報3320、パラメータ情報3330、及びアプリケーション識別子3340のうち、少なくとも1つを含むことができる。
ここで、前記活性化URI情報3310はアプリケーションを始めるURI情報を示す。
前記アプリケーション情報3320はアプリケーション情報リスト変数の特定部分を示し、始まるアプリケーションの付加情報を提供することができる。例えば、ユーザにより設定された名称を含むことができる。
前記パラメータ情報3330はパラメータタイプを示すことができ、例えば、前記パラメータタイプは活性化パラメータ情報または設置パラメータ情報のうちの1つを示すことができる。
前記アプリケーション識別子3340は新しく割り当てられたアプリケーション識別子を示すか、または前記活性化URI情報3310と同一なURIを有するアプリケーションの識別子を示すことができる。仮に、アプリケーションが設置されず、URIを用いて始まることができ、スクリーンデバイスのアプリケーション情報リスト変数内に前記活性化URI情報3310がなければ、スクリーンデバイスは前記第2アプリケーション活性化アクション3300を通じてアプリケーションを始めることができる。
例えば、前記第2アプリケーション活性化アクション3300を受信すれば、前記スクリーンデバイスはアプリケーション情報リストに新たなアプリケーション要素を生成することができる。この際、前記新たなアプリケーション要素は、活性化URI情報と付加情報を含むことができる。そして、アプリケーション識別子に新たな値を割り当てて、前記新たな値を前記アプリケーション識別子3340を通じて出力(return)することができる。
前記図33の実施形態は、前記図20の構成要素により遂行できる。例えば、第1スクリーンデバイス2010のコントローラ2013は、ネットワークインターフェース2014を介して第2アプリケーション活性化アクション3300を第2スクリーンデバイス2020に転送することができる。
前記第2スクリーンデバイス2020のコントローラ2023は、ネットワークインターフェース2024を介して前記第2アプリケーション活性化アクション3300を受信することができる。そして、前記第2スクリーンデバイス2020のコントローラ2023は、前記第2アプリケーション活性化アクション3300に応答して、前記第2スクリーンデバイス2020内のアプリケーションを活性化することができる。即ち、前記コントローラ2023はアプリケーションを始めるURI情報に基づいてアプリケーションを活性化することができる。活性化されたアプリケーションはディスプレイ2021を通じて出力できる。
図34は本発明が適用される実施形態であって、不活性化アクションとそのアーギュメントを示す。
前記不活性化アクション3400は、スクリーンデバイス上でアプリケーション識別子により指定されたアプリケーションを停止するようにすることができる。前記不活性化アクション3400の名称はDeactivateApp()として表示できる(3400)。
前記不活性化アクション3400のアーギュメントはアプリケーション識別子3410と停止されたアプリケーション識別子3420を含むことができる。
ここで、前記アプリケーション識別子3410は不活性化されるアプリケーションを示し、先の実施形態で説明した内容が同様に適用できる。
前記停止されたアプリケーション識別子3420は、停止されたアプリケーションの識別子のリストを示す。
前記図34の実施形態は、前記図20の構成要素により遂行できる。例えば、第1スクリーンデバイス2010のコントローラ2013は、ネットワークインターフェース2014を介して不活性化アクション3400を第2スクリーンデバイス2020に転送することができる。
前記第2スクリーンデバイス2020のコントローラ2023は、ネットワークインターフェース2024を介して前記不活性化アクション3400を受信することができる。そして、前記第2スクリーンデバイス2020のコントローラ2023は、前記不活性化アクション3400に応答して、前記第2スクリーンデバイス2020内のアプリケーションを停止することができる。前記停止されたアプリケーションは、ユーザインターフェース2012、2022を介してユーザにより制御できる。
図35は本発明が適用される実施形態であって、第1アプリケーション設置アクションとそのアーギュメントを示す。
前記第1アプリケーション設置アクション3500は、スクリーンデバイス上でアプリケーション情報リストに含まれた情報を用いてアプリケーションを設置するようにすることができる。その上、前記第1アプリケーション設置アクション3500は設置ペンディング入力(installation pending input)中のアプリケーションの設置パラメータ情報を提供するために用いられることもできる。また、最新バージョンが存在する場合、設置されたアプリケーションを前記最新バージョンにアップデートするために用いられることもできる。一方、前記第1アプリケーション設置アクション3500の名称はInstallAppByID()として表示できる(3500)。
前記第1アプリケーション設置アクション3500のアーギュメントは、アプリケーション識別子3510とパラメータ情報3520を含むことができる。
ここで、前記アプリケーション識別子3510は設置されるアプリケーションを示し、先の実施形態で説明した内容が同様に適用できる。
前記パラメータ情報3520はパラメータタイプを示すことができ、例えば、前記パラメータタイプは活性化パラメータ情報または設置パラメータ情報のうちの1つを示すことができる。
前記図35の実施形態は、前記図20の構成要素により遂行できる。例えば、第1スクリーンデバイス2010のコントローラ2013は、ネットワークインターフェース2014を介して第1アプリケーション設置アクション3500を第2スクリーンデバイス2020に転送することができる。この際、前記第1アプリケーション設置アクション3500は、入力情報としてアプリケーション識別子3510とパラメータ情報3520を含むことができる。
前記第2スクリーンデバイス2020のコントローラ2023は、ネットワークインターフェース2024を介して前記第1アプリケーション設置アクション3500を受信することができる。そして、前記第2スクリーンデバイス2020のコントローラ2023は、前記第1アプリケーション設置アクション3500に応答して、アプリケーションを設置することができる。
図36は本発明が適用される実施形態であって、第2アプリケーション設置アクションとそのアーギュメントを示す。
前記第2アプリケーション設置アクション3600は、スクリーンデバイス上でURIを用いてアプリケーションを設置するようにすることができる。その上、前記第2アプリケーション設置アクション3600は、設置ペンディング入力(installing pending input)中のアプリケーションの設置パラメータ情報を提供するために利用できる。そして、前記第2アプリケーション設置アクション3600の名称はInstallAppByURI()として表示できる(3600)。
前記第2アプリケーション設置アクション3600のアーギュメントは、設置URI情報3610、アプリケーション情報3620、パラメータ情報3630、及びアプリケーション識別子3640のうち、少なくとも1つを含むことができる。
ここで、前記設置URI情報3610はアプリケーションを設置するURI情報を示す。
前記アプリケーション情報3620はアプリケーション情報リスト変数の特定部分を示し、設置されるアプリケーションの付加情報を提供することができる。例えば、ユーザにより設定された名称を含むことができる。
前記パラメータ情報3630はパラメータタイプを示すことができ、例えば、前記パラメータタイプは活性化パラメータ情報または設置パラメータ情報のうちの1つを示すことができる。
前記アプリケーション識別子3640は新しく割り当てられたアプリケーション識別子を示すか、または前記設置URI情報3610と同一なURIを有するアプリケーションの識別子を示すことができる。仮に、スクリーンデバイスのアプリケーション情報リスト変数内に前記設置URI情報3610がなければ、前記第2アプリケーション設置アクション3600はスクリーンデバイス上でアプリケーションを設置するようにすることができる。
例えば、第2スクリーンデバイス2020のコントローラ2023はネットワークインターフェース2024を介して前記第2アプリケーション設置アクション3600を受信すれば、前記コントローラ2023はアプリケーション情報リスト変数内に新たなアプリケーション要素を生成することができる。この際、前記新たなアプリケーション要素は設置URI情報と付加情報を含むことができる。そして、前記コントローラ2023はアプリケーション識別子に新たな値を割り当てて、前記新たな値を前記アプリケーション識別子3640を通じて出力(return)することができる。前記コントローラ2023はネットワークインターフェース2024を介して第1スクリーンデバイス2010に新たな値に割り当てられた前記アプリケーション識別子3640を転送することができる。
図37は本発明が適用される実施形態であって、削除(uninstallation)アクションとそのアーギュメントを示す。
前記削除アクション3700は、スクリーンデバイス上でアプリケーション識別子により指定されたアプリケーションを削除するようにすることができる。前記削除アクション3700の名称はUninstallApp()として表示できる(3700)。
前記削除アクション3700のアーギュメントはアプリケーション識別子2210と削除されたアプリケーション識別子3720を含むことができる。
ここで、前記アプリケーション識別子3710は削除されるアプリケーションを示し、先の実施形態で説明した内容が同様に適用できる。
前記削除されたアプリケーション識別子3720は、削除されたアプリケーションの識別子のリストを示す。
前記図37の実施形態は、前記図20の構成要素により遂行できる。例えば、第1スクリーンデバイス2010のコントローラ2013はネットワークインターフェース2014を介して削除アクション3700を第2スクリーンデバイス2020に転送することができる。この際、前記削除アクション3700は入力情報としてアプリケーション識別子3710を含むことができる。
前記第2スクリーンデバイス2020のコントローラ2023は、ネットワークインターフェース2024を介して前記削除アクション3100を受信することができる。そして、前記第2スクリーンデバイス2020のコントローラ2023は、前記削除アクション3700に応答して、前記第1スクリーンデバイス2010に削除されたアプリケーションの識別子を転送することができる。
図38は本発明が適用される実施形態であって、設置状態情報獲得アクション(installation status information obtaining action)とそのアーギュメントを示す。
前記設置状態情報獲得アクション3800は、スクリーンコントロールポイントをしてアプリケーション識別子により特定されたアプリケーションの設置状態情報を獲得することを可能にすることができる。そして、前記設置状態情報獲得アクション3800の名称はGetAppInstallationStatus()として表示できる(3800)。
前記設置状態情報獲得アクション3800のアーギュメントは、アプリケーション識別子3810と設置状態情報3820を含むことができる。
ここで、前記アプリケーション識別子3810は設置状態情報を獲得するためのアプリケーションを示し、先の実施形態で説明した内容が同様に適用できる。
前記設置状態情報(“InstallationStatus”)3820は、アプリケーション情報リストの特定部分を示すことができる。前記設置状態情報3820は、前記アプリケーション識別子3810により特定されたアプリケーションの要素、その属性、及びその設置状態要素を含むことができる。例えば、前記設置状態要素は“設置完了”、“ダウンロード進行中”、及び“設置進行中”を含むことができる。
前記図38の実施形態は、前記図20の構成要素により遂行できる。例えば、第1スクリーンデバイス2010のコントローラ2013はネットワークインターフェース2014を介して設置状態情報獲得アクション3800を第2スクリーンデバイス2020に転送することができる。この際、前記設置状態情報獲得アクション3800は、入力情報としてアプリケーション識別子3810を含むことができる。
前記第2スクリーンデバイス2020のコントローラ2023は、ネットワークインターフェース2024を介して前記設置状態情報獲得アクション3800を受信することができる。そして、前記第2スクリーンデバイス2020のコントローラ2023は、前記設置状態情報獲得アクション3800に応答して、前記第1スクリーンデバイス2010に“設置完了”、“ダウンロード進行中”、及び“設置進行中”のうち、いずれか1つの設置状態情報を転送することができる。
図39は本発明が適用される実施形態であって、連結情報獲得アクション(connection information obtaining action)とそのアーギュメントを示す。
前記連結情報獲得アクション3900は、スクリーンコントロールポイントをしてアプリケーション識別子により特定されたアプリケーションの連結情報を獲得することを可能にすることができる。そして、前記連結情報獲得アクション3900の名称はGetAppConnectionInfo()として表示できる(3900)。
前記連結情報獲得アクション3900のアーギュメントは、アプリケーション識別子3910と連結情報3920を含むことができる。
ここで、前記アプリケーション識別子3910は連結情報を獲得するためのアプリケーションを示し、先の実施形態で説明した内容が適用できる。
前記連結情報3920は、アプリケーション情報リストの特定部分を示すことができる。前記連結情報3920は、前記アプリケーション識別子3910により特定されたアプリケーションの要素、その属性、及びそのアプリケーション間の情報要素を含むことができる。例えば、前記アプリケーション間の情報要素は特定プロトコル名称情報、転送プロトコル情報、及び連結アドレス情報のうち、少なくとも1つを含むことができる。ここで、前記連結アドレス情報はアプリケーション間の通信のためのアクセス情報を意味することができる。
前記図39の実施形態は、前記図20の構成要素により遂行できる。例えば、第1スクリーンデバイス1310のコントローラ2013は、ネットワークインターフェース2014を介して連結情報獲得アクション3900を第2スクリーンデバイス2020に転送することができる。この際、前記連結情報獲得アクション3900は入力情報としてアプリケーション識別子3910を含むことができる。
前記第2スクリーンデバイス2020のコントローラ2023は、ネットワークインターフェース2024を介して前記連結情報獲得アクション3900を受信することができる。そして、前記第2スクリーンデバイス2020のコントローラ2023は、前記連結情報獲得アクション3900に応答して、前記第1スクリーンデバイス2010に連結情報3920、例えば、特定プロトコル名称情報、転送プロトコル情報、及び連結アドレス情報のうち、少なくとも1つを転送することができる。
前記連結情報3920に基づいて、前記第1スクリーンデバイス2010と前記第2スクリーンデバイス2020は、ネットワークインターフェース2014、2024を介して連結されて相互間の通信を遂行できるようになる。
図40は本発明が適用される実施形態であって、アプリケーション間の連結アクション(apptoapp connection action)とそのアーギュメントを示す。
前記アプリケーション間の連結アクション4000は、スクリーンデバイスとアプリケーションとの間の連結を設定するために用いられ、連結管理を可能にする。前記アプリケーション間の連結アクション4000の名称はConnectApptoApp()として表示できる(4000)。
前記アプリケーション間の連結アクション4000のアーギュメントは、アプリケーション識別子4010と連結識別子4020を含むことができる。
ここで、前記アプリケーション識別子4010はスクリーンデバイスとアプリケーションとの間の連結を設定するためのアプリケーションを示す。
前記連結識別子4020は設定されたアプリケーション間の連結識別子を示し、これはスクリーンデバイスにより割り当てられることができる。
前記図40の実施形態は、前記図20の構成要素により遂行できる。例えば、第1スクリーンデバイス2010のコントローラ2013は、ネットワークインターフェース2014を介してアプリケーション間の連結アクション4000を第2スクリーンデバイス2020に転送することができる。この際、前記アプリケーション間の連結アクション4000は入力情報としてアプリケーション識別子4010を含むことができる。
前記第2スクリーンデバイス2020のコントローラ2023は、ネットワークインターフェース2024を介して前記アプリケーション間の連結アクション4000を受信することができる。そして、前記第2スクリーンデバイス2020のコントローラ2023は、前記アプリケーション間の連結アクション4000に応答して、前記第1スクリーンデバイス2010に連結識別子4020を転送することができる。
前記連結識別子4020に基づいて、前記第1スクリーンデバイス2010と前記第2スクリーンデバイス2020はマルチスクリーンサービス提供のための連結を遂行することができる。
図41は本発明が適用される実施形態であって、アプリケーション間の連結解除アクション(apptoapp disconnection action)とそのアーギュメントを示す。
前記アプリケーション間の連結解除アクション4100は、連結識別子により特定されたアプリケーション間の連結をスクリーンデバイスから解除するために利用できる。前記アプリケーション間の連結解除アクション4100の名称はDisconnectApptoApp()として表示できる(4100)。
前記アプリケーション間の連結解除アクション4100のアーギュメントは、連結識別子4110と連結解除された連結識別子4120を含むことができる。
ここで、前記連結識別子4110は連結解除される連結を示し、前記連結解除された連結識別子4120は連結解除されたアプリケーション間の連結識別子リストを示す。
前記図41の実施形態は、前記図20の構成要素により遂行できる。例えば、第1スクリーンデバイス2010のコントローラ2013は、ネットワークインターフェース2014を介してアプリケーション間の連結解除アクション4100を第2スクリーンデバイス2020に転送することができる。この際、前記アプリケーション間の連結解除アクション4100は入力情報として連結識別子4110を含むことができる。
前記第2スクリーンデバイス2020のコントローラ2023は、ネットワークインターフェース2024を介して前記アプリケーション間の連結解除アクション4100を受信することができる。そして、前記第2スクリーンデバイス2020のコントローラ2023は、前記アプリケーション間の連結解除アクション4100に応答して、前記第1スクリーンデバイス2010に連結解除された連結識別子4120を転送することができる。
前記連結解除された連結識別子4120に基づいて、前記第1スクリーンデバイス2010と前記第2スクリーンデバイス2020との間の連結は解除される。
図42は本発明が適用される実施形態であって、現在連結情報獲得アクション(current connection information obtaining action)とそのアーギュメントを示す。
前記現在連結情報獲得アクション4200は、スクリーンコントロールポイントをしてアプリケーション間の連結アクションにより設立され、現在スクリーンデバイスがサポートしているアプリケーション間の連結の情報を収集するようにする。前記現在連結情報獲得アクション4200の名称はGetCurentConnectionInfo()として表示できる(4200)。
前記現在連結情報獲得アクション4200のアーギュメントは、連結識別子4210と連結アプリケーション識別子4220を含むことができる。
ここで、前記連結識別子4210は現在アプリケーション間の連結識別子を示すことができる。
前記連結アプリケーション識別子4220は、アプリケーション間の連結に対応するアプリケーション識別子を示すことができる。
前記図42の実施形態は、前記図20の構成要素により遂行できる。例えば、第1スクリーンデバイス2010のコントローラ2013は、ネットワークインターフェース2014を介して現在連結情報獲得アクション4200を第2スクリーンデバイス2020に転送することができる。この際、前記現在連結情報獲得アクション4200は入力情報として連結識別子4210を含むことができる。
前記第2スクリーンデバイス2020のコントローラ2023は、ネットワークインターフェース2024を介して前記現在連結情報獲得アクション4200を受信することができる。そして、前記第2スクリーンデバイス2020のコントローラ2023は、前記現在連結情報獲得アクション4200に応答して、前記第1スクリーンデバイス2010にアプリケーション間の連結に対応するアプリケーション識別子を転送することができる。
図43は本発明が適用される実施形態であって、検索フィールド獲得アクション(searchable field obtaining action)とそのアーギュメントを示す。
前記検索フィールド獲得アクション4300は、スクリーンコントロールポイントをしてサポートされる検索フィールド情報を獲得するようにすることができる。前記検索フィールド獲得アクション4300の名称はGetSupportedTargetFields()として表示できる(4300)。
前記検索フィールド獲得アクション4300のアーギュメントは、サポートされる検索フィールド情報4310を含むことができる。ここで、前記サポートされる検索フィールド情報4310は、検索可能なフィールドのリストを示し、これはスクリーンデバイスのアプリケーション情報リストの要素でありうる。前記サポートされる検索フィールド情報4310は、ユーザにより作られたアプリケーション名称及びプロトコル名称のうち、少なくとも1つを含むことができる。
前記図43の実施形態は、前記図20の構成要素により遂行できる。例えば、第1スクリーンデバイス2010のコントローラ2013は、ネットワークインターフェース2014を介して検索フィールド獲得アクション4300を第2スクリーンデバイス2020に転送することができる。
前記第2スクリーンデバイス2020のコントローラ2023は、ネットワークインターフェース2024を介して前記検索フィールド獲得アクション4300を受信することができる。そして、前記第2スクリーンデバイス2020のコントローラ2023は、前記検索フィールド獲得アクション4300に応答して、前記第1スクリーンデバイス2010にサポートされる検索フィールド情報3710、例えば、ユーザにより作られたアプリケーション名称及びプロトコル名称のうち、少なくとも1つを転送することができる。
図44は本発明が適用される一実施形態であって、アプリケーション管理のために必要な状態変数を示す。
本発明において、アプリケーション管理のために必要な状態変数は、アプリケーション情報リスト4401、利用可能なアプリケーション情報4402、検索フィールド情報4403、アプリケーション識別子4404、検索情報4405、検索フィールド情報4406、フィルター情報4407、実行中のアプリケーションリスト4408、URI情報4409、パラメータ情報4410、連結識別子4411のうち、少なくとも1つを含むことができる。
前記アプリケーション情報リスト4401は、スクリーンデバイスがマルチスクリーンサービスのために有しているアプリケーションの全体情報を含むことができる。前記アプリケーション情報リスト4401は、XMLテンプレートで表現されることができ、サブ要素構造を含むことができる。
例えば、前記アプリケーション情報リスト4401はアプリケーション要素を含むことができ、アプリケーション要素が複数個の場合、各アプリケーション別にその属性とサブ要素を含む構造で示すことができる。
前記アプリケーション要素は、アプリケーション識別子、マーケットアプリケーション識別子要素、ユーザ説明要素、代替識別子要素、機能要素、実行状態要素、活性化URI要素、設置状態要素、ダウンロード進行状態要素、設置進行状態要素、設置URI要素、使用政策要素、アプリケーション間の情報要素、及びアイコンリスト要素のうち、少なくとも1つを含むことができる。
前記アプリケーション識別子は、アプリケーション管理サービス内のアプリケーションの固有識別子を示す。
前記マーケットアプリケーション識別子要素は、アプリケーションマーケットにより割り当てられたアプリケーションの識別子を示し、マーケット情報とバージョン情報を含むことができる。ここで、前記マーケット情報はアプリケーションが提供されるディジタルプラットホームの識別子を示し、前記バージョン情報はアプリケーションのバージョンを示す。
前記ユーザ説明要素はユーザにより作られたアプリケーションに対する説明文句を示し、言語情報を含むことができる。
前記代替識別子要素は標準機関で使われるアプリケーションの識別子を示し、機関情報を含むことができる。前記機関情報は標準機関のドメインネームを意味することができる。
前記実行状態要素は、スクリーンデバイス上でのアプリケーションの活性化状態を示す。前記活性化状態は、不活性化、転移中(transitioning)、転移ペンディング入力中(transitioning pending input)、実行中(running)、知れない(unknown)のうち、1つを示すことができる。
前記活性化URI要素はスクリーンコントロールポイントがアプリケーションを始めるために接続できるURIを示し、デバイスタイプ情報を含むことができる。ここで、前記デバイスタイプ情報はアプリケーションが適用可能なデバイスタイプを示し、前記デバイスタイプはメインスクリーンデバイス、コンパニオンスクリーンデバイス、または両方ともを意味することができる。
前記設置状態要素は、スクリーンデバイス上でアプリケーション識別子により指定されたアプリケーションの設置状態を示す。前記設置状態は、‘ダウンロードできない’、‘ダウンロード中’、‘ダウンロードペンディング入力中’、‘設置されない’、‘設置中’、‘設置ペンディング入力中’、‘設置完了’、‘知れない’ のうち、1つを示すことができる。
前記ダウンロード進行状態要素は、前記設置状態要素が‘ダウンロード中’の場合のみに適用され、ダウンロード進行程度は0から100の間のパーセンテージで表現できる。
前記設置進行状態要素は、前記設置状態要素が‘設置中’の場合のみに適用され、設置進行程度は0から100の間のパーセンテージで表現できる。
前記設置URI要素はスクリーンコントロールポイントがアプリケーションを設置するために接続できるURIを示し、デバイスタイプ情報を含むことができる。ここで、前記デバイスタイプ情報はアプリケーションが適用可能なデバイスタイプを示し、前記デバイスタイプはメインスクリーンデバイス、コンパニオンスクリーンデバイス、または両方ともを意味することができる。
前記使用政策要素は、アプリケーション使用のための許可関連情報を示し、前記許可関連情報は‘制限無し’、‘購買必要’、‘試験のみ可能(trial only)’、‘父母同意必要’、‘ログイン必要’のうち、1つを示すことができる。
前記アプリケーション間の情報要素は、アプリケーション間の連結を生成するための情報を示し、実行状態要素が少なくとも‘実行中’の場合にサポートできる。前記アプリケーション間の情報要素は、マッチングプロトコル名称要素、プロトコル要素、及び連結アドレス要素のうち、少なくとも1つを含むことができる。前記マッチングプロトコル名称要素は、製造業者−定義されたプロトコル名称を示す。前記プロトコル要素は転送階層のプロトコルを示し、例えば、HTTP、ウェブソケット(websocket)、UPnPを含むことができる。前記連結アドレス要素は、アプリケーション間の通信のためのアクセス情報を示し、例えば、前記連結アドレス要素はHTTP URI、ウェブソケット(websocket)URI、uuid:device-uuid、製造業者定義アドレスを含むことができる。
前記利用可能なアプリケーション情報4402は、マルチスクリーンサービスを提供するために該当時間に利用可能なアプリケーションの情報を示す。
前記サポートされる検索フィールド情報4403は、サーチ可能なフィールドのリストを示す。
前記アプリケーション識別子アーギュメント4404は、多様なアクション内の多様なアプリケーション識別子のタイプ情報を提供する。
前記検索情報アーギュメント4405は、検索情報のタイプ情報を示す。
前記検索フィールド情報アーギュメント4406は、検索フィールド情報のタイプ情報を示す。
前記フィルター情報アーギュメント4407は、特定条件を満たすアプリケーション情報を獲得するために用いられる情報を示す。
前記実行中のアプリケーションリスト4408は、実行中のアプリケーションのリストを提供する。
前記URI情報アーギュメント4409は、活性化URIアーギュメントと設置URIアーギュメントのうち、いずれか1つに対するタイプ情報を示す。
前記パラメータ情報アーギュメント4410は、活性化パラメータアーギュメントと設置パラメータアーギュメントのうち、いずれか1つに対するタイプ情報を示す。
前記連結識別子アーギュメント4411は、アプリケーション間の連結の固有識別子のリストを示す。
図45は本発明が適用される実施形態であって、アプリケーションをアップデートする過程を示す。
マルチスクリーンサービスを提供するアプリケーションをアップデートするために、アップデート可能なアプリケーション獲得アクションとアプリケーションアップデートアクションのうち、少なくとも1つが必要である。
スクリーンコントロールポイントは、アップデート可能なアプリケーション獲得をスクリーンデバイスに要求することができる(S4510)。この際、アップデート可能なアプリケーション獲得アクションが利用できる。前記アップデート可能なアプリケーション獲得アクションは、スクリーンコントロールポイントをしてバージョンアップデートが可能なアプリケーションのリストを獲得するようにすることができる。前記スクリーンデバイスは、前記アクションに応答してバージョンアップデートが可能なアプリケーションのリストを前記スクリーンコントロールポイントに転送することができる。
前記スクリーンコントロールポイントは、最新バージョンでないアプリケーションに対してアプリケーションアップデートを要求することができる(S4520)。この際、アプリケーションアップデートアクションが利用できる。前記アプリケーションアップデートアクションはバージョン情報を含むことができ、前記バージョン情報が何らの情報を有していない場合、アプリケーションが最新バージョンにアップデートされなければならないことを意味することができる。前記要求によって、前記スクリーンデバイスは最新バージョンでないアプリケーションを最新バージョンにアップデートすることができる。
前記スクリーンコントロールポイントは、前記スクリーンデバイスにアップデートされたアプリケーションの設置を要求することができる(S4530)。この際、アプリケーション設置アクションが用いられることができ、前記アクションはアプリケーション識別子に基づいて、または設置URI(Uniform Resource Identifier)に基づいて遂行できる。
図46は本発明が適用される実施形態であって、アプリケーションの設置状態ダイヤグラムを示す。
まず、アプリケーションがダウンロードできない場合(4610)、ユーザはスクリーンコントロールポイントを通じてアプリケーション設置を要求することができる(4611)。この際、アプリケーションがどんな状態にあっても(4600)、設置取消要求(4601)によりアプリケーションが削除される場合(4605)にも、アプリケーションがダウンロードできないケースに該当すると見ることができる。
前記設置要求によりスクリーンデバイスはアプリケーションをダウンロードすることができる(4620)。この際、ユーザにより設置止め要求がある場合(4621)、前記アプリケーションのダウンロードは止めるようになる(4622)。前記スクリーンデバイスは、またユーザにより設置継続要求または設置要求を受信する場合(4623)、続けてダウンロードすることができる(4620)。
または、ダウンロード中、ユーザの入力が必要な場合(4624)、前記スクリーンデバイスはダウンロード過程でユーザ入力中の状態でありうる(4625)。この際、前記スクリーンデバイスはユーザ入力中の状態であることをディスプレイすることができる(4626)。ユーザ入力と共に設置要求時(4627)、前記スクリーンデバイスは続けてダウンロードすることができる(4620)。
ダウンロード中には設置未完了状態のことがあり(4630)、設置中の状態になることができる(4640)。この際、ユーザにより設置止め要求がある場合(4641)、前記アプリケーションの設置は止めるようになる(4642)。前記スクリーンデバイスは、またユーザにより設置継続要求または設置要求を受信する場合(4643)、続けて設置することができる(4640)。
または、設置中にユーザの入力が必要な場合(4644)、前記スクリーンデバイスは設置過程でユーザ入力中の状態でありうる(4645)。この際、前記スクリーンデバイスはユーザ入力中の状態であることをディスプレイすることができる(4646)。ユーザ入力と共に設置要求時(4647)、前記スクリーンデバイスは続けて設置することができる(4640)。
設置が完了すれば、前記スクリーンデバイスは設置完了状態となる(4650)。
本明細書で説明される多様な実施形態は、例えば、ソフトウェア、ハードウェア、またはこれらの組み合わせを用いてコンピュータまたはこれと類似の装置で読み取ることができる記録媒体内で具現できる。
ハードウェア的な具現によれば、ここに説明される実施形態は、ASICs(application specific integrated circuits)、DSPs(digital signal processors)、DSPDs(digital signal processing devices)、PLDs(programmable logic devices)、FPGAs(field programmable gate arrays、プロセッサ(processors)、制御器(controllers)、マイクロコントローラ(micro-controllers)、マイクロプロセッサ(microprocessors)、その他の機能遂行のための電気的なユニットのうち、少なくとも1つを用いて具現できる。一部の場合に、そのような実施形態がコントローラまたはコントロールポイントにより具現できる。
ソフトウェア的な具現によれば、手続や機能のような実施形態は少なくとも1つの機能または作動を遂行するようにする別個のソフトウェアモジュールと共に具現できる。ソフトウェアコードは適切なプログラム言語で書き込まれたソフトウェアアプリケーションにより具現できる。ソフトウェアコードはメモリに格納され、制御部により実行できる。
本発明の一実施形態によれば、前述した方法は、プログラムが記録された媒体にプロセッサが読み取ることができるコードとして具現することが可能である。プロセッサが読み取ることができる媒体の例には、ROM、RAM、CD−ROM、磁気テープ、フロッピーディスク、光データ格納装置などがあり、キャリアウェーブ(例えば、インターネットを介しての転送)の形態に具現されることも含む。