(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0025】
<情報処理システムの構成例>
図1は、本技術の一実施形態に係る情報処理システムの構成例を示す図である。
【0026】
図1の情報処理システムは、TV1、携帯端末2、放送局3、Webアプリ管理サーバ4、およびネイティブアプリ管理サーバ5から構成される。TV1、携帯端末2、Webアプリ管理サーバ4、およびネイティブアプリ管理サーバ5はインターネット6に接続される。
【0027】
楕円#1で囲んで示すように、TV1と携帯端末2はユーザが使う機器である。TV1は、放送局3からの放送信号を受信し、番組の映像と音声を出力する。携帯端末2は、スマートフォン、タブレット端末、ゲーム機などの、ディスプレイを有する携帯型の端末である。TV1を1つ目のスクリーンを有する機器とすると、携帯端末2は、ユーザが使う2つ目のスクリーンを有する機器となる。
【0028】
携帯端末2は、Android(商標)、iOS(商標)、Windows(登録商標) RTなどの所定のOS(Operating System)を搭載する機器であり、携帯端末2が搭載するOS向けに開発された各種のアプリケーションを実行する。TV1と携帯端末2は、それぞれ、インターネット6上のサーバと通信を行うだけでなく、無線LAN(Local Area Network)などによって構築された家庭内のネットワークを介して相互に通信を行う。
【0029】
楕円#2で囲んで示すように、放送局3とWebアプリ管理サーバ4は放送事業者が管理する。Webアプリ管理サーバ4は、放送局3が放送するある番組に対して放送事業者により用意されたTV用HTML(Hyper Text Markup Language)文書11とモバイル用HTML文書12を記憶する。
【0030】
TV用HTML文書11は、TV1が搭載するWebブラウザにより取得され、画面表示等に用いられるTV1用のHTML文書である。モバイル用HTML文書12は、携帯端末2が搭載するWebビューにより取得され、画面表示等に用いられる携帯端末2用のHTML文書である。TV用HTML文書11とモバイル用HTML文書12には、例えば、放送中の同じ番組に関連する情報が含まれる。なお、Webビューは、Webブラウザと同様にHTMLファイルを処理し、Webページ等を表示させる機能を有する。
【0031】
TV用HTML文書11とモバイル用HTML文書12には、HTMLの記述だけでなく、JavaScript(登録商標)などのスクリプトの記述が含まれる。TV用HTML文書11は、Webブラウザ上で実行されるWebアプリ(Webアプリケーション)であり、モバイル用HTML文書12は、Webビュー上で実行されるWebアプリである。以下において、HTML文書を起動することは、Webアプリを起動することを意味し、HTML文書を実行することは、Webアプリを実行することを意味する。
【0032】
例えば、TV用HTML文書11とモバイル用HTML文書12は、Webページの表示処理、WebブラウザのAPI(Application Programming Interface)を用いた処理などを、HTML文書に含まれる記述に基づいて行う。
【0033】
楕円#3で囲んで示すネイティブアプリ管理サーバ5は、例えばTV1のメーカーが管理するサーバである。ネイティブアプリ管理サーバ5は、携帯端末2が搭載するOS上で動作するいわゆるネイティブアプリケーションを管理する。
【0034】
ネイティブアプリ管理サーバ5が管理するアプリケーションは、携帯端末2からの要求に応じて携帯端末2にダウンロードされ、インストールされる。ネイティブアプリ管理サーバ5が管理するアプリケーションが携帯端末2にインストールされることにより、携帯端末2には、TV1が受信している番組に関連するWebページなどの情報を表示するための機能が追加される。
【0035】
以下、適宜、ネイティブアプリ管理サーバ5からダウンロードされ、携帯端末2にインストールされるアプリケーションをTVコンパニオンアプリという。
【0036】
このような構成を有する情報処理システムにおいては、ある番組に関連する情報として放送事業者により用意されたTV用HTML文書11とモバイル用HTML文書12を用いて、セカンドスクリーンデバイスによるTV連動が実現される。
【0037】
図2は、TV連動を確立するまでの流れを示す図である。詳細な流れについては後述する。ここでは、TVコンパニオンアプリが携帯端末2にインストール済みであるものとする。
【0038】
TV1は、矢印#11の先に示すように放送局3からの放送信号を受信する。放送信号にはAIT(Application Information Table)が含まれる。AITは、アプリケーションを特定及び制御するための付加的なアプリケーション情報を伝送するデータを含む情報であり、所定の時間毎に送信されてくる。
【0039】
TV1のWebブラウザ21は、矢印#12で示すように、AITにより指定されるURL(Uniform Resource Locator)に基づいてWebアプリ管理サーバ4にアクセスし、TV用HTML文書11を取得する。AITにより指定されるURLは、TV用HTML文書11の提供元となるWebアプリ管理サーバ4上のアドレスを示す。
【0040】
Webブラウザ21によりTV用HTML文書11が取得され、処理されることによって、受信中の番組に関連するWebページがTV1に表示される。また、TV1上でWebアプリが実行された状態になり、各種の処理がTV用HTML文書11により行われる。TV用HTML文書11には、モバイル用HTML文書12の提供元となるWebアプリ管理サーバ4上のアドレスを示すURLが含まれる。
【0041】
このように、放送局3からの放送信号には、携帯端末2に対する情報である、モバイル用HTML文書12のWebアプリ管理サーバ4上のアドレスを示すURLは含まれない。
【0042】
Webブラウザ21上で実行しているTV用HTML文書11は、矢印#13で示すように、モバイル用HTML文書12のURLを、携帯端末2において実行中のTVコンパニオンアプリに通知する。TVコンパニオンアプリに内包されるWebビュー22は、矢印#14で示すように、TV1から通知されたURLに基づいてWebアプリ管理サーバ4にアクセスし、モバイル用HTML文書12を取得する。
【0043】
Webビュー22を内包するTVコンパニオンアプリによりモバイル用HTML文書12が処理されることによって、TV1により受信中の番組に関連するWebページが携帯端末2のディスプレイに表示される。また、携帯端末2上でWebアプリが実行された状態になり、各種の処理がモバイル用HTML文書12により行われる。
【0044】
TV1と携帯端末2の双方でHTML文書が実行された後、矢印#15で示すように、TV用HTML文書11とモバイル用HTML文書12の間で通信が行われる。HTML文書間の通信を用いることによって、WebページやVODなどの、携帯端末2に表示される情報が番組の進行に連動して切り替えられる。
【0045】
以上の処理により、TV1において受信中の番組に関連するWebページを携帯端末2に表示させるTV連動が実現される。
【0046】
図3は、TV1と携帯端末2の画面表示の例を示す図である。
【0047】
TV1のディスプレイ31には放送中の番組であるカーレース番組の映像が表示されている。また、ディスプレイ31の右下にはWeb情報表示領域32が形成され、Webブラウザ21によってレース状況の情報が表示されている。Web情報表示領域32に表示されている情報は、TV用HTML文書11に基づいて表示される。
【0048】
一方、携帯端末2のディスプレイ41には、Webビュー22を内包するTVコンパニオンアプリによりレース状況の情報が表示されている。ディスプレイ41に表示されている情報はモバイル用HTML文書12に基づいて表示される。
【0049】
図4および
図5は、TV1の画面表示の他の例を示す図である。
【0050】
図4に示すように、ディスプレイ31の左上に形成された番組表示領域51に番組の映像が表示され、ディスプレイ31の右方と下方に形成されるWeb情報表示領域52に、番組に関連する情報がTV用HTML文書11に基づいて表示されるようにしてもよい。
【0051】
また、
図5に示すように、TV1には番組の映像だけが表示され、番組に関連する情報については携帯端末2にのみ表示されるようにしてもよい。
図5の状態においても、番組の映像の表示の裏ではTV用HTML文書11が実行されていることになる。
【0052】
このように、
図1の情報処理システムにおいては、放送と連動したTV上のWebアプリから、スマートフォンやタブレット端末などのセカンドスクリーンデバイスに対して、当該Webアプリが望む任意のWebページを表示させることが可能になる。ここで、TV上のWebアプリは放送事業者の責任において作成されたものであり、セカンドスクリーンデバイスに表示されるWebページは、放送事業者が意図するものである。
【0053】
セカンドスクリーンデバイス側で音声認識などを行う必要がないことから、TV連動を容易に実現することができる。
【0054】
また、セカンドスクリーンデバイスに最初のWebページが表示された後、TV上のWebアプリとセカンドスクリーンデバイス上のWebアプリとの間で任意のデータのやり取りを行うことが可能になる。
【0055】
さらに、セカンドスクリーンデバイスのWebブラウザ(Webビュー)が通常有する機能を利用していることから、以上のことを、セカンドスクリーンデバイス側の機種に依存しない形で実現することができる。すなわち、セカンドスクリーンデバイスのOSを問わずTV連動を実現することができる。
【0056】
<携帯端末2のUIの例>
図6および
図7は、TV連動が開始するまでの携帯端末2の画面表示の例を示す図である。
【0057】
図6の左側の画面は、TVコンパニオンアプリのインストール後の設定画面である。例えば、TVコンパニオンアプリのインストール後、初期設定が行われる。TVコンパニオンアプリのメニュー画面からユーザが機器接続機能を選択したとき、接続可能機器の探索が行われ、携帯端末2と同じネットワーク内にあるTV1が検出される。
【0058】
図6の左側の設定画面においては、接続可能機器の一覧62にTV1を含む2つの機器の名前が表示されている。一覧62からTV1が選択され、一覧62の上に表示されている接続ボタン61が押されたとき、TV1のIPアドレスなどの情報が携帯端末2に保存される。
【0059】
矢印#21の先に示す画面は、TVコンパニオンアプリの初期設定後のOSのメニュー画面である。OSのメニュー画面にはインストール済みの各種のアプリケーションのアイコンが表示されており、その中にTVコンパニオンアプリのアイコンが含まれる。
【0060】
斜線を付して示すように、TVコンパニオンアプリのアイコンが選択されたとき、TVコンパニオンアプリが起動する。矢印#22の先に示すように、携帯端末2には、登録済みの機器であるTV1を操作するためのGUI(Graphical User Interface)としてリモコン画像63が表示される。リモコン画像63には、チャンネルを切り替えるときに操作されるボタンや、音量を調節するときに操作されるボタンなどの各種のボタンが含まれる。
【0061】
例えばユーザが所定のチャンネルのボタンを押したとき、携帯端末2からTV1にネットワークを介して制御信号が送信される。TV1においては、ユーザにより指定されたチャンネルの放送信号の受信が開始され、番組の映像と音声が出力される。ユーザは、携帯端末2のTVコンパニオンアプリを利用してTV1を操作し、番組を視聴することができる。
【0062】
上述したように、TV1においては、放送信号の受信中、放送信号に含まれるAITの解析が行われ、Webアプリ管理サーバ4から取得されたTV用HTML文書11がWebブラウザ21上で実行される。また、番組連動アプリとしてのモバイル用HTML文書12があることの通知がTV1のWebブラウザ21から携帯端末2のTVコンパニオンアプリに対して行われる。
【0063】
番組連動アプリがあることの通知が受信されたとき、
図7の矢印#23の先に示すように、番組連動アプリがあることをユーザに通知するメッセージ64がTVコンパニオンアプリにより表示される。この通知は、ユーザが別のアプリケーションを利用している場合でもTVコンパニオンアプリにより行われる。TVコンパニオンアプリは、他のアプリケーションをユーザが利用している場合でも裏で動作し、TV1のWebブラウザ21からの通知を受信していることになる。
【0064】
メッセージ64をタッチするなどしてユーザが番組連動アプリの起動を指示したとき、モバイル用HTML文書12のURLがTVコンパニオンアプリによりTV1から取得される。また、モバイル用HTML文書12がWebアプリ管理サーバ4から取得され、矢印#24の先に示すように、番組に関連する情報がモバイル用HTML文書12に基づいて表示される。
【0065】
<アプリケーション構造の例>
図8は、TV1と携帯端末2のアプリケーション構造の例を示す図である。
【0066】
TV1においては、所定のプログラムが実行されることによりTVプラットフォーム101が構築され、TVプラットフォーム101上でWebブラウザ21が動作する。TVプラットフォーム101はHTTPサーバ111の機能を有する。また、TV用HTML文書11がWebアプリ管理サーバ4から取得されたとき、Webブラウザ21上でTV用HTML文書11が実行される。
【0067】
一方、携帯端末2においては、OSによりモバイルプラットフォーム121が構築され、モバイルプラットフォーム121上でWebビュー22とTVコンパニオンアプリ122が動作する。TVコンパニオンアプリ122は、Webビュー22を内包して動作する。また、モバイル用HTML文書12がWebアプリ管理サーバ4から取得されたとき、Webビュー22上でモバイル用HTML文書12が実行される。
【0068】
TVプラットフォーム101とモバイルプラットフォーム121は、無線LANなどにより家庭内に構築されたネットワーク131の上層に位置し、互いに通信を行う。上層のアプリケーションは、適宜、下層のアプリケーションが有する機能をAPIにより利用する。
【0069】
図9は、HTML文書を取得する前のアプリケーション間のやりとりについて説明する図である。
【0070】
図9のAの例においては、矢印#31で示すように、携帯端末2にはTVコンパニオンアプリ122がインストールされ、起動している。TV1と携帯端末2は家庭内にあるルーターなどに接続され、矢印#32で示すように、TVプラットフォーム101とモバイルプラットフォーム121間で通信を行うことが可能な状態になっている。
【0071】
この場合、
図9のBに示すように、TV1は、TVプラットフォーム101上でWebブラウザ21が動作する状態になる。また、携帯端末2は、モバイルプラットフォーム121上でTVコンパニオンアプリ122が動作する状態になる。
【0072】
図6を参照して説明したようにユーザが機器接続機能を選択したとき、TVコンパニオンアプリ122により接続可能機器の探索が行われる。
図9のBの矢印#33で示すように、TVコンパニオンアプリ122による探索に対してTVプラットフォーム101が応答し、TVコンパニオンアプリ122とTVプラットフォーム101の間でIPアドレス等の情報のやりとりが行われる。TVコンパニオンアプリは、他のアプリケーションをユーザが利用している場合でも裏で動作し、接続可能機器の探索やその状態管理を行う。
【0073】
その後、TV1のメーカーが規定する通信仕様などに基づき、TVプラットフォーム101が有するTV機能のリモートUI(User Interface)がTVコンパニオンアプリ122に提供される。TV機能は放送信号を受信して番組の映像と音声を出力する機能であり、
図6のリモコン画像63がリモートUIに対応する。TVコンパニオンアプリ122はTV1のメーカーが用意するものであるから、メーカー独自の通信仕様をTVコンパニオンアプリ122とTVプラットフォーム101間の通信に用いることができる。
【0074】
リモートUIを用いた操作がユーザにより行われたとき、矢印#33で示すリンクを介して、TVコンパニオンアプリ122からTVプラットフォーム101に制御信号が送信され、TV機能に関する各種の処理がTV1により行われる。
【0075】
図10は、HTML文書を取得した後のアプリケーション間のやりとりについて説明する図である。
【0076】
図10のAの例においては、破線矢印#41で示すようにTV用HTML文書11がTV1により取得され、Webブラウザ21上で実行されている。また、破線矢印#42で示すようにモバイル用HTML文書12が携帯端末2により取得され、Webビュー22上で実行されている。
【0077】
この場合、
図10のBに示すように、TV1は、TVプラットフォーム101上でWebブラウザ21が動作し、Webブラウザ21上でTV用HTML文書11が実行している状態になる。また、携帯端末2は、モバイルプラットフォーム121上でWebビュー22とTVコンパニオンアプリ122が動作し、Webビュー22上でモバイル用HTML文書12が実行している状態になる。TV1のディスプレイ31には番組に関連する情報がTV用HTML文書11に基づいて表示され、携帯端末2のディスプレイ41には番組に関連する情報がモバイル用HTML文書12に基づいて表示される。
【0078】
その後、
図10のBの矢印#44で示すように、TV用HTML文書11とモバイル用HTML文書12の間で、WebAPIを使って通信が行われ、番組に連動した表示が実現される。WebAPIは、HTTPを利用してネットワーク越しに処理を実行して結果を受け取るAPIである。また、WebAPIは
図8のHTTPサーバ111に実装され、これを介して、TV用HTML文書11と通信される。
【0079】
<TV連動の一連の処理>
[HTML文書間通信開始までの処理]
ここで、TV1と携帯端末2の処理についてフローチャートを参照して説明する。
【0080】
はじめに、
図11のフローチャートを参照して、携帯端末2の初期設定処理について説明する。TVコンパニオンアプリ122が携帯端末2にインストールされているものとする。
【0081】
ステップS1において、電源がONになることに応じてモバイルプラットフォーム121が起動する。モバイルプラットフォーム121が起動したとき、ディスプレイ41にはOSのメニュー画面が表示される。
【0082】
ステップS2において、モバイルプラットフォーム121は、メニュー画面からアイコンが選択されることに応じて、TVコンパニオンアプリ122を起動させる。TVコンパニオンアプリ122が起動したとき、ディスプレイ41にはTVコンパニオンアプリ122のメニュー画面が表示される。TVコンパニオンアプリ122のメニュー画面には、機器接続機能を選択するときに操作されるボタンが設けられる。
【0083】
ステップS3において、TVコンパニオンアプリ122は、機器接続機能がユーザにより選択されることに応じて接続可能機器の探索を行う。例えば、TVコンパニオンアプリ122は、機器登録受付リクエストを、携帯端末2が接続しているネットワークであるネットワーク131上にブロードキャストする。ネットワーク131上に応答可能な機器がある場合、リクエストに対する応答として、その機器から、機器の設定名とIPアドレスが通知されてくる。ここでは、TV1から、TV1の設定名とIPアドレスが通知されてくることになる。
【0084】
ステップS4において、TVコンパニオンアプリ122は、探索により見つかったTV1を含む接続可能機器の一覧を表示させる。ディスプレイ41には、例えば
図6の左側に示す画面が表示される。
【0085】
ステップS5において、TVコンパニオンアプリ122は、接続可能機器の一覧からTV1が選択され、接続ボタンが押されたとき、ネットワーク131を介してTV1に接続する。
【0086】
ステップS6において、TVコンパニオンアプリ122は、TV1から取得したTV1の設定名とIDを、TV1を特定可能なIPアドレスなどの情報と紐付けて保存する。TV1から取得されたリモコン画像のデータもIPアドレスなどと紐付けて保存される。
【0087】
TV1の情報が保存された後、初期設定が終了される。初期設定のシーケンスは、TVのメーカー毎に異なる操作・方式であってよい。ただし、TVコンパニオンアプリ122は、内部パラメータとして、接続先のTVを特定できるアドレス(IPアドレスなど)を取得できていなければならないものとする。
【0088】
次に、
図12のフローチャートを参照して、HTML文書を起動させるTV1の処理について説明する。この処理は、TV1の電源がONとなり、TVプラットフォーム101が処理を実行可能な状態になっているときに行われる。
【0089】
ステップS11において、TVプラットフォーム101は、携帯端末2に対する操作によってユーザにより指定されたチャンネルの放送信号を受信する。放送信号に対して復調処理が施され、復調処理によって得られたビデオデータとオーディオデータに基づいて、番組の映像と音声が出力される。
【0090】
ステップS13において、TVプラットフォーム101は、番組の付加情報として放送信号に含まれるAITを取得し、解析する。AITには、auto startフラグが設定されたHTML文書(Webアプリ)のURL、そのHTML文書において参照されるHTML文書のURLといったように、複数のHTML文書のURLを指定することが可能とされている。AITを解析することによって得られたTV用HTML文書11のURLはTVプラットフォーム101からWebブラウザ21に供給される。
【0091】
ステップS14において、Webブラウザ21は、放送事業者により指定されたHTML文書の実行中であるか否かを判定する。
【0092】
指定されたHTML文書の実行中ではないとステップS14において判定した場合、ステップS15において、Webブラウザ21は、AITを解析することによって得られたURLに基づいてWebアプリ管理サーバ4にアクセスし、TV用HTML文書11を取得する。
【0093】
ステップS16において、Webブラウザ21は、取得したTV用HTML文書11を起動させる。
【0094】
ステップS17において、Webブラウザ21はTV用HTML文書11を実行する。TV用HTML文書11は、例えば、TV用HTML文書11に含まれるHTMLの記述に基づいて、番組に関連するWebページを
図3に示すように番組の映像に重ねて表示させる。また、TV用HTML文書11は、TV用HTML文書11に含まれるJavaScript(登録商標)を実行し、指定された関数を呼び出す。
【0095】
放送事業者により指定されたHTML文書を実行中であるとステップS14において判定された場合、ステップS15,S16がスキップされ、TV用HTML文書11の実行がステップS17において継続される。
【0096】
ステップS18において、TV用HTML文書11は、モバイル用HTML文書12を起動させるか否かを判定する。ここでは、モバイル用HTML文書12を起動させる関数であるWebアプリ起動関数を呼び出すJavaScript(登録商標)がTV用HTML文書11に含まれる場合、モバイル用HTML文書12を起動させるとして判定される。
【0097】
モバイル用HTML文書12を起動させるとステップS18において判定した場合、ステップS19において、TV用HTML文書11は、Webブラウザ21のAPIであるWebアプリ起動関数を呼び出す。
【0098】
ステップS20において、Webブラウザ21は、Webアプリ起動関数が呼び出されることに応じて、モバイル用HTML文書12のURLにTV1のIPアドレスを含むURLを付加し、TV1のステータス管理用のメモリ領域に設定する。モバイル用HTML文書12のURLは、Webアプリ起動関数の引数としてTV用HTML文書11からWebブラウザ21に渡される。
【0099】
図13は、Webアプリ起動関数の例を示す図である。
【0100】
上段に示す「navigator.receiverDevice.launchHTMLdocumentOnExternal(title,URL);」の関数201が、TV用HTML文書11内のJavaScript(登録商標)において呼び出されるWebアプリ起動関数である。関数201は、モバイル用HTML文書12のURLにTV1のIPアドレスを含むURLを付加し、携帯端末2に送信する処理を規定する。
【0101】
下段に示す「http://www.AAA.com/TV/index.html?tv-ipaddress=http://192.168.0.3/command/」のURL202が、TV1のIPアドレスを含むURLが付加されたURLである。URL202を構成する前段の「http://www.AAA.com/TV/index.html」は、モバイル用HTML文書12のURL、すなわち、携帯端末表示用のURLを示す。クエリ形式で付加される「?tv-ipaddress=http://192.168.0.3/command/」は、ネットワーク131において割り当てられたTV1のIPアドレスを含むURLを示す。この例においては「192.168.0.3」がTV1に割り当てられているIPアドレスで、「192.168.0.3:8080」の様にポート番号が含まれても良い.「command/」は、パスを示す文字列である。
【0102】
このように、TV1のIPアドレスを含むURLが付加されたURLがステータス管理用のメモリ領域に格納される。後述するように、URLに付加されたTV1のIPアドレスを含むURLは、モバイル用HTML文書12がTV1のHTTPサーバ111に対してHTTPリクエストを送信するときに、送信先を指定するために用いられる。
【0103】
モバイル用HTML文書12のURLがステータス管理用のメモリ領域に設定された後、ステップS21において、Webブラウザ21は、ステータス管理用のメモリ領域にデータがあることを通知する信号であるNotificationを携帯端末2に送信する。
【0104】
その後、ステップS11に戻り、以上の処理が繰り返される。例えばモバイル用HTML文書12を既に起動させており、モバイル用HTML文書12を起動させないとステップS18において判定された場合も同様に、ステップS11以降の処理が繰り返される。
【0105】
次に、
図14のフローチャートを参照して、HTML文書を起動させる携帯端末2の処理について説明する。
図14の処理は、例えば
図13の処理がTV1により行われた後に行われる。携帯端末2においては、TVコンパニオンアプリ122が起動しているものとする。
【0106】
ステップS31において、TVコンパニオンアプリ122は、TV1のWebブラウザ21から送信されたNotificationを受信する。
【0107】
ステップS32において、TVコンパニオンアプリ122は、
図7を参照して説明したようにしてメッセージを表示し、番組連動アプリがあることをユーザに通知する。
【0108】
ステップS33において、TVコンパニオンアプリ122は、例えばメーカー独自の方式によってTV1のステータスの情報を取得する。例えば、TV1のステータス管理用のメモリ領域に設定された情報の要求を表すコマンドであるgetTVstatus(URL)がTVコンパニオンアプリ122からTVプラットフォーム101に対して発行される。TVプラットフォーム101は、ステータス管理用のメモリ領域に設定された情報をTVコンパニオンアプリ122に送信する。
【0109】
ステップS34において、TVコンパニオンアプリ122は、TV1から取得したステータスの情報の中に、モバイル用HTML文書12のURLが含まれているか否かを判定する。
図12の処理がTV1により行われている場合、IPアドレスが付加されたURL202がTV1から送信されてくることになる。TVコンパニオンアプリ122は、URL202に含まれる前段の携帯端末表示用のURLをWebビュー22に提供し、モバイル用HTML文書12を取得させる。
【0110】
モバイル用HTML文書12のURLが含まれているとステップS34において判定された場合、ステップS35において、Webビュー22は、TVコンパニオンアプリ122から提供されたURLに基づいてWebアプリ管理サーバ4にアクセスし、モバイル用HTML文書12を取得して実行する。
【0111】
ステップS36において、TVコンパニオンアプリ122は、番組に関連のあるWebページをモバイル用HTML文書12に基づいて表示するためのWebビューを生成する。
【0112】
ステップS37において、TVコンパニオンアプリ122は、モバイル用HTML文書12の内容である、番組に関連のあるWebページを用いて表示させる。
【0113】
以上の処理により、
図10を参照して説明したように、TV1においてはTV用HTML文書11が実行され、携帯端末2においてはモバイル用HTML文書12が実行された状態になる。例えば、TV1のディスプレイ31には、番組の映像とともにTV用HTML文書11の内容が表示され、携帯端末2のディスプレイ41にはモバイル用HTML文書12の内容が表示される。
【0114】
[TV1と携帯端末2のHTML文書間通信]
次に、HTML文書間通信について説明する。
【0115】
HTML文書間通信によって送受信されるデータは、放送事業者が任意に決めることができる。例えば、TV用HTML文書11からモバイル用HTML文書12に対して、Webビュー22に新たに取得させるHTML文書のURLが送信される。また、モバイル用HTML文書12からTV用HTML文書11に対して、携帯端末2に表示しているWebページに対するユーザの操作の内容を表す情報が送信される。
【0116】
はじめに、TV1側の処理について説明する。
【0117】
図15は、Webブラウザ21のAPIの例を示す図である。
【0118】
上段の「navigator.receiverDevice.sendTextToExternalDevice(“data”);」の関数211は、データ送信時にTV用HTML文書11により呼び出される。関数211が呼び出されることにより、TV用HTML文書11からモバイル用HTML文書12に送信するデータがメモリの特定領域に設定される。特定領域は、次のAPI呼び出しが行われると上書きされる。特定領域はページ遷移したときnullになる。
【0119】
特定領域に設定された送信対象のデータは、WebAPIを利用したHTTPリクエストが携帯端末2から発行されたときに、それに対するレスポンスとしてHTTPサーバ111から携帯端末2に送信される。
【0120】
下段の「navigator.receiverDevice.receiveTextFromExternalDevice(“data”);」の関数212は、携帯端末2から送信されてきたデータを、HTTPサーバ111が受信したときに呼び出される。関数212が呼び出されることにより、Webブラウザ21を介して、データがHTTPサーバ111からTV用HTML文書11に渡される。
【0121】
図16のフローチャートを参照して、データ送信時のTV1の処理について説明する。
【0122】
ステップS51において、TV用HTML文書11はデータ送信APIを実行する。すなわち、TV用HTML文書11は、送信対象のデータを引数として
図15の関数211を呼び出す。
【0123】
ステップS52において、Webブラウザ21は、送信対象のデータをメモリの特定領域に設定する。送信対象のデータがメモリの特定領域に設定された後、処理は終了される。
【0124】
次に、
図17のフローチャートを参照して、データ受信時のTV1の処理について説明する。
【0125】
ステップS61において、HTTPサーバ111は、携帯端末2からデータが送信されてきたか否かを判定し、送信されてきたと判定するまで待機する。
【0126】
携帯端末2からデータが送信されてきたとステップS61において判定した場合、ステップS62において、HTTPサーバ111はデータ受信APIを実行する。すなわち、HTTPサーバ111は、送信されてきたデータを引数として
図15の関数212を呼び出す。Webブラウザ21は、携帯端末2から送信され、HTTPサーバ111により受信されたデータをTV用HTML文書11に出力する。
【0127】
ステップS63において、TV用HTML文書11は、Webブラウザ21を介して供給された携帯端末2からのデータを取得する。その後、ステップS61に戻り、以上の処理が繰り返される。
【0128】
次に、携帯端末2側の処理について説明する。
【0129】
図18は、モバイル用HTML文書12が発行するHTTPリクエストの例を示す図である。
【0130】
上段の「http://ip_address/command/sendText?data=“data”」のHTTPリクエスト221は、データ送信時にモバイル用HTML文書12が発行するデータ送信用のHTTPリクエストである。HTTPリクエスト221には、HTTPリクエストの送信先を指定するIPアドレスと、送信対象のデータが含まれる。また、「http://ip_address/command」は、TV1から受け取った送信先URLであり、「sendText」はデータ送信用パスである。これに、クエリ形式で送りたいデータを添付する。
【0131】
下段の「http://ip_address/command/getText」のHTTPリクエスト222は、データ受信時にモバイル用HTML文書12が発行するデータ受信用のHTTPリクエストである。HTTPリクエスト222は、TV1においてメモリの特定領域に設定されたデータをレスポンスとして返すことを要求する。HTTPリクエスト222には、HTTPリクエストの送信先を指定するIPアドレスが含まれる。また、「http://ip_address/command」は、TV1から受け取った送信先URLであり、「getText」はデータ受信用パスである。
【0132】
データ送信用とデータ受信用のHTTPリクエストに含まれるURL(http://ip_address/command/)として、モバイル用HTML文書12のURLを携帯端末2に通知するときに、TV1がURLに付加したIPアドレスを含むURLが用いられる。
図13の例においては、「http://192.168.0.3/command/」がHTTPリクエストに設定されることになる。
【0133】
例えば、IPアドレスを含むURLが付加されたモバイル用HTML文書12のURLがTV1から通知されたとき、TV1のIPアドレスを含むURLがTVコンパニオンアプリ122により抽出され、管理される。URLから抽出されたIPアドレスを含むURLは、TVコンパニオンアプリ122からモバイル用HTML文書12に所定のタイミングで提供される。
【0134】
図19のフローチャートを参照して、データ送信時の携帯端末2の処理について説明する。
【0135】
ステップS71において、モバイル用HTML文書12は、URLに付加する形で通知されたTV1のIPアドレスを含むURLを送信先として含むデータ送信用のHTTPリクエストを送信する。データ送信用のHTTPリクエストには送信対象のデータも含まれる。
【0136】
データ送信用のHTTPリクエストが送信された後、処理は終了される。TV1においては、
図17を参照して説明したデータ受信時の処理が行われ、モバイル用HTML文書12がHTTPリクエストに含めて送信したデータがTV用HTML文書11により取得される。
【0137】
次に、
図20のフローチャートを参照して、データ受信時の携帯端末2の処理について説明する。
【0138】
ステップS81において、モバイル用HTML文書12は、URLに付加する形で通知されたTV1のIPアドレスを含むURLを送信先として含むデータ受信用のHTTPリクエストを送信する。
【0139】
ステップS82において、モバイル用HTML文書12は、HTTPサーバ111からのレスポンスを待つ。
【0140】
ステップS83において、モバイル用HTML文書12はタイムアウトであるか否かを判定する。例えば、HTTPリクエストに対するレスポンスが所定時間内に送信されてこない場合、タイムアウトであると判定される。
【0141】
タイムアウトではないとステップS83において判定した場合、ステップS84において、モバイル用HTML文書12は、データ受信用のHTTPリクエストに対するレスポンスに含めてTV1から送信されてきたデータを受信する。
【0142】
TV1から送信されてきたデータをステップS84において受信した後、または、ステップS83においてタイムアウトであると判定された後、ステップS81に戻り、以上の処理が繰り返される。
【0143】
図21と
図22は、HTML文書間通信の流れを示す図である。
図21は、TV用HTML文書11からモバイル用HTML文書12に対するデータ送信時の流れを示し、
図22は、モバイル用HTML文書12からTV用HTML文書11に対するデータ送信時の流れを示す。
【0144】
図21を参照して、TV用HTML文書11からモバイル用HTML文書12に対するデータ送信時の流れについて説明する。基本的に、
図21の右側の処理が、
図16を参照して説明したTV1の処理に対応する。また、
図21の左側の処理が、
図20を参照して説明した携帯端末2の処理に対応する。
【0145】
処理1として示すように、携帯端末2のモバイル用HTML文書12は、URLに付加する形で通知されたTV1のIPアドレスを含むURLを送信先として含むデータ受信用のHTTPリクエスト(XMLHttpRequest)を送信する。データ受信用のHTTPリクエストは矢印#51の先に示すようにTV1のHTTPサーバ111により受信される。
【0146】
処理2として示すように、TV1のTV用HTML文書11は、携帯端末2に対する送信対象のデータを、データ送信APIを使ってメモリの特定領域に設定する。特定領域に設定されることによって、送信対象のデータが矢印#52で示すようにTV用HTML文書11からHTTPサーバ111に提供される。
【0147】
処理3として示すように、TV1のHTTPサーバ111は、送信対象のデータがメモリの特定領域に設定されたとき、送信対象のデータをモバイル用HTML文書12からのHTTPリクエストに対するレスポンスに含めて送信する。なお、送信対象のデータが設定されていない場合、HTTPサーバ111は、レスポンスをモバイル用HTML文書12に対して送信しない。
【0148】
矢印#53の先に示すように、HTTPサーバ111からのレスポンスは携帯端末2のモバイル用HTML文書12により受信される。モバイル用HTML文書12は、データ受信用のHTTPリクエストに対するレスポンスに含めてTV1から送信されてきたデータを受信する。その後、処理1に戻り、以上の処理が繰り返される。
【0149】
図22を参照して、モバイル用HTML文書12からTV用HTML文書11に対するデータ送信時の流れについて説明する。基本的に、
図22の右側の処理が、
図17を参照して説明したTV1の処理に対応する。また、
図22の左側の処理が、
図19を参照して説明した携帯端末2の処理に対応する。
【0150】
処理1として示すように、携帯端末2のモバイル用HTML文書12は、URLに付加する形で通知されたTV1のIPアドレスを含むURLを送信先として含むデータ送信用のHTTPリクエストを送信する。送信対象のデータを含むデータ送信用のHTTPリクエストは矢印#61の先に示すようにTV1のHTTPサーバ111により受信される。
【0151】
処理2として示すように、TV1のHTTPサーバ111は、データ送信用のHTTPリクエストを受信したとき、Callback関数である
図15の関数212を呼び出す。これにより、携帯端末2からデータ送信用のHTTPリクエストに含めて送信されてきたデータが、矢印#62で示すようにHTTPサーバ111からTV用HTML文書11に提供される。また、HTTPサーバ111は、矢印#63で示すように、HTTPリクエストに対するレスポンスをモバイル用HTML文書12に送信する。
【0152】
処理3として示すように、TV用HTML文書11は、Callback関数が呼び出されることによりHTTPサーバ111から提供されたデータを受信する。
【0153】
以上のようなHTML文書間の通信を用いて、TV用HTML文書11とモバイル用HTML文書12の記述によって放送事業者により規定された各種の情報がTV1と携帯端末2の間で送受信される。
【0154】
<各機器の構成例>
[TV1の構成例]
図23は、TV1のハードウェア構成例を示すブロック図である。
【0155】
TV1は、ディスプレイ31の他に、制御部251、記憶部252、通信部253、チューナ255、復調部256、デコーダ257、および表示制御部258から構成される。チューナ255、復調部256、デコーダ257、および表示制御部258の各部は、バス254を介して制御部251に接続される。バス254には記憶部252と通信部253も接続される。
【0156】
制御部251は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)などより構成される。制御部251は、ROMや記憶部252に記憶されているプログラムを実行してTVプラットフォーム101を構築し、チューナ255、復調部256、デコーダ257、および表示制御部258の各部を制御するなどしてTV機能を実現する。また、制御部251は、TVプラットフォーム101上で、Webブラウザ21を実行するとともに、Webブラウザ21上でTV用HTML文書11を実行する。
【0157】
TV1のステータス管理用のメモリ領域や、携帯端末2に対する送信対象のデータが設定される特定領域が例えば制御部251内のRAMに確保される。
【0158】
記憶部252はハードディスクやフラッシュメモリなどよりなり、制御部251が実行する各種のプログラムを記憶する。
【0159】
通信部253は無線LANのインタフェースなどよりなり、制御部251による制御に従って、ネットワーク131を介して携帯端末2と通信を行う。また、通信部253は、制御部251による制御に従って、インターネット6を介してWebアプリ管理サーバ4と通信を行う。通信部253は、Webアプリ管理サーバ4から取得したTV用HTML文書11を制御部251に出力する。
【0160】
チューナ255は、図示せぬアンテナにおいて受信され、供給された放送信号から所定のチャンネルの信号を選局し、復調部256に出力する。
【0161】
復調部256は、チューナ255から供給された放送信号に対して復調処理を施し、番組の映像と音声のデータをデコーダ257に出力する。復調部256においては、AITなどの番組の付加情報も取得される。復調部256により取得されたAITは制御部251に供給される。
【0162】
デコーダ257は、復調部256から供給された、所定の符号化方式でエンコードされたデータをデコードし、デコード後の映像データを表示制御部258に出力する。デコーダ257によって得られた番組の音声データは、図示せぬスピーカに供給され、出力される。
【0163】
表示制御部258は、デコーダ257から供給された映像データに基づいて、番組の映像をディスプレイ31に表示させる。また、表示制御部258は、制御部251による制御に従って、モバイル用HTML文書12に基づくWebページをディスプレイ31に表示させる。
【0164】
図24は、TV1の機能構成例を示すブロック図である。
図24に示す機能部のうちの少なくとも一部は、制御部251のCPUにより所定のプログラムが実行されることによって実現される。
【0165】
TVプラットフォーム101においては、放送受信制御部271、番組出力制御部272、AIT解析部273、およびメモリ領域管理部274が実現される。
【0166】
放送受信制御部271は、チューナ255を制御することによって、所定のチャンネルの放送信号を受信させる。
【0167】
番組出力制御部272は、番組の出力を制御する。例えば、番組出力制御部272は、放送信号の復調を復調部256に行わせ、番組のビデオデータとオーディオデータのデコードをデコーダ257に行わせる。また、番組出力制御部272は、表示制御部258を制御し、番組の映像をディスプレイ31に表示させる。
【0168】
AIT解析部273は、復調部256により抽出されたAITを取得し、解析する。AIT解析部273による解析によって得られたTV用HTML文書11のURLがWebブラウザ21に提供される。
【0169】
メモリ領域管理部274は、制御部251のRAMなどに確保された、TV1のステータス管理用のメモリ領域と、携帯端末2に対する送信対象のデータが設定される特定領域を管理する。例えば、メモリ領域管理部274は、Webブラウザ21によりTV1のIPアドレスを含むURLが付加された、モバイル用HTML文書12のURLをステータス管理用のメモリ領域に格納して管理する。また、メモリ領域管理部274は、HTML文書間通信によって携帯端末2に対して送信するデータを特定領域に格納して管理する。
【0170】
TVプラットフォーム101においては、携帯端末2のTVコンパニオンアプリ122による機器探索に応答する機能部、HTTPサーバ機能を管理する機能部なども実現される。
【0171】
Webブラウザ21においては、HTML文書取得部281、HTML文書実行部282、およびIPアドレス付加部283が実現される。
【0172】
HTML文書取得部281は、AIT解析部273による解析によって得られたURLに基づいて、Webアプリ管理サーバ4からTV用HTML文書11を取得する。
【0173】
HTML文書実行部282は、HTML文書取得部281により取得されたTV用HTML文書11を実行する。HTML文書実行部282により、番組に関連するWebページの表示なども行われる。
【0174】
IPアドレス付加部283は、Webアプリ起動関数が呼び出されたとき、TV用HTML文書11から提供されたモバイル用HTML文書12のURLにTV1のIPアドレスを含むURLを付加する。IPアドレス付加部283は、IPアドレスを含むURLを付加したURLを、メモリ領域管理部274が管理するステータス管理用のメモリ領域に設定する。
【0175】
Webブラウザ21においては、携帯端末2に対してNotificationを送信する機能部なども実現される。
【0176】
TV用HTML文書11においては、URL提供部291、および文書間通信部292が実現される。
【0177】
URL提供部291は、TV用HTML文書11内のJavaScript(登録商標)が実行されることによって実現され、TV用HTML文書11に含まれるURLを引数としてWebアプリ起動関数を呼び出す。URL提供部291が、モバイル用HTML文書12のURLをTV1に提供する機能部に相当する。
【0178】
文書間通信部292は、TV用HTML文書11内のJavaScript(登録商標)が実行されることによって実現され、モバイル用HTML文書12との間でHTML文書間通信を行う。文書間通信部292は、携帯端末2に対してデータを送信するとき、データ送信用の関数である
図15の関数211を呼び出す。また、文書間通信部292は、携帯端末2から送信されてきたデータを受信するとき、データ受信用の関数である
図15の関数212が呼び出されることによってHTTPサーバ111から提供されたデータを取得する。
【0179】
[携帯端末2の構成例]
図25は、携帯端末2のハードウェア構成例を示すブロック図である。
【0180】
CPU301、ROM302、RAM303は、バス304により相互に接続される。CPU301は、ROM302や記憶部307に記憶されているプログラムを実行してモバイルプラットフォーム121を構築し、携帯端末2の全体の動作を制御する。また、CPU301は、モバイルプラットフォーム121上で、TVコンパニオンアプリ122とWebビュー22を実行するとともに、Webビュー22上でモバイル用HTML文書12を実行する。
【0181】
バス304には入出力インタフェース305が接続される。入出力インタフェース305には、ディスプレイ41の他に、タッチパネル306、記憶部307、通信部308が接続される。
【0182】
タッチパネル306はディスプレイ41に積層して設けられ、ユーザの操作の内容を表す信号を出力する。タッチパネル306から出力された信号はCPU301に供給される。
【0183】
記憶部307は、フラッシュメモリなどよりなり、CPU301が実行する各種のプログラムを記憶する。ネイティブアプリ管理サーバ5からダウンロードされ、インストールされたTVコンパニオンアプリ122も記憶部307に記憶される。記憶部307に記憶されたデータはCPU301により適宜読み出される。
【0184】
通信部308は無線LANのインタフェースなどよりなり、CPU301による制御に従って、ネットワーク131を介してTV1と通信を行う。また、通信部308は、CPU301による制御に従って、インターネット6を介してWebアプリ管理サーバ4、およびネイティブアプリ管理サーバ5と通信を行う。通信部308は、Webアプリ管理サーバ4から取得したモバイル用HTML文書12をCPU301に出力する。
【0185】
図26は、携帯端末2の機能構成例を示すブロック図である。
図26に示す機能部のうちの少なくとも一部は、CPU301により所定のプログラムが実行されることによって実現される。
【0186】
モバイルプラットフォーム121においては、アプリ取得部321、およびアプリ実行部322が実現される。
【0187】
アプリ取得部321は、ネイティブアプリ管理サーバ5から取得されたTVコンパニオンアプリ122をインストールする。
【0188】
アプリ実行部322は、Webビュー22を含むTVコンパニオンアプリ122などの各種のアプリケーションを実行する。
【0189】
Webビュー22においては、HTML文書取得部331、およびHTML文書実行部332が実現される。
【0190】
HTML文書取得部331は、TVコンパニオンアプリ122によりTV1から取得されたURLに基づいて、Webアプリ管理サーバ4からモバイル用HTML文書12を取得する。
【0191】
HTML文書実行部332は、HTML文書取得部331により取得されたモバイル用HTML文書12を実行する。HTML文書実行部332により、番組に関連するWebページの表示なども行われる。
【0192】
TVコンパニオンアプリ122においては、アドレス情報取得部341、および出力制御部342が実現される。
【0193】
アドレス情報取得部341は、TV1のステータスの情報を取得する。アドレス情報取得部341は、ステータスの情報に含まれるモバイル用HTML文書12のURLをWebビュー22に提供し、URLに付加されているTV1のIPアドレスを含むURLをモバイル用HTML文書12に提供する。
【0194】
出力制御部342は、Webビュー22の機能を用いて、番組に関連するWebページの表示をモバイル用HTML文書12に基づいて行う。
【0195】
モバイル用HTML文書12においては、文書間通信部351が実現される。
【0196】
文書間通信部351は、モバイル用HTML文書12内のJavaScript(登録商標)が実行されることによって実現され、TV用HTML文書11との間でHTML文書間通信を行う。文書間通信部351は、TV1に対してデータを送信するとき、データ送信用のHTTPリクエストである
図18のHTTPリクエスト221を発行する。また、文書間通信部351は、TV1から送信されてきたデータを受信するとき、データ受信用のHTTPリクエストである
図18のHTTPリクエスト222を発行する。
【0197】
[Webアプリ管理サーバ4の構成例]
図27は、Webアプリ管理サーバ4の構成例を示すブロック図である。
【0198】
CPU361、ROM362、RAM363は、バス364により相互に接続される。バス364には、さらに、入出力インタフェース365が接続される。入出力インタフェース365には、キーボード、マウスなどよりなる入力部366、ディスプレイ、スピーカなどよりなる出力部367が接続される。また、入出力インタフェース365には、記憶部368、通信部369、およびドライブ370も接続される。
【0199】
記憶部368はハードディスクなどより、TV用HTML文書11とモバイル用HTML文書12を記憶する。通信部369は、インターネット6を介してTV1、携帯端末2と通信を行う。
【0200】
通信部369は、AITに含まれるURLに基づいてTV1からアクセスを受けたとき、記憶部368に記憶されているTV用HTML文書11をTV1に送信する。また、通信部369は、TV1から通知されたURLに基づいて携帯端末2からアクセスを受けたとき、記憶部368に記憶されているモバイル用HTML文書12を携帯端末2に送信する。
【0201】
ドライブ370は、光ディスクやメモリカードよりなるリムーバブルメディア371から情報を取り込む。ドライブ370により取り込まれたHTML文書などのデータは記憶部368に供給され、記憶される。
【0202】
ネイティブアプリ管理サーバ5も、
図27に示すWebアプリ管理サーバ4の構成と同様の構成を有している。ネイティブアプリ管理サーバ5が有する記憶部には、携帯端末2に提供するTVコンパニオンアプリ122のデータが記憶されている。
【0203】
<変形例>
[WebSocketsを用いたHTML文書間通信について]
以上においては、HTML文書間がXMLHttpRequestを用いて行われるものとしたが、WebSocketsなどのプロトコルを用いて行われるようにすることも可能である。WebSocketsはサーバ−クライアント間で双方向通信を実現するための規格であり、サーバ側からクライアント側に対してデータをプッシュ配信することが可能になる。
【0204】
図28と
図29は、WebSocketsを用いた場合のHTML文書間通信の流れを示す図である。
図28は、TV用HTML文書11からモバイル用HTML文書12に対するデータ送信時の流れを示し、
図29は、モバイル用HTML文書12からTV用HTML文書11に対するデータ送信時の流れを示す。
【0205】
図28を参照して、TV用HTML文書11からモバイル用HTML文書12に対するデータ送信時の流れについて説明する。
【0206】
処理1として示すように、携帯端末2のモバイル用HTML文書12は、WebSocketsを使って、TV1のHTTPサーバ111との通信を確立する。WebSocketsを使った通信の確立には、モバイル用HTML文書12のURLに付加してTV1から通知された、TV1のIPアドレスを含むURLが接続先として用いられる。
【0207】
矢印#101の先に処理2として示すように、TV1のHTTPサーバ111は、モバイル用HTML文書12からのWebSocketsを使った通信の確立要求を受け付け、通信を確立する。
【0208】
処理3として示すように、TV1のTV用HTML文書11は、携帯端末2に対する送信対象のデータを、データ送信APIを使ってメモリの特定領域に設定する。特定領域に設定されることによって、送信対象のデータが矢印#102で示すようにTV用HTML文書11からHTTPサーバ111に提供される。
【0209】
処理4として示すように、TV1のHTTPサーバ111は、送信対象のデータがメモリの特定領域に設定されたとき、送信対象のデータを、処理2で確立したWebSocketsを使った通信によりモバイル用HTML文書12に送信する。
【0210】
矢印#103の先に処理5として示すように、モバイル用HTML文書12は、HTTPサーバ111から送信されてきたデータを、処理1で確立したWebSocketsを通して受信する。
【0211】
図29を参照して、モバイル用HTML文書12からTV用HTML文書11に対するデータ送信時の流れについて説明する。
【0212】
処理1として示すように、携帯端末2のモバイル用HTML文書12は、WebSocketsを使って、TV1のHTTPサーバ111との通信を確立する。ここでも、WebSocketsを使った通信の確立には、モバイル用HTML文書12のURLに付加してTV1から通知された、TV1のIPアドレスを含むURLが接続先として用いられる。
【0213】
矢印#111の先に処理2として示すように、TV1のHTTPサーバ111は、モバイル用HTML文書12からのWebSocketsを使った通信の確立要求を受け付け、通信を確立する。
【0214】
処理3として示すように、携帯端末2のモバイル用HTML文書12は、処理1で確立したWebSocketsを使った通信により、TV1のHTTPサーバ111に対してデータを送信する。
【0215】
矢印#112の先に処理4として示すように、TV1のHTTPサーバ111は、モバイル用HTML文書12から送信されてきたデータを受信したとき、Callback関数である
図15の関数212を呼び出す。これにより、モバイル用HTML文書12から送信されてきたデータが、矢印#113で示すようにHTTPサーバ111からTV用HTML文書11に提供される。
【0216】
処理5として示すように、TV用HTML文書11は、Callback関数が呼び出されることによりHTTPサーバ111から提供されたデータを受信する。
【0217】
以上のように、HTML文書間の通信がWebSocketsを用いて行われるようにすることも可能である。
【0218】
ここで、
図30のフローチャートを参照して、WebSocketsを用いたデータ送信時の携帯端末2の処理について説明する。
図30の処理は、基本的に、
図29の左側の処理に対応する。
【0219】
ステップS101において、モバイル用HTML文書12は、モバイル用HTML文書12のURLに付加する形で通知されたTV1のIPアドレスを含むURLを接続先として、WebSocketsを用いた通信を確立する。
【0220】
ステップS102において、モバイル用HTML文書12は、TV用HTML文書11に送信するデータがあるか否かを判定し、データがあると判定するまで待機する。
【0221】
TV用HTML文書11に送信するデータがあるとステップS102において判定した場合、ステップS103において、モバイル用HTML文書12は、WebSocketsを使った通信によりデータを送信する。
【0222】
ステップS104において、モバイル用HTML文書12は、WebSocketsを使った通信を終了するか否かを判定し、終了しないと判定した場合、ステップS102に戻り、以上の処理を繰り返し行う。WebSocketsを使った通信を終了すると判定された場合、処理は終了される。
【0223】
次に、
図31のフローチャートを参照して、WebSocketsを用いたデータ受信時の携帯端末2の処理について説明する。
図31の処理は、基本的に、
図28の左側の処理に対応する。
【0224】
ステップS111において、モバイル用HTML文書12は、モバイル用HTML文書12のURLに付加する形で通知されたTV1のIPアドレスを含むURLを接続先として、WebSocketsを用いた通信を確立する。
【0225】
ステップS112において、TV用HTML文書11からのデータが受信された場合、WebSocketsに登録されたCallback関数が呼び出され、ステップS113において、モバイル用HTML文書12は、TV用HTML文書11からのデータを受信する。
【0226】
ステップS114において、モバイル用HTML文書12は、WebSocketsを使った通信を終了するか否かを判定し、終了しないと判定した場合、ステップS112に戻り、以上の処理を繰り返し行う。WebSocketsを使った通信を終了すると判定された場合、処理は終了される。
【0227】
なお、WebSocketsを用いたHTML文書間通信時のTV1の処理は、
図16および
図17を参照して説明した処理と基本的に同様の処理である。
【0228】
[他の変形例]
以上においては、TV用HTML文書11とモバイル用HTML文書12が同じサーバであるWebアプリ管理サーバ4により管理されるものとしたが、
図32に示すように、それぞれ異なるサーバにより管理されるようにしてもよい。
【0229】
図32の例においては、TV用HTML文書11がWebアプリ管理サーバ4Aにより管理され、モバイル用HTML文書12がWebアプリ管理サーバ4Bにより管理されている。この場合、放送信号に含まれるAITによってTV用HTML文書11のURLが指定され、モバイル用HTML文書12のURLがTV用HTML文書11により指定される。
【0230】
また、TV連動がTV1と一台のセカンドスクリーンデバイスとの間で行われるものとしたが、
図33に示すように、TV1と、複数台のセカンドスクリーンデバイスとの間で行われるようにしてもよい。
図33の例においては、TV1と、携帯端末2A、携帯端末2Bの二台のセカンドスクリーンデバイスとの間でTV連動が行われている。携帯端末2A、携帯端末2Bに表示される情報は、同期するようにしてもよいし、非同期であってもよい。
【0231】
また、放送局3から放送された番組(映像と音声からなるコンテンツ)に関連する情報をセカンドスクリーンデバイスに表示させるものとしたが、音楽、静止画、Web情報などの他のコンテンツに関連する情報を表示させるようにしてもよい。したがって、ファーストスクリーンをタブレット端末やPCとして、セカンドスクリーンをスマートフォンとして、本技術を用いて、タブレット端末上に表示されるweb情報と連動させる情報をスマートフォン上に表示させてもよい。
【0232】
さらに、放送局3から放送される番組をコンテンツとして、そのコンテンツに関連する情報をHTML文書を用いて表示させるものとしたが、コンテンツの提供形態は、放送を用いた形態に限られない。すなわち、インターネットを介してコンテンツが提供されるようにしてもよいし、Blu-ray(登録商標) Discなどの記録媒体を介してコンテンツが提供されるようにしてもよい。この場合も、コンテンツには、TV用HTML文書11のアドレスを示すURLが付加される。
【0233】
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、汎用のパーソナルコンピュータなどにインストールされる。
【0234】
インストールされるプログラムは、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)や半導体メモリなどよりなる
図27に示されるリムーバブルメディア371に記録して提供される。また、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供されるようにしてもよい。プログラムは、ROM362や記憶部368に、あらかじめインストールしておくことができる。
【0235】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0236】
なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
【0237】
本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【0238】
例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【0239】
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
【0240】
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
【0241】
<構成の組み合わせ例>
本技術は、以下のような構成をとることもできる。
【0242】
(1)
コンテンツに関連する情報である第1の情報の提供元を指定する第1のアドレス情報を含む前記コンテンツを受信させる受信制御部と、
前記コンテンツを出力させる出力制御部と、
前記第1のアドレス情報に基づいて、前記第1の情報の提供元となるサーバから前記第1の情報を取得する取得部と、
前記第1の情報に含まれる、前記コンテンツに関連する携帯端末用の情報である第2の情報の提供元を指定する第2のアドレス情報を、前記携帯端末に提供する提供部と
を備える情報処理装置。
【0243】
(2)
前記第1の情報は、スクリプトの記述を含むHTML文書であり、
前記スクリプトを実行することにより実現される前記提供部は、WebブラウザのAPIを用いて、前記第2のアドレス情報を提供する
前記(1)に記載の情報処理装置。
【0244】
(3)
前記提供部は、前記情報処理装置に割り当てられたIPアドレスを含むURLを付加した前記第2のアドレス情報を提供する
前記(1)または(2)に記載の情報処理装置。
【0245】
(4)
前記第2のアドレス情報に基づいて前記携帯端末により前記第2の情報が取得された後、前記携帯端末との間で通信を行う通信部をさらに備える
前記(3)に記載の情報処理装置。
【0246】
(5)
前記第1の情報は、スクリプトの記述を含むHTML文書であり、
前記スクリプトを実行することにより実現される前記通信部は、WebブラウザのAPIを用いて、前記携帯端末にデータを送信し、前記IPアドレスを含むURLを送信先として前記携帯端末から送信されてきたデータを受信する
前記(4)に記載の情報処理装置。
【0247】
(6)
前記受信制御部は、放送された前記コンテンツを受信させる
前記(1)乃至(5)のいずれかに記載の情報処理装置。
【0248】
(7)
前記コンテンツの放送信号に含まれるアプリケーション情報テーブルを解析する解析部をさらに備え、
前記取得部は、前記アプリケーション情報テーブルを解析することによって得られた前記第1のアドレス情報に基づいて前記第1の情報を取得する
前記(6)に記載の情報処理装置。
【0249】
(8)
前記出力制御部は、前記コンテンツの映像を表示させ、前記コンテンツに関連する情報を前記第1の情報に基づいて表示させる
前記(1)乃至(7)のいずれかに記載の情報処理装置。
【0250】
(9)
前記第1の情報と前記第2の情報は、前記コンテンツ毎に、前記コンテンツを提供する事業者により用意された情報である
前記(1)乃至(8)のいずれかに記載の情報処理装置。
【0251】
(10)
コンテンツに関連する情報である第1の情報の提供元を指定する第1のアドレス情報を含む前記コンテンツを受信させ、
前記コンテンツを出力させ、
前記第1のアドレス情報に基づいて、前記提供元となるサーバから前記第1の情報を取得し、
前記第1の情報に含まれる、前記コンテンツに関連する携帯端末用の情報である第2の情報の提供元を指定する第2のアドレス情報を、前記携帯端末に提供する
ステップを含む情報処理方法。
【0252】
(11)
コンテンツに関連する情報である第1の情報の提供元を指定する第1のアドレス情報を含む前記コンテンツを受信させ、
前記コンテンツを出力させ、
前記第1のアドレス情報に基づいて、前記提供元となるサーバから前記第1の情報を取得し、
前記第1の情報に含まれる、前記コンテンツに関連する携帯端末用の情報である第2の情報の提供元を指定する第2のアドレス情報を、前記携帯端末に提供する
ステップを含む処理をコンピュータに実行させるプログラム。
【0253】
(12)
コンテンツに関連する情報である第1の情報の提供元を指定する第1のアドレス情報を含む前記コンテンツを受信し、前記コンテンツを出力し、前記第1のアドレス情報に基づいて前記第1の情報の提供元となるサーバから前記第1の情報を取得し、前記第1の情報に含まれる、前記コンテンツに関連する携帯端末用の情報である第2の情報の提供元を指定する第2のアドレス情報を提供する情報処理装置から提供された前記第2のアドレス情報を取得するアドレス情報取得部と、
前記第2のアドレス情報に基づいて、前記第2の情報の提供元となるサーバから前記第2の情報を取得する関連情報取得部と、
前記コンテンツに関連する情報を前記第2の情報に基づいて出力させる出力制御部と
を備える携帯端末。
【0254】
(13)
前記アドレス情報取得部は、前記情報処理装置に割り当てられたIPアドレスを含むURLを付加した前記第2のアドレス情報を取得する
前記(12)に記載の携帯端末。
【0255】
(14)
前記第2の情報が取得された後、前記情報処理装置との間で通信を行う通信部をさらに備える
前記(13)に記載の携帯端末。
【0256】
(15)
前記第2の情報は、スクリプトの記述を含むHTML文書であり、
前記スクリプトを実行することにより実現される前記通信部は、前記IPアドレスを含むURLを送信先として含む、送信対象のデータを付加したHTTPリクエストによって前記送信対象のデータを前記情報処理装置に送信し、前記情報処理装置が送信するデータを、データの受信を要求するHTTPリクエストによって受信する
前記(14)に記載の携帯端末。
【0257】
(16)
コンテンツに関連する情報である第1の情報の提供元を指定する第1のアドレス情報を含む前記コンテンツを受信し、前記コンテンツを出力し、前記第1のアドレス情報に基づいて前記第1の情報の提供元となるサーバから前記第1の情報を取得し、前記第1の情報に含まれる、前記コンテンツに関連する携帯端末用の情報である第2の情報の提供元を指定する第2のアドレス情報を提供する情報処理装置から提供された前記第2のアドレス情報を取得し、
前記第2のアドレス情報に基づいて、前記第2の情報の提供元となるサーバから前記第2の情報を取得し、
前記コンテンツに関連する情報を前記第2の情報に基づいて出力させる
ステップを含む情報処理方法。
【0258】
(17)
コンテンツに関連する情報である第1の情報の提供元を指定する第1のアドレス情報を含む前記コンテンツを受信し、前記コンテンツを出力し、前記第1のアドレス情報に基づいて前記第1の情報の提供元となるサーバから前記第1の情報を取得し、前記第1の情報に含まれる、前記コンテンツに関連する携帯端末用の情報である第2の情報の提供元を指定する第2のアドレス情報を提供する情報処理装置から提供された前記第2のアドレス情報を取得し、
前記第2のアドレス情報に基づいて、前記第2の情報の提供元となるサーバから前記第2の情報を取得し、
前記コンテンツに関連する情報を前記第2の情報に基づいて出力させる
ステップを含む処理をコンピュータに実行させるプログラム。
【0259】
(18)
コンテンツに関連する情報である第1の情報の提供元を指定する第1のアドレス情報を含む前記コンテンツを受信させる受信制御部と、
前記コンテンツを出力させる出力制御部と、
前記第1のアドレス情報に基づいて、前記第1の情報の提供元となるサーバから前記第1の情報を取得する取得部と、
前記第1の情報に含まれる、前記コンテンツに関連する携帯端末用の情報である第2の情報の提供元を指定する第2のアドレス情報を、前記携帯端末に提供する提供部と
を備える
情報処理装置と、
前記情報処理装置から提供された前記第2のアドレス情報を取得するアドレス情報取得部と、
前記第2のアドレス情報に基づいて、前記第2の情報の提供元となるサーバから前記第2の情報を取得する関連情報取得部と、
前記コンテンツに関連する情報を前記第2の情報に基づいて出力させる出力制御部と
を備える
携帯端末と
からなる情報処理システム。